.github/000077500000000000000000000000001516065662600124335ustar00rootroot00000000000000.github/workflows/000077500000000000000000000000001516065662600144705ustar00rootroot00000000000000.github/workflows/build.yml000066400000000000000000000016761516065662600163240ustar00rootroot00000000000000# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: build on: schedule: - cron: '0 0 1 * *' push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: ['lts/*'] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} - run: npm i -g grunt-cli - run: npm install - run: grunt .gitignore000066400000000000000000000003401516065662600130600ustar00rootroot00000000000000/build /node_modules /*.log .idea/workspace.xml .idea/tasks.xml .idea/profiles_settings.xml .idea/inspectionProfiles/Project_Default.xml .idea/inspectionProfiles/profiles_settings.xml node_modules/.yarn-integrity /release.npmignore000066400000000000000000000001041516065662600130650ustar00rootroot00000000000000/assets /node_modules /Gruntfile.js *.log /.github /.vscode /release.vscode/000077500000000000000000000000001516065662600124345ustar00rootroot00000000000000.vscode/launch.json000066400000000000000000000011111516065662600145730ustar00rootroot00000000000000{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "outputCapture": "std", "name": "Launch Test", "skipFiles": [ "/**" ], "cwd": "${workspaceRoot}", "program": "./test/test.js" }, ] }Gruntfile.js000066400000000000000000000004231516065662600133670ustar00rootroot00000000000000module.exports = (grunt) => { const builder = require(`corifeus-builder`); const loader = new builder.loader(grunt); loader.js({ replacer: { type: 'p3x', }, }); grunt.registerTask('default', builder.config.task.build.js); };LICENSE000066400000000000000000000020131516065662600120740ustar00rootroot00000000000000MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.README.md000066400000000000000000000624061516065662600123620ustar00rootroot00000000000000[//]: #@corifeus-header [![NPM](https://img.shields.io/npm/v/p3x-html-pdf.svg)](https://www.npmjs.com/package/p3x-html-pdf) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://paypal.me/patrikx3) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Corifeus @ Facebook](https://img.shields.io/badge/Facebook-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [![Uptime ratio (90 days)](https://network.corifeus.com/public/api/uptime-shield/31ad7a5c194347c33e5445dbaf8.svg)](https://network.corifeus.com/status/31ad7a5c194347c33e5445dbaf8) # 📃 Generates PDF from HTML with custom headers and footers with wkhtmltopdf v2025.4.169 🌌 **Bugs are evident™ - MATRIX️** 🚧 **This project is under active development!** 📢 **We welcome your feedback and contributions.** ### NodeJS LTS is supported ### 🛠️ Built on NodeJs version ```txt v22.13.1 ``` # 📝 Description [//]: #@corifeus-header:end **p3x-html-pdf** is a Node.js package that generates PDFs from HTML with custom headers and footers using `wkhtmltopdf`. It is a robust tool for creating professional-grade PDFs with features like: - 📜 **Dynamic Headers and Footers**: Add placeholders for page numbers, dates, and more. - 🛠️ **Customizable Layouts**: Configure margins, orientation, and paper size. - ⚡ **Async/Await Support**: Modern JavaScript compatibility for efficient workflows. - 🔄 **Dynamic Content**: Render data-driven tables and content dynamically. --- ## 🚀 Installation Install via Yarn: ```bash yarn add p3x-html-pdf ``` Or install via npm: ```bash npm install p3x-html-pdf ``` Import in your project: ```javascript const { generate } = require('p3x-html-pdf'); ``` --- ## 📖 Usage Example ```javascript const { generate } = require('p3x-html-pdf'); const path = require('path'); (async () => { const outputPath = path.join(process.cwd(), 'p3x-html-pdf-output.pdf'); const options = { settings: { save: true, template: { format: 'A4', marginLeft: 10, marginRight: 10, fixedWidth: null, fixedHeight: null, copies: 1, orientation: 'portrait', }, html: `
Header Logo

P3X HTML Invoice - First Page

Generated: ${new Date().toLocaleDateString()}

P3X HTML Invoice

P3X HTML Final Notes

Invoice Content

This invoice showcases structured content on a single page for detailed clarity.

${Array.from({ length: 26 }).map((_, i) => { const price = (i + 1) * 10; const quantity = (i % 5) + 1; const total = price * quantity; return ``; }).join('')}
Item Quantity Price Total
Product ${String.fromCharCode(65 + (i % 26))} ${quantity} $${price}.00 $${total}.00
Subtotal $${Array.from({ length: 15 }).reduce((acc, _, i) => acc + ((i + 1) * 10 * ((i % 5) + 1)), 0)}.00
VAT (20%) $${(Array.from({ length: 15 }).reduce((acc, _, i) => acc + ((i + 1) * 10 * ((i % 5) + 1)), 0) * 0.2).toFixed(2)}
Total $${(Array.from({ length: 15 }).reduce((acc, _, i) => acc + ((i + 1) * 10 * ((i % 5) + 1)), 0) * 1.2).toFixed(2)}

Additional Information

This page provides further details about the invoice, payment methods, and terms. Below is a breakdown of important notes:

If you have any questions, feel free to contact our support team at support@patrikx3.com.

Thank you for your business! We hope to work with you again in the future. Stay tuned for updates on our services and offerings by visiting our website or subscribing to our newsletter.

`, }, title: 'P3X-HTML-PDF Detailed Invoice', debug: false, saveFile: outputPath, }; try { await generate(options); console.log('✅ PDF generated successfully!'); // or options.settings.save = false const buffer = await generate(options); console.log('--------------------------------------------------------------') console.log('PDF Buffer:', buffer); } catch (err) { console.error('❌ Error generating PDF:', err); } })(); ``` --- ## 🔧 Configuration ### Options - **Settings** - `save`: If false, it returns as a buffer. - `template.format`: Page size, e.g., `A4`, `Letter`. - `template.orientation`: Page orientation (`portrait` or `landscape`). - `template.marginLeft`, `template.marginRight`: Margins in mm. - `template.copies`: Copies to generate. - `template.fixedWidth` and `template.fixedHeight`: If above zero, generates in millimeters. - `html`: HTML content with placeholders. - **title**: PDF document title. - **saveFile**: Path for saving the PDF. - **base** The HTML base href is other then current directory, it can be online as well. - **css**: Customize the CSS for serving, by default it is in `src/html-template.css` - **jquery**: The latest that works with webkit is jQuery v1.12.4 is required, you can extend with more functions, the default is in `src/jquery-1.12.4.min.js` - **javascriptDelay**: The delay before the PDF is generated as default is 1000 ms. For more options, check the official [wkhtmltopdf usage guide](https://wkhtmltopdf.org/usage/wkhtmltopdf.txt). Unfortunately the version latest HTTPS TLS 1.3 is not working, so it is better to use inline filesystem images or using HTTP as that is dated but still works. ### How to Add a Page Break with `p3x-html-pdf` To insert a page break, simply use the following snippet: ```html
``` #### ✅ Key Points: - 🔧 **No additional CSS** is required; the functionality is built-in. - 📑 The content after this `
` will automatically start on a new page. - 🧹 Ensure your HTML structure is clean for proper rendering. #### 📝 Example: ```html

📜 This content will be on the first page.

📜 This content will appear on the next page.

``` --- ## 🌟 Placeholders You can use placeholders in your HTML for dynamic data (only these, but it is enough, the rest you can generate in HTML): - `${page}`: Current page. - `${pages}`: Total pages. - `${frompage}`: The starting page of the current section. - `${topage}`: The ending page of the current section. - `${webpage}`: The URL of the web page (if applicable). - `${section}`: The name of the current section. - `${subsection}`: The name of the current subsection. - `${date}`: The current date in a localized format. - `${isodate}`: The current date in ISO 8601 format. - `${time}`: The current time. - `${title}`: The document title. - `${doctitle}`: The title of the document as defined in metadata. - `${sitepage}`: Current site page number (specific context). - `${sitepages}`: Total number of site pages (specific context). ### Example ```html ``` The `p3x-footer` and `p3x-header` should not have any styles other than `id` and `data-height`. --- ## 📊 Advanced Features - **Debugging**: Use `debug: true` to enable detailed logs. - **Header/Footer Templates**: Create rich HTML templates for headers/footers. - **Dynamic Content**: Inject dynamic tables, invoices, or other content into the PDF. --- ## 🌟 Headers and Footers in `p3x-html-pdf` This document provides a detailed explanation of how to work with headers and footers using `p3x-html-pdf`, including first-page-specific headers and indexed headers for subsequent pages. With this approach, you can create professional-grade PDFs with precise control over header and footer content. --- ### 📖 Overview Headers and footers in `p3x-html-pdf` are managed via HTML templates. You can: - Define **default headers and footers** for all pages. - Create **specific headers or footers** for certain pages using indexing (e.g., `p3x-header-1` for the first page). - Dynamically calculate content for headers and footers, such as page numbers, document titles, or custom logic. --- ### 🚀 How It Works `p3x-html-pdf` uses the `id` attribute and `data-height` to manage headers and footers. The key attributes and elements are: - **Header IDs**: - `p3x-header`: The default header for all pages. - `p3x-header-`: A header for a specific page (e.g., `p3x-header-1` for the first page). - `p3x-header-last`: Last header for last page. - **Footer IDs**: - `p3x-footer`: The default footer for all pages. - `p3x-footer-`: A footer for a specific page. - `p3x-footer-last`: Last footer for last page. - **`data-height`**: Specifies the height of the header/footer (in millimeters). Ensure this matches the expected content size to prevent overlap. --- ### 🌟 Example: First Page Header and Default Header The following example demonstrates a **custom header** for the first page and a **default header** for the rest of the document. #### HTML Template ```html
Header Logo

P3X HTML Invoice - First Page

Generated: ${new Date().toLocaleDateString()}

P3X HTML Invoice

P3X HTML Final Notes

``` --- ### 🛠️ Dynamic Header and Footer Logic - Use indexed headers or footers for specific pages. - Utilize placeholders like `${page}` and `${pages}` to dynamically display the current page and total pages. #### Example Configuration in JavaScript ```javascript const options = { settings: { save: true, template: { format: 'A4', marginLeft: 10, marginRight: 10, orientation: 'portrait', }, html: `
`, }, title: 'Dynamic Headers and Footers Example', saveFile: path.resolve(__dirname, 'output.pdf'), }; ``` --- ### 📏 Calculating Headers and Footers per Page When designing headers and footers: 1. **Estimate Content Size:** - Use `data-height` to reserve enough space for your header or footer content. - Example: A header with a logo and text may need `40mm`. 2. **Adjust Margins:** - Ensure the margins accommodate both the header/footer and the main content. 3. **Testing for Multi-Page Documents:** - For multi-page documents, validate the alignment of headers and footers across all pages. --- #### 📄 Headers and Footers with Indexed Customization `p3x-html-pdf` supports indexed headers and footers, allowing unique designs for specific pages. For example, `p3x-header-1` can define a header for the first page, while `p3x-header` applies to subsequent pages. Similarly, `p3x-footer-1` can be used for a custom first-page footer. ##### Key Points: 1. **Indexed IDs**: Use `p3x-header-1`, `p3x-footer-1`, etc., for specific pages. Default headers (`p3x-header`) and footers (`p3x-footer`) are used when no specific index is found and there is `p3x-header-last` or `p3x-footer-last`. 2. **Consistent Heights**: All headers and footers must share the same `data-height` (e.g., `40mm` for headers, `10mm` for footers) to ensure proper alignment and accurate page calculations. 3. **Dynamic Content**: Use placeholders like `${page}` and `${pages}` to display page-specific data dynamically. This approach allows tailored styling for specific pages while maintaining consistent layouts throughout the document. --- ### 📊 Advanced Features - Combine **indexed headers/footers** for specific pages with a **default** fallback. - Use JavaScript in the `header-footer.html` template to dynamically adjust content. - Use indexed configurations to simulate "first-page" or "last-page" behavior. --- ### 🖼️ Example Output You can generate a PDF with the provided configuration to see how headers and footers are applied dynamically. For larger documents, this approach allows consistent styling with room for customization. ## 🌍 Architecture `p3x-html-pdf` works seamlessly on Linux, Windows and ARM64. --- ## 🖼️ Example Output Check out an example output PDF: [Example PDF](https://cdn.corifeus.com/git/html-pdf/assets/p3x-html-pdf-output.pdf). ![Example Output](https://cdn.corifeus.com/git/html-pdf/assets/p3x-html-pdf-output.png) --- ## 🔬 Legacy Rendering with Webkit This library uses `wkhtmltopdf`, which relies on an older version of Webkit. As such, it does not support modern CSS features like `flexbox`. Instead, older solutions such as `float` and `table`-based layouts must be used for alignment. While these approaches are not modern, they are efficient and compatible with the rendering engine. For instance, the following layout works seamlessly: ```html
Header Logo

P3X HTML Invoice

Generated: 2023-10-01

``` ## Steps to Clone and Run `test/test.js` 1. **Clone the Repository**: ```bash git clone https://github.com/patrikx3/html-pdf.git cd html-pdf ``` 2. **Install Dependencies**: Using Yarn: ```bash yarn install ``` Or, using NPM: ```bash npm install ``` 3. **Run the Test Script**: ```bash node ./test/test.js ``` --- ## Puppeteer vs. p3x-html-pdf: Resource Usage and Features Comparison When deciding between **Puppeteer** and **p3x-html-pdf**, it's essential to understand their differences in resource usage and capabilities. ### Technology Difference - **p3x-html-pdf** is built on **wkhtmltopdf**, which uses the WebKit rendering engine. It's lightweight and optimized for HTML-to-PDF tasks. - **Puppeteer** launches a full **Chrome/Chromium** instance, consuming more CPU and memory, even in headless mode. ### Resource Usage Comparison | Feature | p3x-html-pdf (wkhtmltopdf) | Puppeteer (Chrome/Chromium) | |------------------------|---------------------------------------------|------------------------------------------| | **Memory Usage** | Low | High | | **CPU Usage** | Low | High | | **Startup Time** | Fast | Slower due to browser launch | | **Dynamic Content** | Limited support for JavaScript | Full support for JavaScript | | **Rendering Accuracy** | Basic CSS and HTML support | Pixel-perfect rendering with modern web standards | | **Flexibility** | Headers, footers, scripts (older JS versions) | Highly customizable (headers, footers, scripts) | | **Scalability** | Suitable for lightweight tasks and servers | Better for advanced use cases and large-scale rendering | | **File Size** | Smaller binary for wkhtmltopdf dependency | Puppeteer requires downloading Chromium (~100MB) | ### Trade-offs #### p3x-html-pdf (wkhtmltopdf) - **Pros:** - Lightweight and uses fewer resources. - Faster startup time. - Ideal for static HTML content with minimal JavaScript or CSS. - **Cons:** - Limited support for modern web standards and advanced JavaScript. - Basic rendering capabilities. #### Puppeteer - **Pros:** - Full support for dynamic content, advanced JavaScript, and modern web standards. - Highly customizable headers, footers, and PDF options. - Pixel-perfect rendering accuracy. - **Cons:** - Consumes more CPU and memory. - Slower startup time due to launching a full Chrome/Chromium instance. ### When to Use Each #### Use p3x-html-pdf (wkhtmltopdf): - When your content is **static** or doesn’t rely on modern web technologies. - When resource efficiency is a priority (e.g., on resource-constrained servers). #### Use Puppeteer: - When your content is **dynamic** or relies heavily on JavaScript and CSS. - When rendering accuracy, modern web technology support, or customization is critical. ### Conclusion - **p3x-html-pdf** (wkhtmltopdf) is a better fit for lightweight tasks with simple requirements. - **Puppeteer** excels in advanced and dynamic use cases but comes with higher resource costs. --- **Happy PDF Generating!** 🎉 [//]: #@corifeus-footer --- ## 🚀 Quick and Affordable Web Development Services If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs. --- ## 🌐 Powerful Online Networking Tool Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com). **🆓 Free** Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management. Additionally, it offers tools for: - 📡 Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability. - 📊 Status page management to track uptime, performance, and incidents in real time with customizable dashboards. All these features are completely free to use. --- ## ❤️ Support Our Open-Source Project If you appreciate our work, consider ⭐ starring this repository or 💰 making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you! --- ### 🌍 About My Domains All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](https://corifeus.eu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional. --- ### 📈 Versioning Policy **Version Structure:** We follow a **Major.Minor.Patch** versioning scheme: - **Major:** 📅 Corresponds to the current year. - **Minor:** 🌓 Set as 4 for releases from January to June, and 10 for July to December. - **Patch:** 🔧 Incremental, updated with each build. **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed. --- [**P3X-HTML-PDF**](https://corifeus.com/html-pdf) Build v2025.4.169 [![NPM](https://img.shields.io/npm/v/p3x-html-pdf.svg)](https://www.npmjs.com/package/p3x-html-pdf) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) [//]: #@corifeus-footer:end assets/000077500000000000000000000000001516065662600123755ustar00rootroot00000000000000assets/p3x-html-pdf-output.pdf000066400000000000000000000723671516065662600166700ustar00rootroot00000000000000%PDF-1.4 1 0 obj << /Title (P3X-HTML-PDF Detailed Invoice 1/19/2025, 12:43:24 AM) /Creator (wkhtmltopdf 0.12.4) /Producer (Qt 4.8.7) /CreationDate (D:20250119004325+01'00') >> endobj 3 0 obj << /Type /ExtGState /SA true /SM 0.02 /ca 1.0 /CA 1.0 /AIS false /SMask /None>> endobj 4 0 obj [/Pattern /DeviceRGB] endobj 8 0 obj [0 /XYZ 28.5000000 728.750000 0] endobj 9 0 obj << /Type /XObject /Subtype /Image /Width 256 /Height 256 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 10 0 R /Filter /FlateDecode >> stream xG]sJ&$$I$$L2$$d2GLL2L$I2III$$ɕ\ۗs=_uy+)*ld7a+@l [&l g%`z25:"<;a@1[_2Țc@ցDe>ցÃl3[ />V?tg[ Yswcl-Tqg3y{;~lD8Ni>V47z&{^]bq'J,(z%m"=;zQ6؊O1lEN<bkrG +59H^}ևA%cr8[cogmتřg}V!jU`rc/N0GxE=*V%?^leJ o\Y6-kg9@݁,lqItBϰ }[puz-O0)uܳ+醜=[`_!ïG s-P(_u3֌P(eS r-Q )8Y[@rWy0F<;-RA@ Had|gk{aNse "Y [ ObD1.P= V*{Ɔ E2xYsY-Uc@**?N XhɬWhɬWhȬWhGZ2 Z2 `X1*ʇXEtfB*9lŶYCТȱwC#dͬl#U>rMƎ0 - ThYN懟Jf\Jf@;lPˬRhYCB5 Fzf(r[ȬkȬnoL{acK* -2|[G3 [e3aNfA6|X/NfSVܳms?-ٗB7'$w~fP' r^w*)_s2F3Y-st^f R ,ӫj0ш<nff)3t9 j\̪Evz]wȬZlƝ#APf:]x!VΫjQ riZmqQ0Y!Z-yHI%ن:x qȫEQWrb(42[$KoYASy{"<0Ɗ m1?Omaw6Lbȫd܀u ?Vk;TJtȐWI3}VvS+7pKV:gȸDэ`wݖ赉RG[l6{= B_Zl [(B9oxR 0݇(;kuք-R ϝRlyɵQ >GJ7q֣c&h9M ߥ,MкَG}->v_6`L$JtP/Rl$9UlV'mT{Bj:ڋƨyLjweGвڎ*[y|aU1aL|I6 RtTY'O_*xԗHQeF :RhWwSŽUW/wG!-h1I|ȫ$~*0uq$:d'Qf">*0q4:*0S/JGF 2U`(騂hC^Q5t:(-uTA)|SꨂhQ&Rc0C^%F )X%ƒVGF ZU`'QтXGە:X먂sScI b>*0a:\쨂n Q7Jʂ$;Ŏ*0UPwf;Ѣ >Z endstream endobj 10 0 obj 2381 endobj 11 0 obj << /Type /XObject /Subtype /Image /Width 256 /Height 256 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 9 0 R /Length 12 0 R /Filter /FlateDecode >> stream xn8s 3,w/q(9MҤAIy@Aʐ᝗(̫ROPf5>0~x>1ZoLؚéJ? vt]絍֝ږ~Gnnp>`76Cy˱Wl1&:u1=1OxR.vyc֥ `u>ϴϞpp99k/욓8-3v{;~:m_I6Ɵ~vK{3O~x_V6]lߎ_.)F7Ɵ.< gGYR?1CoK?)8vd#"2{gҏ J)qik;"1<;"Yť;g*Ġ|kS,/پ]#uұ/ݫ?hKuƟ@$=n)&Cϣoy~z>ϥNbv+_GhaJҟNGM~hq2vɯ |w?qZrUCDy|1?"En1ݞM oN~qh wW5~8^}y~" m@bKV}nj۟|'dҏ<<Mo 4@}r:V7'm!ԋ(ً9<AaCȰEKo t8/tmBJD/iWbP#C>"jEd !ANs-"$ؽ!u[u Ǥu `$#K#cpk-.uC=|]y3~TԽrͰeNo@_{1~(?9y%-P29tgGO(m E fS_4<$y|-=(HxN'Ɵ v};8&Fݯ !fB)אe㇭1sӢ,T/aY؟R}ߗ~\oE_ܞD'lx8xS,l->Zf8'G_pHƿԭ8;Kx/!yڬ]5o3M\瀌!lA1ٿX#.>lNS"[Kϛ[w"7Xl2?t 8vPM15ǣ Vr~& ϑL/oy+v:ϣ r~HW/@rVQ;`n>ﴉXUސT-kdǠВux>(Pؿ5+[{^F:vo5]ו-*+{ ҟV"ҿ.Xwi-ni](4ΩzsBP &krVҹ1L"EԚ^Ť]C@._V! rmJa@zH EvFX|I7=hu~J)FX|bz|TNΑx܋5Nt+Jd'ILNQvƕ){+* ;UTS&;s1N_8EjMgH=q6rY.m{t?^ՙjOJrWOJr¤|ad ARʗ BѨi{q=u#-eFl7HrA / 60 ]T(t]'N2i#8m=O mk<sڛ~ۅ-ZWi9)glC4&Qv؇a+UŵW"z6o\m* }6؎CigkH3j -A.6'P'p<~t(B: ARٮ (DF ?b.egK;E$J1.#e$DA(G̞Ɩ?5xBY gSz`.\Z;Xócdbv8!Ԁpn,Nu 7y|)dlߘՐ^/jǏҟ`*?}ނ}%Zl VolG&MӱukEnPZ[ڢF6%=P%2k5<UrܫDW2俗Яr_x8_.kMr TLXGvk S76z6{:R U#[T2g%K: c\QnyXOw-r- -ܞS]8!㇠ .8sB+8m|&n<Qp-Kx>F٠)/ᇶx h)^?)~qgxa*r hY6k6_F}.4K0wNl~h)ȼqg }( 0hzqDFR7M ,@>Nc<7z's"1~kOݩK?8՞to`'\/`. ->+ x>S=[2qBTok0Fqî9M tP)r834lC$L`]t3.lK;Q`o}װͭ +N} {/oqs&'T~ۅ=T:LIxᇝ>f]"z6x {>S1gS`~a,=kNr ^J?&D}|q>}>%9?Գ3ᔤzk'd&5sa$H^YY\5QG|bo1~$.Ta1 endstream endobj 12 0 obj 3873 endobj 5 0 obj << /Type /Page /Parent 2 0 R /Contents 13 0 R /Resources 15 0 R /Annots 16 0 R /MediaBox [0 0 595 842] >> endobj 15 0 obj << /ColorSpace << /PCSp 4 0 R /CSp /DeviceRGB /CSpg /DeviceGray >> /ExtGState << /GSa 3 0 R >> /Pattern << >> /Font << /F6 6 0 R /F7 7 0 R >> /XObject << /Im11 11 0 R >> >> endobj 16 0 obj [ ] endobj 13 0 obj << /Length 14 0 R /Filter /FlateDecode >> stream xQo6FW@&"EJXq@}(P$-$>H4;If>#tl>Ǜ_Q=}]l*U7wv_/׻ÿ/tx?}=z7?tC/C|u+;87޵U[ﻟ>ntb[MY/m];cj`qSaTAz^+jE) .K|uJArP{Ä8Ei=5d *1OBz0"ixNj^0F!HZz6y,)p\"Џ!^MYaQ) 4Q Y,r|c3TAO~q!)"` O(]8Y@dg0 ,( fCSE,IAPڰJ?PYa"bp D4t55h%j'"*P[cCSGW.QS.pAO]DMMa>ut55 (n* ˧08Y@dFg0 ,b, fH j [CE&+  LDCW.QS.pA\z"ձuK?P9a>ut55ѕKԄ \SGW.QSIAPFuK?P9Y>1* ˧08Y@dcf0KDR'1lTA\&\0 ]DMMa"rꉈ f c떾,r|rt55%jj.ѕK@DR'UlTAOa q!)"`P9Y>X e [CE&+  LDCW.QS.pA\z"غ 0]DMMa>9rp |rt55 *n* ˧08Y@dFg0 ,b, fH j-[CE&+  LDKW.QS.pA\z"غ 0]DMMa>9rp |rt55 )n* +  +  + OβuK?PYa"Zrp Dt55h%j'"*P[!ѕKԄ \擣+  'GW.QSIAPNuK?P9Y>1* ˧08Y@dcf0KDR'lTA\&\0-]DMMa"Zrꉈ f c떾,r|rt55%jj.ѕK@DR'Tٺ , fCSE,r|H3%")lTA\&\0-]DMMa"Zrꉈ f T-}X@ӕKԄ \SOW.QS.pAO=]DM D$m0BZ[TwlPA#CR0C\|䣁IEKgjY_}0Yoc#"=%b}xzݾST3~ [7?JW? ?T?2hڵUJoU³[?TW}_k퇝;픶uHܢӦiKo1>Viţu'ؽr67aKi=tWoӼ W̦lj4a6YMnoM#wqͦf?|#o}\_|VlA' ţ݈G#{ ;*EujVߊG&t˘y}O-ߋm=u-Q"Zr,=tli|4yno.J[x g ՈmaL(u([-Dye'Z GZעoʊmk\?+𝇯U8^QpQYpY"ԎY=нtݑN&v8cW]Nhqy|iU77*I{]:^{]-~[jH_j1^[8w419^i}eS4.Hb.6tqB dJ3' +z4fd UR;oQ&ofl*]>bMьܒ&<#)m]l◴!g9*2yyG*3ݰm^1O>M+-LTfO.&i#+5\ɫ:(gno.JxLǖ[[pŹk8/Ys6C)Fgˑ3i3݄ͧ6Ɲ[172Lg9cJ3`S}9i}'IntGY,؃T=*~;}jp8rvﻟ>? W6l9WQfmmݧ?? ׁ,V%^2W28Ѵfq} fN-oTse*g+ssyGuʯV-hӉh}ܭ,{h}ӊG>hnsVO+[bo6y&96o̊AݵF=#nYaVGNK+dnXVNe4/>~Ѷʆ-Έ3]9BQ!k]6^u+/ASv_/O.~q䢏H 0ԇSzȖ ?~*f}ģoYNqVN endstream endobj 14 0 obj 3494 endobj 18 0 obj [1 /XYZ 28.5000000 728.750000 0] endobj 19 0 obj << /Type /Annot /Subtype /Link /Rect [276.750000 636.500000 360.750000 645.500000 ] /Border [0 0 0] /A << /Type /Action /S /URI /URI (mailto:support@patrikx3.com) >> >> endobj 17 0 obj << /Type /Page /Parent 2 0 R /Contents 20 0 R /Resources 22 0 R /Annots 23 0 R /MediaBox [0 0 595 842] >> endobj 22 0 obj << /ColorSpace << /PCSp 4 0 R /CSp /DeviceRGB /CSpg /DeviceGray >> /ExtGState << /GSa 3 0 R >> /Pattern << >> /Font << /F6 6 0 R /F7 7 0 R >> /XObject << >> >> endobj 23 0 obj [ 19 0 R ] endobj 20 0 obj << /Length 21 0 R /Filter /FlateDecode >> stream x[K6W`|w@6CC 8C~)h{&N/4p8ǟ6>oK37Sמs)T"2t  }V ~=Bz!iyնz|L EE".pAL@v[7^+7>#!9BDmn !D@@>Ù80賊}|m'3Ox {RH5P ο\7hg @2spzz gWȰ$ꓪy1yK>fΥqf[P5M*8>Mp|(_ [0P2L)HcxGW_Ze řa2\dn &}*ičV$_^re6]HIӷW7wX047=''e8!SShqaDR-!wĪ( KҪ!2&S u'%_5$XۇBх$$;g#^ V'|z“H]0$`U#(!E2uʜV׈&fjOI+x>J?C%PMH0ՔLMp-MZ2Tx'գ;^'+[ArIW}RMLZu;g#yTg{1M“H&AN=0BX˄EJ$B Քs(EjhH E+ds'|TCχKL*Zv37Y6 g a6E\."GLFxV+|W[2tnaiU/Wƌ|6s1Lo>Wu8ݱ'!o9ЌiuOFGDЯڅI5٬mzZ}cE9rݠ1-(N* /GDOqy<͎H='d-ŤObx Y¦Nǚf} Blnn-7J0~| S^rcv>_h|?mF A ޫ_eiar< 8 }A/Ѧa-+nUp_۵ endstream endobj 21 0 obj 1514 endobj 25 0 obj << /__WKANCHOR_2 8 0 R /__WKANCHOR_4 18 0 R >> endobj 27 0 obj <> endobj 28 0 obj <> endobj 26 0 obj <> endobj 29 0 obj << /Type /Catalog /Pages 2 0 R /Outlines 26 0 R /PageMode /UseOutlines /Dests 25 0 R >> endobj 24 0 obj << /Type /Page /Parent 2 0 R /Contents 30 0 R /Resources 32 0 R /Annots 33 0 R /MediaBox [0 0 595 842] >> endobj 32 0 obj << /ColorSpace << /PCSp 4 0 R /CSp /DeviceRGB /CSpg /DeviceGray >> /ExtGState << /GSa 3 0 R >> /Pattern << >> /Font << /F7 7 0 R /F6 6 0 R >> /XObject << >> >> endobj 33 0 obj [ ] endobj 30 0 obj << /Length 31 0 R /Filter /FlateDecode >> stream xY[k0~ׯ nl$m{P0RQЇɖ؉?=K>ΧstoKՆI3^͚t.RP۳?5[GwOlueJB Խlg^yQPլƈLiɾOZmTҪTZI]N0˭AoG8)&%w) ?=;Y=9GaY ;b[RL1EEn qsǔS´+">:q ҃ZY3YZ+/4z[i[?:i^q'q/Y_VôS/+UN[+UZשX6^Z6X6\nm2@I E3'%xv~9c8*+I$RZhu'!put%9Ӄ`dRuX'Fut!X$ZBG.-Ia̞a c' r}4M/Zf''| |smr~Ni']gE;}ePj+$I 5ZE8C%B`aK@.r* QkJ=$ endstream endobj 31 0 obj 872 endobj 34 0 obj << /Type /FontDescriptor /FontName /QIBAAA+NimbusSans-Regular /Flags 4 /FontBBox [-210 -299 1032 1075 ] /ItalicAngle 0 /Ascent 729 /Descent -271 /CapHeight 729 /StemV 50 /FontFile2 35 0 R >> endobj 35 0 obj << /Length1 8000 /Length 38 0 R /Filter /FlateDecode >> stream x9i@SW QBX Yb}]6Ee]BXԢRĥ]kEbJtljw2ֱN_o: y|$j󒛻{=9a 0 CZ|G6a)5U8OӪ򒲊 U(24ii̓aָ[! 3m6i(igþG]yFGؿ0aIleD G 8cLh@Ѷ?ә(c#e4.fL|DwC Q3 wF4HR)2 ߎ3_ f ð_,7qju:^eS,K[̾iQ*O3e &Y]Ys,:v?! b XJ<0\ _8$]fL&;#n(r!<}|qX%C(z}|l']P\WL~А`Ńn۞>R]`0pLɑ):$vNq9e*99sQ,Y`˸&Oz>v8 J]HZWGpܼm[uGѩG8 \V1J>GhȦmȡIvKRhm;˲$ paMEz(W "AG)d 3T9#sni~/ly&g}QG/|Aۉ"{\G~t(tSryQQgGkj̦HӋugv~qF2 juvh2Jrwg²^8/EG5װhC8՚D>痆I`N?qk{JuBx; sC {1QSD79OS%CdTyCq2wwԶǷl1kW$S=($?U: hZ_tB2hyFN@sV194Ē]qˈ9!o#pЛ Nc(쨔=}`ԖJT`-1_7-BonBvwhu{*&Y%q$ YG[~g=w x{pbI?x=a قÒ Mzg7cܚ0:#9؏0aL"b6_%5ZoauD -TX%L¼=geIhtyÔe޺ʵ\fZMHwP{G{jdqaS<c50UCݰ_3^2M>eʢ5Rఴj_/O11c$䇔fI@#)N AR$)׃D4U/&&;_b俀m o2~C~#5?܃~H9B olE93J5V]\DàYDFZ뇤U ׇ!Ֆ3А^IHOy:tlaQ_u&l XV i#OK!ai=& &RNzMoص8%hDEqW^79ɺ-yY{E'ғrn,>J|nC24v1klSO҉V=h1D[ k׺,w }gfJQeQ_RyR\PJ道y~E?]P3D7#,2qfR3e@Sg :HgxhTW2@ʴ%ExL$3#s:hk]sy;m!@]V=*?kG{;Ε)e6 qGoikdU^F4`ن>#qXGes-gQϷUŔW.;9g/u&yɾU+'t~(տ٪//yۈRg %&h, 7e.=l[o Q}mrYJsb:{œ9C-.8f:ؓ>$p:cY2jz䙖y c`gh^OȆt6[bf1[guTF'.o 0zKnAb*bbLG+ {~y;:jPUG5fi}(=wN@Q᩵ LqpVЙYJrs MobXRᑯ f=xOVBrŔ}8i e6H&}aCLEBRlq$? 8N$H e:EW{F3QxJ{ç σ}9km~ImTRH=8G,w .# V-v NbNrr~KG>g`wxTsBO*@Z- RRz .񷎝o 324d.7>_r3~n]@s2ޭyG6W>&lδeOWKKbQgmG:-Sp&ej\ hw|v-MuʢMjkp#4ꈍ[{sE{4VE!Kpw a$F 3I@#7qH:-hFhmD6O`5~;w~[~{a“kS$g!hن JWK5+ ;ǧ!gI c#F[,p>lH'S!6qk`WGNq)< T)ܲ.x_Fl~>̻]0C1u&#H>ĸ'VD1uge7ُu-7>vi{:/$ZˍtnL#~Hd''N T7.ٞYgŮ\ guUkTza_+^ZphnaZwPO򧣅[ЊT ^JPnqg'șEn8nPwl4| |}G,hC ޳ߘ`` 9RM fP8?[ (>FkݕCB;:Wta+($7%d1Uɼc o/_+r^I祗sJ¥!*D9կ?ThJMv9@_Y|Xze .4i -*;{ :> 斴G ^UIixx;,]ʑ `YO!1,ZR]pJ;$"wOouNLW6xm-c_v>ߕ!u^$u,u)=ꀊaHTy *7A 5e&Ph`kTw8 l6d6K*,ԒԽ{hrO3d1b?'?k9<3$H?/5lw $cǶ )XGb-zq:߻3Ӌ.,Z,Ik#~X1p 8,:K(+:K:O޿J!NCE^X"!8"63{~N Ra!e $t Jip8!l831L.s?2Q$RFYVϮd8ܹܳg"oQhcS< H<$U5%wXmpr3?׏oidb¢ M'\vtv<8 xpDLbݟ:[`YLI6s"uqbV9Mdk?ڄlm4[c 1Sa-͏f3cʪf&:l(5ӫ -M Jꚲ+[jKq\( E`&76U> /FontDescriptor 34 0 R /CIDToGIDMap /Identity /W [0 [276 606 552 220 496 276 552 496 552 496 552 716 552 276 330 552 552 552 220 552 276 496 276 662 662 552 552 552 662 552 552 716 552 552 716 552 662 552 606 772 552 716 552 276 496 662 552 826 716 772 772 716 662 716 662 936 662 662 606 276 276 552 276 826 496 552 1007 496 276 ] ] >> endobj 37 0 obj << /Length 840 >> stream /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def /CMapName /Adobe-Identity-UCS def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 2 beginbfrange <0000> <0000> <0000> <0001> <0044> [<0054> <0068> <0069> <0073> <0020> <006E> <0076> <006F> <0063> <0065> <0077> <0061> <0074> <0072> <0075> <0064> <0067> <006C> <0070> <0066> <0079> <002E> <0050> <0041> <0031> <0024> <0030> <0042> <0032> <0034> <0043> <0033> <0039> <0044> <0036> <0045> <0035> <0046> <0047> <0037> <0048> <0038> <0049> <004A> <004B> <004C> <004D> <004E> <004F> <0051> <0052> <0053> <0055> <0056> <0057> <0058> <0059> <005A> <003A> <002F> <0062> <002C> <006D> <006B> <0071> <0040> <0078> <0021> ] endbfrange endcmap CMapName currentdict /CMap defineresource pop end end endstream endobj 7 0 obj << /Type /Font /Subtype /Type0 /BaseFont /NimbusSans-Regular /Encoding /Identity-H /DescendantFonts [36 0 R] /ToUnicode 37 0 R>> endobj 39 0 obj << /Type /FontDescriptor /FontName /QNBAAA+NimbusSans-Bold /Flags 4 /FontBBox [-188 -307 1069 1070 ] /ItalicAngle 0 /Ascent 729 /Descent -271 /CapHeight 729 /StemV 69 /FontFile2 40 0 R >> endobj 40 0 obj << /Length1 6012 /Length 43 0 R /Filter /FlateDecode >> stream xX TSWJ (1$$1AP@< H>*ZLmVNǪmZӻN;ә; $*{$;g?C"!;qsoĞT6›XH*L'!ǰRwCl~ * jBcjkBdsXոV W>RBhH qgC Wى2##JBN~=n7H7v^8I j5gI86c*"j*;<\P$6wClkxBigwc-YE6]U6%855밃_Qa7w![$crُ-N# &G-,Ħ9h+23\y@@k]a镶J>5k '?h&}׆ثϲCW8cTȫy`cML DUDZA+6,rdvvy vΜvVU8;ʉs6p*oI PiI;#po10U_j^I8Z507 aGi=ʟS dO\ RfU3} ѸHܷCvCyo >85@䨰C= 5 8@ĜFB"?7O |Ly*\nW $nnh~Kgn>ޮqxso{N" lhRɟ-V3j_hI)ɔa I&"؛yٻ3f^aӵ DtkWр"SOZ6zB豵ޚhُ6-<(2р8rJUĜ]g)l +S 9WiG_fb/nʱPZrCRJ|>tB[f8h5)lXvCuߑ{,o}xQQ ˩S:F[}Y^{/^6ĸFt!\'9X0n^=N`lw;+osMK'g o-Pl@dx][nj7[V”w>c gZNQl*S/nc0KV4̇PEFAם{qmSJKgeo+(9\ܳ<)iyQr)Qr8<\+˭F!h*_3w~սHh"mA:o 0gJ$Tr"D8h&q>-aQ. i}ZLk2|i]=G ᲻iNg!X#"lo5}5{BȀ5ݺW)hx 3dN=Ex"sз9 {ΈJb/HWRtz-fVޯmc8 ]@O>įăO{=zb)$4LEJ*:H~~K#t~]\Da @fy;zȽDZ2*v xqCh}ͳ;2JCQ1)Ejur)Mv(>14X5rTSyWvNjCnucY*n;_f M&9D|O,DaP @1x&禳?-.p TlIٱ8B`^\S{%@@.iB-7,/nj؛[UCJ'Ϙ- ,K^Ul7m!_HIuCCGkΏ6.GYjJ?hy"bF˽!lřч4.k0%xIt]OXBav{B]U˵ Qxֶ5xOlXMf̟73|ч`ea讄z;"TA|n$QHEj Z>?^{$yS}Ԥ9Zwi \ݔzZ,+'WlVA8o|*T:/>|c}#9a{º_C`RKm,uIV77u9:%.Hv n:4o.(a٫O!ƅE/i8ڽj4iax ' /;wOm^~ K 'X1nG }/o+hA;!.7G? EMs=yxe+Bb8>bm1,,4~U;ҙk03]jtqJ(,e+SHf/hiTZ7dx܎4O1,Y,;ƶчUتL-yG6(Cw8{a#J7qz o==s3+ ?İz~$=l3J[}W`L+kƄln WE˘94)/My(,5ܠ:zǎqp4;w`2~/ \k|S'!F(s ȧ.0h5*4ms gZBBf-"`964[s%"xt$-H\$-ɹ&WU}N[jB&?BcE|s,_P/:& 9\DG7rx- _/Y'0[s8Lj+2+}Y&i8cz+1Jր&8&n[be#k!-Go :`vXhL~BLYǪO;;{Gqttl{w8rOO5a.8$Uya>\LO6h)J8ZQ=;rG; q 0Vtfo_mXݕn1|d v@nG&D76#A|.^ux{2 &$G2[-sv=xDט9alZ!'D_+M} ilK3Q;X_EǍ !t(J!bi1p(JnS磋ñ3Zf\ˁ} 踷K*n@4Bpƌc<ĉ%㇣C^x1Dn!)[TIlF`h.#a*nX%:- #d$\&6oZBC_뗏9wr,:% ޺%:r_]X請lOɠW|uJ$0Wh Y̅J_][:""#,s7oۢ2FbT*߈*mms}FU8VZ6nboniVTmlNu72踮X\2LuZ޽Qe="Q!zYB7iB7zRKBU˿[{nr\H΋g/ endstream endobj 43 0 obj 4469 endobj 41 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /NimbusSans-Bold /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> /FontDescriptor 39 0 R /CIDToGIDMap /Identity /W [0 [276 276 606 552 606 276 552 552 276 716 330 882 772 606 552 552 662 386 606 276 662 606 552 552 552 552 276 662 716 330 552 882 330 552 552 552 552 662 716 826 606 330 606 552 606 606 330 716 ] ] >> endobj 42 0 obj << /Length 693 >> stream /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def /CMapName /Adobe-Identity-UCS def /CMapType 2 def 1 begincodespacerange <0000> endcodespacerange 2 beginbfrange <0000> <0000> <0000> <0001> <002F> [<0049> <006E> <0076> <006F> <0069> <0063> <0065> <0020> <0043> <0074> <006D> <0051> <0075> <0061> <0079> <0050> <0072> <0054> <006C> <0053> <0062> <0024> <0033> <0039> <0030> <002E> <0056> <0041> <0028> <0032> <0025> <0029> <0037> <0038> <0034> <0036> <0058> <0048> <004D> <004C> <002D> <0046> <0073> <0067> <0064> <0066> <004E> ] endbfrange endcmap CMapName currentdict /CMap defineresource pop end end endstream endobj 6 0 obj << /Type /Font /Subtype /Type0 /BaseFont /NimbusSans-Bold /Encoding /Identity-H /DescendantFonts [41 0 R] /ToUnicode 42 0 R>> endobj 2 0 obj << /Type /Pages /Kids [ 5 0 R 17 0 R 24 0 R ] /Count 3 /ProcSet [/PDF /Text /ImageB /ImageC] >> endobj xref 0 44 0000000000 65535 f 0000000009 00000 n 0000028871 00000 n 0000000267 00000 n 0000000362 00000 n 0000007105 00000 n 0000028730 00000 n 0000022643 00000 n 0000000399 00000 n 0000000450 00000 n 0000003004 00000 n 0000003025 00000 n 0000007084 00000 n 0000007435 00000 n 0000011005 00000 n 0000007226 00000 n 0000007415 00000 n 0000011266 00000 n 0000011026 00000 n 0000011078 00000 n 0000011591 00000 n 0000013181 00000 n 0000011388 00000 n 0000011564 00000 n 0000013702 00000 n 0000013202 00000 n 0000013535 00000 n 0000013265 00000 n 0000013393 00000 n 0000013598 00000 n 0000014020 00000 n 0000014968 00000 n 0000013824 00000 n 0000014000 00000 n 0000014988 00000 n 0000015201 00000 n 0000021256 00000 n 0000021751 00000 n 0000021235 00000 n 0000022787 00000 n 0000022997 00000 n 0000027578 00000 n 0000027985 00000 n 0000027557 00000 n trailer << /Size 44 /Info 1 0 R /Root 29 0 R >> startxref 28983 %%EOF assets/p3x-html-pdf-output.png000066400000000000000000003340671516065662600167010ustar00rootroot00000000000000PNG  IHDRz(sBITOtEXtSoftwaregnome-screenshot> IDATxg@W7ґ^(*b(bGQ(Xbboh4[lx*JQ@{݅yyEDE4̜9A.Oab /̦Z$ WH@@\!B r (P+$ WH@@\!B r (P+$ WH@@\!B r (P+$ WH@@\!>Ž{Q w3 ,VSP $ߛWoo۾}H@bsgͮ wÇ?x@O_#AVVݾK.MG!mb/ߵ+MH$钍MSP6Wej7O!m~bqzZoYP("0̡Ç7C4$͌H$zYNvmWY؄椺ٳǏcNMMk֘6a` Bz'ɜ:c00ςyxݿ{V$Is̙x4#H@u<CK_rAe~JK=וRX :8:4I`_ 7J,Hgϣ)1ބ-DO<㓞^k}SSSs|֒$e%ـ)$ߖ-7?}$j-d21C΁4$ X*|o%1/}˼3LyЀ~jjjo8:i,_Dn48$M/?? ߫WTs$I0i}-0ƀ) wlP$p.sfLWTTOl h >ܻ{wjj' \ROWh\H@?ziߓ8բeK:G=@6)Sg-I=j$O|ބ$W"("<_M|X+oll|533Ǝ @>*?555]zf:d=A*'G qé) x5j`rщo޾#"<\ ij$u[b9+HnP(|m>YuO[nH4$?cG\gd2'O2hРF !m,Y;}?x 3лOs2 i!mxb8$$dII_}^fvc䐀6WsIߓ6+a2cǎv݀|0U23۲%񓯬ŋz  =_iPЮ;?|e=::?'H@p؟~eU,k...  g+(߿g[k5__[>fNSPP$A$}vמB^6Hf˼utu6f h}x{w_VffTb/\ХK @Z/g|O9s4T#G?a<^z- iٿ3PPu]Ĥ*h. !3M iSQQ[}@˄!t X¤^}l:$:zH?4$ui ͋H$Y$O<`0 ΒjKrl`qJ5:XLMP5$Y[}4#H@D7oܾ#:220^JOOahTnnnR;UUU;u4wݻS{ߣG󍌌f͚M ܶm!cǎ.\~biFJJJϟ??k֬8jE"##?ݻw>|Ejȑ#H(&LȠl2zgϞy{{BVZ5yO^oڴ>ܹscccN:%CsM Xwdxxg,ki [-@XdɫW!bСCqqqqqq.]***"3k׮ǏS59s2sL쳑t f9|K61?p9oo93!l6ǷoD=z #L2eaaa***rʲe Ɔ L" ;6pWB,,,Ν!Z>xw!EEE999EEE/n [fkhh4u _ ݰϟ7jwI&˖/lC__ɉvuuMOO#MW\I믿󓓓666SNpBFF?!6lPRRlmmm---jRivv7o Dy !,++wmBȌ3޽{cPعsI&QرcUUUӧONIOO믿!Cutt$TTTܼyݻw\.xС(<<<''̌<͛ʊ._TTtƍD;;;&O^H2,lڟ擢|Ν;7R`0ө~]-|>fBSϟ#GTTTBݝ?Vuu_[ԵkW۷.]4`~5BHNNNhh(!!!'N`0JJJǏWSS#:v쨤9N۶m[jm-_ˋ0|BHZZSuuuKJJBBB f Æ #BV\I>|Gii_5j(V^~MZt)!k׮5557Bbƍ"##_ M@bqxx]ļ Xdq5 7EEEԪv=<<$XZZΟ?իW111ŒQQQTI 6mNݍ***bjjJmP^L&sذaW^}BA%ԄZB+55 |>_jY}zI7B穝>| !Tx<ۛm >\YY[h<}UTTv*|?eN<9ydE;v hjjVTTTTT߿_򩜵b0R_vCMx͈#^ZTT@;88P]dM%%%uBFFFHTYY+YyL'Ъ#]:871o\pѵo_wNjjyS@ò[hQn߾fhhH 3 0SRRBeWgϞMKK#ZӧAAA5j>Å ޼yCv҅Z$O;w㇄PϮ? !|WQQALlUUUj$dddbmmmj ź~THe-BX)eGLo3fO~ɻ;sܹÇ]kԚ*8w!vȑ˖-SPP ܹQcH#""222ttt$K* j)͛7LvvvF`` QYY#BHǎekJ-Q"<}HII7né盙)))7g-T,muKVff!Ep80}hjTY]PP@ѣ=hޯ_?sYYYƷnݢ$ ]]]CCCb7!=zPRR<\rيΝKIIן={v|/"z@9c]iOX,.++|򜙳fNիMWqqq5k϶mRO}vDD!W^rS9/]DLzgM$kkkI;!bٳP$]~СCiii cC 6Pؿzzʎ;ճm۶y攔]]CQ+h* X܄Ann=xHdlb2p1cƴk|># :J߿PCCaСԨqbb"ROO.B R˔D`0޿fez¨ҨlNEE%???;;ҦMmm풒CJWWZ /KMMCR;NС5zfffȠ)@E%Y'ù>&!CCА|߼ySSScii9~xɵJEEEoNIIQSSussk| X,ؽ}Ǜ7oi<}t= P Kmo߾g׮())~C“;&l6ŋwnHOc͢Tӧ444! ߇6pO$'敉2Q`:w:aACT[f;O@i|>?>.GOE"Q COOoμysϣL"\ųfq C7ndf.ByiY (M$UTT$%&>~U\7{)TUT̘`B׿4G-4DOx"=-f7uPC[[g5?h-=TXXlyM`XYYaÐ9BZ⸸=}i>Q={nشcǎo KEEEdD㇏BC ||."6zˡ9yBZ/l6˗= nԋhs`'|~H5krNNN#5ahdВ 337u8KJJ244ҪP(,((066ܙlccCmWVVD"Jjjj $x<^~~9!$77W,nZ2[(///++377YZZZYYٺuk%%%j˥2 zfW\/**:u!9**jjjܹHUUf B͛7oܸ~zX|ر0CCÒyӇxJN++OCA>xp3fc+i&Ɵ. -))9p)XUU%SRR뙀-55588ɓ']vAaaas̡gڵ255uÆ zRWW'DFFΜ9ZZZ۷oWPP|ɓ'mۖw^##SN;wn͚5Ϟ={Ç`08ӧ*6p+đ?9YC]sגe?iii6xHAAgCIkhh̛7/11)))'OrJn[k-I0`˗N:yO2%--ѣGUUU׮]߸qՕJHHsΪU>ANvyfҥaccJ*))!B,--LfqqP(HOO;v,>޽{`ddD1bڵkBajjj^ !,+;;bjժ/^O;>}ldzҥ'LPVVn===j#m۶m۶%-[׿E"QHHHuuO?o߾.]hjjʖ֎INN6lX6m.\('O1==}||&Olggw֭QFBd[[[[[[ ¤$zguu5RTT$8;;Bbccfffvvvǎ޽{xxu)޾}۹sgBȎ;‘քSSSj 5tt XPiӦmΚ5а!φbq@@v`X[[om+&}Butt7oޜGm>|۷***&M"EFFzٙΜ9S[[4%%Ea!#F8p !G20++RUUU==b##H˝! ,bk׮]v>v`>~|aTի*++^qFB˥BL2B7nXpzUUޜ9s455^{={4@<OKII=zd0...miӦMV Ьjժ~ \.wՄ+VPGKKKmmm !,k&P+I;Mսuևy<%#bӑlbb0**j޼y;zAUUUzjkk=zeN:ս{}ihhPЕ|jX533Ú[n>!CUM͛={vff&5@ΐ~ٺ5+;d0SMyz55رcYYYJJ AC%&&:fooO( 鍽{ZYY-]T__ϯ>5\p-~}k7totmFF6=9sfڵ"zBO\\\,  KfffjkkSs@UTT|g}M~…Þ=o 45׮[qfdRtttF}tjONN:0Llٲ>ZO}JZkԩShh(|/_~ӽ}K.uJJJg 666=z \vmܸq:::%%%%%%Toqnݢ>}joo|Ν.]tҥ俄B;wN:EUd2nqǏ6mڬYn,<@-<==֑8\ IDAT[ghhbsBǎ~zkk^zoߞZ9.֒Re\]]ۮ]w\v\]]g͛7B222BCCʷom۶+Vhkk,]Z%xGdg.ZL&ɩ9~|1P322TTTڴiT4''J>Y2--ښb%&&ihh$&&*++[YY}v}l233תH___$ҋ됕UVVɨD"Qjj*Ϸj—~#@ 8y;wDMQIq(V,^WВa vgAO.\z@ QZR颟-c5w-PiB걖ڵogΝ~(@0I{]JX:@ z@Gnn˾U5)S.X~iАȡ]]˖N=-޾P(lll֬[7`Y#F:ٮ];duH1ﭫ|jj/|%% ໄ$%%ݽ^zdlbnF1KVVV>x(;+ utt\iOk H$~ڣ>Da~ްܼ14u̅|g>eԅikk7R`߱>t(++[rIx'iYX,tg ^i/0^ M@_ǿ>{g m[4^T-AK|͞.m=˳X 'y^FKKQh Z\H$:~wq,{$55F hY X,~Źgycc[8p 4W߳dI&_@тP.{ׯ?YRQQqȰa6755C`-JKI@bӠkW|iS/]ڪU+9Ҵ4;;Cl6b:::6mt3>IHx<']f= eb6uu`2?s|WE2}=PHcCJJJ /ZlFDD~ccu6dO| F'{MnvttD ЄT =s&"NEE!CW^eccT{K@_xqU@HQSU2c utt00|W haa$ߵ\1yEE& hO*3[z];{`000$AAAW/ BBprMMHEEEƎ$())?~պMHz@y<{R٧KΘq@-}*ݽ{3 bna5Æ Ò#oVO@SRR>{8e=3-k (>vHFF!Cl5jm'4T,߽s'$$dK~Z5UkV6k'暀VTTh>CsM@444#楹&BPAA\Phv (P&~7>|HYhQ׮]hjjݻ !&L2dH5}r]]]GGGOOO{{k hRRN0AnS:;;7R"+W̛7oݺu ܶm*++/^Puٳ2xÇ7TU_LSSsРA FjT`0zmccSPxI##ٳg7`sw),,tvvnƍ֭[#m%BBTUUY,VAAAaa&Uq\S TWWB233KJJtttMKKSZOMMefffzzzǏBN8ѯ_?jddԩS|ѣGg̘!S6Nz}ee%!DQQQEE*--Ȩ 8NZZ':4okRppߒ%Kz=fGG5kx߿e˖2nчΚ5X-// f0***~~~Am3FО={bcccccmll!UUU&M L&SAAA(޿ĉT0'O}!zzz/_VHbZjUǤ |||ZjժU+*sd^z͚5KOOޞ&%*` RPW7qɷfllLoSi5Lqvv666 F !...zne^\]]˶MmOd2/_|>58l0j'񙜜,;?UV[n)EEݻ߾};//^${A$"xxxH}ڏ P5 ٳg\.ZxFjyB*} )˞B6x<^aaTLI>| wY5 NWK+-" blTo1hhZ7*r 5dLPLP6j(!$//'?600pttdXݝz0'ٓ~Tzر0BȨQUUU322$PѲX,]]ZO"SߔothڶmK9t!ё:Խ{wjٳhH$:uSr\FߟHKK;w%K޽d2p: Y|˓d+?~!Ϗ^#N>Me۷g0TQQQ_~իWgggAD/fwpp 榤P{޽Yu4fJqww? !G{իɓ'w=,,Z&߽{=zVէOWm֭[bXQQӓ2}iӦ>}k׎zmm_~_~Dk׮=|IZZldnڴ*9|j Ԍ3ƍ'b1wB7iҤӧOx3f̘1CQQ… ***k׮: !Ϟ=|fJ$ܥ !С!$""?O;;;TѣG[nM=m۶B<<5447p@X޽7nܨf/^xeyfj}=QuYYٚ5kw%%ݻwdddjɓOjݺ5ׯ_>@1q&I=5}eeeBuٖ խ[7s|> {eYYȑ#l6۷KKK*$p8jsss///xFEEݻw/??_OOɉ^T{{BKKMuiii)))bM6cƌDpBQBHvv65ޞp8ϟOHHPTT633m@@@rr.\S'4!xh\!B r (P+$ WH@@\!B r (P+$ WH@@\!B r (US&yyyQ2|ׯ sOYTTrܯ;P%))hJEEEuJZZZAAA#Y"##bאepܘz% .S\\Y1@M&%%?СCvpppee >|uFGGߺuc;|pqqC9qD^^^CT˿TUU5T<~~~ U|[nEGG)O5kD/$44;'eeegvKcbbSCEMՄm۷o߾ٳg+Dq}A 0c;|=wޘ1c۷o[CCj@__xb&Y΢)++Wn&RRR]\\j=ZOCEM)кD#F 8ońǏteԩ Yqqqiii^xxxbbŜ9s444<8m4CCCBȻw"##g̘{l33ɓ'BΞ=驫}ռ:Ldwx`{ȑs!p8SB\Ҿ}{''ȻwVWW3߼y3//OOOo;vXlv޽Q\\痚پ}{O!uٳ[j._?dddiޞ5j(BT.\3gNDD)޽ʪJLL\~}RRҍ7 lmmMF߿qFeeX,}/TUUGL~+++\ҭ[7@ֿᙚʶ񂃃555Njnn.yM$#gx<7o|{{)SXI}BKKӧ=x̬k׮wX,x򥾾kYYȑ#꾍?|;;qvQ1oŋ]t144ԩSb___.gϞ+W2L_BȽ{ZnlllI[ZZzҥ:(++|ѣGUUU׮] [Z\PPГ'O=<>>={\n35o&N?]zr1 k:;;ݻW*:8|p55 &PkӦMrrraa!uVAAue6l~ݸq#//o̘1yyy;wtuu]b߽{X,.,,qppX`ArrrBBmsƍy=ȑ#III~|>?$$$44~8qKKK%ëׯD 6tѣJJJׄVF% [p%K޽{ɣ|>ǎ}Y,օ !)))ԄNٻr֭ȅ WjntݷqiitR{{[zB8`0/]DMK~榬d2e!'O433ի}X,޶mҒ%K ܹbjjhaaѿZæ=?{ʕ+D-W*yS1HEՄ7o޴nZQ7*gϞihh[VVB***RSS311ڰaC899uޝҷoϟB\]]޽QSS=cƌW^SFDDDGGу!44fĈ3gr8'O[ZZ988Ѝ~,cZ[[BÇ/L0|pkkwޙkjjjii}`hhhXXX߿ё2L&z]BϜ9#j ݻӧOԩ!d֬Y>JJJ&MS̘L&ujE ti!q8y)((XYYQ>֖^qq˕ [ޫKĉ~ٳgoڴ铷'P&'HE666c0|TYYYSSږa't=<<|ɒ%NNNGX%R5t׷0!!}zzzyyyfff)VVV_JnnMD7R;9H# 覭UJvvvԀ!ɉ fРATy[[[[[[BHuu}rrr迩{K.BAyyP(5k֩S*&h?Ąj(777))NBaqqq~~>- IDATBMLL$eٕկ_?B_%mۖbikkS;nNdďdnCqq1yYYYIR-G_}M^^zŋx7wuuuBB͛7322dgt-,,۷TzKp8􏪪ԶX,666VSSۻw/3Y>'RPPPQQ"lj™ӑ#G8N= !TF?˩"''9sfٲeL&0ZkjjjWRb@x쨨;vܹS'O5 WFۡCZ&ɅG55cR}τ>IO=d29uIǿߺ;jm=44Q_޽{.]'[`رcƌIIIy͛?.yTQRRFMM6&H]juuXMEE2P_R .'۪5lY~m&Zo9ǾPR\\\^|gnn^GIfZWUUutt4hXd\]]|HmQmڴСCǎSSS;wLS ֭[=ζWVV&ZܹGL&ɼu.gΜbjj:j(}}}gj~hH,  ^/T~jOH]>d2~G@ЩSP눍ң괵#;X+ >E6J߿Ϗ`@Ю]WUUSNX<˥ 꾍ȩgϞz B_2N_Zk.##gYVV^w[55ZÐZ*tttlllΞ=KQ+,,а:WJKK[tgpQWWWEEEBQ֮]kii6a5ݻw_rEjj… L K2Z[uuukRMFi{m׮]^^aHHHϞ=_333oooss󴴴q12sL7oޔH~OƄ###___mm.]8;;og^`޽{l%ŪOZj3}m۶Y[[S7x>}dæfKK7n۽UTTJI\ppp_hK.ի׹sCxٳg?vY#׼T@`ii)9bŊLLL$󋊊,,,ZjENOOWUUWx|>?##`XZZ="233kjj*--M__u%%%ڵ5PڴiC"ڵ*--$8''LF[ZZakkZ)RrrrJKK%ֺ:I}F].hff&tZZZee^}jkժU~~ĉ% qnܸ155UCC){$%%?4k Aܹ555QQQ6m~t˖-/S8,,lƍ c@ 9rȒ%K1 +$S{{{BBBiiӻM4з7nLᚚ:###??9; ;v30j=P*$ UH@@T!B R (HP*$ UH@@T)p,BdX:::t~[/:TֵAFHL@i42D 555 :TUUUNCCCֵL$d2N@t,:_G։D"O_ЯB.D2HP*$ UH@@T!P(looʲ B,TMMv!8R?P{{P(:d:;;y<v$7>>IIIl6/`0---AAAnȋ+===553((rƍ茌۷dff9rxٲeL&s۶m'Onllv횥 ~wW__][[~wBHNNNJJJVVVYYٿ/ccczQF}72o155%,Xŋ|𡩩ҥKnjɓ.]jkk=zthhl.$ՄtuOOϿ[(n޼J# .]u9___ooשּׁ/~'ϟ?u#@.444dffQ݆L]"?E"Q||jiFFF||<~hgϞׯ_Ry@ r>dѣG*EE$BȵkqK p!jjj> ٽ{wEEEYYY|||YY!?ꫯJJJݻ`cǎBΝKQQ1--ƍ2n ȇGFFM<֭[ݾ(ccc⋼<>o߾Y$ŋ !aaa?իWO>hѢwR%7o|?oڴ)++?r2mȋjHdnn5hccC]UUU gϞ]`~6??;wx !^^^K.K.BRRRh4ܹszcA֭[xS_cƌ▖V,--={Inݺu-SSӓ'O޾};---,,,66699s2j ȗ{655Ш{6N߳S$$$lܸ_͛oT$%J훛'N駟\f͚Nt UUdmm퀀:Z^^^WWb',^xĉwyv]2dȮ]th T666JJJ,aժUP駟N4)))\5L9p!ŋL&UURR 511ϗUU'$ !dW^ݼy---uuu YW?h֬Y...Ϟ=魭# [[[:Ne„ ???SSSjO Rj[1CCCEEœ'OڵpLb``?mAGG{葅5hƍϟakkq]vmڴi)ȅիWnݺuذa ,044ܲe _'NxԉҾ?@jhlWYY^_f߻wO[[V$Ɩ.ZhĈOZ-)++ߤSrǏvaFOOR[[#GR߾}͛JJJs133Qzb̠n޼9dȐ9| ?~{PCv4663gӧO---tz.. ---5P ޝT999¯w*7 P$ KAAAl6|O Y***™fw BYB B R (HP*$ UH@@Tr*β2&@N(h4t-x"]B;LHJJJ Pee+Muu+>|kYggg]]Lv-Ft$ 9kCW& (HP*$ UH@@Ti{tttU+.r5&&FֵA޽{nݒu-dCNЄ(++[XXǿvo߾~/fo޼)q@ cٯQx̘1Pֵ73mڴUVt]3FGGgŊ\."""LLLw)<7oʕ+Ʀk; /uttlmm9M@ !666"H$q8ovS&`^*/\';;{ƍe81/^ܵkΝ;======xC\UU5k֬7޻wÇ|MM%$$_p!11q ]qƒ5kքQ妧/X^\o)..w?k֬ނrE~P1`uu#GBΝ;f͚;v<}*/׬Ys˗/Pׯǎkmm #..nǏ6@k׮":.z… mllpC|ԩ &m۶-..ϏUV999999;v k^uV===BHUUկ*NW(}wPnffviA6% RPPhllаaÆs BnݺM6YZZ>~xܸqϟ?'GFF9r6m$4&&&##k``g.Z( %%OBȉ'Ν;"NHH^FFFI8//oY,VMu+pނ𮱶>|0uۆ-[!#F8w/ҵdɓ'MMM] H w^N2b!999/vuuIHH8qb}}}TTTQQ!gsMMM c7n|٭[.,,lڵNNNk׮hgϞ&H »믿9s@ 8vزezK@%vr++\{{-[|UUUwР+4YW]]?dȐ?d2ŏ}xw~_u-SO$%$$988L01ѣuuuga0 =***VUUQϣQ_>vX-L<&ihh'UݼyёzhZ"ÇO8qut=1>zhMMͬY\\\`FFÍ !,+..pBeP,-- {׮];p^b̙3ŧ&N(.ٳpLgggѥ̤aÆ-Y IDATD9%쬭i [H@ (mF=*+H@f&<@?ӓm 3gʺ 2+ UH@@T!B R (HP*$ UF'?BPU$'~D}"YXXHײSYYs|\Of+VHuԄ ̶m'sĬZ)44رc]sհ0}}} [Qq@hѢyKaBalllxxY``ӧ%ڼ0PBHAAAccqCCÆ Ν+ i4ںu6mdiiq=inn~ȑR[شiS]]AIHH500hiiqrr"?SZr6kk넄ّq^^Y,VMu+pނ𮱶>|0uۆ-[g̘!.wyISSsݢW( byyyBsrr/^ZQQQSS0q"333BΝZQQfgg.6nxСٳgBx<^NN΢EV^ݭdssexxo3 LBvvŋCBBLMMe[%xm˗/}ֆ BBB.766=+))S_IFmmmjYGG kmcc޾|ryĉ˗/KaUUUsv=Ri+T[[;44B,,,ƎK!FFF?uOOϴ4+++gggPhS}#www޽{ !!--Fjx֬Y˗/ f_̙3_|񅬫OQQ1&&[tiiiCAAazbEEŮB:mS122̌~O>}ʕ%K9r;Nž)7UWW3gNϸ!DAAA(ԝ7]oD4Ņ;::ݻ__t$@ikksww;vÇ555e]x#/^trrյ?@9&''_l]]]=%%lggKIF.] '''{xxw͛˩ejD ;;N.rO8r$vPX__/ʕ+2jh ikk_gŅ111ZZZsΝ{,***$$Z[[[E"Ų r{@n]v-;;{ȑȹsƌ#*k OJJJLҥKBiϞ={Ν~~~nnn{=|0nݺuaaak׮urrZv-F;{lvv6!Db5_̙3]\\cǖ-[ Nhus*77~˖-_|EUUݻw544 !rםCuu!Czz9?%޽K_n200?>uD"QBBB^^Ä 8Έ#=ZWW7{l1l0BHvvvrrJ``!!UUU!---4005ju VL&PEEE51{{O.X,uuu# >|xĉӧO[. @UUCf=ZSS3k,jUFFÍ !,+..pBeP,-- s׮];p^b̙31XWWb=; tvvf0̤aÆ-YD| `7T_29M@d ($E]]ݶmۨSe 蠗Ҳ`YU@ Od}»`̙:2HP*$ UH@@T!B R (H,,++Ì B@- J$D"*˩81<'s+++377u-`0悗ɮ (HP*$ UH@@T!oVok Z[[cbbd] ݻw-YB64MHHPE||klgׯl6͛=MMMן>}3^>0Xܹsȑ왬o$&&fڴiV+))qzz1ctttVXr{n*""x߾}}~y\fB\_mfffbbuVq; /uttlmmTUU|mlle5tP&駟֬YMLLz?iӦ֊D9s̙3U+Hyy9Ñu-`8wIVVV]]]@@yz+YQQ ͺJLL;vlzz_dd/WVV28&9eʔn:s挡aVVVVV3gz JTZZڟ YZvm```DD?gSAww**̌s禦VTThkk7:thلhѢիWw-V]]mbbҟm **j 벮 ˗߾}YKKkÆ !!!ÇVu;čGV)))S_IFmmmjYGGzUb5{ioo_|91cFxx󟖖6ب$.@b^ o333>L!FFF?uOO;;;SFM:s8GS/ jccc`EE3(!!!|͜9s:::d]xM111555ԪnXQQ@+BNw۔x k2337f̘ǏO6~fii9c A^a$vLy :رcqeeeBP(E"!DQQZ즽]J\ƍ)gccSXXɓeeeaÆJ0\xZWWԩSvvv)))IUUF.rYԙTAx:tᑞbȋ:IggxXĠr7}!|ejjݻwt@Bh K>BJMM ߿_ܼ͛k.q8HN_xUUUwwwwww%%UV.~5kּ|ڟ[2i$wwwGGGeeyq8ר 8OBH[[[o***Y%xU|>ҥ&&&ZZZƉ]v;;v`0G.//ﶩv???======__ނ嶁,Y[[kii͞=O/{aÆ}<O&99YGGgȑ:::Tܜ`رuttTVV־49=J155MKKKKKȈw^퓸… iiieee=20<{lʕӧ'&&.]T|!w߿_^^>eʔ5ktoV^^^YYYYYd2ނ0XD ;vlt:{}W] oٲEWWٳgǏ'/0|>…xс.\ !k֬߿}v)dPJ~ЮKKK?|E{{0?ʕ+T :88l*gB/TaHk.WWW//Dz꺺sQ{o׮]<? vZYԣG !7:q/\0}#FBBCC/_uSϟ_lҲe.\[&gggBN߹s+!D$K G~4MYYҥKӧO'/0nRPP7o!d޼y o/_ %1)%Fvtt>|ޞ8qb?mmmLĻ~P奢r33={P|8ʪ lݺ̙3QQQk׮rssCBB444~ᇾk`TUU uEM}Gԉπeee"?zߧGQ^^uS] <| VAAA555BpԨQnnnGGǰ?P\b544tttZjʕO<6lyQyѨQh4!FY[[?|dvtt5wEYWWC !mmC97nܨUSS}vttossRRREDDĥKe>occ3tP{{리n_xgٳΝ;"Hu75{ϟ/EEE,kÆ 1VWWt:hii麩4550?oMII~z@@۵zknnVPP/W\YWW陔a`٪t:wM@Gy]BFǕ,,,!jjjT|ܸqeeecƌ.PnDĚƎK\h!ef ^m0,[,00r-{{{|D \̙3-[6cƌgff~=q3<OUUvrZALLL?qSN, ,XSSSDD|w G(*((H|駟e{{ݻw߹sGbIB RJZqSSS:.!D>&/DqyB;~ۃ222!555ZBСCϯC$EFFM<LJtڵzzz>>>3gΌD999FFF&L2e ǫTTTSjP NC"t@+//vww|vCCCMMM ޽{E"Q[[-(l2|#GN6477Wj׮]]ן0a5$DGGkiiQ:~3N8A <==I]DeZ___|I455=xOڂ###q0//E|(!檨888Pg4 >}:u7 tL&PEEEbkkk˺"З;v}.,,quue0= LB+uC^o^w>}bŊ R*ݻ /0O>-((=zt״fgff6lѽ5| B?A:PɰH@XOOOjd%!T~ f0,\PU/!$T!B R (HP*$ U^ tvvgt:SF|t-x4 ]UggP(ɮe9gyyH$c\Y iA$kKW$7H$d2,π*))a.xO  悇WVVfnn.Z`F/]HP*$ UH@@T!B R%q@P]]}=jyȐ!֯7Ǐ;::F&rWq㌌d0p8 Dvݻwt*))D#G|a͛7/XkBQTTcbbBE:;;y/qU||ҪU^c?Ӛ5k^|mm?-XYYI4i{W^}@Q^^N}$===窃Co***Y1xU|>ҥ&&&ZZZƉT\!ޱc077=z45_W~~~zzzzzz%*--tY[[kii͞=:7o6l؈#<<ojcc#~y=Wū&&&&݂TZWW{ (fEEź&D"$/**ۻrٺ@!QWWNMϙ3ۦ3n8.rǍgϞނ!Ba233˂{D"kkpHpLߋDjÆ Mx<}}'OD'OxZ_"h׮]^^^guuusΕI3`*--z G)**B###|C|…ӧ1z厎:e˔-[v…ނ0X4559;;BtΝ;]]]Y,Vpp0!DEE7++RZZ:fPs-yB͛pm>PBȈ#O(m$njjp8'Nؽ{?_[[駟HLL eeeѣG>QFuttt;] <| VAAA555BpԨQnnnڄHt%GGGBHiicdžnkkAmѣQFh4BF~!5jTor!xȐ!@}С#GVTT477>|¢ƍjjjvvvoߎmnn>pCJJJt钓mlljoo߳ݻPTv`@jhh011߼ywnnno={嗢"aooofS 릺ԤJ vo6%%۷oҢV\oذ" ?؜@;L׵l6[UUU$L~Б#G޽{B444q%%% BHiiR׸qƌC.555Ս;zh"BHAAAoIJJ} A'(((((ZϗS?|̙˖-1c333%bUUն6x<^] p\j b&&&Ǐ8p@PPЩSBaxxxDDĆ VZE-[VZw G(Rc8g7Kt:kInllǛzn R?`qqqQQ[o e%%%55cOQSS ΖxGQZZJ+++Ba(//-Ç'j~w!|7yyy_}}677߿_F===cu)N"L~n8x`ԨQY.]TWWG9r䈧'uҥK%%%Yf;vz7&&ۻ V _/w5jԳg믿 &B'MFz0L&zhҤIl6;--r͆ɓ'L:5&&R__EyfxyaĘL tuu?#sss???jH55ɓ'P0]VOOa̙"(''h„ 666SLx]wJ +aW1cظ{)))0L򯼼ߧƲzyyRAj6WWWGGG'''7776[P" 48lٲe#G6minnnZZ-vޭGYZZQ9Em㺺3f;q,((022433c$uD3UWWw}5455=x@!ƦdEyyyuuu...]GHp8***CdO>:u :&ihhl 0L,K]]zVGGGZZڎ;~wKKK*!.,,quue0=7% 333 !I${*++OXb}733: ;ӧO F5aٙÆ c>Zcci՛ (@@  @/~H&&6+ P} @V444d} pBYWA ` B R (HP*$ UH@@Tr zPr;;;eX:;;\.5;+[DMre]h4Z{{kYGG@ ɮe9gyyv 79^@ hZ2B!~XXXH<A>a.x' ^^YYL2xwPsdR (HP*$ UH@c҆$d5,YREAZp EĢXK6XU[;jmmZ7\;-:+[+XaԂlaIl͗-7ﯛ瞜rj{.VP"r1ۓ&M6m3cX< ݹsgDpT*yhcmm +j.79rDl6HlooooogXd2YiW<1lRRRz{{׬YloopuuӓǞ0Rbc5F.+JNNR ep{ō}{{GBZ. BX,vww///MCCCwwR@${&&&vvvxҥK7oă4Ãjpp0<`BشiӖ-[ ,8qDjjL&C\R__رck֬IHH:uNMM;.WWWXpRlV]]*l.\G=|P&!mll>{?f S__/]]]( ol㣡7!!&MJ}KCCCoos眜ݻNӧOlٲ3gz{{gddq'N"MOOkt#G ֬YWVz뭷:;;>ѣƝ;w^~=:::((()))##?ahhL&h>Ů{_{nڭ[+ۻ}͛73̏?f'cO@@R7 9ť!D"7P(NNN!6`0t:1cFjjj]]+tG "y<'wAUTT͛/``4[LLLppڵk,Yy} $$$ BCC'O#*:00 Q {ށfΜYQQT__m۶-[ ׬Y'=aTP(dr xA 4'x2llllllX}"!MMM{zzq>ojj:"=g<9ŃUUU=z0|W!:iӦL2Eqww7dxY&X1PÙ:u Yz5~ɓ'Uf W&=a L_7PTϸOs '/~:Bhxxϟ3gNYYojkk"B\.777̝;711!$ɢmx?#=44TVVr w̬,HBIII-3"BBB.\{PUAgSPPp]| !dccre BW\yuttN@O?,\7n* 6TU&z:.bnn`GGpXaةStyenjaaaXQQܹsuuuWXxPXOaφN2LÙ6mZ@@; a_x ssk׮Xhkk[YY;a̙3}||̙#TeXZZٳ}}}ϟ?aX__̙3f͚d20SRRaXEEE䋦+ F2L$ È}[ZZ,--??>_VV6yd^ 777[[[y/E ’ooolmm]pd&z+++x x MMMNE,gggǟ={YxӧOW VVVh]d#URN@=zO?d"Jwooo 8a48D"ioo{ _2@ ^(@'uZ@(Ȉ̞=3oB@j(P+(@ZA PVP"r!zL644$HUNh! Æ`vq^*X,J 94p8! hLF"`rN*H1 L&^*$J y+g@) < h&x5 TX,p W\ڳgahhKJJY,V``૯駟> ﰰ!o߾ӧOwttDEEmڴ|Ϟ= ܻwo E1M7ȷsssb+`[XXd2ʕ+&''/Y!TSS]]]b1Ù6mb77jUAY,ֺu뺺d2O?s̙3gJ$~M޸?&&&99911Q{ԸH$D6mZuuB948JRSSťܹsNNN kooӧOOLL\lYoo3gtuu3228ĉ'|||mH榧جO~oggm//?/e H"8q/MMMNŮ{~;222޽rʯ? 6͛G!cOŽJi?x<󻺺bbb8BqrrBl!kƌl6W^:<;>hiirrrrrr gNOOw^TT;DFFdgggRw ST~ {|5kΜ9ѣu)m=wܖB 3b TP(O+}&L&W)b|>tD{txrۋT]_I&L&ɬ{ ܲeKFF Y 諯*//GM6>x߿{L&f2lĊ 8ԩSU޻w/uȑ]iaO>ϿwށГ&^yA&9wi-@$˗/ϟ?Μ9eeemmm^^SSB⑹sYd||{ā-[6uԷ~ᑴSNgwر@F܌&*++ï[xeHHHZZѐh"}DXhkk[YYvfΜ3g@*,ä)S1C^ ðX2LJ'Lbb K,r ]h+  0jߖKKKOφ痕M**jٲeO'N֊ ŲG ܿz$I{{Ӧ&| (xI(U/Pj/.ZHӞI`0D122"ZFqmy&MH`"@j(P+(@ZA PVD.D/L&00l``@"62lxxDST2'bY^@ D'T* D'&nSZN&r\" P ς ^x<: ~xqܺu֭[xX,GGG*7X<>z!`0߿o:ue/(-sY>r֯_uV3.11~[xqjj{'n޼p***m*..>|pFtr8oVUh+ â.\I& bbb6o\[[(/˾} 'H$Zz3gjjjΜ9zjH{78Çk5TPOKs PEަl6sƍ7n۲eoymqKKիccc\f,Ç:t/00055U(~<o 0A nܸB f͚f<9s"fΜy)Hd2 Bfp8ŋ3LPlllzz__vZ BP֮]*U__ϟ5kBL&߿ϯqƍ!e˖SRRV^-a D$&RېljgX,p W\ڳgahhKJJY,V``૯駟> ﰰ!o߾ӧOwttDEEmڴ|Ϟ=#rdnݒ,//WG}(//$:#,X~z Е+W"¾}9r?]SSU,s8iӦɻRlV]]*1Zn]WWL& |||B111ɉƞ0555$ !D"MV]]mcc#]]]UKhnZUU5i$T*555\\\z{{ϝ;p޽v:>}e˖9sFWW;##cC8qBW?qH$rssR&}򗽽/a޽{g۷o':zÇ?zqΝW\qttįC (BL&h>Ů{~;222޽rʯ? &v܉ڼystt"d W@ PT2]@s PD222)Bf3 :g̘ZWW+??|鉿|wBJ޻wO277wѢE9@Y|ܹtҖv%KDFF޿ٳ:::>>L&S~ossL&sttTJÙ:u V{ŷ9#oߞYZZg͆ O>$??޽{@O0{  LƯTV.MD\~!4<<|ϙ3~C{BzzzMMM!.GΝ_fo4 D;|;##1LD?#=44TVV}-|yzzx44TUh+v̙.qɄTr\nWWWHHȽ?,_<**իHń+zAvv6B(''{޼y .<՟ <-XYgggQ\[ }j(P+(@ZA PVP K1BQ0 &:m0 DDgT*JT"(L&:mR)a}}}D'& z{{h9LFq,@) < h&x|833333ossSZYQQܹsڴi(|>NEjӒdǏQ^ Kj8HiӦYfY[[A@zccc <(J]vmsss33]/>xdgCCC... 奤4551Ly._\XX@R'LNNεkb±l6ŋnnn:)ыhꤤ$:NӥRi||y$='<<|tرcO{tD"щg9cƌ$j*4MWW׌3Ν;WQQ痚0,44믿...3g菛VTsDihŋ777/ӧOr?|ŊUUUODUUUX۷o{{{wvvqLDFFVVVFEE8pfggLJbAF.+JNNvssP(YYYHWWL&÷{zz$Ɉzzz0 ۻwo\\i(//F__~{xp8B,SXXPզ[Y_lٲ-22F }Ǒx n޼igg=;۷/]^t;Tb/zp@D"FܰaCUU֭[w-(Jee%aR0,22rN:=icVRR?g>vavvviiiJ/ic3#555͜9s׮]>b2&&&{߹sӳ 2Lo.\@uuu888|G|>?((uԩ 0q ӧOx^@#EUUnIIo?~ؘ??4 !QPP߯UVV֊+툈,UAD"T*_oٲE(~!@044tڵoyM6'Mooo/((@h%Kh4T(޾};&&L&22222::411_~_r_~sٟﭯO~P( ۺuegggMM?믿fdd6lĴu+V̞=D󊊊?'ۓdbAAABqʔ)xVGGQ+ ^Uh+_TTTSSC͍fǏh˖-khhdiii,ѣxcOŽMMMd2Fջ4S֣6!tmKKˆHtAʎ-[ bbb_N"Baaa0իeee:::fff׮]hp>|ԩS|>\IHHUll7|G͝;֭[zzzad$ONJ* -oYjr]!! %IFFy<ފ+LMMǞ0{ I$wi=T\\\\\\TTO?͘1STPkk.GGǖ6!qt!]\\^Zk۶mnnn?|0BD'+_?ӦM+++uX,|ɓL&oW^EO0{ LLLX,V.M* `oookk+!f555!`JJʭ[Ԑ?@F KRhժUY,ܹs\nIIISSӆ ֭[`aa`0X,Ç=R#z(6(//Tڪ(88{w\_uL200䤧'_L&W=aX,VEELa Pӧ!>\}}=NǷe2ݻ%IUUɓo߾-;&233) ~ٳg1 Ș4iRbb"aVZb@ hnnf07o,//}\ φ! ~۽{wDDDcccdddMMEmmmJJʔ)S:;;_{;wbpto&###׿=ڵ+;;ð/2Nz%UA.x-ӒS IDAT3y似 6TVVFGGKM_|Y*8::^rðhPfL1&//oIiӦ;vL&uTyc:NR7n(rɓi4Zpp0ǃ:m۶/vHOOwwwVVVaaa<[YY}xKoZXX۷O s͐|Ç,JXR<L'OWJX0&mii|HH$4(aD"G[YYj hhh|qqq?bP.r,#ޥ48B]]f4䞪VAcNw5A{{4.S;ŕG9I$T'gjjyA$X؟JKO}u3*|3<\m473(:YKt @j(P+(@ZA PVD.D/|>< hAF,  &Et@d2XLȡ,@1 RX3%Ɇ$ щmC"RP($:0`_KaQ߇,@,--@[YY6D'&:{{{L"rh@j(P+(@ZA Pj2,i6뀎ҥKI\]]###)988۾}G}dmm:hlFFF#60NgÆ ˗/422RuܹK>?babb2FP;y󦍍Mxx8L#irKJJ f͚eeeT̍'NBy4|iꤤ$:NӥRi||y4yyyophp!x0`Н;wڵk׮]N":0. /nnn_Or~׏?X'%%%55ǧUUPQvv_qqq|||hh(AŔN+W{#bn#>:uTB lԩSb1qDRT8?|˖-!_VXoGDDdee DDD h4ڒ%K_8TM36d2lvGGK{888x{{# Fnnf[ ۷oĐW_}U&UTTttttvvZZZFFFFGGwuu&&&/+W/{zzΞ=?/ "!uVKKΚ_Ȱ%l f777O>޲CtFh4ZxxQQQMM N777Gxyy*6nll2e `0U嚚db6D@.QN .++kll|cT͍'N3^4NNNEEE?ӌ38Jokmm!8::1 y'{0 !=88(⢴qnnV-88/C]V&=|M4iݺu- ڴi&&&===v?14@ $o44iϙ3!djjv;wOfhBM3-@UWvvvmLˆ{{{[[[!6- !dffЀSRRnݺ5pd޼y)gX ._,_QE&IRSSSbSOTTTowb_*===U J/tX@(f'OŦӌbUTTaVYY9Q+@\]]KTZ]]w߭\ߟ'$$۷o߸qolddt]PfffAABD"ڵK(r>@*"BzUTdii4ZMMڵkڤR}\\\F\A4saaa~~>BH&={6 @U/~-:y;C*6ordʕ+8  333WX4(fFFFv:{,aVR57N;v?=uaO633={Ęf{c5k֌-YD_R x0//bzzz9rɓ]t,44t7o0sҥt:_ZNNN/h@2LੈD 6h4pTe4Jzz;N x]op۶m322244ܾ}A.P[[aXOOOpp0NIiP&Ga&HFg(@[[YY)^ a&~(ׯswwbK|5ŏ UAE<Y A4{Zi&H잘 |*JW_\ipğD")D"??`c-t=s2wi45%:`0oB@j(P+(@ZA PVP"r!zHP?DݭGt"@ۈ⾾>DBt"` HDgD"ń'!I$(@!IH$a"Da|W/aDTOOR V}}щmhhhhjjJt"`%: $I{{;!@j(P+(@ZA PVPSdDgL4-))O?_3޽[1ѣ. L7nxDg KLLܹsۏ+f?~իRt bYOOG4|49vؽ{>4NJJt:]*ϛ7='<<|DvavvviiiJ6Z@U,%%!o+ =zzz􊋋1 +))qN3X<>ztccc}}3gڵ¢Ç^^^L&dϞ=x;w;99yzzVUUA&p… >N:UiǏ?tPvvi^޽{Wx|"RqП-[B666 ׿+ feeXߎR_PPhK,R|iCS5Ν*6V{888e͝ӌgM("/^H&_}UPXQQ1k֬NSSӀu}^_rC7xcƍ>ſBP$!njiig͚oddd,^vt>O޲eۡ"D'ƋFS(WWW:200qї`cc)SmQ__L&* jYZZZZZ555+ =899i43;v}%BH$8F{L 44urr*......**駟f̘ǩT BJG`08::0Pww{dBCC?իWkӚ4iҺu-ZiӦzIOOߏ6)bXsh={фf["8ۘ k=Bl6[q ~fL__ܺuKABv;vxCvEEE޻ᆱx{xXer pDl/{X  *++'4xӗ_~)J+WX|7n޽,((@H]v B. e qP]] .={6##\XXdgϞ x|<ɓBm޼+W8p@,fffXBieh4safͲ:uaO633={Ęf{c5k֌-YD_R x0//bzzz9rɓ]t,44t7o0sҥt:_Zeee!!!~ժU~Zafɒ%g FIOOwwwVVVaaa<OZm۶n߾p܀Z zzztɓ\7PT acL~>~tp4y2y!ŢRxpӌeHqkXZZ&xfRtDWw=J2L>B0DY /\cc)щoqqqv|ϑy4B]]e4fN3DngglY=]i{?'D<&h1f#hnf~0F7! PVP@j(P+(@ZH$zL&gbN"bD : $ QYH$TJ`A*H$ZH&I$a>D&ML@[ZZ6D'&:kkkL"rh@j(P+(@ZA Pj&x`@޻w/Qhd2yÇgfffffmnnvww}UK333+**\]]'of… X|>NEj Ÿ~);;["0 Uz{{) ,198ի\\\(s͘1C599/>xdf_xM?zzz`Xt?oBAAAMM,''ڵkbwqM\O;a-@(*E6EAGE)..բ.\Tpnm+WP+X\ &.(!!@ |ם_~[B_3Ϝ9PL$uww 8?^x"BP(B0::O;ѣGz:??>3g|'O|_~yfY ӧϟ͛7o577ð:%%7oHl.x0TUUf|>_V^CWWW]]iڴiw644heeeSN0a޽{ƿ1cmmm ˗/# MLLnb>oZZZdn:|㵵ůB!16mB>}:11QQ)Sy!l2<_fKwNN')i{.y䙖˗/) BHCCcԩ}&}}w?zŋBcǎƍߥL& ={&1 d4mmm}dd$B 0po%۷wRT;v'|RUUE?XͿׯ?|x!gg%Kw| î]{n%%%ɓ'Kkpܹs7oTUUuw.^q A?}?z1qcYIIɻw?533r}aB^һ IDAT\QQQn޼yӦM)))oSrHEE%$$ӧ7nLHHظqcnnĖ}111zzzL&_fgAOO_ $?fL&/rpp@]z۷Ϟ={YQQsM3b+R4+!*NSSS6&|a̘1G&z"o+w XSSB@]]/oߖB#Onn~{޽]vA(JJJ.\/~W=rHAAω!dccSVV/ڊ2n8mm> $qP@f666^}"WZ+ B!~m4g`VYY(ix(B`XOw<|!]TT"H~~~wp8|P(D.@/^HqywyGGǧO?EqqǏB"… gq||̙3333ߔ˿;:`0Ν;rJNhnn&G˖-ֈ HLS^rϨ;88ӧmݺf?޾};B8..ðx'''H39 ;L"^|q_322֭[N4)::uСm۶:t{k+++GDD,Xb?gKWWw鱱D$ `ҤI'P |ɻw.^HD d#08==দ3fVmm3g`ĉ%%%%%%xD]]= `奥&L0,444((!k111+V000<<\qA0RIL9s\rh"1\b1LZҵkׂvenn~5bO3&gPԿPoNDo0L +p덍u5`566jkkm###e+hG}ZXX^y#i&Z[[MMM\ 9A$SO\b?'D>5nG`4C~{H_ /H>&$R(*(@TA P UPH,D}?҇a- @ى(Hwɺ`$ <O&d&zaDu/>"F"dH J9T__ohh!뎀Q[[[___ vԨQAkkLN _H@R(*(@TA oG$ɺ`4냼~YfkiiI|Liidz߿͛I&)+SK+**J?_xq1555333"X]]}>A0bX, Cd2455kѡuuu+VRSSߔ`ooOz*--ĄBAɓ &Ɖ'o|ɄGƎ ѣGKSSӄ  ,==ʊ(Mt>?~x"84D:::9ڡ+/^P( E(FGG =ΣGݻ7uuu~~~}G&$$h#ϻw&O\YYqeY ӧϟ͛7o577>>Ǐ711ٺu+߾}kii٧ZZZOOOWuuu7.<<_mPx}$--QSSSOO![ccc.33wލ78[1 C7|gVVVGMM'--HOOs...111ه~F TTTBBBΝѣ?|ƍ sA$===&obgAOO7Q93@vӏ??w;V\?Oc4#"J3-@CTmLjCCØ1cFMDnkjjB744_~: %%ڵkl @-XڵkѣI$^o},\_VUUꫯrZZZձcvuu!lll`yy^ƍ@bpG4(H?{xx|swttDMEE>cðJEI3+@  }@@:}4Ͽ{nff&XGGÇ좢"D۽{7innoB!B3Λ7ҥK;@Sh4meeenn.NAXXX?~!$.\0{l-&NrY,։',XZ|w}G ƹsV\d29 ѣ|>8;;{ٲeR46ifoo_UUuHի˗//X@II㱱ʕ+%%%4{Bqqq899)F{aYjwy{{nnnF:}4|葍'Ν;a?l`````x#GR(===L&dԨQ'}5k۷o_JJ_!a\RMMMSSŋ0ɕ~mҤI xɒ%t:T]]M<ðׯ_)++~Wxo޶minn={ׯ1 c2 .P(FFFW\H Ja$o?7޲ΎL&O8? ~>>>^666S<84cHMBRfBS9IbP$!0@766ՀaH$v7Bcc6F_>22AbÆ` (iA i&Z[[MMM0 _}9I$T?D" \}<| q?ri$ٟU< gggYw|f}(MH@A P UPH@R(*Y>㵶pO$[m GE]#:xZ(:IYY^ %ɪP\.W_FP(S2UTT 3!!뎀G[[[___ fɺ`$295| P UPH@R(.Ypf}izquu]fMUU՟8?pĉ>~ɓ'D͛7ӧOlK.uGK.X"22@|aR\\7߈XbEEEO&EA0RILmb***{VXCϏZdÇ_k$i&(ɤh{r,C4fff}k׮xף۸qerAV\9j(33K?rȍ7 z1ZRRioo?m4//?o+\\\ Lbݺu0 UilٲwAH3Lvy9s&55,d2F0Fzli߼y3\ rz6rZZZ.\p½{vww_rҥK_ܹs\.Bرc/^u~OOORΝ;322Beee666[nusskkk|h":N""" 4XRTJU4NGEEEEE޽{֬YϟX}=|bӦM[l|1L:s挡aZZM PX"hʕ111Fu_P>|͛III4~֭[d2hѻwwh $sT@f555,--=}ݻw¦M6qD___fVPi&P(t:[.//O]]!j*Ћ/455=<<Bjjjyyyvvv!%Kw|@|rD9џO8L=a„Kʺ#l޼)))az{?^<.e>b+D@bpx4~ٳgsssmmmy<@ 2eJcccss38vB*P)˺266>yqMMMUUUPgg&cX]]]DPWWW0fBKϟ |f:3557oCe/0`0'Oߞ|С[¤$y%%%QT:FFF{QT.EP@fK3Rn)))xX|yjj*Bh4#"J3:(KKƶ6|O?0a³gPaa!ўD >}=y.\e˖a@]r%**jΝ[ʺS`UUU-"VJ4z[nܹsҥKMLLvܩ䔗),,tvvi?6 7$ً/e444XXX鵴|Jis|iOOOyyB^رc׬Ycǎ˗/XZZ\r999xgφ\zYBCCcbb FLL̃H$RGGGEEM=qĤI4H"pss BSKKK=2eJWWב#G:::^|y&bihhsX,|5<<{ƌ$ԩS+Bi۷oP(UUU!A0RIL3KK/^??dMꫨ7oޜ;w.++ f鱱=Z~}ddٳg=<<"y:7M HFFF$I]] !xׯ__|󶶶$߿0%%E__СCfff3f̸yfZZCHHKLL9sNeeerr5kOj``@tFSS~ F$EPTTTd`H$ٳ%fCutt ed_ff۷+**mF̜#H3gDRcFGGUH$bnnn Օwtt$$$3!$1(XR!1͔⋂$w}g!www&y…SNJL^Ǐff"(M$ äV\KK Jx 덍JîQ[[ aÆH\u/4?u|_]]]EEE# WVVАuGx*0[&e@l]]]]ww;@GG'|"^L p\>H@R(*(@TA oKֽ#Yr6;w_—UTTw1q=?fl2]B!L~?~JWWw…v266F(/=zͲ P?ĸ[Ņ؄aڵk/\GGG[/^*..>uaNNN"99ի&&&{%>5$H~{mwUTTtU"zj4Xcǎ9::رx^e24-66666vϞ=\.à j IDAT>t---MMMCo_QQaff~|ӦM[l )**JJJzꕓSss0"D @  e#0$+W5jҥK 8?rȍ7IIIDOOO{{iӦyyy=yo+\\\WH Lb ߾}!t֭qe郦YPPPvve޽ 0innx7%''O8X:::<7==ðG B}uuuFFFSS###1 {9ŷ3 |#+++77 T##R<|PEED ȟ:#^QWWg``0 ?`(444x<^hhhUUչs碢0 +//R АhO?9ի#""刈իWi`ff/]xD555i@f3eꫯΜ9Y}}=Lhh42\__ 9|7oaNNf\ZKK… .\w+W^t믿;w.:cǎ9;;_x֭[<==K;w@oݺͭ->>g?i$"B"vޝ#@ZZZfgg?DCJ"^zڵ !dccC߿/޸v̘1)))?Scc#ϟ3g\]]=<<<---==b%$$455۷Çׯ_/((뙙?&YYYgΜ144LKKo+|Sa8@>ɓ's,䖊Ç]\\n޼4𬪚쬬)S!FL322z.4MUUUWWW ȍӬ&===22X=x`iiӧ4w*Po* t:Np8֭SWWG)))Z ! MMMZ```^^^AAB`ɒ%_ ._!D"gNA&c,wqݻw&Nm޼)))\jU~~?xڵ}3Aq***}>)D"D@bp8i^ $w\@ f?ܹs/^hhh fNNNϟ?';99)DA;{͚5;v쨬|rIIʕ+ׯ_SZZjoo7>{lHHիW5,,,444&&`˖-۷oG{{{Ϙ1D":u_E555-X 55:""b %??*00!$1FDKKK/^??P?i#+++//GFF={)B/sl---O}_H$uuun$ŋ_~}嶶ڒH$”}}CYZZΘ1͛iii!!!VVV&&&</11:&&f̙:::k֬?{NN߼y_~wZZZ'dbQ(q nܸq/_8vl55!~~~o߮߶m1sD"ikkϜ9_?>ɼxbEE(رcmll E"vssP('>>#!!a̘1!AL9j4{ҥKb2_$%%1>CYooBljfffqqq!H$&#J 0BR3ȡzccckllֆBlذ!22n$Wjkka.Lj!i&Z[[MMMj 뢣{5x qY |<PDPH@R(*(@TA J⬫#JJP󕔔{7SRRRVx8---MMMCo_QQaff'(wg-Z(77C;ܹ 9ʕ+333GefftR8GqѲezzz~~~B%%%ӦMzIm߾W tww#Xid2mVZZJu떿OEEBegg/[ݻAAAxP f'qSrrĉU@*++{{{{{{1 kiixP($WWWgdd455߿?22ðϟs\|k}}=;::rss|P(LMM522*--̻wB޽#" .ܺu\p8P$VVVKkh.^tuuihhxЪsEEEaV^^NR)!x޽WƗ`zꈈ<A4 vvv/^/(QMMͰPi?뫫g͚EÙ3gRSSҬL&h4 h4Ldžf|>͛7;!+}l.Ҳp… ݻʕ+.]ΝrBǎsvvx񢧧[#xzzBwܙ*++ߺu[[[[|||ggPSS#(/_2LxsQUU%H^Wvڅho|ƍEq8//{"̙73gNoW[[[^^^q@KÇ-Y,Ç-ZDi4ZDD_|K|[[[*Rf|t:>1ƍuuuvZv- OOOr3fHHHٷo_AA]{{IO)6mڴe˖͛7c斕u̙秥ɓ<11#Gra===CCPSSy&---44T]]][[;##O?hx###2FSUU%I ~04knnVVV rwwr劦iFl%(DPPHt:Yn]^^:BHIIiժU/^hjjzxx  BK, 77w!$>sBv:bfΜٳO?tx @6o\\\laaKK˔Zx燄 D"@EEE "H$R9$ f<O L2`;v !W( ɓ'ߏkjj":;;555&w6- utt𠆆9ta0֓'OoO>tP@@k׮'_]ٳ"JtN722߅Jrܮ.|b@b ^B˗/OMME fVPi&W@eiiֆ~&LxÃD{o+700x)JHH^TUUբEUkk۷---T*UII)//:;;2zhSS> $qP@ =lԨQl6!S^^i&W@5vXoo5kر%%%&&&+W\~}NNNii=ٳ!!!W^%jְИQQQacc#Luȑ/_?~|X7o ٶmۦMB3f HN_BMMM ,HMMؾ};Bϯ DI jiF&7mW_EEEyܹsYYY4KOO}葕###Ϟ=amm!չlL~D222z`'Hŋ_~}嶶ڒH$”}}CYZZΘ1͛iii!!!VVV&&&</11:&&f̙:::k֬?ٳŢP(***P0$]KKjjjR@&233o߾]QQm6bD֞9s&jnnnaaq…رcmll E"vssP('>>#!!a̘1!ALGAi4ó_uwwg2.\hii9uꔛ'z{{UTT>>>?NLL433obDnb:40 YqP}}1T `566jkkCU!W6l_7+fu?|< <EGG\iWXQAwE(*(@TA P UPH@d*Z/@'vB!B @M$K| BQV1Cӵe00 555x# a`` ^L(vvvԲ,d2BQQQa`hkkkhhȺ#`aX:::Pt:][[[ֽ#@ ɩa(*(@TA P UPHʺd 0A!;wu͚5UUU8?É'>h=%t钻;JܴiSkk`zyhh_|fe0$BҥK+V,((߄aXpp0o߾mL&!T\\bŊ˗I4dh={p\iiiijjz 33[lٺuڵk^|AG`AAA_h r nʕF233[t)Q#Gܸqh) ݻ^II~ڴi^^^O-e;;/ iE"_Ήroo~GNz2L0 hd2r7o FNf\ZKK… .\w+W^t믿;w.E;vŋnI\ܹsgFFB&>>~֭nnnmmm񝝝??7i$"B"ٓ 9!WWM6JJJJJJ@]RUU%H^Wvڅhߗ͛7 իBss%~kkk}}=˫@bp؇4#G}_Fرٙ8iokkKRBT*VQL~ P:{YfY[[#?^ZZbׯpM6mٲ%33d29++̙3iii^zeccgiӦ gϞ vqqu TTT>rͤAw۶m;z(Jьe##wމ7h $mH@HL3uuYf!-[6qYf n߾ѣ={a4#"J3-@B!Ngݺuyyy!%%UV!^xRSS +((C,Y ˗#H$̉>d3TUU1 SVV^jjĉde0$7o...xeJJ/^hcc3uT|U$TTT|RD"ԧ0ȱ,""bnݺ>N߸qcbbO'O|?$zzz,K[[lP(ӧĪP($ɹflgÆ GJJ̙3e0$`X[[O<=СCwbJt|N7R\.B $l@nHL3ooo:naa?zyyo!TUUۤAӌ؊* ,--O?t„ Ϟ=xxhOT!}}}JHHx7WǏرcժUx) |r~~~AAT jѢEĪWJKK͛GDBy{ѣGi 18,Ib͜9xtuu\sΝ;w:88lذ fNNNϟ?S^^i&W@5vXoo5kر%%%&&&+W\~}NNNii=ٳ!!!W^%jְИQQQ!>sݹs?}x$ٌ gRSS"##ݻǏ/.AM2ȑ#/_<~xpovssSR.܄{{{Ϙ1D":u_E555-X 55BWUU}'F*i6}tMMͰ?ӭ[F=zh|ׯJLs IDATGYYYyyy_>22ٳHҌ~Yfkii7H$## vߍZxׯ/_vy[[[_XX!333KK3fܼy3--!$$Ã%&&VWW̜9SGG299y͚5uuuussȨ߸qyv">,B@z{{nj'Q|:CMMm9?@jd_ff۷+**mFJ'H◴߾}innNDƎkccWXXt,lBquup8 cƌAI Jd2fK,w^JJ 8uꔫ^$j„ 4UQQqssC<~811,..afi&Dd䖖*,KOOOֽE}}1T `566jkkCU!W6l_7+fTVeO{5x \MRiև@R(*(@TA P UP8E@>D"a&BZ`(B! D"L*7!)++S(eex;t:][[][[;FOd 0 NZLP(***21 ---(@c0ZZZPikk˺`$295\R(*(@TA Pc8? ;͊"bEW6Ţ"JU(hQREAo]ڊiAi%B RDA@v @1V=fΜ<#Gr*h@PA ZaaaOOG&9(AĴȰ… 7o\^^rʙ3gG8ΠHOO-''𶶶`z֭[׭[wE6-1p8񾾾aaa9990 6mgg?[`Lb1/E/..gG-3Loo Pf444 \dbb›eJJJ/--e2)))L&0vl˯}w۰0 ޼ybT* LKKp8ɚ_*ʋ|͛fff[lqqqaXn׮]svv58;;~_}ccc"##GOss ۲e˞={i "񀱘2e @x->_8p!djjcdmmBPWW!ŋK K.tJ,Y#08; Dm2[nuww#""\]]ϟϋ\f/^033@ihhM25** !w޽Yf-^_| IIIqttdX?#GrrrgϞ`6gϞݻwcv+VQQQO!t޽SNzD`tRRRǎ#HAAAx[)ѣGORQQGhii MMMiii2e Ł' 11\Q(H77ׯ_۷Ϟ=APf Qf{ᴶ2[>{LFF!D$7mڄ*++sttDIKK_ٳg999VVV!UUUOOf6n܈"WN$//E>&:kk눈 ߿_cc{W^>y_~.ĉ222qqqqqqRRR.Kt%?.#̎?effv`?>jN2#ZZZиܔ)SB]]]rrr8D===2a8p𠬬 1c>mll|%y*mmm]]]]]]GGGeeoΜ9S#a0mmmf͚3g~{ѣG׭[74ð3g<}!tGGǣGjhh9`X=== qU :Õ~( _~{nww]BD"1!!a2-E訌޿|'FFFEEEx˗|^'?@EEEUUx0**꧟~㦧OQ0 l߾4~C+[ xf(@-eٲD"ٳgx˗!ttttuu% ~bE`]ZCCÕ+W޼y믿믭v؁lmm߼y_EW\\lkk;!L|jڴi+WܼysDDDii󍍍N}VVVxrLL̶m~W^_>>aڴiϟ񛎹\nww…  FlllggO?0 ,3III///ZZZ@ ̜9!$̘LBqqqϟ{1S!hJ҂.|tuuuU;vǍJuuG>,36<>sǏ`@  (i$IC .x0A P TЀ4@B (*Q0ދw (N0#( ߨ(߄$%%bYYY>fYYY%%%QL4M[[[ԣɦEـDYYYh@x(dC `\l"Q4Wc5@B (*h@PA P Tbڀ޿X^@GéP(磬8uVKKG&9(AĴ% 100HJJDGGGDD=7++kh<>>~ԩ}^JJ 0UTTz `Lh4ږ-[\\\Μ9ÿ`fLW_}5c ==G111zzzgϞ~&jjj`Zf !aؿo==='N0r-[D"{A#311)++C]v~ƌQ*aWSS}LPZZ>o<}}q `bظq#N@Xr87۷OOOۛdxokke}  ݏ;=~C"٥K~ÍB|2\͞=ðO>$##?~he///d21 c2_{ ;1=?HIIIGGn{{\.@?t萡۷o޿>k.]СCt||/Bd2y՚]]]ֵnnn^__m۶l cē'O233z `\.Bh>>>!##۷o>}?`HJ eeetEEExֶ#޽666 㸓@Ԇ+3GHJ3332|-++ ʬ\ZZ!$--mff6QL|O4 jkkd… bcc򞞞Ν̬UQQ 577a|Bb%&&ڵ?ÇO^|Ν;?{DBӷnݚ "))ϯJz{{rʨ+WtuuEEE :::TTTUUUSR999^ISc׀?~܌Rʕ+ΝW_eeeM>}2-%L2TEE%$$!D  𸤤$7AyyPG? t`0*++~!4Oq``ŋ K.}g}v0}AAAsĜJ +((yܹ CCéSWWW#$%%yZr_K;evȑ\.f=z!iӦ/N2S!$##C$BD"?0 !$))O-%s#/^|%___~"`x}B/ ݻ'!!A"nzA&;;;͛gllkhhh4ڴi?fyOexv!rttg***ʌM2tT&&&MMMlffyssst/%/_"卍333s =uqap <dmmm~~~N USS.y֭W^ŧW\rrrJKKÃ!.ֆbaa'p8:;; ^nܸ&%%/_455EÔjooG-Z!T___YY0!L|OJEE%""߿8>>D"yyy-^xݺuO}֭[WXƟ;ߧ"))ٳMLLz{{O:5\5k6l@P+**B{챶޳g@HIICXXXDFF644*))zec?6lغuk}}Çe,!!!<>>K.544DFFo޿???_RRrΜ9!DRdeeE=0gϞ-^Rh:EEEq8'O.^xӦMVVVE===EEE .Erss`]]]bb"B?d2srrlllB999rrr644B5\eeej ~ jHP555Q(E k׮j,efEP1m@-h@8T >|8 @ [=h@',36pAPfLD (*h@PA P TЀ4@B%WqVWW 0.+!I 0ƈHD`M7-WqJKKIJ@y&&''G"D=0z`2c٭"ٴ(? !! (CP`@iRMT'd>*h@PA P TЀ6l6/,300+ nݺ"Qɣ;>>^ԣwbڀd$%%}z#""ƞۛ5(H"x0Y\/7nph-[9sp]]ݩS===]]ݳg 0d2TUUMMM?~cQMM (d2%$$ܹsΝG Y[[.ġ̛7̙36mJOO_0 ;z'|RXXXWWbŊcիW^iii%''HR DPq8wǏ׬Ysٳgq rEEsvаg33#L}}|bb"Jutt .88&@SSS#]]]?3BٵkWWWa)))4 dW\ u֑#Gŋt:OHKK+..Ƨ?o߾cǎQT? 4;KYYX2t:]VVðD lmm_*((`~1k.]8, IDATСCǿx!D&W^emm][[+Lh EUU6lD="0:eee%%8.Z|Bʕ+nnnxBDA[[<޽666 㽧@h>2܌Ϟ?^NN!t۷o!TTTdnn.--633+,,faGGG]]$//@655 Ɩ͘1!y9//ZPss6q˗/hX,V~~_bb]ɁB{NSS̙3gJJFHRB!!!/_FuttqUUն<rrrx3'S{7lݺ666$iӦM_>믿޼y3B,))9$$$>f&h)xEEEwww^!!"7a'>H$}"555i4hFx= u֛7o[)--suu-((O^CC>MZ|,0(},!!!==7+-ZTUUUSStppfzzzBNNNl6!nnn&08w)QDDDxzzǓH$//ŋ[ɓ'O?~ppwjj*~E9B(**j۶myyymmmO>nii ݞ&e˖L:5!!!22B. fϞmbbۛ) Þ>}ZVV;$!''WXXgkk={<`MMqAAEddd```CCCnn;BH`L!!!k׮R7or˗/{ƍ;w͉ٱcGOO۷N8f͚ ?BH`P!%%5tT*b8;'?555ׯ_0L&YZZ3 ##θV777UUUyyytYYY---ХK"##*;;{Μ9$##DRdeeE=0a$''X%K,\p:EEEhOINN>yŋ7mdeer?ΟC$Buuu!___9СA&ccc#//IMMo.8Tuu977o޼uVxxuŪ:::HrrrAAڵkGrcjj퍋kjjruu?>AlvssG71m@-h@8T >|8 @ [=h@'cǎ7796< <SWWݧhMD (*h@PA P TЀ4@B%WqVWW 0.aPW`0 #8Gxh`` MU222.x jkk]khhPPPPVV@P[[/Q H6 @{~J OQ0 *h@PA P TЀ6l6/,300r{{{Gnݺ"QIl1m@d_ddd >`=c,++SPPp8Hnn0\TԣcEѶlrN&޽{޽h2>~Ν!!!ׯ__rf̘`[n s ,3zzz666_~%^fϞ=v@_eǏDGGWWWL2 (BCWW}^^^\.@ :t۷VVV߿Gy{{?^__ڵk.]pСV|:>>ŋ!2zjMMͮ.kkk!aLV7o޼}JYYYII).."/_r力CP455BFFFo>}4lmmi[[B޽666 㸓@ԋ/tuu^yxxܾ}{k̊ͥBfff]5 |;;ڦ&2p¶ز3f <==ϝ;啙Y[[jnn>&8pe KLLܵkp%%%566R@ooooiHH~nT|ZUUB222D"!D$8rOIII; [KMSLA/eXxx= u֛7o[)--suu-((Dhz===6{ 0 ,11'66ݻ#e*3m@GebbT\\fffΛ7<77Gp8RӃ%BH^^833O9w VJMM=0tzXX@FooB(,,lwSZZ>rmmmD"YXX Ç㷏@ IMMF]2cX-ZTUUUSStppe&G_ZZZ\\O"/^nݺ'On%?~ppwjj*~/B(**j۶myyymmmO>nii mHRRٳ7n>}zqqgx+h&&&nnn N0ӧeeeCrrrgkk={?H$===EEE .-KLLDg9LfNN`=c |w˖-&~DMMmٲeo޼ph-[9sp]]ݩSD={vLfPPǏGIL`l۶m#G.e˖H$wA/31m@B&&&a`0_[[;R6lMNN?~ `ڵkw}WYY9|77~SWЉ'߿o|/.H&޽{޽h20 khh9sիyC#Y~~<0d˿~ze600P__1wx(]]{yyq\~!CC÷oZYY!}y}}k׮]t _áCZ[[/^ dի555;:eʔ?͛,LvrrL;v8r>MјLhFrB˗/A]r ϡP(lmm񠭭maa!߽{Gmll{O Wf;vLWW,08rKKK#&JIz¯i@655 Ɩ͘1!y9//ZPss6q˗/SX,V~~_bb]eZOVV699900p0yyyӧOX$%%566R@ooooiHH˗ vttqUUն6wttL%Μ92G-3R^„(3m@UTT[\`B\GG>B...=266aҥí`TVV:99?Bhjjjׯ>n&ވ䨨(uprrRaaa-[ܹsO]r%$$Wο 08޻ Dkh\pիWiCh6C222D"!D$8 B/H K aƍ7olll\l_dffVQQ,1illuww'H[nussۼystttii%K"""vAѦMƿ~===6҂@Quu5~Aݾ}{CUUU F&5455㳙377p222!Kqff&sܹ6뛖vڵǝ={vڴi?3tN USSC߿tgggmkk8Ç@ٖ-[L&ܱcݻ+**0ebg-Z!T___YY0!L|JEE%""߿8>>D"yyy-^xݺuO<?~ppwjj*B(**j۶myyymmmO>nii ٳgϙ3] {O<˛9s&/rspH`Tg611qssMHH?uaO>-+++((,,,ܳg={BJJJ^^Bظ"22200!77WII 2#dD"HgYBBBxxxGGFhh7v܉79_f;7!%%5tT*/˻"!dggkjj_?aL.**g0FFFqqqnnnmyyy鲲>>>ZZZK.544DFFUUUUWW׼y>?OT*UKKKVVVCaa!~BAAahf]]"\#&8Nrrɓ'/^i&+++.s"hgg74hooKLLDg9LfNN|8 @ [=h@',36< <e6 LDЀ4@B (*h@PA P T|guu6 B"yA(_)##   7]"4B (*h@PA P TЀ64-/T*8wfVUUf&@CCCYY@7 5ۊ Ëp8AUUUo߾ni YUUUee%fˬ?(eNCCCEIIIrrrNNNNNNϗ޹slo {~ssw}7(w^|NKHH[TSSի06 jjj G& &g͝;wڴieֶ sl`=OH$[__aFFFFFFEEEUVVΜ9` ,0o͚5W?ίT___^^#P(@Nwrr:ug}b̩SΝ;WYY9<<e:sLUUt<82EM>ѣG=y_~=}ٳg,Y3|ԩS322?)JKK̒u IDATx N744yf{0 ۰aׯ_)!!q%СC455i4ZUUڵkw؁:xUkjjΜ9xbMMM}}}}}=JxM}555 +H557nX,7oޔ߼yh2pBee |}}D(3m@YZZP(رmmm]]]}Çdkiiۋ7m; }i<ðSN-[޽{ c׮]^^^[_dɫWL&B(##c ӧë׷ciii B躺t BHBBĉvvv۷KJJ"6lؐ@y?;w|_|ݻwo VXq=A!8&epN" <==?njjlٲ ^v-33~;rW^H$ѣGbcc[ZZ6lؐ\\\|a,XH$z!##͛uuu '૯B?~|mڸ\ٳxNN/VVVׯ#(ʛ7ocbbBOTTTJ ̚5?A`p|2iooعs' a0rrrf:F+Yf@O***N*e&G@˥{3g":;;'//?ի6mzӧO;;;/\`iiw^''6cmmrʘ~)SXXXIKK/Z(++BtttجXGA ?#"",Y"걀1spppƿqmmmAAAW\+** z{{E]]]+핓O}"7:;;DbPP]\\>kk7FEE 1o)Pe& ̙3[[[[[[tz[[ۖ-[𸴴BBL>]AA[YYQ(sNp魭fff*~hFF H\tׯkjjGq;rssoݺn:1uӻqƦM.\PVVm6<~]333"SSS^c֬YuVc&⑓c0\.?A`pw2# !fͺpB___PP~v2}6JJJq)))|BEE***C׌?:;;`yyyYYpYdIvvl2;?cƌI_gggL&FvH`T~->maaq̙/_"޽rXUUUy˖-cddĻ޷ؘӧOO="$Bx|1z{{?cǎϝ;VfKф*3m@G_qźqㆳ ޼y PSS!4eY -SLz*Bm (BhŊpjmm|2>hdd$!Q_p }%~Ç<@Ѥ_~}m<3--!zu2^2)++txP[[E@8… Bl6;99ё@ ̟?T$eFR-Z#PVVV{{ŋ'FOjbb24NRxwUSS[d5k0 ;ŋuuu===ٳG]]rժU;uttMLLY,V}}MZj̙W^!ٿSPPTCC9s|o.*V"##M6s˗O>````ʔ)|1 ߔ.\hii9s̊ zzz͛gmm`^ 7`VRR2c ӬNC ð {{{CCe˖8򋲲~XfW^%Hx7V\~M<82s@ hSNyFSSwBDGG,**jmm?>Q(((o"+--mll\t?T&\.knn>!~uuu***Acc7lذzj2;;;H$wN*hkkϙ3gPA`uwwjjjBd ̨eXRR2gOlvssGͿe7h@8T %$$hkkz A:gƏ&?(A&MH`"4@B (*h@PA P T|=aټO >p8lAi l6[ԣr"ٴ(_YSSa ZH(Nq\xr[+ 0 _EyTZZ x<j}}}QLfEi 4@B (*h@PA P TbڀhԿdddP[۷oKKK`󳳳#"+((՛Eo~S}b;#UUUo߾ni ܆i\g>3 VّMDbE\**u֕ןZmmU[ޏVK]*RZ-h]V%Bhu'959޽{O?]lb֦j[0cA碃K(.\%6nݺ%K4}yyƍ/\`ddtuiAAѣG_?Zd2}Zjkkՠ.A;wlee]_|aÆM>E{ (;"jڵkOOOܺu+0s1bB`fʕ}ռ~355-[nٲ&ƌ`a-,,O1E@ìȑ# Ô$''3 lٲqƩ꺺ݻw3frСC :tޞfz -|#999?^`AbbX,^xq@@aΞ=6.))2eJ@@@llT*eӦM _ٴiSpp!CN8!-ZTQQ1nܸFX~JOٓ_sj̚5kٲe4WuuD"ٳ' >,88n߾=o<"?O|8=o]|?Ə\*>L b߾}_&8p 33sڵVVV{MMMr劏ϐ!CgϞ_gN޸qʊ֯_}GEGG'%%Ĥ]Qcǎk׎7Zm۶ۋ/w_Y,--}||Ν+ju׮]k4m~@y,YYz}ͫD"QVV E.],A0ʪdDT^^.H +++ … j3x z0~.]x<xΝ;gee999ar444444 +Vعs7UUUڵkܸq.\޽iӦN;vX"44M1"..A$?A(c4222l2̙3H$Ebx۷oohϞ=555 ,~T*`[ZZVWW7Zjjj*,aֹs砠ɓ'9vBpss x"5ciRf-7z{{WTTTTTH$X:ujiuժU:tYt9hSfϞogdd\z._#}w uӦM۱cGFFܹszBBϿ{Oeeef͚uҥK.rSSSuY2L3%@gxzx'OveǎuuuϷ*jʕ+cbbLV4Z!x@`iitА}`mmM]"X[[7*VVVj3rPUUellLD <3;wLMM544󋈈=z9hSڷoP(?\f͈#/hJVVց֭[GD7o"؄(gWTT{a^@ 4Yrc:0RtÆ 1I&;B777nQÌ]yڊYS"?NDr|ݻݻw!إDdddC"*..t[ '"d+Wmzƌ} ̙SQQݮ@vر .\pɓD믿"}|fff;vӔk׮^ٹ_>cHtGG}ݻ7""RѣGLLLw^"ʼn:{9x<^^Y۲N<9n8>}|DT*92`"9+JŋoL/޳? F~~iBBAǎΚm6ssDFF0-[.222 `ԨQ ܼy9$$D$ 0@.L0A{3fիRd`4Lrد裏:t=tP77TBadddR%GLT[[ܣG޽{KRa(55atgg簰;jfY 0 O3a:diioZ[[kfVJMM 2d1s[YYڿ#898 yq׭^sHH$w:88h"tH)޹sW^FH&߻wtWoDZUZZ:o޼訨(V٫惃|Rkuti/%ht]jgׯ;88h.j|0+--MOO֭3̔Jeyy+( h ߇9::#!%-s1܋80e}w> FZEH!@S)P(p 8 D*JTj4r(JRР@[V 4S*eJRVeg^^6 4+Vy<40*N:qQ}* q/xhp/xxMp/xh\$`MP(p 8 BN!@S-4˙3g_n=>>˖-coHH$L3̆ ݻu떗DBQTT ŵ*4Ooݺo޼xڨX]]_O>|V^HUUAEED"H$555jrjGGk׮͟??===22r֭ ̙3gĈ a+WۗaKf-[nٲ&ƌ`a-,,O1E@[۷GDDM4?UT ?~|<O@ .\0Laaݯ0L``ɓ'5#my󦅅Evv60 ,3f̳Ocm y bquuŋ vYqIIɔ)Sbcc5?_O6M_~6ffӦMC 9qL&[hQEEŸq㴷naa7f%Kr@өS'[[[KKKKKKsss}Z"ٓg}LDoߞ7oEGGD#,bllLDǏ={P( gNHH^CCéSbccs'NY|u~޽ӣGm۶gkx7xk׮o޽{~CqhF=c io4!!aឞD{)B *]vI$Lv͛7]b„ {3fС˖-ꫯ-Z;-\NNR۷Ә1c#x>KKKs疕.]ݛ]6f?HD999iii]vرEk"H$^~~BҥvENv0hР'N'N8xbMѣG_~},\ңGXGGǐdz@ި8ҥBY|; ݁g444$"JemmsNoo]vuԩ… ݻwrJ|||TTTUUՎ; Μ9&⒒ "_gnݺ%&&;wrtuu_fMDDDjj@ w9?9s'NOEbxՉL&ܹ\UU5s˗رC*ZXX---W.JMMM5Àm7zǏVh%III&L:t;wg͚sÇ=whC@`ffƎzw wEE{NX,5k[ :u"777͡\___M@d$H***اSN m?sׯ_HH9hSt IDATΝ{ygg۷S|6mڎ;222Ν|ݻw}||h׮]{quuٴiԴ}I}}MMMe2Rh"7; ܘ5ko6jԨSN4ݻjɓ'.]4..믿&ݻgee-X 88ĉ3㐈r9;Ҟ.]{Zn ڵӮ?'O4uDbmmݨ=A"}-ffffdd4%33333hb1X(rv +++kݺuc͛7QBBBlllBBmllak׮iNS(jS3I_^^'@g*pO>a| 2=iJrĈw5j[|r;;;\1=jտbOn8~88ww޽z*KÇDT\\|%ODjzƌW\aiڲeKLL {<َ;4RRR֮]zjgg⒒7yomo߾0>o>޽{[RѣGLLLw^"ʼn:x 9>{F+++W\cvaaa555DTZZ1su6'%%UTTў={LMMu9yM/޳? F~~iBBAǎΚm6ssDFF0-[.222 `ԨQ ܼy9$$D$ 0@.L0Ag֭[wZ>L/W$:999sY-1 SGu{Сnnn @%0mHHHϞ=}}} ѣGPPP޽R)0D0LzzsXXXǎ5Y,iZΝ;zxxtڕ;I#<<\3 Ӻu /RTN0q۷:̔)S4$66mȐ!k؈a1 [RRboo9r$ݻwdD"gggMΝ;zҞ!E&x<"w^iiNo߾;Jy\.hbB kkk.M(--7o^tttTT{Hׯ[ZZi4P׮]#`>_AETz5GGnݺ5]|Znnu*( 6}?_VVVqqO5玙{k+MTD?V@^PxM@[>,,Qi >x暶L ?ڔ)ShSڵk*ҧ~⋐5BN!@S)P(p 8ωju}}RcE& 1 T*h0TR(*J/8򈈽;@Vy<'r*chAsjxUx9 EQQ&*4Ooݺo޼xDH4o޼ .lҿ"Bm-jkϟuVa̙3bB0ʕ+0̉'b10 ,>}:0[l  ܲeKM3f dgg[XXb::!f;wOd Xz50˖-7nZ ܽ{7a&:0̡Ca: y bquuŋ vYqIIɔ)SbccR)[6mZYY/d3 iӦ!C8qB&-ZbܸqɬYͿ׼7N,pgϞD$>`"}y (::?$111666D矯Y?>{lP( gϞSNO8t ITTԍ7T*w}zjgll4|pz0|2?~<?_rU z6Bo>D/8vZ ++{FFF^rgȐ!}ٳgϯSN} oܸaeeEDׯOJJھ}Gbbb֮]'[lOP@CD|;eii3w\XVv֯]i?ѭ[&M9U"(++K{ K. t_>=kձIJJ *,,T( .T3fx7y]txD:wY433P(XbΝɗUUUv7n\ii w>mڴSǟ?jǎ+V mbqqqqqqAAA#FkhhDFFFO7xU~ᇎ;].?~\&9s_~111DH,ϟ?~-UUUXʪ_~+WψH*ZXX---W.JMMM50 t9SУ&ٽ{ T[[jժ*>?77/R3f)arwEEEEED"ųfbBSND榹+000'''77ח=t~DRQQ>:uji|ĉa^߿ڴi;vȘ;w.[OHHw!">|w}wٱcǖ-[Դ}I}}MMMe2Zn΂fjz񇅅WTw~wV\GfԪY Ҳ]vuCCC'O4uDbmmݨXYY"堪-ffffddJ8q?{YYY֭co޼9%%bccoΞID:tVUUV===5yyyiM i7Y| abŊ_Ν;K.e5c'cfl\izi/V5Zn}.Ǐ\.߿{}ݫWQYY>|HDŗ.]b+!!!DĞlqq Z*;;?L&fЊرC,OSRRs֮]zjgg⒒" ߿?0Dt~}ݻ7""RѣGLLLw^"ʼn:z:٣G曯JRL,'"Ryȑa^WԷo_TLD/^߿fzi45Olmm >vXv֌m۶%22iٲevvvFg͛!!!"hr`„ m4C,+55`&x9昆裏:t=tP77TBadddҒa=zD={zzzfff2 S[[ܣG޽{KRa5aaa;vfajfWDD0!!!C a?tx+++vﷵ1b݁b3a1 y_%%%C/G"ܽ{AsD"gggMΝ;zҾOL&KMM511 `/"w^iiNo߾=g\aa;t޼yQQQMTT)))|>? @3ZfuTJ׮]sttԾrss=<<^fi0~Kì4==[nڱ9LT > @}XXX ]!h[2h+2emY#"$h@S)P(p 8 BNs"zZ-J0uuuJRa\^SS@뀡Z1@ œ'O4:h9y]CVr}wZX.@[T*^6* q/xrss h{e8 BN!@S)P(0 ܹs߾}M7hɿK=LMMbqzz: ILL  رclܻwFwADÇ<<dÇ/,,d"'N|D5j(N:-]=:gΜYfљ3g؜h"R7^[n999M6aƍQQQeee?XnСCG0LQQ{g}6lذ>@&%$$$&&> < 8|РARtܸqk֬ Գg˗d={8p?&&֭[޿޽كDT[[KDw777"rrr"@ `Giؘ7zEވf@K.?e陖{qС/^,,,۷/=x@{i^^imݻ70򥍍MiiiTT7|vZSSʕ+;w6772eJJJ ($$D&M2oݵkWxxʕ+_|r___"a/?jhh~511.ui/ռk 111!!!&&&o&{fj1:W>|HpppnS\\LD5 _Š3g'|Ү];[2 s={DGG͘1.\(&L@D>>>DTTTD 6wwwbYYRtwwިD"ak"woD3qqqٱcǤI,Ybll{n"4h@ MKK;zhmmS_uĉݻw {xx޻wbL&2d~کSD:ǫH$٥|>/$"aeddRȑ#D$ <0̙3 "z7;6sӧO0aÆ vww_f g} foo{^z;vFAD=zdF:wŋz777E9{a.)ӧNj |l֖V);;ߟ=gޞbcco57n߾nnD+HJDD`6'--S3.]0B`Yf1 S__ϞJD?#?1oذ-$~111񩬬#7;w^zرc ü曗.]Ҭɓ'_}ճ (,,xرc;33I&=|l۶3M0ʕ+`ժU Ν;ׯ_7229rϝ;GD3gά4i:C.IDATs@-055 w^^^%%%LD s}ӧٺ{LА}j`VWWk׮ɓ' GyyyM}hlee5z۷s><~anݺu{뭷\]]G5jԨ#F߿u DԥKccnݺPP\|w~~~={;w">}ɓ:$FL0NzhܹC]r?޹sallb ED555D&Blvųd mDŽ rޭ[7|Lǎ D99mڴ;w~dshFFeee]ja֭'Nᇮ]HSsڞ]vu!99ޣGvQbb"c$"BAi``  uff&0*:u266Ïo׮];&[\Ujձp!CH3Zvrr WrL4^~90 ND]tD"hĉj_y+**lmmOyfCCs1 i&#ۀ4@гg3fheNN+ DD?a.\HDQQQD񑑑DtŇo~ɒ%?nzLj4LիCCCJ;vv>,44499}G=6R:k,a+&&aӇY[[o޼YK.c?W^[ne+aaa366$$$x<33WWW3 T* 4o<햧O޽@ Yxq}}=0Rtʔ)FFFFFF3gd|AhhݻwIJJԩyzz={]UcR(ave_|=MTj\z뭷t6xBK5iҤ%K-U*fz ZMD|3ϜT(OIRY^^^r8) ./>hƍړ@՜OO"MO"sދI.ܞƧNzѫ]mTTʕ+5K_~B˂ ލp8 BN!@S)P>U(xh-׬Yt}ĉ={|u>|xz{BT&&&~ԩ쬬,{{{͟ƍ/^tss>|)SN=x@$ 6Ls[n%'';99EEE7ڨT*駟?~DaAh&DctϞ=zɿ/Hg5'xKsrr^AC"H36VXY.>|8[O5-}}}+++ry͝CU* l۶MD}}}7ZYY(oU|B(**z]oGp,--kkkkkkO:EDƍcNڣG77 .yg5x葅{=\^RR~-[hZ*jɒ%#Gpٌg``9hRWW7~xkk3f7̘1~UUUwY}hPKJJZts炂V^}+V 8Ξ=keel2@p̙'NTTTlܸQ߽W/22R,1a޼y;v$+V3fРA999Dn:WWW'')S0 9f̘LJO81**jȐ!eeeD@DFFF-++100 "[[["*..Y}hP姟~rss/ 7ѣG---W $&&={VP\ta }^Yfڵ:--scIII6mn)ˉH(9s歷>{UKK:XXX(J544hWQCCk㗇^J"LÃt矻 =t81s>}̘1yΝ#GLFׯ'}Q~<<<9rҥ'O_rO>jL&ޢ {"wB3P'\\\xq-"nSYYaÆ^zܹSsY1G&"++"*((D"HTwaju׮]ɓ'DT^^NDvvv9 7eddQVV%%%oo"M3H ̞={ݺucƌM6={A$??CoÇk֬1448pr"Xlgg׫W5kTUU-_<66?qn߾} &=z"##wgPĉǧVPL:cƌիÇCBB:v쨳wFL<ꤦ~GJCCE"X,ްaٺu"##.HN<zI}zvȑ#KBCC}]}}}y<ѣG͛]]]y<^ǎ->xO><zl1<<|O?ʊM<YCHidwwh\[[ f$J jzUUUBjdhYYW^l&!h4-7 &@EQF̌lT*L666:@ >odd%^}}}oooqqq&hkk<ϟkJ>}ՕHUե%r竪L&ϟ^\\N!D<___7LnϿytt(2?㫫FblaAܤ>SVVk_ePL&ONNNg:z(  PHE@*RT("@  PHE@*RT("@  PHE@*RT("@ #0P\IENDB`package.json000066400000000000000000000024321516065662600133620ustar00rootroot00000000000000{ "name": "p3x-html-pdf", "version": "2025.4.169", "corifeus": { "prefix": "p3x-", "publish": true, "type": "p3x", "code": "Venture", "nodejs": "v22.13.1", "opencollective": false, "reponame": "html-pdf", "build": true }, "license": "MIT", "description": "📃 Generates PDF from HTML with custom headers and footers with wkhtmltopdf", "main": "src/index.js", "directories": { "test": "test" }, "scripts": { "test": "grunt", "install": "node src/package/install.js" }, "repository": { "type": "git", "url": "git+https://github.com/patrikx3/html-pdf.git" }, "keywords": [ "html", "pdf", "async", "header", "custom", "footer" ], "author": "Patrik Laszlo ", "bugs": { "url": "https://github.com/patrikx3/html-pdf/issues" }, "homepage": "https://corifeus.com/html-pdf", "devDependencies": { "corifeus-builder": "^2025.4.135" }, "dependencies": { "cheerio": "^1.0.0", "corifeus-utils": "^2025.4.123", "fs-extra": "^11.3.0", "progress": "^2.0.3" }, "engines": { "node": ">=12.13.0" } }src/000077500000000000000000000000001516065662600116625ustar00rootroot00000000000000src/base.html000066400000000000000000000006231516065662600134630ustar00rootroot00000000000000 ${settings.html} src/header-footer.html000066400000000000000000000032411516065662600152740ustar00rootroot00000000000000 src/html-template.css000066400000000000000000000003231516065662600151470ustar00rootroot00000000000000@charset "UTF-8"; body { font-family: 'Arrial Narrow', sans-serif; font-size: 14px; margin: 0; padding: 0; color: black; } tr { page-break-inside: avoid; } table { border-collapse: collapse; } src/index.js000066400000000000000000000215271516065662600133360ustar00rootroot00000000000000const utils = require('corifeus-utils'); const path = require('path'); const fs = require('mz/fs'); const fsExtra = require('fs-extra'); const template = require('lodash/template'); const cleanDeep = require('lodash/cloneDeep'); const cheerio = require('cheerio') const startCase = require('lodash/startCase'); const os = require('os'); const isWin = os.platform() === 'win32'; const binPathAddon = isWin ? '' : 'wkhtmltox/'; let binpath = path.resolve(`${__dirname}/../release/${binPathAddon}bin/wkhtmltopdf`); // if we are in arm64, change the binpath if (os.arch() === 'arm64') { binpath = `${__dirname}/../release/wkhtmltopdf-arm64` } const generate = async (options) => { const {settings, saveFile, base, debug, title} = options; let {javascriptDelay} = options; //console.log('options', options) const isFixed = () => { return settings.template.fixedWidth > 0 && settings.template.fixedHeight } const save = settings.hasOwnProperty('save') && settings.save === true; // const consoleDebugOriginal = console.debug; if (debug) { console.debug = console.info; } else { console.debug = () => { }; } let tmpHtmlPath; let tmpPdfPath; let tmpHtmlPathFooter; let tmpHtmlPathHeader; try { const baseHtml = (await fs.readFile(`${__dirname}/base.html`)).toString(); const baseHtmlFooterHeader = (await fs.readFile(`${__dirname}/header-footer.html`)).toString(); options.base = options.base || 'file://' + process.cwd(); options.css = options.css || (await fs.readFile(`${__dirname}/html-template.css`)).toString(); options.jquery = options.jquery || (await fs.readFile(`${__dirname}/jquery-1.12.4.min.js`)).toString(); let html = template(baseHtml)(options) let $ = cheerio.load(html); const $id = $('[id]'); let header = {} let footer = {}; const defaultHeightMargin = '10mm'; let marginTop = defaultHeightMargin; let marginBottom = defaultHeightMargin; $id.each((index, element) => { const $element = $(element) //const $parent = $element.parent(); // console.debug($parent.html()); const id = $element.attr('id'); if (id.startsWith('p3x-header')) { header[id] = `
${$element.html()}
`; marginTop = $element.data('height') || defaultHeightMargin; $element.remove(); } else if (id.startsWith('p3x-footer')) { footer[id] = `
${$element.html()}
`; marginBottom = $element.data('height') || defaultHeightMargin; $element.remove(); } }) // console.debug('marginTop', marginTop); // console.debug('marginBottom', marginBottom); /* page: frompage: topage: = pages webpage: section: subsection: date: isodate: time: title: doctitle: sitepage: sitepages: */ $('.p3x-header').remove(); $('.p3x-footer').remove(); //$('ng-core-pdf-template-include').remove() //$('ng-html-template-include').remove() html = $.html(); html = html.replace(/\${qr}/g, options.settings.qr) const headerOrFooter = (data, type) => { const lodashTemplateHack = ` item = item.replace(/\\$\{page}/g, vars.page); item = item.replace(/\\$\{pages}/g, vars.pages); item = item.replace(/\\$\{frompage}/g, vars.frompage); item = item.replace(/\\$\{topage}/g, vars.topage); item = item.replace(/\\$\{webpage}/g, vars.webpage); item = item.replace(/\\$\{section}/g, vars.section); item = item.replace(/\\$\{subsection}/g, vars.subsection); item = item.replace(/\\$\{date}/g, vars.date); item = item.replace(/\\$\{isodate}/g, vars.isodate); item = item.replace(/\\$\{time}/g, vars.time); item = item.replace(/\\$\{title}/g, vars.title); item = item.replace(/\\$\{doctitle}/g, vars.doctitle); item = item.replace(/\\$\{sitepage}/g, vars.sitepage); item = item.replace(/\\$\{sitepages}/g, vars.sitepages); item = item.replace(/\\$\{qr}/g, qr); `; const mainsSettings = cleanDeep(options) mainsSettings.settings.html = JSON.stringify(data, null, 4); data = template(baseHtmlFooterHeader)(mainsSettings) data = data.replace('// headerOrFooter //', `var headerOrFooter = ${type};`) data = data.replace('// lodash-template-hack //', lodashTemplateHack) data = data.replace('// qr-hack //', ` var qr = ${JSON.stringify(mainsSettings.settings.qr)}; `) return { mainSettings: mainsSettings, data: data } } const headResult = headerOrFooter(header, 1) // const headerSettings = headResult.mainSettings; header = headResult.data; const footResult = headerOrFooter(footer, 2) // const footerSettings = footResult.mainSettings; footer = footResult.data; // console.debug('headerSettings', headerSettings) // console.debug('footerSettings', footerSettings) // console.debug('html', html) // console.debug('header', header) if (save) { tmpPdfPath = saveFile; tmpHtmlPath = `${saveFile}.html`; await utils.fs.ensureFile(tmpHtmlPath, html); } else { tmpHtmlPath = await utils.fs.ensureTempFile(html, 'html') tmpPdfPath = await utils.fs.tempFileName('pdf'); } tmpHtmlPathHeader = await utils.fs.ensureTempFile(header, 'html') tmpHtmlPathFooter = await utils.fs.ensureTempFile(footer, 'html') //console.debug('header', footer) //console.debug('footer', footer) //console.debug('html', footer) // console.debug('tmpHtmlPath', tmpHtmlPath); // console.debug('tmpPdfPath', tmpPdfPath); // --header-html ${tmpHtmlPath} --footer-html ${tmpHtmlPath} /* -B, --margin-bottom Set the page bottom margin -L, --margin-left Set the page left margin (default 10mm) -R, --margin-right Set the page right margin (default 10mm) -T, --margin-top Set the page top margin */ // // if (javascriptDelay === undefined) { javascriptDelay = 1000; } let addOn = ''; if (isFixed()) { marginTop = '0mm'; marginBottom = '0mm'; addOn += ` --margin-left 0mm --margin-right 0mm --disable-smart-shrinking` } else { if (settings.template.marginLeft !== null && settings.template.marginLeft !== undefined) { addOn += ` --margin-left ${settings.template.marginLeft}mm ` } if (settings.template.marginRight != null && settings.template.marginLeft !== undefined) { addOn += ` --margin-right ${settings.template.marginRight}mm ` } } const pageSize = isFixed() ? `--page-width ${settings.template.fixedWidth + 1}mm --page-height ${settings.template.fixedHeight + 1}mm` : `--page-size ${settings.template.format}`; const generatePdfCommand = `${binpath} --javascript-delay ${javascriptDelay} --copies ${settings.template.copies} --margin-bottom ${marginBottom} --margin-top ${marginTop} ${addOn} ${debug ? '--debug-javascript' : ''} --title ${JSON.stringify(title + ' ' + new Date().toLocaleString())} --orientation ${startCase(settings.template.orientation)} ${pageSize} ${tmpHtmlPath} --header-html ${tmpHtmlPathHeader} --footer-html ${tmpHtmlPathFooter} ${tmpPdfPath}`; console.debug('generatePdfCommand', generatePdfCommand); await utils.childProcess.exec(generatePdfCommand, debug); if (!save) { return await fs.readFile(tmpPdfPath); } } finally { if (tmpHtmlPath !== undefined) { await fsExtra.remove(tmpHtmlPath); } if (tmpHtmlPathFooter !== undefined) { await fsExtra.remove(tmpHtmlPathFooter); } if (tmpHtmlPathHeader !== undefined) { await fsExtra.remove(tmpHtmlPathHeader); } if (!save && tmpPdfPath !== undefined) { await fsExtra.remove(tmpPdfPath); } // console.debug = consoleDebugOriginal; } } module.exports.generate = generate; src/jquery-1.12.4.min.js000066400000000000000000002756131516065662600150600ustar00rootroot00000000000000/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; }return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML="
a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:l.htmlSerialize?[0,"",""]:[1,"X
","
"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("