diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..f4bce23 --- /dev/null +++ b/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": ["es2015", "react", "stage-0"], + "plugins": [ + [ + "react-intl", { + "messagesDir": "./client/i18n/messages", + "enforceDescriptions": false + } + ] + ], + "ignore": [ + "**/*.test.js" + ] +} diff --git a/.gitignore b/.gitignore index 9c9e33c..a61d6c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,27 +1,45 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies node_modules bower_components +# testing +/coverage + +# production +#/build + +stats.html +client/public/assets/js/stats.html + +# misc +.DS_Store +.env +npm-debug.log* +yarn-debug.log* +yarn-error.log* .sass-cache +client/lib + +client/src/scss/bourbon +client/src/scss/neat +client/src/scss/spec _build/scss/bourbon _build/scss/neat _build/scss/font-awesome _build/scss/html5-boilerplate -_build/lib - -*.css.map -assets/css/font-awesome*.css -assets/fonts/ +/sources +/sources.zip -.baseDir.ts -.baseDir.js -.baseDir.js.map +crowdin.yml .tscache -npm-debug.log +prod/client/i18n -_build/ts/DefinitelyTyped +__snapshots__ -_build/tscommand-* +/i18n diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..1f56aa7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,16 @@ +language: node_js +node_js: + - "6" +deploy: + provider: heroku + api_key: + secure: sgbowaUrgNLjctC0b2Ld9Ruqx14PIKq149c7Rb7l0o7SuqLp/W/8NS8NnDzvSPOqzYfDw+fAidWlds1b2Lfbjx+7bYDFUz+zmPIQTTTR1oW0klOXD6h9gDHaV068t1JsbyCr4nvCCy38b+whw2Z+syzWUFwqmlfkSE4tmL6zSNmfB8yd84OWtQ9UoCwMCqiIORPoQUudOqCD5Ve6c1wJKQjftgYeEiit+UJK8dy2rpU5ElNHggDK4RFWf8M8ZlrFvTk9RR86ZUbdIrehXiZ1xIQJDsixDiu44f9XwnS0/c+txywLSKtIXUIPbaA8ftEk3jt4m8PXTxXVp+UQGTPhtjMr0YNBx3VdSEbFHm2zxBhopRgDR3HAyQ4DhDs3N22YkXugkpr8S0z+Vb/KlEf+WjXllVB9mVk5T2CdxVZ4feWDxrguHWP70JAEr1PqXUU2pJ3GKntAIbnfQDr1VJS4WnjxDGx6PVHGeQfmVdr5t9zCYt76z0s/dVhfWnVgTirZ3yAHf5osTnM0cS+/pBC6vMpoyUu+3x3SaBMxR2DhLNGUhGqwbcxndgfKFUeru6noxEBm87S+aFWQ6y3BKs4PRqrBU8bLEky39S1DMkMlHqXnFNwgmwKQbwZ2LCQ4X54hToT9fNWWQHH0zkWUoCoc85h6+9Ai9/TPsGwFXWXxHLo= + app: reacteureka + on: + repo: jpdevries/eureka + branch: release-2.0 + +# safelist +branches: + only: + - release-2.0 diff --git a/LICENSE b/LICENSE index 3b41b4f..9bbafd0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,22 +1,31 @@ -The MIT License (MIT) +BSD License -Copyright (c) 2015 JP DeVries +For Eureka Browser software -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: +Copyright (c) 2015-present, John-Paul DeVries +All rights reserved. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: -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. + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Eureka Browser nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index fa101b4..9666eb3 100644 --- a/README.md +++ b/README.md @@ -1,194 +1,702 @@ -# Eureka +# Eureka 🌲 +[![Build Status](https://travis-ci.org/jpdevries/eureka.svg?branch=release-2.0)](https://travis-ci.org/jpdevries/eureka) [![npm version](https://badge.fury.io/js/eureka-browser.svg)](https://badge.fury.io/js/eureka-browser) -Flexible Media Browser Component. [Try the demo](http://markup.tips/eureka). -As seen in [Redactor 2.0](https://www.modmore.com/extras/redactor) by modmore. Contributions welcomed. +Eureka is a progressively enhanced flexible media browser. Connected to your media sources through a REST API, this accessible web component allows users to browse media sources, upload files, and choose media items. -> With `eureka.js` your users will be saying "I found it!" in no time. +[🤗 Try the demo](https://eureka.markup.tips/). + +> With `eureka.js` users will be saying "I found it!" in no time.   — [@mrktps](https://twitter.com/mrktps) -### Discuss +## 💬 Discuss Join the conversation in our public Gitter chat room. [![Join the chat at https://gitter.im/jpdevries/eureka](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/jpdevries/eureka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -### Features +## 📚 Wiki +Don't forget to [browse the Wiki](https://github.com/jpdevries/eureka/wiki) for [more information on the REST API](https://github.com/jpdevries/eureka/wiki/REST-API), [patterns](https://github.com/jpdevries/eureka/wiki/Patterns), [screenshots](https://github.com/jpdevries/eureka/wiki/Screenshots) and more. + +## 🍻 Support +The Eureka Media Browser and supporting resources are provided free as in beer. +[Gratuities are accepted through Square Cash](https://cash.me/$devriesdev). + +## 🏋️‍♀️ Weigh In +The Eureka Media Browser is pretty lightweight all things considered. + +| Asset | Weight (GZIP minified) +| ------------- |:-------------:| +| CSS Stylesheet | `7.83kB` | +| SVG Icons | `7.88kB` | +| React Component | `75.83kB` | + +[Have a gander at our Webpack Visualizer](https://eureka.markup.tips/assets/js/stats.html) 👀 . + +### 📄 HTML–first +As a progressively enhanced web component, Eureka is functional HTML–first. This means that technically anything other than the initial HTML layer is a non–critical enhancement. Critical features supported by the HTML layer, such as browse, upload, and choose, are universally supported and do not depend on modern browsers, CSS styles, or script. + +😲 Take a gander at Eureka in the nued by waking our incredibly lightweight [raw HTML example](https://reacteureka.herokuapp.com/nued). + +We also encourage you to temporarily disable JavaScript in your browser and party with Eureka like it's 1999. + +## Powered By 🚀 + - Progressively Enhanced from HTML components + - All–new Virtual DOM powered by React/Redux + - Node Server Side Rendering + - Node testing server + +## Highlights 🖋 + - Configurable Rest API endpoints - Browse multiple media sources for images - Drag and Drop Upload Support - Flexible Layout - Responsive Design - - Lightweight - - no external dependencies (not even jQuery) - - `eureka.min.js` 65kb minified - - `eureka.min.css` 40kb minified + - Save Data with responsive thumbnails + - Configurable Styles via CSS Variables - Accessible - supports mobile and touch devices - - supports `.no-js` - - ARIA Keyboard Support - - please log *any* a11y issues [here](https://github.com/jpdevries/eureka/issues) + - supports `.no-js` via server side rendering + - ARIA & Keyboard Support + - high contrast themes + +## 🚥 Features +The level of isomorphism between the client and server side one can achieve with Node is unmatched. Eureka takes advantage of this unique strength of Node by, through an isomorphic server and standard synchronous forms, achieving full support for critical features. + +No features rely solely on sight or the use of a mouse. Keyboard use is supported. Accommodations are taken for users that benefit from high contrast themes. Visually hidden text is used to convey aspects of the interface that are otherwise visually implied to screen readers and assistive technology. + +The semantic HTML layer remains usable even absent of style as pure HTML. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Support of features against browser environments
Feature.no-js< IE 9ChromeSafariFirefoxIE 11Edge
Upload multiple files
Browse directories
Choose a media item
Keyboard Support
ARIA Support✳️
WCAG Level AA
Internationalization
Download Item
Choose Multiple Items
Delete Multiple Items
Keyboard Shortcuts
Crop Images
Paste to Upload
Media Source panel
Async UX
Filterable Data Table
Sortable Data Table
Drag 'n drop uploads
Grid Layout
Flexible Layout
View Chooser
Masonry Layout Mode
Pathbar
Rename Item
Delete Item
Download Multiple Items
Local Storage
Variable Styles
Accessible Themes
Mobile First Layout✳️
Fullscreen Mode
HTML5 Context Menus🔧
HTML5 Details✳️✳️
HTML5 Datalist✳️✳️✳️
+ +## 🛠 Usage -### Tech Specs - - Built [HTML-first](http://markup.tips/htmlftw) and powered by [Markup.tips](http://markup.tips) - - ES5/6 JavaScript authored in [TypeScript](http://www.typescriptlang.org) - - Extensible theme authored in Object Oriented [Sass](http://sass-lang.com) - - Automation & Build powered by [Grunt](http://gruntjs.com) +```bash +npm install eureka-browser --save +``` -### Preview -![](http://j4p.us/image/2p280e3h3C1z/Screen%20Shot%202015-04-25%20at%2011.24.36%20PM.png) -Eureka draws a flexible view and allows users to browse, upload, and choose media items from any number of different media sources. +#### Bower +You can also install Eureka via Bower, which is a good way to fetch its stylesheet and icon sprite. There is also a UMD export of the `EurekaMediaBrowser` component for the unlikely case you'll need it. -### Usage +```bash +npm install -g bower +``` -`eureka.js` needs you to load at least one `JavaScript` file and one `CSS` stylesheet before getting started. -```html - - - - - - +```bash +bower install eureka-browser#release-2.0 +ls bower_components/eureka-browser/client/build/assets/css/ # default eureka theme +ls bower_components/eureka-browser/client/build/assets/img # icon sprite +ls bower_components/eureka-browser/client/build/assets/js # bundled and unbundled UMD exports of EurekaMediaBrowser component ``` -The Eureka Media Browser is built [HTML-first](http://markup.tips/html-ftw) using [Markup.tips](http://markup.tips). This means `eureka.js` assumes you've populated the `DOM` with `HTML` markup manually. If you haven't, no worries. `muckboot.eureka.js` can do that for you. Let's say you start off with an empty div: +#### HTML +The `` React component is styled by a standard CSS stylesheet. Include the CSS for the appropriate version of the media browser. Reference the theming section for [more information on styling Eureka](https://github.com/jpdevries/eureka#-theming). ```html -
+ ``` -_Note the `.eureka` class and the use of a unique identifer. The unique identier is important because `eureka.js` will use it a lot when referencing the `DOM`._ +```html +
+ +
+``` + +#### JS ```js -var $muckboot = new MuckBoot({ // paint the DOM - id:'media-browser_0', - upload:true // if set to false will not add uploading related elements to the DOM - createDir:false, // add create directory button - enlargeFocusRows:true, // whether or not to make images in focused rows bigger - hideImagesOnListView:undefined, // if true hides image thumbs in list view - allowFullScreen:true -}); +import React from 'react'; +import ReactDOM from 'react-dom'; +import { EurekaMediaBrowser } from 'eureka-browser'; + +ReactDOM.render( + , + document.getElementById('eureka-root') +); ``` -Now that `muckboot.eureka.js` has done the prep-work Eureka is ready for instantiation. +Eureka will then be injected into the DOM and eagerly reach out to the REST API for the JSON data it needs to offer the interface. + +Configure the `EurekaMediaBrowser` via the optional attributes found in the default configuration below: +```xml + +``` -```js -var $eureka = new Eureka({ // init the Eureka component - // REQUIRED SETTINGS - uid:'media-browser_0', // id of our div - // if useWebWorkers is true these must be absolute paths or relative to the webserver root - directoryRequestURL:'fakepi/listdirectory.php', // lists contents of a directory. along with headers Object, sends 's' and 'dir' parameters for media source and current directory - listSourceRequestURL:'fakepi/listsource.php', // list navigation tree of a given media sources. along with headers Object, sends 's' paramater for media source to list - listSourcesRequestURL:'fakepi/listsources.php', // fetches a list of all media sources - - // OPTIONAL SETTINGS - directoryChildrenRequestURL:'fakepi/listdirectorychildren.php', // fetches a list of direct children directories of the given directory. If ommited diretoryRequestURL will be used and all non-directory results will be ignored - useWebWorkers:true, // whether or not to use a worker thread when making XHR Requests - touch:Modernizr.touch, // or use your own feature detection - fileUploadURL:undefined, // endpoint to send files to, removes upload components from UI if not set - navTreeHidden:false, // initially hides the sidebar - useLocalStorage:true, // whether or not to try and use localStorage to save state data - displayFullTreePaths:false, // when enabled displays full paths in the tree - allowRename:true, // disabling removes rename button from contextual menus - allowDelete:true, // disabling removes delete button from contextual menus - confirmBeforeDelete:true, // when enabled confirms before deleting items - storagePrefix:'eureka_', // prepended to localStorage keys - locale:'en-US', // i18n - mediaSource:0, // zero-based numeric index of current media source (will override localStorage) - currentDirectory:'/', // (will override localStorage) - debug:false, // when enabled traces debugging info to console.log - headers: [{ - 'Powered-By': 'Eureka by Markup.tips' // additional headers for XHR requests - }] -}); +## ⚙️ Options + +| Option | Default | Description | +| ------------- |:-------------:| -----| +| `basePath` | `"/"` | Prepended to URLs for XHR requests to the Rest API.
Set to the absolute path of your Rest API. | +| `allowUploads` | `true` | Whether or not to allow uploading of media items | +| `treeHidden` | `true` | Whether or not the Media Source Panel "sidebar" should be initially closed | +| `useLocalStorage` | `true` | Whether or not to use the JavaScript `localStorage` API to remember session data such as the last visited directory and view mode preference | +| `storagePrefix` | `"eureka__"` | Prepended to `localStorage` keys | +| `allowRename` | `true` | Whether or not to offer users the ability to rename directories and media items | +| `allowDelete` | `true` | Whether or not to offer users the ability to delete directories and media items | +| `allowDownload` | `false` | Whether or not to add a download button to media items | +| `confirmBeforeDelete` | `false` | Whether or not to confirm intent before users delete directories and media items | +| `locale` | `"en-US"` | The localization to use. See Lexicons. | +| `mediaSource` | `undefined` | The default initial media source id to use | +| `currentDirectory` | `"/"` | The default initial directory to use | +| `uid` | `"0"` | A unique identifier used to ensure multiple `` components on the same page do not share the same DOM ids | +| `assetsBasePath` | `"./assets/"` | Relative path to the Eureka assets directory | +| `iconSVG` | `"./img/icons.svg"` | Path, relative to `assetsBasePath`, to the Eureka icon sprite sheet | +| `callbacks` | `{close: undefined, choose: undefined}` | Object containing close and choose callbacks | +| `headers` | `{'Powered-By': 'Eureka by Markup.tips'}` | Additional request headers sent with XHR requests | +| `intervals` | `{searchBarPlaceholder: false,fetchDirectoryContents: 18000,updateSourceTree: false}` | Intervals for whether or not and how often to do things like hit the REST API for updated data or update the placeholder attribute based on the current directory listing | +| `enlargeFocusedRows` | `false` | Whether or not to enlarge thumbnails of focused rows | +| `mode` | `"table"` | Initial view mode (table, thumb, grid, list) | +| `sort` | `"name"` | Initial column to sort media items on | +| `allowFullscreen` | `true` | Whether or not the interface should offer a fullscreen button | +| `emphasisFocusedMediaItem` | `true` | Whether or not to emphasis selected media items (defaults to emphasizing the filename, only applies to table and list view modes) | +| `doDragNDrop` | `true` | Whether or not to enable drag 'n drop features | +| `allowChooseMultiple` | `true` | Whether or not to allow multiple files to be chosen | +| `allowInvertSelection` | `true` | Whether or not to allow selection of multiple items to be inverted | +| `allowDownloadMultiple` | `true` | Whether or not to allow multiple selected items to be download as a zip file | + + + +*Please take note that when `useLocalStorage` is `true` any options manually passed in as props will take precedent.* + +## 🌐 Browser Support +The server side rendering and HTML–first design patterns begin progressively enhancing a universally supported HTML layer. So basic features are supported in any browser. JavaScript support begins at IE9. Desired CSS layout requires Flexbox and is further enhanced with Grid Layout. + +## 🔡 i18n +Eureka is on Crowdin. Please [contribute to our translations](https://crowdin.com/project/eureka-browser) if you are able. + +## ♿️ Accessibility Proclaimer +Eureka strives for WCAG Level AA success criteria in all scenarios with some accessibility preference features leaning towards Level AAA. Please [log *any* a11y issues here](https://github.com/jpdevries/eureka/issues). + +## ✅ Getting Started +We're going to use `yarn` so make sure that is installed. + +```bash +npm install yarn -g ``` -Eureka has been instantiated it's up to your user to find or upload the content they seek. +To fire up a testing server run the following: -### API -The endpoints you'll need to supply Eureka with are documented in [the Wiki](https://github.com/jpdevries/eureka/wiki/API-Docs). +```bash +git clone -b release-2.0 git://github.com/jpdevries/eureka.git +cd eureka +yarn prestart +yarn build +yarn serve # start the development server +# open http://localhost:3001 # Node server +``` -### Events -`eureka.js` likes to let you know when things happen. +To host the compiled production server run +```bash +yarn start # install, fetch sources, build +``` -| Event | Note | -| ------------ |:-------------- | -| `EurekaModel.EurekaFoundIt` | Dispatched when a media item is chosen | -| `EurekaModel.EurekaFileRename` | Dispatched when a media item is renamed | -| `EurekaModel.EurekaUnlink` | Dispatched when a media item is deleted | -| `EurekaModel.EurekaDirectoryCreated` | Dispatched when a new directory is created | -| `EurekaModel.EurekaDirectoryOpened` | Dispatched when a directory is opened | -| `EurekaModel.EurekaDirectoryChanged` | Dispatched when the current directory is changed | -| `EurekaModel.EurekaMediaSourceChange` | Dispatched when the current media source is changed | -| `EurekaModel.EurekaMediaSourcesListChange` | Dispatched when the list of available sources is updated | -| `EurekaModel.EurekaViewChange` | Dispatched when the view mode is changed | +or +```bash +yarn prod # fire up the production server +``` +The testing server hosts the `sources` and `client/build` directories along with a REST API to `GET`, `POST`, `PUT`, `DELETE` media items. +![](http://j4p.us/22241J1A3N06/Screen%20Shot%202017-03-13%20at%2012.56.51%20AM.png) -##### Listening to Events -The `EurekaFoundIt` is dispatched from the DOM element itself. This means that if you create a new Eureka Browser named "foo" like so: -```html -
- +## ⚒ Development +The Eureka component is created with `create-react-app` and found in the `client` directory. There you can run React tests, build the React component, and start the development server. + +Firstly, you'll need the testing server running for the REST API: +```bash +cd eureka +yarn server ``` -You can listen to when things happen like so: -```js -var el = document.getElementById('foo'); -el.addEventListener(EurekaModel.EurekaFoundIt,function(e){ - var data = e.detail; - var src = data.src; // probably what you are interesting in - var filename = data.filename; // also good to know - var filesize = data.filesize; - var timestamp = data.timestap; -}); +Now, in another terminal tab: + +```bash +cd client +yarn build +yarn test +yarn start +# open http://localhost:3000 # development server ``` -Isn't that neat? +The development server, like any other React app created with `create-react-app`, will automatically inject changes as you save changes to your source files. + +## 🗄 REST API +Eureka is hungry for remote media sources. It needs a REST API to feed it JSON data. +Find docs at the [REST API wiki page](https://github.com/jpdevries/eureka/wiki/REST-API). -##### Event Data -Events attach relevent data to the `detail` property of the `Event` itself. `eureka.js` is still in rapid development and events and their corresponding data are not yet fully documented, so log it to the console and see what you get for now. It'll be our own little surprise. +### 💄 Decorating Actions +Eureka's core Redux actions assume you'll be using a REST API. If REST isn't really your thing, or you need to modify the Redux actions for some other reason, you can decorate the actions Eureka will use. This is done using a Higher Order Component that wraps `EurekaMediaBrowser` and injects a `decoratedActions` property which will be applied as a shallow merge on top of the default actions. Reference this [Gist example of decorating actions](https://gist.github.com/jpdevries/e967056bd31cf6f01df0e431df68283b) for an example. -### Browser Support -Eureka targets modern HTML5 browsers and uses the latest draft of the flexible box model spec. Of course utilizing the HTML layer should get you universal support in theory, but regarding CSS3 and JavaScript support for layout and progressive enhancements we support the following environments: - - Chrome - - Safari - - Firefox - - IE 11,10 - - Basic IE 9 support is available via some external shivs. See [Supporting IE9](https://github.com/jpdevries/eureka/wiki/Supporting-IE9). - - Edge - - Opera 35+ - - iOS Latest - - Android Latest +## 📠 Server Side Rendering +Eureka is progressively enhanced with React to be asynchronous and a richer experience in capable browsers that successfully execute scripts. But Eureka's support doesn't end at modern browsers because its design process doesn't start there. Eureka is a semantic and synchronous HTML form before it is an enhanced Virtual DOM. -### Keyboard Shortcuts -In addition to the below shortcuts, Eureka supports standard tab-to-focus usability shortcuts. +Reference the [Server Side Rendering Wiki page](https://github.com/jpdevries/eureka/wiki/Server-Side-Rendering) for documentations and examples on achieving world wide support. + +### ⌨️ Keyboard Shortcuts +Eureka uses JavaScript events to enrich the user experience of keyboard users. | Shortcut | Command | | --------------- |:-------------: | -| Toggle Sidebar | ctrl ; | -| Change View | ctrl alt (1-5) | -| Change Media Source | alt (1-9) | +| Toggle Sidebar | ctrl+; | +| Change View | ctrl+alt+(1-5) | +| Change Media Source | alt+(1-9) | | Delete Item | backspace | | Expand Item | spacebar | | Choose Item | return | -| Create Directory | ctrl n | -| Upload Files | ctrl u | -| Rename Item | ctrl r | -| Filter Items | ctrl f | +| Create Directory | ctrl+n | +| Create file | ctrl+shift+n | +| Upload Files | ctrl+u | +| Rename Item | ctrl+r | +| Filter Items | ctrl+f | +| Sort Ascending | alt+up | +| Sort Descending | alt+down | +| Sort by filename | alt+n | +| Sort by dimensions | alt+d | +| Sort by file size | alt+f | +| Sort by edited on | alt+e | +| Set Choose Mode to Single | alt+s | +| Set Choose Mode to Multiple | alt+m | +| Invert Selection | alt+i | + + +## 🎨 Theming +Request additional theming options and share your themes by [opening an issue](https://github.com/jpdevries/eureka/issues/new) or [joining the discussion on Gitter](https://gitter.im/jpdevries/eureka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge). + +| Variable | Description | +| ------------- | -----| +| `--active` | Color used to highlight activated components such as the drop area | +| `--border-width` | Generic border width for panels, components, inputs | +| `--border-style` | Generic border style for panels, components, inputs | +| `--border-color` | Generic border color for panels, components, inputs | +| `--button-bg` | Background color of button elements | +| `--button-color` | Color of button text | +| `--color` | Default text color | +| `--dangerous` | Color to use for warnings and errors | +| `--light-bg` | Generic light background color, used for panels | +| `--link-color` | Default anchor text color | +| `--panel-border-color` | Border color of panel components | +| `--subtle` | Subtle color, used for Media Source Panel | +| `--very-subtle` | Very subtle color, used for drop zone area | +| `--very-subtle-icon-opacity` | Opacity for very subtle icons | + +## 📣 Audible Interface +Eureka uses a combination of ARIA attributes and `.visually-hidden` text to offer an experience that is as accessible visually as it is audibly. + +![The Eureka Browser interface without as seen by a screen reader includes descriptive text for an accessible experience](http://j4p.us/3h1e2G0B0b0q/Screen%20Shot%202017-04-25%20at%205.25.24%20PM.png) + +There is one Achilles heel here. Depending on your media source API, you might not be able to provide alternative text for images and media items. In the event that no alt text is provided, Eureka will to the best it can. For example: + +> schildpad.jpg displays at 336x125, weighs 37 KB, and was edited on Sunday, April 02, 2017, Central European Summer Time + +## 📺 Fullscreen Mode +To maximize usability Eureka leverages the Fullscreen API. + +
+See the Fullscreen Mode in action + +
+ +## 🏞 Masonry Layout +Eureka is enhanced by a Masonry Layout mode. + +
+Masonry Layout Mode + +

+ +If you are using Eureka as a UMD Module (probably not) you'll need [to load Masonry first](https://github.com/jpdevries/eureka/wiki/Loading-Patterns-(WIP)). If you would not like Masonry to be included in your bundle, add Masonry to your Webpack excludes. Eureka will only enable the Masonry Layout if Masonry is available. -### Contribution Guidelines -There's [lots to do](https://github.com/jpdevries/eureka/issues). Feel free to discuss or [open an issue](https://github.com/jpdevries/eureka/issues/) before submitting pull requests. Once you've checked out the project you'll want to get up and running with the Grunt workflow: -```bash -cd eureka/_build/ -npm install #install node modules -grunt build #build source files +```js +externals: { + "react": "React", + "react-dom":"ReactDOM", + "redux":"Redux", + "react-redux":"ReactRedux", + "react-masonry-component":"Masonry" +} ``` -To watch files for changes simply run the `grunt` task: -```bash -cd eureka/_build/ -grunt #watch for changes -``` -You may test with either `examples/index.php` or `examples/muck.php`. HTML-first features are written and tested in `examples/index.php` while `muck.php` is a naked DOM populdated by `muckboot.eureka.js`. +## 👀 Accessible Themes +Eureka is empowered by themes which make it more accessible to users with particular physical or contextual disabilities or preferences. + +### Black on White +![](http://j4p.us/091n1d1z3y1F/Screen%20Shot%202017-03-16%20at%203.33.14%20AM.png) + +### White on Black +![](http://j4p.us/3O163v400P30/Screen%20Shot%202017-03-16%20at%203.33.45%20AM.png) diff --git a/_build/README.md b/_build/README.md deleted file mode 100644 index 8581ca1..0000000 --- a/_build/README.md +++ /dev/null @@ -1,83 +0,0 @@ -# Build - -What you need --------------------------------------- - -In order to build Eureka front end assets, you need to have Ruby, Node.js/npm latest and git 1.7 or later. -(Earlier versions might work OK, but are not tested.) - -For Windows you have to download and install [git](http://git-scm.com/downloads) and [Node.js](http://nodejs.org/download/). - -Mac OS users should install [Homebrew](http://mxcl.github.com/homebrew/). Once Homebrew is installed, run `brew install git` to install git, -and `brew install node` to install Node.js. - -Linux/BSD users should use their appropriate package managers to install git and Node.js, or build from source -if you swing that way. Easy-peasy. - -Installing Ruby and Ruby Gems ----------------------------- -You'll need ruby and sass gems installed. If you're on OS X or Linux you probably already have Ruby installed; test with ruby -v in your terminal. When you've confirmed you have Ruby installed, run gem install sass to install Sass. - -```bash -gem install sass -``` - -Make sure you have `sass` installed by testing: - -```bash -sass --version -``` -_Note: Depending on your Ruby setup you may need to use `sudo gem install sass`._ - -Installing Grunt & Grunt Packages ----------------------------- - -First, clone a copy of this git repo by running: - -```bash -git clone -b grunt git@github.com:jpdevries/eureka.git -``` - -Install the [grunt-cli](http://gruntjs.com/getting-started#installing-the-cli) package if you haven't before. These should be done as global installs: - -```bash -npm install -g grunt-cli -``` - -Make sure you have `grunt` installed by testing: - -```bash -grunt --version -``` - -Enter the default template directory and install the Node and Bower dependencies, this time *without* specifying a global(-g) install: - -```bash -cd eureka/_build/ -npm install -``` -_Note: `npm install` updates dependencies and should be run whenever you pull from git._ - -Optionally enable Growl notifications install [terminal-notifier](https://github.com/alextucker/grunt-growl#getting-started) with RubyGems: -```bash -gem install terminal-notifier -``` -_Note: Depending on your Ruby setup you may need to use `sudo gem install terminal-notifier`._ - -Grunt Commands ----------------------------- - -__Build__ -Compile Sass and concatenate and minify JavaScript by running: - -```bash -grunt build -``` - -__Watch__ -Watches files for changes and runs Sass and JavaScript tasks: - -```bash -grunt -``` -_Note: grunt is now watching files for changes. When Sass files are changed CSS will automatically be generated.
Install the LiveReload [browser extension](http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-) to inject CSS changes without a page refresh._ diff --git a/_build/bower.json b/_build/bower.json deleted file mode 100644 index 48ac4b3..0000000 --- a/_build/bower.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "eureka", - "version": "1.2.0", - "author": { - "name": "JP DeVries", - "url": "http://devries.jp" - }, - "homepage": "https://github.com/jpdevries/eureka", - "description": "A modern web component for browsing and uploading files to multiple remote media sources", - "repository": { - "type": "git", - "url": "https://github.com/jpdevries/eureka" - }, - "bugs": { - "url": "https://github.com/jpdevries/eureka/issues" - }, - "dependencies": { - "html5-file-uploader": "git://github.com/jpdevries/html5-file-uploader.git#a0367a276344068f34362046233f478ca3e30fd5", - "html5-boilerplate": "5.0.0", - "font-awesome": "4.3.0", - "dom4": "~1.4.3", - "scopedQuerySelectorShim": "git@github.com:jpdevries/scopedQuerySelectorShim#patch-1" - }, - "exportsOverride": { - "scopedQuerySelectorShim" : { - "":"src" - }, - "DefinitelyTyped": { - "": "modernizr" - }, - "bourbon": { - "": "app/assets/stylesheets/" - }, - "neat": { - "": "app/assets/stylesheets/" - }, - "html5-boilerplate": { - "css": [ - "dist/css/main.css", - "dist/css/normalize.css" - ], - "js": [ - "dist/js" - ], - "": [ - "dist/.htaccess", - "dist/favicon.ico", - "dist/humans.txt", - "dist/index.html", - "dist/robots.txt", - "dist/apple-touch-icon-precomposed.png" - ] - }, - "font-awesome": { - "scss": [ - "scss" - ], - "fonts": [ - "fonts" - ], - "less": [ - "less" - ], - "css": [ - "css" - ] - }, - "dom4": { - "": [ - "build/*.js" - ] - } - }, - "keywords": [ - "media", - "browser" - ], - "devDependencies": { - "DefinitelyTyped": "*", - "bourbon": "^4.2.3", - "neat": "^1.7.2" - }, - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/_build/examples/assets/eureka.1.2.0.js b/_build/examples/assets/eureka.1.2.0.js deleted file mode 100644 index 4ea737d..0000000 --- a/_build/examples/assets/eureka.1.2.0.js +++ /dev/null @@ -1,3169 +0,0 @@ -var AJAX = (function () { - function AJAX() { - this.x = new XMLHttpRequest(); - } - AJAX.prototype.send = function (method, url, data, callback, sync, headers) { - if (sync === void 0) { sync = true; } - if (headers === void 0) { headers = []; } - var that = this; - this.x.open(method, url, sync); - this.x.onreadystatechange = function () { - if (that.x.readyState == 4) { - callback(this.responseText); - } - }; - if (method == 'POST') { - this.x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); - } - if (headers !== undefined && headers !== null && headers.length !== undefined && headers.length) { - for (var i = 0; i < headers.length; i++) { - var obj = headers[i]; - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - this.x.setRequestHeader(key, obj[key]); - } - } - } - } - this.x.send(data); - }; - AJAX.prototype.get = function (url, data, callback, sync, headers) { - if (sync === void 0) { sync = true; } - if (headers === void 0) { headers = []; } - var query = []; - for (var key in data) { - query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); - } - this.send('GET', url + ((url.indexOf('?') > 0) ? '&' : '?') + query.join('&'), null, callback, sync, headers); - }; - AJAX.prototype.post = function (url, data, callback, sync) { - if (sync === void 0) { sync = true; } - var query = []; - for (var key in data) { - query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); - } - this.send('POST', url, query.join('&'), callback, sync, (data.headers !== undefined ? data.headers : null)); - }; - AJAX.prototype.setHeaders = function (headers) { - var that = this; - for (var i = 0; i < headers.length; i++) { - var obj = headers[i]; - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - this.x.setRequestHeader(key, obj[key]); - } - } - } - }; - return AJAX; -}()); -(function () { - if (!HTMLElement.prototype.querySelectorAll) { - throw new Error('rootedQuerySelectorAll: This polyfill can only be used with browsers that support querySelectorAll'); - } - var container = document.createElement('div'); - try { - container.querySelectorAll(':scope *'); - } - catch (e) { - var scopeRE = /^\s*:scope/gi; - function overrideNodeMethod(prototype, methodName) { - var oldMethod = prototype[methodName]; - prototype[methodName] = function (query) { - var nodeList, gaveId = false, gaveContainer = false; - if (query.match(scopeRE)) { - query = query.replace(scopeRE, ''); - if (!this.parentNode) { - container.appendChild(this); - gaveContainer = true; - } - var parentNode = this.parentNode; - if (!this.id) { - this.id = 'rootedQuerySelector_id_' + (new Date()).getTime(); - gaveId = true; - } - nodeList = oldMethod.call(parentNode, '#' + this.id + ' ' + query); - if (gaveId) { - this.id = ''; - } - if (gaveContainer) { - container.removeChild(this); - } - return nodeList; - } - else { - return oldMethod.call(this, query); - } - }; - } - overrideNodeMethod(HTMLElement.prototype, 'querySelector'); - overrideNodeMethod(HTMLElement.prototype, 'querySelectorAll'); - } -}()); -var matches = function (el, selector) { - return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector); -}; -var getClosest = function (element, selector) { - for (; element && element !== document; element = element.parentNode) { - if (matches(element, selector)) { - return element; - } - } - return false; -}; -var getParents = function (element, selector) { - var parents = []; - for (; element && element !== document; element = element.parentNode) { - if (!selector || (selector && matches(element, selector))) { - parents.push(element); - } - } - if (parents.length) { - return parents; - } - return null; -}; -Array.prototype.equals = function (array) { - if (!array) - return false; - if (this.length != array.length) - return false; - for (var i = 0, l = this.length; i < l; i++) { - if (this[i] instanceof Array && array[i] instanceof Array) { - if (!this[i].equals(array[i])) - return false; - } - else if (this[i] != array[i]) { - return false; - } - } - return true; -}; -var _EUREKA = { - src: (function () { - var scripts = document.getElementsByTagName("script"), src = scripts[scripts.length - 1].src; - return src; - })() -}; -var Eureka = (function () { - function Eureka(opts) { - this.opts = opts; - var that = this; - this._model = new EurekaModel(opts); - this._view = new EurekaView(); - this._controller = new EurekaController({ - model: this._model, - view: this._view - }); - this._model.setController(this._controller); - this._view.setController(this._controller); - this._view.init(); - this._view.paint(); - this._controller.init(); - this.fetch(); - this._view.getElement().addEventListener('EurekaFilesUploaded', function (e) { - that._model.setCurrentDirectory(that._model.getCurrentDirectory(), true, true, true); - }); - } - Eureka.prototype.fetch = function () { - if (this._model.getDebug()) - console.log('fetch'); - var _shouldFetchDirectory = (this._model.getCurrentMediaSource() !== undefined && this._model.getCurrentMediaSource() !== '/' && this._model.getCurrentMediaSource() !== '') ? true : false; - this._model.setCurrentMediaSource(this._model.getCurrentMediaSource(), true, undefined, !_shouldFetchDirectory, true); - if (_shouldFetchDirectory) { - this._model.setCurrentDirectory(this._model.getCurrentDirectory(), true, true, true); - } - }; - Eureka.prototype.getElement = function () { - return this._view.getElement(); - }; - return Eureka; -}()); -var EurekaMediaSource = (function () { - function EurekaMediaSource(opts) { - this.opts = opts; - this._id = ''; - this._title = ''; - if (opts.id !== undefined) - this._id = opts.id; - if (opts.title !== undefined) - this._title = opts.title; - } - EurekaMediaSource.prototype.getID = function () { - return this._id; - }; - EurekaMediaSource.prototype.setID = function (id) { - this._id = id; - }; - EurekaMediaSource.prototype.getTitle = function () { - return this._title; - }; - EurekaMediaSource.prototype.setTitle = function (title) { - this._title = title; - }; - EurekaMediaSource.prototype.toString = function () { - return this.getID(); - }; - return EurekaMediaSource; -}()); -var EurekaModel = (function () { - function EurekaModel(opts) { - this._uid = 'media-browser_0'; - this._storagePrefix = 'eureka_'; - this._sources = []; - this._navTreeHidden = false; - this._useLocalStorage = true; - this._currentDirectory = undefined; - this._currentView = 'view-a'; - this._locale = 'en-US'; - this._selected = ''; - this._editable = true; - this._headers = []; - this._debug = false; - this._confirmBeforeDelete = true; - this._displayFullTreePaths = false; - this._allowRename = true; - this._allowDelete = true; - this._touch = false; - this._prependOptGroupsWithRootOption = true; - this._showDimensionsColumn = true; - this._webWorkersPath = ''; - this._directoryRequestURL = ''; - this._directoryChildrenRequestURL = ''; - this._listSourceRequestURL = ''; - this._listSourcesRequestURL = ''; - this._useWebWorkers = false; - this._sortMediaSources = false; - this._fullscreenTarget = '.eureka-wrapper'; - this.getXHRHeaders = function () { - return this._headers; - }; - if (opts.uid !== undefined) - this._uid = opts.uid; - if (opts.storagePrefix !== undefined) - this._storagePrefix = opts.storagePrefix; - if (opts.locale !== undefined) - this._locale = opts.locale; - if (opts.mediaSource !== undefined) - this._mediaSource = opts.mediaSource; - if (opts.currentDirectory !== undefined) - this._currentDirectory = opts.currentDirectory; - if (opts.headers !== undefined) - this._headers = opts.headers; - if (opts.navTreeHidden !== undefined) - this._navTreeHidden = opts.navTreeHidden; - if (opts.useLocalStorage !== undefined) - this._useLocalStorage = opts.useLocalStorage; - if (opts.currentView !== undefined) - this._currentView = opts.currentView; - if (opts.selected !== undefined) - this._selected = opts.selected; - if (opts.displayFullTreePaths !== undefined) - this._displayFullTreePaths = opts.displayFullTreePaths; - if (opts.allowRename !== undefined) - this._allowRename = opts.allowRename; - if (opts.allowDelete !== undefined) - this._allowDelete = opts.allowDelete; - if (opts.directoryRequestURL !== undefined) - this._directoryRequestURL = opts.directoryRequestURL; - this._directoryChildrenRequestURL = (opts.directoryChildrenRequestURL !== undefined) ? opts.directoryChildrenRequestURL : this._directoryRequestURL; - if (opts.listSourceRequestURL !== undefined) - this._listSourceRequestURL = opts.listSourceRequestURL; - if (opts.listSourcesRequestURL !== undefined) - this._listSourcesRequestURL = opts.listSourcesRequestURL; - if (opts.fileUploadURL !== undefined) - this._fileUploadURL = opts.fileUploadURL; - if (opts.showDimensionsColumn !== undefined) - this._showDimensionsColumn = opts.showDimensionsColumn; - if (opts.useWebWorkers !== undefined) - this._useWebWorkers = (window.Worker) ? opts.useWebWorkers : false; - if (opts.sortMediaSources !== undefined) - this._sortMediaSources = opts.sortMediaSources; - if (opts.debug === true) - this._debug = opts.debug; - if (opts.confirmBeforeDelete !== undefined) - this._confirmBeforeDelete = opts.confirmBeforeDelete; - if (opts.touch === true) - this._touch = true; - this._webWorkersPath = (opts.webWorkersPath !== undefined) ? opts.webWorkersPath : _EUREKA.src.substring(0, _EUREKA.src.lastIndexOf('/')) + '/workers/'; - if (this._useLocalStorage) { - if (this.getLocalStorage('currentMediaSource') && !opts.mediaSource) - this._mediaSource = this.getLocalStorage('currentMediaSource'); - if (this.getLocalStorage('navTreeHidden') && !opts.navTreeHidden) - this._navTreeHidden = (this.getLocalStorage('navTreeHidden') == 'true' ? true : false); - if (this.getLocalStorage('currentDirectory') && !opts.currentDirectory) - this._currentDirectory = this.getLocalStorage('currentDirectory'); - if (this.getLocalStorage('currentView') && !opts.currentView) - this._currentView = this.getLocalStorage('currentView'); - } - } - Object.defineProperty(EurekaModel, "EurekaFoundIt", { - get: function () { return "EurekaFoundIt"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaFileRename", { - get: function () { return "EurekaFileRename"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaUnlink", { - get: function () { return "EurekaUnlink"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaDirectoryCreated", { - get: function () { return "EurekaDirectoryCreated"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaDirectoryOpened", { - get: function () { return "EurekaDirectoryOpened"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaDirectoryClosed", { - get: function () { return "EurekaDirectoryClosed"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaDirectoryChanged", { - get: function () { return "EurekaDirectoryChanged"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaMediaSourceChange", { - get: function () { return "EurekaMediaSourceChange"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaMediaSourcesListChange", { - get: function () { return "EurekaMediaSourcesListChange"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaViewChange", { - get: function () { return "EurekaViewChange"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaFilesUploaded", { - get: function () { return "EurekaFilesUploaded"; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EurekaModel, "EurekaCanceled", { - get: function () { return "EurekaCanceled"; }, - enumerable: true, - configurable: true - }); - EurekaModel.prototype.getUseWebWorkers = function () { - return this._useWebWorkers; - }; - EurekaModel.prototype.getwebWorkersPath = function () { - return this._webWorkersPath; - }; - EurekaModel.prototype.getShowDimensionsColumn = function () { - return this._showDimensionsColumn; - }; - EurekaModel.prototype.getLocalStorage = function (id) { - id = this.getStoragePrefix() + id; - if (localStorage.getItem(id) !== undefined && localStorage.getItem(id) !== 'undefined') - return localStorage.getItem(id); - return false; - }; - EurekaModel.prototype.setLocalStorage = function (id, value) { - id = this.getStoragePrefix() + id; - localStorage.setItem(id, value); - }; - EurekaModel.prototype.useLocalStorage = function () { - return this._useLocalStorage; - }; - EurekaModel.prototype.getAlertBeforeDelete = function () { - return this._confirmBeforeDelete; - }; - EurekaModel.prototype.getFileUploadURL = function () { - return this._fileUploadURL; - }; - EurekaModel.prototype.setFileUploadURL = function (val) { - this._fileUploadURL = val; - }; - EurekaModel.prototype.setAlertBeforeDelete = function (val) { - this._confirmBeforeDelete = val; - }; - EurekaModel.prototype.getDebug = function () { - return this._debug; - }; - EurekaModel.prototype.setDebug = function (debug) { - this._debug = debug; - }; - EurekaModel.prototype.getHeaders = function () { - return this._headers; - }; - EurekaModel.prototype.getUID = function () { - return this._uid; - }; - EurekaModel.prototype.getStoragePrefix = function () { - return this._storagePrefix; - }; - EurekaModel.prototype.getSources = function () { - return this._sources; - }; - EurekaModel.prototype.getEditable = function () { - return this._editable; - }; - EurekaModel.prototype.getDisplayFullTreePaths = function () { - return this._displayFullTreePaths; - }; - EurekaModel.prototype.getAllowRename = function () { - return this._allowRename; - }; - EurekaModel.prototype.getAllowDelete = function () { - return this._allowDelete; - }; - EurekaModel.prototype.getHTML5UploadData = function () { - return { - s: this.getCurrentMediaSource(), - dir: this.getCurrentDirectory() - }; - }; - EurekaModel.prototype.isTouch = function () { - return this._touch; - }; - EurekaModel.prototype.getMediaSourceDTOByID = function (id) { - if (this.getDebug()) - console.log('getMediaSourceDTOByID: ' + id); - var sources = this.getSources(); - for (var i = 0; i < sources.length; i++) { - var source = sources[i]; - if (source.getID() == id) { - return source; - } - } - if (this.getDebug()) - console.log('no media source found with id: ' + id); - return null; - }; - EurekaModel.prototype.getController = function () { - return this._controller; - }; - EurekaModel.prototype.setController = function (controller) { - this._controller = controller; - }; - EurekaModel.prototype.getNavTreeHidden = function () { - return this._navTreeHidden; - }; - EurekaModel.prototype.setNavTreeHidden = function (navTreeHidden) { - this._navTreeHidden = navTreeHidden; - if (this._useLocalStorage) - this.setLocalStorage('navTreeHidden', navTreeHidden); - }; - EurekaModel.prototype.setCurrentMediaSource = function (currentMediaSource, dispatch, setLocalStorage, clearDirectory, dispatchIdenticalValues) { - if (dispatch === void 0) { dispatch = true; } - if (setLocalStorage === void 0) { setLocalStorage = true; } - if (clearDirectory === void 0) { clearDirectory = true; } - if (dispatchIdenticalValues === void 0) { dispatchIdenticalValues = false; } - if (this.getDebug()) - console.log('setCurrentMediaSource'); - if (this._mediaSource === currentMediaSource && !dispatchIdenticalValues) - return; - this._mediaSource = currentMediaSource; - if (setLocalStorage && currentMediaSource !== undefined) - this.setLocalStorage('currentMediaSource', currentMediaSource); - if (dispatch === false) - return; - var currentMediaSourceDTO = this.getMediaSourceDTOByID(this._mediaSource); - if (currentMediaSourceDTO) { - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaMediaSourceChange, true, true, { - currentDirectory: this.getCurrentDirectory(), - currentMediaSource: currentMediaSourceDTO, - clearDirectory: clearDirectory, - }); - this.getController().getView().getElement().dispatchEvent(e); - } - }; - EurekaModel.prototype.getCurrentMediaSource = function () { - return this._mediaSource; - }; - EurekaModel.prototype.setCurrentDirectory = function (currentDirectory, dispatch, setLocalStorage, dispatchIdenticalValues) { - if (dispatch === void 0) { dispatch = true; } - if (setLocalStorage === void 0) { setLocalStorage = true; } - if (dispatchIdenticalValues === void 0) { dispatchIdenticalValues = false; } - if (this.getDebug()) - console.log('setCurrentDirectory: ' + currentDirectory); - if (setLocalStorage === undefined) - setLocalStorage = this.useLocalStorage(); - if (this._currentDirectory === currentDirectory && !dispatchIdenticalValues) - return; - this._currentDirectory = currentDirectory; - if (setLocalStorage && currentDirectory) - this.setLocalStorage('currentDirectory', currentDirectory); - if (dispatch === false) - return; - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaDirectoryChanged, true, true, { - currentDirectory: currentDirectory, - currentMediaSource: this.getMediaSourceDTOByID(this._mediaSource) - }); - this.getController().getView().getElement().dispatchEvent(e); - }; - EurekaModel.prototype.getCurrentDirectory = function () { - if (this.getDebug()) - console.log('getCurrentDirectory: ' + this._currentDirectory); - return this._currentDirectory || '/'; - }; - EurekaModel.prototype.setCurrentView = function (currentView, dispatch) { - if (dispatch === void 0) { dispatch = true; } - if (this._currentView === currentView) - return; - this._currentView = currentView; - if (this._useLocalStorage) - this.setLocalStorage('currentView', currentView); - if (dispatch === false) - return; - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaViewChange, true, true, { - currentView: currentView - }); - this.getController().getView().getElement().dispatchEvent(e); - }; - EurekaModel.prototype.getCurrentView = function () { - return this._currentView; - }; - EurekaModel.prototype.getFullScreenTarget = function () { - return this._fullscreenTarget; - }; - EurekaModel.prototype.setLocale = function (locale) { - this._locale = locale; - }; - EurekaModel.prototype.getLocale = function () { - return this._locale; - }; - EurekaModel.prototype.getPrependOptGroupsWithRootOption = function () { - return this._prependOptGroupsWithRootOption; - }; - EurekaModel.prototype.getsortMediaSources = function () { - return this._sortMediaSources; - }; - EurekaModel.prototype.setSources = function (sources, dispatch) { - if (dispatch === void 0) { dispatch = true; } - if (this.getDebug()) - console.log('setSources' + dispatch); - this._sources = sources; - if (dispatch === false) - return; - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaMediaSourcesListChange, true, true, { - sources: sources - }); - if (this.getDebug()) - console.log('setSources'); - this.getController().getView().getElement().dispatchEvent(e); - }; - EurekaModel.prototype.sortResultsById = function (results) { - var a = []; - for (var i = 0; i < results.length; i++) { - var result = results[i]; - a[parseInt(result.id)] = result; - } - return a.filter(function (n) { return n != undefined; }); - }; - EurekaModel.prototype.setMediaSourcesData = function (data) { - var that = this; - if (that.getDebug()) - console.log('setMediaSourcesData'); - var results = data.results; - if (that.getsortMediaSources()) - results = that.sortResultsById(results); - var sources = []; - var current = that.getCurrentMediaSource(); - var currentExists = false; - for (var i = 0; i < results.length; i++) { - var result = results[i]; - var mediaSourceDTO = new EurekaMediaSource({ - id: result.id, - title: result.name - }); - sources.push(mediaSourceDTO); - if (result.id == current) - currentExists = true; - } - this.setSources(sources); - that.setCurrentMediaSource((!currentExists) ? results[0].id : current, true, true, false, false); - }; - EurekaModel.prototype.renameFile = function (fileName, newFilename) { - var e = document.createEvent('CustomEvent'); - e.initCustomEvent('EurekaFileRename', true, true, { - fileName: fileName, - newFilename: newFilename, - cs: this.getController().getModel().getCurrentMediaSource(), - cd: this.getController().getModel().getCurrentDirectory(), - path: this.getController().getModel().getCurrentDirectory() + fileName, - newPath: this.getController().getModel().getCurrentDirectory() + newFilename - }); - this.getController().getView().getElement().dispatchEvent(e); - }; - EurekaModel.prototype.deleteFile = function (filename, tr) { - var that = this; - var e = document.createEvent('CustomEvent'); - e.initCustomEvent('EurekaUnlink', true, true, { - filename: tr.getAttribute('data-filename'), - timestamp: tr.getAttribute('data-timestamp'), - src: tr.querySelector('.image img, .image .img').getAttribute('src'), - dimensions: [tr.getAttribute('data-dimensions-w'), tr.getAttribute('data-dimensions-h')], - filesize: parseInt(tr.getAttribute('data-filesize-bytes')) - }); - that.getController().getView().getElement().dispatchEvent(e); - }; - EurekaModel.prototype.setChoosenMediaItem = function (filename) { - var that = this; - var tr = getEurekaRowByFileName(filename); - var img = tr.querySelector('.image img, .image .img'); - var e = document.createEvent('CustomEvent'); - e.initCustomEvent('EurekaFoundIt', true, true, { - filename: filename, - timestamp: tr.getAttribute('data-timestamp'), - src: tr.getAttribute('data-src'), - thumb: tr.getAttribute('data-thumb'), - dimensions: [tr.getAttribute('data-dimensions-w'), tr.getAttribute('data-dimensions-h')], - filesize: parseInt(tr.getAttribute('data-filesize-bytes')) - }); - that.getController().getView().getElement().dispatchEvent(e); - function getEurekaRowByFileName(filename) { - var trs = that.getController().getView().getElement().querySelectorAll('tr.eureka__row'); - for (var i = 0; i < trs.length; i++) { - var tr = trs[i]; - if (tr.getAttribute('data-filename') == filename) - return tr; - } - return null; - } - }; - EurekaModel.prototype.getSelected = function () { - return this._selected; - }; - EurekaModel.prototype.setSelected = function (filename) { - this._selected = filename; - }; - EurekaModel.prototype.getListDirectoryRequestURL = function () { - return this._directoryRequestURL; - }; - EurekaModel.prototype.getListDirectoryChildrenRequestURL = function () { - return this._directoryChildrenRequestURL; - }; - EurekaModel.prototype.setListDirectoryRequestURL = function (url) { - this._directoryRequestURL = url; - }; - EurekaModel.prototype.getListSourceRequestURL = function () { - return this._listSourceRequestURL; - }; - EurekaModel.prototype.setListSourceRequestURL = function (url) { - this._listSourceRequestURL = url; - }; - EurekaModel.prototype.getListSourcesRequestURL = function () { - return this._listSourcesRequestURL; - }; - EurekaModel.prototype.setListSourcesRequestURL = function (url) { - this._listSourcesRequestURL = url; - }; - return EurekaModel; -}()); -var EurekaView = (function () { - function EurekaView() { - } - EurekaView.prototype.getController = function () { - return this._controller; - }; - EurekaView.prototype.setController = function (controller) { - this._controller = controller; - }; - EurekaView.prototype.getElement = function () { - return document.getElementById(this.getController().getModel().getUID()); - }; - EurekaView.prototype.assignFooterProceedListeners = function () { - var that = this; - that.getElement().parentNode.querySelector('footer.proceed button.cancel').addEventListener('click', function (e) { - e.preventDefault(); - (function () { - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaCanceled, true, true, {}); - that.getElement().dispatchEvent(e); - })(); - }); - that.getElement().parentNode.querySelector('footer.proceed button.cta').addEventListener('click', function (e) { - e.preventDefault(); - that.getController().getModel().setChoosenMediaItem(that.getController().getModel().getSelected()); - }); - }; - EurekaView.prototype.init = function () { - var that = this; - that._handleTreeNodeClicked = function (e) { - if (that.getController().getModel().getDebug()) - console.log('handleTreeNodeClicked'); - e.preventDefault(); - e.stopPropagation(); - that.handleTreePathClicked(this); - }; - that._handleTreeFolderClicked = function (e) { - e.preventDefault(); - e.stopPropagation(); - if (that.getController().getModel().getDebug()) - console.log('handleTreeFolderClicked'); - var _icon = this.querySelector('.fa'); - var _closing = _icon.classList.contains('fa-folder-open'); - var li = that.getClosest(this, 'li'); - var dataCD = this.nextSibling.getAttribute('data-cd') || '/'; - if (_closing) { - _icon.classList.remove('fa-folder-open'); - _icon.classList.remove('icon-folder-open'); - _icon.classList.add('fa-folder', 'icon-folder'); - li.classList.remove('open'); - if (this.getAttribute('data-open-msg')) - this.querySelector('.audible').innerHTML = this.getAttribute('data-open-msg'); - } - else { - _icon.classList.remove('fa-folder'); - _icon.classList.remove('icon-folder'); - _icon.classList.add('fa-folder-open'); - _icon.classList.add('icon-folder-open'); - li.classList.add('open'); - if (this.getAttribute('data-close-msg')) - this.querySelector('.audible').innerHTML = this.getAttribute('data-close-msg'); - } - (function () { - var e = document.createEvent('CustomEvent'); - e.initCustomEvent((_closing) ? EurekaModel.EurekaDirectoryClosed : EurekaModel.EurekaDirectoryOpened, true, true, { - cd: that.getController().getModel().getCurrentDirectory(), - s: that.getController().getModel().getCurrentMediaSource(), - path: dataCD - }); - that.getElement().dispatchEvent(e); - })(); - }; - function assignShortcutListeners() { - document.addEventListener('keydown', function (event) { - if (that.getController().getModel().getDebug()) - console.log(event); - if (event.ctrlKey && event.which === 186) { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').dispatchEvent(e); - } - if (event.altKey && event.ctrlKey && (event.which >= 48 && event.which <= 57)) { - try { - var btns = that.getElement().querySelectorAll('.view-btns > nav > a'); - var btn = (btns[event.which - 48 - 1]); - if (btn) { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - btn.dispatchEvent(e); - } - } - catch (e) { } - } - if (event.altKey && !event.ctrlKey && (event.which >= 49 && event.which <= 57)) { - function setSelectOptGroup(select, group) { - function getOptGroup() { - var optgroups = select.querySelectorAll('optgroup'); - for (var i = 0; i < optgroups.length; i++) { - var optgroup = optgroups[i]; - if (optgroup.getAttribute('data-source') == group) - return optgroup; - } - return null; - } - var optGroup = getOptGroup(); - if (optGroup) { - select.value = optGroup.querySelector('option').value; - } - } - function setSelectOption(select, value) { - try { - var options = select.querySelectorAll('option'); - var option = options[value]; - if (option) { - select.value = option.getAttribute('value'); - } - } - catch (e) { } - } - var msSelect = (document.getElementById(that.getController().getModel().getUID() + '__mediasource-select')); - setSelectOption(msSelect, (event.which - 49).toString()); - setSelectOptGroup((document.getElementById(that.getController().getModel().getUID() + '__browsing').querySelector('select')), (event.which - 49).toString()); - that.getController().getModel().setCurrentMediaSource(msSelect.value, true, true, true, false); - } - if (event.which === 8 && document.activeElement) { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - try { - document.activeElement.nextSibling.querySelector('a.trash').dispatchEvent(e); - } - catch (e) { } - } - if (event.altKey && event.which === 32 && document.activeElement) { - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - document.activeElement.nextSibling.querySelector('a.expand').dispatchEvent(e); - } - catch (e) { } - } - if (event.which === 13 && document.activeElement) { - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - document.activeElement.nextSibling.querySelector('a.choose').dispatchEvent(e); - } - catch (e) { } - } - if (event.ctrlKey && event.which === 82) { - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - document.activeElement.nextSibling.querySelector('a.rename').dispatchEvent(e); - } - catch (e) { } - } - if (event.ctrlKey && event.which === 78) { - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - that.getElement().querySelector('.create-new').dispatchEvent(e); - } - catch (e) { } - } - if (event.ctrlKey && event.which === 85) { - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - document.getElementById(that.getController().getModel().getUID() + '__upload-input').dispatchEvent(e); - } - catch (e) { } - } - if (event.ctrlKey && event.which === 70) { - try { - document.getElementById(that.getController().getModel().getUID() + '__filter-images').focus(); - } - catch (e) { } - } - }); - } - function showSidebar() { - var tog = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle'); - var el = document.getElementById(tog.getAttribute('data-toggle-target')); - el.classList.remove('hidden'); - document.getElementById(that.getController().getModel().getUID()).classList.add('sidebar-open'); - that.getElement().querySelector('.browse-select').classList.add('tablet-p-hidden'); - that.getController().getModel().setNavTreeHidden(false); - var toggle = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').getElementsByTagName("i")[0]; - toggle.classList.remove('fa-toggle-right'); - toggle.classList.remove('icon-toggle-right'); - toggle.classList.add('fa-toggle-left'); - toggle.classList.add('icon-toggle-left'); - tog.title = tog.getAttribute('data-title-close'); - } - function hideSidebar() { - var tog = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle'); - var el = document.getElementById(tog.getAttribute('data-toggle-target')); - el.classList.add('hidden'); - document.getElementById(that.getController().getModel().getUID()).classList.remove('sidebar-open'); - that.getElement().querySelector('.browse-select').classList.remove('tablet-p-hidden'); - that.getController().getModel().setNavTreeHidden(true); - var toggle = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').getElementsByTagName("i")[0]; - toggle.classList.add('fa-toggle-right'); - toggle.classList.add('icon-toggle-right'); - toggle.classList.remove('fa-toggle-left'); - toggle.classList.remove('icon-toggle-left'); - tog.title = tog.getAttribute('data-title-open'); - } - document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').addEventListener('click', function (e) { - var el = document.getElementById(this.getAttribute('data-toggle-target')); - e.preventDefault(); - if (el.classList.contains('hidden')) { - showSidebar(); - } - else { - hideSidebar(); - } - }); - this.assignViewButtonListeners(); - this.assignFooterProceedListeners(); - this.assignBrowsingSelectOptGroupListeners(); - this.assignSelectListeners(); - this.assignSortBtnListeners(); - this.assignFilterListeners(); - this.assignCreateNewDirectoryListener(); - this.assignUploadListeners(); - assignShortcutListeners(); - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - that.getElement().querySelector('.eureka__topbar-nav .view-btns a[data-view="' + that.getController().getModel().getCurrentView() + '"]').dispatchEvent(e); - if (this.getController().getModel().getNavTreeHidden() === true) { - hideSidebar(); - } - var dropContainer = document.getElementById(that.getController().getModel().getUID()).querySelector('.dropzone') || null; - if (html5Upload !== undefined && !(that.getController().getModel().isTouch()) && html5Upload.fileApiSupported() && dropContainer) { - that._html5Upload = html5Upload.initialize({ - uploadUrl: that.getController().getModel().getFileUploadURL(), - dropContainer: dropContainer, - inputField: document.getElementById(that.getController().getModel().getUID() + '__upload-input'), - key: 'File', - data: that.getController().getModel().getHTML5UploadData(), - maxSimultaneousUploads: 4, - onFileAdded: function (file) { - function removeMessages() { - var rs = dropContainer.querySelector('.progress').querySelectorAll('h2,p'); - for (var i = 0; i < rs.length; i++) { - rs[i].remove(); - } - } - removeMessages(); - var id = file.fileName.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, '') + file.fileSize.toString().replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, ''); - var bar = document.createElement('div'); - bar.classList.add('bar'); - bar.setAttribute('id', id); - bar.title = file.fileName + ' is preparing for upload.'; - var pill = document.createElement('div'); - pill.setAttribute('style', 'right:100%'); - bar.appendChild(pill); - var dropzone = document.getElementById(that.getController().getModel().getUID()).querySelector('.dropzone'); - dropzone.classList.remove('complete'); - dropzone.classList.remove('error'); - dropzone.classList.add('uploading'); - dropzone.querySelector('.progress').appendChild(bar); - file.on({ - onCompleted: function (response) { - function isJSON(data) { - try { - JSON.parse(data); - return true; - } - catch (e) { } - return false; - } - if (!isJSON(response)) { - dropzone.classList.add('error'); - } - bar.setAttribute('title', file.fileName + ' has uploaded'); - if (dropzone.querySelectorAll('.bar').length >= 2) - bar.remove(); - if (dropzone.querySelectorAll('.bar').length < 2) { - setTimeout(function () { - dropzone.querySelector('.progress').innerHTML = ''; - dropzone.classList.remove('uploading'); - dropzone.classList.add('complete'); - (function () { - var div = dropzone.querySelector('.progress'); - var h2 = document.createElement('h2'); - var icon = document.createElement('i'); - icon.setAttribute('class', 'fa fa-check-circle-o icon icon-check-circle-o'); - h2.appendChild(icon); - div.appendChild(h2); - var span = document.createElement('span'); - span.setAttribute('title', 'files here...'); - span.innerHTML = 'Your files'; - var p = document.createElement('p'); - p.appendChild(span); - p.innerHTML += ' have been successfully uploaded.'; - div.appendChild(p); - if (dropzone.classList.contains('error')) { - icon.setAttribute('class', 'fa fa-times-circle icon icon-times-circle'); - p.innerHTML = 'Oh no,
One or more files were not uploaded.'; - } - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaFilesUploaded, true, true, {}); - that.getElement().dispatchEvent(e); - document.getElementById(that.getController().getModel().getUID() + '__upload-form').reset(); - })(); - }, 640); - } - }, - onProgress: function (progress, fileSize, uploadedBytes) { - progress = Math.ceil(progress); - bar.setAttribute('title', file.fileName + ' is ' + progress + '% uploaded'); - pill.setAttribute('style', 'right:' + (100 - progress).toString() + '%'); - } - }); - } - }); - } - else { - if (dropContainer) - dropContainer.remove(); - } - if (that.getController().getModel().getFileUploadURL() === undefined || that.getController().getModel().getFileUploadURL() == '') { - try { - that.getElement().querySelector('.pathbrowser footer form').remove(); - } - catch (e) { } - try { - that.getElement().querySelector('.upload-form').remove(); - } - catch (e) { } - try { - that.getElement().querySelector('.upload-perhaps').remove(); - } - catch (e) { } - } - if (that.getController().getModel().getCurrentMediaSource() !== undefined && that.getController().getModel().getCurrentMediaSource() !== '/' && that.getController().getModel().getCurrentMediaSource() !== '') { - that.recursivelyOpenTreeToCurrentDirectory(); - } - that.getElement().addEventListener(EurekaModel.EurekaDirectoryChanged, function (e) { - if (that.getController().getModel().getDebug()) - console.log(EurekaModel.EurekaDirectoryChanged); - var currentDirectory = e.detail.currentDirectory; - var currentMediaSource = that.getController().getModel().getCurrentMediaSource(); - var split = currentDirectory.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - var levelup = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser').querySelector('.level-up'); - if (split.length >= 1) - levelup.classList.remove('hidden'); - else - levelup.classList.add('hidden'); - (function () { - try { - var el = that.getElement().querySelector('.pathbrowser .create-new'); - el.setAttribute('title', 'Create a new directory in ' + that.sanitizeDisplayPath(currentDirectory)); - el.querySelector('.audible').innerHTML = el.getAttribute('title'); - } - catch (e) { } - })(); - (function () { - try { - var el = that.getElement().querySelector('.pathbrowser .upload-files'); - el.setAttribute('title', 'Upload media to ' + that.sanitizeDisplayPath(currentDirectory)); - el.querySelector('.audible').innerHTML = el.getAttribute('title'); - } - catch (e) { } - })(); - that.setBrowseSelectValue(); - that.setMediaSourceSelectValue(); - try { - (that._html5Upload).data = that.getController().getModel().getHTML5UploadData(); - } - catch (e) { } - try { - that.getElement().querySelector('.oh-no code').innerHTML = currentDirectory; - } - catch (e) { } - }); - that.getElement().addEventListener(EurekaModel.EurekaMediaSourceChange, function (e) { - var mediaSourceTitle = that.getElement().querySelector('.eureka__topbar-nav .mediasource-title'); - if (e.detail.currentMediaSource) { - var prepend = mediaSourceTitle.getAttribute('data-prepend') || ''; - mediaSourceTitle.innerHTML = prepend + e.detail.currentMediaSource.getTitle(); - } - that.setBrowseSelectValue(); - that.setMediaSourceSelectValue(); - try { - (that._html5Upload).data = that.getController().getModel().getHTML5UploadData(); - } - catch (e) { } - }); - if (!that.getController().getModel().getShowDimensionsColumn()) { - try { - that.getElement().querySelector('.eureka-table th.dimensions').remove(); - } - catch (e) { } - } - }; - EurekaView.prototype.setMediaSourceSelectValue = function () { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('setMediaSourceSelectValue'); - var currentDirectory = that.getController().getModel().getCurrentDirectory(); - var currentMediaSource = that.getController().getModel().getCurrentMediaSource(); - var select = document.getElementById(that.getController().getModel().getUID() + '__mediasource-select'); - if (select.value !== currentMediaSource) { - select.value = currentMediaSource; - } - }; - EurekaView.prototype.setBrowseSelectValue = function () { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('setBrowseSelectValue'); - var currentDirectory = that.getController().getModel().getCurrentDirectory(); - var currentMediaSource = that.getController().getModel().getCurrentMediaSource(); - var select = document.getElementById(that.getController().getModel().getUID() + '__browsing').querySelector('select'); - var optgroups = select.querySelectorAll('optgroup'); - var optgroup = getOptGroup(optgroups); - if (optgroup) { - var opt = searchForValue(optgroup); - if (opt && select.value !== opt.getAttribute('value')) { - select.value = opt.getAttribute('value'); - } - } - function getOptGroup(optgroups) { - for (var i = 0; i < optgroups.length; i++) { - var optgroup = optgroups[i]; - if (optgroup.getAttribute('data-source') == currentMediaSource) { - return optgroup; - } - } - return null; - } - function searchForValue(optgroup) { - function splitFilter(path) { - if (!path) - return ''; - var split = path.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - return split; - } - var opts = optgroup.querySelectorAll('option'); - for (var i = 0; i < opts.length; i++) { - var opt = (opts[i]); - var path = opt.getAttribute('data-cd'); - if (splitFilter(path).toString() == splitFilter(currentDirectory).toString()) { - return opt; - } - } - } - }; - EurekaView.prototype.recursivelyOpenTreeToCurrentDirectory = function () { - var that = this; - var pathbrowser = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser'); - var paths = pathbrowser.querySelectorAll('a.path'); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - if (path.getAttribute('data-cd').split('/').filter(Boolean).toString() == that.getController().getModel().getCurrentDirectory().split('/').filter(Boolean).toString()) { - (function () { - path.parentNode.classList.add('active'); - path.parentNode.classList.add('open'); - var parents = getParents(path, 'ul'); - function openFolder(folder) { - folder.classList.remove('fa-folder'); - folder.classList.remove('icon-folder'); - folder.classList.add('fa-folder-open'); - folder.classList.add('icon-folder-open'); - try { - folder.querySelector('.audible').innerHTML = folder.getAttribute('data-close-msg'); - } - catch (e) { } - } - if (parents.length > 1) { - for (var i = 0; i < parents.length; i++) { - var li = parents[i].parentNode; - li.classList.add('open'); - openFolder((li.querySelector('.folder > i'))); - } - } - })(); - } - } - return false; - }; - EurekaView.prototype.assignUploadListeners = function () { - var that = this; - var upload_files = that.getElement().querySelector('.pathbrowser .upload-files'); - if (upload_files) { - upload_files.addEventListener('click', function (e) { - e.preventDefault(); - e.stopPropagation(); - (function () { - var e = new MouseEvent('click', { - 'view': window, - 'bubbles': true, - 'cancelable': true - }); - document.getElementById(that.getController().getModel().getUID() + '__upload-input').dispatchEvent(e); - })(); - }); - } - var upload_perhaps = that.getElement().querySelector('.upload-perhaps a'); - if (upload_perhaps) { - upload_perhaps.addEventListener('click', function (e) { - e.preventDefault(); - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - try { - upload_files.dispatchEvent(e); - } - catch (e) { } - }); - } - }; - EurekaView.prototype.assignBrowsingSelectOptGroupListeners = function () { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('assignBrowsingSelectOptGroupListeners'); - var select = document.getElementById(that.getController().getModel().getUID() + '__browsing').querySelector('select'); - select.addEventListener('change', function (e) { - var option = that.getSelectedOption(this); - var optgroup = that.getClosest(option, 'optgroup'); - var source = optgroup.getAttribute('data-source'); - that.getController().getModel().setCurrentMediaSource(source); - that.getController().getModel().setCurrentDirectory(option.getAttribute('data-cd'), true, that.getController().getModel().useLocalStorage()); - var ajax = new AJAX(); - ajax.get(that.getController().getModel().getListSourceRequestURL(), { s: that.getController().getModel().getCurrentMediaSource() }, function (data) { - }, true, that.getController().getModel().getXHRHeaders()); - }); - }; - EurekaView.prototype.assignCreateNewDirectoryListener = function () { - var that = this; - try { - that.getElement().querySelector('.create-new').addEventListener('click', function (e) { - var li = document.createElement('li'); - var folder = document.createElement('a'); - folder.classList.add('folder'); - folder.innerHTML = ' '; - var path = document.createElement('a'); - path.classList.add('path'); - path.setAttribute('title', 'Browse this directory'); - path.setAttribute('data-cd', ''); - path.setAttribute('contenteditable', 'true'); - path.innerHTML = 'new folder'; - li.appendChild(folder); - li.appendChild(path); - li.appendChild(document.createElement('ul')); - setTimeout(function () { - path.focus(); - try { - path.select(); - } - catch (e) { } - }, 240); - var ul = (that.getElement().querySelector('.pathbrowser .tree li.active > ul') || that.getElement().querySelector('.pathbrowser .tree > ul')); - ul.classList.add('open'); - (ul.parentNode).classList.add('open'); - try { - (ul.previousSibling).previousSibling.querySelector('.fa').setAttribute('class', 'fa icon fa-folder-open icon-folder-open'); - } - catch (e) { } - path.addEventListener('focus', function (e) { - this.addEventListener('keydown', handleKeyDown, false); - }, false); - path.addEventListener('blur', function (e) { - this.removeEventListener('keydown', handleKeyDown, false); - }, false); - function handleKeyDown(e) { - if (e.keyCode === 13) { - e.preventDefault(); - e.stopPropagation(); - this.blur(); - this.setAttribute('contenteditable', 'false'); - that.getElement().querySelector('button.create-new').focus(); - var foldername = this.innerHTML; - var e = document.createEvent('CustomEvent'); - e.initCustomEvent('EurekaDirectoryCreated', true, true, { - newdirectory: foldername, - cd: that.getController().getModel().getCurrentDirectory(), - s: that.getController().getModel().getCurrentMediaSource(), - path: that.getController().getModel().getCurrentDirectory() + foldername - }); - that.getElement().dispatchEvent(e); - } - } - ul.appendChild(li); - }); - } - catch (e) { } - }; - EurekaView.prototype.assignViewButtonListeners = function () { - var that = this; - var model = this.getController().getModel(); - function setCurrent(el) { - var anchors = document.querySelectorAll(".eureka__topbar-nav .view-btns a[data-view]:not(.view-f-btn)"); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - anchor.classList.remove('current'); - } - el.classList.add('current'); - } - var anchors = document.querySelectorAll(".eureka__topbar-nav .view-btns a[data-view]:not(.view-f-btn)"); - for (var i = 0; i < anchors.length; i++) { - var current = anchors[i]; - current.addEventListener('click', function (e) { - e.preventDefault(); - var that = this; - var _v = this.getAttribute('data-view'); - var classes = ['view-a', 'view-b', 'view-c', 'view-d', 'view-e']; - for (var _i = 0; _i < classes.length; _i++) { - var c = classes[_i]; - document.getElementById(that.getAttribute('data-view-target')).classList.remove(c); - } - document.getElementById(that.getAttribute('data-view-target')).classList.add(_v); - setCurrent(that); - model.setCurrentView(_v); - }, true); - } - var fullscreenBtn = document.querySelector(".eureka__topbar-nav .view-btns .view-f-btn"); - if (fullscreenBtn) - fullscreenBtn.addEventListener('click', function (e) { - e.preventDefault(); - if (that.isFullScreen()) { - that.runPrefixMethod(document, "CancelFullScreen"); - fullscreenBtn.querySelector('i').classList.remove('fa-compress'); - fullscreenBtn.querySelector('i').classList.remove('icon-compress'); - console.log(fullscreenBtn.querySelector('i')); - } - else { - that.requestFullScreen(); - fullscreenBtn.querySelector('i').classList.add('fa-compress'); - fullscreenBtn.querySelector('i').classList.add('icon-compress'); - console.log(fullscreenBtn.querySelector('i')); - } - }); - }; - EurekaView.prototype.isFullScreen = function () { - return this.runPrefixMethod(document, "FullScreen") || this.runPrefixMethod(document, "IsFullScreen"); - }; - EurekaView.prototype.requestFullScreen = function () { - this.runPrefixMethod(document.querySelector(this.getController().getModel().getFullScreenTarget()), "RequestFullScreen"); - }; - EurekaView.prototype.runPrefixMethod = function (obj, method) { - var pfx = ["webkit", "moz", "ms", "o", ""]; - var p = 0, m, t; - while (p < pfx.length && !obj[m]) { - m = method; - if (pfx[p] == "") { - m = m.substr(0, 1).toLowerCase() + m.substr(1); - } - m = pfx[p] + m; - t = typeof obj[m]; - if (t != "undefined") { - pfx = [pfx[p]]; - return (t == "function" ? obj[m]() : obj[m]); - } - p++; - } - }; - EurekaView.prototype.assignARIAKeyListeners = function () { - var that = this; - (function () { - function setFocused(el) { - var rows = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var current = rows[i]; - if (el !== current && current.classList.contains("focused")) - current.classList.remove('focused'); - } - el.classList.add('focused'); - var _cta = that.getProceedFooter().querySelector('button.cta'); - _cta.removeAttribute('disabled'); - _cta.classList.remove('muted'); - _cta.classList.add('go'); - that.getController().getModel().setSelected(el.getAttribute('data-filename')); - } - function handleBlur(el) { - var contextual = document.getElementById('eureka_contextual__' + el.getAttribute('data-safe-filename')); - contextual.focus(); - var _cta = that.getProceedFooter().querySelector('button.cta'); - _cta.classList.remove('go'); - _cta.classList.add('muted'); - } - var rows = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var current = rows[i]; - current.addEventListener('click', function (e) { - e.preventDefault(); - setFocused(this); - }, false); - current.addEventListener('focus', function (e) { - e.preventDefault(); - setFocused(this); - }, false); - current.addEventListener('blur', function (e) { - handleBlur(this); - }, false); - } - }()); - }; - EurekaView.prototype.assignSortBtnListeners = function () { - var that = this; - var sortBtns = that.getElement().querySelectorAll('.eureka-table th .fa-sort'); - for (var i = 0; i < sortBtns.length; i++) { - var sortBtn = sortBtns[i]; - function handleSortBtnClicked(e) { - e.preventDefault(); - e.stopPropagation(); - this.setAttribute('data-sort-asc', Math.abs(parseInt(this.getAttribute('data-sort-asc')) - 1).toString()); - var sortby = this.getAttribute('data-sortby'); - var sortASC = (this.getAttribute('data-sort-asc') == "1") ? true : false; - var rows = []; - var rs = document.querySelectorAll('.eureka-table tbody > tr:not(.contextual)'); - for (var i = 0; i < rs.length; i++) { - rows.push(rs[i]); - } - switch (sortby) { - case 'dimensions': - rows.sort(function (a, b) { - return (parseInt(a.getAttribute('data-dimensions-w')) * parseInt(a.getAttribute('data-dimensions-h'))) - (parseInt(b.getAttribute('data-dimensions-w')) * parseInt(b.getAttribute('data-dimensions-h'))); - }); - break; - case 'filesize': - rows.sort(function (a, b) { - return parseInt(a.getAttribute('data-filesize-bytes')) - parseInt(b.getAttribute('data-filesize-bytes')); - }); - break; - case 'editedon': - rows.sort(function (a, b) { - return parseInt(a.getAttribute('data-timestamp')) - parseInt(b.getAttribute('data-timestamp')); - }); - break; - default: - rows.sort(function (a, b) { - if (a.getAttribute('data-filename') > b.getAttribute('data-filename')) - return 1; - if (a.getAttribute('data-filename') < b.getAttribute('data-filename')) - return -1; - return 0; - }); - break; - } - if (!sortASC) { - rows.reverse(); - } - var s = ''; - for (var _i = 0; _i < rows.length; _i++) { - var row = rows[_i]; - s += row.outerHTML; - } - that.getElement().querySelector('.eureka-table tbody').innerHTML = s; - } - sortBtn.removeEventListener('click', handleSortBtnClicked, true); - sortBtn.addEventListener('click', handleSortBtnClicked, true); - } - }; - EurekaView.prototype.assignFilterListeners = function () { - var that = this; - function unFilterView() { - var rows = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var row = rows[i]; - row.classList.remove('hidden'); - } - document.getElementById(that.getController().getModel().getUID()).querySelector('.eureka-table > table > tbody').classList.remove('filtered'); - } - function filterView(value) { - var rows = that.getElement().querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var row = rows[i]; - var show = false; - var tokens = [row.getAttribute('data-filename')]; - if (row.getAttribute('data-tokens')) - tokens = tokens.concat(row.getAttribute('data-tokens').split('||')); - (function () { - for (var _i = 0; _i < tokens.length; _i++) { - var token = tokens[_i]; - if (value.length && (token == value || token.indexOf(value) > -1)) { - show = true; - break; - } - } - })(); - if (!show) { - row.classList.add('hidden'); - row.classList.remove('visible'); - } - else { - row.classList.add('visible'); - row.classList.remove('hidden'); - } - document.getElementById(that.getController().getModel().getUID()).querySelector('.eureka-table > table > tbody').classList.add('filtered'); - } - } - var input = document.getElementById(that.getController().getModel().getUID() + '__filter-images'); - input.addEventListener("input", function (e) { - if (this.value) { - filterView(this.value); - } - else { - unFilterView(); - } - }, false); - }; - EurekaView.prototype.sanitizeDisplayPath = function (path) { - var split = path.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - return split.join('/'); - }; - EurekaView.prototype.getProceedFooter = function () { - return this.getElement().parentNode.querySelector('footer.proceed'); - }; - EurekaView.prototype.handleTreePathClicked = function (el) { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('handleTreePathClicked: ' + (el.getAttribute('data-cd') || '/')); - that.getController().getModel().setCurrentDirectory((el.getAttribute('data-cd') || '/'), true, undefined); - function deactivatePaths() { - var pathBrowser = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser'); - var paths = pathBrowser.querySelectorAll("nav.tree a.path"); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - var li = that.getClosest(path, 'li'); - li.classList.remove('active'); - } - } - var li = that.getClosest(el, 'li'); - deactivatePaths(); - li.classList.add('active'); - }; - EurekaView.prototype.assignTreeListeners = function () { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('assignTreeListeners'); - var pathBrowser = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser'); - var paths = pathBrowser.querySelectorAll("nav.tree a.path"); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - path.addEventListener('click', that._handleTreeNodeClicked, false); - } - this.assignTreeFolderListeners(); - }; - EurekaView.prototype.assignTreeFolderListeners = function () { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('assignTreeFolderListeners'); - var pathBrowser = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser'); - var folders = pathBrowser.querySelectorAll("nav.tree a.folder"); - for (var i = 0; i < folders.length; i++) { - var folder = folders[i]; - folder.addEventListener('click', that._handleTreeFolderClicked, false); - } - }; - EurekaView.prototype.assignSelectListeners = function () { - var that = this; - var mediaSourceSelect = that.getElement().querySelector('#' + that.getController().getModel().getUID() + '__mediasource-select'); - mediaSourceSelect.addEventListener('change', function () { - that.getController().getModel().setCurrentMediaSource(this.value, true, that.getController().getModel().useLocalStorage()); - that.getController().getModel().setCurrentDirectory('/', false, that.getController().getModel().useLocalStorage()); - var ajax = new AJAX(); - ajax.get(that.getController().getModel().getListSourceRequestURL(), { s: that.getController().getModel().getCurrentMediaSource() }, function (data) { - }, true, that.getController().getModel().getXHRHeaders()); - }); - var levelUp = (that.getElement().querySelector('.level-up')); - levelUp.addEventListener('click', function (e) { - e.preventDefault(); - var currentDirectory = that.getController().getModel().getCurrentDirectory(); - var split = currentDirectory.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - if (split && split.length) { - var destDirectory = '/'; - if (split.length > 1) { - split.pop(); - destDirectory = split.join('/'); - } - that.getController().getModel().setCurrentDirectory(destDirectory, true, true, false); - } - }); - }; - EurekaView.prototype.emptyTree = function () { - var that = this; - var pathBrowser = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser'); - (function () { - var paths = pathBrowser.querySelectorAll("nav.tree a.path"); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - path.removeEventListener('click', that._handleTreeNodeClicked, false); - path.remove(); - } - })(); - (function () { - var folders = pathBrowser.querySelectorAll("nav.tree a.folder"); - for (var i = 0; i < folders.length; i++) { - var folder = folders[i]; - folder.removeEventListener('click', that._handleTreeFolderClicked, false); - folder.remove(); - } - })(); - }; - EurekaView.prototype.assignDraggableListeners = function () { - var kindaDraggables = document.querySelectorAll('*[sorta-draggable="true"]'); - for (var i = 0; i < kindaDraggables.length; i++) { - var kindaDraggable = kindaDraggables[i]; - kindaDraggable.addEventListener('blur', function (e) { - this.parentNode.draggable = false; - }); - kindaDraggable.addEventListener('focus', function (e) { - this.parentNode.draggable = false; - }); - } - }; - EurekaView.prototype.assignChooseClickListeners = function () { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('assignChooseClickListeners'); - var rows = that.getElement().querySelectorAll('tr.eureka__row'); - for (var i = 0; i < rows.length; i++) { - function addDblClickListener(tr) { - tr.querySelector('div.image').addEventListener('dblclick', function (e) { - var image = this; - (function () { - var e = (document.createEvent('CustomEvent')); - e.initCustomEvent('EurekaFoundIt', true, true, { - filename: tr.getAttribute('data-filename'), - timestamp: tr.getAttribute('data-timestamp'), - src: tr.getAttribute('data-src'), - thumb: tr.getAttribute('data-thumb'), - dimensions: [tr.getAttribute('data-dimensions-w'), tr.getAttribute('data-dimensions-h')], - filesize: parseInt(tr.getAttribute('data-filesize-bytes')) - }); - that.getController().getView().getElement().dispatchEvent(e); - })(); - }); - } - addDblClickListener((rows[i])); - } - }; - EurekaView.prototype.paint = function () { - this.assignARIAKeyListeners(); - this.assignContextualClickListeners(); - this.assignDraggableListeners(); - this.assignChooseClickListeners(); - this.assignSortBtnListeners(); - }; - EurekaView.prototype.createTreeNode = function (path) { - var that = this; - path = path.split('/').filter(Boolean).join('/') + '/'; - var li = document.createElement('li'); - var folder = document.createElement('a'); - folder.innerHTML = ' '; - folder.setAttribute('href', 'javascript:;'); - folder.classList.add('folder'); - folder.setAttribute('data-open-msg', 'Expand ' + path + ' '); - folder.setAttribute('data-close-msg', 'Collapse ' + path + ' '); - var folderOpenIcon = document.createElement('i'); - folderOpenIcon.classList.add('fa'); - folderOpenIcon.classList.add('icon'); - folderOpenIcon.classList.add('fa-folder'); - folderOpenIcon.classList.add('icon-folder'); - folder.appendChild(folderOpenIcon); - (function () { - var audible = document.createElement('span'); - audible.classList.add('audible'); - audible.innerHTML = folder.getAttribute('data-open-msg'); - folder.appendChild(audible); - })(); - var a = document.createElement('a'); - a.classList.add('path'); - a.setAttribute('href', 'javascript:;'); - a.setAttribute('title', 'Browse ' + path); - var split = path.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - var displayPath = split.join('/'); - if (!that.getController().getModel().getDisplayFullTreePaths()) { - displayPath = split[split.length - 1]; - } - else { - if (displayPath[displayPath.length - 1] == '/') - displayPath = displayPath.substring(0, displayPath.length - 1); - } - a.setAttribute('data-cd', path); - a.innerHTML = ' ' + displayPath; - li.appendChild(folder); - li.appendChild(a); - var _ul = document.createElement("ul"); - li.appendChild(_ul); - return li; - }; - EurekaView.prototype.paintTree = function (data) { - var that = this; - var tree = (that.getElement().querySelector('nav.tree')); - var results = data.results; - function printTreeNavResults(results, ul) { - for (var i = 0; i < results.length; i++) { - var result = results[i]; - var li = that.createTreeNode(result.path); - var _ul = li.querySelector('ul'); - if (result.children !== undefined && result.children.length) { - printTreeNavResults(result.children, _ul); - } - ul.appendChild(li); - } - } - tree.innerHTML = ''; - var ul = document.createElement('ul'); - tree.appendChild(ul); - printTreeNavResults(results, ul); - this.assignTreeListeners(); - this.recursivelyOpenTreeToCurrentDirectory(); - }; - EurekaView.prototype.paintJSON = function (data) { - console.log('paintJSON'); - var that = this; - if (that.getController().getModel().getDebug()) - console.log('paintJSON'); - var model = this.getController().getModel(); - var cd = data.cd.charAt(data.cd.length - 1) == '/' ? data.cd : data.cd + '/'; - var results = data.results; - results = []; - var tbodyHTML = ''; - var directoriesToAdd = []; - console.log(results.length); - if (results.length) { - that.getElement().classList.remove('nothing-found'); - for (var i = 0; i < results.length; i++) { - var result = results[i]; - if (result.filename) { - var filename = result.filename; - var safeFileName = filename.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, ''); - var src = result.src; - var thumb = result.thumb; - var filesize = result.filesize; - var dimensions = result.dimensions; - var editedon = (parseInt(result.editedon)) > 0 ? parseInt(result.editedon) : null; - var tr = document.createElement("tr"); - tr.classList.add('eureka__row'); - tr.setAttribute('tabindex', "0"); - tr.setAttribute('data-tokens', ''); - tr.setAttribute('data-filename', filename); - tr.setAttribute('data-safe-filename', safeFileName); - tr.setAttribute('data-src', src); - if (thumb) - tr.setAttribute('data-thumb', thumb); - tr.setAttribute('data-dimensions-w', dimensions.split('x')[0]); - tr.setAttribute('data-dimensions-h', dimensions.split('x')[1]); - tr.setAttribute('data-filesize-bytes', filesize); - tr.setAttribute('data-timestamp', (editedon) ? editedon.toString() : '0'); - var td = document.createElement("td"); - td.setAttribute('contenteditable', 'false'); - td.classList.add('eureka__row-image'); - var imgD = document.createElement('div'); - imgD.classList.add('image'); - var img = document.createElement('img'); - img.setAttribute('id', safeFileName + '__thumb'); - function addErrorListener(img, result, safeFileName) { - img.addEventListener('error', function () { - var a = result.filename.split('.'); - var icon = 'file-o'; - switch (a[a.length - 1].toLowerCase()) { - case 'css': - icon = 'css3'; - break; - case 'csv': - icon = 'file-excel-o'; - break; - case 'xls': - icon = 'file-excel-o'; - break; - case 'numbers': - icon = 'file-excel-o'; - break; - case 'css': - icon = 'file-excel-o'; - break; - case 'mp3': - icon = 'file-sound-o'; - break; - case 'wav': - icon = 'file-sound-o'; - break; - case 'wma': - icon = 'file-sound-o'; - break; - case 'aac': - icon = 'file-sound-o'; - break; - case 'flac': - icon = 'file-sound-o'; - break; - case 'ppt': - icon = 'file-powerpoint-o'; - break; - case 'pot': - icon = 'file-powerpoint-o'; - break; - case 'pps': - icon = 'file-powerpoint-o'; - break; - case 'zip': - icon = 'file-zip-o'; - break; - case 'gzip': - icon = 'file-zip-o'; - break; - case 'tar': - icon = 'file-zip-o'; - break; - case 'mp4': - icon = 'file-movie-o'; - break; - case 'ogv': - icon = 'file-movie-o'; - break; - case 'm4v': - icon = 'file-movie-o'; - break; - case 'avi': - icon = 'file-movie-o'; - break; - case 'jpg': - case 'jpeg': - case 'gif': - case 'tiff': - case 'png': - case 'bpg': - case 'img': - case 'webp': - icon = 'file-picture-o'; - break; - case 'php': - case 'html': - case 'htm': - case 'md': - icon = 'file-code-o'; - break; - case 'js': - icon = 'file-text-o'; - break; - default: - icon = 'file-o'; - break; - } - var div = (function () { - var div = document.createElement('div'); - div.classList.add('icon-wrapper'); - div.classList.add('img'); - var i = document.createElement('i'); - i.classList.add('fa'); - i.classList.add('icon'); - i.classList.add('fa-' + icon); - i.classList.add('icon-' + icon); - div.appendChild(i); - return div; - })(); - try { - document.getElementById(safeFileName + '__thumb').outerHTML = div.outerHTML; - } - catch (e) { } - }); - } - addErrorListener(img, result, safeFileName); - imgD.appendChild(img); - img.setAttribute('src', (thumb) ? thumb : src); - var code = document.createElement('code'); - code.setAttribute('contenteditable', 'true'); - code.setAttribute('tabindex', '-1'); - code.setAttribute('sorta-draggable', 'true'); - code.innerHTML = filename; - td.appendChild(imgD); - td.appendChild(code); - function createCode(html) { - var tag = document.createElement('code'); - tag.innerHTML = html; - return tag; - } - var tdDimensionCell = document.createElement('td'); - tdDimensionCell.classList.add('eureka__row-dimensions'); - tdDimensionCell.appendChild(createCode(dimensions || "n/a")); - var tdFilesizeCell = document.createElement('td'); - tdFilesizeCell.classList.add('eureka__row-filesize'); - if (parseInt(filesize)) { - tdFilesizeCell.appendChild(createCode(that.formatFileSize(filesize))); - } - else { - tdFilesizeCell.appendChild(createCode('n/a')); - } - var tdEditedOnCell = document.createElement('td'); - tdEditedOnCell.classList.add('eureka__row-editedon'); - if (editedon) { - tdEditedOnCell.appendChild(createCode((new Date(editedon * 1000)).toLocaleDateString(model.getLocale(), { - month: 'short', - day: 'numeric', - year: 'numeric' - }))); - } - else { - tdEditedOnCell.appendChild(createCode('n/a')); - } - tr.appendChild(td); - if (that.getController().getModel().getShowDimensionsColumn()) - tr.appendChild(tdDimensionCell); - tr.appendChild(tdFilesizeCell); - tr.appendChild(tdEditedOnCell); - tbodyHTML += tr.outerHTML; - function createContextualRow() { - var tr = document.createElement('tr'); - tr.classList.add('contextual'); - tr.setAttribute('id', 'eureka_contextual__' + safeFileName); - var td = document.createElement('td'); - td.setAttribute('colspan', '4'); - function createFlexibleNav() { - var nav = document.createElement('nav'); - nav.classList.add('flexible_row'); - nav.classList.add('contextual__nav'); - function createExpandBtn() { - var a = document.createElement('a'); - a.classList.add('expand'); - a.setAttribute('href', src); - a.setAttribute('title', 'Expand ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-expand'); - fa.classList.add('icon-expand'); - a.appendChild(fa); - a.innerHTML += ' Expand'; - return a; - } - function createChooseBtn() { - var a = document.createElement('a'); - a.classList.add('choose'); - a.setAttribute('title', 'Choose ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-check-circle-o'); - fa.classList.add('icon-check-circle-o'); - a.appendChild(fa); - a.innerHTML += ' Choose'; - return a; - } - function createRenameBtn() { - var a = document.createElement('a'); - a.classList.add('rename'); - a.setAttribute('title', 'Rename ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-edit'); - fa.classList.add('icon-edit'); - a.appendChild(fa); - a.innerHTML += ' Rename'; - return a; - } - function createTrashBtn() { - var a = document.createElement('a'); - a.classList.add('dangerous'); - a.classList.add('trash'); - a.setAttribute('title', 'Delete ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-trash'); - fa.classList.add('icon-trash'); - a.appendChild(fa); - a.innerHTML += ' Delete'; - return a; - } - nav.appendChild(createExpandBtn()); - nav.appendChild(createChooseBtn()); - if (that.getController().getModel().getAllowRename() && document.execCommand) - nav.appendChild(createRenameBtn()); - if (that.getController().getModel().getAllowDelete()) - nav.appendChild(createTrashBtn()); - function createFlexibleNavTagForm() { - var form = document.createElement('form'); - form.classList.add('tag'); - form.setAttribute('method', 'post'); - form.setAttribute('action', '#'); - var label = document.createElement('label'); - label.setAttribute('title', 'Tagging this media item will make it easier to find'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-tag'); - fa.classList.add('icon-tag'); - label.appendChild(fa); - label.innerHTML += ' Tag:'; - var input = document.createElement('input'); - input.setAttribute('type', 'text'); - input.setAttribute('placeholder', 'Tag this media item'); - input.setAttribute('tabindex', '-1'); - form.appendChild(label); - form.appendChild(input); - return form; - } - function createFlexibleNavShareForm() { - var form = document.createElement('form'); - form.classList.add('share'); - form.setAttribute('action', '#'); - form.setAttribute('title', "Share " + filename + " with other"); - form.appendChild(createMediaSourceInput()); - form.appendChild(createMediaItemInput()); - var button = document.createElement('button'); - button.classList.add('nued'); - button.setAttribute('type', 'submit'); - button.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-share-square-o'); - fa.classList.add('icon-share-square-o'); - button.appendChild(fa); - button.innerHTML += ' Share'; - form.appendChild(button); - function createMediaSourceInput() { - var input = document.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'mediasource'); - input.setAttribute('value', '0'); - return input; - } - function createMediaItemInput() { - var input = document.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'mediaitem'); - input.setAttribute('value', filename); - return input; - } - return form; - } - return nav; - } - td.appendChild(createFlexibleNav()); - tr.appendChild(td); - return tr; - } - tbodyHTML += createContextualRow().outerHTML; - } - else { - directoriesToAdd.push({ cd: cd, directory: result.directory }); - } - } - (function () { - for (var i = 0; i < directoriesToAdd.length; i++) { - var d = (directoriesToAdd[i]); - that.asyncronouslyAddDirectory(d.cd, d.directory); - } - if (directoriesToAdd.length) { - that.assignTreeListeners(); - } - })(); - } - else { - that.getElement().classList.add('nothing-found'); - } - var thead = (document.querySelector('#' + this.getController().getModel().getUID() + ' .eureka-table > table > thead')); - document.querySelector('#' + this.getController().getModel().getUID() + ' .eureka-table').innerHTML = '' + thead.outerHTML + '' + tbodyHTML + '' + '
'; - try { - this.getElement().querySelector('nav.tree li.active').classList.remove('active'); - } - catch (e) { - } - try { - (function () { - var el = that.getElement().querySelector('nav.tree li > a[data-cd="' + data.cd + '"]').parentNode; - el.classList.add('active'); - el.classList.add('open'); - var folder = el.querySelector('.folder .fa-folder'); - folder.classList.add('fa-folder-open'); - folder.classList.add('icon-folder-open'); - folder.classList.remove('fa-folder'); - })(); - } - catch (e) { - } - try { - this.getElement().querySelector('.pathbrowser__topbar > select').value = data.cs; - } - catch (e) { - } - this.paint(); - }; - EurekaView.prototype.asyncronouslyAddDirectory = function (cd, directory) { - var that = this; - if (that.getController().getModel().getDebug()) - console.log('asyncronouslyAddDirectory'); - var pathBrowser = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser'); - var paths = pathBrowser.querySelectorAll('.tree .path'); - var cds = cd.split('/').filter(Boolean); - var p = cd + directory + '/'; - var psa = p.split('/').filter(Boolean); - for (var i = 0; i < paths.length; i++) { - var path = (paths[i]); - if (path.getAttribute('data-cd').split('/').filter(Boolean).equals(psa)) { - if (that.getController().getModel().getDebug()) - console.log(p + ' alread exists'); - return; - } - } - for (var i = 0; i < paths.length; i++) { - var path = (paths[i]); - var pcd = path.getAttribute('data-cd'); - if (cds.equals(pcd.split('/').filter(Boolean))) { - (function (_path) { - var ul = _path.nextSibling; - var paths = ul.querySelectorAll(':scope > li > .path'); - var inserted = false; - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - var _d = (function (path) { - var a = path.getAttribute('data-cd').split('/').filter(Boolean); - return a[a.length - 1]; - })(path); - var s = [directory, _d]; - s.sort(); - if (s[0] == directory) { - ul.insertBefore(that.createTreeNode(p), path.parentNode); - inserted = true; - break; - } - } - if (!inserted) { - ul.appendChild(that.createTreeNode(p)); - inserted = true; - } - })(path); - } - } - (function () { - var browsingSelect = document.getElementById(that.getController().getModel().getUID() + '__browsing'); - var mediaSource = that.getController().getModel().getCurrentMediaSource(); - var optsGrp = (function () { - var os = browsingSelect.querySelectorAll('optgroup'); - for (var i = 0; i < os.length; i++) { - var o = os[i]; - if (o.getAttribute('data-source') == mediaSource) - return o; - } - return null; - })(); - if (!optsGrp) - return; - var _iH = p.split('/').filter(Boolean).join('/'); - var opts = optsGrp.querySelectorAll('option'); - for (var i = 0; i < opts.length; i++) { - var opt = opts[i]; - if (opt.innerHTML == _iH) - return; - } - var newOpt = document.createElement('option'); - newOpt.setAttribute('value', JSON.stringify({ cs: that.getController().getModel().getCurrentMediaSource(), cd: _iH })); - newOpt.setAttribute('data-cd', _iH + '/'); - newOpt.innerHTML = _iH; - var inserted = false; - for (var i = 0; i < opts.length; i++) { - var opt = opts[i]; - var a = [opt.innerHTML, _iH]; - a.sort(); - if (_iH == a[0]) { - optsGrp.insertBefore(newOpt, opt); - inserted = true; - break; - } - } - if (!inserted) - optsGrp.appendChild(newOpt); - })(); - }; - EurekaView.prototype.assignContextualClickListeners = function () { - var that = this; - that.assignContexualCodeFocusListeners(); - assignChooseListeners(); - assignRenameListeners(); - assignDeleteListeners(); - function assignChooseListeners() { - var anchors = that.getElement().querySelectorAll('tr.contextual a.choose'); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - anchor.addEventListener('click', function (e) { - e.preventDefault(); - handleChooseClicked(this); - }, false); - anchor.addEventListener('focus', function (e) { - that.getElement().parentNode.querySelector('footer.proceed .cta').classList.add('go'); - that.getElement().parentNode.querySelector('footer.proceed .cta').disabled = false; - that.getElement().parentNode.querySelector('footer.proceed .cta').removeAttribute('disabled'); - }, false); - anchor.addEventListener('blur', function (e) { - that.getElement().parentNode.querySelector('footer.proceed .cta').classList.remove('go'); - }, false); - } - function handleChooseClicked(anchor) { - var contextual = that.getClosest(anchor, 'tr'); - var mediaRow = contextual.previousSibling; - that.getController().getModel().setChoosenMediaItem(mediaRow.getAttribute('data-filename')); - } - } - function assignDeleteListeners() { - var anchors = document.querySelectorAll('tr.contextual a.trash'); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - anchor.addEventListener('click', function (e) { - handleTrashClicked(this); - }, false); - anchor.addEventListener('focus', function (e) { - this.addEventListener('keydown', handleTrashKeyDown, false); - }, false); - anchor.removeEventListener('blur', function (e) { - this.removeEventListener('keydown', handleTrashKeyDown, false); - }, false); - } - function handleTrashClicked(anchor) { - var contextual = that.getClosest(anchor, 'tr'); - var mediaRow = contextual.previousSibling; - var nextRow = contextual.nextSibling; - if (that.getController().getModel().getAlertBeforeDelete() && !window.confirm('Are you sure you want to delete ' + mediaRow.getAttribute('data-filename') + '?')) { - return false; - } - that.getController().getModel().deleteFile(mediaRow.getAttribute('data-filename'), mediaRow); - function remove(el) { - try { - el.remove(); - } - catch (e) { - el.parentNode.removeChild(el); - } - } - remove(mediaRow); - remove(contextual); - try { - nextRow.focus(); - } - catch (e) { } - } - function handleTrashKeyDown(e) { - if (e.keyCode === 13) { - handleTrashClicked(this); - } - } - } - function assignRenameListeners() { - var anchors = document.querySelectorAll('tr.contextual a.rename'); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - anchor.addEventListener('click', function (e) { - e.preventDefault(); - var code = getCodeToFocus(this); - selectCode(code); - }, false); - anchor.addEventListener('focus', function (e) { - this.addEventListener('keydown', handleAnchorKeyDown, false); - }, false); - anchor.addEventListener('blur', function (e) { - this.removeEventListener('keydown', handleAnchorKeyDown, false); - }, false); - } - function handleAnchorKeyDown(e) { - var code = getCodeToFocus(this); - var tr = that.getClosest(this, '.contextual').previousSibling; - if (e.keyCode === 13) { - e.preventDefault(); - e.stopPropagation(); - selectCode(code); - } - } - function selectCode(code) { - code.focus(); - try { - code.select(); - } - catch (e) { } - } - function getCodeToFocus(anchor) { - var tr = that.getClosest(anchor, 'tr'); - var mediaRow = tr.previousSibling; - var code = mediaRow.querySelector('.eureka__row-image code[contenteditable="true"]'); - return code; - } - } - }; - EurekaView.prototype.assignContexualCodeFocusListeners = function () { - var that = this; - var codes = this.getElement().querySelectorAll('tr.eureka__row .eureka__row-image code[contenteditable="true"]'); - for (var i = 0; i < codes.length; i++) { - var code = codes[i]; - code.addEventListener('focus', function () { - this.addEventListener('keydown', handleCodeKeyPress, false); - }, false); - function handleCodeKeyPress(e) { - if (e.keyCode === 13) { - e.preventDefault(); - var tr = this.parentNode.parentNode; - var contextual = tr.nextSibling; - var filename = tr.getAttribute('data-filename'); - code.contentEditable = 'false'; - var newFilename = this.innerHTML; - that.getController().getModel().renameFile(filename, newFilename); - var next = contextual.querySelector('nav > a.rename'); - next.focus(); - window.getSelection().collapse(next, 0); - return false; - } - return true; - } - } - }; - EurekaView.prototype.sortBrowseSelectOptGroupsByMediaSourceId = function (select) { - if (select === undefined) - select = document.getElementById(this.getController().getModel().getUID() + '__browsing').querySelector('select'); - var os = []; - var optgrps = select.querySelectorAll('optgroup'); - for (var i = 0; i < optgrps.length; i++) { - os.push(optgrps[i]); - } - var optgroups = os.sort(function (a, b) { - return parseInt(a.getAttribute('data-source')) - parseInt(b.getAttribute('data-source')); - }); - select.innerHTML = ''; - for (var _i = 0; _i < optgroups.length; _i++) { - var optgroup = optgroups[_i]; - select.appendChild(optgroup); - } - }; - EurekaView.prototype.updateMediaSourceListings = function (data) { - var that = this; - if (that.getController().getModel().getDebug()) { - console.log('updateMediaSourceListings: '); - console.log(data); - } - var id = data.cs; - var source = this.getController().getModel().getMediaSourceDTOByID(id); - function updateTreeSelect() { - if (that.getController().getModel().getDebug()) - console.log('updateTreeSelect'); - var select = document.getElementById(that.getController().getModel().getUID() + '__mediasource-select'); - var option = null; - try { - option = select.querySelector('option[value="' + id + '"]'); - } - catch (e) { } - if (!option) { - option = document.createElement('option'); - option.setAttribute('value', id); - option.innerHTML = data.title; - select.appendChild(option); - } - } - function updateTopBarSelect() { - if (that.getController().getModel().getDebug()) - console.log('updateTopBarSelect'); - var select = document.getElementById(that.getController().getModel().getUID() + '__browsing').querySelector('select'); - if (that.getController().getModel().getDebug()) - console.log(select); - var optgroup = null; - try { - optgroup = select.querySelector('optgroup[data-source="' + id + '"]'); - } - catch (e) { } - if (!optgroup) { - optgroup = document.createElement('optgroup'); - optgroup.setAttribute('label', data.title); - optgroup.setAttribute('data-source', id); - } - var results = data.results; - if (that.getController().getModel().getPrependOptGroupsWithRootOption()) - results.unshift({ "path": "/" }); - var options = []; - printOptGroupOptions(results); - optgroup.innerHTML = ''; - function printOptGroupOptions(results) { - function serialize(obj) { - var str = []; - for (var p in obj) { - if (obj.hasOwnProperty(p)) { - str.push((p) + "=" + (obj[p])); - } - } - return str.join("&"); - } - for (var i = 0; i < results.length; i++) { - var result = results[i]; - var option = document.createElement('option'); - option.innerHTML = (that.sanitizeDisplayPath(result.path)) ? that.sanitizeDisplayPath(result.path) : result.path; - option.setAttribute('value', JSON.stringify({ cs: data.cs, cd: that.sanitizeDisplayPath(result.path) })); - option.setAttribute('data-cd', result.path); - options.push(option); - if (result.children && result.children.length) - printOptGroupOptions(result.children); - } - } - for (var _i = 0; _i < options.length; _i++) { - var option = options[_i]; - optgroup.appendChild(option); - } - select.appendChild(optgroup); - that.sortBrowseSelectOptGroupsByMediaSourceId(select); - } - updateTreeSelect(); - updateTopBarSelect(); - that.setBrowseSelectValue(); - that.setMediaSourceSelectValue(); - }; - EurekaView.prototype.getSelectedOption = function (select) { - var options = select.querySelectorAll('option'); - for (var i = 0; i < options.length; i++) { - var option = options[i]; - if (option.selected) - return option; - } - }; - EurekaView.prototype.formatFileSize = function (size) { - var sizes = [' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB']; - for (var i = 1; i < sizes.length; i++) { - if (size < Math.pow(1024, i)) - return (Math.round((size / Math.pow(1024, i - 1)) * 100) / 100) + sizes[i - 1]; - } - return size.toString(); - }; - EurekaView.prototype.getClosest = function (elem, selector) { - var firstChar = selector.charAt(0); - for (; elem && elem !== document; elem = elem.parentNode) { - if (firstChar === '.') { - if (elem.classList.contains(selector.substr(1))) { - return elem; - } - } - if (firstChar === '#') { - if (elem.id === selector.substr(1)) { - return elem; - } - } - if (firstChar === '[') { - if (elem.hasAttribute(selector.substr(1, selector.length - 2))) { - return elem; - } - } - if (elem.tagName.toLowerCase() === selector) { - return elem; - } - } - return null; - }; - return EurekaView; -}()); -var EurekaController = (function () { - function EurekaController(opts) { - this.opts = opts; - this._model = opts.model; - this._view = opts.view; - } - EurekaController.prototype.getModel = function () { - return this._model; - }; - EurekaController.prototype.getView = function () { - return this._view; - }; - EurekaController.prototype.init = function () { - var that = this; - var eureka = that.getView().getElement(); - if (that.getModel().useLocalStorage()) { - (function () { - var mediaSourcesData = that.getModel().getLocalStorage('mediaSourcesData'); - if (mediaSourcesData) { - that.getModel().setMediaSourcesData(JSON.parse(mediaSourcesData)); - } - })(); - (function () { - var mediaSourceData = that.getModel().getLocalStorage(that.getModel().getCurrentMediaSource() + '_mediaSourceData'); - if (mediaSourceData) { - that.getView().paintTree(JSON.parse(mediaSourceData)); - } - })(); - (function () { - var directoryData = that.getModel().getLocalStorage('lastDirectoryPainted'); - if (directoryData) { - that.getView().paintJSON(JSON.parse(directoryData)); - } - })(); - } - eureka.addEventListener(EurekaModel.EurekaViewChange, function (e) { - }); - eureka.addEventListener(EurekaModel.EurekaDirectoryChanged, function (e) { - if (that.getModel().getDebug()) - console.log(EurekaModel.EurekaDirectoryChanged); - function handleJSONData(d) { - if (that.getModel().useLocalStorage()) - that.getModel().setLocalStorage('lastDirectoryPainted', JSON.stringify(d)); - if (that.getModel().getDebug()) - console.log(d); - that.getView().paintJSON(d); - } - if (that.getModel().getUseWebWorkers()) { - (function () { - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listdirectory.js'); - worker.addEventListener('message', function (e) { - handleJSONData(e.data); - }, false); - worker.postMessage({ - listDirectoryRequestURL: that.getModel().getListDirectoryRequestURL(), - currentMediaSource: that.getModel().getCurrentMediaSource(), - currentDirectory: e.detail.currentDirectory || '/', - headers: that.getModel().getXHRHeaders() - }); - })(); - } - else { - var ajax = new AJAX(); - ajax.get(that.getModel().getListDirectoryRequestURL(), { s: that.getModel().getCurrentMediaSource(), dir: e.detail.currentDirectory || '/' }, function (data) { - handleJSONData(JSON.parse(data)); - }, true, that.getModel().getXHRHeaders()); - } - }); - eureka.addEventListener(EurekaModel.EurekaDirectoryOpened, function (e) { - if (that.getModel().getDebug()) - console.log(EurekaModel.EurekaDirectoryOpened); - var path = e.detail.path.charAt(e.detail.path.length - 1) == '/' ? e.detail.path : e.detail.path + '/'; - function handleJSONData(d) { - if (that.getModel().getDebug()) - console.log(d); - var results = d.results; - for (var i = 0; i < results.length; i++) { - var result = results[i]; - if (result.directory) { - that.getView().asyncronouslyAddDirectory(path, result.directory); - } - } - if (results.length) - that.getView().assignTreeListeners(); - } - if (that.getModel().getUseWebWorkers()) { - (function () { - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listdirectory.js'); - worker.addEventListener('message', function (e) { - handleJSONData(e.data); - }, false); - worker.postMessage({ - listDirectoryRequestURL: that.getModel().getListDirectoryChildrenRequestURL(), - currentMediaSource: that.getModel().getCurrentMediaSource(), - currentDirectory: e.detail.path || '/', - headers: that.getModel().getXHRHeaders() - }); - })(); - } - else { - var ajax = new AJAX(); - ajax.get(that.getModel().getListDirectoryChildrenRequestURL(), { s: that.getModel().getCurrentMediaSource(), dir: e.detail.path || '/' }, function (data) { - handleJSONData(JSON.parse(data)); - }, true, that.getModel().getXHRHeaders()); - } - }); - eureka.addEventListener(EurekaModel.EurekaMediaSourceChange, function (e) { - if (that.getModel().getDebug()) - console.log(EurekaModel.EurekaMediaSourceChange); - function handleJSONData(d) { - if (that.getModel().getDebug()) - console.log(d); - if (d.cs && that.getModel().useLocalStorage()) - that.getModel().setLocalStorage(d.cs + '_mediaSourceData', JSON.stringify(d)); - that.getView().paintTree(d); - if (e.detail.clearDirectory == true) - that.getModel().setCurrentDirectory('', true, false); - } - if (that.getModel().getUseWebWorkers()) { - (function () { - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listsource.js'); - worker.addEventListener('message', function (e) { - handleJSONData(e.data); - }, false); - worker.postMessage({ - listSourceRequestURL: that.getModel().getListSourceRequestURL(), - currentMediaSource: that.getModel().getCurrentMediaSource(), - headers: that.getModel().getXHRHeaders() - }); - })(); - } - else { - var ajax = new AJAX(); - ajax.get(that.getModel().getListSourceRequestURL(), { s: e.detail.currentMediaSource }, function (data) { - handleJSONData(JSON.parse(data)); - }, true, that.getModel().getXHRHeaders()); - } - }); - eureka.addEventListener(EurekaModel.EurekaMediaSourcesListChange, function (e) { - if (that.getModel().getDebug()) - console.log('MediaSourcesListChange: '); - var sources = e.detail.sources; - for (var i = 0; i < sources.length; i++) { - var source = new EurekaMediaSource(sources[i].opts); - var id = source.getID(); - requestMediaListings(source); - function requestMediaListings(source) { - if (that.getModel().getDebug()) - console.log('requestMediaListings'); - var id = source.getID(); - function handleJSONData(d) { - if (that.getModel().getDebug()) - console.log(d); - that.getView().updateMediaSourceListings(d); - } - if (that.getModel().getUseWebWorkers()) { - (function () { - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listsource.js'); - worker.addEventListener('message', function (e) { - handleJSONData(e.data); - }, false); - worker.postMessage({ - listSourceRequestURL: that.getModel().getListSourceRequestURL(), - currentMediaSource: id, - headers: that.getModel().getXHRHeaders() - }); - })(); - } - else { - var ajax = new AJAX(); - ajax.get(that.getModel().getListSourceRequestURL(), { s: id }, function (data) { - data = JSON.parse(data); - handleJSONData(data); - }, true, that.getModel().getXHRHeaders()); - } - } - } - }); - if (that.getModel().getDebug()) - console.log('MediaSourcesListChange listener added'); - (function () { - if (that.getModel().getDebug()) - console.log('requesting sources: '); - function handleJSONData(d) { - if (that.getModel().getDebug()) - console.log(d); - if (that.getModel().useLocalStorage()) - that.getModel().setLocalStorage('mediaSourcesData', JSON.stringify(d)); - that.getModel().setMediaSourcesData(d); - } - if (that.getModel().getUseWebWorkers()) { - (function () { - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listsources.js'); - worker.addEventListener('message', function (e) { - handleJSONData(e.data); - }, false); - worker.postMessage({ - listSourcesRequestURL: that.getModel().getListSourcesRequestURL(), - headers: that.getModel().getXHRHeaders() - }); - })(); - } - else { - var ajax = new AJAX(); - ajax.get(that.getModel().getListSourcesRequestURL(), {}, function (data) { - data = JSON.parse(data); - handleJSONData(data); - }, true, that.getModel().getXHRHeaders()); - } - })(); - }; - return EurekaController; -}()); -var MuckBoot; -(function () { - var d = document; - MuckBoot = function (opts) { - var defaults = { - id: 'media-browser_0', - upload: true, - enlargeFocusRows: true, - hideImagesOnListView: true - }; - if (opts.id === undefined) - opts.id = 'media-browser_0'; - if (opts.upload === undefined) - opts.upload = true; - if (opts.createDir === undefined) - opts.createDir = true; - if (opts.enlargeFocusRows === undefined) - opts.enlargeFocusRows = true; - if (opts.hideImagesOnListView === undefined) - opts.hideImagesOnListView = true; - if (opts.allowFullScreen === undefined) - opts.allowFullScreen = true; - this.opts = opts; - this.muck(); - }; - MuckBoot.prototype.getID = function () { - return this.opts.id; - }; - MuckBoot.prototype.muck = function () { - var that = this; - var eureka = d.createElement('div'); - eureka.classList.add('view-a'); - if (this.opts.enlargeFocusRows) - eureka.classList.add('enlarge-focused-rows'); - if (this.opts.hideImagesOnListView) - eureka.classList.add('no-images-on-list'); - eureka.classList.add('eureka'); - eureka.classList.add('sidebar-open'); - eureka.setAttribute('id', this.opts.id); - function createPathBrowser(opts) { - var nav = d.createElement('nav'); - nav.setAttribute('id', opts.id + '__pathbrowser'); - nav.classList.add('pathbrowser'); - function createPathBrowserTopBar() { - var div = d.createElement('div'); - div.classList.add('pathbrowser__topbar'); - var label = d.createElement('label'); - label.setAttribute('for', opts.id + '__mediasource-select'); - var heading = d.createElement('h4'); - heading.innerHTML = 'Media Source'; - label.appendChild(heading); - var mediaSourceSelectLevelup = d.createElement('div'); - mediaSourceSelectLevelup.classList.add('mediasource-select-level-up'); - var select = d.createElement('select'); - select.setAttribute('id', opts.id + '__mediasource-select'); - select.setAttribute('title', 'Choose a Media Source to browse'); - mediaSourceSelectLevelup.appendChild(select); - (function () { - var a = d.createElement('a'); - a.setAttribute('href', '#'); - a.setAttribute('class', 'level-up'); - a.setAttribute('title', 'Browse Parent Directory'); - var i = d.createElement('i'); - i.classList.add('fa'); - i.classList.add('fa-level-up'); - i.classList.add('icon'); - i.classList.add('icon-level-up'); - a.appendChild(i); - var p = d.createElement('p'); - p.classList.add('audible'); - p.innerHTML = 'Browse Parent Directory'; - a.appendChild(p); - mediaSourceSelectLevelup.appendChild(a); - })(); - div.appendChild(label); - div.appendChild(mediaSourceSelectLevelup); - return div; - } - function createPathBrowserNavTree() { - var nav = d.createElement('nav'); - nav.classList.add('tree'); - var ul = d.createElement('ul'); - nav.appendChild(ul); - return nav; - } - function createPathBrowserFooter() { - var footer = d.createElement('footer'); - if (that.opts.upload) - footer.classList.add('drop'); - var nav = d.createElement('nav'); - function createPathBrowserFooterMediaSourceInput() { - var input = d.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'mediasource'), - input.setAttribute('value', '0'); - return input; - } - function createPathBrowserFooterMediaPathInput() { - var input = d.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'mediapath'), - input.setAttribute('value', '/'); - return input; - } - function createPathBrowserFooterCreateNewForm() { - nav.appendChild(createPathBrowserFooterMediaSourceInput()); - nav.appendChild(createPathBrowserFooterMediaPathInput()); - var btn = d.createElement('button'); - btn.setAttribute('type', 'submit'); - btn.setAttribute('class', 'nued create-new'); - btn.setAttribute('title', 'Create a new directory'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-plus-square'); - fa.classList.add('icon'); - fa.classList.add('icon-plus-square'); - var p = d.createElement('p'); - p.classList.add('audible'); - p.innerHTML = 'Create a new directory'; - btn.appendChild(fa); - btn.appendChild(p); - nav.appendChild(btn); - return nav; - } - function createPathBrowserFooterSearchBtn() { - var btn = d.createElement('a'); - btn.classList.add('btn'); - btn.setAttribute('href', '#' + that.opts.id + '__filter-images'); - var i = d.createElement('i'); - i.classList.add('fa'); - i.classList.add('fa-search'); - i.classList.add('icon'); - i.classList.add('icon-search'); - btn.appendChild(i); - return btn; - } - function createPathBrowserFooterUploadForm() { - var form = d.createElement('form'); - form.appendChild(createPathBrowserFooterMediaSourceInput()); - form.appendChild(createPathBrowserFooterMediaPathInput()); - var btn = d.createElement('button'); - btn.setAttribute('type', 'submit'); - btn.setAttribute('class', 'nued upload-files'); - btn.setAttribute('title', 'Upload a file'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-upload'); - fa.classList.add('icon'); - fa.classList.add('icon-upload'); - var p = d.createElement('p'); - p.classList.add('audible'); - p.innerHTML = 'Upload media'; - btn.appendChild(fa); - btn.appendChild(p); - form.appendChild(btn); - return form; - } - if (that.opts.createDir) - createPathBrowserFooterCreateNewForm(); - if (that.opts.upload) { - (function () { - var da = d.createElement('div'); - da.classList.add('droparea'); - var dz = d.createElement('div'); - dz.classList.add('dropzone'); - dz.setAttribute('title', 'Drag & Drop files here to upload them'); - var dzm = d.createElement('div'); - dzm.classList.add('progress'); - dz.appendChild(dzm); - da.appendChild(dz); - footer.appendChild(da); - })(); - } - if (opts.upload) - nav.appendChild(createPathBrowserFooterUploadForm()); - footer.appendChild(nav); - return footer; - } - nav.appendChild(createPathBrowserTopBar()); - nav.appendChild(createPathBrowserNavTree()); - nav.appendChild(createPathBrowserFooter()); - return nav; - } - function createBrowserStage(opts) { - var browserStage = d.createElement('div'); - browserStage.setAttribute('id', opts.id + '__stage'); - browserStage.classList.add('stage'); - function createEurekaTopBar() { - var div = d.createElement('div'); - div.classList.add('eureka__topbar'); - function createEurekaTopBarNav() { - var nav = d.createElement('nav'); - nav.classList.add('eureka__topbar-nav'); - function createEurekaTopBarNavToggleBtn() { - var a = d.createElement('a'); - a.setAttribute('id', opts.id + '__pathbrowser_toggle'); - a.classList.add('pathbrowser_toggle'); - a.setAttribute('title', 'Close Navigation Tree'); - a.setAttribute('data-title-close', 'Close Navigation Tree'); - a.setAttribute('data-title-open', 'Open Navigation Tree'); - a.setAttribute('data-toggle-target', opts.id + '__pathbrowser'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-toggle-left'); - fa.classList.add('icon'); - fa.classList.add('icon-toggle-left'); - a.appendChild(fa); - return a; - } - function createEurekaTopbarBrowseSelectForm() { - var form = d.createElement('form'); - form.setAttribute('action', '#'); - form.setAttribute('id', opts.id + '__browsing'); - var select = d.createElement('select'); - form.appendChild(select); - return form; - } - function createEurekaTopBarBrowseSelect() { - var div = d.createElement('div'); - div.setAttribute('id', opts.id + '__browse-select'); - div.classList.add('tablet-p-hidden'); - div.classList.add('browse-select'); - var label = d.createElement('label'); - label.classList.add('tablet-p-hidden'); - label.classList.add('browse-select'); - label.setAttribute('for', opts.id + '__browsing'); - label.innerHTML = 'Browse'; - div.appendChild(label); - div.appendChild(createEurekaTopbarBrowseSelectForm()); - return div; - } - function createEurekaTopBarUploadForm() { - var div = d.createElement('div'); - div.setAttribute('id', opts.id + '__upload'); - div.classList.add('upload-form'); - var label = d.createElement('label'); - label.setAttribute('for', opts.id + '__upload-form'); - label.innerHTML = 'Upload:'; - var form = d.createElement('form'); - form.setAttribute('action', '#'); - form.setAttribute('id', opts.id + '__upload-form'); - var input = d.createElement('input'); - input.setAttribute('id', opts.id + '__upload-input'); - input.setAttribute('multiple', 'multiple'); - input.setAttribute('name', 'uploadFiles'); - input.setAttribute('type', 'file'); - form.appendChild(input); - div.appendChild(label); - div.appendChild(form); - return div; - } - function createEurekaTopBarViewBtns() { - var div = d.createElement('div'); - div.classList.add('view-btns'); - var btns = [ - (function () { - var a = d.createElement('a'); - a.classList.add('current'); - a.classList.add('view-a-btn'); - a.setAttribute('data-view', 'view-a'); - a.setAttribute('data-view-target', opts.id); - a.setAttribute('asyncronous-title', 'Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-th-list'); - fa.classList.add('icon'); - fa.classList.add('icon-th-list'); - a.appendChild(fa); - return a; - })(), - (function () { - var a = d.createElement('a'); - a.classList.add('view-b-btn'); - a.setAttribute('data-view', 'view-b'); - a.setAttribute('data-view-target', opts.id); - a.setAttribute('asyncronous-title', 'Thumbnail layout displays a grid of medium sized thumbnails'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-th-large'); - fa.classList.add('icon'); - fa.classList.add('icon-th-large'); - a.appendChild(fa); - return a; - })(), - (function () { - var a = d.createElement('a'); - a.classList.add('view-d-btn'); - a.setAttribute('data-view', 'view-d'); - a.setAttribute('data-view-target', opts.id); - a.setAttribute('asyncronous-title', 'Grid View displays images a grid of large images'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-square'); - fa.classList.add('icon'); - fa.classList.add('icon-square'); - a.appendChild(fa); - return a; - })(), - (function () { - var a = d.createElement('a'); - a.classList.add('view-d-btn'); - a.setAttribute('data-view', 'view-e'); - a.setAttribute('data-view-target', opts.id); - a.setAttribute('asyncronous-title', 'List Layout displays Name, Description, File Size and Edited On columns'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-list'); - fa.classList.add('icon'); - fa.classList.add('icon-list'); - a.appendChild(fa); - return a; - })() - ]; - if (opts.allowFullScreen) - btns.push((function () { - var a = d.createElement('a'); - a.classList.add('view-f-btn'); - a.setAttribute('data-view', 'view-f'); - a.setAttribute('title', 'Toggle Fullscreen Mode'); - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-expand'); - fa.classList.add('icon'); - fa.classList.add('icon-expand'); - a.appendChild(fa); - return a; - })()); - var nav = d.createElement('nav'); - for (var i = 0; i < btns.length; i++) - nav.appendChild(btns[i]); - div.appendChild(nav); - return div; - } - function createEurekaTopbarNavHeader() { - var header = d.createElement('header'); - var h4 = d.createElement('h4'); - h4.setAttribute('id', opts.id + '__mediacontent-current-source'); - var span = d.createElement('span'); - span.classList.add('mediasource-title'); - span.setAttribute('data-prepend', ''); - h4.innerHTML = 'Media Content '; - h4.appendChild(span); - header.appendChild(h4); - header.appendChild(createEurekaTopBarForm()); - return header; - } - nav.appendChild(createEurekaTopbarNavHeader()); - function createEurekaTopBarNavSelect() { - var div = d.createElement('div'); - div.classList.add('eureka__topbar-nav__select'); - div.appendChild(createEurekaTopBarNavToggleBtn()); - div.appendChild(createEurekaTopBarBrowseSelect()); - if (opts.upload) - div.appendChild(createEurekaTopBarUploadForm()); - div.appendChild(createEurekaTopBarViewBtns()); - return div; - } - nav.appendChild(createEurekaTopBarNavSelect()); - return nav; - } - function createEurekaTopBarForm() { - var form = d.createElement('form'); - var input = d.createElement('input'); - input.setAttribute('id', opts.id + '__filter-images'); - input.setAttribute('type', 'search'); - input.setAttribute('placeholder', 'Filter images'); - input.setAttribute('autocomplete', 'off'); - form.appendChild(input); - return form; - } - div.appendChild(createEurekaTopBarNav()); - return div; - } - function createEurekaTable() { - var div = d.createElement('div'); - div.classList.add('eureka-table'); - var table = d.createElement('table'); - var thead = d.createElement('thead'); - var tr = d.createElement('tr'); - var tbody = d.createElement('tbody'); - var ths = [ - (function () { - var th = d.createElement('th'); - th.innerHTML = 'Name '; - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby', 'name'); - fa.setAttribute('data-sort-asc', '1'); - th.appendChild(fa); - return th; - })(), - (function () { - var th = d.createElement('th'); - th.classList.add('dimensions'); - th.innerHTML = 'Dimensions '; - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby', 'dimensions'); - fa.setAttribute('data-sort-asc', '1'); - th.appendChild(fa); - return th; - })(), - (function () { - var th = d.createElement('th'); - th.innerHTML = 'File Size '; - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby', 'filesize'); - fa.setAttribute('data-sort-asc', '1'); - th.appendChild(fa); - return th; - })(), - (function () { - var th = d.createElement('th'); - th.innerHTML = 'Edited On '; - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby', 'editedon'); - fa.setAttribute('data-sort-asc', '1'); - th.appendChild(fa); - return th; - })() - ]; - for (var i = 0; i < ths.length; i++) - tr.appendChild(ths[i]); - thead.appendChild(tr); - table.appendChild(thead); - table.appendChild(tbody); - div.appendChild(table); - return div; - } - browserStage.appendChild(createEurekaTopBar()); - browserStage.appendChild(createEurekaTable()); - browserStage.appendChild(createEurekaTableUhOh()); - return browserStage; - } - function createEurekaTableUhOh() { - var div = document.createElement('div'); - div.classList.add('eureka-table'); - div.classList.add('oh-no'); - var h3 = document.createElement('h3'); - var i = document.createElement('i'); - i.classList.add('fa'); - i.classList.add('fa-exclamation-triangle'); - i.classList.add('icon'); - i.classList.add('icon-exclamation-triangle'); - var code = document.createElement('code'); - var p = document.createElement('p'); - p.innerHTML = 'Oh no! Nothing was found in this directory.
Perhaps you\'d like to upload some files?
'; - h3.appendChild(i); - h3.appendChild(code); - h3.appendChild(p); - div.appendChild(h3); - return div; - } - function createChooseFooter(opts) { - var footer = d.createElement('footer'); - footer.classList.add('proceed'); - var btns = [ - (function () { - var btn = d.createElement('button'); - btn.classList.add('cancel'); - btn.classList.add('muted'); - btn.classList.add('clickable'); - btn.innerHTML = 'Cancel'; - return btn; - })(), - (function () { - var btn = d.createElement('button'); - btn.classList.add('btn'); - btn.classList.add('clickable'); - btn.classList.add('cta'); - btn.setAttribute('disabled', 'disabled'); - btn.setAttribute('id', opts.id + '__choose-btn'); - btn.setAttribute('type', 'submit'); - btn.innerHTML = 'Choose'; - return btn; - })() - ]; - for (var i = 0; i < btns.length; i++) - footer.appendChild(btns[i]); - return footer; - } - var pathBrowser = createPathBrowser(this.opts); - eureka.appendChild(pathBrowser); - var browserStage = createBrowserStage(this.opts); - eureka.appendChild(browserStage); - var eurekaWrapper = d.createElement('div'); - eurekaWrapper.classList.add('eureka-wrapper'); - eurekaWrapper.appendChild(eureka); - eurekaWrapper.appendChild(createChooseFooter(this.opts)); - d.getElementById(this.opts.id).outerHTML = eurekaWrapper.outerHTML; - }; -})(); -importScripts("includes.js"); -self.addEventListener('message', function (e) { - var data = e.data; - var ajax = new AJAX(); - ajax.get(data.listDirectoryRequestURL, { s: data.currentMediaSource, dir: data.currentDirectory }, function (data) { - self.postMessage(JSON.parse(data)); - }, true, data.headers); -}, false); -importScripts("includes.js"); -self.addEventListener('message', function (e) { - var data = e.data; - var ajax = new AJAX(); - ajax.get(data.listSourceRequestURL, { s: data.currentMediaSource }, function (data) { - self.postMessage(JSON.parse(data)); - }, true, data.headers); -}, false); -importScripts("includes.js"); -self.addEventListener('message', function (e) { - var data = e.data; - var ajax = new AJAX(); - ajax.get(data.listSourcesRequestURL, {}, function (data) { - self.postMessage(JSON.parse(data)); - }, true, data.headers); -}, false); -//# sourceMappingURL=eureka.1.2.0.js.map \ No newline at end of file diff --git a/_build/examples/assets/eureka.1.2.0.js.map b/_build/examples/assets/eureka.1.2.0.js.map deleted file mode 100644 index 9fc9b26..0000000 --- a/_build/examples/assets/eureka.1.2.0.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"eureka.1.2.0.js","sourceRoot":"","sources":["../../ts/ajax.ts","../../ts/plugins.ts","../../ts/eureka.typescript.ts","../../ts/muckboot.eureka.ts","../../ts/workers/listdirectory.ts","../../ts/workers/listsource.ts","../../ts/workers/listsources.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/_build/gruntfile.js b/_build/gruntfile.js deleted file mode 100644 index 25a18e1..0000000 --- a/_build/gruntfile.js +++ /dev/null @@ -1,363 +0,0 @@ -module.exports = function(grunt) { - // Project configuration. - grunt.option.init({ - 'ver':(!grunt.option('ver')) ? grunt.file.readJSON('package.json').version : grunt.option('ver'), - 'rel':(!grunt.option('rel')) ? grunt.file.readJSON('package.json').release : grunt.option('rel') - }); - var initConfig = { - pkg: grunt.file.readJSON('package.json'), - dirs: { /* just defining some properties */ - src: '../src/', - lib: './lib/', - scss: './scss/', - theme: '../', - assets: 'examples/assets/', - css: 'css/', - js: 'js/', - ts: 'ts/', - img: 'img/', - font: 'font/' - }, - bower: { - install: { - options: { - targetDir: './lib', - layout: 'byComponent' - } - } - }, - copy: { - }, - cssmin: { - compress: { - options: { - report: 'min', - keepSpecialComments: 0, - banner: '/*!\n* <%= pkg.title %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n*/' - }, - files: { - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.<%= pkg.version %>.min.css': '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.<%= pkg.version %>.css', - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.no-flexbox.<%= pkg.version %>.min.css': '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.no-flexbox.<%= pkg.version %>.css', - } - } - }, - - sass: { - dist: { - options: { - style: 'compressed', - compass: false - }, - files: { - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.<%= pkg.version %>.css': '<%= dirs.scss %>main.scss', - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.no-flexbox.<%= pkg.version %>.css': '<%= dirs.scss %>no-flexbox.scss' - } - }, - dev: { - options: { - style: 'expanded', - compass: false, - sourceMap:true - }, - files: { - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.<%= pkg.version %>.css': '<%= dirs.scss %>main.scss', - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.no-flexbox.<%= pkg.version %>.css': '<%= dirs.scss %>no-flexbox.scss' - } - } - }, - autoprefixer: { - options: { - browsers: ['last 2 versions', 'ie 8', 'ie 9'] - }, - main: { - files: { - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.<%= pkg.version %>.css': '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.<%= pkg.version %>.css', - '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.no-flexbox.<%= pkg.version %>.css': '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>eureka.no-flexbox.<%= pkg.version %>.css', - } - } - }, - csslint: { - strict: { - options: { - import: 2 - }, - src: ['<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>.<%= pkg.version %>**/*.css'] - } - }, - - concat: { - plugins: { - options: { - separator: '', - banner:'/* do not touch this file. see _build/*.js */\n' - }, - src: [ - '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>vendor/scopedQuerySelectorShim.js', - '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>vendor/html5Upload.js', - '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>eureka.<%= pkg.version %>.js' - ], - dest: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>eureka.<%= pkg.version %>.js', - }, - eureka: { - src: [ - '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>eureka.<%= pkg.version %>.js' - ], - dest: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>eureka.<%= pkg.version %>.min.js', - } - - }, - ts: { - eureka : { - target:'es5', - failOnTypeErrors:false, - src: ["<%= dirs.ts %>plugins.ts","<%= dirs.ts %>ajax.ts","<%= dirs.ts %>eureka.typescript.ts"], - out:'<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>eureka.<%= pkg.version %>.js', - options:{ - sourceMap:false, - removeComments:false - } - }, - muckboot : { - target:'es5', - failOnTypeErrors:false, - src: ["<%= dirs.ts %>muckboot.eureka.ts"], - out:'<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>muckboot.eureka.<%= pkg.version %>.js' - }, - includes : { - target:'es5', - failOnTypeErrors:false, - src: ["<%= dirs.ts %>ajax.ts"], - out:'<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>workers/includes.js' - }, - listsource : { - target:'es5', - failOnTypeErrors:false, - src: ["<%= dirs.ts %>workers/listsource.ts"], - out:'<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>workers/listsource.js' - }, - listsources : { - target:'es5', - failOnTypeErrors:false, - src: ["<%= dirs.ts %>workers/listsources.ts"], - out:'<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>workers/listsources.js' - }, - listdirectory : { - target:'es5', - failOnTypeErrors:false, - src: ["<%= dirs.ts %>workers/listdirectory.ts"], - out:'<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>workers/listdirectory.js' - } - }, - - uglify: { - main: { - options: { - report: 'min', - screwIE8:true - }, - files: { - '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>muckboot.eureka.<%= pkg.version %>.min.js': ['<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>muckboot.eureka.<%= pkg.version %>.js'], - '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>/vendor/html5Upload.min.js': ['<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>/vendor/html5Upload.js'], - '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>eureka.<%= pkg.version %>.min.js': ['<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>eureka.<%= pkg.version %>.js'] - } - - }, - includes: { - options: { - report: 'min' - }, - files: [{ - src:['<%= dirs.src %><%= dirs.js %>workers/includes.js'], - dest:'<%= dirs.src %><%= dirs.js %>workers/includes.min.js' - },{ - src:['<%= dirs.src %><%= dirs.js %>workers/listsource.js'], - dest:'<%= dirs.src %><%= dirs.js %>workers/listsource.min.js' - }, - { - src:['<%= dirs.src %><%= dirs.js %>workers/listsources.js'], - dest:'<%= dirs.src %><%= dirs.js %>workers/listsources.min.js' - }, - { - src:['<%= dirs.src %><%= dirs.js %>workers/listdirectory.js'], - dest:'<%= dirs.src %><%= dirs.js %>workers/listdirectory.min.js' - } - ] - } - }, - - watch: { /* trigger tasks on save */ - options: { - livereload: true - }, - - scss: { - files: '<%= dirs.scss %>**/*.scss', - tasks: ['sass:dev','autoprefixer','cssmin','growl:sass','cssmin'] - }, - ts: { - files: ['<%= dirs.ts %>*'], - tasks: ['ts:eureka','growl:ts','concat','uglify','growl:uglify'] - } - }, - clean: { /* take out the trash */ - options: { - force: true - }, - prebuild: ['<%= dirs.scss %>bourbon', '<%= dirs.scss %>font-awesome'], - postbuild: ['<%= dirs.lib %>','<%= dirs.src %>/**/*'] - }, - growl: { /* optional growl notifications requires terminal-notifer: gem install terminal-notifier */ - - sass: { - message: "Sass files created.", - title: "grunt" - }, - - build: { - title: "grunt", - message: "Build complete." - }, - watch: { - title: "grunt", - message: "Watching. Grunt has its eye on you." - }, - expand: { - title: "grunt", - message: "CSS Expanded. Don't check it in." - }, - concat: { - title: "grunt", - message: "JavaScript concatenated." - }, - uglify: { - title: "grunt", - message: "JavaScript minified." - }, - ts: { - title: "grunt", - message: "JavaScript created from TypeScript." - } - } - }; - - - initConfig.copy["bourbon"] = { - files: [{ - src: 'bourbon/**/*', - cwd: '<%= dirs.lib %>', - dest: '<%= dirs.scss %>', - expand: true - }] - }; - - initConfig.copy["neat"] = { - files: [{ - src: 'neat/**/*', - cwd: '<%= dirs.lib %>', - dest: '<%= dirs.scss %>', - expand: true - }] - }; - - initConfig.copy["dom4"] = { - files: [{ - src: './*.js', - cwd: '<%= dirs.lib %>dom4', - dest: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>vendor/', - expand: true - }] - }; - - initConfig.copy["eureka-src"] = { - files: [{ - src: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>*eureka*.js', - dest: '<%= dirs.src %><%= dirs.js %>', - expand: true, - flatten: true - },{ - src: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>workers/**/*.js', - dest: '<%= dirs.src %><%= dirs.js %>workers/', - flatten:true, - expand: true - },{ - src: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>vendor/**/*.js', - dest: '<%= dirs.src %><%= dirs.js %>vendor/', - flatten:true, - expand: true - },{ - src: '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>*eureka*.css', - dest: '<%= dirs.src %><%= dirs.css %>', - expand: true, - flatten: true - }] - }; - - initConfig.copy["DefinitelyTyped"] = { - files: [{ - src: 'DefinitelyTyped/modernizr.d.ts', - cwd: '<%= dirs.lib %>', - dest: '<%= dirs.ts %>', - expand: true - }] - }; - - initConfig.copy["html5-file-uploader"] = { - files: [{ - src: '<%= dirs.lib %>html5-file-uploader/Html5UploadDemo/Scripts/src/html5Upload.js', - dest: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>vendor/html5Upload.js' - }] - }; - - initConfig.copy["scopedQuerySelectorShim"] = { - files: [{ - src: '<%= dirs.lib %>scopedQuerySelectorShim/scopedQuerySelectorShim.js', - dest: '<%= dirs.theme %><%= dirs.assets %><%= dirs.js %>vendor/scopedQuerySelectorShim.js' - }] - }; - - initConfig.copy["font-awesome"] = { - files: [ - { - src: '<%= dirs.lib %>font-awesome/scss/**/*.scss', - dest: '<%= dirs.scss %>font-awesome/', - - expand: true, - flatten: true - },{ - src: '<%= dirs.lib %>font-awesome/css/**/*.css', - dest: '<%= dirs.theme %><%= dirs.assets %><%= dirs.css %>', - expand: true, - flatten: true - }, - { - src: 'fonts/**/*', - cwd: '<%= dirs.lib %>font-awesome/', - dest: '<%= dirs.theme %><%= dirs.assets %>', - expand: true - } - ] - }; - - grunt.initConfig(initConfig); - - grunt.loadNpmTasks('grunt-bower-task'); - grunt.loadNpmTasks('grunt-contrib-copy'); - - grunt.loadNpmTasks('grunt-sass'); - grunt.loadNpmTasks('grunt-autoprefixer'); - - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-growl'); - grunt.loadNpmTasks('grunt-contrib-cssmin'); - grunt.loadNpmTasks('grunt-contrib-csslint'); - - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - - grunt.loadNpmTasks("grunt-ts"); - - grunt.registerTask('default', ['growl:watch', 'watch']); - grunt.registerTask('build', ['clean:prebuild', 'bower', 'copy', 'sass:dev','autoprefixer','cssmin','ts','concat','uglify:main', 'growl:sass', 'clean:postbuild','copy:eureka-src','uglify:includes']); - grunt.registerTask('expand', ['sass:dev','autoprefixer', 'growl:sass', 'growl:expand']); -}; diff --git a/_build/package.json b/_build/package.json deleted file mode 100644 index 4f92d6b..0000000 --- a/_build/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "eureka-browser", - "title": "Eureka Browser", - "description": "HTML-first crack at a Flexible Media Browser Component", - "version": "1.2.0", - "homepage": "https://github.com/jpdevries/eureka", - "author": { - "name": "JP DeVries", - "email": "mail@devries.jp", - "url": "http://devries.jp" - }, - "repository": { - "type": "git", - "url": "git://github.com/jpdevries/eureka.git" - }, - "bugs": { - "url": "https://github.com/jpdevries/eureka/issues" - }, - "devDependencies": { - "grunt-autoprefixer": "^3.0.3", - "grunt-bower-task": "0.4.0", - "grunt-contrib-clean": "0.6.0", - "grunt-contrib-concat": "0.5.1", - "grunt-contrib-copy": "0.8.1", - "grunt-contrib-csslint": "^0.5.0", - "grunt-contrib-cssmin": "^0.13.0", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-growl": "^0.1.5", - "grunt-sass": "1.0.0", - "grunt-ts": "^4.2.0" - }, - "keywords": [ - "HTML", - "HTML5", - "CSS3", - "JavaScript", - "flexbox", - "ES6", - "VanillaJS", - "media", - "browse" - ] -} diff --git a/_build/scss/_grid-settings.scss b/_build/scss/_grid-settings.scss deleted file mode 100644 index f1dcda4..0000000 --- a/_build/scss/_grid-settings.scss +++ /dev/null @@ -1,7 +0,0 @@ -$column: golden-ratio(1em, 3) !default; // Column width -$gutter: golden-ratio(1em, 1) !default; // Gutter between each two columns -$grid-columns: 12 !default; // Total number of columns in the grid -$max-width: em(1088) !default; // Max-width of the outer container -$border-box-sizing: true !default; // Makes all elements have a border-box layout -$default-feature: min-width; // Default @media feature for the breakpoint() mixin -$default-layout-direction: LTR !default; diff --git a/_build/scss/eureka-boilerplate/_main.scss b/_build/scss/eureka-boilerplate/_main.scss deleted file mode 100644 index ede4559..0000000 --- a/_build/scss/eureka-boilerplate/_main.scss +++ /dev/null @@ -1,283 +0,0 @@ -/*! HTML5 Boilerplate v5.0.0 | MIT License | http://h5bp.com/ */ - -/* - * What follows is the result of much research on cross-browser styling. - * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, - * Kroc Camen, and the H5BP dev community and team. - */ - -/* ========================================================================== - Base styles: opinionated defaults - ========================================================================== */ - -.eureka-wrapper { - color: #222; - font-size: 1em; - line-height: 1.4; - - /* - * A better looking default horizontal rule - */ - - hr { - display: block; - height: 1px; - border: 0; - border-top: 1px solid #ccc; - margin: 1em 0; - padding: 0; - } - - /* - * Remove the gap between audio, canvas, iframes, - * images, videos and the bottom of their containers: - * https://github.com/h5bp/html5-boilerplate/issues/440 - */ - - audio, - canvas, - iframe, - img, - svg, - video { - vertical-align: middle; - } - - /* - * Remove default fieldset styles. - */ - - fieldset { - border: 0; - margin: 0; - padding: 0; - } - - /* - * Allow only vertical resizing of textareas. - */ - - textarea { - resize: vertical; - } - - /* ========================================================================== - Browser Upgrade Prompt - ========================================================================== */ - - .browserupgrade { - margin: 0.2em 0; - background: #ccc; - color: #000; - padding: 0.2em 0; - } - - /* ========================================================================== - Author's custom styles - ========================================================================== */ - - - - - - - - - - - - - - - - - - /* ========================================================================== - Helper classes - ========================================================================== */ - - /* - * Hide visually and from screen readers: - * http://juicystudio.com/article/screen-readers-display-none.php - */ - - .hidden { - display: none !important; - visibility: hidden; - } - - /* - * Hide only visually, but have it available for screen readers: - * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility - */ - - .visuallyhidden { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; - } - - /* - * Extends the .visuallyhidden class to allow the element - * to be focusable when navigated to via the keyboard: - * https://www.drupal.org/node/897638 - */ - - .visuallyhidden.focusable:active, - .visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; - } - - /* - * Hide visually and from screen readers, but maintain layout - */ - - .invisible { - visibility: hidden; - } - - /* - * Clearfix: contain floats - * - * For modern browsers - * 1. The space content is one way to avoid an Opera bug when the - * `contenteditable` attribute is included anywhere else in the document. - * Otherwise it causes space to appear at the top and bottom of elements - * that receive the `clearfix` class. - * 2. The use of `table` rather than `block` is only necessary if using - * `:before` to contain the top-margins of child elements. - */ - - .clearfix:before, - .clearfix:after { - content: " "; /* 1 */ - display: table; /* 2 */ - } - - .clearfix:after { - clear: both; - } - - /* ========================================================================== - EXAMPLE Media Queries for Responsive Design. - These examples override the primary ('mobile first') styles. - Modify as content requires. - ========================================================================== */ - - @media only screen and (min-width: 35em) { - /* Style adjustments for viewports that meet the condition */ - } - - @media print, - (-o-min-device-pixel-ratio: 5/4), - (-webkit-min-device-pixel-ratio: 1.25), - (min-resolution: 120dpi) { - /* Style adjustments for high resolution devices */ - } - - /* ========================================================================== - Print styles. - Inlined to avoid the additional HTTP request: - http://www.phpied.com/delay-loading-your-print-css/ - ========================================================================== */ - - @media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; /* Black prints faster: - http://www.sanbeiji.com/archives/953 */ - box-shadow: none !important; - text-shadow: none !important; - } - - a, - a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - /* - * Don't show links that are fragment identifiers, - * or use the `javascript:` pseudo protocol - */ - - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - - /* - * Printing Tables: - * http://css-discuss.incutio.com/wiki/Printing_Tables - */ - - thead { - display: table-header-group; - } - - tr, - img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - - h2, - h3 { - page-break-after: avoid; - } - } -} - -/* - * Remove text-shadow in selection highlight: - * https://twitter.com/miketaylr/status/12228805301 - * - * These selection rule sets have to be separate. - * Customize the background color to match your design.a - */ - -::-moz-selection { - background: #b3d4fc; - text-shadow: none; -} - -::selection { - background: #b3d4fc; - text-shadow: none; -} - diff --git a/_build/scss/eureka-boilerplate/_normalize.scss b/_build/scss/eureka-boilerplate/_normalize.scss deleted file mode 100644 index efd3be9..0000000 --- a/_build/scss/eureka-boilerplate/_normalize.scss +++ /dev/null @@ -1,429 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -.eureka-wrapper { /* manually scoping html5bp reset to just the eureka wrapper */ - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ - - body { - margin: 0; - } - - /* HTML5 display definitions - ========================================================================== */ - - /** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - - article, - aside, - details, - figcaption, - figure, - footer, - header, - hgroup, - main, - menu, - nav, - section, - summary { - display: block; - } - - /** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - - audio, - canvas, - progress, - video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ - } - - /** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - - audio:not([controls]) { - display: none; - height: 0; - } - - /** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ - - [hidden], - template { - display: none; - } - - /* Links - ========================================================================== */ - - /** - * Remove the gray background color from active links in IE 10. - */ - - a { - background-color: transparent; - } - - /** - * Improve readability when focused and also mouse hovered in all browsers. - */ - - a:active, - a:hover { - outline: 0; - } - - /* Text-level semantics - ========================================================================== */ - - /** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - - abbr[title] { - border-bottom: 1px dotted; - } - - /** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - - b, - strong { - font-weight: bold; - } - - /** - * Address styling not present in Safari and Chrome. - */ - - dfn { - font-style: italic; - } - - /** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - - h1 { - font-size: 2em; - margin: 0.67em 0; - } - - /** - * Address styling not present in IE 8/9. - */ - - mark { - background: #ff0; - color: #000; - } - - /** - * Address inconsistent and variable font size in all browsers. - */ - - small { - font-size: 80%; - } - - /** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - - sub, - sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - - sup { - top: -0.5em; - } - - sub { - bottom: -0.25em; - } - - /* Embedded content - ========================================================================== */ - - /** - * Remove border when inside `a` element in IE 8/9/10. - */ - - img { - border: 0; - } - - /** - * Correct overflow not hidden in IE 9/10/11. - */ - - svg:not(:root) { - overflow: hidden; - } - - /* Grouping content - ========================================================================== */ - - /** - * Address margin not present in IE 8/9 and Safari. - */ - - figure { - margin: 1em 40px; - } - - /** - * Address differences between Firefox and other browsers. - */ - - hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; - } - - /** - * Contain overflow in all browsers. - */ - - pre { - overflow: auto; - } - - /** - * Address odd `em`-unit font size rendering in all browsers. - */ - - code, - kbd, - pre, - samp { - font-family: monospace, monospace; - font-size: 1em; - } - - /* Forms - ========================================================================== */ - - /** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - - /** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - - button, - input, - optgroup, - select, - textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ - } - - /** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - - button { - overflow: visible; - } - - /** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - - button, - select { - text-transform: none; - } - - /** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - - button, - html input[type="button"], /* 1 */ - input[type="reset"], - input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ - } - - /** - * Re-set default cursor for disabled elements. - */ - - button[disabled], - html input[disabled] { - cursor: default; - } - - /** - * Remove inner padding and border in Firefox 4+. - */ - - button::-moz-focus-inner, - input::-moz-focus-inner { - border: 0; - padding: 0; - } - - /** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - - input { - line-height: normal; - } - - /** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - - input[type="checkbox"], - input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ - } - - /** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - - input[type="number"]::-webkit-inner-spin-button, - input[type="number"]::-webkit-outer-spin-button { - height: auto; - } - - /** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ - - input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; - } - - /** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - - input[type="search"]::-webkit-search-cancel-button, - input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; - } - - /** - * Define consistent border, margin, and padding. - */ - - fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; - } - - /** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - - legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ - } - - /** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - - textarea { - overflow: auto; - } - - /** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - - optgroup { - font-weight: bold; - } - - /* Tables - ========================================================================== */ - - /** - * Remove most spacing between table cells. - */ - - table { - border-collapse: collapse; - border-spacing: 0; - } - - td, - th { - padding: 0; - } - - -} - -/** - * Remove default margin. - */ \ No newline at end of file diff --git a/_build/scss/flex-shortcuts/flex-shortcuts.scss b/_build/scss/flex-shortcuts/flex-shortcuts.scss deleted file mode 100644 index 314f2f9..0000000 --- a/_build/scss/flex-shortcuts/flex-shortcuts.scss +++ /dev/null @@ -1,107 +0,0 @@ -%flexible-parent { - display:flex; /* flexible parent */ -} - -%flex-direction-column { - @extend %flex-direction-column; //flex-direction:column; -} - -%ungrowable { - flex-grow:0; -} - -%flex-grow-1 { - flex-grow:1; -} - -%growable { - @extend %flex-grow-1; -} - -%flex-shrink-0 { - flex-shrink:0; -} - -%unshrinkable { - @extend %flex-shrink-0; -} - -%flex-shrink-1 { - flex-shrink:1; -} - -%shrinkable { // alias for %flex-shrink-1 - flex-shrink:1; -} - -%flex-direction-column { - flex-direction:column; -} - -%align-items-stretch { - align-items:stretch; -} - -%justify-content-flex-start { - justify-content:flex-start; -} - -%justify-content-center { - justify-content:center; -} - -%flex-direction-row { - flex-direction:row; -} - -%justify-content-flex-end { - justify-content:flex-end; -} - -%align-items-flex-start { - align-items:flex-start; -} - -%align-items-stretch { - align-items:stretch; -} - -%flex-wrap-nowrap { - flex-wrap:nowrap; -} - -%flex-unwrappable { - @extend %flex-wrap-nowrap; -} - -%flex-wrap-wrap { - flex-wrap:wrap; -} - -%flex-wrappable { - @extend %flex-wrap-wrap; -} - -%align-self-flex-end { - align-self:flex-end; -} - -%align-items-center { - @include align-items(center); -} - -%align-self-flex-start { - @include align-self(flex-start); -} - -%flex-basis-auto { - @include flex-basis(auto); -} - -%flex-basis-all { - @include flex-basis(100%); -} - -%flex-basis-none { - @include flex-basis(0%); // http://philipwalton.com/articles/normalizing-cross-browser-flexbox-bugs/#avoiding-unitless-flex-basis -} \ No newline at end of file diff --git a/_build/scss/main.scss b/_build/scss/main.scss deleted file mode 100644 index 0209730..0000000 --- a/_build/scss/main.scss +++ /dev/null @@ -1,1897 +0,0 @@ -$prefix-for-webkit: true; // prefixes make up about 16% of our CSS weight (1-(31/37)) -$prefix-for-mozilla: true; -$prefix-for-microsoft: true; -$prefix-for-opera: false; // we don't support Opera, or rather Opera doesn't currently support us :( https://github.com/jpdevries/eureka/issues/10 -$prefix-for-spec: true; - -@import "bourbon/bourbon"; -@import "grid-settings"; - -$border-box-sizing:false; -@import "neat/neat"; - -@import "spec/tacular"; - -@import "eureka-boilerplate/main"; /* h5bp but scoped to .eureka-wrapper */ - -@import "flex-shortcuts/flex-shortcuts"; - -$borderColor:rgb(160,160,160); -$black:rgb(10,10,10); -$white:rgb(255,255,255); - -$contextualBG:lighten($black,82%); -$contextualBorder:lighten($black,54%); -$contextualColor:lighten($black,36%); -$goGreen:rgb(33,163,0) !default; -$goGreen:#297aa7; -$topBarH:4.8rem; - -$bg:$white; - -%subtle-link { - text-decoration:none; - color:inherit; - color:currentColor; - &:hover { - - } -} - -%monospaced { - font-family: monospace; /* Andale Mono,AndaleMono, */ -} - -%smaller { - font-size:0.86em; -} - -%inverted { - background:$black; - color:$white; -} - -%chrome-flexbox-hack { - min-width:0; - min-height:0; -} - -%table { - display: table; - //border-collapse: separate; - //border-spacing: 2px; - //border-color: gray; -} - -%thead { - display: table-header-group; - //vertical-align: middle; - //border-color: inherit; -} - -%th { - display: table-cell; - //vertical-align: inherit; - //font-weight: bold; - //text-align: center; -} - -%tbody { - display: table-row-group; - vertical-align: middle; - border-color: inherit; -} - -%tr { - display: table-row; - //vertical-align: inherit; - //border-color: inherit; -} - -%td { - display: table-cell; - //vertical-align: inherit; -} - -@mixin bottom-seperated() { - padding-bottom:0.5em; - border-bottom:1px solid lighten($borderColor,24%); -} - -%bottom-seperated { - @include bottom-seperated; -} - -@mixin top-seperated() { - padding-bottom:0.5em; - border-top:1px solid lighten($borderColor,24%); -} - -%top-seperated { - @include top-seperated; -} - -@mixin left-seperated() { - padding-left:0.5em; - border-left:1px solid lighten($borderColor,24%); -} - -%left-seperated { - @include left-seperated; -} - -@mixin right-seperated() { - padding-right:0.5em; - border-right:1px solid lighten($borderColor,24%); -} - -%right-seperated { - @include right-seperated; -} - -$danger:darken(red,8%); -%dangerous { - border-top:1px solid transparent; - border-bottom:1px solid transparent; - &:focus, &.focused { - background:$danger; - border-top:1px solid darken($danger,4%); - border-bottom:1px solid darken($danger,4%); - color:$white; - } - html.no-touch & { - &:hover { - background:$danger; - border-top:1px solid darken($danger,4%); - border-bottom:1px solid darken($danger,4%); - color:$white; - } - } -} - -%green-bg { - background:$goGreen; - color:$white; - border-color:darken($goGreen,8%); -} - -%go { - &:focus,&.focused { - @extend %green-bg; - } - html.no-touch & { - &:hover { - @extend %green-bg; - } - } -} - -%visible-contextual { - position:relative; - top:auto; - left:auto; - height:auto; - width:auto; - clip:auto; - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-all; //flex-basis:100%; -} - -.audible { - @extend %accessibly-hidden; -} - -@if $border-box-sizing == false { - .eureka-wrapper { // http://bit.ly/1qk2tVR - box-sizing:border-box; - } - - .eureka-wrapper { - *, - &:before, - &:after { - box-sizing:inherit; - } - } -} - -.dangerous { - @extend %dangerous; -} - -.go { - @extend %go; -} - -.eureka-wrapper:fullscreen { - position:fixed; - top:0; - right:0; - bottom:0; - left:0; - margin:0; - box-sizing:border-box; - width:100%; - height:100%; - object-fit:contain; -} - -.eureka-wrapper { - background:$bg; - font-family: Gill Sans,Gill Sans MT,Calibri,sans-serif; - button { - border-radius:0.4em; - &[type="submit"] { - cursor:pointer; - } - } - pre,code { - @extend %monospaced; - } - .image { - img { - max-width:100%; - } - } - label { - text-transform:none; - } - .unaligned { - text-align:center; - } - button, .btn { - margin:0 auto; - border:none; - - .contextual & { - padding:0 0.42em; - font-size:0.86em; - background:transparent; - color:inherit; - } - - background:$black; - color:$white; - padding:0.24em 0.42em; - //font-size:1.4em; - .contextual & { - color:lighten($black,82%); - background:lighten($black,36%); - } - &.go { - @extend %green-bg; - } - - } - - button.muted, button:disabled { - background:lighten($black,50%); - cursor:default; - } - - button.muted.cancel { - cursor:pointer; - } - - button:disabled { - opacity:0.678; - } -} - -/* -html.no-touch, html.no-touch body, html.no-touch body > form { - @include media($gtMobile) { - //height:100%; - margin:0; - } -} -*/ - -.eureka__topbar-nav,.pathbrowser__topbar { - h4 { - font-size:1rem; - } -} - -@mixin firefox-hack() { - @-moz-document url-prefix() { /* shame on firefox? http://codepen.io/jpdevries/pen/doYYoR */ - @content; - } -} - -@mixin spartan-hack() { - @supports (-ms-accelerator:true) { /* shame on spartan? http://codepen.io/jpdevries/pen/doYYoR */ - @content; - } -} - - - -.eureka-wrapper { - border:1px solid $borderColor; - border-radius:0.4em; - - display:flex; - flex-direction:column; - flex-grow:1; - flex-basis:0; - - > .eureka { - flex-grow:10; - //flex-basis:100%; - @include media($gtTabletP) { - //flex-basis:100%; - flex-basis:0; - max-height:100%; - } - .oh-no { - display:none; - } - &.nothing-found { - .stage > .eureka-table.oh-no { - display:flex; - } - .stage > .eureka-table:not(.oh-no) { - display:none; - } - } - .stage { - display:flex; - width:100%; - flex-direction:column; - flex-wrap:nowrap; - position:relative; - > .eureka-table { - flex-basis:auto; - @include media($gtTabletP) { - flex-basis:0; - } - //-webkit-flex-basis:0%; - flex-grow:1; - //height:100%; - height:auto; - -ms-flex-preferred-size:auto; // #janky ^^ - - - - /* hack for Firefox and Spartan see http://codepen.io/jpdevries/pen/doYYoR #janky */ - /*@mixin topbar-hack() { - position:absolute; - top:$topBarH; - right:0; - bottom:0; - left:0; - } - - @include firefox-hack() { - @include media($gtTabletP) { - @include topbar-hack; - } - } - @include spartan-hack() { - @include media($gtTabletP) { - @include topbar-hack; - } - } - */ - - &.oh-no { - text-align:center; - a { - text-decoration:underline; - } - code { - display:block; - text-align:center; - padding:.5em 0; - } - p { - margin-top:0; - } - .fa-exclamation-triangle, .icon-exclamation-triangle { - font-size:2em; - } - } - - > table { - flex-grow:1; - max-height:100%; - flex-basis:auto; - @include media($gtTabletP) { - flex-basis:0; - } - > thead { - flex-basis:2em; - } - > tbody { - //flex-basis:auto; - flex-basis:auto; - @include media($gtTabletP) { - flex-basis:0; - } - //-webkit-flex-basis:0%; - } - } - } - } - &.sidebar-open.view-c { - .stage { /* wong wong see https://github.com/philipwalton/flexbugs/issues/51 #janky */ - @include firefox-hack() { - max-width:calc(100% - 12em); - padding-right:0.5em; - } - @include spartan-hack() { - max-width:calc(100% - 12em); - padding-right:0.5em; - } - } - } - } - - > .proceed { - flex-grow:0; - flex-basis:4em; - min-height:4em; - width:100%; - } - @include media($gtTabletP) { - max-height:100%; - } - - html.touch &, html.no-js & { - .eureka-table { - //display:block; - } - } - - > footer { - margin-top:0.5em; - text-align:center; - border-top:1px solid lighten($borderColor,24%); - padding:0.5em; - @extend %flexible-parent; - > * { - @extend %growable; - @extend %unshrinkable; - margin-right:0.5em; - &:last-of-type { - margin-right:0; - } - } - } - -} - -html.no-touch { /* there's some weird bug with grunt-contrib-cssmin where if this is any further up and grouped with the rest of the styles it breaks the layout due to incorrect rules */ - .eureka-wrapper { - //display:flex; - //flex-direction:column; - } -} - -.eureka { - padding:0.5em 0.5em 0 0.5em; -} - -.eureka__row-image { - .icon-wrapper { - padding:0 2em; - line-height:5em; - border:1px solid currentColor; - display:inline-block; - font-size:1.6em; - .view-e & { - line-height:1.4em; - border:none; - font-size:1.4em; - padding:0; - } - } - .view-a .focused & { - @extend %justify-content-center; //@include justify-content(center); - } - code { - display:inline-block; - .view-b &, .view-c & { - text-align:center; - } - .view-d & { - text-align:inherit; - } - .view-a .focused & { - font-weight:bold; - text-align:center; - } - @include media($gtTabletP) { - text-align:left; - } - } -} - -.greedy { - width:100%; -} - -%clickable { - cursor:pointer; -} - -.clickable { - @extend %clickable; -} - -.eureka { - @extend %flexible-parent; //display:flex; - @extend %align-items-stretch; //@include align-items(stretch); - @extend %justify-content-flex-start; //@include justify-content(flex-start); - @extend %flex-wrap-nowrap; //flex-wrap:nowrap; - @extend %flex-direction-column; //flex-direction:column; - @include media($gtTabletP) { - @include flex-direction(row); - //max-height:80%; - } - > .pathbrowser { - @extend %ungrowable; // flex-grow:0; - @extend %unshrinkable; //@include flex-shrink(0); - - @include media($gtMobile) { - margin-right:0.5em; - padding-right:0.5em; - } - display:none; - @include media($gtTabletP) { - display:initial; - display:flex; - } - @extend %flexible-parent; // display:flex; - @extend %flex-direction-column; //flex-direction:column; - - @include media($tabletP) { - .pathbrowser__topbar, .tree, > footer button.create-new { - display:none !important; - } - } - - @include media($gtTabletP) { - @include flex-basis(12em); - } - - margin-bottom:0.5em; - @include media($gtTabletP) { - margin-bottom:0; - border-right:1px solid lighten($borderColor,24%); - } - > .pathbrowser__topbar { - @extend %bottom-seperated; - @extend %ungrowable; //flex-grow:0; - @extend %unshrinkable; //@include flex-shrink(0); - .mediasource-select-level-up { - select { - @extend %flex-grow-1; //@niclude flex-grow(1); - } - @extend %flexible-parent; //display:flex; - } - .level-up { - color:inherit; - padding:0 0 0 0.5em; - line-height:1.5em; - position:relative; - } - h3,h4,h5,h6 { - margin:0; - } - //@include flex-basis(2rem); - @extend %flex-direction-column; //flex-direction:column; - @extend %flexible-parent; //display:flex; - //height:2rem; - padding-right:0.5em; - @include media($gtTabletP) { - flex-basis:$topBarH; - } - - > select { - //flex-grow:1; - //flex-basis:100%; - } - } - > .tree { - margin-top:0.5em; - @extend %growable; - @extend %shrinkable; - font-size:0.86em; - overflow:auto; - flex-basis:0; - a { - color:currentColor; - text-decoration:none; - cursor:pointer; - position:relative; - &[contenteditable="true"] { - //cursor:inherit; - } - } - ul { - padding:0; - margin:0; - list-style-type:none; - } - li { - @extend %flexible-parent; // display:flex; - @extend %flex-wrap-wrap; //@include flex-wrap(wrap); - > .folder { - flex-grow:0; - } - > .path { - flex-grow:1; - padding-left:0.25em; - } - - > ul { - flex-basis:100%; - html.js & { - display:none; - } - padding:0 0 0 1em; - } - &:focus,&.active { - > .path { - font-weight:bold; - } - } - &.open { - html.js & { - > ul { - display:block; - } - } - } - } - } - > footer { - html.no-touch & { - &.drop { - @include media($gtTabletPH) { - @include flex-basis(220px); - } - } - } - @extend %flexible-parent; // display:flex; - @extend %flex-direction-column; //flex-direction:column; - @extend %unshrinkable; //@include flex-shrink(0); - html.js & { - @extend %top-seperated; - padding-bottom:0; - @include media($tabletP) { - border-width:0; - } - } - @include media($tabletP) { - border-width:0; - } - > nav { - padding-top:0.5em; - @include align-self(center); - width:100%; - } - padding-bottom:0; - .droparea { - padding-top:0.5em; - @include media($tabletPH) { - display:none; - } - @extend %flexible-parent; // display:flex; - @extend %flex-direction-column; //flex-direction:column; - @extend %growable; - @extend %bottom-seperated; - //@include flex-basis(); - } - - .dropzone { - @extend %growable; - $dzColor:darken(desaturate(#cddce6,100%),42%); - //min-height:8.6em; - font-size:1.4em; - background:desaturate(#cddce6,100%); - border:2px dashed desaturate(darken(#cddce6,8%),100%); - border-radius:0.4em; - //margin-bottom:0.25em; - text-align:center; - - @extend %flexible-parent; //display:flex; - @extend %justify-content-center; //@include justify-content(flex-center); - @extend %flex-direction-column; //flex-direction:column; - //@extend %align-items-center; // @include align-items(center); - - color:$dzColor; - - a { - color:darken($dzColor,12%); - } - - html.touch & { - display:none; - } - - &.uploading { - background:lighten(#b2b9c5,4%); - border-color:darken(#b2b9c5,26%); - } - - &.complete { - background:lighten(#aecd98,6%); - border-color:darken(#aecd98,6%); - color:darken(#aecd98,26%); - .progress { - background:lighten(#aecd98,6%); - @extend %justify-content-center; - } - a { - color:darken(darken(#aecd98,26%),8%); - } - } - - &.error { - background:lighten(#e75154,16%); - border-color:darken(#e75154,6%); - color:darken(#e75154,26%); - .progress { - background:lighten(#e75154,16%); - @extend %justify-content-center; - } - a { - color:darken(darken(#e75154,26%),8%); - } - } - - h2 { - margin:0 0 0.24em 0; - } - - p { - margin:0; - padding:0 1em 0 1em; - font-size:0.678em; - } - a { - text-decoration:none; - cursor:pointer; - } - - .progress { - flex-grow:1; - flex-basis:100%; - background:darken(desaturate(#cddce6,100%),4%); - - border-radius:0.4em; - - @extend %flexible-parent; //display:flex; - @extend %justify-content-flex-start; //@include justify-content(flex-center); - @extend %flex-direction-column; //flex-direction:column; - //@extend %align-items-center; // @include align-items(center); - - > .bar { - flex-grow:1; - min-height:1em; - position:relative; - background:lighten(#b2b9c5,4%); - &:first-of-type { - border-top-left-radius:0.4em; - border-top-right-radius:0.4em; - > div { - border-top-left-radius:0.4em; - border-top-right-radius:0.4em; - } - } - &:last-of-type { - border-bottom-left-radius:0.4em; - border-bottom-right-radius:0.4em; - > div { - border-bottom-left-radius:0.4em; - border-bottom-right-radius:0.4em; - } - } - &:nth-of-type(even) { - > div { - background:darken(#b2b9c5,12%); - border:1px solid darken(#b2b9c5,16%); - } - } - > div { - position:absolute; - top:0; - left:0; - bottom:0; - background:darken(#b2b9c5,8%); - border:1px solid darken(#b2b9c5,12%); - } - } - } - } - - button,.btn { - background:transparent; - color:inherit; - font-size:1.2em; - @include flex-basis(auto); - position:relative; - &.upload-files { - .audible { - @include media($tabletP) { - display:initial; - position:relative; - font-size:0.8em; - } - } - } - } - - flex-grow:0; - > nav { - @extend %flexible-parent; //display:flex; - @extend %justify-content-center; //@include justify-content(center); - @extend %ungrowable; //flex-grow:0; - > a,>form, >.form { - @extend %ungrowable; //flex-grow:0; - @include flex-basis(50%); - text-align:center; - - } - } - - } - } - > .stage { - flex-grow:1; - @include media($gtTabletP) { - flex-grow:1; - @include flex-shrink(1); - flex-basis:100%; - } - //flex-direction:column; - } - - &.view-c { - //@-moz-document url-prefix() { /* #janky #shame #hack */ - //overflow-x:auto; - //} - > .stage { - @extend %ungrowable; //flex-grow:0; - @include flex-shrink(1); - //@include flex-basis(auto); - max-width:100%; - @include media($gtMobile) { - flex-basis:100%; - } - } - } - - > .stage > .eureka__topbar { - @extend %ungrowable; //flex-grow:0; - @extend %flex-shrink-1; //@include flex-shrink(1); - @include media($gtTabletP) { - @include flex-basis($topBarH * 1.4); - } - .hack-flexbox & { - @include firefox-hack() { - @include flex-basis(14%); - } - } - @include media($gtTabletP) { - flex-basis:$topBarH; - } - //height:2rem; - - } - > .stage > .eureka-table { - @extend %flex-grow-1; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - //@include flex-basis(42em); - } - input[type="radio"] { - margin-right:0.2em; - } -} - -html.touch, html.no-js { - .eureka > .pathbrowser > footer .droparea { - display:none; - } -} - -.eureka__topbar-nav { - > a, .view-btns a { - padding:0.1em 0.2em 0 0.2em; - &.current { - background:rgb(220,220,220); - } - } - - //.view-c-btn { - //display:none !important; - //@-moz-document url-prefix() { /* #janky #shame #hack https://twitter.com/mrktps/status/581889013574868992 */ - //display:none; - //} - //} -} - -.eureka-table { - @extend %align-items-stretch; //@include align-items(stretch); - @extend %flexible-parent; //display:flex; - @extend %flex-direction-column; //flex-direction:column; - @extend %justify-content-center; //@include justify-content(flex-center); - - flex-grow:1; - display:flex; - - .view-e & { - overflow: auto; - display:block; - > table { - padding-top:0; - } - } - - > footer { - margin-top:1em; - } - > table { - html.no-flexbox { - display:block; - } - @include media($gtTabletP) { - height:100%; - } - - @extend %growable; //flex-grow:1; - @extend %shrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; //@include flex-basis(auto); - //max-height:38em; - @extend %align-items-stretch; //@include align-items(stretch); - @extend %flexible-parent; //display:flex; - @extend %flex-direction-column; //flex-direction:column; - @extend %justify-content-center; //@include justify-content(flex-center); - - .view-a & { - @include media($tabletP) { - //display: block; - /* Force table to not be like tables anymore */ - thead, tbody, th, td, tr { - //display: block; - } - - /* Hide table headers (but not display: none;, for accessibility) */ - thead tr { - position: absolute; - top: -9999px; - left: -9999px; - } - - tr:not(.contextual) { - td { - /* Behave like a "row" */ - border: none; - border-bottom: 1px solid #eee; - position: relative; - padding-left: 35%; - } - - td.eureka__row-image { - padding-left:0; - } - - td:before { - /* Now like a table header */ - position: absolute; - /* Top/left values mimic padding */ - top: 0.1em; - left: 0.1em; - width: 25%; - padding-left:0.5em; - padding-right: 0.5em; - white-space: nowrap; - } - } - - /* - Label the data - */ - td:nth-of-type(1):before { - content: "Name"; - left:-99999em !important; - top:-99999em !important; - } - td:nth-of-type(2):before { content: "Dimensions"; } - td:nth-of-type(3):before { content: "File Size"; } - td:nth-of-type(4):before { content: "Edited On"; } - tr.contextual td:before { display:none } - } - - > thead > tr > th { - &:last-of-type { - padding-right:2em; - } - } - } - - .view-e & { - @extend %table; - @extend %very-greedy; - } - - > thead { - .view-a & { - display:block; - } - .view-b &, .view-c &, .view-d & { - display:none; - } - .view-e & { - @extend %thead; - position:sticky; - top:-2px; - z-index:$topMost; - background:$bg; - } - @extend %ungrowable; //flex-grow:0; - @extend %unshrinkable; //@include flex-shrink(0); - flex-basis:2em; - - @extend %flexible-parent; //display:flex; - > tr { - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %justify-content-flex-end; //@include justify-content(flex-end); - flex-basis:100%; - - @extend %flexible-parent; //display:flex; - .view-e & { - @extend %tr; - } - > th { - //@extend %growable; //flex-grow:1; - flex-grow:0; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; //@include flex-basis(auto); - text-align:left; - margin:0 1em; - padding:0 0.4em; - &:last-of-type { - margin-right:0; - } - .view-a & { - text-align:right; - padding-right:1em; - &:first-of-type { - //@include flex-grow(12); /* #janky #shame */ - } - } - .view-e & { - @extend %th; - text-align:right; - padding-right::1em; - &:first-of-type { - text-align:left; - .fa-sort { - position:static; - } - } - } - } - } - - .view-a & { - @extend %justify-content-flex-end; //@include justify-content(flex-end); - } - - } - > tbody { - @extend %growable; //flex-grow:1; - @extend %shrinkable; //@include flex-shrink(1); - //max-height:36em; - @extend %flex-basis-auto; //@include flex-basis(auto); - text-align:center; - display:block; - @extend %align-items-stretch; //@include align-items(stretch); - @extend %flexible-parent; //display:flex; - @extend %flex-direction-row; //@include flex-direction(row); - @extend %justify-content-center; //@include justify-content(flex-center); - @extend %flex-wrap-wrap; //@include flex-wrap(wrap); - - flex-wrap:nowrap; - -webkit-flex-basis:0%; - flex-basis:0; - overflow-y:auto; - .view-a & { - > tr { - html.no-flexbox { - display:block; - } - - @extend %growable; //flex-grow:1; - @extend %shrinkable; //@include flex-shrink(0); - @extend %flex-basis-all; //flex-basis:100%; - - .pathname { - padding-right:1em; - } - } - } - - .view-b & { - @extend %align-items-flex-start; //@include align-items(flex-start); - //@include box-pack(center); - @extend %justify-content-flex-start; //@include justify-content(flex-start); - @extend %flex-wrap-wrap; //@include flex-wrap(wrap); - - //overflow-y:auto; - //overflow-x:hidden; - - img { - max-width:100%; - height:auto; - } - } - .view-c & { - @extend %align-items-stretch; //@include align-items(stretch); - @extend %flexible-parent; //display:flex; - @extend %flex-direction-row; //@include flex-direction(row); - @include justify-content(flex-center); - @extend %flex-wrap-nowrap; //flex-wrap:nowrap; - - padding-bottom:1.2em; - - overflow-y:hidden; - overflow-x:auto; - - //@-moz-document url-prefix() { /* #janky #shame #hack */ - //overflow-x:hidden; - //} - } - .view-d & { - @include justify-content(flex-center); - @extend %flex-direction-row; //@include flex-direction(row); - @extend %align-items-center; //@include align-items(center); - > tr { - max-width:100%; - margin:0 0.25em 0.5em 0.25em; - } - } - - .view-e & { - @extend %tbody; - } - - > tr { - cursor:default; - display:inline-block; - margin:0; - padding:0; - @extend %ungrowable; //flex-grow:0; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-all; //flex-basis:100%; - @extend %align-items-flex-start; //@include align-self(flex-start); - .view-d & { - @extend %flex-basis-auto; //@include flex-basis(auto); - } - .view-e & { - @extend %tr; - } - > td { - html.no-flexbox & { - display:block; - } - @extend %ungrowable; //flex-grow:0; - @extend %unshrinkable; //@include flex-shrink(0); - @include flex-basis(10em); - overflow:hidden; - text-align:center; - - .view-a & { - @extend %flexible-parent; //display:flex; - @extend %justify-content-flex-end; //@include justify-content(flex-end); - - &.eureka__row-image { - @extend %flex-direction-column; //flex-direction:column; - @include media($gtTabletP) { - @include flex-direction(row); - } - } - } - - .view-b & { - display:none; - .pathname { - display:none; - } - &.eureka__row-image { - display:inline-block; - } - } - - .view-c &, .view-d & { - @extend %growable; //flex-grow:1; - @extend %flex-basis-all; //flex-basis:100%; - &:not(.eureka__row-image) { - display:none; - } - - .pathname { - display:none; - } - } - - .view-d & { - @extend %flex-basis-auto; //@include flex-basis(auto); - } - - .view-e & { - @extend %td; - text-align:right; - &.eureka__row-image { - text-align:left; - } - } - } - - .view-a & { - @extend %align-items-stretch; //@include align-items(stretch); - /* what is happening here */ - //display:flex; - /* what is happening here?? */ - @extend %flexible-parent; //display:flex; - @extend %flex-direction-column; //flex-direction:column; - @include media($gtTabletP) { - @include flex-direction(row); - } - > td { - @include flex(1); - @extend %flexible-parent; //display:flex; - @extend %align-items-stretch; //@include align-items(stretch); - @extend %flex-wrap-nowrap; //flex-wrap:nowrap; - min-height:1.6em; - padding-top:0.3em; - padding-right:0.5em; - text-align:left; - @include media($gtTabletP) { - min-height:none; - } - > .image { - @include flex-grow(4); - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; //@include flex-basis(auto); - - //@extend %flexible-parent; //display:flex; - //@extend %flex-direction-row; //@include flex-direction(row); - - > input[type="radio"] { - @extend %ungrowable; //flex-grow:0; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; //@include flex-basis(auto); - } - - > img { - //@extend %ungrowable; //flex-grow:0; - //@extend %unshrinkable; //@include flex-shrink(0); - //@extend %flex-basis-auto; //@include flex-basis(auto); - } - } - > .pathname { - @extend %ungrowable; //flex-grow:0; - } - } - > td.eureka__row-image { - @include flex-grow(4); - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-wrap-wrap; // @include flex-wrap(wrap); - text-align:left; - overflow:hidden; - img { - width:auto; - margin:0; - max-height:140px; - } - code { - @include flex-shrink(0); - } - //flex-basis:100%; - } - } - - &:focus, &.focused { - .view-b &, .view-c & { - > td.eureka__row-image { - text-align:center; - } - } - .view-a.enlarge-focused-rows & { - > td.eureka__row-image { - img { - max-height:none; - } - } - } - } - &:focus, &.focused { /* , &:hover */ - .view-e & { - > td.eureka__row-image { - .image { - img,.img { - max-height:3em; - } - } - } - } - } - - .view-c & { - @include flex-basis(8em); - overflow-x:hidden; - &.focused, &:focus { - @extend %flex-basis-auto; //@include flex-basis(auto); - } - } - - .view-d & { - > td.eureka__row-image { - text-align:center; - } - } - - .view-e & { - > td.eureka__row-image { - .image { - img,.img { - max-height:2em; - margin-right:4px; - } - } - } - } - - .view-e.no-images-on-list & { - > td.eureka__row-image { - .image { - img,.img { - display:none; - } - } - } - } - - .view-b & { - flex-basis:200px; - @include flex-shrink(1); - .image { - max-width:200px; - } - &.focused, &:focus { - .image { - max-width:none; - } - } - } - - .view-b & { - flex-basis:200px; - margin:2px; - &.focused, &:focus { - //opacity:0.5; - @extend %flex-basis-all; //flex-basis:100%; - td > { - flex-basis:100%; - } - } - } - - } - } - } - - .image { - display:inline-block; - position:relative; - .view-b &, .view-c & { - display:block; - } - - height:auto; - } - a { - @extend %subtle-link; - } - time { - @extend %monospaced; - } - table { - padding-top:1em; - thead { - th { - position:relative; - padding:0 1em 0 0; - text-align:right; - } - .fa-sort { - position:absolute; - top:0.2em; - right:0; - @extend %smaller; - cursor:pointer; - } - } - tbody { - //max-height:38em; - @include media($gtTabletP) { - //overflow-y:auto; - } - .view-c & { - //overflow:auto; - } - tr { - td { - text-align:left; - .view-a &, .view-b &, .view-c & { - &:first-of-type { - //text-align:left; - } - } - .view-d & { - &:first-of-type { - text-align:center; - } - } - } - } - } - } -} - -.eureka-table > table > tbody > tr.contextual { - line-height:2em; - .view-b &, .view-c &, .view-d & { - display:none !important; // ok to hide even from #a11y - } - html.js &, .view-b &, .view-c &, .view-d & { - @extend %accessibly-hidden; - } - .view-a & { - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-none; //flex-basis:0; - &.visible { - @extend %visible-contextual; - } - } - .view-e & { - &.visible { - @extend %visible-contextual; - } - } - text-align:left; - - @extend %align-items-flex-start; //@include justify-content(flex-start); - - background:$contextualBG; - border-top:1px solid $contextualBorder; - border-bottom:1px solid $contextualBorder; - color:$contextualColor; - nav { - padding:0 0.5em; - @include flex(1); - } -} - -.view-a tr.eureka__row, .view-e tr.eureka__row { - &:focus,&.focused { - + tr.contextual { - html.js & { - @extend %visible-contextual; - } - } - } -} - -tbody.filtered { - > tr { - &:not(.visible) { - display:none; - } - } -} - -.flexible_row { - @extend %flexible-parent; //display:flex; - @extend %flex-wrap-wrap; //@include flex-wrap(wrap); - @extend %justify-content-flex-start; //@include justify-content(flex-start); - @extend %align-items-flex-start; //@include align-items(flex-start); - @include media($gtTabletP) { - //@include flex-direction(row); - @include flex-wrap(no-wrap); - @include justify-content(center); - @include align-items(center); - } - - text-align:center; - > * { - display:inline-block; - @include flex(1 0 auto); - margin:0; //0.2em 0; - @include media($gtTabletP) { - margin:0; - } - } - > form.tag { - text-align:left; - - } -} - -footer.proceed { - button,.btn { - font-size:1.24em; - - } -} - -.contextual__nav { - > a { - margin-right:0.5em; - text-align:center; - cursor:pointer; - display:block; - border-top:1px solid transparent; - border-bottom:1px solid transparent; - &:focus,&.focused,&:hover { - color:$contextualBG; - background:$contextualColor; - border-top:1px solid $contextualBorder; - } - &.choose { - @extend %go; - } - &.dangerous { - @extend %dangerous; - } - } - > form.tag { - @extend %flexible-parent; //display:flex; - @extend %justify-content-center; //@include justify-content(center); - @extend %align-items-center; //@include align-items(center); - padding:0 1em; - > label { - @extend %ungrowable; //@include flex(0); - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; //@include flex-basis(auto); - } - > input[type="text"] { - @include flex-grow(4); - @extend %shrinkable; //@include flex-shrink(1); - @extend %flex-basis-auto; //@include flex-basis(auto); - margin:0 0.5em; - } - > button[type="submit"] { - @extend %ungrowable; //@include flex(0); - @extend %unshrinkable; //@include flex-shrink(0); - flex-basis:4em; - } - } - button,.btn { - padding:0; - } -} - -tr.contextual { - padding-top:0 !important; //#janky #shame - padding-bottom:0 !important; - > td { - padding-top:0 !important; - padding-bottom:0 !important; - > form { - @extend %flexible-parent; //display:flex; - @extend %align-items-center; //@include align-items(center); - } - } -} - -.eureka__topbar { - @extend %bottom-seperated; - //margin-bottom:1em; - font-size:1.2em; - - @extend %align-items-stretch; //@include align-items(stretch); - @extend %flexible-parent; //display:flex; - @extend %flex-direction-column; //flex-direction:column; - @extend %justify-content-flex-start; //@include justify-content(flex-start); - @include media($gtTabletP) { - @include flex-direction(row); - } - .eureka__topbar-nav { - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-wrappable; //@include flex-wrap(wrap); - @extend %flex-direction-column; //flex-direction:column; - - a { - cursor:pointer; - } - - > header { - @extend %flexible-parent; //display:flex; - @extend %flex-unwrappable; //flex-wrap:nowrap; - @extend %flex-direction-column; //flex-direction:column; - @extend %chrome-flexbox-hack; - @include media($gtMobile) { - @include flex-direction(row); - } - > h4 { - @extend %growable; //flex-grow:1; - width:100%; - text-align:center; - margin:0.5em 0; - @include media($gtMobile) { - width:auto; - text-align:left; - @include flex-grow(4); - margin:0; - } - .mediasource-title { - font-weight:normal; - font-style:italic; - padding-left:0.678em; - .sidebar-open & { - display:none; - } - } - } - > form { - @extend %growable; //flex-grow:1; - @extend %flexible-parent; //display:flex; - @extend %align-self-flex-end; //@include align-self(flex-end); - width:100%; - > input[type="search"] { - @extend %growable; //flex-grow:1; - max-width:100%; - font-size:1em; - max-width:100%; - padding-left:0.5em; - padding-right:0.5em; - } - @include media($gtMobile) { - width:auto; - } - - } - } - - > .eureka__topbar-nav__select { - @extend %flexible-parent; //display:flex; - @extend %align-items-center; //@include align-items(center); - @extend %justify-content-flex-start; //@include justify-content(flex-start); - @extend %flex-direction-column; //sflex-direction:column; - @extend %chrome-flexbox-hack; - @include media($gtMobile) { - @include flex-direction(row); - } - padding-top:0.5em; - } - - @include media($gtMobile) { - //@include flex-basis(14em); - flex-wrap:nowrap; - } - - @extend %flexible-parent; //display:flex; - > a, .view-btns a, .browse-select { - @include media($gtTabletP) { - margin-right:0.4em; - } - html.no-flexbox { - display:inline-block; - } - } - .pathbrowser_toggle { - width:12%; - min-width:1.2em; - @extend %align-self-flex-start; //@include align-self(flex-start); - @include media($tabletP) { - display:none; - } - @include media($gtTabletP) { - width:auto; - } - } - .view-btns { - @extend %flexible-parent; //display:flex; - //@include align-items(center); - @include justify-content(center); - @extend %growable; //flex-grow:1; - @extend %align-self-flex-end; //@include align-self(flex-end); - width:100%; - text-align:center; - > nav { - display:flex; - @include media($mobile) { - flex-basis:100%; - > a { - flex-grow:1; - } - } - } - @include media($gtMobile) { - width:auto; - @include flex-grow(12); - @include justify-content(flex-end); - } - a { - margin-right:0; - @extend %growable; //flex-grow(1); - display:inline-block; - cursor:pointer; - position:relative; - color:currentColor; - } - } - .browse-select { - width:88%; - @extend %flexible-parent; //display:flex; - @extend %align-items-center; //@include align-items(center); - @extend %justify-content-center; //@include justify-content(center); - @extend %flex-direction-column; //flex-direction:column; - margin-bottom:1em; - @include media($gtMobile) { - margin-bottom:0; - } - @include media($gtMobile) { - width:auto; - margin-bottom:0; - //@include flex-basis(14em); - @include align-items(flex-start); - @include justify-content(flex-start); - @include flex-direction(row); - padding-left:1em; - } - @include media($gtTabletP) { - &.tablet-p-hidden { - display:none; - } - } - - @include media($gtMobile) { - padding-right:0.5em; - margin-right:0; - //margin-right:0.7em; - //border-right:1px solid $borderColor; - } - - > label { - text-align:center; - @include media($gtMobile) { - text-align:inherit; - } - } - - form { - //@include flex(4); - //margin-top:0.2em; - button.nued { - background:$black; - color:$white; - .fa-chevron-right { - color:currentColor; - } - } - } - .browsing { - margin-right:0.5em; - } - select { - margin:0; - } - .fa { - color:lighten($black,40%); - } - } - .browse-select, .upload-form { - > label { - font-size:0.72em; - line-height:2em; - margin:0 0.5em 0 0 !important; - //@include flex(1); - } - } - .upload-form { - @extend %flexible-parent; //display:flex; - margin-bottom:1em; - /*html.no-touch & { - @include media($mobile) { - display:none; // #janky? - } - } - html.no-touch .sidebar-open & { - @include media($mobile) { - display:none; // #janky? - } - }*/ - @include media($gtMobile) { - @include left-seperated; - margin-bottom:0; - } - //@extend %justify-content-center; //@include justify-content(center); - @include flex-grow(4); - - .sidebar-open & { - html.js & { - @include media($gtTabletP) { - position:absolute; - top:-99999em; - left:-99999em; - } - } - } - } - > a { - html.js & { - @extend %clickable; - } - html.no-js & { - color:lighten($black,40%); - } - } - } - > form { - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; //@include flex-basis(auto); - - @extend %align-items-stretch; //@include align-items(stretch); - @extend %flexible-parent; //display:flex; - @extend %flex-direction-row; //@include flex-direction(row); - @extend %justify-content-flex-end; //@include justify-content(flex-end); - margin-top:0.5em; - @include media($gtTabletP) { - margin-top:0; - } - > input { - font-size:inherit; - padding:0.1em 0.2em; - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; //@include flex-basis(auto); - - max-width:32em; - } - } -} - -.eureka__row-image { - .view-d & { - @extend %flexible-parent; //display:flex; - @extend %flex-direction-column; //flex-direction:column; - @extend %flex-unwrappable; //flex-wrap:nowrap; - > .image { - text-align:center; - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; // @include flex-basis(auto); - img { - margin:0 auto; - } - } - > code { - @extend %growable; //flex-grow:1; - @extend %unshrinkable; //@include flex-shrink(0); - @extend %flex-basis-auto; // @include flex-basis(auto); - } - } - .pathname { - //display:block; - white-space:nowrap; - .view-b &, .view-c & { - display:block; - text-align:right; - } - } - input[type="radio"] { - margin:1em 1em 0 0.5em; - } -} diff --git a/_build/scss/no-flexbox.scss b/_build/scss/no-flexbox.scss deleted file mode 100644 index c131b74..0000000 --- a/_build/scss/no-flexbox.scss +++ /dev/null @@ -1,75 +0,0 @@ -@import "bourbon/bourbon"; -@import "grid-settings"; - -$border-box-sizing:false; -@import "neat/neat"; - -@import "spec/tacular"; - -html.no-flexbox { - .eureka-wrapper { - background:teal; - overflow-y:scroll; - display:table; - footer.proceed { - display:table-row; - button { - display:table-cell; - } - } - } - .eureka { - .eureka-table { - table { - display:table; - } - thead { - display:initial; - } - tbody { - display:initial; - max-height:200px; - } - } - display:table-row; - width:100%; - .pathbrowser { - min-width:12em; - footer nav { - @extend %clearfix; - button, form { - width:44%; - float:left; - } - form { - float:right; - } - } - } - .pathbrowser, .stage { - display:table-cell; - } - .droparea { - display:none; - } - .view-btns { - display:none; - } - } - - .eureka-table > table { - width:100%; - } - - .eureka-table > table > tbody > tr.contextual, .view-b .eureka-table > table > tbody > tr.contextual, .view-c .eureka-table > table > tbody > tr.contextual, .view-d .eureka-table > table > tbody > tr.contextual { - position:relative; - } - - .flexible_row { - > a { - width:20%; - float:left; - } - } - -} \ No newline at end of file diff --git a/_build/scss/spec/_tacular.scss b/_build/scss/spec/_tacular.scss deleted file mode 100644 index e572356..0000000 --- a/_build/scss/spec/_tacular.scss +++ /dev/null @@ -1,268 +0,0 @@ -$desktop: max-width 990px 12 !default; -$cinema: max-width 1400px 12 !default; -$iphoneP: max-width 480px 4 !default; -$mobile: max-width 640px 4 !default; -$tabletP: max-width 768px 12 !default; -$tabletL: max-width 1024px 12 !default; - -$gtDesktop: min-width 991px 12 !default; -$gtCinema: min-width 1401px 12 !default; -$gtiphoneP: min-width 481px 4 !default; -$gtMobile: min-width 641px 12 !default; -$gtTabletP: min-width 769px 12 !default; -$gtTabletL: min-width 1025px 12 !default; - -$tabletPH: max-height 768px 4 !default; -$gtTabletPH: min-height 769px 4 !default; - -@mixin luminosity($brightness:normal) { - @media screen and (luminosity:$brightness) { - @content; - } -} - -@mixin luminosity-js($brightness:"normal") { - - @if $brightness == "dim" { - body[data-luminosity="dim"] { /* luminosity-js */ - @content; - } - } -} - -$topMost:99999 !default; -$too-wide:em(1200) !default; - -%greedy { - width:100%; - @include media($too-wide) { - width:auto; - } -} - -%very-greedy { - width:100%; -} - -%code { - font-family: monospace, serif; -} - -%clickable { - cursor:pointer; -} - -%lightcaps { - text-transform:uppercase; - font-size:0.86em; - font-weight:inherit; -} - -%smallcaps { - @extend %lightcaps; - font-weight:bold; -} - -%unaligned { - text-align:center; -} - -%shrinkable { - max-width:100%; -} - -%contained { - max-width:100%; -} - -%vulnerable { - margin:0; -} - -@mixin dropzone($bg:rgb(230,230,230), $minHeight:6em, $borderRadius:1.4em, $border:0.2em dashed darken(rgb(230,230,230),12%)) { - background:$bg; - min-height:$minHeight; - border-radius:$borderRadius; - border:$border; -} - -@mixin emphatic-link($fontSize:0.82em) { - @extend %smallcaps; - font-size:$fontSize; -} - -@mixin tip($fontSize:0.678em) { - @extend %clickable; - @extend %smallcaps; - font-size:$fontSize; -} - -/* -http://stackoverflow.com/a/17181946 -*/ -@mixin placeholder { - @include optional-at-root('::-webkit-input-placeholder') { - @content; - } - - @include optional-at-root(':-moz-placeholder') { - @content; - } - - @include optional-at-root('::-moz-placeholder') { - @content; - } - - @include optional-at-root(':-ms-input-placeholder') { - @content; - } -} - -/* -http://www.phase2technology.com/blog/exploring-maps-in-sass-3-3/ -*/ -@mixin print-styles($map, $keys...){ - $i: 1; - $length: length($keys); - @while $length >= $i { - $map: map-get($map, nth($keys, $i)); - $i: $i + 1; - } - - @each $property, $value in $map { - @if type-of($value) != map { - #{$property}: $value; - } - } -} - -@mixin scrollable($props:( - maxHeight:8em, - overflowY:auto, - maxWidth:100%, - overflowX:auto -)) { - $maxHeight:map-get($props,maxHeight); - $overflowY:map-get($props,overflowY); - $maxWidth:map-get($props,maxWidth); - $overflowX:map-get($props,overflowX); - - @include media($gtMobile) { - @if $maxHeight != null { max-height:$maxHeight; } - @if $overflowY != null { overflow-y:$overflowY; } - - @if $maxWidth != null { max-width:maxWidth; } - @if $overflowX != null { overflow-x:overflowX; } - } -} - -@mixin table-border-radius-fallback($borderRadius:0.5em) { - @if $borderRadius != null { - *border-collapse: collapse; /* IE7 and lower */ - border-collapse: separate !important; - border-spacing: 0; - border-radius:$borderRadius; - } -} - -@mixin pretty-table($props:( - tablePadding:0 0.2em 0.2em 0.2em, - gutter:1em, - paddingTop:1em, - paddingBottom:0.6em, - border:1px solid darken(rgb(240,240,240),12%), - borderRadius:0.5em, - trOdd:null, - trEven:( - background:rgb(240,240,240), - border-top:1px solid darken(rgb(240,240,240),12%), - border-bottom:1px solid darken(rgb(240,240,240),12%) - ) - )) { - - $tablePadding:map-get($props,tablePadding); - $gutter:map-get($props,gutter); - $paddingTop:map-get($props,paddingTop); - $paddingBottom:map-get($props,paddingBottom); - $border:map-get($props,border); - $borderRadius:map-get($props,borderRadius); - $trEven:map-get($props,trEven); - $trOdd:map-get($props,trOdd); - - @if $tablePadding != null { padding:$tablePadding; } - @if $border != null { border:$border; } - @if $borderRadius != null { @include table-border-radius-fallback($borderRadius); } - @if $paddingTop != null { - thead > tr:first-of-type { - th { - padding-top:$paddingTop; - } - } - } - @if $paddingBottom != null { - tbody > tr:last-of-type { - td { - padding-bottom:$paddingBottom; - } - } - } - @if $gutter != null { - > thead tr, > tbody tr { - > td, > th { - &:first-of-type { - padding-left:$gutter; - padding-right:$gutter; - } - } - } - } - @if type-of($trEven) == map { - > tbody > tr:nth-child(even) { - @include print-styles($trEven); - } - } - @if type-of($trOdd) == map { - > tbody > tr:nth-child(odd) { - @include print-styles($trOdd); - } - } -} - -%dropzone { - @include dropzone(); -} - -%emphatic-link { - @include emphatic-link(); -} - -%tip { - @include tip(); -} - -%accessibly-hidden { - position: absolute; - height: 1px; width: 1px; - overflow: hidden; - top:0; - clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ - clip: rect(1px, 1px, 1px, 1px); -} - -// Clearfix: contain floats - -%clearfix { - .lt-ie8 { - *zoom: 1; - } - &:before, - &:after { - content: " "; - /* 1 */ - display: table; - /* 2 */ - } - &:after { - clear: both; - } -} \ No newline at end of file diff --git a/_build/ts/ajax.d.ts b/_build/ts/ajax.d.ts deleted file mode 100644 index ac9855e..0000000 --- a/_build/ts/ajax.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare var AJAX:any; \ No newline at end of file diff --git a/_build/ts/ajax.ts b/_build/ts/ajax.ts deleted file mode 100644 index caeb5c6..0000000 --- a/_build/ts/ajax.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* http://stackoverflow.com/a/18078705/4671250 */ -class AJAX { - private x:XMLHttpRequest; - - constructor() { - this.x = new XMLHttpRequest(); - } - //send(method:any, url:string, data:any, callback:any, sync:boolean = true, headers = []) { - send(method:any, url:string, data:any, callback:any, sync:boolean = true, headers = []) { - var that = this; - this.x.open(method, url, sync); - this.x.onreadystatechange = function() { - if (that.x.readyState == 4) { - callback(this.responseText); - } - }; - if (method == 'POST') { - this.x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); - } - - if (headers !== undefined && headers !== null && headers.length !== undefined && headers.length) { - for(var i = 0; i < headers.length; i++) { - var obj = headers[i]; - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - this.x.setRequestHeader(key,obj[key]); - } - } - } - } - - this.x.send(data) - } - //get(url:string, data:any, callback:any, sync:boolean = true, headers = []) { - get(url:string, data:any, callback:any, sync:boolean = true, headers = []) { - var query = []; - for (var key in data) { - query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); - } - - this.send('GET', url + ((url.indexOf('?') > 0) ? '&' : '?') + query.join('&'), null, callback, sync, headers); - } - post(url:string, data:any, callback:any, sync:boolean = true) { - var query = []; - for (var key in data) { - query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); - } - // send(method:any, url:string, data:any, callback:any, sync:boolean = true, headers = []) { - this.send('POST', url, query.join('&'), callback, sync, (data.headers !== undefined ? data.headers : null)) - } - setHeaders(headers) { - var that = this; - - for(var i = 0; i < headers.length; i++) { - var obj = headers[i]; - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - this.x.setRequestHeader(key,obj[key]); - } - } - } - } -} \ No newline at end of file diff --git a/_build/ts/eureka.typescript.ts b/_build/ts/eureka.typescript.ts deleted file mode 100644 index 7a3972a..0000000 --- a/_build/ts/eureka.typescript.ts +++ /dev/null @@ -1,2827 +0,0 @@ -/// -/// -/// -declare var html5Upload; // tell typescript compiler we can assume this will be set http://stackoverflow.com/a/26275242/4671250 - -var _EUREKA = { - src:(function(){ - var scripts = document.getElementsByTagName("script"), - src = scripts[scripts.length-1].src; - return src; - })() -}; - -class Eureka { - private _model:EurekaModel; - private _view:EurekaView; - private _controller:EurekaController; - - constructor(public opts:Object) { - var that = this; - - this._model = new EurekaModel(opts); // give the model the data - this._view = new EurekaView(); // keep the view stupid - this._controller = new EurekaController({ // create a controller that controls the two - model: this._model, - view: this._view - }); - - // set references to the controller respectively - this._model.setController(this._controller); - this._view.setController(this._controller); - - this._view.init(); - this._view.paint(); - this._controller.init(); - - - this.fetch(true, false, true ); - - this._view.getElement().addEventListener('EurekaFilesUploaded',function(e){ - that._model.setCurrentDirectory(that._model.getCurrentDirectory(),true,true,true); // trigger a repaint - }); - } - fetch(dispatch:boolean = true, setLocalStorage:boolean = true, dispatchIdenticalValues:boolean = true) { - var _shouldFetchDirectory = (this._model.getCurrentMediaSource() !== undefined && this._model.getCurrentMediaSource() !== '') ? true : false; // this._model.getCurrentMediaSource() !== '/' && - _shouldFetchDirectory = true; - if(this._model.getDebug()) console.log('fetch ', dispatch, setLocalStorage, dispatchIdenticalValues); - if(this._model.getDebug()) console.log('_shouldFetchDirectory ' + _shouldFetchDirectory); - //setCurrentMediaSource(currentMediaSource:string, dispatch:boolean = true, setLocalStorage:boolean = true, clearDirectory:boolean = true, dispatchIdenticalValues:boolean = false) - this._model.setCurrentMediaSource(this._model.getCurrentMediaSource(), dispatch, setLocalStorage, false, dispatchIdenticalValues); - if(_shouldFetchDirectory) { - this._model.setCurrentDirectory(this._model.getCurrentDirectory(),dispatch,setLocalStorage,dispatchIdenticalValues); - } - } - getElement() : HTMLElement { - return this._view.getElement(); - } -} - -interface IEurekaMediaSource { - getID() : string; - setID(id:string) : void; - - getTitle() : string; - setTitle(title:string) : void; - - toString() : string; -} - -class EurekaMediaSource implements IEurekaMediaSource { - private _id:string = ''; - private _title:string = ''; - - getID():string { - return this._id; - } - setID(id:string) { - this._id = id; - } - - getTitle():string { - return this._title; - } - setTitle(title:string) { - this._title = title; - } - - constructor(public opts:any) { - if(opts.id !== undefined) this._id = opts.id; - if(opts.title !== undefined) this._title = opts.title; - } - - toString() { - return this.getID(); - } -} - -class EurekaModel { - private _controller:EurekaController; - private _uid:string = 'media-browser_0'; - private _storagePrefix:string = 'eureka_'; - private _sources:Array = []; - private _navTreeHidden:boolean = false; - private _useLocalStorage:boolean = true; - private _mediaSource:string; - private _currentDirectory:string = undefined; - private _currentView:string = 'view-a'; - private _locale:string = 'en-US'; - private _selected:string = ''; - private _editable:boolean = true; - private _headers:Array = []; - private _debug:boolean = false; - private _confirmBeforeDelete:boolean = true; - private _fileUploadURL:string; - private _displayFullTreePaths:boolean = false; - private _allowRename:boolean = true; - private _allowDelete:boolean = true; - private _touch:boolean = false; - private _prependOptGroupsWithRootOption:boolean = true; - private _showDimensionsColumn:boolean = true; - private _webWorkersPath:string = ''; - - private _directoryRequestURL:string = ''; - private _directoryChildrenRequestURL:string = ''; - private _listSourceRequestURL:string = ''; - private _listSourcesRequestURL:string = ''; - private _useWebWorkers:boolean = false; - private _sortMediaSources:boolean = false; - private _fullscreenTarget:string = '.eureka-wrapper'; - private _mediaSourcesListInit:boolean = false; - private _mediaSourceInit:boolean = false; - - public static get EurekaFoundIt():string { return "EurekaFoundIt"; } - public static get EurekaFileRename():string { return "EurekaFileRename"; } - public static get EurekaUnlink():string { return "EurekaUnlink"; } - public static get EurekaDirectoryCreated():string { return "EurekaDirectoryCreated"; } - public static get EurekaDirectoryOpened():string { return "EurekaDirectoryOpened"; } - public static get EurekaDirectoryClosed():string { return "EurekaDirectoryClosed"; } - - public static get EurekaDirectoryChanged():string { return "EurekaDirectoryChanged"; } - public static get EurekaMediaSourceInit():string { return "EurekaMediaSourceInit"; } - public static get EurekaMediaSourceChange():string { return "EurekaMediaSourceChange"; } - public static get EurekaMediaSourcesListInit():string { return "EurekaMediaSourcesListInit"; } - public static get EurekaMediaSourcesListChange():string { return "EurekaMediaSourcesListChange"; } - public static get EurekaViewChange():string { return "EurekaViewChange"; } - public static get EurekaFilesUploaded():string { return "EurekaFilesUploaded"; } - public static get EurekaCanceled():string { return "EurekaCanceled"; } - public static get EurekaTreePainted():string { return "EurekaTreePainted"; } - - constructor(opts:any) { - if(opts.uid !== undefined) this._uid = opts.uid; - if(opts.storagePrefix !== undefined) this._storagePrefix = opts.storagePrefix; - if(opts.locale !== undefined) this._locale = opts.locale; - if(opts.mediaSource !== undefined) this._mediaSource = opts.mediaSource; - if(opts.currentDirectory !== undefined) this._currentDirectory = opts.currentDirectory; - if(opts.headers !== undefined) this._headers = opts.headers; - - if(opts.navTreeHidden !== undefined) this._navTreeHidden = opts.navTreeHidden; - if(opts.useLocalStorage !== undefined) this._useLocalStorage = opts.useLocalStorage; - if(opts.currentView !== undefined) this._currentView = opts.currentView; - if(opts.selected !== undefined) this._selected = opts.selected; - if(opts.displayFullTreePaths !== undefined) this._displayFullTreePaths = opts.displayFullTreePaths; - if(opts.allowRename !== undefined) this._allowRename = opts.allowRename; - if(opts.allowDelete !== undefined) this._allowDelete = opts.allowDelete; - - if(opts.directoryRequestURL !== undefined) this._directoryRequestURL = opts.directoryRequestURL; - this._directoryChildrenRequestURL = (opts.directoryChildrenRequestURL !== undefined) ? opts.directoryChildrenRequestURL : this._directoryRequestURL; - if(opts.listSourceRequestURL !== undefined) this._listSourceRequestURL = opts.listSourceRequestURL; - if(opts.listSourcesRequestURL !== undefined) this._listSourcesRequestURL = opts.listSourcesRequestURL; - if(opts.fileUploadURL !== undefined) this._fileUploadURL = opts.fileUploadURL; - if(opts.showDimensionsColumn !== undefined) this._showDimensionsColumn = opts.showDimensionsColumn; - if(opts.useWebWorkers !== undefined) this._useWebWorkers = ((window).Worker) ? opts.useWebWorkers : false; - if(opts.sortMediaSources !== undefined) this._sortMediaSources = opts.sortMediaSources; - - if(opts.debug === true) this._debug = opts.debug; - if(opts.confirmBeforeDelete !== undefined) this._confirmBeforeDelete = opts.confirmBeforeDelete; - if(opts.touch === true) this._touch = true; - - this._webWorkersPath = (opts.webWorkersPath !== undefined) ? opts.webWorkersPath : _EUREKA.src.substring(0,_EUREKA.src.lastIndexOf('/')) + '/workers/'; - - if(this._useLocalStorage) { - if(this.getLocalStorage('currentMediaSource') && !opts.mediaSource) this._mediaSource = this.getLocalStorage('currentMediaSource'); - if(this.getLocalStorage('navTreeHidden') && !opts.navTreeHidden) this._navTreeHidden = (this.getLocalStorage('navTreeHidden') == 'true' ? true : false); - if(this.getLocalStorage('currentDirectory') && !opts.currentDirectory) this._currentDirectory = this.getLocalStorage('currentDirectory'); - if(this.getLocalStorage('currentView') && !opts.currentView) this._currentView = this.getLocalStorage('currentView'); - } - } - - getUseWebWorkers() { - return this._useWebWorkers; - } - - getwebWorkersPath() { - return this._webWorkersPath; - } - - getShowDimensionsColumn() { - return this._showDimensionsColumn; - } - - getLocalStorage(id:string) { - id = this.getStoragePrefix() + id; - if(localStorage.getItem(id) !== undefined && localStorage.getItem(id) !== 'undefined') return localStorage.getItem(id); - return ''; - } - - setLocalStorage(id,value) { - id = this.getStoragePrefix() + id; - localStorage.setItem(id,value); - } - - useLocalStorage() { - return this._useLocalStorage; - } - - getAlertBeforeDelete() { - return this._confirmBeforeDelete; - } - - getFileUploadURL() { - return this._fileUploadURL; - } - - setFileUploadURL(val) { - this._fileUploadURL = val; - } - - setAlertBeforeDelete(val) { - this._confirmBeforeDelete = val; - } - - getDebug() { - return this._debug; - } - - setDebug(debug) { - this._debug = debug; - } - - getHeaders() { - return this._headers; - } - - getUID(){ - return this._uid; - } - - getStoragePrefix() { - return this._storagePrefix; - } - - getSources() { - return this._sources; - } - - getEditable() { - return this._editable; - } - - getDisplayFullTreePaths() { - return this._displayFullTreePaths; - } - - getAllowRename() { - return this._allowRename; - } - - getAllowDelete() { - return this._allowDelete; - } - - getHTML5UploadData() { - return { - s:this.getCurrentMediaSource(), - dir:this.getCurrentDirectory() - }; - } - - isTouch() { - return this._touch; - } - - getMediaSourceDTOByID(id) { - if(this.getDebug()) console.log('getMediaSourceDTOByID: ' + id); - var sources = this.getSources(); - for (var i = 0; i < sources.length; i++) { - var source = sources[i]; - if (source.getID() == id) { - return source; - } - } - if(this.getDebug()) console.log('no media source found with id: ' + id); - return null; - } - getController() { - return this._controller; - } - setController(controller) { - this._controller = controller; - } - getNavTreeHidden() { - return this._navTreeHidden; - } - setNavTreeHidden(navTreeHidden) { - this._navTreeHidden = navTreeHidden; - if (this._useLocalStorage) this.setLocalStorage('navTreeHidden', navTreeHidden); - } - setCurrentMediaSource(currentMediaSource:string, dispatch:boolean = true, setLocalStorage:boolean = true, clearDirectory:boolean = true, dispatchIdenticalValues:boolean = false) { - var that = this; - if(this.getDebug()) console.log('setCurrentMediaSource', currentMediaSource, dispatch, setLocalStorage, clearDirectory, dispatchIdenticalValues); - if(this._mediaSource === currentMediaSource && !dispatchIdenticalValues) return; - this._mediaSource = currentMediaSource; - - if (setLocalStorage && currentMediaSource !== undefined) this.setLocalStorage('currentMediaSource', currentMediaSource); - if (dispatch === false) return; - var currentMediaSourceDTO = this.getMediaSourceDTOByID(this._mediaSource); - if(currentMediaSourceDTO) { - (function(){ - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaMediaSourceChange, true, true, { - currentDirectory:that.getCurrentDirectory(), - currentMediaSource:currentMediaSourceDTO, - clearDirectory:clearDirectory, - }); - - that.getController().getView().getElement().dispatchEvent(e); - })(); - - if(!that._mediaSourceInit) { - (function(){ - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaMediaSourceInit, true, true, { - currentDirectory:that.getCurrentDirectory(), - currentMediaSource:currentMediaSourceDTO - }); - - that.getController().getView().getElement().dispatchEvent(e); - })(); - } - this._mediaSourceInit = true; - } - - } - getCurrentMediaSource() { - return this._mediaSource; - } - setCurrentDirectory(currentDirectory:string, dispatch:boolean = true, setLocalStorage:boolean = true, dispatchIdenticalValues:boolean = false) { - if(this.getDebug()) console.log('setCurrentDirectory: ' + currentDirectory, dispatch, setLocalStorage, dispatchIdenticalValues); - if(setLocalStorage === undefined) setLocalStorage = this.useLocalStorage(); - //if(currentDirectory === undefined || currentDirectory === 'undefined') currentDirectory = '/'; - if(this._currentDirectory === currentDirectory && !dispatchIdenticalValues) return; - this._currentDirectory = currentDirectory; - if (setLocalStorage && currentDirectory) this.setLocalStorage('currentDirectory', currentDirectory); - if (dispatch === false) return; - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaDirectoryChanged, true, true, { - currentDirectory:currentDirectory, - currentMediaSource:this.getMediaSourceDTOByID(this._mediaSource) - }); - this.getController().getView().getElement().dispatchEvent(e); - } - getCurrentDirectory() { - if(this.getDebug()) console.log('getCurrentDirectory: ' + this._currentDirectory); - return this._currentDirectory || '/'; - } - setCurrentView(currentView:string, dispatch:boolean = true) { - if(this._currentView === currentView) return; - this._currentView = currentView; - if (this._useLocalStorage) this.setLocalStorage('currentView', currentView); - if (dispatch === false) return; - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaViewChange, true, true, { - currentView:currentView - }); - - this.getController().getView().getElement().dispatchEvent(e); - } - getCurrentView() { - return this._currentView; - } - getFullScreenTarget() : string { - return this._fullscreenTarget; - } - setLocale(locale) { - this._locale = locale; - } - getLocale() { - return this._locale; - } - getPrependOptGroupsWithRootOption() { - return this._prependOptGroupsWithRootOption; - } - getsortMediaSources() { - return this._sortMediaSources; - } - getMediaSourcesListInit() : boolean { - return this._mediaSourcesListInit; - } - setSources(sources, dispatch = true) { - var that = this; - if(this.getDebug()) console.log('setSources' + dispatch); - this._sources = sources; - if (dispatch === false) return; - - (function(){ - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaMediaSourcesListChange, true, true, { - sources:sources - }); - - that.getController().getView().getElement().dispatchEvent(e); - })(); - - (function(){ - if(!that.getMediaSourcesListInit()) { - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaMediaSourcesListInit, true, true, { - sources:sources - }); - - that.getController().getView().getElement().dispatchEvent(e); - } - })(); - } - sortResultsById(results) { - var a = []; - for(var i = 0; i < results.length; i++) { - var result = results[i]; - a[parseInt(result.id)] = result; - } - return a.filter(function(n){ return n != undefined }); - } - setMediaSourcesData(data:any, dispatch:boolean = true, setLocalStorage:boolean = true, clearDirectory:boolean = false, dispatchIdenticalValues:boolean = false) { - var that = this; - if(that.getDebug()) console.log('setMediaSourcesData data,dispatch,setLocalStorage,clearDirectory,dispatchIdenticalValues',data,dispatch,setLocalStorage,clearDirectory,dispatchIdenticalValues); - var results = data.results; - if(that.getsortMediaSources()) results = that.sortResultsById(results); - var sources = []; - var current = that.getCurrentMediaSource(); - var currentExists = false; - for (var i = 0; i < results.length; i++) { - var result = results[i]; - var mediaSourceDTO = new EurekaMediaSource({ - id: result.id, - title: result.name - }); - sources.push(mediaSourceDTO); - if(result.id == current) currentExists = true; - } - this.setSources(sources); - //that.setCurrentMediaSource((!currentExists) ? results[0].id : current, dispatch, setLocalStorage, clearDirectory, dispatchIdenticalValues); - //setCurrentMediaSource(currentMediaSource:string, dispatch:boolean = true, setLocalStorage:boolean = true, clearDirectory:boolean = true, dispatchIdenticalValues:boolean = false) { - that.setCurrentMediaSource((!currentExists) ? results[0].id : current, true, true, false, true); - } - renameFile(fileName, newFilename) { - // Create the event - var e = document.createEvent('CustomEvent'); - e.initCustomEvent('EurekaFileRename', true, true, { - fileName: fileName, - newFilename: newFilename, - cs: this.getController().getModel().getCurrentMediaSource(), - cd: this.getController().getModel().getCurrentDirectory(), - path: this.getController().getModel().getCurrentDirectory() + fileName, - newPath: this.getController().getModel().getCurrentDirectory() + newFilename - }); - - this.getController().getView().getElement().dispatchEvent(e); - } - deleteFile(filename, tr) { - var that = this; - - var e = document.createEvent('CustomEvent'); - e.initCustomEvent('EurekaUnlink', true, true, { - filename: tr.getAttribute('data-filename'), - timestamp: tr.getAttribute('data-timestamp'), - src: tr.querySelector('.image img, .image .img').getAttribute('src'), - dimensions: [tr.getAttribute('data-dimensions-w'), tr.getAttribute('data-dimensions-h')], - filesize: parseInt(tr.getAttribute('data-filesize-bytes')) - }); - - that.getController().getView().getElement().dispatchEvent(e); - } - setChoosenMediaItem(filename) { - var that = this; - var tr = getEurekaRowByFileName(filename); // #more reliable than tr.eureka__row.focused - var img = tr.querySelector('.image img, .image .img'); - - var e = document.createEvent('CustomEvent'); - e.initCustomEvent('EurekaFoundIt', true, true, { - filename: filename, - timestamp: tr.getAttribute('data-timestamp'), - src: tr.getAttribute('data-src'), - thumb:tr.getAttribute('data-thumb'), - dimensions: [tr.getAttribute('data-dimensions-w'), tr.getAttribute('data-dimensions-h')], - filesize: parseInt(tr.getAttribute('data-filesize-bytes')) - }); - - that.getController().getView().getElement().dispatchEvent(e); - function getEurekaRowByFileName(filename:string) : HTMLElement { - var trs = that.getController().getView().getElement().querySelectorAll('tr.eureka__row'); - for (var i = 0; i < trs.length; i++) { - var tr = trs[i]; - if (tr.getAttribute('data-filename') == filename) - return tr; - } - return null; - } - } - getSelected() { - return this._selected; - } - setSelected(filename) { - this._selected = filename; - } - getXHRHeaders = function() { - return this._headers; - } - getListDirectoryRequestURL() { - return this._directoryRequestURL; - } - getListDirectoryChildrenRequestURL() { - return this._directoryChildrenRequestURL; - } - setListDirectoryRequestURL(url:string) { - this._directoryRequestURL = url; - } - getListSourceRequestURL() { - return this._listSourceRequestURL; - } - setListSourceRequestURL(url:string) { - this._listSourceRequestURL = url; - } - getListSourcesRequestURL() { - return this._listSourcesRequestURL; - } - setListSourcesRequestURL(url:string) { - this._listSourcesRequestURL = url; - } - -} // end class EurekaModel - -class EurekaView { - private _controller:EurekaController; - private _html5Upload:Object; - private _handleTreeNodeClicked:EventListener; - private _handleTreeFolderClicked:EventListener; - - constructor() {} - - getController() { - return this._controller; - } - - setController(controller:EurekaController) { - this._controller = controller; - } - - getElement() { - return (document.getElementById(this.getController().getModel().getUID())); - } - assignFooterProceedListeners(){ - var that = this; - (that.getElement().parentNode).querySelector('footer.proceed button.cancel').addEventListener('click', function (e) { - e.preventDefault(); - - (function(){ - var e:any = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaCanceled, true, true, {}); - - that.getElement().dispatchEvent(e); - })(); - }); - (that.getElement().parentNode).querySelector('footer.proceed button.cta').addEventListener('click', function (e) { - e.preventDefault(); - that.getController().getModel().setChoosenMediaItem(that.getController().getModel().getSelected()); - }); - } - init(){ - var that = this; - - that._handleTreeNodeClicked = function(e) { - if(that.getController().getModel().getDebug()) console.log('handleTreeNodeClicked'); - e.preventDefault(); - e.stopPropagation(); - that.handleTreePathClicked(this); - }; - - that._handleTreeFolderClicked = function(e) { - e.preventDefault(); - e.stopPropagation(); - if(that.getController().getModel().getDebug()) console.log('handleTreeFolderClicked'); - var _icon = this.querySelector('.fa'); - var _closing = _icon.classList.contains('fa-folder-open'); - var li = that.getClosest(this, 'li'); - var dataCD = this.nextSibling.getAttribute('data-cd') || '/'; - if (_closing) { - _icon.classList.remove('fa-folder-open'); - _icon.classList.remove('icon-folder-open'); - _icon.classList.add('fa-folder','icon-folder'); - li.classList.remove('open'); - - if(this.getAttribute('data-open-msg')) this.querySelector('.audible').innerHTML = this.getAttribute('data-open-msg'); - } - else { - _icon.classList.remove('fa-folder'); - _icon.classList.remove('icon-folder'); - _icon.classList.add('fa-folder-open'); - _icon.classList.add('icon-folder-open'); - li.classList.add('open'); - if(this.getAttribute('data-close-msg')) this.querySelector('.audible').innerHTML = this.getAttribute('data-close-msg'); - } - - (function(){ - var e:any = document.createEvent('CustomEvent'); - e.initCustomEvent((_closing) ? EurekaModel.EurekaDirectoryClosed : EurekaModel.EurekaDirectoryOpened, true, true, { - cd:that.getController().getModel().getCurrentDirectory(), - s:that.getController().getModel().getCurrentMediaSource(), - path:dataCD - }); - - that.getElement().dispatchEvent(e); - })(); - }; - - function assignShortcutListeners() { - document.addEventListener('keydown', function(event) { - if(that.getController().getModel().getDebug()) console.log(event); - if (event.ctrlKey && event.which === 186) { // ctrl ; to toggle sidebar - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').dispatchEvent(e); - } - if (event.altKey && event.ctrlKey && (event.which >= 48 && event.which <= 57)) { - try { - var btns = that.getElement().querySelectorAll('.view-btns > nav > a'); - var btn:HTMLElement = (btns[event.which-48-1]); - if(btn) { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - btn.dispatchEvent(e); - } - } catch(e) {} - } - if (event.altKey && !event.ctrlKey && (event.which >= 49 && event.which <= 57)) { // alt 1-9 - function setSelectOptGroup(select:HTMLSelectElement,group) { - function getOptGroup() : Element { - var optgroups = select.querySelectorAll('optgroup'); - for(var i = 0; i < optgroups.length; i++) { - var optgroup:Element = (optgroups[i]); - if(optgroup.getAttribute('data-source') == group) return optgroup; - } - return null; - } - var optGroup:Element = getOptGroup(); - if(optGroup) { - select.value = (optGroup.querySelector('option')).value; - } - } - function setSelectOption(select,value) { - try { - var options = select.querySelectorAll('option'); - var option:HTMLOptionElement = options[value]; - if(option) { - select.value = option.getAttribute('value'); - } - } catch(e) {} - - /*function hasOption(val) { - var options = select.querySelectorAll('option'); - for(var i = 0; i < options.length; i++) { - if((((options[i])).value) == val) return true; - } - return false; - } - if(hasOption((event.which - 49).toString())) { - select.value = value; - }*/ - } - var msSelect = (document.getElementById(that.getController().getModel().getUID() + '__mediasource-select')); - setSelectOption( - msSelect, - (event.which - 49).toString() - ); - setSelectOptGroup( - (document.getElementById(that.getController().getModel().getUID() + '__browsing').querySelector('select')), - (event.which - 49).toString() - ); - that.getController().getModel().setCurrentMediaSource(msSelect.value, true, true, true, false); - } - - if(event.which === 8 && document.activeElement) { // delete to delete - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - try { - (document.activeElement.nextSibling).querySelector('a.trash').dispatchEvent(e); - } catch(e) {} - } - - if(event.altKey && event.which === 32 && document.activeElement) { // space to expand - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - (document.activeElement.nextSibling).querySelector('a.expand').dispatchEvent(e); - } catch(e) {} - } - - if(event.which === 13 && document.activeElement) { // enter to choose - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - (document.activeElement.nextSibling).querySelector('a.choose').dispatchEvent(e); - } catch(e) {} - } - - if(event.ctrlKey && event.which === 82) { // ctrl r to rename - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - (document.activeElement.nextSibling).querySelector('a.rename').dispatchEvent(e); - } catch(e) {} - } - - if(event.ctrlKey && event.which === 78) { // ctrl n to create directory - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - (that.getElement()).querySelector('.create-new').dispatchEvent(e); - } catch(e) {} - } - - if(event.ctrlKey && event.which === 85) { // ctrl n to create directory - try { - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - document.getElementById(that.getController().getModel().getUID() + '__upload-input').dispatchEvent(e); - } catch(e) {} - } - - if(event.ctrlKey && event.which === 70) { // ctrl f to filter - try { - document.getElementById(that.getController().getModel().getUID() + '__filter-images').focus(); - } catch(e) {} - } - }); - } - function showSidebar() { - var tog = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle'); - var el = document.getElementById(tog.getAttribute('data-toggle-target')); - el.classList.remove('hidden'); - document.getElementById(that.getController().getModel().getUID()).classList.add('sidebar-open'); - //document.querySelectorAll('#media-browser_0 .browse-select')[0].classList.add('tablet-p-hidden'); - (that.getElement().querySelector('.browse-select')).classList.add('tablet-p-hidden'); - that.getController().getModel().setNavTreeHidden(false); - var toggle = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').getElementsByTagName("i")[0]; - toggle.classList.remove('fa-toggle-right'); - toggle.classList.remove('icon-toggle-right'); - toggle.classList.add('fa-toggle-left'); - toggle.classList.add('icon-toggle-left'); - tog.title = tog.getAttribute('data-title-close'); - } - function hideSidebar() { - var tog = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle'); - var el = document.getElementById(tog.getAttribute('data-toggle-target')); - - el.classList.add('hidden'); - document.getElementById(that.getController().getModel().getUID()).classList.remove('sidebar-open'); - //document.querySelectorAll('#media-browser_0 .browse-select')[0].classList.remove('tablet-p-hidden'); - (that.getElement().querySelector('.browse-select')).classList.remove('tablet-p-hidden'); - that.getController().getModel().setNavTreeHidden(true); - var toggle = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').getElementsByTagName("i")[0]; - toggle.classList.add('fa-toggle-right'); - toggle.classList.add('icon-toggle-right'); - toggle.classList.remove('fa-toggle-left'); - toggle.classList.remove('icon-toggle-left'); - tog.title = tog.getAttribute('data-title-open'); - } - - document.getElementById(that.getController().getModel().getUID() + '__pathbrowser_toggle').addEventListener('click', function (e) { - var el = document.getElementById(this.getAttribute('data-toggle-target')); - e.preventDefault(); - if (el.classList.contains('hidden')) { - showSidebar(); - } - else { - hideSidebar(); - } - }); - this.assignViewButtonListeners(); - this.assignFooterProceedListeners(); - this.assignBrowsingSelectOptGroupListeners(); - - this.assignSelectListeners(); - this.assignSortBtnListeners(); - this.assignFilterListeners(); - this.assignCreateNewDirectoryListener(); - this.assignUploadListeners(); - - assignShortcutListeners(); - - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - that.getElement().querySelector('.eureka__topbar-nav .view-btns a[data-view="' + that.getController().getModel().getCurrentView() + '"]').dispatchEvent(e); - - if (this.getController().getModel().getNavTreeHidden() === true) { - hideSidebar(); - } - - // if a droptarget exists and a modern mouse enabled browser is being used - var dropContainer = document.getElementById(that.getController().getModel().getUID()).querySelector('.dropzone') || null; - if (html5Upload !== undefined && !(that.getController().getModel().isTouch()) && html5Upload.fileApiSupported() && dropContainer) { - that._html5Upload = html5Upload.initialize({ - // URL that handles uploaded files - uploadUrl: that.getController().getModel().getFileUploadURL(), - - // HTML element on which files should be dropped (optional) - dropContainer: dropContainer, - - // HTML file input element that allows to select files (optional) - inputField: document.getElementById(that.getController().getModel().getUID() + '__upload-input'), - - // Key for the file data (optional, default: 'file') - key: 'File', - - data:that.getController().getModel().getHTML5UploadData(), - - // Additional data submitted with file (optional) - //data: that.getController().getModel().getHeaders(), // NOTE: could also send additional data here - - // Maximum number of simultaneous uploads - // Other uploads will be added to uploads queue (optional) - maxSimultaneousUploads: 4, - - // Callback for each dropped or selected file - // It receives one argument, add callbacks - // by passing events map object: file.on({ ... }) - - onFileAdded: function (file) { - function removeMessages() { - var rs = dropContainer.querySelector('.progress').querySelectorAll('h2,p'); - for(var i = 0; i < rs.length; i++) { - (rs[i]).remove(); - } - } - removeMessages(); - // make a really unique identifer - var id = file.fileName.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, '') + file.fileSize.toString().replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, ''); - - var bar = document.createElement('div'); - bar.classList.add('bar'); - - bar.setAttribute('id',id); - bar.title = file.fileName + ' is preparing for upload.'; - - var pill = document.createElement('div'); - pill.setAttribute('style','right:100%'); - - bar.appendChild(pill); - - var dropzone:HTMLElement = document.getElementById(that.getController().getModel().getUID()).querySelector('.dropzone'); - dropzone.classList.remove('complete'); - dropzone.classList.remove('error'); - dropzone.classList.add('uploading'); - - dropzone.querySelector('.progress').appendChild(bar); - - file.on({ - // Called after received response from the server - onCompleted: function (response) { - function isJSON(data) { - try { - JSON.parse(data); - return true; - } catch(e) {} - return false; - } - if(!isJSON(response)) { - dropzone.classList.add('error'); - } - bar.setAttribute('title', file.fileName + ' has uploaded'); - - if(dropzone.querySelectorAll('.bar').length >= 2)(bar).remove(); - if(dropzone.querySelectorAll('.bar').length < 2) { // everything is up - setTimeout(function(){ - (dropzone.querySelector('.progress')).innerHTML = ''; - dropzone.classList.remove('uploading'); - dropzone.classList.add('complete'); - - (function(){ // wait a bit, then show the complete message - var div = dropzone.querySelector('.progress'); - var h2 = document.createElement('h2'); - var icon = document.createElement('i'); - icon.setAttribute('class','fa fa-check-circle-o icon icon-check-circle-o'); - h2.appendChild(icon); - div.appendChild(h2); - - var span = document.createElement('span'); - span.setAttribute('title','files here...'); - span.innerHTML = 'Your files'; - - var p = document.createElement('p'); - p.appendChild(span); - p.innerHTML += ' have been successfully uploaded.'; - div.appendChild(p); - - if(dropzone.classList.contains('error')) { - icon.setAttribute('class','fa fa-times-circle icon icon-times-circle'); - p.innerHTML = 'Oh no,
One or more files were not uploaded.'; - } - - var e:any = document.createEvent('CustomEvent'); - //that.getElement().dispatchEvent(e); - e.initCustomEvent(EurekaModel.EurekaFilesUploaded, true, true, { - }); - that.getElement().dispatchEvent(e); - - (document.getElementById(that.getController().getModel().getUID() + '__upload-form')).reset(); - })(); - }, 640); - } - - }, - - // Called during upload progress, first parameter - // is decimal value from 0 to 100. - onProgress: function (progress, fileSize, uploadedBytes) { - progress = Math.ceil(progress); - bar.setAttribute('title', file.fileName + ' is ' + progress + '% uploaded'); - pill.setAttribute('style','right:' + (100-progress).toString() + '%'); - } - }); - } - }); - } else { - if(dropContainer) (dropContainer).remove(); // remove the drop container because we can't use it - } - - if(that.getController().getModel().getFileUploadURL() === undefined || that.getController().getModel().getFileUploadURL() == '') { - try { - (that.getElement().querySelector('.pathbrowser footer form')).remove(); - } catch(e) {} - - try { - (that.getElement().querySelector('.upload-form')).remove(); - } catch(e) {} - - try { - (that.getElement().querySelector('.upload-perhaps')).remove(); - } catch(e) {} - } - - if(that.getController().getModel().getCurrentMediaSource() !== undefined && that.getController().getModel().getCurrentMediaSource() !== '/' && that.getController().getModel().getCurrentMediaSource() !== '') { - that.recursivelyOpenTreeToCurrentDirectory(); - } - - that.getElement().addEventListener(EurekaModel.EurekaDirectoryChanged, function (e:any) { - if(that.getController().getModel().getDebug()) console.log(EurekaModel.EurekaDirectoryChanged); - var currentDirectory = e.detail.currentDirectory; - var currentMediaSource = that.getController().getModel().getCurrentMediaSource(); - var split = currentDirectory.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - var levelup:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__pathbrowser')).querySelector('.level-up'); - if(split.length >= 1) levelup.classList.remove('hidden'); - else levelup.classList.add('hidden'); - - (function(){ - try { - var el:HTMLElement = (that.getElement().querySelector('.pathbrowser .create-new')); - el.setAttribute('title','Create a new directory in ' + that.sanitizeDisplayPath(currentDirectory)); - (el.querySelector('.audible')).innerHTML = el.getAttribute('title'); - } catch(e) {} - })(); - (function(){ - try { - var el:HTMLElement = (that.getElement().querySelector('.pathbrowser .upload-files')); - el.setAttribute('title','Upload media to ' + that.sanitizeDisplayPath(currentDirectory)); - (el.querySelector('.audible')).innerHTML = el.getAttribute('title'); - } catch(e) {} - })(); - that.setBrowseSelectValue(); - that.setMediaSourceSelectValue(); - try { - ((that._html5Upload)).data = that.getController().getModel().getHTML5UploadData(); - } catch(e) {} - try { - (that.getElement().querySelector('.oh-no code')).innerHTML = currentDirectory; - } catch(e) {} - }); - that.getElement().addEventListener(EurekaModel.EurekaMediaSourceChange, function(e:any){ - var mediaSourceTitle:HTMLElement = (that.getElement().querySelector('.eureka__topbar-nav .mediasource-title')); - - if(e.detail.currentMediaSource) { - var prepend = mediaSourceTitle.getAttribute('data-prepend') || ''; - mediaSourceTitle.innerHTML = prepend + e.detail.currentMediaSource.getTitle(); - } - - that.setBrowseSelectValue(); - that.setMediaSourceSelectValue(); - try { - ((that._html5Upload)).data = that.getController().getModel().getHTML5UploadData(); - } catch(e) {} - }); - - if(!that.getController().getModel().getShowDimensionsColumn()) { - try { - (that.getElement().querySelector('.eureka-table th.dimensions')).remove(); - } catch(e) {} - } - } - - setMediaSourceSelectValue() { - var that = this; - if(that.getController().getModel().getDebug()) console.log('setMediaSourceSelectValue'); - - var currentDirectory = that.getController().getModel().getCurrentDirectory(); - var currentMediaSource = that.getController().getModel().getCurrentMediaSource(); - - var select:HTMLSelectElement = (document.getElementById(that.getController().getModel().getUID() + '__mediasource-select')); - - if(select.value !== currentMediaSource) { - select.value = currentMediaSource; - } - } - - setBrowseSelectValue() { - var that = this; - if(that.getController().getModel().getDebug()) console.log('setBrowseSelectValue'); - - var currentDirectory = that.getController().getModel().getCurrentDirectory(); - var currentMediaSource = that.getController().getModel().getCurrentMediaSource(); - - var select:HTMLSelectElement = (document.getElementById(that.getController().getModel().getUID() + '__browsing')).querySelector('select'); - var optgroups = select.querySelectorAll('optgroup'); - var optgroup = getOptGroup(optgroups); - if(optgroup) { - var opt:HTMLElement = searchForValue(optgroup); - if(opt && select.value !== opt.getAttribute('value')) { - select.value = opt.getAttribute('value'); - } - } - - function getOptGroup(optgroups) : HTMLElement { - for(var i = 0; i < optgroups.length; i++) { - var optgroup = optgroups[i]; - if((optgroup).getAttribute('data-source') == currentMediaSource) { - return optgroup; - } - } - return null; - } - function searchForValue(optgroup) : HTMLElement { - function splitFilter(path) { - if(!path) return ''; - var split = path.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - return split; - } - var opts = optgroup.querySelectorAll('option'); - for(var i = 0; i < opts.length; i++) { - var opt:HTMLElement = (opts[i]); - var path = (opt).getAttribute('data-cd'); - if(splitFilter(path).toString() == splitFilter(currentDirectory).toString()) { - return opt; - } - } - } - } - - recursivelyOpenTreeToCurrentDirectory() { - var that = this; - - var pathbrowser = document.getElementById(that.getController().getModel().getUID() + '__pathbrowser'); - var paths = pathbrowser.querySelectorAll('a.path'); - if(that.getController().getModel().getDebug()) console.log('recursivelyOpenTreeToCurrentDirectory', paths); - for(var i = 0; i < paths.length; i++) { - var path:HTMLElement = paths[i]; - if(that.getController().getModel().getDebug()) console.log(path.getAttribute('data-cd').split('/').filter(Boolean).toString(), that.getController().getModel().getCurrentDirectory().split('/').filter(Boolean).toString()); - if(path.getAttribute('data-cd').split('/').filter(Boolean).toString() == that.getController().getModel().getCurrentDirectory().split('/').filter(Boolean).toString()) { - (function(){ - (path.parentNode).classList.add('active'); - (path.parentNode).classList.add('open'); - var parents = getParents(path,'ul'); - function openFolder(folder:HTMLElement) { - folder.classList.remove('fa-folder'); - folder.classList.remove('icon-folder'); - folder.classList.add('fa-folder-open'); - folder.classList.add('icon-folder-open'); - try { - (folder.querySelector('.audible')).innerHTML = folder.getAttribute('data-close-msg'); - } catch(e) {} - } - if(parents.length > 1) { - for(var i = 0; i < parents.length; i++) { - var li:HTMLElement = (parents[i].parentNode); - li.classList.add('open'); - openFolder((li.querySelector('.folder > i'))); - } - } - })(); - } - } - } - - assignUploadListeners() { - var that = this; - var upload_files = that.getElement().querySelector('.pathbrowser .upload-files'); - if(upload_files) { - upload_files.addEventListener('click',function(e){ - e.preventDefault(); - e.stopPropagation(); - - (function(){ - //var e = document.createEvent('Event'); - //e.initEvent('click', true, true); - var e = new MouseEvent('click', { - 'view': window, - 'bubbles': true, - 'cancelable': true - }); - document.getElementById(that.getController().getModel().getUID() + '__upload-input').dispatchEvent(e); - })(); - }); - } - var upload_perhaps = that.getElement().querySelector('.upload-perhaps a'); - if(upload_perhaps) { - upload_perhaps.addEventListener('click',function(e){ - e.preventDefault(); - - var e = document.createEvent('Event'); - e.initEvent('click', true, true); - - try { - (upload_files).dispatchEvent(e); - } catch(e) {} - }); - } - } - - assignBrowsingSelectOptGroupListeners(){ - var that = this; - - if(that.getController().getModel().getDebug())console.log('assignBrowsingSelectOptGroupListeners'); - var select = document.getElementById(that.getController().getModel().getUID() + '__browsing').querySelector('select'); - select.addEventListener('change', function (e) { - var option = that.getSelectedOption(this); - var optgroup = that.getClosest(option, 'optgroup'); - var source = optgroup.getAttribute('data-source'); - that.getController().getModel().setCurrentMediaSource(source); - that.getController().getModel().setCurrentDirectory(option.getAttribute('data-cd'), true, that.getController().getModel().useLocalStorage()); - // fetch current media source's directories - var ajax = new AJAX(); - ajax.get( - that.getController().getModel().getListSourceRequestURL(), - { s: that.getController().getModel().getCurrentMediaSource() }, - function (data) { - }, - true, - that.getController().getModel().getXHRHeaders() - ); - }); - } - assignCreateNewDirectoryListener() { - var that = this; - - try { - that.getElement().querySelector('.create-new').addEventListener('click',function(e){ - var li = document.createElement('li'); - var folder = document.createElement('a'); - folder.classList.add('folder'); - folder.innerHTML = ' '; - - var path = document.createElement('a'); - path.classList.add('path'); - path.setAttribute('title','Browse this directory'); - path.setAttribute('data-cd',''); - path.setAttribute('contenteditable','true'); - path.innerHTML = 'new folder'; - - li.appendChild(folder); - li.appendChild(path); - - li.appendChild(document.createElement('ul')); - - setTimeout(function(){ - path.focus(); - try { - (path).select(); - } catch(e) {} - },240); - - var ul:HTMLElement = (that.getElement().querySelector('.pathbrowser .tree li.active > ul') || that.getElement().querySelector('.pathbrowser .tree > ul')); - ul.classList.add('open'); - ((ul.parentNode)).classList.add('open'); - try { - (((ul.previousSibling).previousSibling)).querySelector('.fa').setAttribute('class','fa icon fa-folder-open icon-folder-open'); - } catch(e) {} - - path.addEventListener('focus', function (e) { - this.addEventListener('keydown', handleKeyDown, false); - }, false); - path.addEventListener('blur', function (e) { - this.removeEventListener('keydown', handleKeyDown, false); - }, false); - - function handleKeyDown(e) { - //var code = getCodeToFocus(this); - //var tr = that.getClosest(this, '.contextual').previousSibling; - if (e.keyCode === 13) { - e.preventDefault(); - e.stopPropagation(); - this.blur(); - this.setAttribute('contenteditable','false'); - (that.getElement().querySelector('button.create-new')).focus(); - - var foldername = this.innerHTML; - - var e:any = document.createEvent('CustomEvent'); - //that.getElement().dispatchEvent(e); - e.initCustomEvent('EurekaDirectoryCreated', true, true, { - newdirectory: foldername, - cd:that.getController().getModel().getCurrentDirectory(), - s:that.getController().getModel().getCurrentMediaSource(), - path:that.getController().getModel().getCurrentDirectory()+foldername - }); - that.getElement().dispatchEvent(e); - } - } - - ul.appendChild(li); - }); - } catch(e) {} - } - assignViewButtonListeners(){ - var that = this; - var model = this.getController().getModel(); - function setCurrent(el) { - var anchors = document.querySelectorAll(".eureka__topbar-nav .view-btns a[data-view]:not(.view-f-btn)"); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - (anchor).classList.remove('current'); - } - el.classList.add('current'); - } - var anchors = document.querySelectorAll(".eureka__topbar-nav .view-btns a[data-view]:not(.view-f-btn)"); - for (var i = 0; i < anchors.length; i++) { - var current = anchors[i]; - current.addEventListener('click', function (e) { - e.preventDefault(); - var that = this; - var _v = this.getAttribute('data-view'); - var classes = ['view-a', 'view-b', 'view-c', 'view-d','view-e']; - for (var _i = 0; _i < classes.length; _i++) { - var c = classes[_i]; - document.getElementById(that.getAttribute('data-view-target')).classList.remove(c); - } - document.getElementById(that.getAttribute('data-view-target')).classList.add(_v); - setCurrent(that); - model.setCurrentView(_v); - }, true); - } - var fullscreenBtn = document.querySelector(".eureka__topbar-nav .view-btns .view-f-btn"); - - if(fullscreenBtn) fullscreenBtn.addEventListener('click', function(e){ - e.preventDefault(); - - if (that.isFullScreen()) { - that.runPrefixMethod(document, "CancelFullScreen"); - fullscreenBtn.querySelector('i').classList.remove('fa-compress'); - fullscreenBtn.querySelector('i').classList.remove('icon-compress'); - } - else { - //setCurrent(this); - that.requestFullScreen(); - fullscreenBtn.querySelector('i').classList.add('fa-compress'); - fullscreenBtn.querySelector('i').classList.add('icon-compress'); - } - }); - } - isFullScreen() { - return this.runPrefixMethod(document, "FullScreen") || this.runPrefixMethod(document, "IsFullScreen"); - } - requestFullScreen() { - this.runPrefixMethod(document.querySelector(this.getController().getModel().getFullScreenTarget()), "RequestFullScreen"); - } - runPrefixMethod(obj, method) { - var pfx = ["webkit", "moz", "ms", "o", ""]; - var p = 0, m, t; - while (p < pfx.length && !obj[m]) { - m = method; - if (pfx[p] == "") { - m = m.substr(0,1).toLowerCase() + m.substr(1); - } - m = pfx[p] + m; - t = typeof obj[m]; - if (t != "undefined") { - pfx = [pfx[p]]; - return (t == "function" ? obj[m]() : obj[m]); - } - p++; - } - } - assignARIAKeyListeners(){ - var that = this; - // ARIA focus support for non-contextual rows - (function () { - function setFocused(el) { - var rows = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var current = (rows[i]); - if (el !== current && current.classList.contains("focused")) - current.classList.remove('focused'); - } - el.classList.add('focused'); - var _cta = (that.getProceedFooter().querySelector('button.cta')); - _cta.removeAttribute('disabled'); - _cta.classList.remove('muted'); - - _cta.classList.add('go'); - that.getController().getModel().setSelected(el.getAttribute('data-filename')); - } - function handleBlur(el) { - var contextual = document.getElementById('eureka_contextual__' + el.getAttribute('data-safe-filename')); - contextual.focus(); - //that.getProceedFooter().querySelector('button.cta').classList.add('muted'); - var _cta = (that.getProceedFooter().querySelector('button.cta')); - _cta.classList.remove('go'); - - //_cta.setAttribute('disabled','disabled'); - _cta.classList.add('muted'); - } - var rows = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var current = rows[i]; - current.addEventListener('click', function (e) { - e.preventDefault(); - //var _as = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - setFocused(this); - }, false); - current.addEventListener('focus', function (e) { - e.preventDefault(); - //var _as = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - setFocused(this); - }, false); - current.addEventListener('blur', function (e) { - handleBlur(this); - }, false); - } - }()); - } - assignSortBtnListeners(){ - var that = this; - - var sortBtns = that.getElement().querySelectorAll('.eureka-table th .fa-sort'); - for (var i = 0; i < sortBtns.length; i++) { - var sortBtn = sortBtns[i]; - function handleSortBtnClicked(e) { - e.preventDefault(); - e.stopPropagation(); - // toggle between 0 and 1 - this.setAttribute('data-sort-asc', Math.abs(parseInt(this.getAttribute('data-sort-asc')) - 1).toString()); - var sortby = this.getAttribute('data-sortby'); - var sortASC = (this.getAttribute('data-sort-asc') == "1") ? true : false; - var rows = []; - var rs = document.querySelectorAll('.eureka-table tbody > tr:not(.contextual)'); - for (var i = 0; i < rs.length; i++) { - rows.push(rs[i]); - } - switch (sortby) { - case 'dimensions': - rows.sort(function (a, b) { - return (parseInt(a.getAttribute('data-dimensions-w')) * parseInt(a.getAttribute('data-dimensions-h'))) - (parseInt(b.getAttribute('data-dimensions-w')) * parseInt(b.getAttribute('data-dimensions-h'))); - }); - break; - case 'filesize': - rows.sort(function (a, b) { - return parseInt(a.getAttribute('data-filesize-bytes')) - parseInt(b.getAttribute('data-filesize-bytes')); - }); - break; - case 'editedon': - rows.sort(function (a, b) { - return parseInt(a.getAttribute('data-timestamp')) - parseInt(b.getAttribute('data-timestamp')); - }); - break; - default: - rows.sort(function (a, b) { - if (a.getAttribute('data-filename') > b.getAttribute('data-filename')) - return 1; - if (a.getAttribute('data-filename') < b.getAttribute('data-filename')) - return -1; - return 0; - }); - break; - } - if (!sortASC) { - rows.reverse(); - } - var s = ''; - for (var _i = 0; _i < rows.length; _i++) { - var row = rows[_i]; - s += row.outerHTML; - } - (that.getElement().querySelector('.eureka-table tbody')).innerHTML = s; - } - - sortBtn.removeEventListener('click', handleSortBtnClicked, true); // assignSortBtnListeners should only be called once but this is another layer of protection - sortBtn.addEventListener('click', handleSortBtnClicked, true); - } - } - assignFilterListeners(){ - var that = this; - function unFilterView() { - var rows = document.querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var row = (rows[i]); - row.classList.remove('hidden'); - } - (document.getElementById(that.getController().getModel().getUID()).querySelector('.eureka-table > table > tbody')).classList.remove('filtered'); - } - function filterView(value) { - var rows = that.getElement().querySelectorAll(".eureka-table tbody > tr:not(.contextual)"); - for (var i = 0; i < rows.length; i++) { - var row = (rows[i]); - var show = false; - var tokens = [row.getAttribute('data-filename')]; - if (row.getAttribute('data-tokens')) tokens = tokens.concat(row.getAttribute('data-tokens').split('||')); - - (function(){ - for (var _i = 0; _i < tokens.length; _i++) { - var token = tokens[_i]; - if (value.length && (token == value || token.indexOf(value) > -1)) { - show = true; - break; - } - } - })(); - - if (!show) { - row.classList.add('hidden'); - row.classList.remove('visible'); - } - else { - row.classList.add('visible'); - row.classList.remove('hidden'); - } - (document.getElementById(that.getController().getModel().getUID()).querySelector('.eureka-table > table > tbody')).classList.add('filtered'); - } - } - var input = document.getElementById(that.getController().getModel().getUID() + '__filter-images'); - input.addEventListener("input", function (e) { - if (this.value) { - filterView(this.value); - } - else { - unFilterView(); - } - }, false); - } - sanitizeDisplayPath(path) : string { - var split = path.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - return split.join('/'); - } - getProceedFooter(){ - return ((this.getElement().parentNode).querySelector('footer.proceed')); - } - handleTreePathClicked(el) { - var that = this; - if(that.getController().getModel().getDebug()) console.log('handleTreePathClicked: ' + (el.getAttribute('data-cd') || '/')); - that.getController().getModel().setCurrentDirectory((el.getAttribute('data-cd') || '/'), true,undefined); - function deactivatePaths() { - var pathBrowser:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__pathbrowser')); - var paths = pathBrowser.querySelectorAll("nav.tree a.path"); - for (var i = 0; i < paths.length; i++) { - var path:HTMLElement = (paths[i]); - var li:HTMLElement = (that.getClosest(path, 'li')); - li.classList.remove('active'); - } - } - /*var source = that.getController().getModel().getCurrentMediaSource(); - var ajax = new AJAX(); - ajax.get( - that.getController().getModel().getListDirectoryRequestURL(), - { s: source, dir: el.getAttribute('data-cd') || '/' }, - function (data) { - data = JSON.parse(data); - if(that.getController().getModel().getDebug()) console.log(data); - that.paintJSON(data); - }, - true, - that.getController().getModel().getXHRHeaders() - );*/ - - /* - ajax.get(that.getController().getModel().getListDirectoryRequestURL(), { s: source, dir: el.getAttribute('data-cd') }, function (data) { - that.paintJSON(data); - }); - */ - var li = that.getClosest(el, 'li'); - deactivatePaths(); - li.classList.add('active'); - } - assignTreeListeners(){ - var that = this; - if(that.getController().getModel().getDebug()) console.log('assignTreeListeners'); - var pathBrowser:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__pathbrowser')); - var paths = pathBrowser.querySelectorAll("nav.tree a.path"); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - path.addEventListener('click', that._handleTreeNodeClicked, false); - } - this.assignTreeFolderListeners(); - } - assignTreeFolderListeners(){ - var that = this; - if(that.getController().getModel().getDebug()) console.log('assignTreeFolderListeners'); - var pathBrowser:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__pathbrowser')); - var folders = pathBrowser.querySelectorAll("nav.tree a.folder"); - for (var i = 0; i < folders.length; i++) { - var folder = folders[i]; - folder.addEventListener('click', that._handleTreeFolderClicked, false); - } - } - assignSelectListeners(){ - var that = this; - var mediaSourceSelect = that.getElement().querySelector('#' + that.getController().getModel().getUID() + '__mediasource-select'); - mediaSourceSelect.addEventListener('change', function () { - that.getController().getModel().setCurrentMediaSource(this.value, true, that.getController().getModel().useLocalStorage()); - that.getController().getModel().setCurrentDirectory('/',false,that.getController().getModel().useLocalStorage()); - var ajax = new AJAX(); - ajax.get( - that.getController().getModel().getListSourceRequestURL(), - { s: that.getController().getModel().getCurrentMediaSource() }, - function (data) { - }, - true, - that.getController().getModel().getXHRHeaders() - ); - }); - - var levelUp:HTMLAnchorElement = (that.getElement().querySelector('.level-up')); - levelUp.addEventListener('click', function(e){ - e.preventDefault(); - var currentDirectory = that.getController().getModel().getCurrentDirectory(); - var split = currentDirectory.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - if(split && split.length) { - var destDirectory = '/'; - if(split.length > 1) { - split.pop(); - destDirectory = split.join('/'); - } - that.getController().getModel().setCurrentDirectory(destDirectory, true, true, false); - } - }); - } - emptyTree(){ - var that = this; - var pathBrowser:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__pathbrowser')); - (function(){ - var paths = pathBrowser.querySelectorAll("nav.tree a.path"); - for (var i = 0; i < paths.length; i++) { - var path = (paths[i]); // #janky typescript doesn't seem to support .remove(); - path.removeEventListener('click', that._handleTreeNodeClicked, false); - path.remove(); - } - })(); - (function(){ - var folders = pathBrowser.querySelectorAll("nav.tree a.folder"); - for (var i = 0; i < folders.length; i++) { - var folder = (folders[i]); // #janky typescript doesn't seem to support .remove(); - folder.removeEventListener('click', that._handleTreeFolderClicked, false); - folder.remove(); - } - })(); - } - assignDraggableListeners(){ - var kindaDraggables = document.querySelectorAll('*[sorta-draggable="true"]'); - for (var i = 0; i < kindaDraggables.length; i++) { - var kindaDraggable = kindaDraggables[i]; - kindaDraggable.addEventListener('blur', function (e) { - this.parentNode.draggable = false; - }); - kindaDraggable.addEventListener('focus', function (e) { - this.parentNode.draggable = false; - }); - } - } - assignChooseClickListeners() { - var that = this; - - if(that.getController().getModel().getDebug()) console.log('assignChooseClickListeners'); - - var rows = that.getElement().querySelectorAll('tr.eureka__row'); - for(var i = 0; i < rows.length; i++) { - function addDblClickListener(tr:HTMLElement) { - tr.querySelector('div.image').addEventListener('dblclick',function(e){ - var image = this; - - (function(){ - var e:any = (document.createEvent('CustomEvent')); - e.initCustomEvent('EurekaFoundIt', true, true, { - filename: tr.getAttribute('data-filename'), - timestamp: tr.getAttribute('data-timestamp'), - src: tr.getAttribute('data-src'), - thumb:tr.getAttribute('data-thumb'), - dimensions: [tr.getAttribute('data-dimensions-w'), tr.getAttribute('data-dimensions-h')], - filesize: parseInt(tr.getAttribute('data-filesize-bytes')) - }); - - that.getController().getView().getElement().dispatchEvent(e); - })(); - }) - } - addDblClickListener((rows[i])); - } - } - paint(){ - this.assignARIAKeyListeners(); - this.assignContextualClickListeners(); - this.assignDraggableListeners(); - this.assignChooseClickListeners(); - this.assignSortBtnListeners(); - //this.assignContextualRowListeners(); - } - createTreeNode(path) : HTMLElement { - var that = this; - path = path.split('/').filter(Boolean).join('/') + '/'; - var li = document.createElement('li'); - var folder = document.createElement('a'); - folder.innerHTML = ' '; - folder.setAttribute('href', 'javascript:;'); - folder.classList.add('folder'); - folder.setAttribute('data-open-msg','Expand ' + path + ' '); - folder.setAttribute('data-close-msg','Collapse ' + path + ' '); - var folderOpenIcon = document.createElement('i'); - folderOpenIcon.classList.add('fa'); - folderOpenIcon.classList.add('icon'); - folderOpenIcon.classList.add('fa-folder'); - folderOpenIcon.classList.add('icon-folder'); - folder.appendChild(folderOpenIcon); - (function(){ - var audible = document.createElement('span'); - audible.classList.add('audible'); - audible.innerHTML = folder.getAttribute('data-open-msg'); - folder.appendChild(audible); - })(); - var a = document.createElement('a'); - a.classList.add('path'); - a.setAttribute('href', 'javascript:;'); - a.setAttribute('title', 'Browse ' + path); - - var split = path.split('/'); - split = split.filter(function (n) { return (n !== undefined && n != ""); }); - var displayPath = split.join('/'); - if(!that.getController().getModel().getDisplayFullTreePaths()) { - displayPath = split[split.length-1]; - } else { - if(displayPath[displayPath.length-1] == '/') displayPath = displayPath.substring(0,displayPath.length - 1); - } - - a.setAttribute('data-cd', path); - a.innerHTML = ' ' + displayPath; - li.appendChild(folder); - li.appendChild(a); - var _ul = document.createElement("ul"); - li.appendChild(_ul); - - return li; - } - paintTree(data) { - var that = this; - if(that.getController().getModel().getDebug()) console.log('paintTree',data); - var tree : HTMLElement = (that.getElement().querySelector('nav.tree')); - var results = data.results; - function printTreeNavResults(results, ul) { - for (var i = 0; i < results.length; i++) { - var result = results[i]; - var li:HTMLElement = that.createTreeNode(result.path); - var _ul = li.querySelector('ul'); - if (result.children !== undefined && result.children.length) { - printTreeNavResults(result.children, _ul); - } - ul.appendChild(li); - } - } - tree.innerHTML = ''; - var ul = document.createElement('ul'); - tree.appendChild(ul); - printTreeNavResults(results, ul); - that.assignTreeListeners(); - that.recursivelyOpenTreeToCurrentDirectory(); - - var e = document.createEvent('CustomEvent'); - e.initCustomEvent(EurekaModel.EurekaTreePainted, true, true, { - data:data - }); - - that.getElement().dispatchEvent(e); - } - paintJSON(data:any) : void { - var that = this; - if(that.getController().getModel().getDebug()) console.log('paintJSON',data); - var model = this.getController().getModel(); - var cd = data.cd.charAt(data.cd.length - 1) == '/' ? data.cd : data.cd + '/'; - var results = data.results; - var tbodyHTML = ''; - var directoriesToAdd:Array = []; - var fileAdded:Boolean = false; - - that.getElement().classList.remove('nothing-found'); - for (var i = 0; i < results.length; i++) { - var result = results[i]; - if(result.filename) { - var filename = result.filename; - var safeFileName = filename.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, ''); - var src = result.src; - var thumb = result.thumb; - var filesize = result.filesize; - var dimensions = result.dimensions; - var editedon = (parseInt(result.editedon)) > 0 ? parseInt(result.editedon) : null; - var tr = document.createElement("tr"); - tr.classList.add('eureka__row'); - //tr.setAttribute('contenteditable', true); - tr.setAttribute('tabindex', "0"); - tr.setAttribute('data-tokens', ''); - tr.setAttribute('data-filename', filename); - tr.setAttribute('data-safe-filename', safeFileName); - tr.setAttribute('data-src',src); - if(thumb) tr.setAttribute('data-thumb',thumb); - tr.setAttribute('data-dimensions-w', dimensions.split('x')[0]); - tr.setAttribute('data-dimensions-h', dimensions.split('x')[1]); - tr.setAttribute('data-filesize-bytes', filesize); - tr.setAttribute('data-timestamp', (editedon) ? editedon.toString() : '0'); - var td = document.createElement("td"); - td.setAttribute('contenteditable', 'false'); - td.classList.add('eureka__row-image'); - var imgD = document.createElement('div'); - imgD.classList.add('image'); - var img = document.createElement('img'); - img.setAttribute('id',safeFileName + '__thumb'); - function addErrorListener(img,result,safeFileName) { - img.addEventListener('error',function(){ - var a = result.filename.split('.'); - var icon = 'file-o'; - switch(a[a.length-1].toLowerCase()) { // consider abstracting this part out into it's own plugin - case 'css': - icon = 'css3'; - break; - - case 'csv': - icon = 'file-excel-o'; - break; - - case 'xls': - icon = 'file-excel-o'; - break; - - case 'numbers': - icon = 'file-excel-o'; - break; - - case 'css': - icon = 'file-excel-o'; - break; - - case 'mp3': - icon = 'file-sound-o'; - break; - - case 'wav': - icon = 'file-sound-o'; - break; - - case 'wma': - icon = 'file-sound-o'; - break; - - case 'aac': - icon = 'file-sound-o'; - break; - - case 'flac': - icon = 'file-sound-o'; - break; - - case 'ppt': - icon = 'file-powerpoint-o'; - break; - - case 'pot': - icon = 'file-powerpoint-o'; - break; - - case 'pps': - icon = 'file-powerpoint-o'; - break; - - case 'zip': - icon = 'file-zip-o'; - break; - - case 'gzip': - icon = 'file-zip-o'; - break; - - case 'tar': - icon = 'file-zip-o'; - break; - - case 'mp4': - icon = 'file-movie-o'; - break; - - case 'ogv': - icon = 'file-movie-o'; - break; - - case 'm4v': - icon = 'file-movie-o'; - break; - - case 'avi': - icon = 'file-movie-o'; - break; - - case 'jpg': - case 'jpeg': - case 'gif': - case 'tiff': - case 'png': - case 'bpg': - case 'img': - case 'webp': - icon = 'file-picture-o'; - break; - - case 'php': - case 'html': - case 'htm': - case 'md': - icon = 'file-code-o'; - break; - - case 'js': - icon = 'file-text-o'; - break; - - default: - icon = 'file-o'; - break; - } - var div = (function(){ - var div = document.createElement('div'); - div.classList.add('icon-wrapper'); - div.classList.add('img'); - var i = document.createElement('i'); - i.classList.add('fa'); - i.classList.add('icon'); - i.classList.add('fa-' + icon); - i.classList.add('icon-' + icon); - div.appendChild(i); - - return div; - })(); - - - try { - document.getElementById(safeFileName + '__thumb').outerHTML = div.outerHTML; - } catch(e) {} - }); - } - addErrorListener(img,result,safeFileName); - - - //img.setAttribute('alt',filename); // after a11y testing this was determined to be unecessary - jp - imgD.appendChild(img); - img.setAttribute('src', (thumb) ? thumb : src); - var code = document.createElement('code'); - code.setAttribute('contenteditable', 'true'); - code.setAttribute('tabindex', '-1'); - code.setAttribute('sorta-draggable', 'true'); - code.innerHTML = filename; - td.appendChild(imgD); - - td.appendChild(code); - function createCode(html) { - var tag = document.createElement('code'); - tag.innerHTML = html; - return tag; - } - var tdDimensionCell = document.createElement('td'); - tdDimensionCell.classList.add('eureka__row-dimensions'); - tdDimensionCell.appendChild(createCode(dimensions || "n/a")); - var tdFilesizeCell = document.createElement('td'); - tdFilesizeCell.classList.add('eureka__row-filesize'); - if(parseInt(filesize)) { - tdFilesizeCell.appendChild(createCode(that.formatFileSize(filesize))); - } else { - tdFilesizeCell.appendChild(createCode('n/a')); - } - var tdEditedOnCell = document.createElement('td'); - tdEditedOnCell.classList.add('eureka__row-editedon'); - if(editedon) { - tdEditedOnCell.appendChild(createCode((new Date(editedon * 1000)).toLocaleDateString(model.getLocale(), { //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString - month: 'short', - day: 'numeric', - year: 'numeric' - }))); - } else { - tdEditedOnCell.appendChild(createCode('n/a')); - } - tr.appendChild(td); - if(that.getController().getModel().getShowDimensionsColumn()) tr.appendChild(tdDimensionCell); - tr.appendChild(tdFilesizeCell); - tr.appendChild(tdEditedOnCell); - tbodyHTML += tr.outerHTML; - - function createContextualRow() { - var tr = document.createElement('tr'); - tr.classList.add('contextual'); - tr.setAttribute('id', 'eureka_contextual__' + safeFileName); - //tr.setAttribute('tabindex','0'); - var td = document.createElement('td'); - td.setAttribute('colspan', '4'); - function createFlexibleNav() { - var nav = document.createElement('nav'); - nav.classList.add('flexible_row'); - nav.classList.add('contextual__nav'); - function createExpandBtn() { - var a = document.createElement('a'); - a.classList.add('expand'); - a.setAttribute('href', src); - a.setAttribute('title', 'Expand ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-expand'); - fa.classList.add('icon-expand'); - a.appendChild(fa); - a.innerHTML += ' Expand'; - return a; - } - function createChooseBtn() { - var a = document.createElement('a'); - a.classList.add('choose'); - a.setAttribute('title', 'Choose ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-check-circle-o'); - fa.classList.add('icon-check-circle-o'); - a.appendChild(fa); - a.innerHTML += ' Choose'; - return a; - } - function createRenameBtn() { - var a = document.createElement('a'); - a.classList.add('rename'); - a.setAttribute('title', 'Rename ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-edit'); - fa.classList.add('icon-edit'); - a.appendChild(fa); - a.innerHTML += ' Rename'; - return a; - } - function createTrashBtn() { - var a = document.createElement('a'); - a.classList.add('dangerous'); - a.classList.add('trash'); - a.setAttribute('title', 'Delete ' + filename); - a.setAttribute('target', '_blank'); - a.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-trash'); - fa.classList.add('icon-trash'); - a.appendChild(fa); - a.innerHTML += ' Delete'; - return a; - } - nav.appendChild(createExpandBtn()); - nav.appendChild(createChooseBtn()); - if (that.getController().getModel().getAllowRename() && document.execCommand) - nav.appendChild(createRenameBtn()); // should probably polyfill or just juse a standard text input instead #janky? #shame? - if (that.getController().getModel().getAllowDelete()) - nav.appendChild(createTrashBtn()); - //nav.appendChild(createFlexibleNavTagForm()); - //nav.appendChild(createFlexibleNavShareForm()); - function createFlexibleNavTagForm() { - var form = document.createElement('form'); - form.classList.add('tag'); - form.setAttribute('method', 'post'); - form.setAttribute('action', '#'); - var label = document.createElement('label'); - label.setAttribute('title', 'Tagging this media item will make it easier to find'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-tag'); - fa.classList.add('icon-tag'); - label.appendChild(fa); - label.innerHTML += ' Tag:'; - var input = document.createElement('input'); - input.setAttribute('type', 'text'); - input.setAttribute('placeholder', 'Tag this media item'); - input.setAttribute('tabindex', '-1'); - form.appendChild(label); - form.appendChild(input); - return form; - } - function createFlexibleNavShareForm() { - var form = document.createElement('form'); - form.classList.add('share'); - form.setAttribute('action', '#'); - form.setAttribute('title', "Share " + filename + " with other"); - form.appendChild(createMediaSourceInput()); - form.appendChild(createMediaItemInput()); - var button = document.createElement('button'); - button.classList.add('nued'); - button.setAttribute('type', 'submit'); - button.setAttribute('tabindex', '0'); - var fa = document.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('icon'); - fa.classList.add('fa-share-square-o'); - fa.classList.add('icon-share-square-o'); - button.appendChild(fa); - button.innerHTML += ' Share'; - form.appendChild(button); - function createMediaSourceInput() { - var input = document.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'mediasource'); - input.setAttribute('value', '0'); - return input; - } - function createMediaItemInput() { - var input = document.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'mediaitem'); - input.setAttribute('value', filename); - return input; - } - return form; - } - return nav; - } - td.appendChild(createFlexibleNav()); - tr.appendChild(td); - return tr; - } - - tbodyHTML += createContextualRow().outerHTML; - fileAdded = true; - } else { // it's a folder - //console.log(cd); - //console.log(result.directory); - //that.asyncronouslyAddDirectory(cd,result.directory); - directoriesToAdd.push({cd:cd,directory:result.directory}) - } - } - if(!fileAdded) that.getElement().classList.add('nothing-found'); - (function(){ - for(var i = 0; i < directoriesToAdd.length; i++) { - var d:any = (directoriesToAdd[i]); - that.asyncronouslyAddDirectory(d.cd,d.directory); - } - if(directoriesToAdd.length) { - //console.log('directoriesToAdd.length: ' + directoriesToAdd.length); - that.assignTreeListeners(); - //that.recursivelyOpenTreeToCurrentDirectory(); - } - })(); - - var thead:HTMLElement = (document.querySelector('#' + this.getController().getModel().getUID() + ' .eureka-table > table > thead')); - (document.querySelector('#' + this.getController().getModel().getUID() + ' .eureka-table')).innerHTML = '' + thead.outerHTML + '' + tbodyHTML + '' + '
'; - // bolden the correct tree item - try { - (this.getElement().querySelector('nav.tree li.active')).classList.remove('active'); - } - catch (e) { - } - try { - (function(){ - var el:HTMLElement = (that.getElement().querySelector('nav.tree li > a[data-cd="' + data.cd + '"]').parentNode); - el.classList.add('active'); - el.classList.add('open'); - - var folder:HTMLElement = (el.querySelector('.folder .fa-folder')); - folder.classList.add('fa-folder-open'); - folder.classList.add('icon-folder-open'); - folder.classList.remove('fa-folder'); - })(); - } - catch (e) { - } - try { - (this.getElement().querySelector('.pathbrowser__topbar > select')).value = data.cs; - } - catch (e) { - } - this.paint(); - } - asyncronouslyAddDirectory(cd, directory) { // this was added abruptly to support updating the media source tree asyncronously - var that = this; - if(that.getController().getModel().getDebug()) console.log('asyncronouslyAddDirectory'); - - var pathBrowser:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__pathbrowser')); - var paths = pathBrowser.querySelectorAll('.tree .path'); - - var cds:Array = cd.split('/').filter(Boolean); - var p = cd + directory + '/'; - var psa = p.split('/').filter(Boolean); - for(var i = 0; i < paths.length; i++) { - var path:HTMLElement = (paths[i]); - if((path.getAttribute('data-cd').split('/').filter(Boolean)).equals(psa)) { - if(that.getController().getModel().getDebug()) console.log(p + ' alread exists'); - return; - } - } - - for(var i = 0; i < paths.length; i++) { - var path:HTMLElement = (paths[i]); - var pcd = path.getAttribute('data-cd'); - if(cds.equals(pcd.split('/').filter(Boolean))) { // "paths" are equal regardless of trailing slashes - (function(_path){ - var ul:HTMLElement = _path.nextSibling; - var paths = ul.querySelectorAll(':scope > li > .path'); - var inserted = false; - - for(var i = 0; i < paths.length; i++) { - var path:HTMLElement = (paths[i]); - var _d = (function(path){ - var a = path.getAttribute('data-cd').split('/').filter(Boolean); - return a[a.length-1]; - })(path); - var s = [directory,_d]; - s.sort(); - - if(s[0] == directory) { // the directory to be inserted should preceed paths[i] - ul.insertBefore(that.createTreeNode(p),path.parentNode); - inserted = true; - break; - } - } - - if(!inserted) { // the directory to be inserted should be last - ul.appendChild(that.createTreeNode(p)); - inserted = true; - } - - })(path); - } - } - - (function(){ - var browsingSelect:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__browsing')); - var mediaSource = that.getController().getModel().getCurrentMediaSource(); - //console.log('setting optGrp'); - //console.log('currentMediaSource: ' + that.getController().getModel().getCurrentMediaSource()); - var optsGrp:HTMLElement = (function() : HTMLElement { - var os = browsingSelect.querySelectorAll('optgroup'); - for(var i =0; i < os.length; i++) { - var o:HTMLElement = os[i]; - if(o.getAttribute('data-source') == mediaSource) return o; - } - return null; - })(); - if(!optsGrp) return; - var _iH:string = p.split('/').filter(Boolean).join('/'); - var opts = optsGrp.querySelectorAll('option'); - for(var i = 0; i < opts.length; i++) { - var opt:HTMLElement = opts[i]; - if(opt.innerHTML == _iH) return; // it already exists - } - - var newOpt:HTMLElement = document.createElement('option'); - newOpt.setAttribute('value',JSON.stringify({cs:that.getController().getModel().getCurrentMediaSource(),cd:_iH})); - newOpt.setAttribute('data-cd',_iH + '/'); - newOpt.innerHTML = _iH; - - var inserted = false; - for(var i = 0; i < opts.length; i++) { - var opt:HTMLElement = opts[i]; - //console.log(opt.innerHTML); - var a = [opt.innerHTML,_iH]; - a.sort(); - - if(_iH == a[0]) { - optsGrp.insertBefore(newOpt,opt); - inserted = true; - break; - } - } - if(!inserted) optsGrp.appendChild(newOpt); - })(); - - (function(){ - var e = document.createEvent('CustomEvent'); - var data = that.getTreeData(); - e.initCustomEvent(EurekaModel.EurekaTreePainted, true, true, { - data:data - }); - - that.getElement().dispatchEvent(e); - })(); - } - getTreeData() { - var that = this; - if(that.getController().getModel().getDebug()) console.log('getTreeData'); - - var data = { - cs:parseInt(that.getController().getModel().getCurrentMediaSource()), - title:that.getController().getModel().getMediaSourceDTOByID(that.getController().getModel().getCurrentMediaSource()).getTitle(), - results:new Array() - }; - //{"cs":1,"title":"Filesystem","results":[{"path":"assets"},{"path":"connect"},{"path":"manage"}]} - var pathBrowser:HTMLElement = (document.getElementById(that.getController().getModel().getUID() + '__pathbrowser')); - var navTree:HTMLElement = (pathBrowser.querySelector('nav.tree')); - var tops = navTree.querySelectorAll(':scope > ul > li'); - for(var i = 0; i < tops.length; i++) { - var top:HTMLElement = tops[i]; - var dir = { - path:top.querySelector(':scope > a.path').getAttribute('data-cd'), - children:new Array() - }; - recursivelyAddChildrenToDir(dir, top.querySelectorAll(':scope > ul > li')); - data.results.push(dir); - - } - - return data; - - function recursivelyAddChildrenToDir(dir:any,lis:NodeList) { - for(var i = 0; i < lis.length; i++) { - var li:HTMLElement = (lis[i]); - var child = { - path:li.querySelector(':scope > a.path').getAttribute('data-cd'), - children:new Array() - }; - recursivelyAddChildrenToDir(child, li.querySelectorAll(':scope > ul > li')); - dir.children.push(child); - } - } - } - assignContextualClickListeners() { - var that = this; - that.assignContexualCodeFocusListeners(); - assignChooseListeners(); - assignRenameListeners(); - assignDeleteListeners(); - function assignChooseListeners() { - var anchors = that.getElement().querySelectorAll('tr.contextual a.choose'); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - anchor.addEventListener('click', function (e) { - e.preventDefault(); - handleChooseClicked(this); - }, false); - anchor.addEventListener('focus', function (e) { - ((that.getElement().parentNode).querySelector('footer.proceed .cta')).classList.add('go'); - ((that.getElement().parentNode).querySelector('footer.proceed .cta')).disabled = false; - (that.getElement().parentNode).querySelector('footer.proceed .cta').removeAttribute('disabled'); - }, false); - anchor.addEventListener('blur', function (e) { - ((that.getElement().parentNode).querySelector('footer.proceed .cta')).classList.remove('go'); - //that.getElement().parentNode.querySelector('footer.proceed .cta').disabled = true; - //that.getElement().parentNode.querySelector('footer.proceed .cta').setAttribute('disabled','disabled'); - }, false); - /*anchor.addEventListener('mouseover',function(e) { - ((that.getElement().parentNode).querySelector('footer.proceed .cta')).classList.add('go'); - }, false); - anchor.addEventListener('mouseout',function(e) { - ((that.getElement().parentNode).querySelector('footer.proceed .cta')).classList.remove('go'); - }, false);*/ - } - function handleChooseClicked(anchor) { - var contextual = that.getClosest(anchor, 'tr'); - var mediaRow:HTMLElement = (contextual.previousSibling); - that.getController().getModel().setChoosenMediaItem(mediaRow.getAttribute('data-filename')); - } - } - function assignDeleteListeners() { - var anchors = document.querySelectorAll('tr.contextual a.trash'); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - anchor.addEventListener('click', function (e) { - handleTrashClicked(this); - }, false); - anchor.addEventListener('focus', function (e) { - this.addEventListener('keydown', handleTrashKeyDown, false); - }, false); - anchor.removeEventListener('blur', function (e) { - this.removeEventListener('keydown', handleTrashKeyDown, false); - }, false); - } - function handleTrashClicked(anchor) { - var contextual:any = that.getClosest(anchor, 'tr'); - var mediaRow:any = (contextual.previousSibling); - var nextRow:HTMLElement = (contextual.nextSibling); - - // give them a way out - if(that.getController().getModel().getAlertBeforeDelete() && !window.confirm('Are you sure you want to delete ' + mediaRow.getAttribute('data-filename') + '?')) { - return false; - } - - // proceed - that.getController().getModel().deleteFile(mediaRow.getAttribute('data-filename'), mediaRow); - - function remove(el) { - try { - el.remove(); - } catch(e) { - el.parentNode.removeChild(el); // IE 10 doesn't support HTMLElement.remove() - } - } - - remove(mediaRow); - remove(contextual); - - try { - nextRow.focus(); - } - catch (e) { } - } - function handleTrashKeyDown(e) { - if (e.keyCode === 13) { - handleTrashClicked(this); - } - } - } - function assignRenameListeners() { - var anchors = document.querySelectorAll('tr.contextual a.rename'); - for (var i = 0; i < anchors.length; i++) { - var anchor = anchors[i]; - anchor.addEventListener('click', function (e) { - e.preventDefault(); - var code = getCodeToFocus(this); - selectCode(code); - }, false); - anchor.addEventListener('focus', function (e) { - this.addEventListener('keydown', handleAnchorKeyDown, false); - }, false); - anchor.addEventListener('blur', function (e) { - this.removeEventListener('keydown', handleAnchorKeyDown, false); - }, false); - } - function handleAnchorKeyDown(e) { - var code = getCodeToFocus(this); - var tr = that.getClosest(this, '.contextual').previousSibling; - if (e.keyCode === 13) { - e.preventDefault(); - e.stopPropagation(); - selectCode(code); - } - } - function selectCode(code) { - code.focus(); - try { - code.select(); // if you think about it contenteditable nodes should probably be selectable... - } - catch (e) { } - // consider selecting also - } - function getCodeToFocus(anchor) { - var tr = that.getClosest(anchor, 'tr'); - var mediaRow:HTMLElement = (tr.previousSibling); - var code = mediaRow.querySelector('.eureka__row-image code[contenteditable="true"]'); - return code; - } - } - } - assignContexualCodeFocusListeners(){ - var that = this; - var codes = this.getElement().querySelectorAll('tr.eureka__row .eureka__row-image code[contenteditable="true"]'); - for (var i = 0; i < codes.length; i++) { - var code = (codes[i]); - code.addEventListener('focus', function () { - this.addEventListener('keydown', handleCodeKeyPress, false); - }, false); - function handleCodeKeyPress(e) { - if (e.keyCode === 13) { - e.preventDefault(); - var tr = this.parentNode.parentNode; // #janky? :/ - var contextual = tr.nextSibling; - var filename = tr.getAttribute('data-filename'); - code.contentEditable = 'false'; - var newFilename = this.innerHTML; - that.getController().getModel().renameFile(filename, newFilename); - var next = contextual.querySelector('nav > a.rename'); - next.focus(); - window.getSelection().collapse(next, 0); - return false; - } - return true; - } - } - } - // ensure the optgroups are always sorted in order of their respective media source ids - sortBrowseSelectOptGroupsByMediaSourceId(select) { - if (select === undefined) - select = document.getElementById(this.getController().getModel().getUID() + '__browsing').querySelector('select'); - var os = []; - var optgrps = select.querySelectorAll('optgroup'); - for (var i = 0; i < optgrps.length; i++) { - os.push(optgrps[i]); - } - var optgroups = os.sort(function (a, b) { - return parseInt(a.getAttribute('data-source')) - parseInt(b.getAttribute('data-source')); - }); - select.innerHTML = ''; - for (var _i = 0; _i < optgroups.length; _i++) { - var optgroup = optgroups[_i]; - select.appendChild(optgroup); - } - } - updateMediaSourceListings(data) { - var that = this; - - if(that.getController().getModel().getDebug()) console.log('updateMediaSourceListings: ', data); - - var id = data.cs; - var source = this.getController().getModel().getMediaSourceDTOByID(id); - function updateTreeSelect() { - if(that.getController().getModel().getDebug()) console.log('updateTreeSelect'); - var select = document.getElementById(that.getController().getModel().getUID() + '__mediasource-select'); - var option = null; - try { - option = select.querySelector('option[value="' + id + '"]'); - } - catch (e) { } - if (!option) { - option = document.createElement('option'); - option.setAttribute('value', id); - option.innerHTML = data.title; - select.appendChild(option); - } - } - function updateTopBarSelect() { - if(that.getController().getModel().getDebug()) console.log('updateTopBarSelect'); - var select = document.getElementById(that.getController().getModel().getUID() + '__browsing').querySelector('select'); - if(that.getController().getModel().getDebug()) console.log(select); - var optgroup = null; - try { - optgroup = select.querySelector('optgroup[data-source="' + id + '"]'); - } - catch (e) { } - if (!optgroup) { - optgroup = document.createElement('optgroup'); - optgroup.setAttribute('label', data.title); - optgroup.setAttribute('data-source', id); - } - var results = data.results; - if(that.getController().getModel().getPrependOptGroupsWithRootOption()) results.unshift({"path":"/"}); - var options = []; - printOptGroupOptions(results); - optgroup.innerHTML = ''; - function printOptGroupOptions(results) { - function serialize(obj) { - var str = []; - for(var p in obj){ - if (obj.hasOwnProperty(p)) { - str.push((p) + "=" + (obj[p])); - } - } - return str.join("&"); - } - for (var i = 0; i < results.length; i++) { - var result = results[i]; - var option = document.createElement('option'); - option.innerHTML = (that.sanitizeDisplayPath(result.path)) ? that.sanitizeDisplayPath(result.path) : result.path; - option.setAttribute('value', JSON.stringify({cs:data.cs,cd:that.sanitizeDisplayPath(result.path)})); - option.setAttribute('data-cd', result.path); - options.push(option); - if (result.children && result.children.length) - printOptGroupOptions(result.children); - } - } - for (var _i = 0; _i < options.length; _i++) { - var option = options[_i]; - optgroup.appendChild(option); - } - select.appendChild(optgroup); - that.sortBrowseSelectOptGroupsByMediaSourceId(select); - } - updateTreeSelect(); - updateTopBarSelect(); - that.setBrowseSelectValue(); - that.setMediaSourceSelectValue(); - } - getSelectedOption (select) { - var options = select.querySelectorAll('option'); - for(var i = 0; i < options.length; i++) { - var option = options[i]; - if(option.selected) return option; - } - } - formatFileSize(size:number) : String { - var sizes = [' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB']; - for (var i = 1; i < sizes.length; i++) { - if (size < Math.pow(1024, i)) return (Math.round((size/Math.pow(1024, i-1))*100)/100) + sizes[i-1]; - } - return size.toString(); - } - getClosest(elem:any, selector:string) : HTMLElement { - var firstChar = selector.charAt(0); - - // Get closest match - for ( ; elem && elem !== document; elem = elem.parentNode ) { - - // If selector is a class - if ( firstChar === '.' ) { - if ( elem.classList.contains( selector.substr(1) ) ) { - return elem; - } - } - - // If selector is an ID - if ( firstChar === '#' ) { - if ( elem.id === selector.substr(1) ) { - return elem; - } - } - - // If selector is a data attribute - if ( firstChar === '[' ) { - if ( elem.hasAttribute( selector.substr(1, selector.length - 2) ) ) { - return elem; - } - } - - // If selector is a tag - if ( elem.tagName.toLowerCase() === selector ) { - return elem; - } - - } - - return null; - } - -} // end class EurekaView - - -interface ModelViewObj { - model: EurekaModel; - view: EurekaView; -} - -class EurekaController { - private _model:EurekaModel; - private _view:EurekaView; - - getModel() { - return this._model; - } - getView() { - return this._view; - } - - constructor(public opts:ModelViewObj) { - this._model = opts.model; - this._view = opts.view; - } - - init() { - var that = this; - var eureka:HTMLElement = that.getView().getElement(); // we found it! - - if(that.getModel().getDebug()) console.log('init'); - - that.getView().getElement().addEventListener(EurekaModel.EurekaTreePainted, function(e:any){ - var d = e.detail.data; - if(that.getModel().getDebug()) console.log('EurekaTreePainted!!!',e,d); - if(that.getModel().useLocalStorage()) that.getModel().setLocalStorage(d.cs.toString() + '_mediaSourceData',JSON.stringify(d)); - }); - - if(that.getModel().useLocalStorage()) { - (function(){ - var mediaSourcesData = that.getModel().getLocalStorage('mediaSourcesData'); - if(that.getModel().getDebug()) console.log('using local storage setMediaSourcesData', 'mediaSourcesData: ', mediaSourcesData); - if(mediaSourcesData) { - // data,dispatch,setLocalStorage,clearDirectory,dispatchIdenticalValues - that.getModel().setMediaSourcesData(JSON.parse(mediaSourcesData), true, false, false, true); - } - })(); - - (function(){ - var mediaSourceData = that.getModel().getLocalStorage(that.getModel().getCurrentMediaSource() + '_mediaSourceData'); - if(mediaSourceData) { - if(that.getModel().getDebug()) console.log('using local storage paintTree', 'mediaSourceData: ', mediaSourceData); - that.getView().paintTree(JSON.parse(mediaSourceData)); - that.getView().recursivelyOpenTreeToCurrentDirectory(); - } - })(); - - (function(){ - var directoryData:string = that.getModel().getLocalStorage('lastDirectoryPainted'); - if(that.getModel().getDebug()) console.log('using local storage paintJSON', 'directoryData: ', directoryData); - if(directoryData) { - var dd:any = JSON.parse(directoryData); - that.getModel().setCurrentDirectory(dd.cd,false,false,false); - that.getView().paintJSON(dd); - that.getView().recursivelyOpenTreeToCurrentDirectory(); - } - })(); - } - - // listen for when certain things happen (currently the DOM element itself dispatches the events) - eureka.addEventListener(EurekaModel.EurekaViewChange, function (e:any) { // #janky - //that.getModel().setCurrentView(e.currentView, false); - }); - eureka.addEventListener(EurekaModel.EurekaDirectoryChanged, function (e:any) { - if(!that.getModel().getCurrentMediaSource()) return; - if(that.getModel().getDebug()) console.log(EurekaModel.EurekaDirectoryChanged, ' requesting data from ', that.getModel().getListDirectoryRequestURL()); - function handleJSONData(d) { - if(that.getModel().useLocalStorage()) that.getModel().setLocalStorage('lastDirectoryPainted',JSON.stringify(d)); - if(that.getModel().getDebug()) console.log(d); - that.getView().paintJSON(d); - } - if(that.getModel().getUseWebWorkers()) { - (function(){ - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listdirectory.js'); - worker.addEventListener('message',function(e){ - handleJSONData(e.data); - }, false); - worker.postMessage({ - listDirectoryRequestURL:that.getModel().getListDirectoryRequestURL(), - currentMediaSource:that.getModel().getCurrentMediaSource(), - currentDirectory: e.detail.currentDirectory || '/', - headers:that.getModel().getXHRHeaders() - }); - })(); - } else { - var ajax = new AJAX(); - ajax.get( - that.getModel().getListDirectoryRequestURL(), - { s: that.getModel().getCurrentMediaSource(), dir: e.detail.currentDirectory || '/' }, - function (data) { - handleJSONData(JSON.parse(data)); - }, - true, - that.getModel().getXHRHeaders() - ); - } - }); - eureka.addEventListener(EurekaModel.EurekaDirectoryOpened, function(e:any) { - if(that.getModel().getDebug()) console.log(EurekaModel.EurekaDirectoryOpened); - var path = e.detail.path.charAt(e.detail.path.length - 1) == '/' ? e.detail.path : e.detail.path + '/'; - - function handleJSONData(d) { - if(that.getModel().getDebug()) console.log(d); - - var results = d.results; - for(var i = 0; i < results.length; i++) { - var result = results[i]; - - if(result.directory) { - that.getView().asyncronouslyAddDirectory(path, result.directory); - } - } - if(results.length) that.getView().assignTreeListeners(); - } - if(that.getModel().getUseWebWorkers()) { - (function(){ - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listdirectory.js'); - worker.addEventListener('message',function(e){ - handleJSONData(e.data); - }, false); - worker.postMessage({ - listDirectoryRequestURL:that.getModel().getListDirectoryChildrenRequestURL(), - currentMediaSource:that.getModel().getCurrentMediaSource(), - currentDirectory: e.detail.path || '/', - headers:that.getModel().getXHRHeaders() - }); - })(); - } else { - var ajax = new AJAX(); - ajax.get( - that.getModel().getListDirectoryChildrenRequestURL(), - { s: that.getModel().getCurrentMediaSource(), dir: e.detail.path || '/' }, - function (data) { - handleJSONData(JSON.parse(data)); - }, - true, - that.getModel().getXHRHeaders() - ); - } - }); - eureka.addEventListener(EurekaModel.EurekaMediaSourceChange, function (e:any) { - if(that.getModel().getDebug()) console.log(EurekaModel.EurekaMediaSourceChange); - function handleJSONData(d) { - if(that.getModel().getDebug()) console.log('EurekaMediaSourceChange handleJSONData: ',d, e); - if(d.cs && that.getModel().useLocalStorage()) that.getModel().setLocalStorage(d.cs + '_mediaSourceData',JSON.stringify(d)); - that.getView().paintTree(d); - if(e.detail.clearDirectory == true) { - if(that.getModel().getDebug()) console.log('clearing directory'); - that.getModel().setCurrentDirectory('',true,false); // clear the current directory and trigger a repaint - } - } - if(that.getModel().getUseWebWorkers()) { - (function(){ - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listsource.js'); - worker.addEventListener('message',function(e){ - handleJSONData(e.data); - }, false); - worker.postMessage({ - listSourceRequestURL:that.getModel().getListSourceRequestURL(), - currentMediaSource:that.getModel().getCurrentMediaSource(), - headers:that.getModel().getXHRHeaders() - }); - })(); - } else { - var ajax = new AJAX(); - ajax.get( - that.getModel().getListSourceRequestURL(), - { s: e.detail.currentMediaSource }, - function (data) { - handleJSONData(JSON.parse(data)); - }, - true, - that.getModel().getXHRHeaders() - ); - } - }); - eureka.addEventListener(EurekaModel.EurekaMediaSourceInit, function(e:any) { - if(that.getModel().getDebug()) console.log('EurekaMediaSourceInit: !!!!',e); - if(!that.getModel().useLocalStorage()) { - that.getModel().setCurrentDirectory(that.getModel().getCurrentDirectory(), true, false, true); - } - }); - eureka.addEventListener(EurekaModel.EurekaMediaSourcesListChange, function (e:any) { - if(that.getModel().getDebug()) console.log('MediaSourcesListChange: '); - var sources = e.detail.sources; - for (var i = 0; i < sources.length; i++) { - var source = new EurekaMediaSource(sources[i].opts); - var id = source.getID(); - //var title = source.getTitle(); - - requestMediaListings(source); - function requestMediaListings(source:EurekaMediaSource) { - if(that.getModel().getDebug()) console.log('requestMediaListings'); - var id = source.getID(); - function handleJSONData(d) { - if(that.getModel().getDebug()) console.log(d); - that.getView().updateMediaSourceListings(d); - } - if(that.getModel().getUseWebWorkers()) { - (function(){ - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listsource.js'); - worker.addEventListener('message',function(e){ - handleJSONData(e.data); - }, false); - worker.postMessage({ - listSourceRequestURL:that.getModel().getListSourceRequestURL(), - currentMediaSource:id, - headers:that.getModel().getXHRHeaders() - }); - })(); - } else { - var ajax = new AJAX(); - ajax.get( - that.getModel().getListSourceRequestURL(), - { s: id }, - function (data) { - data = JSON.parse(data); - handleJSONData(data); - }, - true, - that.getModel().getXHRHeaders() - ); - } - } - } - }); - if(that.getModel().getDebug()) console.log('MediaSourcesListChange listener added'); - (function(){ - if(that.getModel().getDebug()) console.log('requesting sources: '); - function handleJSONData(d) { - if(that.getModel().getDebug()) console.log(d); - if(that.getModel().useLocalStorage()) that.getModel().setLocalStorage('mediaSourcesData',JSON.stringify(d)); - that.getModel().setMediaSourcesData(d); - } - if(that.getModel().getUseWebWorkers()) { - (function(){ - var worker = new Worker(that.getModel().getwebWorkersPath() + 'listsources.js'); - worker.addEventListener('message',function(e){ - handleJSONData(e.data); - }, false); - worker.postMessage({ - listSourcesRequestURL:that.getModel().getListSourcesRequestURL(), - headers:that.getModel().getXHRHeaders() - }); - })(); - } else { - var ajax = new AJAX(); - ajax.get( - that.getModel().getListSourcesRequestURL(), - {}, - function (data) { - data = JSON.parse(data); - handleJSONData(data); - }, - true, - that.getModel().getXHRHeaders() - ); - } - })(); - - } -} // end class EurekaController diff --git a/_build/ts/muckboot.eureka.ts b/_build/ts/muckboot.eureka.ts deleted file mode 100644 index 21ec08c..0000000 --- a/_build/ts/muckboot.eureka.ts +++ /dev/null @@ -1,661 +0,0 @@ -/// - -var MuckBoot; -(function(){ - var d = document; - MuckBoot = function(opts) { - var defaults = { - id: 'media-browser_0', - upload: true, - enlargeFocusRows:true, - hideImagesOnListView:true - }; - - if(opts.id === undefined) opts.id = 'media-browser_0'; - if(opts.upload === undefined) opts.upload = true; - if(opts.createDir === undefined) opts.createDir = true; - if(opts.enlargeFocusRows === undefined) opts.enlargeFocusRows = true; - if(opts.hideImagesOnListView === undefined) opts.hideImagesOnListView = true; - if(opts.allowFullScreen === undefined) opts.allowFullScreen = true; - - this.opts = opts; - - this.muck(); - }; - - MuckBoot.prototype.getID = function(){ - return this.opts.id; - }; - - MuckBoot.prototype.muck = function() { - var that = this; - - var eureka = d.createElement('div'); - eureka.classList.add('view-a'); - if(this.opts.enlargeFocusRows) eureka.classList.add('enlarge-focused-rows'); - if(this.opts.hideImagesOnListView) eureka.classList.add('no-images-on-list'); - eureka.classList.add('eureka'); - eureka.classList.add('sidebar-open'); - eureka.setAttribute('id',this.opts.id); - - function createPathBrowser(opts) { - var nav = d.createElement('nav'); - nav.setAttribute('id',opts.id + '__pathbrowser'); - nav.classList.add('pathbrowser'); - - function createPathBrowserTopBar() { - var div = d.createElement('div'); - div.classList.add('pathbrowser__topbar'); - - var label = d.createElement('label'); - label.setAttribute('for',opts.id + '__mediasource-select'); - - var heading = d.createElement('h4'); - heading.innerHTML = 'Media Source'; - - label.appendChild(heading); - - var mediaSourceSelectLevelup = d.createElement('div'); - mediaSourceSelectLevelup.classList.add('mediasource-select-level-up'); - - var select = d.createElement('select'); - select.setAttribute('id',opts.id + '__mediasource-select'); - select.setAttribute('title','Choose a Media Source to browse'); - - mediaSourceSelectLevelup.appendChild(select); - - (function(){ - var a = d.createElement('a'); - a.setAttribute('href','#'); - a.setAttribute('class','level-up'); - a.setAttribute('title','Browse Parent Directory'); - - var i = d.createElement('i'); - i.classList.add('fa'); - i.classList.add('fa-level-up'); - i.classList.add('icon'); - i.classList.add('icon-level-up'); - a.appendChild(i); - - var p = d.createElement('p'); - p.classList.add('audible'); - p.innerHTML = 'Browse Parent Directory'; - a.appendChild(p); - - mediaSourceSelectLevelup.appendChild(a); - })(); - - - div.appendChild(label); - div.appendChild(mediaSourceSelectLevelup); - - return div; - } - - function createPathBrowserNavTree() { - var nav = d.createElement('nav'); - - nav.classList.add('tree'); - - var ul = d.createElement('ul'); - nav.appendChild(ul); - - return nav; - } - - function createPathBrowserFooter() { - var footer = d.createElement('footer'); - if(that.opts.upload) footer.classList.add('drop'); - - var nav = d.createElement('nav'); - - function createPathBrowserFooterMediaSourceInput() { - var input = d.createElement('input'); - input.setAttribute('type','hidden'); - input.setAttribute('name','mediasource'), - input.setAttribute('value','0'); - - return input; - } - - function createPathBrowserFooterMediaPathInput() { - var input = d.createElement('input'); - input.setAttribute('type','hidden'); - input.setAttribute('name','mediapath'), - input.setAttribute('value','/'); - - return input; - } - - function createPathBrowserFooterCreateNewForm() { - nav.appendChild(createPathBrowserFooterMediaSourceInput()); - nav.appendChild(createPathBrowserFooterMediaPathInput()); - - var btn = d.createElement('button'); - btn.setAttribute('type','submit'); - btn.setAttribute('class','nued create-new'); - btn.setAttribute('title','Create a new directory'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-plus-square'); - fa.classList.add('icon'); - fa.classList.add('icon-plus-square'); - - var p = d.createElement('p'); - p.classList.add('audible'); - p.innerHTML = 'Create a new directory'; - - btn.appendChild(fa); - btn.appendChild(p); - - nav.appendChild(btn); - - return nav; - } - - function createPathBrowserFooterSearchBtn() : HTMLElement { - var btn:HTMLElement = d.createElement('a'); - btn.classList.add('btn'); - btn.setAttribute('href','#' + that.opts.id + '__filter-images'); - - var i = d.createElement('i'); - i.classList.add('fa'); - i.classList.add('fa-search'); - i.classList.add('icon'); - i.classList.add('icon-search'); - - btn.appendChild(i); - - return btn; - } - - function createPathBrowserFooterUploadForm() { - var form = d.createElement('form'); - //form.setAttribute('action','#upload'); - - form.appendChild(createPathBrowserFooterMediaSourceInput()); - form.appendChild(createPathBrowserFooterMediaPathInput()); - - var btn = d.createElement('button'); - btn.setAttribute('type','submit'); - btn.setAttribute('class','nued upload-files'); - btn.setAttribute('title','Upload a file'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-upload'); - fa.classList.add('icon'); - fa.classList.add('icon-upload'); - - var p = d.createElement('p'); - p.classList.add('audible'); - p.innerHTML = 'Upload media'; - - btn.appendChild(fa); - btn.appendChild(p); - - form.appendChild(btn); - - return form; - } - - if(that.opts.createDir) createPathBrowserFooterCreateNewForm(); - - if(that.opts.upload) { - (function(){ - var da = d.createElement('div'); - da.classList.add('droparea'); - - var dz = d.createElement('div'); - dz.classList.add('dropzone'); - dz.setAttribute('title','Drag & Drop files here to upload them'); - - var dzm = d.createElement('div'); - dzm.classList.add('progress'); - dz.appendChild(dzm); - - da.appendChild(dz); - footer.appendChild(da); - })(); - } - - if(opts.upload) nav.appendChild(createPathBrowserFooterUploadForm()); - footer.appendChild(nav); - - return footer; - } - - nav.appendChild(createPathBrowserTopBar()); - nav.appendChild(createPathBrowserNavTree()); - nav.appendChild(createPathBrowserFooter()); - - return nav; - } - - function createBrowserStage(opts) { - var browserStage = d.createElement('div'); - browserStage.setAttribute('id',opts.id + '__stage') - browserStage.classList.add('stage'); - - function createEurekaTopBar() { - var div = d.createElement('div'); - div.classList.add('eureka__topbar'); - - function createEurekaTopBarNav() { - var nav = d.createElement('nav'); - nav.classList.add('eureka__topbar-nav'); - - function createEurekaTopBarNavToggleBtn() { - var a = d.createElement('a'); - a.setAttribute('id',opts.id + '__pathbrowser_toggle'); - a.classList.add('pathbrowser_toggle'); - a.setAttribute('title','Close Navigation Tree'); - a.setAttribute('data-title-close','Close Navigation Tree'); - a.setAttribute('data-title-open','Open Navigation Tree'); - a.setAttribute('data-toggle-target',opts.id + '__pathbrowser'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-toggle-left'); - fa.classList.add('icon'); - fa.classList.add('icon-toggle-left'); - - a.appendChild(fa); - - return a; - } - - function createEurekaTopbarBrowseSelectForm() { - var form = d.createElement('form'); - form.setAttribute('action','#'); - form.setAttribute('id',opts.id + '__browsing'); - - var select = d.createElement('select'); - - form.appendChild(select); - - return form; - } - - function createEurekaTopBarBrowseSelect() { - var div = d.createElement('div'); - div.setAttribute('id',opts.id + '__browse-select'); - div.classList.add('tablet-p-hidden'); - div.classList.add('browse-select'); - - var label = d.createElement('label'); - label.classList.add('tablet-p-hidden'); - label.classList.add('browse-select'); - label.setAttribute('for',opts.id + '__browsing'); - label.innerHTML = 'Browse'; - - div.appendChild(label); - div.appendChild(createEurekaTopbarBrowseSelectForm()); - - return div; - } - - function createEurekaTopBarUploadForm() : HTMLElement { - var div = d.createElement('div'); - div.setAttribute('id',opts.id + '__upload'); - div.classList.add('upload-form'); - - var label = d.createElement('label'); - label.setAttribute('for',opts.id + '__upload-form'); - label.innerHTML = 'Upload:'; - - var form = d.createElement('form'); - form.setAttribute('action','#'); - form.setAttribute('id',opts.id + '__upload-form'); - - var input = d.createElement('input'); - input.setAttribute('id',opts.id + '__upload-input'); - input.setAttribute('multiple','multiple'); - input.setAttribute('name','uploadFiles'); - input.setAttribute('type','file'); - - form.appendChild(input); - - div.appendChild(label); - div.appendChild(form); - - return div; - } - - function createEurekaTopBarViewBtns() { - var div = d.createElement('div'); - div.classList.add('view-btns'); - - var btns = [ - (function(){ - var a = d.createElement('a'); - a.classList.add('current'); - a.classList.add('view-a-btn'); - a.setAttribute('data-view','view-a'); - a.setAttribute('data-view-target',opts.id); - a.setAttribute('asyncronous-title','Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-th-list'); - fa.classList.add('icon'); - fa.classList.add('icon-th-list'); - - a.appendChild(fa); - - return a; - })(), - (function(){ - var a = d.createElement('a'); - a.classList.add('view-b-btn'); - a.setAttribute('data-view','view-b'); - a.setAttribute('data-view-target',opts.id); - a.setAttribute('asyncronous-title','Thumbnail layout displays a grid of medium sized thumbnails'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-th-large'); - fa.classList.add('icon'); - fa.classList.add('icon-th-large'); - - a.appendChild(fa); - - return a; - })(), - (function(){ - var a = d.createElement('a'); - a.classList.add('view-d-btn'); - a.setAttribute('data-view','view-d'); - a.setAttribute('data-view-target',opts.id); - a.setAttribute('asyncronous-title','Grid View displays images a grid of large images'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-square'); - fa.classList.add('icon'); - fa.classList.add('icon-square'); - - a.appendChild(fa); - - return a; - })(), - (function(){ - var a = d.createElement('a'); - a.classList.add('view-d-btn'); - a.setAttribute('data-view','view-e'); - a.setAttribute('data-view-target',opts.id); - a.setAttribute('asyncronous-title','List Layout displays Name, Description, File Size and Edited On columns'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-list'); - fa.classList.add('icon'); - fa.classList.add('icon-list'); - - a.appendChild(fa); - - return a; - })() - ]; - - if(opts.allowFullScreen) btns.push((function(){ - var a = d.createElement('a'); - a.classList.add('view-f-btn'); - a.setAttribute('data-view','view-f'); - a.setAttribute('title','Toggle Fullscreen Mode'); - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-expand'); - fa.classList.add('icon'); - fa.classList.add('icon-expand'); - - a.appendChild(fa); - - return a; - })()); - - var nav = d.createElement('nav'); - - //for(var btn of btns) nav.appendChild(btn); // #oneday - for(var i = 0; i < btns.length; i++) nav.appendChild(btns[i]); - - div.appendChild(nav); - - return div; - } - - function createEurekaTopbarNavHeader() { - var header = d.createElement('header'); - - var h4 = d.createElement('h4'); - h4.setAttribute('id',opts.id + '__mediacontent-current-source'); - var span = d.createElement('span'); - span.classList.add('mediasource-title'); - span.setAttribute('data-prepend',''); - h4.innerHTML = 'Media Content '; - h4.appendChild(span); - header.appendChild(h4); - - header.appendChild(createEurekaTopBarForm()); - - return header; - } - - nav.appendChild(createEurekaTopbarNavHeader()); - - function createEurekaTopBarNavSelect() { - var div = d.createElement('div'); - div.classList.add('eureka__topbar-nav__select'); - - div.appendChild(createEurekaTopBarNavToggleBtn()); - div.appendChild(createEurekaTopBarBrowseSelect()); - if(opts.upload) div.appendChild(createEurekaTopBarUploadForm()); - div.appendChild(createEurekaTopBarViewBtns()); - - return div; - } - - nav.appendChild(createEurekaTopBarNavSelect()); - - return nav; - } - - function createEurekaTopBarForm() { - var form = d.createElement('form'); - - var input = d.createElement('input'); - input.setAttribute('id',opts.id + '__filter-images'); - input.setAttribute('type','search'); - input.setAttribute('placeholder','Filter images'); - input.setAttribute('autocomplete','off'); - - form.appendChild(input); - - return form; - } - - div.appendChild(createEurekaTopBarNav()); - - return div; - } - - function createEurekaTable() { - var div = d.createElement('div'); - div.classList.add('eureka-table'); - - var table = d.createElement('table'); - - var thead = d.createElement('thead'); - - var tr = d.createElement('tr'); - - var tbody = d.createElement('tbody'); - - var ths = [ - (function(){ - var th = d.createElement('th'); - - th.innerHTML = 'Name '; - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby','name'); - fa.setAttribute('data-sort-asc','1'); - - th.appendChild(fa); - - return th; - })(), - (function(){ - var th = d.createElement('th'); - th.classList.add('dimensions'); - th.innerHTML = 'Dimensions '; - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby','dimensions'); - fa.setAttribute('data-sort-asc','1'); - - th.appendChild(fa); - - return th; - })(), - (function(){ - var th = d.createElement('th'); - - th.innerHTML = 'File Size '; - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby','filesize'); - fa.setAttribute('data-sort-asc','1'); - - th.appendChild(fa); - - return th; - })(), - (function(){ - var th = d.createElement('th'); - - th.innerHTML = 'Edited On '; - - var fa = d.createElement('i'); - fa.classList.add('fa'); - fa.classList.add('fa-sort'); - fa.classList.add('icon'); - fa.classList.add('icon-sort'); - fa.setAttribute('data-sortby','editedon'); - fa.setAttribute('data-sort-asc','1'); - - th.appendChild(fa); - - return th; - })() - ]; - - //for(var th of ths) tr.appendChild(th); // #onday - for(var i = 0; i < ths.length; i++) tr.appendChild(ths[i]); - - thead.appendChild(tr); - table.appendChild(thead); - table.appendChild(tbody); - - div.appendChild(table); - - return div; - } - - browserStage.appendChild(createEurekaTopBar()); - browserStage.appendChild(createEurekaTable()); - browserStage.appendChild(createEurekaTableUhOh()); - - return browserStage; - } - - function createEurekaTableUhOh() { - var div = document.createElement('div'); - div.classList.add('eureka-table'); - div.classList.add('oh-no'); - - var h3 = document.createElement('h3'); - - var i = document.createElement('i'); - i.classList.add('fa'); - i.classList.add('fa-folder-open-o'); - i.classList.add('icon'); - i.classList.add('icon-folder-open-o'); - - var code = document.createElement('code'); - - var p = document.createElement('p'); - p.innerHTML = 'No files were found in this directory.
Perhaps you\'d like to upload some files?
'; - - h3.appendChild(i); - h3.appendChild(code); - h3.appendChild(p); - - div.appendChild(h3); - - return div; - } - - function createChooseFooter(opts) { - var footer = d.createElement('footer'); - footer.classList.add('proceed'); - - var btns = [ - (function(){ - var btn = d.createElement('button'); - btn.classList.add('cancel'); - btn.classList.add('muted'); - btn.classList.add('clickable'); - btn.innerHTML = 'Cancel'; - - return btn; - })(), - (function(){ - var btn = d.createElement('button'); - btn.classList.add('btn'); - btn.classList.add('clickable'); - btn.classList.add('cta'); - btn.setAttribute('disabled','disabled'); - btn.setAttribute('id',opts.id + '__choose-btn'); - btn.setAttribute('type','submit'); - btn.innerHTML = 'Choose'; - - return btn; - })() - ]; - - //for(var btn of btns) footer.appendChild(btn); // #onday - for(var i = 0; i < btns.length; i++) footer.appendChild(btns[i]); - - return footer; - } - - var pathBrowser = createPathBrowser(this.opts); - eureka.appendChild(pathBrowser); - - var browserStage = createBrowserStage(this.opts); - eureka.appendChild(browserStage); - - var eurekaWrapper = d.createElement('div'); - eurekaWrapper.classList.add('eureka-wrapper'); - - eurekaWrapper.appendChild(eureka); - eurekaWrapper.appendChild(createChooseFooter(this.opts)); - - d.getElementById(this.opts.id).outerHTML = eurekaWrapper.outerHTML; - } -})(); diff --git a/_build/ts/plugins.ts b/_build/ts/plugins.ts deleted file mode 100644 index 9c78acb..0000000 --- a/_build/ts/plugins.ts +++ /dev/null @@ -1,136 +0,0 @@ -(function() { - - if (!HTMLElement.prototype.querySelectorAll) { - throw new Error('rootedQuerySelectorAll: This polyfill can only be used with browsers that support querySelectorAll'); - } - - // A temporary element to query against for elements not currently in the DOM - // We'll also use this element to test for :scope support - var container = document.createElement('div'); - - // Check if the browser supports :scope - try { - // Browser supports :scope, do nothing - container.querySelectorAll(':scope *'); - } - catch (e) { - // Match usage of scope - var scopeRE = /^\s*:scope/gi; - - // Overrides - function overrideNodeMethod(prototype, methodName) { - // Store the old method for use later - var oldMethod = prototype[methodName]; - - // Override the method - prototype[methodName] = function(query) { - var nodeList, - gaveId = false, - gaveContainer = false; - - if (query.match(scopeRE)) { - // Remove :scope - query = query.replace(scopeRE, ''); - - if (!this.parentNode) { - // Add to temporary container - container.appendChild(this); - gaveContainer = true; - } - - var parentNode = this.parentNode; - - if (!this.id) { - // Give temporary ID - this.id = 'rootedQuerySelector_id_'+(new Date()).getTime(); - gaveId = true; - } - - // Find elements against parent node - nodeList = oldMethod.call(parentNode, '#'+this.id+' '+query); - - // Reset the ID - if (gaveId) { - this.id = ''; - } - - // Remove from temporary container - if (gaveContainer) { - container.removeChild(this); - } - - return nodeList; - } - else { - // No immediate child selector used - return oldMethod.call(this, query); - } - }; - } - - // Browser doesn't support :scope, add polyfill - overrideNodeMethod(HTMLElement.prototype, 'querySelector'); - overrideNodeMethod(HTMLElement.prototype, 'querySelectorAll'); - } -}()); - - -var matches = function(el, selector) { - return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector); -}; - -var getClosest = function(element, selector) { - for (; element && element !== document; element = element.parentNode) { - if (matches(element, selector)) { - return element; - } - } - - return false; -}; - -var getParents = function(element, selector) { - var parents = []; - - for (; element && element !== document; element = element.parentNode) { - if (!selector || (selector && matches(element, selector))) { - parents.push(element); - } - } - - if (parents.length) { - return parents; - } - - return null; -}; - -interface Array { - equals(o: T): Boolean; -} - -// attach the .equals method to Array's prototype to call it on any array http://stackoverflow.com/a/14853974/4671250 -Array.prototype.equals = function (array) : Boolean { - // if the other array is a falsy value, return - if (!array) - return false; - - // compare lengths - can save a lot of time - if (this.length != array.length) - return false; - - for (var i = 0, l=this.length; i < l; i++) { - // Check if we have nested arrays - if (this[i] instanceof Array && array[i] instanceof Array) { - // recurse into the nested arrays - if (!this[i].equals(array[i])) - return false; - } - else if (this[i] != array[i]) { - // Warning - two different object instances will never be equal: {x:20} != {x:20} - return false; - } - } - return true; -} - diff --git a/_build/ts/tsconfig.json b/_build/ts/tsconfig.json deleted file mode 100644 index 29b95ce..0000000 --- a/_build/ts/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "noImplicitAny": true, - "removeComments": true, - "preserveConstEnums": true, - "outFile": "../examples/assets/eureka.1.2.0.js", - "sourceMap": true - }, - "exclude": [ - "node_modules" - ] -} diff --git a/_build/ts/workers/listdirectory.ts b/_build/ts/workers/listdirectory.ts deleted file mode 100644 index 5d92b32..0000000 --- a/_build/ts/workers/listdirectory.ts +++ /dev/null @@ -1,18 +0,0 @@ -/// - -importScripts("includes.js"); - -self.addEventListener('message',function(e){ - var data = e.data; - - var ajax = new AJAX(); - ajax.get( - data.listDirectoryRequestURL, - { s: data.currentMediaSource, dir:data.currentDirectory }, - function (data) { - (self).postMessage(JSON.parse(data)); - }, - true, - data.headers - ); -}, false); \ No newline at end of file diff --git a/_build/ts/workers/listsource.ts b/_build/ts/workers/listsource.ts deleted file mode 100644 index cb91220..0000000 --- a/_build/ts/workers/listsource.ts +++ /dev/null @@ -1,18 +0,0 @@ -/// - -importScripts("includes.js"); - -self.addEventListener('message',function(e){ - var data = e.data; - - var ajax = new AJAX(); - ajax.get( - data.listSourceRequestURL, - { s: data.currentMediaSource }, - function (data) { - (self).postMessage(JSON.parse(data)); - }, - true, - data.headers - ); -}, false); \ No newline at end of file diff --git a/_build/ts/workers/listsources.ts b/_build/ts/workers/listsources.ts deleted file mode 100644 index 0914d6f..0000000 --- a/_build/ts/workers/listsources.ts +++ /dev/null @@ -1,18 +0,0 @@ -/// - -importScripts("includes.js"); - -self.addEventListener('message',function(e){ - var data = e.data; - - var ajax = new AJAX(); - ajax.get( - data.listSourcesRequestURL, - { }, - function (data) { - (self).postMessage(JSON.parse(data)); - }, - true, - data.headers - ); -}, false); \ No newline at end of file diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..070de52 --- /dev/null +++ b/bower.json @@ -0,0 +1,57 @@ +{ + "name": "eureka-browser", + "description": "Eureka is a progressively enhanced Media Browser Component.", + "main": [ + "client/build/assets/css/eureka.0.0.21.min.css", + "client/build/assets/js/eureka.0.0.21.min.js" + ], + "version": "0.0.21", + "authors": [ + "JP de Vries " + ], + "license": "MIT", + "homepage": "https://github.com/jpdevries/eureka", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests", + "lib", + "prod", + "server.js", + "yarn.lock", + "client/public", + "client/build/index.html", + "client/build/favicon.ico", + "client/build/fakepi", + "client/src", + "client/build/assets/css/main*", + ".babelrc", + ".DS_Store", + "client/gruntfile.js", + "package.json", + "client/package.json", + "client/yarn.lock" + ], + "dependencies": { + "url-search-params": "^0.6.2" + }, + "devDependencies": { + "bourbon": "^4.3.2", + "neat": "^1.8.0", + "spectacular": "^0.0.0" + }, + "exportsOverride": { + "bourbon": { + "": "app/assets/stylesheets/" + }, + "neat": { + "": "app/assets/stylesheets/" + }, + "spectacular": { + "": "app/assets/stylesheets/" + } + } +} diff --git a/client/.babelrc b/client/.babelrc new file mode 100644 index 0000000..adf9c3b --- /dev/null +++ b/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": ["es2015", "react", "stage-0"], + "plugins": [ + [ + "react-intl", { + "messagesDir": "./i18n/messages", + "enforceDescriptions": false + } + ] + ], + "ignore": [ + "**/*.test.js" + ] +} diff --git a/client/.eslintrc b/client/.eslintrc new file mode 100644 index 0000000..da945bb --- /dev/null +++ b/client/.eslintrc @@ -0,0 +1,5 @@ +{ + "plugins": [ + "jsx-a11y" + ] +} diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..b39038c --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,2 @@ +build/assets/img/src/png +public/assets/img/src/png diff --git a/client/LICENSE b/client/LICENSE new file mode 100644 index 0000000..91b8f6f --- /dev/null +++ b/client/LICENSE @@ -0,0 +1,31 @@ +BSD License + +For React software + +Copyright (c) 2013-present, Facebook, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..cf62936 --- /dev/null +++ b/client/README.md @@ -0,0 +1,680 @@ +# Eureka 🌲 +[![Build Status](https://travis-ci.org/jpdevries/eureka.svg?branch=release-2.0)](https://travis-ci.org/jpdevries/eureka) [![npm version](https://badge.fury.io/js/eureka-browser.svg)](https://badge.fury.io/js/eureka-browser) + +Eureka is a progressively enhanced flexible media browser. Connected to your media sources through a REST API, this accessible web component allows users to browse media sources, upload files, and choose media items. + +[🤗 Try the demo](https://eureka.markup.tips/). +As to be found in [Redactor 3.0 for MODX](https://www.modmore.com/extras/redactor/?via=2) by modmore. Contributions welcomed. + +> With `eureka.js` users will be saying "I found it!" in no time. +  — [@mrktps](https://twitter.com/mrktps) + +## 💬 Discuss +Join the conversation in our public Gitter chat room. + +[![Join the chat at https://gitter.im/jpdevries/eureka](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/jpdevries/eureka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +## 📚 Wiki +Don't forget to [browse the Wiki](https://github.com/jpdevries/eureka/wiki) for [more information on the REST API](https://github.com/jpdevries/eureka/wiki/REST-API), [patterns](https://github.com/jpdevries/eureka/wiki/Patterns), [screenshots](https://github.com/jpdevries/eureka/wiki/Screenshots) and more. + +## 🍻 Support +The Eureka Media Browser and supporting resources are provided free as in beer. +[Gratuities are accepted through Square Cash](https://cash.me/$devriesdev). + +## 🏋️‍♀️ Weigh In +The Eureka Media Browser is pretty lightweight all things considered. + +| Asset | Weight (GZIP minified) +| ------------- |:-------------:| +| CSS Stylesheet | `5.18kB` | +| SVG Icons | `5.04kB` | +| React Component | `47.40kB` | + +### 📄 HTML–first +As a progressively enhanced web component, Eureka is functional HTML–first. This means that technically anything other than the initial HTML layer is a non–critical enhancement. Critical features supported by the HTML layer, such as browse, upload, and choose, are universally supported and do not depend on modern browsers, CSS styles, or script. + +😲 Take a gander at Eureka in the nued by waking our incredibly lightweight [raw HTML example](https://reacteureka.herokuapp.com/nued). + +We also encourage you to temporarily disable JavaScript in your browser and party with Eureka like it's 1999. + +## Powered By 🚀 + - Progressively Enhanced from HTML components + - All–new Virtual DOM powered by React/Redux + - Node Server Side Rendering + - Node testing server + +## Highlights 🖋 + - Configurable Rest API endpoints + - Browse multiple media sources for images + - Drag and Drop Upload Support + - Flexible Layout + - Responsive Design + - Configurable Styles via CSS Variables + - Accessible + - supports mobile and touch devices + - supports `.no-js` via server side rendering + - ARIA & Keyboard Support + - high contrast themes + +## 🚥 Features +The level of isomorphism between the client and server side one can achieve with Node is unmatched. Eureka takes advantage of this unique strength of Node by, through an isomorphic server and standard synchronous forms, achieving full support for critical features. + +No features rely solely on sight or the use of a mouse. Keyboard use is supported. Accommodations are taken for users that benefit from high contrast themes. Visually hidden text is used to convey aspects of the interface that are otherwise visually implied to screen readers and assistive technology. + +The semantic HTML layer remains usable even absent of style as pure HTML. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Support of features against browser environments
Feature.no-js< IE 9ChromeSafariFirefoxIE 11Edge
Upload multiple files
Browse directories
Choose a media item
Keyboard Support
ARIA Support✳️
WCAG Level AA
Internationalization
Choose Multiple Items
Delete Multiple Items
Keyboard Shortcuts
Media Source panel
Async UX
Filterable Data Table
Sortable Data Table
Drag 'n drop uploads
Grid Layout
Flexible Layout
View Chooser
Masonry Layout Mode
Pathbar
Rename Item
Delete Item
Download Item
Download Multiple Items
Local Storage
Variable Styles
Accessible Themes
Mobile First Layout✳️
Fullscreen Mode
HTML5 Context Menus🔧
HTML5 Details✳️✳️
HTML5 Datalist✳️✳️✳️
+ +## 🛠 Usage + +```bash +npm install eureka-browser --save +``` + +#### Bower +You can also install Eureka via Bower, which is a good way to fetch its stylesheet and icon sprite. There is also a UMD export of the `EurekaMediaBrowser` component for the unlikely case you'll need it. + +```bash +npm install -g bower +``` + +```bash +bower install eureka-browser#release-2.0 +ls bower_components/eureka-browser/client/build/assets/css/ # default eureka theme +ls bower_components/eureka-browser/client/build/assets/img # icon sprite +ls bower_components/eureka-browser/client/build/assets/js # bundled and unbundled UMD exports of EurekaMediaBrowser component +``` + +#### HTML +The `` React component is styled by a standard CSS stylesheet. Include the CSS for the appropriate version of the media browser. Reference the theming section for [more information on styling Eureka](https://github.com/jpdevries/eureka#-theming). + +```html + +``` + +```html +
+ +
+ +``` + +#### JS +```js +import React from 'react'; +import ReactDOM from 'react-dom'; +import { EurekaMediaBrowser } from 'eureka-browser'; + +ReactDOM.render( + , + document.getElementById('eureka-root') +); +``` + +Eureka will then be injected into the DOM and eagerly reach out to the REST API for the JSON data it needs to offer the interface. + +Configure the `EurekaMediaBrowser` via the optional attributes found in the default configuration below: +```xml + +``` + +## ⚙️ Options + +| Option | Default | Description | +| ------------- |:-------------:| -----| +| `basePath` | `"/"` | Prepended to URLs for XHR requests to the Rest API.
Set to the absolute path of your Rest API. | +| `allowUploads` | `true` | Whether or not to allow uploading of media items | +| `treeHidden` | `true` | Whether or not the Media Source Panel "sidebar" should be initially closed | +| `useLocalStorage` | `true` | Whether or not to use the JavaScript `localStorage` API to remember session data such as the last visited directory and view mode preference | +| `storagePrefix` | `"eureka__"` | Prepended to `localStorage` keys | +| `allowRename` | `true` | Whether or not to offer users the ability to rename directories and media items | +| `allowDelete` | `true` | Whether or not to offer users the ability to delete directories and media items | +| `allowDownload` | `false` | Whether or not to add a download button to media items | +| `confirmBeforeDelete` | `false` | Whether or not to confirm intent before users delete directories and media items | +| `locale` | `"en-US"` | The localization to use. See Lexicons. | +| `mediaSource` | `undefined` | The default initial media source id to use | +| `currentDirectory` | `"/"` | The default initial directory to use | +| `uid` | `"0"` | A unique identifier used to ensure multiple `` components on the same page do not share the same DOM ids | +| `assetsBasePath` | `"./assets/"` | Relative path to the Eureka assets directory | +| `iconSVG` | `"./img/icons.svg"` | Path, relative to `assetsBasePath`, to the Eureka icon sprite sheet | +| `callbacks` | `{close: undefined, choose: undefined}` | Object containing close and choose callbacks | +| `headers` | `{'Powered-By': 'Eureka by Markup.tips'}` | Additional request headers sent with XHR requests | +| `intervals` | `{searchBarPlaceholder: false,fetchDirectoryContents: 18000,updateSourceTree: false}` | Intervals for whether or not and how often to do things like hit the REST API for updated data or update the placeholder attribute based on the current directory listing | +| `enlargeFocusedRows` | `false` | Whether or not to enlarge thumbnails of focused rows | +| `mode` | `"table"` | Initial view mode (table, thumb, grid, list) | +| `sort` | `"name"` | Initial column to sort media items on | +| `allowFullscreen` | `true` | Whether or not the interface should offer a fullscreen button | +| `emphasisFocusedMediaItem` | `true` | Whether or not to emphasis selected media items (defaults to emphasizing the filename, only applies to table and list view modes) | +| `doDragNDrop` | `true` | Whether or not to enable drag 'n drop features | +| `allowChooseMultiple` | `true` | Whether or not to allow multiple files to be chosen | +| `allowInvertSelection` | `true` | Whether or not to allow selection of multiple items to be inverted | +| `allowDownloadMultiple` | `true` | Whether or not to allow multiple selected items to be download as a zip file | + + + +*Please take note that when `useLocalStorage` is `true` any options manually passed in as props will take precedent.* + +## 🌐 Browser Support +The server side rendering and HTML–first design patterns begin progressively enhancing a universally supported HTML layer. So basic features are supported in any browser. JavaScript support begins at IE9. Desired CSS layout requires Flexbox and is further enhanced with Grid Layout. + +## 🔡 i18n +Eureka is on Crowdin. Please [contribute to our translations](https://crowdin.com/project/eureka-browser) if you are able. + +## ♿️ Accessibility Proclaimer +Eureka strives for WCAG Level AA success criteria in all scenarios with some accessibility preference features leaning towards Level AAA. Please [log *any* a11y issues here](https://github.com/jpdevries/eureka/issues). + +## ✅ Getting Started +We're going to use `yarn` so make sure that is installed. + +```bash +npm install yarn -g +``` + +To fire up a testing server run the following: + +```bash +git clone -b release-2.0 git://github.com/jpdevries/eureka.git +cd eureka +yarn prestart +yarn build +yarn serve # start the development server +# open http://localhost:3001 # Node server +``` + +To host the compiled production server run +```bash +yarn start # install, fetch sources, build +``` + +or +```bash +yarn prod # fire up the production server +``` + +The testing server hosts the `sources` and `client/build` directories along with a REST API to `GET`, `POST`, `PUT`, `DELETE` media items. + +![](http://j4p.us/22241J1A3N06/Screen%20Shot%202017-03-13%20at%2012.56.51%20AM.png) + +## ⚒ Development +The Eureka component is created with `create-react-app` and found in the `client` directory. There you can run React tests, build the React component, and start the development server. + +Firstly, you'll need the testing server running for the REST API: +```bash +cd eureka +yarn server +``` + +Now, in another terminal tab: + +```bash +cd client +yarn build +yarn test +yarn start +# open http://localhost:3000 # development server +``` + +The development server, like any other React app created with `create-react-app`, will automatically inject changes as you save changes to your source files. + +## 🗄 REST API +Eureka is hungry for remote media sources. It needs a REST API to feed it JSON data. +Find docs at the [REST API wiki page](https://github.com/jpdevries/eureka/wiki/REST-API). + +### 💄 Decorating Actions +Eureka's core Redux actions assume you'll be using a REST API. If REST isn't really your thing, or you need to modify the Redux actions for some other reason, you can decorate the actions Eureka will use. This is done using a Higher Order Component that wraps `EurekaMediaBrowser` and injects a `decoratedActions` property which will be applied as a shallow merge on top of the default actions. Reference this [Gist example of decorating actions](https://gist.github.com/jpdevries/e967056bd31cf6f01df0e431df68283b) for an example. + +## 📠 Server Side Rendering +Eureka is progressively enhanced with React to be asynchronous and a richer experience in capable browsers that successfully execute scripts. But Eureka's support doesn't end at modern browsers because its design process doesn't start there. Eureka is a semantic and synchronous HTML form before it is an enhanced Virtual DOM. + +Reference the [Server Side Rendering Wiki page](https://github.com/jpdevries/eureka/wiki/Server-Side-Rendering) for documentations and examples on achieving world wide support. + +### ⌨️ Keyboard Shortcuts +Eureka uses JavaScript events to enrich the user experience of keyboard users. + +| Shortcut | Command | +| --------------- |:-------------: | +| Toggle Sidebar | ctrl+; | +| Change View | ctrl+alt+(1-5) | +| Change Media Source | alt+(1-9) | +| Delete Item | backspace | +| Expand Item | spacebar | +| Choose Item | return | +| Create Directory | ctrl+n | +| Create file | ctrl+shift+n | +| Upload Files | ctrl+u | +| Rename Item | ctrl+r | +| Filter Items | ctrl+f | +| Sort Ascending | alt+up | +| Sort Descending | alt+down | +| Sort by filename | alt+n | +| Sort by dimensions | alt+d | +| Sort by file size | alt+f | +| Sort by edited on | alt+e | +| Set Choose Mode to Single | alt+s | +| Set Choose Mode to Multiple | alt+m | +| Invert Selection | alt+i | + + +## 🎨 Theming +Request additional theming options and share your themes by [opening an issue](https://github.com/jpdevries/eureka/issues/new) or [joining the discussion on Gitter](https://gitter.im/jpdevries/eureka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge). + +| Variable | Description | +| ------------- | -----| +| `--active` | Color used to highlight activated components such as the drop area | +| `--border-width` | Generic border width for panels, components, inputs | +| `--border-style` | Generic border style for panels, components, inputs | +| `--border-color` | Generic border color for panels, components, inputs | +| `--button-bg` | Background color of button elements | +| `--button-color` | Color of button text | +| `--color` | Default text color | +| `--dangerous` | Color to use for warnings and errors | +| `--light-bg` | Generic light background color, used for panels | +| `--link-color` | Default anchor text color | +| `--panel-border-color` | Border color of panel components | +| `--subtle` | Subtle color, used for Media Source Panel | +| `--very-subtle` | Very subtle color, used for drop zone area | +| `--very-subtle-icon-opacity` | Opacity for very subtle icons | + +## 📣 Audible Interface +Eureka uses a combination of ARIA attributes and `.visually-hidden` text to offer an experience that is as accessible visually as it is audibly. + +![The Eureka Browser interface without as seen by a screen reader includes descriptive text for an accessible experience](http://j4p.us/3h1e2G0B0b0q/Screen%20Shot%202017-04-25%20at%205.25.24%20PM.png) + +There is one Achilles heel here. Depending on your media source API, you might not be able to provide alternative text for images and media items. In the event that no alt text is provided, Eureka will to the best it can. For example: + +> schildpad.jpg displays at 336x125, weighs 37 KB, and was edited on Sunday, April 02, 2017, Central European Summer Time + +## 📺 Fullscreen Mode +To maximize usability Eureka leverages the Fullscreen API. + +
+See the Fullscreen Mode in action + +
+ +## 🏞 Masonry Layout +Eureka is enhanced by a Masonry Layout mode. + +
+Masonry Layout Mode + +

+ +If you are using Eureka as a UMD Module (probably not) you'll need [to load Masonry first](https://github.com/jpdevries/eureka/wiki/Loading-Patterns-(WIP)). If you would not like Masonry to be included in your bundle, add Masonry to your Webpack excludes. Eureka will only enable the Masonry Layout if Masonry is available. + +```js +externals: { + "react": "React", + "react-dom":"ReactDOM", + "redux":"Redux", + "react-redux":"ReactRedux", + "react-masonry-component":"Masonry" +} +``` + + +## 👀 Accessible Themes +Eureka is empowered by themes which make it more accessible to users with particular physical or contextual disabilities or preferences. + +### Black on White +![](http://j4p.us/091n1d1z3y1F/Screen%20Shot%202017-03-16%20at%203.33.14%20AM.png) + +### White on Black +![](http://j4p.us/3O163v400P30/Screen%20Shot%202017-03-16%20at%203.33.45%20AM.png) diff --git a/client/__mocks__/react.js b/client/__mocks__/react.js new file mode 100644 index 0000000..6f0a316 --- /dev/null +++ b/client/__mocks__/react.js @@ -0,0 +1,10 @@ +const react = require('react'); +// Resolution for requestAnimationFrame not supported in jest error : +// https://github.com/facebook/react/issues/9102#issuecomment-283873039 +global.window = global; +window.addEventListener = () => {}; +window.requestAnimationFrame = () => { + throw new Error('requestAnimationFrame is not supported in Node'); +}; + +module.exports = react; diff --git a/client/bower.json b/client/bower.json new file mode 100644 index 0000000..2f429ab --- /dev/null +++ b/client/bower.json @@ -0,0 +1,53 @@ +{ + "name": "eureka-browser-client", + "description": "Eureka is a progressively enhanced Media Browser Component.", + "main": [ + "build/assets/css/eureka.0.0.129.min.css", + "build/assets/js/eureka-browser.bundle.0.0.129.min.js" + ], + "version": "0.0.129", + "authors": [ + "JP de Vries " + ], + "license": "MIT", + "homepage": "https://github.com/jpdevries/eureka", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests", + "lib", + "client/public", + "client/build/nued.html", + "client/src", + "client/build/assets/img/src", + ".babelrc", + ".DS_Store", + "client/gruntfile.js", + "package.json", + "client/package.json", + "client/yarn.lock" + ], + "dependencies": { + "url-search-params": "^0.6.2", + "masonry": "~4.2.0" + }, + "devDependencies": { + "bourbon": "^4.3.2", + "neat": "*", + "spectacular": "^0.0.0" + }, + "exportsOverride": { + "bourbon": { + "": "app/assets/stylesheets/" + }, + "neat": { + "": "app/assets/stylesheets/" + }, + "spectacular": { + "": "app/assets/stylesheets/" + } + } +} diff --git a/client/build/asset-manifest.json b/client/build/asset-manifest.json new file mode 100644 index 0000000..ba2e100 --- /dev/null +++ b/client/build/asset-manifest.json @@ -0,0 +1,6 @@ +{ + "main.css": "static/css/main.243c0c43.css", + "main.css.map": "static/css/main.243c0c43.css.map", + "main.js": "static/js/main.a6b5a45c.js", + "main.js.map": "static/js/main.a6b5a45c.js.map" +} \ No newline at end of file diff --git a/client/build/assets/css/eureka.0.0.129.css b/client/build/assets/css/eureka.0.0.129.css new file mode 100644 index 0000000..10114f3 --- /dev/null +++ b/client/build/assets/css/eureka.0.0.129.css @@ -0,0 +1,1843 @@ +.eureka { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.eureka *, .eureka *::after, .eureka *::before { + -webkit-box-sizing: inherit; + box-sizing: inherit; } + +.eureka.eureka__view-mode__thumb img, .eureka.eureka__view-mode__grid img, .eureka .eureka__media-source-selector select { + width: 100%; } + +.eureka th[aria-sort], .eureka select, .eureka button, .eureka .button, .eureka .eureka__upload-form label, .eureka .eureka__layout-chooser .eureka__icon-radio-btns label { + cursor: pointer; } + +.eureka .eureka__modal, .eureka .eureka__modal .eureka__modal-scrim { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; } + +/* +http://www.phase2technology.com/blog/exploring-maps-in-sass-3-3/ +*/ +.eureka input[aria-pressed="true"] + label, .eureka .eureka__crop-modal input[type="radio"]:checked + label, .eureka button[aria-pressed="true"] { + -webkit-box-shadow: 0 0 0 1px #E4E4E4, inset 0 0.175em 0 #c5c5c5; + -webkit-box-shadow: 0 0 0 1px var(--border-shadow-color, #E4E4E4), inset 0 0.175em 0 var(--border-shadow-color, #c5c5c5); + box-shadow: 0 0 0 1px #E4E4E4, inset 0 0.175em 0 #c5c5c5; + box-shadow: 0 0 0 1px var(--border-shadow-color, #E4E4E4), inset 0 0.175em 0 var(--border-shadow-color, #c5c5c5); } + +.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1), .visually-hidden, .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"], .eureka .eureka__layout-chooser legend, .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"], .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] { + /*https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html*/ + position: absolute !important; + clip: rect(1px 1px 1px 1px); + /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + padding: 0 !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; } + body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1) a, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) a, body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) a, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) a, body:hover .visually-hidden a, body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"] a, .eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type="file"] a, body:hover .eureka .eureka__layout-chooser legend a, .eureka .eureka__layout-chooser body:hover legend a, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"] a, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="radio"] a, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] a, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="checkbox"] a, body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1) input, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) input, body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) input, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) input, body:hover .visually-hidden input, body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"] input, .eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type="file"] input, body:hover .eureka .eureka__layout-chooser legend input, .eureka .eureka__layout-chooser body:hover legend input, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"] input, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="radio"] input, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] input, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="checkbox"] input, body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1) button, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) button, body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) button, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) button, body:hover .visually-hidden button, body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"] button, .eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type="file"] button, body:hover .eureka .eureka__layout-chooser legend button, .eureka .eureka__layout-chooser body:hover legend button, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"] button, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="radio"] button, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] button, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="checkbox"] button { + display: none !important; } + +[class*="modal-section"], [class*="eureka-wrapper"] { + padding: 0; } + @media screen and (min-width: 641px) { + [class*="modal-section"], [class*="eureka-wrapper"] { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + overflow-y: hidden; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } } + +.eureka-root { + /*.eureka { + tbody { + &:not(.empty) { + > tr:not(.empty) { + @supports (display:grid) { + grid-template-areas:"media name dimensions file-size edited-on" "actions actions actions actions actions"; + grid-template-columns: auto 24% 12% 12% 12%; + } + } + } + } + }*/ } + .eureka-root:-webkit-full-screen { + width: 100vw; + height: 100vh; + overflow-y: auto; + background: #ececec; + background: var(--bg-color, #ececec); } + .eureka-root label[for*="fullscreen-toggle"] { + margin-left: 8px; + margin-left: .5rem; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row, .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden] { + display: block !important; } + @media screen and (max-width: 640px) { + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr > td.eureka__td-media, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr > td.eureka__td-media { + text-align: center; } } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden] { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus-within > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus-within > td.eureka__context-row { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus-within > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus-within > td.eureka__context-row[hidden] { + display: block !important; } + .eureka-root tbody:not(.empty) > tr:not(.empty) { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + /*@supports (display: flex) and ( not (display:grid) ) { + }*/ } + .eureka-root tbody:not(.empty) > tr:not(.empty) > * { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + @supports (display: grid) { + .eureka-root tbody:not(.empty) > tr:not(.empty) { + display: grid; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td .eureka__td-media { + grid-area: media; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td .eureka__td-filename { + grid-area: name; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__context-row { + grid-area: actions; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + grid-area: dimensions; } + @media screen and (max-width: 640px) { + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + display: none; } } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + grid-area: file-size; } + @media screen and (max-width: 640px) { + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + display: none; } } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + grid-area: edited-on; } + @media screen and (max-width: 640px) { + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + display: none; } } } + @supports (display: grid) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__choose { + grid-area: choose; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__td-media { + grid-area: media; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__td-filename { + grid-area: name; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__context-row { + grid-area: actions; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + grid-area: dimensions; } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + display: none; } } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + grid-area: file-size; } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + display: none; } } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + grid-area: edited-on; } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + display: none; } } } + @supports (display: grid) { + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table tbody:not(.empty) > tr:not(.empty), .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list tbody:not(.empty) > tr:not(.empty) { + grid-template-areas: "choose media name dimensions file-size edited-on" "actions actions actions actions actions actions"; + grid-template-columns: 2rem auto 24% 12% 12% 12%; } } } + +.eureka .eureka__choose-radio { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .eureka__choose-radio fieldset { + margin: 0; + padding: 0; } + .eureka .eureka__choose-radio .eureka__fieldset { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .eureka__choose-radio .eureka__fieldset > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + +.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > thead > tr { + grid-template-columns: 2rem 16% 40% 8% auto auto !important; + grid-template-areas: "radio name media dimensions file-size edited-on" !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > thead > tr th:nth-of-type(3) { + text-align: left !important; } + +.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) { + grid-template-columns: 2rem 16% 40% 8% auto auto !important; + grid-template-areas: "radio name media dimensions file-size edited-on" !important; } + @supports (display: grid) { + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td { + /*&:nth-of-type(1) { + grid-area:media; + } + &:nth-of-type(2) { + grid-area:name; + } + &:nth-of-type(3) { + grid-area:actions; + }*/ } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td.eureka__td-filename { + text-align: left !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(4) { + grid-area: dimensions !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(5) { + grid-area: file-size !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(6) { + grid-area: edited-on !important; } } + +.eureka-root { + padding: 8px; + padding: .5rem; } + @media screen and (max-width: 640px) { + .eureka-root .eureka table > thead { + position: absolute !important; + clip: rect(1px 1px 1px 1px); + /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + padding: 0 !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; } + body:hover .eureka-root .eureka table > thead a, body:hover .eureka-root .eureka table > thead input, body:hover .eureka-root .eureka table > thead button { + display: none !important; } } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody > tr > td:not(.eureka__context-row) { + padding-right: .5rem; } } + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "choose choose choose choose choose choose" "media media media media media media" "name name name name name name" "actions actions actions actions actions actions"; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "choose media name dimensions file-size edited-on"; + grid-template-columns: 2rem auto 24% 12% 12% 12%; } } + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table > tbody > tr { + grid-template-areas: "choose choose choose choose choose choose" "media media media media media media"; } + .eureka-root .eureka.eureka__view-mode__table table, .eureka-root .eureka.eureka__view-mode__list table { + /*> thead > tr { + grid-template-areas:"media name dimensions file-size edited-on"; + }*/ } + .eureka-root .eureka.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + display: grid; + grid-gap: 0; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media name dimensions file-size edited-on"; + grid-template-columns: 40% 24% 12% 12% 12%; } } + .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media media media media media" "name name name name name" "actions actions actions actions actions"; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media name dimensions file-size edited-on" "actions actions actions actions actions"; } } + .eureka-root .eureka.eureka__view-mode__table table > tbody.empty > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody.empty > tr { + display: block; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*="upload-form"], .eureka-root .eureka.eureka__view-mode__list.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*="upload-form"] { + padding: 0.5em; + margin-right: 16px; + margin-right: 1rem; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) { + grid-template-areas: "radio media name dimensions file-size edited-on"; + grid-template-columns: 2rem 40% 24% auto auto auto; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(1) { + grid-area: radio; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(2) { + grid-area: media; + text-align: left; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(3) { + grid-area: name; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(5) { + grid-area: dimensions; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(6) { + grid-area: file-size; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(7) { + grid-area: edited-on; } } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) { + grid-area: none; } + .eureka-root .eureka.eureka__view-mode__list table > thead > tr td:first-child, .eureka-root .eureka.eureka__view-mode__list table > thead > tr th:first-child, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr td:first-child, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr th:first-child { + padding-left: 8px; + padding-left: .5rem; } + .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "name name name name name" "actions actions actions actions actions"; + margin-bottom: 8px; + margin-bottom: .5rem; } + .eureka-root .eureka.eureka__view-mode__list table > tbody > tr > td.eureka__choose { + text-align: center; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media name dimensions file-size edited-on" "actions actions actions actions actions"; } } + +.eureka-root .eureka__table img, .eureka-root .eureka__table embed, .eureka-root .eureka__table object, .eureka-root .eureka__table video { + -o-object-fit: contain; + object-fit: contain; } + +@media screen and (min-width: 641px) { + .eureka-root { + /*display:grid; + grid-gap:0; + grid-template-columns:20vw auto; + grid-template-areas:"header header" "sidebar content" "footer footer";*/ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } + .eureka-root .eureka { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; } + .eureka-root .eureka > .eureka__browse-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 1 100%; + flex: 1 1 100%; } + .eureka-root .eureka.eureka__view-mode__table { + /*@supports (display: grid) { + }*/ } + .eureka-root .eureka > .eureka__browse-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 1 100%; + flex: 1 1 100%; } + .eureka-root .eureka > .eureka__browse-content > .eureka__pathbrowser { + -webkit-box-flex: 0; + -ms-flex: 0 0 14rem; + flex: 0 0 14rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-negative: 0; + flex-shrink: 0; + -ms-flex-positive: 0; + flex-grow: 0; + margin-right: .5rem; } + .eureka-root .eureka > .eureka__browse-content > .eureka__pathbrowser[hidden], .eureka-root .eureka > .eureka__browse-content > .eureka__pathbrowser[aria-hidden="true"] { + display: none; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage { + -webkit-box-flex: 1; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view { + -ms-flex-preferred-size: auto; + flex-basis: auto; + -ms-flex-negative: 1; + flex-shrink: 1; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view > header { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + min-width: 0; + min-height: 0; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: .5rem; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view > header > h2 { + margin-bottom: 0; + margin-right: auto; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view > header > h2 form { + float: right; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + height: auto; + -ms-flex-negative: 0; + flex-shrink: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding: 0 .5rem .5rem 0; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper > div { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-height: 100%; + height: 100%; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-negative: 1; + flex-shrink: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-width: 100%; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper > div > table { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-height: 100%; + height: 100%; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-negative: 1; + flex-shrink: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-width: 100%; } + .eureka-root .eureka > .eureka__choose-bar { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + margin-top: .5rem; } } + +.eureka-root .eureka.eureka__view-mode__masonry > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper { + padding-left: 8px; + padding-left: .5rem; } + @media screen and (max-width: 640px) { + .eureka-root .eureka.eureka__view-mode__masonry > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper { + padding-right: .5rem; } } + +@media screen and (max-width: 640px) { + .eureka-root .eureka > .eureka__choose-bar > * { + margin-right: .5rem; } + .eureka-root .eureka > .eureka__choose-bar > *:last-child { + margin-right: 0; } } + +.eureka-root thead { + -ms-flex-preferred-size: auto; + flex-basis: auto; + display: block; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; } + .eureka-root thead.eureka__tbody-scrolling { + padding-right: 16px; } + .eureka-root thead[hidden] { + display: none; } + .eureka-root thead > tr { + display: block; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + /*@supports (display: flex) and ( not (display: grid) ) { + }*/ } + .eureka-root thead > tr > th { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .eureka-root thead > tr > th.eureka__choose { + grid-area: choose; } + .eureka-root thead > tr > th.eureka__th-media { + grid-area: media; } + .eureka-root thead > tr > th.eureka__th-filename { + grid-area: name; } + .eureka-root thead > tr > th.eureka__th-actions { + grid-area: none; } + .eureka-root thead > tr > th.eureka__th-dimensions { + grid-area: dimensions; } + .eureka-root thead > tr > th.eureka__th-file-size { + grid-area: file-size; } + .eureka-root thead > tr > th.eureka__th-edited-on { + grid-area: edited-on; } + +.eureka-root tbody.empty { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .eureka-root tbody.empty > tr { + text-align: center; + display: block; } + .eureka-root tbody.empty > tr td { + margin: 0 auto; + display: inline-block; } + +.eureka-root tbody { + -ms-flex-preferred-size: 0; + flex-basis: 0; + text-align: center; + display: block; + -ms-flex-wrap: no-wrap; + flex-wrap: no-wrap; + overflow-y: auto; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -ms-flex-negative: 1; + flex-shrink: 1; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + -webkit-overflow-scrolling: touch; } + +.eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__th-media, .eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__td-media { + padding-left: 16px; + padding-left: 1rem; } + +@media screen and (min-width: 641px) { + .eureka__media-directory-selector form { + display: inline-block; } + .eureka__media-directory-selector > div { + display: inline-block; + margin-left: .5em; } } + +.eureka__sort-select select { + margin-bottom: 16px; + margin-bottom: 1rem; } + +@media screen and (min-width: 641px) { + .eureka__sort-select { + margin-left: auto; + margin-right: auto; } + .eureka__sort-select label { + margin-right: .5rem; } + .eureka__sort-select select { + margin-right: 1rem; + margin-bottom: 0; } } + +@media screen and (min-width: 641px) { + .eureka__tree-toggle { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-bottom: .5rem; } + .eureka__tree-toggle > *:first-child { + margin-right: auto; } + .eureka__tree-toggle .eureka__upload-form { + margin-right: auto; } } + @media screen and (min-width: 641px) and (min-width: 641px) { + .eureka__tree-toggle .eureka__upload-form form { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .eureka__tree-toggle .eureka__upload-form label[for*="upload-form"] { + padding-top: 0; + padding-bottom: 0; + line-height: 2.2; } } + +@media screen and (min-width: 641px) { + .eureka__server-side .eureka__tree-toggle .eureka__upload-form { + margin-right: 0; } } + +.eureka.eureka__view-mode__table { + /*@include media($gtMobile) { + }*/ } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__table .eureka__table img { + max-height: 20vh; } } + .eureka.eureka__view-mode__table .eureka__table thead th:first-child { + padding-left: 8px; + padding-left: .5rem; } + .eureka.eureka__view-mode__table .eureka__table thead th:last-child { + padding-right: 8px; + padding-right: .5rem; } + .eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:first-child { + padding-left: 8px; + padding-left: .5rem; } + .eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:last-child { + padding-right: 8px; + padding-right: .5rem; } + .eureka.eureka__view-mode__table .eureka__table tr td, .eureka.eureka__view-mode__table .eureka__table tr th { + text-align: center; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__table .eureka__table tr td, .eureka.eureka__view-mode__table .eureka__table tr th { + text-align: right; } + .eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media, .eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media { + text-align: left; } } + .eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media, .eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media { + text-align: left; } + .eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table img { + max-height: 20vh; } + .eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table tr:focus img { + max-height: 30vh; } + +.eureka.eureka__view-mode__thumb .eureka__table thead, .eureka.eureka__view-mode__grid .eureka__table thead, .eureka.eureka__view-mode__masonry .eureka__table thead { + display: none !important; } + +.eureka.eureka__view-mode__thumb .eureka__table td:not(.eureka__td-media):not(.eureka__choose), .eureka.eureka__view-mode__grid .eureka__table td:not(.eureka__td-media):not(.eureka__choose), .eureka.eureka__view-mode__masonry .eureka__table td:not(.eureka__td-media):not(.eureka__choose) { + display: none; } + +.eureka.eureka__view-mode__thumb .eureka__table td[colspan], .eureka.eureka__view-mode__grid .eureka__table td[colspan], .eureka.eureka__view-mode__masonry .eureka__table td[colspan] { + display: block; } + +.eureka.eureka__view-mode__thumb .eureka__table tbody, .eureka.eureka__view-mode__grid .eureka__table tbody, .eureka.eureka__view-mode__masonry .eureka__table tbody { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody, .eureka.eureka__view-mode__grid .eureka__table tbody, .eureka.eureka__view-mode__masonry .eureka__table tbody { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } } + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + margin: 0 8px 8px 0; + margin: 0 .5rem .5rem 0; + -ms-flex-preferred-size: 42vw; + flex-basis: 42vw; + width: 100%; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + display: inline-block; } } + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex] td, .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex] td, .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] td { + display: block; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + -ms-flex-preferred-size: 16vw; + flex-basis: 16vw; } } + .eureka.eureka__view-mode__thumb .eureka__table tbody .eureka__context-row, .eureka.eureka__view-mode__grid .eureka__table tbody .eureka__context-row, .eureka.eureka__view-mode__masonry .eureka__table tbody .eureka__context-row { + display: none; } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + margin-bottom: 0; } } + +@media screen and (min-width: 641px) { + .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + -ms-flex-preferred-size: 25vw; + flex-basis: 25vw; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex] > td:not(.eureka__context-row), .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] > td:not(.eureka__context-row) { + padding-right: 0; } } + +@media screen and (min-width: 641px) { + .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + max-width: 20%; + margin: 0; + padding: 0 .25rem; } } + +@media screen and (min-width: 641px) { + .eureka .eureka__tree { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; } } + +.eureka.eureka__view-mode__table .eureka__context-row { + margin-top: 8px; + margin-top: .5rem; } + +@media screen and (min-width: 641px) { + .eureka .eureka__context-row { + margin-top: 0; + width: 100%; + display: block; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + width: 100%; + /*> td[colspan] { + }*/ } + .eureka .eureka__context-row[hidden] { + display: none !important; } + .eureka .eureka__context-row .eureka__context-buttons { + width: 100%; } } + +.eureka .eureka__tree-bar { + text-align: center; } + +.eureka.eureka__view-mode__grid .eureka__td-media, .eureka.eureka__view-mode__masonry .eureka__td-media { + margin: 0 auto; + display: inline-block; } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead th:first-child { + display: none; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead th:nth-of-type(2) { + text-align: left; + padding-left: .5rem; } } + +.eureka.eureka__view-mode__list .eureka__table thead th:last-child { + padding-right: 8px; + padding-right: .5rem; } + +.eureka.eureka__view-mode__list .eureka__table thead td, .eureka.eureka__view-mode__list .eureka__table thead th, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th { + text-align: right; } + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media { + text-align: left; } + @supports (display: grid) { + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media { + display: block; } } + @media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media { + display: none; } } + @media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-filename, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-filename, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-filename, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-filename { + text-align: center; + padding-top: .5rem; + padding-bottom: .5rem; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table tbody { + line-height: 2; } } + +.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media img, .eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media video, .eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media embed { + max-width: 10vh; + max-height: 10vh; } + +.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu] { + padding-top: 0; + padding-bottom: 0; } + .eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu] > td:nth-of-type(2) { + padding-left: 8px; + padding-left: .5rem; } + .eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu] > td:last-child { + padding-right: 8px; + padding-right: .5rem; } + +@media screen and (max-width: 640px) { + .eureka .eureka__crop-btn { + display: none; } } + +.eureka .flex-bar fieldset { + margin: 0; + padding: 0; } + .eureka .flex-bar fieldset label { + margin-bottom: 0; } + +.eureka .eureka__invert-horz { + -webkit-transform: scaleX(-1); + transform: scaleX(-1); } + +.eureka .eureka__td-media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +@media screen and (min-width: 641px) { + .eureka .eureka__show-for-mobile-up p, .eureka .eureka__show-for-mobile-up textarea { + max-height: 3em; + overflow-y: auto; + display: block; + width: 100%; } } + +.eureka .eureka__pathbar textarea { + resize: none; } + +.eureka label[for="eureka__crop_show-adv-controls"] { + position: absolute; + top: .75em; + right: 1em; } + +.eureka .eureka__crop-modal .icon-bar { + margin-top: 1em; + font-size: 16px; + font-size: 1rem; } + .eureka .eureka__crop-modal .icon-bar label[for="eureka__crop-drag-mode-move"] { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + .eureka .eureka__crop-modal .icon-bar button, .eureka .eureka__crop-modal .icon-bar .button { + border-radius: 0; } + .eureka .eureka__crop-modal .icon-bar button:first-child, .eureka .eureka__crop-modal .icon-bar .button:first-child { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + .eureka .eureka__crop-modal .icon-bar button:last-child, .eureka .eureka__crop-modal .icon-bar .button:last-child { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } + .eureka .eureka__crop-modal .icon-bar.flex-bar > * { + margin-right: 0; } + .eureka .eureka__crop-modal .icon-bar button { + font-size: 16px; + font-size: 1rem; } + +.eureka .eureka__crop-modal .wrappable.flex-bar { + -ms-flex-pack: distribute; + justify-content: space-around; + margin-bottom: 32px; + margin-bottom: 2rem; } + .eureka .eureka__crop-modal .wrappable.flex-bar > * { + padding-left: 16px; + padding-left: 1rem; + padding-right: 16px; + padding-right: 1rem; } + .eureka .eureka__crop-modal .wrappable.flex-bar summary { + margin-bottom: 8px; + margin-bottom: .5rem; } + +.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box { + margin-top: 16px; + margin-top: 1rem; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label { + margin-bottom: 0; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label[for="eureka__crop-aspect-ratio"] { + line-height: 2; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[type="number"] { + width: 5em; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[id*="eureka__crop-scale"] { + width: 4em; } + @media screen and (min-width: 641px) { + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box summary { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } } + @media screen and (min-width: 641px) { + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > div, .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > details > div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > div > *, .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > details > div > * { + margin-right: .5rem; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > div:last-child, .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > details > div:last-child { + margin-right: 0; } } + +.eureka [hidden] { + display: none !important; } + +.eureka .eureka__crop-save-as-checkbox { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.eureka .eureka__crop-as { + padding-right: 16px; + padding-right: 1rem; } + .eureka .eureka__crop-as input[type="text"] { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; } + +.eureka label[for="eureka__crop-save-as-name"] { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.eureka label[for="eureka__crop-aspect-ratio-remember"] { + line-height: 2; } + +.eureka label[for="eureka__crop-rotate"] + input[type="range"] { + min-width: 14em; } + +.eureka .eureka__choose-multile > label { + display: block; + height: 100%; } + +.dangerous { + color: red; + color: var(--dangerous, red); } + +input:not([type="checkbox"]):not([type="radio"]):focus { + outline: 1px solid #3697cd; + outline: 1px solid var(--active, #3697cd); } + +tr[tabindex]:focus, tr.eureka__context-row:focus, [role="listbox"]:focus { + outline: 1px solid #3697cd; + outline: 1px solid var(--active, #3697cd); } + +summary:focus { + outline: none; + font-weight: bold; + color: #3697cd; + color: var(--active, #3697cd); } + +.eureka .eureka__tree-bar, .flex-bar, .eureka .eureka__button-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .wrappable.eureka__tree-bar, .wrappable.flex-bar, .eureka .wrappable.eureka__button-bar { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .eureka .wrappable.eureka__tree-bar > *, .wrappable.flex-bar > *, .eureka .wrappable.eureka__button-bar > * { + padding-left: 16px; + padding-left: 1rem; + padding-right: 16px; + padding-right: 1rem; } + .eureka .balanced.eureka__tree-bar, .balanced.flex-bar, .eureka .balanced.eureka__button-bar { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .eureka .eureka__tree-bar > *, .flex-bar > *, .eureka .eureka__button-bar > * { + margin-right: 8px; + margin-right: .5rem; } + .eureka .eureka__tree-bar > *.growable, .flex-bar > *.growable, .eureka .eureka__button-bar > *.growable { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; } + .eureka .eureka__tree-bar > *:last-child, .flex-bar > *:last-child, .eureka .eureka__button-bar > *:last-child { + margin-right: 0; } + +[role="dialog"] .flex-bar { + margin-top: 8px; + margin-top: .5rem; } + +.eureka .eureka__button-bar, .eureka .eureka__notice { + text-align: center; } + +a[role="presentation"] { + color: currentColor !important; + text-decoration: none !important; } + +@-webkit-keyframes spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.icon-circle-o-notch { + -webkit-animation: spinner 1s linear infinite; + animation: spinner 1s linear infinite; } + +.eureka__table tr[tabindex].eureka__focused-media-item .eureka__td-filename { + font-weight: bold; } + +.eureka__table tr[tabindex]:target .eureka__td-media > * { + outline: 3px solid #32AB9A; } + +.eureka__table tr[tabindex]:target .eureka__td-filename { + font-weight: bold; } + +/* start leave out */ +/*body { + background:$gray; + font: normal .8125em/1.375em "Helvetica Neue", Helvetica, Arial, Tahoma, sans-serif; + //font-family: "Helvetica Neue", Helvetica, Arial, Tahoma, sans-serif; + color:$color; + margin:0; + padding:0.5rem; +}*/ +/* end leave out */ +.eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel, .eureka-root .eureka__notification-wrapper > *, .eureka .eureka__context-buttons { + border: 1px solid #dddddd; + border: var(--border-width, 1px) var(--border-style, solid) var(--panel-border-color, #dddddd); } + +.eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel, .eureka-root .eureka__notification-wrapper > *, .eureka .eureka__table td.comfortable { + padding: 16px; + padding: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel, .eureka-root .eureka__notification-wrapper > *, .eureka .eureka__table td.comfortable { + padding: .5rem; } } + +.eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel { + border-radius: 0.25rem; + background: white; + background: var(--light-bg, white); } + +.eureka-root .eureka__notification-wrapper > * { + border-radius: 0.25rem; + padding-left: 1.5em; + padding-right: 1.5em; + background: #d9edf7; + background: var(--notification-background, #d9edf7); + color: #1D6E95; + color: var(--notification-color, #1D6E95); + border: 1px solid #309dd4; + border: 1px solid var(--notification-border-color, var(--notification-color, #309dd4)); } + .eureka-root .eureka__notification-wrapper > * a { + color: currentColor; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__notification-wrapper > * br { + display: none; } } + .eureka-root .eureka__notification-wrapper > * button { + position: absolute; + top: 4px; + top: .25rem; + right: 4px; + right: .25rem; + color: currentColor; + -webkit-transition: color 240ms ease; + transition: color 240ms ease; + -webkit-box-shadow: none; + box-shadow: none; } + .eureka-root .eureka__notification-wrapper > * button:focus, .eureka-root .eureka__notification-wrapper > * button:hover { + color: #247fad !important; + color: var(--notification-focus-color, #247fad) !important; + border: none; + -webkit-box-shadow: none; + box-shadow: none; } + .eureka-root .eureka__notification-wrapper > * button:focus svg, .eureka-root .eureka__notification-wrapper > * button:hover svg { + fill: currentColor !important; } + .eureka-root .eureka__notification-wrapper > .eureka__dangerous { + --notification-background: #f7a2a2; + --notification-color: #911912; + --notification-border-color: #911912; + --notification-focus-color: #911912; } + +.eureka { + /* styling of blink/webkit marker */ + /* styling of fierfox marker */ + /*&.eureka__view-mode__table, &.eureka__view-mode__list { + .eureka__pathbar { + .eureka__context-buttons { + display:none; + } + } + }*/ + /*&.eureka__view-mode__thumb { + + } + + &.eureka__view-mode__grid { + + } + + &.eureka__view-mode__list { + + }*/ + /*.eureka__tree-toggle { + //margin-bottom:1rem; + @include media($gtMobile) { + //margin-bottom:0; + button { + //@include button-reset; + } + } + }*/ + /*#eureka__tree-toggle__button { + position:relative; + svg { + position:absolute; + top:0; + bottom:0; + } + }*/ } + .eureka .eureka__notification-wrapper { + -webkit-transition: top 240ms ease 90ms, opacity 240ms ease; + transition: top 240ms ease 90ms, opacity 240ms ease; + opacity: 1; + top: 0; + text-align: center; } + .eureka .eureka__notification-wrapper > * { + position: relative; } + @media screen and (max-width: 640px) { + .eureka .eureka__notification-wrapper { + -webkit-transition: opacity 240ms ease; + transition: opacity 240ms ease; + left: 0; + right: 0; } } + .eureka .eureka__notification-wrapper[aria-hidden="true"] { + opacity: 0; + top: -5em; + display: block; + -webkit-transition: opacity 340ms ease-out 90ms, top 420ms ease-out; + transition: opacity 340ms ease-out 90ms, top 420ms ease-out; } + @media screen and (min-width: 641px) { + .eureka .eureka__notification-wrapper { + position: absolute; + left: 0; + right: 0; + top: .25rem; } } + .eureka .eureka__notification-wrapper p { + margin: 0; } + .eureka .eureka__notification-wrapper .icon { + -webkit-transform: translateY(0.125em); + transform: translateY(0.125em); } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label { + cursor: default; + position: relative; + padding-left: 1.5em; } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label .spinner { + position: absolute; + top: 0; + left: .275em; + bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label:hover { + background: white; + background: var(--button-bg, white); + color: #555555; + color: var(--button-color, #555555); } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label:hover svg { + fill: currentColor; } + .eureka a { + color: #3697cd; + color: var(--link-color, #3697cd); } + .eureka h1, .eureka h2, .eureka h3, .eureka h4, .eureka h5, .eureka h6 { + font-weight: normal; } + .eureka h1, .eureka h2, .eureka h3, .eureka h4, .eureka h5, .eureka h6, .eureka thead { + color: #555555; + color: var(--subtle, #555555); } + .eureka select { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; + padding-right: 1.5em; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-image: url("data:image/svg+xml;utf8,"); + background-size: contain; + background-repeat: no-repeat; + background-scale: 70% 70%; + background-position: right .5em; + /*&:hover { + background: transparent; + //background-image: url('../img/select-arrow.svg'); + background-size: contain; + background-repeat: no-repeat; + background-scale: 70% 70%; + background-position: right .5em; + color: currentColor; + //--border-color: var(--active, $active); + }*/ } + @media screen and (max-width: 640px) { + .eureka select { + width: 100%; + margin-top: .5em; } } + .eureka select:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + +@-moz-document url-prefix() { + .eureka select { + background-image: url("../img/select-arrow.svg"); } } + .eureka button[id^="eureka__tree-toggle__button"] { + margin-bottom: 16px; + margin-bottom: 1rem; + -webkit-box-shadow: 0 0 0 1px #E4E4E4, 0 0.25em 0 #c5c5c5; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4), 0 0.25em 0 var(--border-color, #c5c5c5); + box-shadow: 0 0 0 1px #E4E4E4, 0 0.25em 0 #c5c5c5; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4), 0 0.25em 0 var(--border-color, #c5c5c5); + /*&[aria-pressed="true"] { + box-shadow: 0 0 0 1px var(--border-shadow-color, #E4E4E4), inset 0 0.175em 0 var(--border-shadow-color, darken(#E4E4E4, 12%)); + }*/ } + .eureka button[id^="eureka__tree-toggle__button"]:focus { + --button-color: #3697cd; + --button-color: var(--active, #3697cd); } + @media screen and (max-width: 640px) { + .eureka button[id^="eureka__tree-toggle__button"] { + width: 100%; + min-height: 1.75rem; } } + @media screen and (min-width: 641px) { + .eureka button[id^="eureka__tree-toggle__button"] { + margin-bottom: 0; } } + .eureka *:disabled { + cursor: not-allowed; } + .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > *:last-child { + background-color: #32AB9A; + background-image: -webkit-gradient(linear, left top, left bottom, from(#32AB9A), to(#00948E)); + background-image: linear-gradient(#32AB9A, #00948E); + -webkit-box-shadow: none; + box-shadow: none; + color: white; } + .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > :hover:last-child, .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > :focus:last-child { + --border-color: #007571; + background-color: #2b9385; + background-image: -webkit-gradient(linear, left top, left bottom, from(#2b9385), to(#007571)); + background-image: linear-gradient(#2b9385, #007571); + color: white; + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); } + .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > :disabled:last-child { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); } + .eureka a.button { + text-decoration: none; } + .eureka button, .eureka .button { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; } + .eureka button:focus, .eureka .button:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + .eureka button:hover, .eureka .button:hover { + background: #3697cd; + color: white; + --border-color: #297aa7; + --border-color: var(--active-darker, #297aa7); + --border-shadow-color: #297aa7; + --border-shadow-color: var(--active-darker, #297aa7); } + .eureka button:hover svg, .eureka .button:hover svg { + fill: white; } + .eureka button.eureka__primary, .eureka .button.eureka__primary { + background-color: #32AB9A; + background-image: -webkit-gradient(linear, left top, left bottom, from(#32AB9A), to(#00948E)); + background-image: linear-gradient(#32AB9A, #00948E); + -webkit-box-shadow: none; + box-shadow: none; + color: white; } + .eureka button.eureka__primary:hover, .eureka button.eureka__primary:focus, .eureka .button.eureka__primary:hover, .eureka .button.eureka__primary:focus { + --border-color: #007571; + background-color: #2b9385; + background-image: -webkit-gradient(linear, left top, left bottom, from(#2b9385), to(#007571)); + background-image: linear-gradient(#2b9385, #007571); + color: white; + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); } + .eureka button.eureka__primary:disabled, .eureka .button.eureka__primary:disabled { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); } + .eureka button.dangerous:hover, .eureka button.dangerous:active, .eureka button.dangerous:focus, .eureka button.dangerous:target, .eureka .button.dangerous:hover, .eureka .button.dangerous:active, .eureka .button.dangerous:focus, .eureka .button.dangerous:target { + --border-color: #b80000; + --border-color: var(--border-color-dangerous, #b80000); + background-color: red; + color: white; + background-image: -webkit-gradient(linear, left top, left bottom, from(red), to(#cc0000)); + background-image: linear-gradient(red, #cc0000); } + .eureka [aria-hidden="true"] button.eureka__primary, .eureka [aria-hidden="true"] .button.eureka__primary { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; } + .eureka [aria-hidden="true"] button.eureka__primary:focus, .eureka [aria-hidden="true"] .button.eureka__primary:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + .eureka [aria-hidden="true"] button.eureka__primary:hover, .eureka [aria-hidden="true"] .button.eureka__primary:hover { + background: #3697cd; + color: white; + --border-color: #297aa7; + --border-color: var(--active-darker, #297aa7); + --border-shadow-color: #297aa7; + --border-shadow-color: var(--active-darker, #297aa7); } + .eureka [aria-hidden="true"] button.eureka__primary:hover svg, .eureka [aria-hidden="true"] .button.eureka__primary:hover svg { + fill: white; } + .eureka input[type="text"] { + padding-left: 8px; + padding-left: 0.5rem; + padding-right: 8px; + padding-right: 0.5rem; } + .eureka input[type="text"] { + border-width: 1px; + border-width: var(--border-width, 1px); + border-style: solid; + border-style: var(--border-style, solid); + border-color: #E4E4E4; + border-color: var(--border-color, #E4E4E4); } + .eureka fieldset { + border: none; } + @media screen and (max-width: 640px) { + .eureka fieldset { + border-width: 1px; + border-width: var(--border-width, 1px); + border-style: solid; + border-style: var(--border-style, solid); + border-color: #E4E4E4; + border-color: var(--border-color, #E4E4E4); + border-radius: 0.25rem; + border-radius: var(--border-color, 0.25rem); } } + .eureka .active { + font-weight: bold; } + .eureka details details { + padding-left: .5em; } + .eureka menu { + display: none; } + .eureka img { + max-width: 100%; } + .eureka .alert-info { + background-color: #d9edf7; + background-color: var(--light-bg, #d9edf7); + border-color: #bce8f1; + border-color: var(--border-color, #bce8f1); + color: #31708f; + color: var(--subtle, #31708f); } + .eureka .alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #3c763d; } + @media screen and (max-width: 640px) { + .eureka .eureka__button-bar > * { + margin-right: 0; } } + .eureka .eureka__tree { + margin-bottom: 16px; + margin-bottom: 1rem; + line-height: 1.6; + line-height: var(--tree-line-height, 1.6); } + @media screen and (min-width: 641px) { + .eureka .eureka__tree { + margin-bottom: .5rem; } } + @media (pointer: coarse) { + .eureka .eureka__tree { + font-size: 1.4em; + line-height: 1.8; + line-height: var(--tree-course-line-height, 1.8); } } + .eureka .eureka__context-buttons { + -ms-flex-pack: distribute; + justify-content: space-around; + background: #f7f7f7; + background: var(--button-bg, #f7f7f7); + border-left: 0; + border-right: 0; + padding: 8px 0; + padding: .5rem 0; } + .eureka .eureka__context-buttons > a.button, .eureka .eureka__context-buttons button { + font-size: 11px; + font-size: .6875rem; } + .eureka.eureka__view-mode__list .eureka__context-buttons { + padding-top: 5.6px; + padding-top: .35rem; + padding-bottom: 5.6px; + padding-bottom: .35rem; } + .eureka.eureka__view-mode__list .eureka__context-buttons > a.button, .eureka.eureka__view-mode__list .eureka__context-buttons button { + font-size: 9.6px; + font-size: .6rem; } + .eureka .eureka__table { + min-width: 100%; } + .eureka .eureka__table tr[contextmenu] { + padding-bottom: 8px; + padding-bottom: .5rem; + /*&:first-child { + padding-top:0; + }*/ } + @media screen and (min-width: 641px) { + .eureka .eureka__table tr[contextmenu] { + padding-top: .5rem; } } + .eureka .eureka__table tr[contextmenu].eureka__focused-media-item:last-child { + padding-bottom: 0; } + .eureka .eureka__table td.comfortable p[class^="alert"] { + margin: 0; } + .eureka .eureka__td-media { + background: transparent; + background: var(--media-cell-background, transparent); } + .eureka .eureka__stage { + padding: 0; + margin-bottom: 8px; + margin-bottom: .5rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__stage { + margin-bottom: 0; } } + .eureka .eureka__stage h1:first-child, .eureka .eureka__stage h2:first-child, .eureka .eureka__stage h3:first-child { + margin-top: 0; } + .eureka .eureka__stage__filter-view { + padding: 8px; + padding: .5rem; } + @media screen and (max-width: 640px) { + .eureka .eureka__stage__filter-view { + padding-bottom: 0; } } + .eureka .eureka__stage__filter-view .eureka__search-bar { + line-height: 2; + font-size: 16px; + font-size: 1rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 16px; + margin-bottom: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__stage__filter-view .eureka__search-bar { + font-size: 0.8rem; + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + max-width: 22em; } } + .eureka .eureka__stage__filter-view .eureka__search-bar label { + color: #556C88; + color: var(--subtle, #556C88); } + @media screen and (min-width: 641px) { + .eureka .eureka__stage__filter-view .eureka__search-bar { + margin-bottom: 0; } } + .eureka .eureka__stage__filter-view .eureka__search-bar input { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + font-size: inherit; } + .eureka .eureka__media-directory-selector { + margin-bottom: 16px; + margin-bottom: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__media-directory-selector { + margin-right: auto; + margin-bottom: 0.5rem; } } + .eureka .eureka__media-directory-selector button[type="submit"] { + margin-left: 16px; + margin-left: 1rem; } + .eureka .eureka__media-directory-selector form { + position: relative; + /*&::after { + display:inline-block; + width:1em; + position: absolute; + top: 0; + right: 0; + bottom: 0; + background:red; + content:'.'; + }*/ } + .eureka .eureka__tree-bar { + margin: 8px 0 0 0; + margin: .5rem 0 0 0; } + .eureka .eureka__tree-bar > * { + margin: 0 8px 0 0; + margin: 0 .5rem 0 0; } + .eureka .eureka__tree-bar > *:last-child { + margin-right: 0; } + @media screen and (max-width: 640px) { + .eureka .eureka__tree-bar { + margin-top: 1rem; } } + .eureka .eureka__tree-bar button, .eureka .eureka__tree-bar .button { + font-size: 16px; + font-size: 1rem; + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .eureka .eureka__media-source-selector { + margin-bottom: 16px; + margin-bottom: 1rem; } + .eureka .eureka__media-source-selector h2:first-child, .eureka .eureka__media-source-selector h3:first-child { + margin-top: 0; } + @media screen and (max-width: 640px) { + .eureka .eureka__upload-form { + margin-bottom: 1rem; } } + @media screen and (max-width: 640px) { + .eureka .eureka__upload-form label { + display: block; } } + .eureka:not(.eureka__server-side) .eureka__upload-form label { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; + font-size: 11px; + font-size: .6875rem; + text-align: center; } + .eureka:not(.eureka__server-side) .eureka__upload-form label:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + .eureka:not(.eureka__server-side) .eureka__upload-form label:hover { + background: #3697cd; + color: white; + --border-color: #297aa7; + --border-color: var(--active-darker, #297aa7); + --border-shadow-color: #297aa7; + --border-shadow-color: var(--active-darker, #297aa7); } + .eureka:not(.eureka__server-side) .eureka__upload-form label:hover svg { + fill: white; } + .eureka .eureka__choose-bar { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + /*@include media($gtMobile) { + justify-content:flex-end; + }*/ } + .eureka .eureka__choose-bar[aria-hidden="true"] { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); } + .eureka .eureka__choose-bar button { + font-size: 16px; + font-size: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__choose-bar button { + font-size: .8rem; } } + .eureka .eureka__pathbrowser { + margin-bottom: 8px; + margin-bottom: .5rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__pathbrowser { + margin-bottom: 0; } } + .eureka .eureka__pathbrowser nav { + color: #556C88; + color: var(--subtle, #556C88); } + .eureka .eureka__pathbrowser details > summary svg { + -webkit-transform: translateY(0.2em); + transform: translateY(0.2em); + margin-right: 0.25em; } + .eureka .eureka__pathbrowser details > summary > .icon-folder-open { + display: none; } + .eureka .eureka__pathbrowser details[open] > summary > .icon-folder-open { + display: inline-block; } + .eureka .eureka__pathbrowser details[open] > summary > .icon-folder { + display: none; } + .eureka .eureka__pathbar { + padding: 8px; + padding: .5rem; + margin-bottom: 8px; + margin-bottom: .5rem; + margin-top: 8px; + margin-top: .5rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__pathbar { + margin-bottom: 0; } } + .eureka .eureka__pathbar summary { + word-wrap: break-word; } + .eureka .eureka__pathbar details > div { + padding-top: 16px; + padding-top: 1rem; } + .eureka .eureka__pathbar .eureka__context-buttons { + background: none; + border: none; } + .eureka .eureka__layout-chooser { + color: #556C88; + color: var(--subtle, #556C88); } + .eureka .eureka__layout-chooser fieldset { + margin: 0; + padding: .5em 0; } + @media screen and (min-width: 641px) { + .eureka .eureka__layout-chooser fieldset { + padding: 0; } } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: distribute; + justify-content: space-around; } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns > div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"], .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] { + /*&:focus { + + { + label { + outline: 1px solid var(--active, $active); + } + } + }*/ } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"]:checked + label svg[class^="icon"], .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"]:checked + label svg[class^="icon"] { + fill: #3697cd; + fill: var(--active, #3697cd); } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns label { + font-size: 22.4px; + font-size: 1.4rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .eureka svg[class^="icon"] { + position: relative; + width: 1em; + height: 1em; + fill: currentColor; } + @media screen and (min-width: 641px) { + .eureka .eureka__hide-for-mobile-up { + display: none; } } + @media screen and (max-width: 640px) { + .eureka .eureka__show-for-mobile-up { + display: none; } } + .eureka .eureka__drop-area { + -webkit-box-flex: 2; + -ms-flex: 2 8 auto; + flex: 2 8 auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + cursor: pointer; } + .eureka .eureka__drop-area-zone { + width: 100%; + padding: 8px; + padding: .5rem; + border-width: 2px; + border-color: #dddddd; + border-color: var(--very-subtle, #dddddd); + border-style: dashed; + border-radius: 5px; + background-color: transparent; + -webkit-transition: border-color 240ms ease, background-color 320ms ease 120ms; + transition: border-color 240ms ease, background-color 320ms ease 120ms; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: none; } + @media screen and (min-height: 360px) { + .eureka .eureka__drop-area-zone { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } } + .eureka .eureka__drop-area-zone svg { + font-size: 4em; + fill: #dddddd; + fill: var(--very-subtle, #dddddd); + -webkit-transition: fill 240ms ease 160ms, opacity 240ms ease; + transition: fill 240ms ease 160ms, opacity 240ms ease; + opacity: 0.42; + opacity: var(--very-subtle-icon-opacity, 0.42); + max-height: 100%; } + .eureka .eureka__drop-area-zone.eureka__drop-area-zone-active { + background-color: #d9ecf6; + border-color: #3697cd; + border-color: var(--active, #3697cd); + -webkit-transition: border-color 240ms ease 120ms, background-color 320ms ease 0; + transition: border-color 240ms ease 120ms, background-color 320ms ease 0; } + .eureka .eureka__drop-area-zone.eureka__drop-area-zone-active svg { + fill: #3697cd; + fill: var(--active, #3697cd); + opacity: 1; } + .eureka .eureka__modal { + z-index: 100009; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .eureka .eureka__modal .eureka__modal-scrim { + background: rgba(8, 8, 8, 0.25); + z-index: 0; } + .eureka .eureka__modal .eureka__modal-panel { + min-width: 30vw; + max-width: 70vw; + max-height: 70vh; + position: relative; + z-index: 99999; } + .eureka .eureka__modal .eureka__modal-panel h1:first-child, .eureka .eureka__modal .eureka__modal-panel h2:first-child, .eureka .eureka__modal .eureka__modal-panel h3:first-child { + margin-top: 0; } + .eureka .eureka__modal .eureka__modal-panel summary label { + display: block; + margin-bottom: 8px; + margin-bottom: .5rem; } + .eureka .eureka__modal .eureka__modal-panel summary label[for="eureka__crop-upload-file"] { + margin-bottom: 0; } + .eureka .eureka__modal .eureka__modal-panel input[type="text"] { + width: 100%; + font-size: 1.4em; } + .eureka .eureka__modal .eureka__modal-panel .eureka__button-bar { + margin-top: 8px; + margin-top: .5rem; } + .eureka .eureka__modal .eureka__modal-panel .eureka__button-bar > * { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .eureka .eureka__modal.eureka__greedy .eureka__modal-panel { + max-width: calc(100vw - 2rem); + max-height: calc(100vh - 2rem); } + +@media screen and (max-width: 640px) { + .eureka-root .eureka__sticky-bar { + z-index: 99999; + position: -webkit-sticky; + position: sticky; + left: 0.5rem; + right: 0.5rem; + top: 0; } + .eureka-root .eureka__sticky-bar .eureka__notification-wrapper { + /*transform: translateY(-5em); + &[aria-hidden="false"] { + transform: translateY(0); + }*/ } } + +.eureka-root .eureka__notification-wrapper { + z-index: 99999; + margin-bottom: 8px; + margin-bottom: .5rem; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__notification-wrapper { + margin-bottom: 0; } } + .eureka-root .eureka__notification-wrapper button { + display: inline; + background: transparent; + border: none; + padding: 0; } + .eureka-root .eureka__notification-wrapper button:hover, .eureka-root .eureka__notification-wrapper button:focus { + background: transparent !important; + border: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + +.eureka-root .eureka__notification-wrapper > * { + display: block; + margin-left: auto; + margin-right: auto; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__notification-wrapper > * { + display: inline-block; } } + +.eureka-root .eureka__choose-radio { + margin-bottom: 16px; + margin-bottom: 1rem; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__choose-radio { + margin-bottom: 0; + -webkit-transform: translateY(0.3em); + transform: translateY(0.3em); + z-index: 0; } } + .eureka-root .eureka__choose-radio fieldset { + border: none; } +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zY3NzL21haW4uc2NzcyIsInNyYy9zY3NzL3NwZWMvX3RhY3VsYXIuc2NzcyIsIm1haW4uY3NzIiwic3JjL3Njc3MvbGF5b3V0L19sYXlvdXQuc2NzcyIsInNyYy9zY3NzL25lYXQvZ3JpZC9fbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPRTtFQUNFLCtCQUFzQjtVQUF0Qix1QkFBc0IsRUFDdkI7O0FBQ0Q7RUFJSSw0QkFBbUI7VUFBbkIsb0JBQW1CLEVBQ3BCOztBQXVTTDtFQ3ZRSSxZQUFVLEVBQ2I7O0FEc1FEO0VDM1BJLGdCQUFjLEVBQ2pCOztBRDBQRDtFQy9NSSxtQkFBaUI7RUFDakIsT0FBSztFQUNMLFFBQU07RUFDTixTQUFPO0VBQ1AsVUFBUSxFQUtYOztBQXNCRDs7RUFFRTtBRGhHRjtFQUNFLGlFQUE2SDtFQUE3SCx5SEFBNkg7VUFBN0gseURBQTZIO1VBQTdILGlIQUE2SCxFQUM5SDs7QUFFRDtFQUFtQiw2RkFBNkY7RUFuQjlHLDhCQUE2QjtFQUM3Qiw0QkFBMkI7RUFBRSxjQUFjO0VBQzNDLCtCQUE4QjtFQUM5QixzQkFBb0I7RUFDcEIscUJBQW1CO0VBQ25CLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsaUJBQWdCLEVBY2pCO0VBYkM7SUFFSSx5QkFBd0IsRUFDekI7O0FFR0w7RUN0Q0UsV0FBUyxFQU9WO0VDOEVHO0lGNUNBO01DdkNBLHFCQUFhO01BQWIscUJBQWE7TUFBYixjQUFhO01BQ2IsbUJBQWlCO01BQ2pCLDZCQUFzQjtNQUF0Qiw4QkFBc0I7VUFBdEIsMkJBQXNCO2NBQXRCLHVCQUFzQixFQUd6QixFQUFBOztBQUVEO0VBd0dFOzs7Ozs7Ozs7OztLQVdHLEVBc0VKO0VBekxEO0lBR0ksYUFBWTtJQUNaLGNBQWE7SUFDYixpQkFBZ0I7SUFDaEIsb0JBQW9DO0lBQXBDLHFDQUFvQyxFQUNyQztFQVBIO0lBVUksaUJBQWtCO0lBQWxCLG1CQUFrQixFQUNuQjtFQVhIO0lBa0JZLDBCQUF5QixF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LEVBQ0osRUFBQTs7QUFmUDtFQW9CSSxlQ3BqQ1U7RURxakNWLG1CQUFvQjtFQUFwQixxQkFBb0IsRUFnQnJCO0VJL2dDQztJSjArQko7TUF1Qk0saUJBQWdCLEVBY25CLEVBQUE7RUFyQ0g7SUEwQk0sZ0JBQWU7SUFDZix3QkFBdUI7SUFDdkIsYUFBWTtJQUNaLFdBQVUsRUFPWDtJQXBDTDtNQStCUSxtQ0FBa0M7TUFDbEMsd0JBQXVCO01BRXZCLG9DQUEyQjtjQUEzQiw0QkFBMkIsRUFDNUI7O0FBbkNQO0VBd0NJLGVBQWM7RUFJZCxrQkFBaUI7RUFDakIsbUJBQWtCLEVBQ25CO0VJeGhDQztJSjArQko7TUEwQ00sc0JBQXFCLEVBSXhCLEVBQUE7O0FBOUNIO0VBZ0RJLG9CQUFtQjtFQUFuQixvQkFBbUIsRUFTcEI7RUluaUNDO0lKMCtCSjtNQWtETSxpQkFBZ0I7TUFDaEIscUNBQTJCO2NBQTNCLDZCQUEyQjtNQUMzQixXQUFVLEVBS2IsRUFBQTtFQXpESDtJQXVETSxhQUFZLEVBQ2IiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6W251bGwsbnVsbCwiLmV1cmVrYSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmV1cmVrYSAqLCAuZXVyZWthICo6OmFmdGVyLCAuZXVyZWthICo6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgaW1nLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIGltZywgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1zb3VyY2Utc2VsZWN0b3Igc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmV1cmVrYSB0aFthcmlhLXNvcnRdLCAuZXVyZWthIHNlbGVjdCwgLmV1cmVrYSBidXR0b24sIC5ldXJla2EgLmJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbCwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmV1cmVrYSAuZXVyZWthX19tb2RhbCwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1zY3JpbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi8qXG5odHRwOi8vd3d3LnBoYXNlMnRlY2hub2xvZ3kuY29tL2Jsb2cvZXhwbG9yaW5nLW1hcHMtaW4tc2Fzcy0zLTMvXG4qL1xuLmV1cmVrYSBpbnB1dFthcmlhLXByZXNzZWQ9XCJ0cnVlXCJdICsgbGFiZWwsIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsLCAuZXVyZWthIGJ1dHRvblthcmlhLXByZXNzZWQ9XCJ0cnVlXCJdIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1zaGFkb3ctY29sb3IsICNFNEU0RTQpLCBpbnNldCAwIDAuMTc1ZW0gMCB2YXIoLS1ib3JkZXItc2hhZG93LWNvbG9yLCAjYzVjNWM1KTsgfVxuXG4uZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSwgLnZpc3VhbGx5LWhpZGRlbiwgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIGxlZ2VuZCwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAvKmh0dHBzOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9ibG9ncy95ZG4vY2xpcC1oaWRkZW4tY29udGVudC1iZXR0ZXItYWNjZXNzaWJpbGl0eS01MzQ1Ni5odG1sKi9cbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMXB4IDFweCAxcHggMXB4KTtcbiAgLyogSUU2LCBJRTcgKi9cbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgYm9keTpob3ZlciAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBhLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSBib2R5OmhvdmVyIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGEsIGJvZHk6aG92ZXIgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBhLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIGJvZHk6aG92ZXIgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSkgYSwgYm9keTpob3ZlciAudmlzdWFsbHktaGlkZGVuIGEsIGJvZHk6aG92ZXIgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdIGEsIC5ldXJla2E6bm90KC5ldXJla2FfX3NlcnZlci1zaWRlKSAuZXVyZWthX191cGxvYWQtZm9ybSBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJmaWxlXCJdIGEsIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBsZWdlbmQgYSwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBib2R5OmhvdmVyIGxlZ2VuZCBhLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJyYWRpb1wiXSBhLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSBhLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSBhLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSBhLCBib2R5OmhvdmVyIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGlucHV0LCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSBib2R5OmhvdmVyIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGlucHV0LCBib2R5OmhvdmVyIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSkgaW5wdXQsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgYm9keTpob3ZlciB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBpbnB1dCwgYm9keTpob3ZlciAudmlzdWFsbHktaGlkZGVuIGlucHV0LCBib2R5OmhvdmVyIC5ldXJla2E6bm90KC5ldXJla2FfX3NlcnZlci1zaWRlKSAuZXVyZWthX191cGxvYWQtZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSBpbnB1dCwgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImZpbGVcIl0gaW5wdXQsIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBsZWdlbmQgaW5wdXQsIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgYm9keTpob3ZlciBsZWdlbmQgaW5wdXQsIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdIGlucHV0LCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSBpbnB1dCwgYm9keTpob3ZlciAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gaW5wdXQsIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIGlucHV0LCBib2R5OmhvdmVyIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGJ1dHRvbiwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgYm9keTpob3ZlciB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBidXR0b24sIGJvZHk6aG92ZXIgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBidXR0b24sIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgYm9keTpob3ZlciB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBidXR0b24sIGJvZHk6aG92ZXIgLnZpc3VhbGx5LWhpZGRlbiBidXR0b24sIGJvZHk6aG92ZXIgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdIGJ1dHRvbiwgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImZpbGVcIl0gYnV0dG9uLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgbGVnZW5kIGJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBib2R5OmhvdmVyIGxlZ2VuZCBidXR0b24sIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdIGJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgYm9keTpob3ZlciBpbnB1dFt0eXBlPVwicmFkaW9cIl0gYnV0dG9uLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSBidXR0b24sIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbltjbGFzcyo9XCJtb2RhbC1zZWN0aW9uXCJdLCBbY2xhc3MqPVwiZXVyZWthLXdyYXBwZXJcIl0ge1xuICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgW2NsYXNzKj1cIm1vZGFsLXNlY3Rpb25cIl0sIFtjbGFzcyo9XCJldXJla2Etd3JhcHBlclwiXSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5ldXJla2Etcm9vdCB7XG4gIC8qLmV1cmVrYSB7XG4gICAgdGJvZHkge1xuICAgICAgJjpub3QoLmVtcHR5KSB7XG4gICAgICAgID4gdHI6bm90KC5lbXB0eSkge1xuICAgICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTpncmlkKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlwibWVkaWEgbmFtZSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIiBcImFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9uc1wiO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDI0JSAxMiUgMTIlIDEyJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0qLyB9XG4gIC5ldXJla2Etcm9vdDotd2Via2l0LWZ1bGwtc2NyZWVuIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbG9yLCAjZWNlY2VjKTsgfVxuICAuZXVyZWthLXJvb3QgbGFiZWxbZm9yKj1cImZ1bGxzY3JlZW4tdG9nZ2xlXCJdIHtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0ci5ldXJla2FfX2ZvY3VzZWQtbWVkaWEtaXRlbSA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3csIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHIuZXVyZWthX19mb2N1c2VkLW1lZGlhLWl0ZW0gPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0ci5ldXJla2FfX2ZvY3VzZWQtbWVkaWEtaXRlbSA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3dbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpmb2N1cyA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3dbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyLmV1cmVrYV9fZm9jdXNlZC1tZWRpYS1pdGVtID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93W2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHIgPiB0ZC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHIgPiB0ZC5ldXJla2FfX3RkLW1lZGlhIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpmb2N1cyA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3dbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOmZvY3VzID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpmb2N1cy13aXRoaW4gPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMtd2l0aGluID4gdGQuZXVyZWthX19jb250ZXh0LXJvdyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMtd2l0aGluID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMtd2l0aGluID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmV1cmVrYS1yb290IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSBhbmQgKCBub3QgKGRpc3BsYXk6Z3JpZCkgKSB7XG4gICAgICAgfSovIH1cbiAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+ICoge1xuICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkIC5ldXJla2FfX3RkLW1lZGlhIHtcbiAgICAgICAgICBncmlkLWFyZWE6IG1lZGlhOyB9XG4gICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQgLmV1cmVrYV9fdGQtZmlsZW5hbWUge1xuICAgICAgICAgIGdyaWQtYXJlYTogbmFtZTsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3cge1xuICAgICAgICAgIGdyaWQtYXJlYTogYWN0aW9uczsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZGltZW5zaW9ucyB7XG4gICAgICAgICAgZ3JpZC1hcmVhOiBkaW1lbnNpb25zOyB9XG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19kaW1lbnNpb25zIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19maWxlLXNpemUge1xuICAgICAgICAgIGdyaWQtYXJlYTogZmlsZS1zaXplOyB9XG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19maWxlLXNpemUge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgICAgLmV1cmVrYS1yb290IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2VkaXRlZC1vbiB7XG4gICAgICAgICAgZ3JpZC1hcmVhOiBlZGl0ZWQtb247IH1cbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAgICAgLmV1cmVrYS1yb290IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2VkaXRlZC1vbiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfSB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2Nob29zZSB7XG4gICAgICBncmlkLWFyZWE6IGNob29zZTsgfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX3RkLW1lZGlhIHtcbiAgICAgIGdyaWQtYXJlYTogbWVkaWE7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX190ZC1maWxlbmFtZSB7XG4gICAgICBncmlkLWFyZWE6IG5hbWU7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19jb250ZXh0LXJvdyB7XG4gICAgICBncmlkLWFyZWE6IGFjdGlvbnM7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19kaW1lbnNpb25zIHtcbiAgICAgIGdyaWQtYXJlYTogZGltZW5zaW9uczsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZGltZW5zaW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZmlsZS1zaXplIHtcbiAgICAgIGdyaWQtYXJlYTogZmlsZS1zaXplOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19maWxlLXNpemUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2VkaXRlZC1vbiB7XG4gICAgICBncmlkLWFyZWE6IGVkaXRlZC1vbjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZWRpdGVkLW9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH0gfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImNob29zZSBtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnNcIjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAycmVtIGF1dG8gMjQlIDEyJSAxMiUgMTIlOyB9IH0gfVxuXG4uZXVyZWthIC5ldXJla2FfX2Nob29zZS1yYWRpbyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtcmFkaW8gZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY2hvb3NlLXJhZGlvIC5ldXJla2FfX2ZpZWxkc2V0IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtcmFkaW8gLmV1cmVrYV9fZmllbGRzZXQgPiAqIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvOyB9XG5cbi5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlLmV1cmVrYV9fdGFibGUgPiB0aGVhZCA+IHRyIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAycmVtIDE2JSA0MCUgOCUgYXV0byBhdXRvICFpbXBvcnRhbnQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwicmFkaW8gbmFtZSBtZWRpYSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIiAhaW1wb3J0YW50OyB9XG4gIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlLmV1cmVrYV9fdGFibGUgPiB0aGVhZCA+IHRyIHRoOm50aC1vZi10eXBlKDMpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJyZW0gMTYlIDQwJSA4JSBhdXRvIGF1dG8gIWltcG9ydGFudDtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJyYWRpbyBuYW1lIG1lZGlhIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiICFpbXBvcnRhbnQ7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZCB7XG4gICAgICAvKiY6bnRoLW9mLXR5cGUoMSkge1xuICAgICAgICAgICAgIGdyaWQtYXJlYTptZWRpYTtcbiAgICAgICAgICAgfVxuICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICAgICBncmlkLWFyZWE6bmFtZTtcbiAgICAgICAgICAgfVxuICAgICAgICAgICAmOm50aC1vZi10eXBlKDMpIHtcbiAgICAgICAgICAgICBncmlkLWFyZWE6YWN0aW9ucztcbiAgICAgICAgICAgfSovIH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlLmV1cmVrYV9fdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX190ZC1maWxlbmFtZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg0KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZGltZW5zaW9ucyAhaW1wb3J0YW50OyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZS5ldXJla2FfX3RhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDUpIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBmaWxlLXNpemUgIWltcG9ydGFudDsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg2KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZWRpdGVkLW9uICFpbXBvcnRhbnQ7IH0gfVxuXG4uZXVyZWthLXJvb3Qge1xuICBwYWRkaW5nOiAuNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRhYmxlID4gdGhlYWQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7XG4gICAgICAvKiBJRTYsIElFNyAqL1xuICAgICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgYm9keTpob3ZlciAuZXVyZWthLXJvb3QgLmV1cmVrYSB0YWJsZSA+IHRoZWFkIGEsIGJvZHk6aG92ZXIgLmV1cmVrYS1yb290IC5ldXJla2EgdGFibGUgPiB0aGVhZCBpbnB1dCwgYm9keTpob3ZlciAuZXVyZWthLXJvb3QgLmV1cmVrYSB0YWJsZSA+IHRoZWFkIGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHkgPiB0ciA+IHRkOm5vdCguZXVyZWthX19jb250ZXh0LXJvdykge1xuICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07IH0gfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0Ym9keSA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkgPiB0ciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJjaG9vc2UgY2hvb3NlIGNob29zZSBjaG9vc2UgY2hvb3NlIGNob29zZVwiIFwibWVkaWEgbWVkaWEgbWVkaWEgbWVkaWEgbWVkaWEgbWVkaWFcIiBcIm5hbWUgbmFtZSBuYW1lIG5hbWUgbmFtZSBuYW1lXCIgXCJhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9uc1wiOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRib2R5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJjaG9vc2UgbWVkaWEgbmFtZSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAycmVtIGF1dG8gMjQlIDEyJSAxMiUgMTIlOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIHRhYmxlID4gdGJvZHkgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCB0YWJsZSA+IHRib2R5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImNob29zZSBjaG9vc2UgY2hvb3NlIGNob29zZSBjaG9vc2UgY2hvb3NlXCIgXCJtZWRpYSBtZWRpYSBtZWRpYSBtZWRpYSBtZWRpYSBtZWRpYVwiOyB9XG4gIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUge1xuICAgIC8qPiB0aGVhZCA+IHRyIHtcbiAgICAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiO1xuICAgICAgIH0qLyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRhYmxlID4gdGJvZHkgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRib2R5ID4gdHIge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0Ym9keSA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkgPiB0ciB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDAlIDI0JSAxMiUgMTIlIDEyJTsgfSB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRhYmxlID4gdGJvZHkgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwibWVkaWEgbWVkaWEgbWVkaWEgbWVkaWEgbWVkaWFcIiBcIm5hbWUgbmFtZSBuYW1lIG5hbWUgbmFtZVwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRib2R5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkgPiB0ciB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7IH0gfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRib2R5LmVtcHR5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkuZW1wdHkgPiB0ciB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSAuZXVyZWthX190cmVlLXRvZ2dsZSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbFtmb3IqPVwidXBsb2FkLWZvcm1cIl0sIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgLmV1cmVrYV9fdHJlZS10b2dnbGUgLmV1cmVrYV9fdXBsb2FkLWZvcm0gbGFiZWxbZm9yKj1cInVwbG9hZC1mb3JtXCJdIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwicmFkaW8gbWVkaWEgbmFtZSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMnJlbSA0MCUgMjQlIGF1dG8gYXV0byBhdXRvOyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDEpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSgxKSB7XG4gICAgICAgIGdyaWQtYXJlYTogcmFkaW87IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgyKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQ6bnRoLW9mLXR5cGUoMiksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBtZWRpYTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGQ6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDMpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSgzKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGg6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGQ6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQ6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGg6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICBncmlkLWFyZWE6IG5hbWU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSg1KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQ6bnRoLW9mLXR5cGUoNSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDUpIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBkaW1lbnNpb25zOyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoNiksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDYpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg2KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZmlsZS1zaXplOyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoNyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDcpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg3KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZWRpdGVkLW9uOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSkge1xuICAgIGdyaWQtYXJlYTogbm9uZTsgfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRoZWFkID4gdHIgdGQ6Zmlyc3QtY2hpbGQsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGhlYWQgPiB0ciB0aDpmaXJzdC1jaGlsZCwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHRkOmZpcnN0LWNoaWxkLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRib2R5ID4gdHIgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcIm5hbWUgbmFtZSBuYW1lIG5hbWUgbmFtZVwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5ldXJla2FfX2Nob29zZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7IH0gfVxuXG4uZXVyZWthLXJvb3QgLmV1cmVrYV9fdGFibGUgaW1nLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdGFibGUgZW1iZWQsIC5ldXJla2Etcm9vdCAuZXVyZWthX190YWJsZSBvYmplY3QsIC5ldXJla2Etcm9vdCAuZXVyZWthX190YWJsZSB2aWRlbyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYS1yb290IHtcbiAgICAvKmRpc3BsYXk6Z3JpZDtcbiAgICBncmlkLWdhcDowO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoyMHZ3IGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcImhlYWRlciBoZWFkZXJcIiBcInNpZGViYXIgY29udGVudFwiIFwiZm9vdGVyIGZvb3RlclwiOyovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXg6IDE7IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHtcbiAgICAgICAgLypAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgfSovIH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSA+IC5ldXJla2FfX2Jyb3dzZS1jb250ZW50ID4gLmV1cmVrYV9fcGF0aGJyb3dzZXIge1xuICAgICAgICAgIGZsZXg6IDAgMCAxNHJlbTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07IH1cbiAgICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSA+IC5ldXJla2FfX2Jyb3dzZS1jb250ZW50ID4gLmV1cmVrYV9fcGF0aGJyb3dzZXJbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3BhdGhicm93c2VyW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSB7XG4gICAgICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3N0YWdlID4gLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyA+IGhlYWRlciB7XG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtOyB9XG4gICAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyA+IGhlYWRlciA+IGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyA+IGhlYWRlciA+IGgyIGZvcm0ge1xuICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3N0YWdlID4gLmV1cmVrYV9fdGFibGUtd3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtIC41cmVtIDA7IH1cbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3RhYmxlLXdyYXBwZXIgPiBkaXYge1xuICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3RhYmxlLXdyYXBwZXIgPiBkaXYgPiB0YWJsZSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19jaG9vc2UtYmFyIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtOyB9IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3N0YWdlID4gLmV1cmVrYV9fdGFibGUtd3JhcHBlciB7XG4gIHBhZGRpbmctbGVmdDogLjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbWFzb25yeSA+IC5ldXJla2FfX2Jyb3dzZS1jb250ZW50ID4gLmV1cmVrYV9fc3RhZ2UgPiAuZXVyZWthX190YWJsZS13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19jaG9vc2UtYmFyID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTsgfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fY2hvb3NlLWJhciA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uZXVyZWthLXJvb3QgdGhlYWQge1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtZ3JvdzogMDsgfVxuICAuZXVyZWthLXJvb3QgdGhlYWQuZXVyZWthX190Ym9keS1zY3JvbGxpbmcge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgLmV1cmVrYS1yb290IHRoZWFkW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmV1cmVrYS1yb290IHRoZWFkID4gdHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSBhbmQgKCBub3QgKGRpc3BsYXk6IGdyaWQpICkge1xuICAgICAgfSovIH1cbiAgICAuZXVyZWthLXJvb3QgdGhlYWQgPiB0ciA+IHRoIHtcbiAgICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gICAgICAuZXVyZWthLXJvb3QgdGhlYWQgPiB0ciA+IHRoLmV1cmVrYV9fY2hvb3NlIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBjaG9vc2U7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1tZWRpYSB7XG4gICAgICAgIGdyaWQtYXJlYTogbWVkaWE7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1maWxlbmFtZSB7XG4gICAgICAgIGdyaWQtYXJlYTogbmFtZTsgfVxuICAgICAgLmV1cmVrYS1yb290IHRoZWFkID4gdHIgPiB0aC5ldXJla2FfX3RoLWFjdGlvbnMge1xuICAgICAgICBncmlkLWFyZWE6IG5vbmU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1kaW1lbnNpb25zIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBkaW1lbnNpb25zOyB9XG4gICAgICAuZXVyZWthLXJvb3QgdGhlYWQgPiB0ciA+IHRoLmV1cmVrYV9fdGgtZmlsZS1zaXplIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBmaWxlLXNpemU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1lZGl0ZWQtb24ge1xuICAgICAgICBncmlkLWFyZWE6IGVkaXRlZC1vbjsgfVxuXG4uZXVyZWthLXJvb3QgdGJvZHkuZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuZXVyZWthLXJvb3QgdGJvZHkuZW1wdHkgPiB0ciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmV1cmVrYS1yb290IHRib2R5LmVtcHR5ID4gdHIgdGQge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmV1cmVrYS1yb290IHRib2R5IHtcbiAgZmxleC1iYXNpczogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC13cmFwOiBuby13cmFwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGU6bm90KC5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCkgLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGU6bm90KC5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCkgLmV1cmVrYV9fdGQtbWVkaWEge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYV9fbWVkaWEtZGlyZWN0b3J5LXNlbGVjdG9yIGZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3IgPiBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogLjVlbTsgfSB9XG5cbi5ldXJla2FfX3NvcnQtc2VsZWN0IHNlbGVjdCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYV9fc29ydC1zZWxlY3Qge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgIC5ldXJla2FfX3NvcnQtc2VsZWN0IGxhYmVsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07IH1cbiAgICAuZXVyZWthX19zb3J0LXNlbGVjdCBzZWxlY3Qge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gIC5ldXJla2FfX3RyZWUtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTsgfVxuICAgIC5ldXJla2FfX3RyZWUtdG9nZ2xlID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAuZXVyZWthX190cmVlLXRvZ2dsZSAuZXVyZWthX191cGxvYWQtZm9ybSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2FfX3RyZWUtdG9nZ2xlIC5ldXJla2FfX3VwbG9hZC1mb3JtIGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3RyZWUtdG9nZ2xlIC5ldXJla2FfX3VwbG9hZC1mb3JtIGxhYmVsW2Zvcio9XCJ1cGxvYWQtZm9ybVwiXSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthX19zZXJ2ZXItc2lkZSAuZXVyZWthX190cmVlLXRvZ2dsZSAuZXVyZWthX191cGxvYWQtZm9ybSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHtcbiAgLypAaW5jbHVkZSBtZWRpYSgkZ3RNb2JpbGUpIHtcbiAgICB9Ki8gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIC5ldXJla2FfX3RhYmxlIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMHZoOyB9IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGg6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogLjVyZW07IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC41cmVtOyB9XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdHIgdGgge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdHIgdGgge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0aC5ldXJla2FfX3RoLW1lZGlhIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0aC5ldXJla2FfX3RoLW1lZGlhIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19lbmxhcmdlLWZvY3VzZWQtcm93cyAuZXVyZWthX190YWJsZSBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDIwdmg7IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19lbmxhcmdlLWZvY3VzZWQtcm93cyAuZXVyZWthX190YWJsZSB0cjpmb2N1cyBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDMwdmg7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGhlYWQsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGFibGUgdGhlYWQsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGhlYWQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGQ6bm90KC5ldXJla2FfX3RkLW1lZGlhKTpub3QoLmV1cmVrYV9fY2hvb3NlKSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0ZDpub3QoLmV1cmVrYV9fdGQtbWVkaWEpOm5vdCguZXVyZWthX19jaG9vc2UpLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRkOm5vdCguZXVyZWthX190ZC1tZWRpYSk6bm90KC5ldXJla2FfX2Nob29zZSkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRkW2NvbHNwYW5dLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRkW2NvbHNwYW5dLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRkW2NvbHNwYW5dIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkge1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkge1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbWFzb25yeSAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0ge1xuICAgIG1hcmdpbjogMCAuNXJlbSAuNXJlbSAwO1xuICAgIGZsZXgtYmFzaXM6IDQydnc7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbWFzb25yeSAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0gdGQsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHRkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0sIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHtcbiAgICAgICAgZmxleC1iYXNpczogMTZ2dzsgfSB9XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0sIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0sIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHtcbiAgICBmbGV4LWJhc2lzOiAyNXZ3OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0gPiB0ZDpub3QoLmV1cmVrYV9fY29udGV4dC1yb3cpLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSA+IHRkOm5vdCguZXVyZWthX19jb250ZXh0LXJvdykge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSB7XG4gICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgLjI1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX190cmVlIHtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGZsZXgtZ3JvdzogMTsgfSB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgbWFyZ2luLXRvcDogLjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX19jb250ZXh0LXJvdyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG9yZGVyOiAxMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKj4gdGRbY29sc3Bhbl0ge1xuICAgICAgfSovIH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtcm93W2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jb250ZXh0LXJvdyAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZXVyZWthIC5ldXJla2FfX3RyZWUtYmFyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGQtbWVkaWEge1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoOm50aC1vZi10eXBlKDIpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH0gfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTsgfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRkLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGgge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRkLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGQuZXVyZWthX190aC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0aC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRoLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRoLmV1cmVrYV9fdGgtbWVkaWEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGQuZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGguZXVyZWthX190aC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGQuZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGQuZXVyZWthX190aC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGguZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGguZXVyZWthX190aC1tZWRpYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0ZC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRkLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGguZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0aC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0aC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0aC5ldXJla2FfX3RoLW1lZGlhIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0ZC5ldXJla2FfX3RkLWZpbGVuYW1lLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLmV1cmVrYV9fdGQtZmlsZW5hbWUsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkLmV1cmVrYV9fdGQtZmlsZW5hbWUsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRoLmV1cmVrYV9fdGQtZmlsZW5hbWUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZy10b3A6IC41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0Ym9keSB7XG4gICAgbGluZS1oZWlnaHQ6IDI7IH0gfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX3RkLW1lZGlhIGltZywgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0Ym9keSAuZXVyZWthX190ZC1tZWRpYSB2aWRlbywgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0Ym9keSAuZXVyZWthX190ZC1tZWRpYSBlbWJlZCB7XG4gIG1heC13aWR0aDogMTB2aDtcbiAgbWF4LWhlaWdodDogMTB2aDsgfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW2NvbnRleHRtZW51XSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW2NvbnRleHRtZW51XSA+IHRkOm50aC1vZi10eXBlKDIpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC41cmVtOyB9XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbY29udGV4dG1lbnVdID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogLjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX19jcm9wLWJ0biB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5ldXJla2EgLmZsZXgtYmFyIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5ldXJla2EgLmZsZXgtYmFyIGZpZWxkc2V0IGxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5ldXJla2EgLmV1cmVrYV9faW52ZXJ0LWhvcnoge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7IH1cblxuLmV1cmVrYSAuZXVyZWthX190ZC1tZWRpYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX19zaG93LWZvci1tb2JpbGUtdXAgcCwgLmV1cmVrYSAuZXVyZWthX19zaG93LWZvci1tb2JpbGUtdXAgdGV4dGFyZWEge1xuICAgIG1heC1oZWlnaHQ6IDNlbTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmV1cmVrYSAuZXVyZWthX19wYXRoYmFyIHRleHRhcmVhIHtcbiAgcmVzaXplOiBub25lOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wX3Nob3ctYWR2LWNvbnRyb2xzXCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC43NWVtO1xuICByaWdodDogMWVtOyB9XG5cbi5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAuaWNvbi1iYXIge1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIGxhYmVsW2Zvcj1cImV1cmVrYV9fY3JvcC1kcmFnLW1vZGUtbW92ZVwiXSB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIGJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX19jcm9wLW1vZGFsIC5pY29uLWJhciAuYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jcm9wLW1vZGFsIC5pY29uLWJhciBidXR0b246Zmlyc3QtY2hpbGQsIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAuaWNvbi1iYXIgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIGJ1dHRvbjpsYXN0LWNoaWxkLCAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyLmZsZXgtYmFyID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAuaWNvbi1iYXIgYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuLmV1cmVrYSAuZXVyZWthX19jcm9wLW1vZGFsIC53cmFwcGFibGUuZmxleC1iYXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLndyYXBwYWJsZS5mbGV4LWJhciA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAud3JhcHBhYmxlLmZsZXgtYmFyIHN1bW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IC41cmVtOyB9XG5cbi5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3gge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3ggbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCBsYWJlbFtmb3I9XCJldXJla2FfX2Nyb3AtYXNwZWN0LXJhdGlvXCJdIHtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2Nyb3AtYm91bmRpbmctYm94IGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgIHdpZHRoOiA1ZW07IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCBpbnB1dFtpZCo9XCJldXJla2FfX2Nyb3Atc2NhbGVcIl0ge1xuICAgIHdpZHRoOiA0ZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2Nyb3AtYm91bmRpbmctYm94IHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRpdiwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRldGFpbHMgPiBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRpdiA+ICosIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3ggPiBkZXRhaWxzID4gZGl2ID4gKiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3ggPiBkaXY6bGFzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRldGFpbHMgPiBkaXY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5ldXJla2EgW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYSAuZXVyZWthX19jcm9wLXNhdmUtYXMtY2hlY2tib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uZXVyZWthIC5ldXJla2FfX2Nyb3AtYXMge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1hcyBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgZmxleC1ncm93OiAxOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wLXNhdmUtYXMtbmFtZVwiXSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wLWFzcGVjdC1yYXRpby1yZW1lbWJlclwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAyOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wLXJvdGF0ZVwiXSArIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIG1pbi13aWR0aDogMTRlbTsgfVxuXG4uZXVyZWthIC5ldXJla2FfX2Nob29zZS1tdWx0aWxlID4gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5kYW5nZXJvdXMge1xuICBjb2xvcjogdmFyKC0tZGFuZ2Vyb3VzLCByZWQpOyB9XG5cbmlucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSk6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTsgfVxuXG50clt0YWJpbmRleF06Zm9jdXMsIHRyLmV1cmVrYV9fY29udGV4dC1yb3c6Zm9jdXMsIFtyb2xlPVwibGlzdGJveFwiXTpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpOyB9XG5cbnN1bW1hcnk6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cblxuLmV1cmVrYSAuZXVyZWthX190cmVlLWJhciwgLmZsZXgtYmFyLCAuZXVyZWthIC5ldXJla2FfX2J1dHRvbi1iYXIge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5ldXJla2EgLndyYXBwYWJsZS5ldXJla2FfX3RyZWUtYmFyLCAud3JhcHBhYmxlLmZsZXgtYmFyLCAuZXVyZWthIC53cmFwcGFibGUuZXVyZWthX19idXR0b24tYmFyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZXVyZWthIC53cmFwcGFibGUuZXVyZWthX190cmVlLWJhciA+ICosIC53cmFwcGFibGUuZmxleC1iYXIgPiAqLCAuZXVyZWthIC53cmFwcGFibGUuZXVyZWthX19idXR0b24tYmFyID4gKiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5ldXJla2EgLmJhbGFuY2VkLmV1cmVrYV9fdHJlZS1iYXIsIC5iYWxhbmNlZC5mbGV4LWJhciwgLmV1cmVrYSAuYmFsYW5jZWQuZXVyZWthX19idXR0b24tYmFyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuZXVyZWthIC5ldXJla2FfX3RyZWUtYmFyID4gKiwgLmZsZXgtYmFyID4gKiwgLmV1cmVrYSAuZXVyZWthX19idXR0b24tYmFyID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqLmdyb3dhYmxlLCAuZmxleC1iYXIgPiAqLmdyb3dhYmxlLCAuZXVyZWthIC5ldXJla2FfX2J1dHRvbi1iYXIgPiAqLmdyb3dhYmxlIHtcbiAgICAgIGZsZXgtZ3JvdzogMTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqOmxhc3QtY2hpbGQsIC5mbGV4LWJhciA+ICo6bGFzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19idXR0b24tYmFyID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG5bcm9sZT1cImRpYWxvZ1wiXSAuZmxleC1iYXIge1xuICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuXG4uZXVyZWthIC5ldXJla2FfX2J1dHRvbi1iYXIsIC5ldXJla2EgLmV1cmVrYV9fbm90aWNlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbmFbcm9sZT1cInByZXNlbnRhdGlvblwiXSB7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3IgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cblxuQGtleWZyYW1lcyBzcGlubmVyIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4uaWNvbi1jaXJjbGUtby1ub3RjaCB7XG4gIGFuaW1hdGlvbjogc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7IH1cblxuLmV1cmVrYV9fdGFibGUgdHJbdGFiaW5kZXhdLmV1cmVrYV9fZm9jdXNlZC1tZWRpYS1pdGVtIC5ldXJla2FfX3RkLWZpbGVuYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmV1cmVrYV9fdGFibGUgdHJbdGFiaW5kZXhdOnRhcmdldCAuZXVyZWthX190ZC1tZWRpYSA+ICoge1xuICBvdXRsaW5lOiAzcHggc29saWQgIzMyQUI5QTsgfVxuXG4uZXVyZWthX190YWJsZSB0clt0YWJpbmRleF06dGFyZ2V0IC5ldXJla2FfX3RkLWZpbGVuYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogc3RhcnQgbGVhdmUgb3V0ICovXG4vKmJvZHkge1xuICBiYWNrZ3JvdW5kOiRncmF5O1xuICBmb250OiBub3JtYWwgLjgxMjVlbS8xLjM3NWVtIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAvL2ZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6JGNvbG9yO1xuICBtYXJnaW46MDtcbiAgcGFkZGluZzowLjVyZW07XG59Ki9cbi8qIGVuZCBsZWF2ZSBvdXQgKi9cbi5ldXJla2EgLmV1cmVrYV9fc3RhZ2UsIC5ldXJla2EgKltjbGFzc149XCJhbGVydFwiXSwgLmV1cmVrYSAuZXVyZWthX19wYXRoYnJvd3NlciwgLmV1cmVrYSAuZXVyZWthX19wYXRoYmFyLCAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqLCAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyB7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLCAxcHgpIHZhcigtLWJvcmRlci1zdHlsZSwgc29saWQpIHZhcigtLXBhbmVsLWJvcmRlci1jb2xvciwgI2RkZGRkZCk7IH1cblxuLmV1cmVrYSAuZXVyZWthX19zdGFnZSwgLmV1cmVrYSAqW2NsYXNzXj1cImFsZXJ0XCJdLCAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyLCAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwsIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciA+ICosIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdGQuY29tZm9ydGFibGUge1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYSAuZXVyZWthX19zdGFnZSwgLmV1cmVrYSAqW2NsYXNzXj1cImFsZXJ0XCJdLCAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyLCAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwsIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciA+ICosIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdGQuY29tZm9ydGFibGUge1xuICAgICAgcGFkZGluZzogLjVyZW07IH0gfVxuXG4uZXVyZWthIC5ldXJla2FfX3N0YWdlLCAuZXVyZWthICpbY2xhc3NePVwiYWxlcnRcIl0sIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJyb3dzZXIsIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJhciwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJnLCB3aGl0ZSk7IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3RpZmljYXRpb24tYmFja2dyb3VuZCwgI2Q5ZWRmNyk7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tY29sb3IsICMxRDZFOTUpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ub3RpZmljYXRpb24tYm9yZGVyLWNvbG9yLCB2YXIoLS1ub3RpZmljYXRpb24tY29sb3IsICMzMDlkZDQpKTsgfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGEge1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGJyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLjI1cmVtO1xuICAgIHJpZ2h0OiAuMjVyZW07XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAyNDBtcyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGJ1dHRvbjpmb2N1cywgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiBidXR0b246aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1mb2N1cy1jb2xvciwgIzI0N2ZhZCkgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciA+ICogYnV0dG9uOmZvY3VzIHN2ZywgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiBidXR0b246aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gLmV1cmVrYV9fZGFuZ2Vyb3VzIHtcbiAgICAtLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kOiAjZjdhMmEyO1xuICAgIC0tbm90aWZpY2F0aW9uLWNvbG9yOiAjOTExOTEyO1xuICAgIC0tbm90aWZpY2F0aW9uLWJvcmRlci1jb2xvcjogIzkxMTkxMjtcbiAgICAtLW5vdGlmaWNhdGlvbi1mb2N1cy1jb2xvcjogIzkxMTkxMjsgfVxuXG4uZXVyZWthIHtcbiAgLyogc3R5bGluZyBvZiBibGluay93ZWJraXQgbWFya2VyICovXG4gIC8qIHN0eWxpbmcgb2YgZmllcmZveCBtYXJrZXIgKi9cbiAgLyomLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSwgJi5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB7XG4gICAgLmV1cmVrYV9fcGF0aGJhciB7XG4gICAgICAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9Ki9cbiAgLyomLmV1cmVrYV9fdmlldy1tb2RlX190aHVtYiB7XG5cbiAgfVxuXG4gICYuZXVyZWthX192aWV3LW1vZGVfX2dyaWQge1xuXG4gIH1cblxuICAmLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHtcblxuICB9Ki9cbiAgLyouZXVyZWthX190cmVlLXRvZ2dsZSB7XG4gICAgLy9tYXJnaW4tYm90dG9tOjFyZW07XG4gICAgQGluY2x1ZGUgbWVkaWEoJGd0TW9iaWxlKSB7XG4gICAgICAvL21hcmdpbi1ib3R0b206MDtcbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIC8vQGluY2x1ZGUgYnV0dG9uLXJlc2V0O1xuICAgICAgfVxuICAgIH1cbiAgfSovXG4gIC8qI2V1cmVrYV9fdHJlZS10b2dnbGVfX2J1dHRvbiB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgc3ZnIHtcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgdG9wOjA7XG4gICAgICBib3R0b206MDtcbiAgICB9XG4gIH0qLyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIge1xuICAgIHRyYW5zaXRpb246IHRvcCAyNDBtcyBlYXNlIDkwbXMsIG9wYWNpdHkgMjQwbXMgZWFzZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRvcDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjQwbXMgZWFzZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7IH0gfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXJbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0b3A6IC01ZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzQwbXMgZWFzZS1vdXQgOTBtcywgdG9wIDQyMG1zIGVhc2Utb3V0OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IC4yNXJlbTsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciBwIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgLmljb24ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMTI1ZW0pOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fdXBsb2FkLWZvcm0gaW5wdXRbbmFtZSo9XCJ1cGxvYWRGaWxlc1wiXTpkaXNhYmxlZCArIGxhYmVsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W25hbWUqPVwidXBsb2FkRmlsZXNcIl06ZGlzYWJsZWQgKyBsYWJlbCAuc3Bpbm5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAuMjc1ZW07XG4gICAgICBib3R0b206IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBpbnB1dFtuYW1lKj1cInVwbG9hZEZpbGVzXCJdOmRpc2FibGVkICsgbGFiZWw6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWJnLCB3aGl0ZSk7XG4gICAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG9yLCAjNTU1NTU1KTsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBpbnB1dFtuYW1lKj1cInVwbG9hZEZpbGVzXCJdOmRpc2FibGVkICsgbGFiZWw6aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5ldXJla2EgYSB7XG4gICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IsICMzNjk3Y2QpOyB9XG4gIC5ldXJla2EgaDEsIC5ldXJla2EgaDIsIC5ldXJla2EgaDMsIC5ldXJla2EgaDQsIC5ldXJla2EgaDUsIC5ldXJla2EgaDYge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgLmV1cmVrYSBoMSwgLmV1cmVrYSBoMiwgLmV1cmVrYSBoMywgLmV1cmVrYSBoNCwgLmV1cmVrYSBoNSwgLmV1cmVrYSBoNiwgLmV1cmVrYSB0aGVhZCB7XG4gICAgY29sb3I6IHZhcigtLXN1YnRsZSwgIzU1NTU1NSk7IH1cbiAgLmV1cmVrYSBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iZywgd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpO1xuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3IsICM1NTU1NTUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgcGFkZGluZzogLjVlbSAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MSA3NC44OCc+PHJlY3QgeT0nMTkuODgnIHdpZHRoPSc1MScgaGVpZ2h0PSc1NScgZmlsbD0nbm9uZScvPjxwYXRoIGQ9J00zNywyOC44OEExLjU2LDEuNTYsMCwwLDEsMzYuNTIsMzBMMjUuMTQsNDEuMzlhMS41OSwxLjU5LDAsMCwxLTIuMjksMEwxMS40OCwzMGExLjYzLDEuNjMsMCwwLDEsMS4xNC0yLjc3SDM1LjM4QTEuNjUsMS42NSwwLDAsMSwzNywyOC44OFptMC05Ljc1YTEuNjUsMS42NSwwLDAsMS0xLjYyLDEuNjNIMTIuNjNBMS42MiwxLjYyLDAsMCwxLDExLjQ4LDE4TDIyLjg2LDYuNjFhMS41OSwxLjU5LDAsMCwxLDIuMjksMEwzNi41MiwxOEExLjU2LDEuNTYsMCwwLDEsMzcsMTkuMTNaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtMC41IC02LjEzKScgZmlsbD0nIzk3OTc5NycvPjwvc3ZnPlwiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNjYWxlOiA3MCUgNzAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC41ZW07XG4gICAgLyomOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zZWxlY3QtYXJyb3cuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zY2FsZTogNzAlIDcwJTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC41ZW07XG4gICAgICBjb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgLy8tLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLCAkYWN0aXZlKTtcbiAgICB9Ki8gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAuZXVyZWthIHNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAuNWVtOyB9IH1cbiAgICAuZXVyZWthIHNlbGVjdDpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgLS1ib3JkZXItY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cblxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgLmV1cmVrYSBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zZWxlY3QtYXJyb3cuc3ZnXCIpOyB9IH1cbiAgLmV1cmVrYSBidXR0b25baWRePVwiZXVyZWthX190cmVlLXRvZ2dsZV9fYnV0dG9uXCJdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpLCAwIDAuMjVlbSAwIHZhcigtLWJvcmRlci1jb2xvciwgI2M1YzVjNSk7XG4gICAgLyomW2FyaWEtcHJlc3NlZD1cInRydWVcIl0ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1zaGFkb3ctY29sb3IsICNFNEU0RTQpLCBpbnNldCAwIDAuMTc1ZW0gMCB2YXIoLS1ib3JkZXItc2hhZG93LWNvbG9yLCBkYXJrZW4oI0U0RTRFNCwgMTIlKSk7XG4gICAgfSovIH1cbiAgICAuZXVyZWthIGJ1dHRvbltpZF49XCJldXJla2FfX3RyZWUtdG9nZ2xlX19idXR0b25cIl06Zm9jdXMge1xuICAgICAgLS1idXR0b24tY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSBidXR0b25baWRePVwiZXVyZWthX190cmVlLXRvZ2dsZV9fYnV0dG9uXCJdIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIGJ1dHRvbltpZF49XCJldXJla2FfX3RyZWUtdG9nZ2xlX19idXR0b25cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgLmV1cmVrYSAqOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fYnV0dG9uLWJhcjpub3QoW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSkgPiAqOmxhc3QtY2hpbGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMkFCOUE7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMzMkFCOUEsICMwMDk0OEUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19idXR0b24tYmFyOm5vdChbYXJpYS1oaWRkZW49XCJ0cnVlXCJdKSA+IDpob3ZlcjpsYXN0LWNoaWxkLCAuZXVyZWthIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXI6bm90KFthcmlhLWhpZGRlbj1cInRydWVcIl0pID4gOmZvY3VzOmxhc3QtY2hpbGQge1xuICAgICAgLS1ib3JkZXItY29sb3I6ICMwMDc1NzE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI5Mzg1O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMyYjkzODUsICMwMDc1NzEpO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXI6bm90KFthcmlhLWhpZGRlbj1cInRydWVcIl0pID4gOmRpc2FibGVkOmxhc3QtY2hpbGQge1xuICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7IH1cbiAgLmV1cmVrYSBhLmJ1dHRvbiB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5ldXJla2EgYnV0dG9uLCAuZXVyZWthIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iZywgd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpO1xuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3IsICM1NTU1NTUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgcGFkZGluZzogLjVlbSAuNWVtOyB9XG4gICAgLmV1cmVrYSBidXR0b246Zm9jdXMsIC5ldXJla2EgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgLS1ib3JkZXItY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cbiAgICAuZXVyZWthIGJ1dHRvbjpob3ZlciwgLmV1cmVrYSAuYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzNjk3Y2Q7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAtLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLWRhcmtlciwgIzI5N2FhNyk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZS1kYXJrZXIsICMyOTdhYTcpOyB9XG4gICAgICAuZXVyZWthIGJ1dHRvbjpob3ZlciBzdmcsIC5ldXJla2EgLmJ1dHRvbjpob3ZlciBzdmcge1xuICAgICAgICBmaWxsOiB3aGl0ZTsgfVxuICAgIC5ldXJla2EgYnV0dG9uLmV1cmVrYV9fcHJpbWFyeSwgLmV1cmVrYSAuYnV0dG9uLmV1cmVrYV9fcHJpbWFyeSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzJBQjlBO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMzMkFCOUEsICMwMDk0OEUpO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLmV1cmVrYSBidXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyLCAuZXVyZWthIGJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6Zm9jdXMsIC5ldXJla2EgLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6aG92ZXIsIC5ldXJla2EgLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6Zm9jdXMge1xuICAgICAgICAtLWJvcmRlci1jb2xvcjogIzAwNzU3MTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJiOTM4NTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMyYjkzODUsICMwMDc1NzEpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpOyB9XG4gICAgICAuZXVyZWthIGJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6ZGlzYWJsZWQsIC5ldXJla2EgLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6ZGlzYWJsZWQge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTsgfVxuICAgIC5ldXJla2EgYnV0dG9uLmRhbmdlcm91czpob3ZlciwgLmV1cmVrYSBidXR0b24uZGFuZ2Vyb3VzOmFjdGl2ZSwgLmV1cmVrYSBidXR0b24uZGFuZ2Vyb3VzOmZvY3VzLCAuZXVyZWthIGJ1dHRvbi5kYW5nZXJvdXM6dGFyZ2V0LCAuZXVyZWthIC5idXR0b24uZGFuZ2Vyb3VzOmhvdmVyLCAuZXVyZWthIC5idXR0b24uZGFuZ2Vyb3VzOmFjdGl2ZSwgLmV1cmVrYSAuYnV0dG9uLmRhbmdlcm91czpmb2N1cywgLmV1cmVrYSAuYnV0dG9uLmRhbmdlcm91czp0YXJnZXQge1xuICAgICAgLS1ib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvci1kYW5nZXJvdXMsICNiODAwMDApO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJlZCwgI2NjMDAwMCk7IH1cbiAgLmV1cmVrYSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIGJ1dHRvbi5ldXJla2FfX3ByaW1hcnksIC5ldXJla2EgW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSAuYnV0dG9uLmV1cmVrYV9fcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWJnLCB3aGl0ZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7XG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvciwgIzU1NTU1NSk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBwYWRkaW5nOiAuNWVtIC41ZW07IH1cbiAgICAuZXVyZWthIFthcmlhLWhpZGRlbj1cInRydWVcIl0gYnV0dG9uLmV1cmVrYV9fcHJpbWFyeTpmb2N1cywgLmV1cmVrYSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIC5idXR0b24uZXVyZWthX19wcmltYXJ5OmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAtLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTtcbiAgICAgIC0tYm9yZGVyLXNoYWRvdy1jb2xvcjogdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTsgfVxuICAgIC5ldXJla2EgW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSBidXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyLCAuZXVyZWthIFthcmlhLWhpZGRlbj1cInRydWVcIl0gLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzM2OTdjZDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIC0tYm9yZGVyLWNvbG9yOiB2YXIoLS1hY3RpdmUtZGFya2VyLCAjMjk3YWE3KTtcbiAgICAgIC0tYm9yZGVyLXNoYWRvdy1jb2xvcjogdmFyKC0tYWN0aXZlLWRhcmtlciwgIzI5N2FhNyk7IH1cbiAgICAgIC5ldXJla2EgW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSBidXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyIHN2ZywgLmV1cmVrYSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIC5idXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyIHN2ZyB7XG4gICAgICAgIGZpbGw6IHdoaXRlOyB9XG4gIC5ldXJla2EgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsgfVxuICAuZXVyZWthIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aCwgMXB4KTtcbiAgICBib3JkZXItc3R5bGU6IHZhcigtLWJvcmRlci1zdHlsZSwgc29saWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yLCAjRTRFNEU0KTsgfVxuICAuZXVyZWthIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSBmaWVsZHNldCB7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLCAxcHgpO1xuICAgICAgICBib3JkZXItc3R5bGU6IHZhcigtLWJvcmRlci1zdHlsZSwgc29saWQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1jb2xvciwgMC4yNXJlbSk7IH0gfVxuICAuZXVyZWthIC5hY3RpdmUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5ldXJla2EgZGV0YWlscyBkZXRhaWxzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC41ZW07IH1cbiAgLmV1cmVrYSBtZW51IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5ldXJla2EgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmV1cmVrYSAuYWxlcnQtaW5mbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtYmcsICNkOWVkZjcpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yLCAjYmNlOGYxKTtcbiAgICBjb2xvcjogdmFyKC0tc3VidGxlLCAjMzE3MDhmKTsgfVxuICAuZXVyZWthIC5hbGVydC1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuICAgIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbiAgICBjb2xvcjogIzNjNzYzZDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2EgLmV1cmVrYV9fYnV0dG9uLWJhciA+ICoge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLmV1cmVrYSAuZXVyZWthX190cmVlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS10cmVlLWxpbmUtaGVpZ2h0LCAxLjYpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtOyB9IH1cbiAgICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX190cmVlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXRyZWUtY291cnNlLWxpbmUtaGVpZ2h0LCAxLjgpOyB9IH1cbiAgLmV1cmVrYSAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iZywgI2Y3ZjdmNyk7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IC41cmVtIDA7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyA+IGEuYnV0dG9uLCAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyBidXR0b24ge1xuICAgICAgZm9udC1zaXplOiAuNjg3NXJlbTsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyB7XG4gICAgcGFkZGluZy10b3A6IC4zNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjM1cmVtOyB9XG4gICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMgPiBhLmJ1dHRvbiwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMgYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogLjZyZW07IH1cbiAgLmV1cmVrYSAuZXVyZWthX190YWJsZSB7XG4gICAgbWluLXdpZHRoOiAxMDAlOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0ge1xuICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgICAgLyomOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgIH0qLyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgICAuZXVyZWthIC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IC41cmVtOyB9IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdLmV1cmVrYV9fZm9jdXNlZC1tZWRpYS1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdGQuY29tZm9ydGFibGUgcFtjbGFzc149XCJhbGVydFwiXSB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgLmV1cmVrYSAuZXVyZWthX190ZC1tZWRpYSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWVkaWEtY2VsbC1iYWNrZ3JvdW5kLCB0cmFuc3BhcmVudCk7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19zdGFnZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19zdGFnZSBoMTpmaXJzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19zdGFnZSBoMjpmaXJzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19zdGFnZSBoMzpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IHtcbiAgICBwYWRkaW5nOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyAuZXVyZWthX19zZWFyY2gtYmFyIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2EgLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IC5ldXJla2FfX3NlYXJjaC1iYXIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIG1heC13aWR0aDogMjJlbTsgfSB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyAuZXVyZWthX19zZWFyY2gtYmFyIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXN1YnRsZSwgIzU1NkM4OCk7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2EgLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IC5ldXJla2FfX3NlYXJjaC1iYXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19zdGFnZV9fZmlsdGVyLXZpZXcgLmV1cmVrYV9fc2VhcmNoLWJhciBpbnB1dCB7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3Ige1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3IgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21lZGlhLWRpcmVjdG9yeS1zZWxlY3RvciBmb3JtIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8qJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6MWVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDpyZWQ7XG4gICAgICAgIGNvbnRlbnQ6Jy4nO1xuICAgICAgfSovIH1cbiAgLmV1cmVrYSAuZXVyZWthX190cmVlLWJhciB7XG4gICAgbWFyZ2luOiAuNXJlbSAwIDAgMDsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqIHtcbiAgICAgIG1hcmdpbjogMCAuNXJlbSAwIDA7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX190cmVlLWJhciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07IH0gfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgYnV0dG9uLCAuZXVyZWthIC5ldXJla2FfX3RyZWUtYmFyIC5idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1zb3VyY2Utc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21lZGlhLXNvdXJjZS1zZWxlY3RvciBoMjpmaXJzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1zb3VyY2Utc2VsZWN0b3IgaDM6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2EgLmV1cmVrYV9fdXBsb2FkLWZvcm0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5ldXJla2E6bm90KC5ldXJla2FfX3NlcnZlci1zaWRlKSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWJnLCB3aGl0ZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7XG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvciwgIzU1NTU1NSk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBwYWRkaW5nOiAuNWVtIC41ZW07XG4gICAgZm9udC1zaXplOiAuNjg3NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZXVyZWthOm5vdCguZXVyZWthX19zZXJ2ZXItc2lkZSkgLmV1cmVrYV9fdXBsb2FkLWZvcm0gbGFiZWw6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIC0tYm9yZGVyLWNvbG9yOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpO1xuICAgICAgLS1ib3JkZXItc2hhZG93LWNvbG9yOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpOyB9XG4gICAgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGxhYmVsOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzNjk3Y2Q7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAtLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLWRhcmtlciwgIzI5N2FhNyk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZS1kYXJrZXIsICMyOTdhYTcpOyB9XG4gICAgICAuZXVyZWthOm5vdCguZXVyZWthX19zZXJ2ZXItc2lkZSkgLmV1cmVrYV9fdXBsb2FkLWZvcm0gbGFiZWw6aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogd2hpdGU7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtYmFyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIC8qQGluY2x1ZGUgbWVkaWEoJGd0TW9iaWxlKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7XG4gICAgfSovIH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2Nob29zZS1iYXJbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIHtcbiAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtYmFyIGJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDFyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2EgLmV1cmVrYV9fY2hvb3NlLWJhciBidXR0b24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogLjhyZW07IH0gfVxuICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19wYXRoYnJvd3NlciBuYXYge1xuICAgICAgY29sb3I6IHZhcigtLXN1YnRsZSwgIzU1NkM4OCk7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIGRldGFpbHMgPiBzdW1tYXJ5IHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMC4yZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIGRldGFpbHMgPiBzdW1tYXJ5ID4gLmljb24tZm9sZGVyLW9wZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJyb3dzZXIgZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgPiAuaWNvbi1mb2xkZXItb3BlbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIGRldGFpbHNbb3Blbl0gPiBzdW1tYXJ5ID4gLmljb24tZm9sZGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19wYXRoYmFyIHtcbiAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIgc3VtbWFyeSB7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIgZGV0YWlscyA+IGRpdiB7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJhciAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIHtcbiAgICBjb2xvcjogdmFyKC0tc3VidGxlLCAjNTU2Qzg4KTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgZmllbGRzZXQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogLjVlbSAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIGZpZWxkc2V0IHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJyYWRpb1wiXSwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgLyomOmZvY3VzIHtcbiAgICAgICAgICArIHtcbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWFjdGl2ZSwgJGFjdGl2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9Ki8gfVxuICAgICAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsIHN2Z1tjbGFzc149XCJpY29uXCJdLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsIHN2Z1tjbGFzc149XCJpY29uXCJdIHtcbiAgICAgICAgICBmaWxsOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpOyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBsYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuZXVyZWthIHN2Z1tjbGFzc149XCJpY29uXCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthIC5ldXJla2FfX2hpZGUtZm9yLW1vYmlsZS11cCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAuZXVyZWthIC5ldXJla2FfX3Nob3ctZm9yLW1vYmlsZS11cCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmV1cmVrYSAuZXVyZWthX19kcm9wLWFyZWEge1xuICAgIGZsZXg6IDIgOCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fZHJvcC1hcmVhLXpvbmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdmVyeS1zdWJ0bGUsICNkZGRkZGQpO1xuICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjQwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAzMjBtcyBlYXNlIDEyMG1zO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiAzNjBweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX19kcm9wLWFyZWEtem9uZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fZHJvcC1hcmVhLXpvbmUgc3ZnIHtcbiAgICAgIGZvbnQtc2l6ZTogNGVtO1xuICAgICAgZmlsbDogdmFyKC0tdmVyeS1zdWJ0bGUsICNkZGRkZGQpO1xuICAgICAgdHJhbnNpdGlvbjogZmlsbCAyNDBtcyBlYXNlIDE2MG1zLCBvcGFjaXR5IDI0MG1zIGVhc2U7XG4gICAgICBvcGFjaXR5OiB2YXIoLS12ZXJ5LXN1YnRsZS1pY29uLW9wYWNpdHksIDAuNDIpO1xuICAgICAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fZHJvcC1hcmVhLXpvbmUuZXVyZWthX19kcm9wLWFyZWEtem9uZS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWNmNjtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyNDBtcyBlYXNlIDEyMG1zLCBiYWNrZ3JvdW5kLWNvbG9yIDMyMG1zIGVhc2UgMDsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19kcm9wLWFyZWEtem9uZS5ldXJla2FfX2Ryb3AtYXJlYS16b25lLWFjdGl2ZSBzdmcge1xuICAgICAgICBmaWxsOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpO1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwge1xuICAgIHotaW5kZXg6IDEwMDAwOTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXNjcmltIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoOCwgOCwgOCwgMC4yNSk7XG4gICAgICB6LWluZGV4OiAwOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCB7XG4gICAgICBtaW4td2lkdGg6IDMwdnc7XG4gICAgICBtYXgtd2lkdGg6IDcwdnc7XG4gICAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk5OTk7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgaDE6Zmlyc3QtY2hpbGQsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgaDI6Zmlyc3QtY2hpbGQsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgaDM6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIHN1bW1hcnkgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cbiAgICAgICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCBzdW1tYXJ5IGxhYmVsW2Zvcj1cImV1cmVrYV9fY3JvcC11cGxvYWQtZmlsZVwiXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDEuNGVtOyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuICAgICAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXIgPiAqIHtcbiAgICAgICAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwuZXVyZWthX19ncmVlZHkgLmV1cmVrYV9fbW9kYWwtcGFuZWwge1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMnJlbSk7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMnJlbSk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX3N0aWNreS1iYXIge1xuICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgbGVmdDogMC41cmVtO1xuICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgdG9wOiAwOyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX3N0aWNreS1iYXIgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIge1xuICAgICAgLyp0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVlbSk7XG4gICAgICAgICZbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9Ki8gfSB9XG5cbi5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciB7XG4gIHotaW5kZXg6IDk5OTk5O1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyIGJ1dHRvbjpob3ZlciwgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyIGJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG4uZXVyZWthLXJvb3QgLmV1cmVrYV9fY2hvb3NlLXJhZGlvIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX19jaG9vc2UtcmFkaW8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjNlbSk7XG4gICAgICB6LWluZGV4OiAwOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX2Nob29zZS1yYWRpbyBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXdvSkluWmxjbk5wYjI0aU9pQXpMQW9KSW1acGJHVWlPaUFpY0hWaWJHbGpMMkZ6YzJWMGN5OWpjM012YldGcGJpNWpjM01pTEFvSkluTnZkWEpqWlhNaU9pQmJDZ2tKSW5OeVl5OXpZM056TDIxaGFXNHVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZYMkp2ZFhKaWIyNHVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZjMlYwZEdsdVozTXZYMlJsY0hKbFkyRjBhVzl1TFhkaGNtNXBibWR6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDNObGRIUnBibWR6TDE5d2NtVm1hWGhsY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5elpYUjBhVzVuY3k5ZmNIZ3RkRzh0WlcwdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmMyVjBkR2x1WjNNdlgyRnpjMlYwTFhCcGNHVnNhVzVsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDE5aWIzVnlZbTl1TFdSbGNISmxZMkYwWlM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5bWRXNWpkR2x2Ym5NdlgyRnpjMmxuYmkxcGJuQjFkSE11YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2Wm5WdVkzUnBiMjV6TDE5amIyNTBZV2x1Y3k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5bWRXNWpkR2x2Ym5NdlgyTnZiblJoYVc1ekxXWmhiSE41TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJaMWJtTjBhVzl1Y3k5ZmFYTXRiR1Z1WjNSb0xuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyWjFibU4wYVc5dWN5OWZhWE10YkdsbmFIUXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZablZ1WTNScGIyNXpMMTlwY3kxdWRXMWlaWEl1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2Wm5WdVkzUnBiMjV6TDE5cGN5MXphWHBsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJaMWJtTjBhVzl1Y3k5ZmNIZ3RkRzh0WlcwdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlpuVnVZM1JwYjI1ekwxOXdlQzEwYnkxeVpXMHVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZablZ1WTNScGIyNXpMMTl6YUdGa1pTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOW1kVzVqZEdsdmJuTXZYM04wY21sd0xYVnVhWFJ6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJaMWJtTjBhVzl1Y3k5ZmRHbHVkQzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTltZFc1amRHbHZibk12WDNSeVlXNXphWFJwYjI0dGNISnZjR1Z5ZEhrdGJtRnRaUzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTltZFc1amRHbHZibk12WDNWdWNHRmpheTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTltZFc1amRHbHZibk12WDIxdlpIVnNZWEl0YzJOaGJHVXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZhR1ZzY0dWeWN5OWZZMjl1ZG1WeWRDMTFibWwwY3k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5b1pXeHdaWEp6TDE5a2FYSmxZM1JwYjI1aGJDMTJZV3gxWlhNdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmFHVnNjR1Z5Y3k5ZlptOXVkQzF6YjNWeVkyVXRaR1ZqYkdGeVlYUnBiMjR1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2YUdWc2NHVnljeTlmWjNKaFpHbGxiblF0Y0c5emFYUnBiMjV6TFhCaGNuTmxjaTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlvWld4d1pYSnpMMTlzYVc1bFlYSXRZVzVuYkdVdGNHRnljMlZ5TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJobGJIQmxjbk12WDJ4cGJtVmhjaTFuY21Ga2FXVnVkQzF3WVhKelpYSXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZhR1ZzY0dWeWN5OWZiR2x1WldGeUxYQnZjMmwwYVc5dWN5MXdZWEp6WlhJdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmFHVnNjR1Z5Y3k5ZmJHbHVaV0Z5TFhOcFpHVXRZMjl5Ym1WeUxYQmhjbk5sY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5b1pXeHdaWEp6TDE5eVlXUnBZV3d0WVhKbkxYQmhjbk5sY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5b1pXeHdaWEp6TDE5eVlXUnBZV3d0Y0c5emFYUnBiMjV6TFhCaGNuTmxjaTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlvWld4d1pYSnpMMTl5WVdScFlXd3RaM0poWkdsbGJuUXRjR0Z5YzJWeUxuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyaGxiSEJsY25NdlgzSmxibVJsY2kxbmNtRmthV1Z1ZEhNdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmFHVnNjR1Z5Y3k5ZmMyaGhjR1V0YzJsNlpTMXpkSEpwY0hCbGNpNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOW9aV3h3WlhKekwxOXpkSEl0ZEc4dGJuVnRMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgyRnVhVzFoZEdsdmJpNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5aGNIQmxZWEpoYm1ObExuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyTnpjek12WDJKaFkydG1ZV05sTFhacGMybGlhV3hwZEhrdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlkzTnpNeTlmWW1GamEyZHliM1Z1WkM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5amMzTXpMMTlpWVdOclozSnZkVzVrTFdsdFlXZGxMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgySnZjbVJsY2kxcGJXRm5aUzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlqYzNNekwxOWpZV3hqTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJOemN6TXZYMk52YkhWdGJuTXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZM056TXk5ZlptbHNkR1Z5TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJOemN6TXZYMlpzWlhndFltOTRMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgyWnZiblF0Wm1GalpTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5bWIyNTBMV1psWVhSMWNtVXRjMlYwZEdsdVozTXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZM056TXk5ZmFHbGtjR2t0YldWa2FXRXRjWFZsY25rdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlkzTnpNeTlmYUhsd2FHVnVjeTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlqYzNNekwxOXBiV0ZuWlMxeVpXNWtaWEpwYm1jdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlkzTnpNeTlmYTJWNVpuSmhiV1Z6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJOemN6TXZYMnhwYm1WaGNpMW5jbUZrYVdWdWRDNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5d1pYSnpjR1ZqZEdsMlpTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5d2JHRmpaV2h2YkdSbGNpNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5eVlXUnBZV3d0WjNKaFpHbGxiblF1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WTNOek15OWZjMlZzWldOMGFXOXVMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgzUmxlSFF0WkdWamIzSmhkR2x2Ymk1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5amMzTXpMMTkwY21GdWMyWnZjbTB1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WTNOek15OWZkSEpoYm5OcGRHbHZiaTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlqYzNNekwxOTFjMlZ5TFhObGJHVmpkQzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTloWkdSdmJuTXZYMkp2Y21SbGNpMWpiMnh2Y2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5aFpHUnZibk12WDJKdmNtUmxjaTF5WVdScGRYTXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZV1JrYjI1ekwxOWliM0prWlhJdGMzUjViR1V1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WVdSa2IyNXpMMTlpYjNKa1pYSXRkMmxrZEdndWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dllXUmtiMjV6TDE5aWRYUjBiMjV6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmWTJ4bFlYSm1hWGd1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WVdSa2IyNXpMMTlsYkd4cGNITnBjeTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTloWkdSdmJuTXZYMlp2Ym5RdGMzUmhZMnR6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmYUdsa1pTMTBaWGgwTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmYldGeVoybHVMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMkZrWkc5dWN5OWZjR0ZrWkdsdVp5NXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWhaR1J2Ym5NdlgzQnZjMmwwYVc5dUxuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyRmtaRzl1Y3k5ZmNISmxabWw0WlhJdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dllXUmtiMjV6TDE5eVpYUnBibUV0YVcxaFoyVXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZV1JrYjI1ekwxOXphWHBsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmZEdWNGRDMXBibkIxZEhNdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dllXUmtiMjV6TDE5MGFXMXBibWN0Wm5WdVkzUnBiMjV6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmZEhKcFlXNW5iR1V1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WVdSa2IyNXpMMTkzYjNKa0xYZHlZWEF1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WDJKdmRYSmliMjR0WkdWd2NtVmpZWFJsWkMxMWNHTnZiV2x1Wnk1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzlmYm1WaGRDNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZibVZoZEM5ZmJtVmhkQzFvWld4d1pYSnpMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTl1WldGMEwyMXBlR2x1Y3k5ZlkyeGxZWEptYVhndWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwyNWxZWFF2Wm5WdVkzUnBiMjV6TDE5d2NtbDJZWFJsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5dVpXRjBMMloxYm1OMGFXOXVjeTlmYm1WM0xXSnlaV0ZyY0c5cGJuUXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdmMyVjBkR2x1WjNNdlgyZHlhV1F1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDI1bFlYUXZjMlYwZEdsdVozTXZYM1pwYzNWaGJDMW5jbWxrTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5dVpXRjBMM05sZEhScGJtZHpMMTlrYVhOaFlteGxMWGRoY201cGJtZHpMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTl1WldGMEwyZHlhV1F2WDNCeWFYWmhkR1V1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDI1bFlYUXZaM0pwWkM5ZlltOTRMWE5wZW1sdVp5NXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZibVZoZEM5bmNtbGtMMTl2YldWbllTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZibVZoZEM5bmNtbGtMMTl2ZFhSbGNpMWpiMjUwWVdsdVpYSXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdlozSnBaQzlmYzNCaGJpMWpiMngxYlc1ekxuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OXVaV0YwTDJkeWFXUXZYM0p2ZHk1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzluY21sa0wxOXphR2xtZEM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzluY21sa0wxOXdZV1F1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDI1bFlYUXZaM0pwWkM5ZlptbHNiQzF3WVhKbGJuUXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdlozSnBaQzlmYldWa2FXRXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdlozSnBaQzlmZEc4dFpHVndjbVZqWVhSbExuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OXVaV0YwTDJkeWFXUXZYM1pwYzNWaGJDMW5jbWxrTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5dVpXRjBMMmR5YVdRdlgyUnBjM0JzWVhrdFkyOXVkR1Y0ZEM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzluY21sa0wxOWthWEpsWTNScGIyNHRZMjl1ZEdWNGRDNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZjM0JsWXk5ZmRHRmpkV3hoY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJHRjViM1YwTDE5c1lYbHZkWFF1YzJOemN5SUtDVjBzQ2draWJtRnRaWE1pT2lCYlhTd0tDU0p0WVhCd2FXNW5jeUk2SUNKQlFVOUZMRUZCUVVFc1QwRkJUeXhEUVVGRE8wVkJRMDRzVlVGQlZTeEZRVUZGTEZWQlFWVXNSMEZEZGtJN08wRkJRMFFzUVVGQlVTeFBRVUZFTEVOQlFVTXNRMEZCUXl4RlFVRlVMRUZCUVZFc1QwRkJSQ3hEUVVGRExFTkJRVU1zUVVGRlVDeFBRVUZSTEVWQlJsWXNRVUZCVVN4UFFVRkVMRU5CUVVNc1EwRkJReXhCUVVkUUxGRkJRVk1zUTBGQlF6dEZRVU5TTEZWQlFWVXNSVUZCUlN4UFFVRlBMRWRCUTNCQ096dEJRWFZUVEN4QmRVZDRVVUVzVDNaSGQxRlBMRUZCT0ZCTUxIbENRVUV3UWl4RFFVTjRRaXhIUVVGSExFVkJMMUJRTEVGMVIzaFJRU3hQZGtkM1VVOHNRVUU0VUhWQ0xIZENRVUY1UWl4RFFVTnVSQ3hIUVVGSExFVkJMMUJRTEVGMVIzaFJRU3hQZGtkM1VVOHNRMEZ6WkV3c09FSkJRVGhDTEVOQlJUVkNMRTFCUVUwc1EzVkhhSFZDUnp0RlFVTlVMRXRCUVVzc1JVRkJReXhKUVVGSkxFZEJRMkk3TzBGMlIzTlJSQ3hCZFVjMVVFRXNUM1pITkZCUExFTkJLMFZNTEVWQlFVVXNRMEZCUVN4QlFVRkJMRk5CUVVNc1FVRkJRU3hIUVM5RlRDeEJkVWMxVUVFc1QzWkhORkJQTEVOQmJVWk1MRTFCUVUwc1JVRnVSbElzUVhWSE5WQkJMRTkyUnpSUVR5eERRWGRNVEN4TlFVRk5MRVZCZUV4U0xFRjFSelZRUVN4UGRrYzBVRThzUTBGM1RFY3NUMEZCVHl4RlFYaE1ha0lzUVhWSE5WQkJMRTkyUnpSUVR5eERRV3RsVEN4dlFrRkJiMElzUTBGSmJFSXNTMEZCU3l4RlFYUmxWQ3hCZFVjMVVFRXNUM1pITkZCUExFTkJlV3RDVEN4MVFrRkJkVUlzUTBGWmNrSXNkMEpCUVhkQ0xFTkJOa0owUWl4TFFVRkxMRU4xUnpreVFrRTdSVUZEVUN4TlFVRk5MRVZCUVVNc1QwRkJUeXhIUVVOcVFqczdRWFpITUZCRUxFRjFSM2hOUVN4UGRrZDNUVThzUTBGcGMwSk1MR05CUVdNc1JVRnFjMEpvUWl4QmRVZDRUVUVzVDNaSGQwMVBMRU5CYVhOQ1RDeGpRVUZqTEVOQlUxb3NiMEpCUVc5Q0xFTjFSMncxUWs0N1JVRlFaQ3hSUVVGUkxFVkJRVU1zVVVGQlVUdEZRVU5xUWl4SFFVRkhMRVZCUVVNc1EwRkJRenRGUVVOTUxFbEJRVWtzUlVGQlF5eERRVUZETzBWQlEwNHNTMEZCU3l4RlFVRkRMRU5CUVVNN1JVRkRVQ3hOUVVGTkxFVkJRVU1zUTBGQlF5eEhRVXRZT3p0QlFYTkNSRHM3UlVGRlJUdEJka2M0UzBZc1FVRTVVVUVzVDBFNFVVOHNRMEZyU0V3c1MwRkJTeXhEUVVGQkxFRkJRVUVzV1VGQlF5eERRVUZoTEUxQlFVMHNRVUZCYmtJc1NVRkRSaXhMUVVGTExFVkJia2hZTEVGQk9WRkJMRTlCT0ZGUExFTkJkMGhNTEcxQ1FVRnRRaXhEUVVOcVFpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFTkJRV0VzVVVGQlVTeEhRVU4yUWl4TFFVRkxMRVZCTVVoaUxFRkJPVkZCTEU5Qk9GRlBMRU5CWjBsTUxFMUJRVTBzUTBGRFNpeEJRVUZCTEZsQlFVVXNRMEZCWVN4TlFVRk5MRUZCUVc1Q0xFVkJMMWxITzBWQlExQXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4dFEwRkJiVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zYlVOQlFXZEVMRWRCUXpsSU96dEJkMGMwVGtRc1FYaEhNVTVCTEZsM1J6Qk9XU3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFUUkNSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVU5TTEVWQlFVVXNRVUZEU0N4WlFVRmxMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJia2MxUWl4QmVFY3hUa0VzV1hkSE1FNVpMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFUUkNSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVU5TTEVWQlFVVXNRVUZEU0N4WlFVRmxMRU5CUVVFc1FVRkJRU3hEUVVGRExFZDRSMnhKTlVJc1FVRXpURUVzWjBKQk1reG5RaXhGUVN0RmFFSXNRVUV4VVVFc1QwRXdVVThzUVVFNFpVd3NTVUZCVFN4RFFVRkJMRUZCUVVFc2IwSkJRVzlDTEVWQlEzaENMRzlDUVVGdlFpeERRVTFzUWl4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVFVGQlRTeEJRVUZZTEVkQmNtWmFMRUZCTVZGQkxFOUJNRkZQTEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZUY2tJc1RVRkJUU3hGUVd4c1FsWXNRVUV4VVVFc1QwRXdVVThzUTBGNWEwSk1MSFZDUVVGMVFpeERRVmx5UWl4M1FrRkJkMElzUTBGVmRFSXNTMEZCU3l4RFFVRkJMRUZCUVVFc1NVRkJReXhEUVVGTExFOUJRVThzUVVGQldpeEhRUzlzUWxvc1FVRXhVVUVzVDBFd1VVOHNRMEY1YTBKTUxIVkNRVUYxUWl4RFFWbHlRaXgzUWtGQmQwSXNRMEZWUkN4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVlVGQlZTeEJRVUZtTEVWQmVqSkNhRUk3UlVGQlJTdzJSa0ZCTmtZN1JVRnVRamxITEZGQlFWRXNSVUZCUlN4dFFrRkJiVUk3UlVGRE4wSXNTVUZCU1N4RlFVRkZMSEZDUVVGeFFqdEZRVUZGTEdOQlFXTTdSVUZETTBNc1NVRkJTU3hGUVVGRkxIZENRVUYzUWp0RlFVTTVRaXhQUVVGUExFVkJRVU1zV1VGQldUdEZRVU53UWl4TlFVRk5MRVZCUVVNc1dVRkJXVHRGUVVOdVFpeE5RVUZOTEVWQlFVVXNZMEZCWXp0RlFVTjBRaXhMUVVGTExFVkJRVVVzWTBGQll6dEZRVU55UWl4UlFVRlJMRVZCUVVVc1RVRkJUU3hIUVdOcVFqdEZRV0pETEVGQlEwVXNTVUZFUlN4QlFVRkJMRTFCUVUwc1EzZEhjVTlhTEZsQlFWa3NRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBFMFFrUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkRVaXhGUVVGRkxFRkJRMGdzV1VGQlpTeERRVUZCTEVGQlFVRXNRMEZCUXl4RmVFZDJWWGhDTEVOQlFVTXNSWGRIYjA5TUxFRjRSM0JQU1N4WmQwZHZUMUVzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVONFIzSlRlRUlzU1VGQlNTeEJRVUZCTEUxQlFVMHNRM2RITUZOTUxFdEJRVXNzUjBFMFFrUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkRVaXhGUVVGRkxFRkJRMGdzV1VGQlpTeERRVUZCTEVGQlFVRXNRMEZCUXl4RmVFZDJWWGhDTEVOQlFVTXNSVUZFU0N4QlFVTkZMRWxCUkVVc1FVRkJRU3hOUVVGTkxFTjNSM0ZQV2l4WlFVRlpMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFUUkNSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVU5TTEVWQlFVVXNRVUZEU0N4WlFVRmxMRU5CUVVFc1FVRkJRU3hEUVVGRExFVjRSM1pWZUVJc1EwRkJReXhGZDBkdlQwd3NRWGhIY0U5SkxGbDNSMjlQVVN4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTjRSM0pUZUVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTNkSE1GTk1MRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVlhoQ0xFTkJRVU1zUlVGRVNDeEJRVU5GTEVsQlJFVXNRVUZCUVN4TlFVRk5MRU5CYzAxYUxHZENRVUZuUWl4RFFYSk5XaXhEUVVGRExFVkJSRWdzUVVGRFJTeEpRVVJGTEVGQlFVRXNUVUZCVFN4RFFYRlNXaXhQUVVGUExFRkJPR1ZNTEVsQlFVMHNRMEZCUVN4QlFVRkJMRzlDUVVGdlFpeEZRVU40UWl4dlFrRkJiMElzUTBGTmJFSXNTMEZCU3l4RFFVRkJMRUZCUVVFc1NVRkJReXhEUVVGTExFMUJRVTBzUVVGQldDeEZRWHAzUWxJc1EwRkJReXhGUVc5U1RDeEJRWEJTU1N4UFFXOVNSeXhCUVRobFRDeEpRVUZOTEVOQlFVRXNRVUZCUVN4dlFrRkJiMElzUlVGRGVFSXNiMEpCUVc5Q0xFTkJjSGRDZEVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTBFd2QwSk9MRXRCUVVzc1EwRkJRU3hCUVVGQkxFbEJRVU1zUTBGQlN5eE5RVUZOTEVGQlFWZ3NSVUY2ZDBKU0xFTkJRVU1zUlVGRVNDeEJRVU5GTEVsQlJFVXNRVUZCUVN4TlFVRk5MRU5CY1ZKYUxFOUJRVThzUTBGNWEwSk1MSFZDUVVGMVFpeERRVk55UWl4TlFVRk5MRU5CZERKQ1RpeERRVUZETEVWQmIxSk1MRUZCY0ZKSkxFOUJiMUpITEVOQmVXdENUQ3gxUWtGQmRVSXNRMEU1TVVKMlFpeEpRVUZKTEVGQlFVRXNUVUZCVFN4RFFYVXlRbElzVFVGQlRTeERRWFF5UWs0c1EwRkJReXhGUVVSSUxFRkJRMFVzU1VGRVJTeEJRVUZCTEUxQlFVMHNRMEZ4VWxvc1QwRkJUeXhEUVhsclFrd3NkVUpCUVhWQ0xFTkJXWEpDTEhkQ1FVRjNRaXhEUVZWMFFpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFVkJiak5DVWl4RFFVRkRMRVZCYjFKTUxFRkJjRkpKTEU5QmIxSkhMRU5CZVd0Q1RDeDFRa0ZCZFVJc1EwRlpja0lzZDBKQlFYZENMRU5CTVRKQ01VSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EwRnZNMEpPTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWxCUVVNc1EwRkJTeXhQUVVGUExFRkJRVm9zUlVGdU0wSlNMRU5CUVVNc1JVRkVTQ3hCUVVORkxFbEJSRVVzUVVGQlFTeE5RVUZOTEVOQmNWSmFMRTlCUVU4c1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVZseVFpeDNRa0ZCZDBJc1EwRlZSQ3hMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NWVUZCVlN4QlFVRm1MRVZCYmpOQ04wSXNRMEZCUXl4RlFXOVNUQ3hCUVhCU1NTeFBRVzlTUnl4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFURXlRakZDTEVsQlFVa3NRVUZCUVN4TlFVRk5MRU5CYnpOQ1pTeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1ZVRkJWU3hCUVVGbUxFVkJiak5DTjBJc1EwRkJReXhGUVVSSUxFRkJRMGtzU1VGRVFTeEJRVUZCTEUxQlFVMHNRM2RIY1U5YUxGbEJRVmtzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVlhSQ0xFdEJRVXNzUlhkSGIwOVlMRUY0UjNCUFRTeFpkMGR2VDAwc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTjRSM0pUZUVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTNkSE1GTk1MRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVlhSQ0xFdEJRVXNzUlVGRVZDeEJRVU5KTEVsQlJFRXNRVUZCUVN4TlFVRk5MRU4zUjNGUFdpeFpRVUZaTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRUZCZVVKd1JDeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVFJDUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVOU0xFVkJRVVVzUVVGRFNDeFpRVUZsTEVOQlFVRXNRVUZCUVN4RFFVRkRMRVY0UjNaVmRFSXNTMEZCU3l4RmQwZHZUMWdzUVhoSGNFOU5MRmwzUjI5UFRTeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU40UjNKVGVFSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EzZEhNRk5NTEV0QlFVc3NSMEUwUWtRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGRFVpeEZRVUZGTEVGQlEwZ3NXVUZCWlN4RFFVRkJMRUZCUVVFc1EwRkJReXhGZUVkMlZYUkNMRXRCUVVzc1JVRkVWQ3hCUVVOSkxFbEJSRUVzUVVGQlFTeE5RVUZOTEVOQmMwMWFMR2RDUVVGblFpeERRWEpOVml4TFFVRkxMRVZCUkZRc1FVRkRTU3hKUVVSQkxFRkJRVUVzVFVGQlRTeERRWEZTV2l4UFFVRlBMRUZCT0dWTUxFbEJRVTBzUTBGQlFTeEJRVUZCTEc5Q1FVRnZRaXhGUVVONFFpeHZRa0ZCYjBJc1EwRk5iRUlzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RFFVRkxMRTFCUVUwc1FVRkJXQ3hGUVhwM1FrNHNTMEZCU3l4RlFXOVNXQ3hCUVhCU1RTeFBRVzlTUXl4QlFUaGxUQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeHZRa0ZCYjBJc1JVRkRlRUlzYjBKQlFXOUNMRU5CY0hkQ2RFSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EwRXdkMEpPTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWxCUVVNc1EwRkJTeXhOUVVGTkxFRkJRVmdzUlVGNmQwSk9MRXRCUVVzc1JVRkVWQ3hCUVVOSkxFbEJSRUVzUVVGQlFTeE5RVUZOTEVOQmNWSmFMRTlCUVU4c1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVZOeVFpeE5RVUZOTEVOQmRESkNTaXhMUVVGTExFVkJiMUpZTEVGQmNGSk5MRTlCYjFKRExFTkJlV3RDVEN4MVFrRkJkVUlzUTBFNU1VSjJRaXhKUVVGSkxFRkJRVUVzVFVGQlRTeERRWFV5UWxJc1RVRkJUU3hEUVhReVFrb3NTMEZCU3l4RlFVUlVMRUZCUTBrc1NVRkVRU3hCUVVGQkxFMUJRVTBzUTBGeFVsb3NUMEZCVHl4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFWVjBRaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUMEZCVHl4QlFVRmFMRVZCYmpOQ1RpeExRVUZMTEVWQmIxSllMRUZCY0ZKTkxFOUJiMUpETEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZaY2tJc2QwSkJRWGRDTEVOQk1USkNNVUlzU1VGQlNTeEJRVUZCTEUxQlFVMHNRMEZ2TTBKT0xFdEJRVXNzUTBGQlFTeEJRVUZCTEVsQlFVTXNRMEZCU3l4UFFVRlBMRUZCUVZvc1JVRnVNMEpPTEV0QlFVc3NSVUZFVkN4QlFVTkpMRWxCUkVFc1FVRkJRU3hOUVVGTkxFTkJjVkphTEU5QlFVOHNRMEY1YTBKTUxIVkNRVUYxUWl4RFFWbHlRaXgzUWtGQmQwSXNRMEZWUkN4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVlVGQlZTeEJRVUZtTEVWQmJqTkNNMElzUzBGQlN5eEZRVzlTV0N4QlFYQlNUU3hQUVc5U1F5eERRWGxyUWt3c2RVSkJRWFZDTEVOQldYSkNMSGRDUVVGM1FpeERRVEV5UWpGQ0xFbEJRVWtzUVVGQlFTeE5RVUZOTEVOQmJ6TkNaU3hMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NWVUZCVlN4QlFVRm1MRVZCYmpOQ00wSXNTMEZCU3l4RlFVUlVMRUZCUTFVc1NVRkVUaXhCUVVGQkxFMUJRVTBzUTNkSGNVOWFMRmxCUVZrc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEUwUWtRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGRFVpeEZRVUZGTEVGQlEwZ3NXVUZCWlN4RFFVRkJMRUZCUVVFc1EwRkJReXhGZUVkMlZXaENMRTFCUVUwc1JYZEhiMDlzUWl4QmVFZHdUMWtzV1hkSGIwOUJMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEZUVkeVUzaENMRWxCUVVrc1FVRkJRU3hOUVVGTkxFTjNSekJUVEN4TFFVRkxMRWRCTkVKRUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlExSXNSVUZCUlN4QlFVTklMRmxCUVdVc1EwRkJRU3hCUVVGQkxFTkJRVU1zUlhoSGRsVm9RaXhOUVVGTkxFVkJSR2hDTEVGQlExVXNTVUZFVGl4QlFVRkJMRTFCUVUwc1EzZEhjVTlhTEZsQlFWa3NRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1FVRjVRbkJFTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQk5FSkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJRMUlzUlVGQlJTeEJRVU5JTEZsQlFXVXNRMEZCUVN4QlFVRkJMRU5CUVVNc1JYaEhkbFZvUWl4TlFVRk5MRVYzUjI5UGJFSXNRWGhIY0U5WkxGbDNSMjlQUVN4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTjRSM0pUZUVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTNkSE1GTk1MRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVldoQ0xFMUJRVTBzUlVGRWFFSXNRVUZEVlN4SlFVUk9MRUZCUVVFc1RVRkJUU3hEUVhOTldpeG5Ra0ZCWjBJc1EwRnlUVW9zVFVGQlRTeEZRVVJvUWl4QlFVTlZMRWxCUkU0c1FVRkJRU3hOUVVGTkxFTkJjVkphTEU5QlFVOHNRVUU0WlV3c1NVRkJUU3hEUVVGQkxFRkJRVUVzYjBKQlFXOUNMRVZCUTNoQ0xHOUNRVUZ2UWl4RFFVMXNRaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUVUZCVFN4QlFVRllMRVZCZW5kQ1FTeE5RVUZOTEVWQmIxSnNRaXhCUVhCU1dTeFBRVzlTVEN4QlFUaGxUQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeHZRa0ZCYjBJc1JVRkRlRUlzYjBKQlFXOUNMRU5CY0hkQ2RFSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EwRXdkMEpPTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWxCUVVNc1EwRkJTeXhOUVVGTkxFRkJRVmdzUlVGNmQwSkJMRTFCUVUwc1JVRkVhRUlzUVVGRFZTeEpRVVJPTEVGQlFVRXNUVUZCVFN4RFFYRlNXaXhQUVVGUExFTkJlV3RDVEN4MVFrRkJkVUlzUTBGVGNrSXNUVUZCVFN4RFFYUXlRa1VzVFVGQlRTeEZRVzlTYkVJc1FVRndVbGtzVDBGdlVrd3NRMEY1YTBKTUxIVkNRVUYxUWl4RFFUa3hRblpDTEVsQlFVa3NRVUZCUVN4TlFVRk5MRU5CZFRKQ1VpeE5RVUZOTEVOQmRESkNSU3hOUVVGTkxFVkJSR2hDTEVGQlExVXNTVUZFVGl4QlFVRkJMRTFCUVUwc1EwRnhVbG9zVDBGQlR5eERRWGxyUWt3c2RVSkJRWFZDTEVOQldYSkNMSGRDUVVGM1FpeERRVlYwUWl4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVDBGQlR5eEJRVUZhTEVWQmJqTkNRU3hOUVVGTkxFVkJiMUpzUWl4QlFYQlNXU3hQUVc5U1RDeERRWGxyUWt3c2RVSkJRWFZDTEVOQldYSkNMSGRDUVVGM1FpeERRVEV5UWpGQ0xFbEJRVWtzUVVGQlFTeE5RVUZOTEVOQmJ6TkNUaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUMEZCVHl4QlFVRmFMRVZCYmpOQ1FTeE5RVUZOTEVWQlJHaENMRUZCUTFVc1NVRkVUaXhCUVVGQkxFMUJRVTBzUTBGeFVsb3NUMEZCVHl4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFWVkVMRXRCUVVzc1EwRkJRU3hCUVVGQkxFbEJRVU1zUTBGQlN5eFZRVUZWTEVGQlFXWXNSVUZ1TTBKeVFpeE5RVUZOTEVWQmIxSnNRaXhCUVhCU1dTeFBRVzlTVEN4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFURXlRakZDTEVsQlFVa3NRVUZCUVN4TlFVRk5MRU5CYnpOQ1pTeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1ZVRkJWU3hCUVVGbUxFVkJiak5DY2tJc1RVRkJUU3hEUVVGRE8wbEJRMklzVDBGQlR5eEZRVUZGTEdWQlFXVXNSMEZEZWtJN08wTjNSM0JEVEN4QlFVRkJMRUZCUVVFc1MwRkJReXhGUVVGUExHVkJRV1VzUVVGQmRFSXNTVUZCZVVJc1FVRkJRU3hCUVVGQkxFdEJRVU1zUlVGQlR5eG5Ra0ZCWjBJc1FVRkJka0lzUlVGQmVVSTdSVUZEYkVRc1QwRkJUeXhGUVVGRExFTkJRVU1zUjBGUFZqdEZUamhGUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzB0TmRFWjJReXhCUVVGQkxFRkJRVUVzUzBGQlF5eEZRVUZQTEdWQlFXVXNRVUZCZEVJc1NVRkJlVUlzUVVGQlFTeEJRVUZCTEV0QlFVTXNSVUZCVHl4blFrRkJaMElzUVVGQmRrSXNSVUZCZVVJN1RVRkhhRVFzVDBGQlR5eEZRVUZGTEVsQlFVazdUVUZEWWl4VlFVRlZMRVZCUVVNc1RVRkJUVHROUVVOcVFpeGpRVUZqTEVWQlFVVXNUVUZCVFN4SFFVZDZRanM3UVVGRlJDeEJRVUZCTEZsQlFWa3NRMEZCUXp0RlFYZEhXRHM3T3pzN096czdPenM3UzBGWFJ5eEZRWE5GU2p0RlFYcE1SQ3hCUVVWRkxGbEJSbFVzUVVGRlZpeHZRa0ZCY1VJc1EwRkJRenRKUVVOd1FpeExRVUZMTEVWQlFVVXNTMEZCU3p0SlFVTmFMRTFCUVUwc1JVRkJSU3hMUVVGTE8wbEJRMklzVlVGQlZTeEZRVUZGTEVsQlFVazdTVUZEYUVJc1ZVRkJWU3hGUVVGRkxIZENRVUYzUWl4SFFVTnlRenRGUVZCSUxFRkJVMFVzV1VGVVZTeERRVk5XTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1JVRkJTeXh0UWtGQmJVSXNRVUZCZUVJc1JVRkJNRUk3U1VGRE9VSXNWMEZCVnl4RlFVRkZMRXRCUVVzc1IwRkRia0k3UlVGWVNDeEJRV2xDV1N4WlFXcENRU3hEUVdGV0xIbENRVUY1UWl4RFFVTjJRaXhMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTmFMRVZCUVVVc1FVRkRTQ3d5UWtGQk5rSXNSMEZEZUVJc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RlFXcENiRU1zUVVGcFFsa3NXVUZxUWtFc1EwRmhWaXg1UWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRUZCUXpKQ0xFMUJRVkVzUjBGRGFrTXNSVUZCUlN4QlFVRkJMRzlDUVVGdlFpeEZRV3BDYkVNc1FVRnBRbGtzV1VGcVFrRXNRMEZoYVVJc2QwSkJRWGRDTEVOQlEycEVMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExb3NSVUZCUlN4QlFVTklMREpDUVVFMlFpeEhRVU40UWl4RlFVRkZMRUZCUVVFc2IwSkJRVzlDTEVWQmFrSnNReXhCUVdsQ1dTeFpRV3BDUVN4RFFXRnBRaXgzUWtGQmQwSXNRMEZEYWtRc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRUZCUXpKQ0xFMUJRVkVzUjBGRGFrTXNSVUZCUlN4QlFVRkJMRzlDUVVGdlFpeERRVUZETzBsQlEzWkNMRTlCUVU4c1JVRkJSU3huUWtGQlowSXNSMEZKTVVJN1NVRjBRbGdzUVVGcFFsa3NXVUZxUWtFc1EwRmhWaXg1UWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRUZCUTBnc01rSkJRVFpDTEVkQlEzaENMRVZCUVVVc1FVRkJRU3h2UWtGQmIwSXNRMEZGZWtJc1FVRkJRU3hOUVVGTExFRkJRVUVzUjBGdVFtUXNRVUZwUWxrc1dVRnFRa0VzUTBGaFZpeDVRa0ZCZVVJc1EwRkRka0lzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRXaXhGUVVGRkxFRkJRekpDTEUxQlFWRXNSMEZEYWtNc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RFFVVjZRaXhCUVVGQkxFMUJRVXNzUVVGQlFTeEhRVzVDWkN4QlFXbENXU3haUVdwQ1FTeERRV0ZwUWl4M1FrRkJkMElzUTBGRGFrUXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFdpeEZRVUZGTEVGQlEwZ3NNa0pCUVRaQ0xFZEJRM2hDTEVWQlFVVXNRVUZCUVN4dlFrRkJiMElzUTBGRmVrSXNRVUZCUVN4TlFVRkxMRUZCUVVFc1IwRnVRbVFzUVVGcFFsa3NXVUZxUWtFc1EwRmhhVUlzZDBKQlFYZENMRU5CUTJwRUxFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFvc1JVRkJSU3hCUVVNeVFpeE5RVUZSTEVkQlEycERMRVZCUVVVc1FVRkJRU3h2UWtGQmIwSXNRMEZGZWtJc1FVRkJRU3hOUVVGTExFRkJRVUVzUlVGQlVUdE5RVU5TTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUjBGRE1VSTdSVTUxUkZRc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0SlRUVkZka01zUVVGNVFsVXNXVUY2UWtVc1EwRmhWaXg1UWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRWRCVlVFc1JVRkJSU3hCUVVGQkxHbENRVUZwUWl4RlFYcENOMElzUVVGNVFsVXNXVUY2UWtVc1EwRmhhVUlzZDBKQlFYZENMRU5CUTJwRUxFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFvc1JVRkJSU3hIUVZWQkxFVkJRVVVzUVVGQlFTeHBRa0ZCYVVJc1EwRkJRenROUVVWc1FpeFZRVUZWTEVWQlFVVXNUVUZCVFN4SFFVVnlRanRGUVRkQ1ZDeEJRV2REV1N4WlFXaERRU3hEUVdGV0xIbENRVUY1UWl4RFFVTjJRaXhMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTmFMRVZCUVVVc1FVRm5Ra2dzVFVGQlVTeEhRVU5JTEVWQlFVVXNRVUZCUVN4dlFrRkJiMElzUlVGb1EyeERMRUZCWjBOWkxGbEJhRU5CTEVOQllXbENMSGRDUVVGM1FpeERRVU5xUkN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5hTEVWQlFVVXNRVUZuUWtnc1RVRkJVU3hIUVVOSUxFVkJRVVVzUVVGQlFTeHZRa0ZCYjBJc1EwRkJRenRKUVVOMlFpeFBRVUZQTEVWQlFVVXNaMEpCUVdkQ0xFZEJTVEZDTzBsQmNrTllMRUZCWjBOWkxGbEJhRU5CTEVOQllWWXNlVUpCUVhsQ0xFTkJRM1pDTEV0QlFVc3NRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMW9zUlVGQlJTeEJRV2RDU0N4TlFVRlJMRWRCUTBnc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RFFVVjJRaXhCUVVGQkxFMUJRVWNzUVVGQlFTeEhRV3hEWkN4QlFXZERXU3haUVdoRFFTeERRV0ZwUWl4M1FrRkJkMElzUTBGRGFrUXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFdpeEZRVUZGTEVGQlowSklMRTFCUVZFc1IwRkRTQ3hGUVVGRkxFRkJRVUVzYjBKQlFXOUNMRU5CUlhaQ0xFRkJRVUVzVFVGQlJ5eEJRVUZCTEVWQlFWRTdUVUZEVWl4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVkQlF6RkNPMFZCY0VOaUxFRkJlVU5aTEZsQmVrTkJMRU5CWVZZc2VVSkJRWGxDTEVOQlEzWkNMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExb3NSVUZCUlN4QlFYbENTQ3hoUVVGbExFZEJRMVlzUlVGQlJTeEJRVUZCTEc5Q1FVRnZRaXhGUVhwRGJFTXNRVUY1UTFrc1dVRjZRMEVzUTBGaGFVSXNkMEpCUVhkQ0xFTkJRMnBFTEV0QlFVc3NRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMW9zUlVGQlJTeEJRWGxDU0N4aFFVRmxMRWRCUTFZc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RFFVRkRPMGxCUTNaQ0xFOUJRVThzUlVGQlJTeG5Ra0ZCWjBJc1IwRkpNVUk3U1VFNVExZ3NRVUY1UTFrc1dVRjZRMEVzUTBGaFZpeDVRa0ZCZVVJc1EwRkRka0lzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRXaXhGUVVGRkxFRkJlVUpJTEdGQlFXVXNSMEZEVml4RlFVRkZMRUZCUVVFc2IwSkJRVzlDTEVOQlJYWkNMRUZCUVVFc1RVRkJSeXhCUVVGQkxFZEJNME5rTEVGQmVVTlpMRmxCZWtOQkxFTkJZV2xDTEhkQ1FVRjNRaXhEUVVOcVJDeExRVUZMTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVOYUxFVkJRVVVzUVVGNVFrZ3NZVUZCWlN4SFFVTldMRVZCUVVVc1FVRkJRU3h2UWtGQmIwSXNRMEZGZGtJc1FVRkJRU3hOUVVGSExFRkJRVUVzUlVGQlVUdE5RVU5TTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUjBGRE1VSTdSVUUzUTJJc1FVRjFSRThzV1VGMlJFc3NRMEZ4UkZnc1MwRkJTeXhCUVVOSUxFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEZRVUZGTzBsQlEyWXNUMEZCVHl4RlFVRkRMRWxCUVVrN1NVRkRXaXhUUVVGVExFVkJRVU1zU1VGQlNUdEpRVWxrTzFWQlEwY3NSVUZ6UTBvN1NVRndSMDRzUVVFd1JGTXNXVUV4UkVjc1EwRnhSRmdzUzBGQlN5eEJRVU5JTEVsQlFVMHNRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRVaXhGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVZFlMRU5CUVVNc1EwRkJRenROUVVOR0xFbEJRVWtzUlVGQlF5eFJRVUZSTEVkQlEyUTdTVUZKZFVJc1UwRkJReXhGUVVGa0xFOUJRVThzUlVGQlF5eEpRVUZKTzAxQmFFVTVRaXhCUVhWRVR5eFpRWFpFU3l4RFFYRkVXQ3hMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVWQlFVVTdVVUZWWWl4UFFVRlBMRVZCUVVNc1NVRkJTU3hIUVcxRFpqdFJRWEJIVGl4QlFYVkZWeXhaUVhaRlF5eERRWEZFV0N4TFFVRkxMRUZCUTBnc1NVRkJUU3hEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJaVlFzUlVGQlJTeERRVU5HTEdsQ1FVRnBRaXhEUVVGRE8xVkJRMmhDTEZOQlFWTXNSVUZCUXl4TFFVRkxMRWRCUTJoQ08xRkJla1ZhTEVGQk1FVlhMRmxCTVVWRExFTkJjVVJZTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRmxWQ3hGUVVGRkxFTkJTVVlzYjBKQlFXOUNMRU5CUVVNN1ZVRkRia0lzVTBGQlV5eEZRVUZETEVsQlFVa3NSMEZEWmp0UlFUVkZXaXhCUVhORlZ5eFpRWFJGUXl4RFFYRkVXQ3hMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlpWUXNSVUZCUlN4QlFVOUdMRzlDUVVGeFFpeERRVUZETzFWQlEzQkNMRk5CUVZNc1JVRkJReXhQUVVGUExFZEJRMnhDTzFGQkwwVmFMRUZCYzBWWExGbEJkRVZETEVOQmNVUllMRXRCUVVzc1FVRkRTQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGbFZDeEZRVUZGTEVGQlZVWXNiVUpCUVc5Q0xFTkJRVU03VlVGRGJrSXNVMEZCVXl4RlFVRkRMRlZCUVZVc1IwRkpja0k3VlU1VVVpeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8xbE5OVVYyUXl4QlFYTkZWeXhaUVhSRlF5eERRWEZFV0N4TFFVRkxMRUZCUTBnc1NVRkJUU3hEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJaVlFzUlVGQlJTeEJRVlZHTEcxQ1FVRnZRaXhEUVVGRE8yTkJSMnBDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUldoQ08xRkJja1phTEVGQmMwVlhMRmxCZEVWRExFTkJjVVJZTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRmxWQ3hGUVVGRkxFRkJaMEpHTEd0Q1FVRnRRaXhEUVVGRE8xVkJRMnhDTEZOQlFWTXNSVUZCUXl4VFFVRlRMRWRCU1hCQ08xVk9abElzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRaVFRWRmRrTXNRVUZ6UlZjc1dVRjBSVU1zUTBGeFJGZ3NTMEZCU3l4QlFVTklMRWxCUVUwc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFVpeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVdWVUxFVkJRVVVzUVVGblFrWXNhMEpCUVcxQ0xFTkJRVU03WTBGSGFFSXNUMEZCVHl4RlFVRkZMRWxCUVVrc1IwRkZhRUk3VVVFelJsb3NRVUZ6UlZjc1dVRjBSVU1zUTBGeFJGZ3NTMEZCU3l4QlFVTklMRWxCUVUwc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFVpeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVdWVUxFVkJRVVVzUVVGelFrWXNhMEpCUVcxQ0xFTkJRVU03VlVGRGJFSXNVMEZCVXl4RlFVRkRMRk5CUVZNc1IwRkpjRUk3VlU1eVFsSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dFpUVFZGZGtNc1FVRnpSVmNzV1VGMFJVTXNRMEZ4UkZnc1MwRkJTeXhCUVVOSUxFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRV1ZVTEVWQlFVVXNRVUZ6UWtZc2EwSkJRVzFDTEVOQlFVTTdZMEZIYUVJc1QwRkJUeXhGUVVGRkxFbEJRVWtzUjBGRmFFSTdSVUYzUW5GQ0xGTkJRVU1zUlVGQlpDeFBRVUZQTEVWQlFVTXNTVUZCU1R0SlFYcElhRU1zUVVGclNXRXNXVUZzU1VRc1EwRnhTRllzVDBGQlR5eERRVU5PTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRlZWQ3hGUVVGRkxFRkJRMFlzWlVGQlowSXNRMEZCUXp0TlFVTm1MRk5CUVZNc1JVRkJReXhOUVVGTkxFZEJRMnBDTzBsQmNrbGtMRUZCYTBsaExGbEJiRWxFTEVOQmNVaFdMRTlCUVU4c1EwRkRUaXhMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlZWUXNSVUZCUlN4QlFVbEdMR2xDUVVGclFpeERRVUZETzAxQlEycENMRk5CUVZNc1JVRkJReXhMUVVGTExFZEJRMmhDTzBsQmVFbGtMRUZCYTBsaExGbEJiRWxFTEVOQmNVaFdMRTlCUVU4c1EwRkRUaXhMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlZWUXNSVUZCUlN4QlFVOUdMRzlDUVVGeFFpeERRVUZETzAxQlEzQkNMRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJRMlk3U1VFelNXUXNRVUZyU1dFc1dVRnNTVVFzUTBGeFNGWXNUMEZCVHl4RFFVTk9MRXRCUVVzc1FVRkRTQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGVlZDeEZRVUZGTEVGQlZVWXNiMEpCUVhGQ0xFTkJRVU03VFVGRGNFSXNVMEZCVXl4RlFVRkRMRTlCUVU4c1IwRkRiRUk3U1VFNVNXUXNRVUZyU1dFc1dVRnNTVVFzUTBGeFNGWXNUMEZCVHl4RFFVTk9MRXRCUVVzc1FVRkRTQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGVlZDeEZRVUZGTEVGQllVWXNiVUpCUVc5Q0xFTkJRVU03VFVGRGJrSXNVMEZCVXl4RlFVRkRMRlZCUVZVc1IwRkpja0k3VFU1NFJWWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dFJUVFZGZGtNc1FVRnJTV0VzV1VGc1NVUXNRMEZ4U0ZZc1QwRkJUeXhEUVVOT0xFdEJRVXNzUVVGRFNDeEpRVUZOTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFJc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZWVkN4RlFVRkZMRUZCWVVZc2JVSkJRVzlDTEVOQlFVTTdWVUZIYWtJc1QwRkJUeXhGUVVGRkxFbEJRVWtzUjBGRmFFSTdTVUZ3U21Rc1FVRnJTV0VzV1VGc1NVUXNRMEZ4U0ZZc1QwRkJUeXhEUVVOT0xFdEJRVXNzUVVGRFNDeEpRVUZOTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFJc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZWVkN4RlFVRkZMRUZCYlVKR0xHdENRVUZ0UWl4RFFVRkRPMDFCUTJ4Q0xGTkJRVk1zUlVGQlF5eFRRVUZUTEVkQlNYQkNPMDFPT1VWV0xFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1VVMDFSWFpETEVGQmEwbGhMRmxCYkVsRUxFTkJjVWhXTEU5QlFVOHNRMEZEVGl4TFFVRkxMRUZCUTBnc1NVRkJUU3hEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJWVlFzUlVGQlJTeEJRVzFDUml4clFrRkJiVUlzUTBGQlF6dFZRVWRvUWl4UFFVRlBMRVZCUVVVc1NVRkJTU3hIUVVWb1FqdEpRVEZLWkN4QlFXdEpZU3haUVd4SlJDeERRWEZJVml4UFFVRlBMRU5CUTA0c1MwRkJTeXhCUVVOSUxFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVlZVTEVWQlFVVXNRVUY1UWtZc2EwSkJRVzFDTEVOQlFVTTdUVUZEYkVJc1UwRkJVeXhGUVVGRExGTkJRVk1zUjBGSmNFSTdUVTV3UmxZc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0UlRUVkZka01zUVVGclNXRXNXVUZzU1VRc1EwRnhTRllzVDBGQlR5eERRVU5PTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRlZWQ3hGUVVGRkxFRkJlVUpHTEd0Q1FVRnRRaXhEUVVGRE8xVkJSMmhDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUldoQ08wVkJXV3RDTEZOQlFVTXNSVUZCWkN4UFFVRlBMRVZCUVVNc1NVRkJTVHRKVG1oSE0wSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5UVFZGZGtNc1FVRXlTMUVzV1VFelMwa3NRMEYzUzFnc1QwRkJUeXhCUVVGQkxIZENRVUYzUWl4QlFVRkJMSGxDUVVGNVFpeERRVU4yUkN4TFFVRkxMRUZCUTBvc1NVRkJUeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFZEJNMHR5UWl4QlFUSkxVU3haUVROTFNTeERRWGRMSzBNc1QwRkJUeXhCUVVGQkxIZENRVUYzUWl4QlFVRkJMSGRDUVVGM1FpeERRVU5vU0N4TFFVRkxMRUZCUTBvc1NVRkJUeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFVkJRVVU3VVVGTldDeHRRa0ZCYlVJc1JVRkJReXh2UjBGQmIwYzdVVUZEZUVnc2NVSkJRWEZDTEVWQlFVVXNlVUpCUVhsQ0xFZEJSM0pFT3p0QlFVMVFMRUZCUTBVc1QwRkVTeXhEUVVOTUxIRkNRVUZ4UWl4RFFVRkRPMFZCUTNCQ0xFOUJRVThzUlVGQlJTeEpRVUZKTEVkQlYyUTdSVUZpU0N4QlFVZEpMRTlCU0Vjc1EwRkRUQ3h4UWtGQmNVSXNRMEZGYmtJc1VVRkJVU3hEUVVGRE8wbEJRMUFzVFVGQlRTeEZRVUZGTEVOQlFVTTdTVUZEVkN4UFFVRlBMRVZCUVVVc1EwRkJReXhIUVVOWU8wVkJUa3dzUVVGUFNTeFBRVkJITEVOQlEwd3NjVUpCUVhGQ0xFTkJUVzVDTEdsQ1FVRnBRaXhEUVVGRE8wbEJRMmhDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCU1dRN1NVRmFUQ3hCUVZOUkxFOUJWRVFzUTBGRFRDeHhRa0ZCY1VJc1EwRk5ia0lzYVVKQlFXbENMRWRCUldJc1EwRkJReXhEUVVGRE8wMUJRMFlzU1VGQlNTeEZRVUZGTEZGQlFWRXNSMEZEWmpzN1FVRkxVQ3hCUVVOblF5eFpRVVJ3UWl4RFFVRkRMRTlCUVU4c1FVRkJRU3g1UWtGQmVVSXNRVUZCUVN4dlFrRkJiMElzUTBGREwwUXNTMEZCU3l4QlFVRkJMR05CUVdNc1IwRkJSeXhMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzBWQlF5OUNMSEZDUVVGeFFpeEZRVUZGTEc5RFFVRnZRenRGUVVNelJDeHRRa0ZCYlVJc1JVRkJSU3cwUkVGQk5FUXNSMEZOYkVZN1JVRlVTQ3hCUVVsSkxGbEJTbEVzUTBGQlF5eFBRVUZQTEVGQlFVRXNlVUpCUVhsQ0xFRkJRVUVzYjBKQlFXOUNMRU5CUXk5RUxFdEJRVXNzUVVGQlFTeGpRVUZqTEVkQlFVY3NTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkhPVUlzUlVGQlJTeEJRVU5CTEZsQlFXTXNRMEZCUVN4QlFVRkJMRU5CUVVNc1JVRkJSVHRKUVVObUxGVkJRVlVzUlVGQlJTeGxRVUZsTEVkQlF6VkNPenRCUVZCUUxFRkJXVThzV1VGYVN5eERRVUZETEU5QlFVOHNRVUZCUVN4NVFrRkJlVUlzUVVGQlFTeHZRa0ZCYjBJc1EwRlZMMFFzUzBGQlN5eEJRVUZCTEdOQlFXTXNSMEZCUnl4TFFVRkxMRUZCUXpGQ0xFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEZRVUZGTzBWQlEyWXNjVUpCUVhGQ0xFVkJRVVVzYjBOQlFXOURPMFZCUXpORUxHMUNRVUZ0UWl4RlFVRkZMRFJFUVVFMFJDeEhRVEJDYkVZN1JVRjZRbmxDTEZOQlFVTXNSVUZCWkN4UFFVRlBMRVZCUVVNc1NVRkJTVHRKUVdZNVFpeEJRV2RDVnl4WlFXaENReXhEUVVGRExFOUJRVThzUVVGQlFTeDVRa0ZCZVVJc1FVRkJRU3h2UWtGQmIwSXNRMEZWTDBRc1MwRkJTeXhCUVVGQkxHTkJRV01zUjBGQlJ5eExRVUZMTEVGQlF6RkNMRWxCUVUwc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFVpeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVsVUxFVkJRVVVzUTBGQlF6dE5RVU5JT3pzN096czdPenRqUVZGSExFVkJZVW83VFVGMFExWXNRVUZuUWxjc1dVRm9Ra01zUTBGQlF5eFBRVUZQTEVGQlFVRXNlVUpCUVhsQ0xFRkJRVUVzYjBKQlFXOUNMRU5CVlM5RUxFdEJRVXNzUVVGQlFTeGpRVUZqTEVkQlFVY3NTMEZCU3l4QlFVTXhRaXhKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSlZDeEZRVUZGTEVGQlZVWXNiMEpCUVhGQ0xFTkJRVU03VVVGRGNFSXNWVUZCVlN4RlFVRkZMR1ZCUVdVc1IwRkROVUk3VFVFMVFsb3NRVUZuUWxjc1dVRm9Ra01zUTBGQlF5eFBRVUZQTEVGQlFVRXNlVUpCUVhsQ0xFRkJRVUVzYjBKQlFXOUNMRU5CVlM5RUxFdEJRVXNzUVVGQlFTeGpRVUZqTEVkQlFVY3NTMEZCU3l4QlFVTXhRaXhKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSlZDeEZRVUZGTEVGQllVWXNXVUZCWXl4RFFVRkJMRUZCUVVFc1EwRkJReXhGUVVGRk8xRkJRMllzVTBGQlV5eEZRVUZETEhGQ1FVRnhRaXhIUVVOb1F6dE5RUzlDV2l4QlFXZENWeXhaUVdoQ1F5eERRVUZETEU5QlFVOHNRVUZCUVN4NVFrRkJlVUlzUVVGQlFTeHZRa0ZCYjBJc1EwRlZMMFFzUzBGQlN5eEJRVUZCTEdOQlFXTXNSMEZCUnl4TFFVRkxMRUZCUXpGQ0xFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWxVTEVWQlFVVXNRVUZuUWtZc1dVRkJZeXhEUVVGQkxFRkJRVUVzUTBGQlF5eEZRVUZGTzFGQlEyWXNVMEZCVXl4RlFVRkRMRzlDUVVGdlFpeEhRVU12UWp0TlFXeERXaXhCUVdkQ1Z5eFpRV2hDUXl4RFFVRkRMRTlCUVU4c1FVRkJRU3g1UWtGQmVVSXNRVUZCUVN4dlFrRkJiMElzUTBGVkwwUXNTMEZCU3l4QlFVRkJMR05CUVdNc1IwRkJSeXhMUVVGTExFRkJRekZDTEVsQlFVMHNRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRVaXhGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVbFVMRVZCUVVVc1FVRnRRa1lzV1VGQll5eERRVUZCTEVGQlFVRXNRMEZCUXl4RlFVRkZPMUZCUTJZc1UwRkJVeXhGUVVGRExHOUNRVUZ2UWl4SFFVTXZRanM3UVVGWldpeEJRVUZCTEZsQlFWa3NRMEZCUXp0RlFVTmFMRTlCUVU4c1JVRkJReXhMUVVGTExFZEJkMGxpTzBWT2VsUkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdTVTFuVEhaRExFRkJSMWNzV1VGSVF5eERRVVZZTEU5QlFVOHNRMEZEVEN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8wMTRSMmhRWml4UlFVRlJMRVZCUVVVc2JVSkJRVzFDTzAxQlF6ZENMRWxCUVVrc1JVRkJSU3h4UWtGQmNVSTdUVUZCUlN4alFVRmpPMDFCUXpORExFbEJRVWtzUlVGQlJTeDNRa0ZCZDBJN1RVRkRPVUlzVDBGQlR5eEZRVUZETEZsQlFWazdUVUZEY0VJc1RVRkJUU3hGUVVGRExGbEJRVms3VFVGRGJrSXNUVUZCVFN4RlFVRkZMR05CUVdNN1RVRkRkRUlzUzBGQlN5eEZRVUZGTEdOQlFXTTdUVUZEY2tJc1VVRkJVU3hGUVVGRkxFMUJRVTBzUjNkSE5rOWtPMDE0UnpWUFJpeEJRVU5GTEVsQlJFVXNRVUZCUVN4TlFVRk5MRU4zUjNGUFdpeFpRVUZaTEVOQlJWZ3NUMEZCVHl4RFFVTk1MRXRCUVVzc1IwRkJSeXhMUVVGTExFTjRSM1pQV2l4RFFVRkRMRVZCUkVnc1FVRkRTU3hKUVVSQkxFRkJRVUVzVFVGQlRTeERkMGR4VDFvc1dVRkJXU3hEUVVWWUxFOUJRVThzUTBGRFRDeExRVUZMTEVkQlFVY3NTMEZCU3l4RGVFZDJUMVlzUzBGQlN5eEZRVVJVTEVGQlExVXNTVUZFVGl4QlFVRkJMRTFCUVUwc1EzZEhjVTlhTEZsQlFWa3NRMEZGV0N4UFFVRlBMRU5CUTB3c1MwRkJTeXhIUVVGSExFdEJRVXNzUTNoSGRrOUtMRTFCUVUwc1EwRkJRenRSUVVOaUxFOUJRVThzUlVGQlJTeGxRVUZsTEVkQlEzcENPMFZyUjJ0RVJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbE5aMHgyUXl4QlFWVlRMRmxCVmtjc1EwRkZXQ3hQUVVGUExFTkJUVXdzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZGU2l4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzYjBKQlFXOUNMRVZCUVVVN1RVRkROMElzWVVGQllTeEZRVUZGTEV0QlFVc3NSMEZEY2tJN1JVRmFVaXhCUVd0Q2EwSXNXVUZzUWs0c1EwRkZXQ3hQUVVGUExFRkJZVXdzZDBKQlFYbENMRUZCUTNaQ0xIbENRVUV3UWl4RFFVTjRRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZGTEVWQlFVVXNSVUZzUW5CQ0xFRkJhMEpuUXl4WlFXeENjRUlzUTBGRldDeFBRVUZQTEVGQllVd3NkMEpCUVhsQ0xFRkJRM1pDTEhsQ1FVRXdRaXhEUVVONFFpeExRVUZMTEVkQlExa3NTMEZCU3l4SFFVRkhMRVZCUVVVc1JVRnNRbXhETEVGQmEwSnJRaXhaUVd4Q1RpeERRVVZZTEU5QlFVOHNRVUZoVEN4M1FrRkJlVUlzUVVGRFN5eDNRa0ZCZVVJc1EwRkRia1FzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUlN4RlFVRkZMRVZCYkVKd1FpeEJRV3RDWjBNc1dVRnNRbkJDTEVOQlJWZ3NUMEZCVHl4QlFXRk1MSGRDUVVGNVFpeEJRVU5MTEhkQ1FVRjVRaXhEUVVOdVJDeExRVUZMTEVkQlExa3NTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVONFFpeHRRa0ZCYlVJc1JVRkJSU3h0UzBGQmJVc3NSMEZMZWt3N1NVNTRUVTRzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenROVFdkTWRrTXNRVUZyUW10Q0xGbEJiRUpPTEVOQlJWZ3NUMEZCVHl4QlFXRk1MSGRDUVVGNVFpeEJRVU4yUWl4NVFrRkJNRUlzUTBGRGVFSXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSU3hGUVVGRkxFVkJiRUp3UWl4QlFXdENaME1zV1VGc1FuQkNMRU5CUlZnc1QwRkJUeXhCUVdGTUxIZENRVUY1UWl4QlFVTjJRaXg1UWtGQk1FSXNRMEZEZUVJc1MwRkJTeXhIUVVOWkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVWQmJFSnNReXhCUVd0Q2EwSXNXVUZzUWs0c1EwRkZXQ3hQUVVGUExFRkJZVXdzZDBKQlFYbENMRUZCUTBzc2QwSkJRWGxDTEVOQlEyNUVMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVVVzUlVGQlJTeEZRV3hDY0VJc1FVRnJRbWRETEZsQmJFSndRaXhEUVVWWUxFOUJRVThzUVVGaFRDeDNRa0ZCZVVJc1FVRkRTeXgzUWtGQmVVSXNRMEZEYmtRc1MwRkJTeXhIUVVOWkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZIZEVJc2JVSkJRVzFDTEVWQlFVVXNhMFJCUVd0RU8xRkJRM1pGTEhGQ1FVRnhRaXhGUVVGRkxIbENRVUY1UWl4SFFVVnVSRHRGUVhoQ1ZpeEJRVFpDYTBJc1dVRTNRazRzUTBGRldDeFBRVUZQTEVGQllVd3NkMEpCUVhsQ0xFRkJXWFpDTEhsQ1FVRXdRaXhEUVVONFFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkZMRVZCUVVVc1JVRTNRbkJDTEVGQk5rSm5ReXhaUVRkQ2NFSXNRMEZGV0N4UFFVRlBMRUZCWVV3c2QwSkJRWGxDTEVGQldYWkNMSGxDUVVFd1FpeERRVU40UWl4TFFVRkxMRWRCUTFrc1MwRkJTeXhIUVVGSExFVkJRVVVzUlVFM1FteERMRUZCTmtKclFpeFpRVGRDVGl4RFFVVllMRTlCUVU4c1FVRmhUQ3gzUWtGQmVVSXNRVUZaU3l4M1FrRkJlVUlzUTBGRGJrUXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSU3hGUVVGRkxFVkJOMEp3UWl4QlFUWkNaME1zV1VFM1FuQkNMRU5CUlZnc1QwRkJUeXhCUVdGTUxIZENRVUY1UWl4QlFWbExMSGRDUVVGNVFpeERRVU51UkN4TFFVRkxMRWRCUTFrc1MwRkJTeXhIUVVGSExFVkJRVVVzUlVFM1FteERMRUZCTmtKclFpeFpRVGRDVGl4RFFVVllMRTlCUVU4c1FVRmhUQ3gzUWtGQmVVSXNRVUZaWjBNc01rSkJRVFJDTEVOQlEycEdMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVVVzUlVGQlJTeEZRVGRDY0VJc1FVRTJRbWRETEZsQk4wSndRaXhEUVVWWUxFOUJRVThzUVVGaFRDeDNRa0ZCZVVJc1FVRlpaME1zTWtKQlFUUkNMRU5CUTJwR0xFdEJRVXNzUjBGRFdTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTNoQ0xHMUNRVUZ0UWl4RlFVRkZMR2xHUVVGcFJpeEhRVXQyUnp0RlFXNURWaXhCUVhkRFN5eFpRWGhEVHl4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRU5CUTNoQ0xFdEJRVXNzUlVGNFExWXNRVUYzUTBzc1dVRjRRMDhzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRMEZEYmtRc1MwRkJTeXhEUVVGRE8wbEJWMG83TzFWQlJVY3NSVUZWU2p0SlFTOUVUaXhCUVhsRGFVSXNXVUY2UTB3c1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhEUVVONFFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1JVRjZRMjVDTEVGQmVVTXJRaXhaUVhwRGJrSXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4RFFVTjRRaXhMUVVGTExFZEJRMkVzUzBGQlN5eEhRVUZITEVWQlFVVXNSVUY2UTJwRExFRkJlVU5wUWl4WlFYcERUQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeERRVU51UkN4TFFVRkxMRWRCUTBRc1MwRkJTeXhIUVVGSExFVkJRVVVzUlVGNlEyNUNMRUZCZVVNclFpeFpRWHBEYmtJc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUTBGRGJrUXNTMEZCU3l4SFFVTmhMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03VFVGRGVrSXNUMEZCVHl4RlFVRkRMRWxCUVVrN1RVRkZXaXhSUVVGUkxFVkJRVU1zUTBGQlF5eEhRVTFZTzAxT2JFOUtMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdVVTFuVEhaRExFRkJlVU5wUWl4WlFYcERUQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFTkJRM2hDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hGUVhwRGJrSXNRVUY1UXl0Q0xGbEJla051UWl4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRU5CUTNoQ0xFdEJRVXNzUjBGRFlTeExRVUZMTEVkQlFVY3NSVUZCUlN4RlFYcERha01zUVVGNVEybENMRmxCZWtOTUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVOQlEyNUVMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEZRWHBEYmtJc1FVRjVReXRDTEZsQmVrTnVRaXhEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeERRVU51UkN4TFFVRkxMRWRCUTJFc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dFZRVXQyUWl4dFFrRkJiVUlzUlVGQlJTd3lRMEZCTWtNN1ZVRkRhRVVzY1VKQlFYRkNMRVZCUVVNc2JVSkJRVzFDTEVkQlJ6VkRPMGxCYkVSU0xFRkJjMFJwUWl4WlFYUkVUQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFTkJRM2hDTEV0QlFVc3NSMEZqUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hGUVhSRWJrSXNRVUZ6UkdsQ0xGbEJkRVJNTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRU5CUTI1RUxFdEJRVXNzUjBGalJDeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMDFCUTFnc2JVSkJRVzFDTEVWQlFVVXNiMGRCUVc5SExFZEJTVEZJTzAxT00wOUtMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdVVTFuVEhaRExFRkJjMFJwUWl4WlFYUkVUQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFTkJRM2hDTEV0QlFVc3NSMEZqUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hGUVhSRWJrSXNRVUZ6UkdsQ0xGbEJkRVJNTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRU5CUTI1RUxFdEJRVXNzUjBGalJDeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMVZCUjFRc2JVSkJRVzFDTEVWQlFVTXNjVVpCUVhGR0xFZEJSVFZITzBsQk0wUlNMRUZCTkVSMVFpeFpRVFZFV0N4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRU5CUTNoQ0xFdEJRVXNzUjBGdlFrUXNTMEZCU3l4QlFVRkJMRTFCUVUwc1IwRkJSeXhGUVVGRkxFVkJOVVI2UWl4QlFUUkVkVUlzV1VFMVJGZ3NRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1EwRkRia1FzUzBGQlN5eEhRVzlDUkN4TFFVRkxMRUZCUVVFc1RVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF6dE5RVU5xUWl4UFFVRlBMRVZCUVVVc1MwRkJTeXhIUVVObU8wVkJPVVJTTEVGQmFVVnBSQ3haUVdwRmNrTXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUTI1Q0xHOUNRVUZ2UWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1JVRkJTeXhoUVVGaExFRkJRV3hDTEVkQmFrVjJSQ3hCUVdsRmFVUXNXVUZxUlhKRExFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZEYmtJc2IwSkJRVzlDTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUzBGQlN5eERRVUZCTEVGQlFVRXNSMEZCUXl4RlFVRkxMR0ZCUVdFc1FVRkJiRUlzUlVGQmIwSTdTVUZEYkVVc1QwRkJUeXhGUVVGRkxFdEJRVXM3U1VGRFpDeFpRVUZaTEVWQlFVVXNTVUZCU1N4SFFVTnVRanRGVG5CUVNpeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbE5aMHgyUXl4QlFYTkZiVUlzV1VGMFJWQXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4RlFYUkZja0lzUVVGelJUWkRMRmxCZEVWcVF5eERRVVZZTEU5QlFVOHNRVUZ4UTB3c2VVSkJRVEJDTEVGQmVVSjZRaXh2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUVVrc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNSMEYwUlRGRUxFRkJjMFZ0UWl4WlFYUkZVQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEZRWFJGY2tJc1FVRnpSVFpETEZsQmRFVnFReXhEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVWQlFVVTdUVUZGTDBNc2JVSkJRVzFDTEVWQlFVTXNhVVJCUVdsRU8wMUJRM0pGTEhGQ1FVRnhRaXhGUVVGRExESkNRVUV5UWl4SFFYVkNjRVE3VFVGb1IxWXNRVUV3UldVc1dVRXhSVWdzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVWxPTEVWQlFVVXNRVUZEVkN4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRVE5GT1VJc1FVRXdSWEZDTEZsQk1VVlVMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkpRU3hGUVVGRkxFRkJRMllzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRXpSVGxDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEVEN4NVFrRkJNRUlzUVVGNVFucENMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCUTFRc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEV6UlRsQ0xFRkJNRVZ4UWl4WlFURkZWQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSmNrTXNSVUZCUlN4QlFVTm1MRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQk0wVTVRaXhCUVRCRlpTeFpRVEZGU0N4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVsT0xFVkJRVVVzUVVGRFZDeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhIUVRORk9VSXNRVUV3UlhGQ0xGbEJNVVZVTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRUZCZVVKd1JDeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUnl4RlFVRkZMRWRCU1VFc1JVRkJSU3hCUVVObUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCTTBVNVFpeEJRVEJGWlN4WlFURkZTQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNUTkRMRVZCUVVVc1FVRkRWQ3haUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUTkZPVUlzUVVFd1JYRkNMRmxCTVVWVUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUVVrc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZKY2tNc1JVRkJSU3hCUVVObUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRVZCUVVVN1VVRkRaaXhUUVVGVExFVkJRVU1zUzBGQlN5eEhRVU5vUWp0TlFUZEZhRUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVsT0xFVkJRVVVzUVVGSlZDeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhIUVRsRk9VSXNRVUV3UlhGQ0xGbEJNVVZVTEVOQlJWZ3NUMEZCVHl4QlFYRkRUQ3g1UWtGQk1FSXNRVUY1UW5wQ0xHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZKUVN4RlFVRkZMRUZCU1dZc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEU1UlRsQ0xFRkJNRVZsTEZsQk1VVklMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEyRXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGQlNTeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVrelF5eEZRVUZGTEVGQlNWUXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBFNVJUbENMRUZCTUVWeFFpeFpRVEZGVkN4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRUZCZVVKNlFpeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5oTEV0QlFVc3NRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRVWtzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkpja01zUlVGQlJTeEJRVWxtTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJPVVU1UWl4QlFUQkZaU3haUVRGRlNDeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbE9MRVZCUVVVc1FVRkpWQ3haUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUbEZPVUlzUVVFd1JYRkNMRmxCTVVWVUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlNVRXNSVUZCUlN4QlFVbG1MRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQk9VVTVRaXhCUVRCRlpTeFpRVEZGU0N4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEWVN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVUZKTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJTVE5ETEVWQlFVVXNRVUZKVkN4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRVGxGT1VJc1FVRXdSWEZDTEZsQk1VVlVMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSmNrTXNSVUZCUlN4QlFVbG1MRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVWQlFVVTdVVUZEWml4VFFVRlRMRVZCUVVNc1MwRkJTenRSUVVObUxGVkJRVlVzUlVGQlF5eEpRVUZKTEVkQlEyaENPMDFCYWtab1FpeEJRVEJGWlN4WlFURkZTQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJTVTRzUlVGQlJTeEJRVkZVTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJiRVk1UWl4QlFUQkZjVUlzV1VFeFJWUXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbEJMRVZCUVVVc1FVRlJaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFXeEdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEWVN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVUZKTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJTVE5ETEVWQlFVVXNRVUZSVkN4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRV3hHT1VJc1FVRXdSWEZDTEZsQk1VVlVMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEyRXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGQlNTeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVseVF5eEZRVUZGTEVGQlVXWXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBGc1JqbENMRUZCTUVWbExGbEJNVVZJTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRUZCZVVKd1JDeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUnl4RlFVRkZMRWRCU1U0c1JVRkJSU3hCUVZGVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCYkVZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRVUY1UW5CRUxHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZKUVN4RlFVRkZMRUZCVVdZc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEZzUmpsQ0xFRkJNRVZsTEZsQk1VVklMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSk0wTXNSVUZCUlN4QlFWRlVMRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQmJFWTVRaXhCUVRCRmNVSXNXVUV4UlZRc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWx5UXl4RlFVRkZMRUZCVVdZc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSVUZCUlR0UlFVTm1MRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJRMlk3VFVGd1JtaENMRUZCTUVWbExGbEJNVVZJTEVOQlJWZ3NUMEZCVHl4QlFYRkRUQ3g1UWtGQk1FSXNRVUY1UW5wQ0xHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZKVGl4RlFVRkZMRUZCVjFRc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEZ5UmpsQ0xFRkJNRVZ4UWl4WlFURkZWQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJTVUVzUlVGQlJTeEJRVmRtTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJja1k1UWl4QlFUQkZaU3haUVRGRlNDeERRVVZZTEU5QlFVOHNRVUZ4UTB3c2VVSkJRVEJDTEVGQmVVSjZRaXh2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUVVrc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZKTTBNc1JVRkJSU3hCUVZkVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCY2tZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNYSkRMRVZCUVVVc1FVRlhaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFYSkdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTBRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGSlRpeEZRVUZGTEVGQlYxUXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBGeVJqbENMRUZCTUVWeFFpeFpRVEZGVkN4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVsQkxFVkJRVVVzUVVGWFppeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhIUVhKR09VSXNRVUV3UldVc1dVRXhSVWdzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRVUY1UW5CRUxHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMkVzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkJTU3hGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVa3pReXhGUVVGRkxFRkJWMVFzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRnlSamxDTEVGQk1FVnhRaXhaUVRGRlZDeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFlTeExRVUZMTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVGSkxFVkJRVVVzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCU1hKRExFVkJRVVVzUVVGWFppeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhGUVVGRk8xRkJRMllzVTBGQlV5eEZRVUZETEZWQlFWVXNSMEZEY2tJN1RVRjJSbWhDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEVEN4NVFrRkJNRUlzUVVGNVFucENMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTBRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGSlRpeEZRVUZGTEVGQlkxUXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBGNFJqbENMRUZCTUVWeFFpeFpRVEZGVkN4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRUZCZVVKNlFpeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUnl4RlFVRkZMRWRCU1VFc1JVRkJSU3hCUVdObUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCZUVZNVFpeEJRVEJGWlN4WlFURkZTQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSk0wTXNSVUZCUlN4QlFXTlVMRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQmVFWTVRaXhCUVRCRmNVSXNXVUV4UlZRc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEWVN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVUZKTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJTWEpETEVWQlFVVXNRVUZqWml4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRWGhHT1VJc1FVRXdSV1VzV1VFeFJVZ3NRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1FVRjVRbkJFTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkpUaXhGUVVGRkxFRkJZMVFzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRjRSamxDTEVGQk1FVnhRaXhaUVRGRlZDeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbEJMRVZCUVVVc1FVRmpaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFYaEdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCWTFRc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEY0UmpsQ0xFRkJNRVZ4UWl4WlFURkZWQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNYSkRMRVZCUVVVc1FVRmpaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4RlFVRkZPMUZCUTJZc1UwRkJVeXhGUVVGRExGTkJRVk1zUjBGRGNFSTdUVUV4Um1oQ0xFRkJNRVZsTEZsQk1VVklMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkpUaXhGUVVGRkxFRkJhVUpVTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJNMFk1UWl4QlFUQkZjVUlzV1VFeFJWUXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbEJMRVZCUVVVc1FVRnBRbVlzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRXpSamxDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEVEN4NVFrRkJNRUlzUVVGNVFucENMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCYVVKVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCTTBZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNYSkRMRVZCUVVVc1FVRnBRbVlzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRXpSamxDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlNVNHNSVUZCUlN4QlFXbENWQ3haUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUTkdPVUlzUVVFd1JYRkNMRmxCTVVWVUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlNVRXNSVUZCUlN4QlFXbENaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUTkdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCYVVKVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCTTBZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRVUY1UW5CRUxHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMkVzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkJTU3hGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVbHlReXhGUVVGRkxFRkJhVUptTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFVkJRVVU3VVVGRFppeFRRVUZUTEVWQlFVTXNVMEZCVXl4SFFVTndRanRGUVRkR2FFSXNRVUZyUjJFc1dVRnNSMFFzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEhRVzVITlVJc1FVRnJSMkVzV1VGc1IwUXNRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1FVRjVRbkJFTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQk5FSkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJRMUlzUlVGQlJTeEJRVU5JTEZsQlFXVXNRMEZCUVN4QlFVRkJMRU5CUVVNc1JVRkJSVHRKUVVObUxGTkJRVk1zUlVGQlF5eEpRVUZKTEVkQlJXWTdSVUYwUjJRc1FVRnBTRk1zV1VGcVNFY3NRMEZGV0N4UFFVRlBMRUZCTkVkTUxIZENRVUY1UWl4RFFVTjJRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZEVml4RlFVRkZMRUZCUTBnc1dVRkJaMElzUlVGc1NIaENMRUZCYVVoaExGbEJha2hFTEVOQlJWZ3NUMEZCVHl4QlFUUkhUQ3gzUWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlEwNHNSVUZCUlN4QlFVTlFMRmxCUVdkQ0xFVkJiRWg0UWl4QlFXbElVeXhaUVdwSVJ5eERRVVZZTEU5QlFVOHNRVUUwUjB3c2QwSkJRWGxDTEVOQlEzWkNMRXRCUVVzc1IwRkRZU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVU40UWl4RlFVRkZMRUZCUTBnc1dVRkJaMElzUlVGc1NIaENMRUZCYVVoaExGbEJha2hFTEVOQlJWZ3NUMEZCVHl4QlFUUkhUQ3gzUWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlEzQkNMRVZCUVVVc1FVRkRVQ3haUVVGblFpeERRVUZETzBsQlExb3NXVUZCV1N4RlFVRkZMRXRCUVVzc1IwRkRjRUk3UlVGd1NGb3NRVUYxU0dsQ0xGbEJka2hNTEVOQlJWZ3NUMEZCVHl4QlFUUkhUQ3gzUWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhIUVZGRUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEV0N4dFFrRkJiVUlzUlVGQlJTeHZSVUZCYjBVN1NVRkRla1lzWVVGQllTeEZRVUZGTEV0QlFVc3NSMEZUY2tJN1NVRnNTVklzUVVFd1NGY3NXVUV4U0VNc1EwRkZXQ3hQUVVGUExFRkJORWRNTEhkQ1FVRjVRaXhEUVVOMlFpeExRVUZMTEVkQlVVUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkhVaXhGUVVGRkxFRkJRMFlzWlVGQlowSXNRMEZCUXp0TlFVTm1MRlZCUVZVc1JVRkJSU3hOUVVGTkxFZEJRMjVDTzBsT04xTlNMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdUVTFuVEhaRExFRkJkVWhwUWl4WlFYWklUQ3hEUVVWWUxFOUJRVThzUVVFMFIwd3NkMEpCUVhsQ0xFTkJRM1pDTEV0QlFVc3NSMEZSUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJVMVFzYlVKQlFXMUNMRVZCUVVVc2NVWkJRWEZHTEVkQlJUZEhPenRCUVZOU0xFRkJSMGtzV1VGSVVTeERRVVZXTEdOQlFXTXNRMEZEV2l4SFFVRkhMRVZCU0ZBc1FVRkhVeXhaUVVoSExFTkJSVllzWTBGQll5eERRVU5RTEV0QlFVc3NSVUZJWkN4QlFVZG5RaXhaUVVoS0xFTkJSVllzWTBGQll5eERRVU5CTEUxQlFVMHNSVUZJZEVJc1FVRkhkMElzV1VGSVdpeERRVVZXTEdOQlFXTXNRMEZEVVN4TFFVRkxMRU5CUVVVN1JVRkRla0lzVlVGQlZTeEZRVUZGTEU5QlFVOHNSMEZEY0VJN08wRk9hRlZFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3UlUweVZIWkRMRUZCUVVFc1dVRkJXU3hEUVVGRE8wbEJVMVE3T3pzMFJVRkhkMFU3U1VGRGVFVXNUMEZCVHl4RlFVRkRMRWxCUVVrN1NVRkRXaXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU5RTEdOQlFXTXNSVUZCUlN4TlFVRk5MRWRCY1VkNlFqdEpRWEJJUkN4QlFXZENTU3haUVdoQ1VTeERRV2RDVWl4UFFVRlBMRU5CUVVNN1RVRkRUaXhQUVVGUExFVkJRVU1zU1VGQlNUdE5RVU5hTEdOQlFXTXNSVUZCUlN4TlFVRk5PMDFCUTNSQ0xFbEJRVWtzUlVGQlJTeERRVUZETEVkQkswWlNPMDFCYkVoTUxFRkJiMEpSTEZsQmNFSkpMRU5CWjBKU0xFOUJRVThzUjBGSlNDeDFRa0ZCZFVJc1EwRkJRenRSUVVONFFpeFBRVUZQTEVWQlFVVXNTVUZCU1R0UlFVTmlMRWxCUVVrc1JVRkJSU3hSUVVGUkxFZEJSV1k3VFVGNFFsQXNRVUZuUWtrc1dVRm9RbEVzUTBGblFsSXNUMEZCVHl4QlFWTk1MSGxDUVVFd1FpeERRVUZETzFGQlEzcENPMWRCUTBjc1JVRkRTanROUVRWQ1VDeEJRVFpDVVN4WlFUZENTU3hEUVdkQ1VpeFBRVUZQTEVkQllVZ3NkVUpCUVhWQ0xFTkJRVU03VVVGRGVFSXNUMEZCVHl4RlFVRkRMRWxCUVVrN1VVRkRXaXhKUVVGSkxFVkJRVU1zVVVGQlVTeEhRVGhGWkR0UlFUZEhVQ3hCUVdsRFZTeFpRV3BEUlN4RFFXZENVaXhQUVVGUExFZEJZVWdzZFVKQlFYVkNMRWRCU1hKQ0xHOUNRVUZ2UWl4RFFVRkRPMVZCUTNKQ0xFbEJRVWtzUlVGQlF5eFRRVUZUTzFWQlEyUXNUMEZCVHl4RlFVRkRMRWxCUVVrN1ZVRkRXaXhqUVVGakxFVkJRVU1zVFVGQlRUdFZRVU55UWl4WFFVRlhMRVZCUVVNc1EwRkJRenRWUVVOaUxGTkJRVk1zUlVGQlF5eERRVUZETzFWQlExZ3NXVUZCV1N4RlFVRkRMRXRCUVVzc1IwRkpia0k3VlVFelExUXNRVUZwUTFVc1dVRnFRMFVzUTBGblFsSXNUMEZCVHl4SFFXRklMSFZDUVVGMVFpeEhRVWx5UWl4dlFrRkJiMElzUTBGUGNFSXNRVUZCUVN4TlFVRkZMRUZCUVVFc1IwRjRRMW9zUVVGcFExVXNXVUZxUTBVc1EwRm5RbElzVDBGQlR5eEhRV0ZJTEhWQ1FVRjFRaXhIUVVseVFpeHZRa0ZCYjBJc1EwRlBWQ3hCUVVGQkxGZEJRVVVzUTBGQldTeE5RVUZOTEVGQlFXeENMRVZCUVc5Q08xbEJReTlDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUTJRN1VVRXhRMWdzUVVFMFExVXNXVUUxUTBVc1EwRm5RbElzVDBGQlR5eEhRV0ZJTEhWQ1FVRjFRaXhIUVdWeVFpeGpRVUZqTEVOQlFVTTdWVUZGWml4SlFVRkpMRVZCUVVNc1VVRkJVVHRWUVVWaUxFOUJRVThzUlVGQlF5eEpRVUZKTzFWQlExb3NZMEZCWXl4RlFVRkRMRTFCUVUwc1IwRXlSSFJDTzFWQk5VZFVMRUZCYTBSWkxGbEJiRVJCTEVOQlowSlNMRTlCUVU4c1IwRmhTQ3gxUWtGQmRVSXNSMEZsY2tJc1kwRkJZeXhIUVUxYUxESkNRVUV5UWl4RFFVRkRPMWxCUXpWQ0xGVkJRVlVzUlVGQlF5eEpRVUZKTzFsQlEyWXNWMEZCVnl4RlFVRkRMRU5CUVVNN1dVRkRZaXhUUVVGVExFVkJRVU1zUTBGQlF6dFpRVU5ZTEdOQlFXTXNSVUZCUXl4SFFVRkhMRWRCWjBKdVFqdFpRWFJGV0N4QlFYVkVZeXhaUVhaRVJpeERRV2RDVWl4UFFVRlBMRWRCWVVnc2RVSkJRWFZDTEVkQlpYSkNMR05CUVdNc1IwRk5XaXd5UWtGQk1rSXNSMEZMZWtJc1RVRkJUU3hEUVVGRE8yTkJRMUFzWTBGQll5eEZRVUZGTEVkQlFVYzdZMEZEYmtJc1UwRkJVeXhGUVVGRExFTkJRVU03WTBGRFdDeFZRVUZWTEVWQlFVTXNRMEZCUXp0alFVTmFMRk5CUVZNc1JVRkJReXhOUVVGTk8yTkJRMmhDTEU5QlFVOHNSVUZCUXl4SlFVRkpPMk5CUTFvc1lVRkJZU3hGUVVGRExFdEJRVXNzUjBGUmNFSTdZMEZ5UldJc1FVRTRSR2RDTEZsQk9VUktMRU5CWjBKU0xFOUJRVThzUjBGaFNDeDFRa0ZCZFVJc1IwRmxja0lzWTBGQll5eEhRVTFhTERKQ1FVRXlRaXhIUVV0NlFpeE5RVUZOTEVkQlQwb3NSVUZCUlN4RFFVRkRPMmRDUVVOSUxHRkJRV0VzUlVGQlF5eERRVUZETzJkQ1FVTm1MRmxCUVZrc1JVRkJSU3hKUVVGSkxFZEJTVzVDTzJkQ1FYQkZaaXhCUVdsRlowSXNXVUZxUlVvc1EwRm5RbElzVDBGQlR5eEhRV0ZJTEhWQ1FVRjFRaXhIUVdWeVFpeGpRVUZqTEVkQlRWb3NNa0pCUVRKQ0xFZEJTM3BDTEUxQlFVMHNSMEZQU2l4RlFVRkZMRU5CUjBZc1NVRkJTU3hEUVVGRE8ydENRVU5JTEV0QlFVc3NSVUZCUXl4TFFVRkxMRWRCUTFvN1ZVRnVSV3BDTEVGQmRVVlpMRmxCZGtWQkxFTkJaMEpTTEU5QlFVOHNSMEZoU0N4MVFrRkJkVUlzUjBGbGNrSXNZMEZCWXl4SFFUSkNXaXh6UWtGQmMwSXNRMEZCUXp0WlFVTjJRaXhWUVVGVkxFVkJRVU1zUTBGQlF6dFpRVU5hTEZOQlFWTXNSVUZCUXl4RFFVRkRPMWxCUTFnc1RVRkJUU3hGUVVGRExFbEJRVWs3V1VGRFdDeFhRVUZYTEVWQlFVTXNRMEZCUXp0WlFVTmlMRTlCUVU4c1JVRkJReXhKUVVGSk8xbEJRMW9zVjBGQlZ5eEZRVUZETEU5QlFVODdXVUZEYmtJc1pVRkJaU3hGUVVGRExFMUJRVTA3V1VGRGRFSXNZMEZCWXl4RlFVRkRMRTFCUVUwN1dVRkRja0lzVDBGQlR5eEZRVUZETEdWQlFXVXNSMEV5UW5oQ08xbEJNMGRZTEVGQmFVWmpMRmxCYWtaR0xFTkJaMEpTTEU5QlFVOHNSMEZoU0N4MVFrRkJkVUlzUjBGbGNrSXNZMEZCWXl4SFFUSkNXaXh6UWtGQmMwSXNSMEZWY0VJc1IwRkJSeXhEUVVGRE8yTkJRMG9zVlVGQlZTeEZRVUZETEVOQlFVTTdZMEZEV2l4VFFVRlRMRVZCUVVNc1EwRkJRenRqUVVOWUxGVkJRVlVzUlVGQlF5eEpRVUZKTzJOQlJXWXNUVUZCVFN4RlFVRkRMRWxCUVVrN1kwRkRXQ3hYUVVGWExFVkJRVU1zVDBGQlR6dGpRVU51UWl4bFFVRmxMRVZCUVVNc1RVRkJUVHRqUVVOMFFpeGpRVUZqTEVWQlFVTXNUVUZCVFR0alFVTnlRaXhYUVVGWExFVkJRVU1zUTBGQlF6dGpRVU5pTEU5QlFVOHNSVUZCUXl4SlFVRkpPMk5CUTFvc1UwRkJVeXhGUVVGRExFbEJRVWtzUjBGalpqdGpRVEZIWWl4QlFUWkdaMElzV1VFM1Jrb3NRMEZuUWxJc1QwRkJUeXhIUVdGSUxIVkNRVUYxUWl4SFFXVnlRaXhqUVVGakxFZEJNa0phTEhOQ1FVRnpRaXhIUVZWd1FpeEhRVUZITEVkQldVUXNTMEZCU3l4RFFVRkRPMmRDUVVOT0xGVkJRVlVzUlVGQlF5eERRVUZETzJkQ1FVTmFMRk5CUVZNc1JVRkJReXhEUVVGRE8yZENRVU5ZTEZWQlFWVXNSVUZCUXl4SlFVRkpPMmRDUVVWbUxFMUJRVTBzUlVGQlF5eEpRVUZKTzJkQ1FVTllMRmRCUVZjc1JVRkJReXhQUVVGUE8yZENRVU51UWl4bFFVRmxMRVZCUVVNc1RVRkJUVHRuUWtGRGRFSXNZMEZCWXl4RlFVRkRMRTFCUVUwN1owSkJRM0pDTEZkQlFWY3NSVUZCUXl4RFFVRkRPMmRDUVVOaUxFOUJRVThzUlVGQlF5eEpRVUZKTzJkQ1FVTmFMRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJRMlk3VFVGNlIyWXNRVUU0UjFFc1dVRTVSMGtzUTBGblFsSXNUMEZCVHl4SFFUaEdTQ3h0UWtGQmJVSXNRMEZCUXp0UlFVTndRaXhKUVVGSkxFVkJRVU1zVVVGQlVUdFJRVU5pTEZWQlFWVXNSVUZCUlN4TFFVRkxMRWRCUTJ4Q096dEJRVXRRTEVGQlFUWkdMRmxCUVdwR0xFTkJRVU1zVDBGQlR5eEJRVUZCTERKQ1FVRXlRaXhIUVVGSExIVkNRVUYxUWl4SFFVRkhMR05CUVdNc1IwRkJSeXh6UWtGQmMwSXNRMEZCUXp0RlFVTnNTQ3haUVVGWkxFVkJRVVVzUzBGQlN5eEhRVWx3UWp0RlRuUmlSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMGxOYVdKMlF5eEJRVUUyUml4WlFVRnFSaXhEUVVGRExFOUJRVThzUVVGQlFTd3lRa0ZCTWtJc1IwRkJSeXgxUWtGQmRVSXNSMEZCUnl4alFVRmpMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTTdUVUZIYUVnc1lVRkJZU3hGUVVGRkxFdEJRVXNzUjBGRmRrSTdPMEZPZEdKSExFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1JVMTNZblpETEVGQlFUWkRMRmxCUVdwRExFTkJRVU1zVDBGQlR5eEhRVUZITEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVV6UXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhIUVV0MFFqdEpRVkJFTEVGQlFUWkRMRmxCUVdwRExFTkJRVU1zVDBGQlR5eEhRVUZITEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zUVVGSE1VTXNWMEZCV1N4RFFVRkRPMDFCUTFnc1dVRkJXU3hGUVVGRkxFTkJRVU1zUjBGRGFFSTdPMEZCU1V3c1FVRkRSU3haUVVSVkxFTkJRMVlzUzBGQlN5eERRVUZETzBWQlEwb3NWVUZCVlN4RlFVRkRMRWxCUVVrN1JVRkRaaXhQUVVGUExFVkJRVU1zUzBGQlN6dEZRVU5pTEdWQlFXVXNSVUZCUXl4UlFVRlJPMFZCUTNoQ0xGZEJRVmNzUlVGQlF5eERRVUZETzBWQlEySXNVMEZCVXl4RlFVRkRMRU5CUVVNc1IwRTJRMW83UlVGdVJFZ3NRVUZEUlN4WlFVUlZMRU5CUTFZc1MwRkJTeXhCUVUxSUxIZENRVUY1UWl4RFFVRkRPMGxCUTNoQ0xHRkJRV0VzUlVGQlF5eEpRVUZKTEVkQlEyNUNPMFZCVkV3c1FVRkRSU3haUVVSVkxFTkJRMVlzUzBGQlN5eERRVk5JTEVGQlFVRXNUVUZCUlN4QlFVRkJMRVZCUVZFN1NVRkRVaXhQUVVGUExFVkJRVU1zU1VGQlNTeEhRVU5pTzBWQldrd3NRVUZoVFN4WlFXSk5MRU5CUTFZc1MwRkJTeXhIUVZsRUxFVkJRVVVzUTBGQlF6dEpRVU5JTEU5QlFVOHNSVUZCUXl4TFFVRkxPMGxCUTJJc1MwRkJTeXhGUVVGRExFbEJRVWs3U1VGRlZpeFBRVUZQTEVWQlFVTXNTVUZCU1R0SlFVTmFMRk5CUVZNc1JVRkJReXhKUVVGSk8wbEJRMlE3VTBGRFJ5eEZRVGhDU2p0SlFXeEVUQ3hCUVhOQ1VTeFpRWFJDU1N4RFFVTldMRXRCUVVzc1IwRlpSQ3hGUVVGRkxFZEJVMEVzUlVGQlJTeERRVUZETzAxQlEwZ3NTVUZCU1N4RlFVRkRMRkZCUVZFc1IwRXdRbVE3VFVGcVJGQXNRVUZ6UWxFc1dVRjBRa2tzUTBGRFZpeExRVUZMTEVkQldVUXNSVUZCUlN4SFFWTkJMRVZCUVVVc1FVRk5SaXhsUVVGblFpeERRVUZETzFGQlEyWXNVMEZCVXl4RlFVRkRMRTFCUVUwc1IwRkRha0k3VFVFNVFsUXNRVUZ6UWxFc1dVRjBRa2tzUTBGRFZpeExRVUZMTEVkQldVUXNSVUZCUlN4SFFWTkJMRVZCUVVVc1FVRlRSaXhwUWtGQmEwSXNRMEZCUXp0UlFVTnFRaXhUUVVGVExFVkJRVU1zUzBGQlN5eEhRVU5vUWp0TlFXcERWQ3hCUVhOQ1VTeFpRWFJDU1N4RFFVTldMRXRCUVVzc1IwRlpSQ3hGUVVGRkxFZEJVMEVzUlVGQlJTeEJRVmxHTEc5Q1FVRnhRaXhEUVVGRE8xRkJRM0JDTEZOQlFWTXNSVUZCUXl4SlFVRkpMRWRCUTJZN1RVRndRMVFzUVVGelFsRXNXVUYwUWtrc1EwRkRWaXhMUVVGTExFZEJXVVFzUlVGQlJTeEhRVk5CTEVWQlFVVXNRVUZsUml4dFFrRkJiMElzUTBGQlF6dFJRVU51UWl4VFFVRlRMRVZCUVVNc1NVRkJTU3hIUVVObU8wMUJka05VTEVGQmMwSlJMRmxCZEVKSkxFTkJRMVlzUzBGQlN5eEhRVmxFTEVWQlFVVXNSMEZUUVN4RlFVRkZMRUZCYTBKR0xITkNRVUYxUWl4RFFVRkRPMUZCUTNSQ0xGTkJRVk1zUlVGQlF5eFZRVUZWTEVkQlEzSkNPMDFCTVVOVUxFRkJjMEpSTEZsQmRFSkpMRU5CUTFZc1MwRkJTeXhIUVZsRUxFVkJRVVVzUjBGVFFTeEZRVUZGTEVGQmNVSkdMSEZDUVVGelFpeERRVUZETzFGQlEzSkNMRk5CUVZNc1JVRkJReXhUUVVGVExFZEJRM0JDTzAxQk4wTlVMRUZCYzBKUkxGbEJkRUpKTEVOQlExWXNTMEZCU3l4SFFWbEVMRVZCUVVVc1IwRlRRU3hGUVVGRkxFRkJkMEpHTEhGQ1FVRnpRaXhEUVVGRE8xRkJRM0pDTEZOQlFWTXNSVUZCUXl4VFFVRlRMRWRCUTNCQ096dEJRV2hFVkN4QlFXOUVSU3haUVhCRVZTeERRVzlFVml4TFFVRkxMRUZCUTBnc1RVRkJUeXhEUVVGRE8wVkJRMDRzVDBGQlR5eEZRVUZGTEVsQlFVazdSVUZEWWl4bFFVRmxMRVZCUVVVc1RVRkJUVHRGUVVOMlFpeFhRVUZYTEVWQlFVVXNUVUZCVFN4SFFWTndRanRGUVdwRlRDeEJRWGxFVVN4WlFYcEVTU3hEUVc5RVZpeExRVUZMTEVGQlEwZ3NUVUZCVHl4SFFVbElMRVZCUVVVc1EwRkJRenRKUVVOSUxGVkJRVlVzUlVGQlF5eE5RVUZOTzBsQlEycENMRTlCUVU4c1JVRkJReXhMUVVGTExFZEJTMlE3U1VGb1JWQXNRVUUwUkZFc1dVRTFSRWtzUTBGdlJGWXNTMEZCU3l4QlFVTklMRTFCUVU4c1IwRkpTQ3hGUVVGRkxFTkJSMFlzUlVGQlJTeERRVUZETzAxQlEwUXNUVUZCVFN4RlFVRkRMRTFCUVUwN1RVRkRZaXhQUVVGUExFVkJRVU1zV1VGQldTeEhRVU55UWpzN1FVRXZSRlFzUVVGdFJVVXNXVUZ1UlZVc1EwRnRSVllzUzBGQlN5eERRVUZETzBWQlEwb3NWVUZCVlN4RlFVRkRMRU5CUVVNN1JVRkRXaXhWUVVGVkxFVkJRVU1zVFVGQlRUdEZRVU5xUWl4UFFVRlBMRVZCUVVNc1MwRkJTenRGUVVOaUxGTkJRVk1zUlVGQlF5eFBRVUZQTzBWQlEycENMRlZCUVZVc1JVRkJReXhKUVVGSk8wVkJRMllzVjBGQlZ5eEZRVUZETEU5QlFVODdSVUZEYmtJc1kwRkJZeXhGUVVGRExFZEJRVWM3UlVGRGJFSXNaVUZCWlN4RlFVRkRMRTFCUVUwN1JVRkRkRUlzVjBGQlZ5eEZRVUZETEVOQlFVTTdSVUZEWWl4VFFVRlRMRVZCUVVNc1EwRkJRenRGUVVOWUxGTkJRVk1zUlVGQlF5eEpRVUZKTzBWQlEyUXNNRUpCUVRCQ0xFVkJRVVVzUzBGQlN5eEhRVU5zUXpzN1FVRkhTQ3hCUVVORkxFOUJSRXNzUVVGQlFTeDNRa0ZCZDBJc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeDNRa0ZCZDBJc1JVRkRNVVFzYVVKQlFXbENMRVZCUkc1Q0xFRkJRM0ZDTEU5QlJHUXNRVUZCUVN4M1FrRkJkMElzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4M1FrRkJkMElzUlVGRGRrTXNhVUpCUVdsQ0xFTkJRVU03UlVGRGJrTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1IwRkRia0k3TzBGT2RtaENReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMFZOTUdoQ2RrTXNRVUZIU1N4cFEwRklOa0lzUTBGSE4wSXNTVUZCU1N4RFFVRkRPMGxCUTBnc1QwRkJUeXhGUVVGRExGbEJRVmtzUjBGRGNrSTdSVUZNVEN4QlFVMU5MR2xEUVU0eVFpeEhRVTB6UWl4SFFVRkhMRU5CUVVNN1NVRkRTaXhQUVVGUExFVkJRVU1zV1VGQldUdEpRVU53UWl4WFFVRlhMRVZCUVVNc1NVRkJTU3hIUVVOcVFqczdRVUZKVEN4QlFVTkZMRzlDUVVSclFpeERRVU5zUWl4TlFVRk5MRU5CUVVNN1JVRkRUQ3hoUVVGaExFVkJRVVVzU1VGQlNTeEhRVU53UWpzN1FVNHhhVUpETEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3UlUxMWFVSjJReXhCUVVGQkxHOUNRVUZ2UWl4RFFVRkRPMGxCUzJwQ0xGZEJRVmNzUlVGQlJTeEpRVUZKTzBsQlEycENMRmxCUVZrc1JVRkJSU3hKUVVGSkxFZEJWWEpDTzBsQmFFSkVMRUZCVDBrc2IwSkJVR2RDTEVOQlQyaENMRXRCUVVzc1EwRkJRenROUVVOS0xGbEJRVmtzUlVGQlJTeExRVUZMTEVkQlEzQkNPMGxCVkV3c1FVRlZTU3h2UWtGV1owSXNRMEZWYUVJc1RVRkJUU3hEUVVGRE8wMUJRMHdzV1VGQldTeEZRVUZGTEVsQlFVazdUVUZEYkVJc1lVRkJZU3hGUVVGRkxFTkJRVU1zUjBGRGFrSTdPMEZPY0dwQ1JDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wVk5lV3BDZGtNc1FVRkJRU3h2UWtGQmIwSXNRMEZCUXp0SlFVVnFRaXhQUVVGUExFVkJRVVVzU1VGQlNUdEpRVU5pTEdWQlFXVXNSVUZCUlN4UlFVRlJPMGxCUTNwQ0xGTkJRVk1zUlVGQlJTeEpRVUZKTzBsQlEyWXNZMEZCWXl4RlFVRkZMRXRCUVVzc1IwRXdRbmhDTzBsQkwwSkVMRUZCVFUwc2IwSkJUbU1zUjBGTlpDeERRVUZETEVGQlEwUXNXVUZCWVN4RFFVRkRPMDFCUTFvc1dVRkJXU3hGUVVGRExFbEJRVWtzUjBGRGJFSTdTVUZVVUN4QlFWZEpMRzlDUVZoblFpeERRVmRvUWl4dlFrRkJiMElzUTBGQlF6dE5RVU51UWl4WlFVRlpMRVZCUVVNc1NVRkJTU3hIUVdsQ2JFSTdTVTUwYkVKRUxFMUJRVTBzUTBGQlF5eE5RVUUyUWl4TlFVRnFRaXhUUVVGVExFVkJRVVVzUzBGQlN5eFBRVUZvUWl4VFFVRlRMRVZCUVVVc1MwRkJTenROVFhscVFuWkRMRUZCWlZFc2IwSkJabGtzUTBGWGFFSXNiMEpCUVc5Q0xFTkJTV2hDTEVsQlFVa3NRMEZCUXp0UlFVTklMRTlCUVU4c1JVRkJReXhKUVVGSkxFZEJRMkk3VFVGRFJDeEJRVU5GTEU5QlJFc3NRMEZzUW1Zc2IwSkJRVzlDTEVOQlYyaENMRzlDUVVGdlFpeERRVkZrTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1JVRkJTeXhoUVVGaExFRkJRV3hDTEVWQlFXOUNPMUZCUTNoQ0xGZEJRVmNzUlVGQlJTeERRVUZETzFGQlEyUXNZMEZCWXl4RlFVRkZMRU5CUVVNN1VVRkRha0lzVjBGQlZ5eEZRVUZGTEVkQlFVY3NSMEZEYWtJN08wRk9hR3hDVUN4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzAxTmJXeENha01zUVVGbVJpeHZRa0ZsYzBJc1EwRXhRakZDTEc5Q1FVRnZRaXhEUVZkb1FpeHZRa0ZCYjBJc1EwRmxTenRSUVVOeVFpeFpRVUZaTEVWQlFVTXNRMEZCUXl4SFFVTm1PenRCUVZkUUxFRkJRMFVzVDBGRVN5eEJRVU5NTEhsQ1FVRXdRaXhEUVVGRE8wVkJhVVI2UWp0UFFVTkhMRVZCWTBvN1JVNXFjVUpETEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3U1UxbmJVSjJReXhCUVVkTkxFOUJTRU1zUVVGRFRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRVU5hTEVkQlFVY3NRMEZCUXp0TlFVZEJMRlZCUVZVc1JVRkJReXhKUVVGSkxFZEJSV3hDTzBWQlVsQXNRVUZsVVN4UFFXWkVMRUZCUTB3c2VVSkJRVEJDTEVOQlEzaENMR05CUVdNc1EwRlpXaXhMUVVGTExFTkJRMGdzUlVGQlJTeEJRVU5CTEZsQlFXRXNRMEZCUXp0SlFVTmFMRmxCUVZrc1JVRkJReXhMUVVGTExFZEJRMjVDTzBWQmJFSllMRUZCWlZFc1QwRm1SQ3hCUVVOTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJXVm9zUzBGQlN5eERRVU5JTEVWQlFVVXNRVUZKUVN4WFFVRlpMRU5CUVVNN1NVRkRXQ3hoUVVGaExFVkJRVU1zUzBGQlN5eEhRVU53UWp0RlFYSkNXQ3hCUVhsQ1VTeFBRWHBDUkN4QlFVTk1MSGxDUVVFd1FpeERRVU40UWl4alFVRmpMRU5CYzBKYUxFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTkVMRVZCUVVVc1FVRkRRU3haUVVGaExFTkJRVU03U1VGRFdpeFpRVUZaTEVWQlFVTXNTMEZCU3l4SFFVTnVRanRGUVRWQ1dDeEJRWGxDVVN4UFFYcENSQ3hCUVVOTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJjMEphTEVWQlFVVXNRMEZCUVN4QlFVRkJMRmRCUVVNc1FVRkJRU3hGUVVORUxFVkJRVVVzUVVGSlFTeFhRVUZaTEVOQlFVTTdTVUZEV0N4aFFVRmhMRVZCUVVNc1MwRkJTeXhIUVVOd1FqdEZRUzlDV0N4QlFXMURVU3hQUVc1RFJDeEJRVU5NTEhsQ1FVRXdRaXhEUVVONFFpeGpRVUZqTEVOQlowTmFMRVZCUVVVc1EwRkRRU3hGUVVGRkxFVkJia05XTEVGQmJVTlhMRTlCYmtOS0xFRkJRMHdzZVVKQlFUQkNMRU5CUTNoQ0xHTkJRV01zUTBGblExb3NSVUZCUlN4RFFVTkhMRVZCUVVVc1EwRkJRenRKUVVOS0xGVkJRVlVzUlVGQlF5eE5RVUZOTEVkQlZXeENPMGxPT1c5Q1RDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wMU5aMjFDZGtNc1FVRnRRMUVzVDBGdVEwUXNRVUZEVEN4NVFrRkJNRUlzUTBGRGVFSXNZMEZCWXl4RFFXZERXaXhGUVVGRkxFTkJRMEVzUlVGQlJTeEZRVzVEVml4QlFXMURWeXhQUVc1RFNpeEJRVU5NTEhsQ1FVRXdRaXhEUVVONFFpeGpRVUZqTEVOQlowTmFMRVZCUVVVc1EwRkRSeXhGUVVGRkxFTkJRVU03VVVGSFJpeFZRVUZWTEVWQlFVTXNTMEZCU3l4SFFWRnVRanRSUVRsRFZDeEJRVzFEVVN4UFFXNURSQ3hCUVVOTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJaME5hTEVWQlFVVXNRMEZEUVN4RlFVRkZMRUZCU1VNc2FVSkJRVzFDTEVWQmRrTTVRaXhCUVcxRFZ5eFBRVzVEU2l4QlFVTk1MSGxDUVVFd1FpeERRVU40UWl4alFVRmpMRU5CWjBOYUxFVkJRVVVzUTBGRFJ5eEZRVUZGTEVGQlNVWXNhVUpCUVcxQ0xFTkJRVU03VlVGRGFrSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1IwRkRha0k3U1VGNlEySXNRVUZ0UTFFc1QwRnVRMFFzUVVGRFRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRV2REV2l4RlFVRkZMRU5CUTBFc1JVRkJSU3hCUVZGRUxHbENRVUZ0UWl4RlFUTkROVUlzUVVGdFExY3NUMEZ1UTBvc1FVRkRUQ3g1UWtGQk1FSXNRMEZEZUVJc1kwRkJZeXhEUVdkRFdpeEZRVUZGTEVOQlEwY3NSVUZCUlN4QlFWRktMR2xDUVVGdFFpeERRVUZETzAxQlEycENMRlZCUVZVc1JVRkJReXhKUVVGSkxFZEJRMmhDTzBWQk4wTllMRUZCZFVSUkxFOUJka1JFTEVGQlEwd3NlVUpCUVRCQ0xFRkJiMFI0UWl3MlFrRkJPRUlzUTBGRE5VSXNZMEZCWXl4RFFVTmFMRWRCUVVjc1EwRkJRenRKUVVOR0xGVkJRVlVzUlVGQlF5eEpRVUZKTEVkQlEyaENPMFZCZWtSVUxFRkJNa1JWTEU5Qk0wUklMRUZCUTB3c2VVSkJRVEJDTEVGQmIwUjRRaXcyUWtGQk9FSXNRMEZETlVJc1kwRkJZeXhEUVVsYUxFVkJRVVVzUVVGQlFTeE5RVUZOTEVOQlEwNHNSMEZCUnl4RFFVRkRPMGxCUTBZc1ZVRkJWU3hGUVVGRExFbEJRVWtzUjBGRGFFSTdPMEZCTjBSWUxFRkJjVVZOTEU5QmNrVkRMRUZCYlVWTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJRMW9zUzBGQlN5eEZRWEpGV0N4QlFYRkZUU3hQUVhKRlF5eEJRVzFGZFVJc2QwSkJRWGxDTEVOQlEyNUVMR05CUVdNc1EwRkRXaXhMUVVGTExFVkJja1ZZTEVGQmNVVk5MRTlCY2tWRExFRkJiVVZyUkN3eVFrRkJORUlzUTBGRGFrWXNZMEZCWXl4RFFVTmFMRXRCUVVzc1EwRkJRenRGUVVWS0xFOUJRVThzUlVGQlF5eGxRVUZsTEVkQlEzaENPenRCUVhoRlVDeEJRWGxGVFN4UFFYcEZReXhCUVcxRlRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRVXRhTEVWQlFVVXNRVUZEUml4SlFVRlJMRU5CUVVFc1FVRkJRU3hwUWtGQmFVSXNRMEZCUXl4SlFVRkxMRU5CUVVFc1FVRkJRU3hsUVVGbExFZEJNVVZ3UkN4QlFYbEZUU3hQUVhwRlF5eEJRVzFGZFVJc2QwSkJRWGxDTEVOQlEyNUVMR05CUVdNc1EwRkxXaXhGUVVGRkxFRkJRMFlzU1VGQlVTeERRVUZCTEVGQlFVRXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlN5eERRVUZCTEVGQlFVRXNaVUZCWlN4SFFURkZjRVFzUVVGNVJVMHNUMEY2UlVNc1FVRnRSV3RFTERKQ1FVRTBRaXhEUVVOcVJpeGpRVUZqTEVOQlMxb3NSVUZCUlN4QlFVTkdMRWxCUVZFc1EwRkJRU3hCUVVGQkxHbENRVUZwUWl4RFFVRkRMRWxCUVVzc1EwRkJRU3hCUVVGQkxHVkJRV1VzUlVGQlJUdEZRVVUxUXl4UFFVRlBMRVZCUVVNc1NVRkJTU3hIUVVOaU96dEJRVGRGVkN4QlFYbEZUU3hQUVhwRlF5eEJRVzFGVEN4NVFrRkJNRUlzUTBGRGVFSXNZMEZCWXl4RFFVdGFMRVZCUVVVc1EwRkxSaXhCUVVGQkxFOUJRVWtzUVVGQlFTeEhRVGxGVml4QlFYbEZUU3hQUVhwRlF5eEJRVzFGZFVJc2QwSkJRWGxDTEVOQlEyNUVMR05CUVdNc1EwRkxXaXhGUVVGRkxFTkJTMFlzUVVGQlFTeFBRVUZKTEVGQlFVRXNSMEU1UlZZc1FVRjVSVTBzVDBGNlJVTXNRVUZ0Uld0RUxESkNRVUUwUWl4RFFVTnFSaXhqUVVGakxFTkJTMW9zUlVGQlJTeERRVXRHTEVGQlFVRXNUMEZCU1N4QlFVRkJMRVZCUVZNN1JVRkRWQ3hQUVVGUExFVkJRVU1zUzBGQlN5eEhRVU5rT3p0QlFXaEdWQ3hCUVd0R1RTeFBRV3hHUXl4QlFXMUZUQ3g1UWtGQk1FSXNRMEZEZUVJc1kwRkJZeXhEUVdOYUxFdEJRVXNzUlVGc1JsZ3NRVUZyUmswc1QwRnNSa01zUVVGdFJYVkNMSGRDUVVGNVFpeERRVU51UkN4alFVRmpMRU5CWTFvc1MwRkJTeXhGUVd4R1dDeEJRV3RHVFN4UFFXeEdReXhCUVcxRmEwUXNNa0pCUVRSQ0xFTkJRMnBHTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CUVVNN1JVRkpTaXhUUVVGVExFVkJRVVVzU1VGQlNUdEZRVU5tTEdWQlFXVXNSVUZCUlN4TlFVRk5MRWRCYTBKNFFqdEZUbnB6UWtnc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0SlRXZHRRblpETEVGQmEwWk5MRTlCYkVaRExFRkJiVVZNTEhsQ1FVRXdRaXhEUVVONFFpeGpRVUZqTEVOQlkxb3NTMEZCU3l4RlFXeEdXQ3hCUVd0R1RTeFBRV3hHUXl4QlFXMUZkVUlzZDBKQlFYbENMRU5CUTI1RUxHTkJRV01zUTBGaldpeExRVUZMTEVWQmJFWllMRUZCYTBaTkxFOUJiRVpETEVGQmJVVnJSQ3d5UWtGQk5FSXNRMEZEYWtZc1kwRkJZeXhEUVdOYUxFdEJRVXNzUTBGQlF6dE5RVVZHTEU5QlFVOHNSVUZCUlN4bFFVRmxMRWRCY1VJelFqdEZRWHBIVUN4QlFYZEdVU3hQUVhoR1JDeEJRVzFGVEN4NVFrRkJNRUlzUTBGRGVFSXNZMEZCWXl4RFFXTmFMRXRCUVVzc1EwRk5TQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNSMEY0Umxnc1FVRjNSbEVzVDBGNFJrUXNRVUZ0UlhWQ0xIZENRVUY1UWl4RFFVTnVSQ3hqUVVGakxFTkJZMW9zUzBGQlN5eERRVTFJTEVWQlFVVXNRMEZCUVN4QlFVRkJMRkZCUVVNc1FVRkJRU3hIUVhoR1dDeEJRWGRHVVN4UFFYaEdSQ3hCUVcxRmEwUXNNa0pCUVRSQ0xFTkJRMnBHTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CVFVnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVWQlFWVTdTVUZQV0N4TlFVRk5MRVZCUVVNc1pVRkJaVHRKUVVOMFFpeFZRVUZWTEVWQlFVTXNTVUZCU1R0SlFVTm1MRXRCUVVzc1JVRkJReXhKUVVGSkxFZEJTVmc3U1U1eWMwSk1MRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdUVTFuYlVKMlF5eEJRWGRHVVN4UFFYaEdSQ3hCUVcxRlRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRV05hTEV0QlFVc3NRMEZOU0N4RlFVRkZMRU5CUVVFc1FVRkJRU3hSUVVGRExFRkJRVUVzUjBGNFJsZ3NRVUYzUmxFc1QwRjRSa1FzUVVGdFJYVkNMSGRDUVVGNVFpeERRVU51UkN4alFVRmpMRU5CWTFvc1MwRkJTeXhEUVUxSUxFVkJRVVVzUTBGQlFTeEJRVUZCTEZGQlFVTXNRVUZCUVN4SFFYaEdXQ3hCUVhkR1VTeFBRWGhHUkN4QlFXMUZhMFFzTWtKQlFUUkNMRU5CUTJwR0xHTkJRV01zUTBGaldpeExRVUZMTEVOQlRVZ3NSVUZCUlN4RFFVRkJMRUZCUVVFc1VVRkJReXhCUVVGQkxFVkJRVlU3VVVGRlZDeFBRVUZQTEVWQlFVTXNXVUZCV1N4SFFWZDJRanRKUVhKSFZDeEJRVFJHVlN4UFFUVkdTQ3hCUVcxRlRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRV05hTEV0QlFVc3NRMEZOU0N4RlFVRkZMRU5CUVVFc1FVRkJRU3hSUVVGRExFRkJRVUVzUlVGSlJDeEZRVUZGTEVWQk5VWmFMRUZCTkVaVkxFOUJOVVpJTEVGQmJVVjFRaXgzUWtGQmVVSXNRMEZEYmtRc1kwRkJZeXhEUVdOYUxFdEJRVXNzUTBGTlNDeEZRVUZGTEVOQlFVRXNRVUZCUVN4UlFVRkRMRUZCUVVFc1JVRkpSQ3hGUVVGRkxFVkJOVVphTEVGQk5FWlZMRTlCTlVaSUxFRkJiVVZyUkN3eVFrRkJORUlzUTBGRGFrWXNZMEZCWXl4RFFXTmFMRXRCUVVzc1EwRk5TQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNSVUZKUkN4RlFVRkZMRU5CUVVNN1RVRkRSQ3hQUVVGUExFVkJRVVVzUzBGQlN5eEhRVU5tTzBsT09YSkNVQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFOWjIxQ2RrTXNRVUYzUmxFc1QwRjRSa1FzUVVGdFJVd3NlVUpCUVRCQ0xFTkJRM2hDTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CVFVnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVkQmVFWllMRUZCZDBaUkxFOUJlRVpFTEVGQmJVVjFRaXgzUWtGQmVVSXNRMEZEYmtRc1kwRkJZeXhEUVdOYUxFdEJRVXNzUTBGTlNDeEZRVUZGTEVOQlFVRXNRVUZCUVN4UlFVRkRMRUZCUVVFc1IwRjRSbGdzUVVGM1JsRXNUMEY0UmtRc1FVRnRSV3RFTERKQ1FVRTBRaXhEUVVOcVJpeGpRVUZqTEVOQlkxb3NTMEZCU3l4RFFVMUlMRVZCUVVVc1EwRkJRU3hCUVVGQkxGRkJRVU1zUVVGQlFTeEZRVUZWTzFGQlYxUXNWVUZCVlN4RlFVRkRMRWxCUVVrc1IwRkZiRUk3UlVGeVIxUXNRVUZ6UjFFc1QwRjBSMFFzUVVGdFJVd3NlVUpCUVRCQ0xFTkJRM2hDTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CYjBKSUxHOUNRVUZ2UWl4RlFYUkhOVUlzUVVGelIxRXNUMEYwUjBRc1FVRnRSWFZDTEhkQ1FVRjVRaXhEUVVOdVJDeGpRVUZqTEVOQlkxb3NTMEZCU3l4RFFXOUNTQ3h2UWtGQmIwSXNSVUYwUnpWQ0xFRkJjMGRSTEU5QmRFZEVMRUZCYlVWclJDd3lRa0ZCTkVJc1EwRkRha1lzWTBGQll5eERRV05hTEV0QlFVc3NRMEZ2UWtnc2IwSkJRVzlDTEVOQlFVTTdTVUZEYmtJc1QwRkJUeXhGUVVGRExFbEJRVWtzUjBGRFlqczdRVTU0YzBKTUxFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1JVMW5iVUoyUXl4QlFUaEhiVUlzVDBFNVIxb3NRVUUyUjB3c2VVSkJRVEJDTEVOQlEzaENMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRmFrSXNUMEZCVHl4RlFVRkZMRWxCUVVrc1IwRkZhRUk3TzBGT2JIUkNSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMFZOWjIxQ2RrTXNRVUYzU0ZFc1QwRjRTRVFzUVVGeFNFd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEZEV2l4TFFVRkxMRU5CUTBnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVkQmVFaFlMRUZCZDBoUkxFOUJlRWhFTEVGQmNVaHpRaXd5UWtGQk5FSXNRMEZEY2tRc1kwRkJZeXhEUVVOYUxFdEJRVXNzUTBGRFNDeEZRVUZGTEVOQlFVRXNRVUZCUVN4UlFVRkRMRUZCUVVFc1JVRkJWVHRKUVVkVUxHRkJRV0VzUlVGQlJTeERRVUZETEVkQlZXNUNPenRCVG5KMVFrd3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJkMGhSTEU5QmVFaEVMRUZCY1VoTUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJRMW9zUzBGQlN5eERRVU5JTEVWQlFVVXNRMEZCUVN4QlFVRkJMRkZCUVVNc1FVRkJRU3hIUVhoSVdDeEJRWGRJVVN4UFFYaElSQ3hCUVhGSWMwSXNNa0pCUVRSQ0xFTkJRM0pFTEdOQlFXTXNRMEZEV2l4TFFVRkxMRU5CUTBnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVWQlFWVTdTVUZOVkN4VlFVRlZMRVZCUVVNc1NVRkJTU3hIUVU5c1FqczdRVTV5ZFVKTUxFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1JVMW5iVUoyUXl4QlFXZEpXU3hQUVdoSlRDeEJRWEZJVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFVTmFMRXRCUVVzc1EwRkRTQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNTVUZSUXl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzYjBKQlFXOUNMRWRCYUVsMlF5eEJRV2RKV1N4UFFXaEpUQ3hCUVhGSWMwSXNNa0pCUVRSQ0xFTkJRM0pFTEdOQlFXTXNRMEZEV2l4TFFVRkxMRU5CUTBnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVsQlVVTXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxHOUNRVUZ2UWl4RlFVRkZPMGxCUlROQ0xHRkJRV0VzUlVGQlJTeERRVUZETEVkQlJXNUNPenRCVG5CMVFsQXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJaMHBSTEU5QmFFcEVMRUZCTUVsTUxESkNRVUUwUWl4RFFVTXhRaXhqUVVGakxFTkJRMW9zUzBGQlN5eERRVWxJTEVWQlFVVXNRMEZCUVN4QlFVRkJMRkZCUVVNc1FVRkJRU3hGUVVGVk8wbEJUVlFzVTBGQlV5eEZRVUZETEVkQlFVYzdTVUZEWWl4TlFVRk5MRVZCUVVVc1EwRkJRenRKUVVOVUxFOUJRVThzUlVGQlJTeFJRVUZSTEVkQlQzQkNPenRCVGk5MlFrd3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJiMHRGTEU5QmNFdExMRU5CYjB0TUxHRkJRV0VzUTBGQlF6dEpRVVZXTEZWQlFWVXNSVUZCUXl4RFFVRkRPMGxCUTFvc1UwRkJVeXhGUVVGRExFTkJRVU1zUjBGRlpEczdRVUY2UzBnc1FVRTBTMGtzVDBFMVMwY3NRVUV5UzB3c2VVSkJRVEJDTEVOQlEzaENMRzlDUVVGdlFpeERRVUZETzBWQlEyNUNMRlZCUVZVc1JVRkJSU3hMUVVGTExFZEJRMnhDT3p0QlRqbDNRa1FzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRGVFdkdFFuWkRMRUZCYVV4RkxFOUJha3hMTEVOQmFVeE1MRzlDUVVGdlFpeERRVUZETzBsQlJXcENMRlZCUVZVc1JVRkJSU3hEUVVGRE8wbEJRMklzUzBGQlN5eEZRVUZGTEVsQlFVazdTVUZEV0N4UFFVRlBMRVZCUVVVc1MwRkJTenRKUVV0a0xFOUJRVThzUlVGQlJTeEpRVUZKTzBsQlEySXNTMEZCU3l4RlFVRkRMRVZCUVVVN1NVRkRVaXhMUVVGTExFVkJRVVVzU1VGQlNUdEpRVTFZTzFOQlEwY3NSVUZGVGp0SlFYSk5TQ3hCUVdsTVJTeFBRV3BNU3l4RFFXbE1UQ3h2UWtGQmIwSXNRMEZMYUVJc1FVRkJRU3hOUVVGRkxFRkJRVUVzUlVGQlVUdE5RVU5TTEU5QlFVOHNSVUZCUXl4bFFVRmxMRWRCUTNoQ08wbEJlRXhRTEVGQk9FeE5MRTlCT1V4RExFTkJhVXhNTEc5Q1FVRnZRaXhEUVdGb1FpeDNRa0ZCZDBJc1EwRkJRenROUVVOMlFpeExRVUZMTEVWQlFVTXNTVUZCU1N4SFFVTllPenRCUVdoTlVDeEJRWFZOUlN4UFFYWk5TeXhEUVhWTlRDeHBRa0ZCYVVJc1EwRkJRenRGUVVWb1FpeFZRVUZWTEVWQlFVVXNUVUZCVFN4SFFVVnVRanM3UVVFelRVZ3NRVUU0VFVrc1QwRTVUVWNzUVVFMlRVd3NkMEpCUVhsQ0xFTkJRM1pDTEdsQ1FVRnBRaXhGUVRsTmNrSXNRVUU0VFVrc1QwRTVUVWNzUVVFMlRYTkNMREpDUVVFMFFpeERRVU55UkN4cFFrRkJhVUlzUTBGQlF6dEZRVU5vUWl4TlFVRk5MRVZCUVVVc1RVRkJUVHRGUVVOa0xFOUJRVThzUlVGQlJTeFpRVUZaTEVkQlEzUkNPenRCVG1wNlFrUXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJkVTVSTEU5QmRrNUVMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJRMW9zUzBGQlN5eERRVU5JTEVWQlFVVXNRVUZEUVN4WlFVRmhMRU5CUVVNN1NVRkZWaXhQUVVGUExFVkJRVU1zU1VGQlNTeEhRVVZtT3p0QlRqVjZRbEFzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRGVFdkdFFuWkRMRUZCZFU1UkxFOUJkazVFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CUTFvc1MwRkJTeXhEUVVOSUxFVkJRVVVzUVVGTlFTeFpRVUZqTEVOQlFVRXNRVUZCUVN4RFFVRkRMRVZCUVVVN1NVRkZZaXhWUVVGVkxFVkJRVU1zU1VGQlNUdEpRVU5tTEZsQlFWa3NSVUZCUXl4TFFVRkxMRWRCUlhKQ096dEJRV3hQV0N4QlFYVk9VU3hQUVhaT1JDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFVTmFMRXRCUVVzc1EwRkRTQ3hGUVVGRkxFRkJXVUVzVjBGQldTeERRVUZETzBWQlExZ3NZVUZCWVN4RlFVRkRMRXRCUVVzc1IwRkRjRUk3TzBGQmNrOVlMRUZCTUU5UkxFOUJNVTlFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFNDeEZRVUZGTEVWQk1VOVdMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFFTeEZRVUZGTEVWQk1VOWlMRUZCTUU5UkxFOUJNVTlFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTlFMRVZCUVVVc1JVRXhUMVlzUVVFd1QxY3NUMEV4VDBvc1FVRnZUa3dzZDBKQlFYbENMRU5CUTNaQ0xHTkJRV01zUTBGdlFrNHNSVUZCUlN4RFFVRkJMRUZCUVVFc1YwRkJReXhCUVVGQkxFVkJRMG9zUlVGQlJTeERRVUZETzBWQlEwb3NWVUZCVlN4RlFVRkRMRXRCUVVzc1IwRnBRbXBDTzBWQk5WQlVMRUZCTUU5UkxFOUJNVTlFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFNDeEZRVUZGTEVGQlJVZ3NhVUpCUVhGQ0xFVkJOVTgxUWl4QlFUQlBVU3hQUVRGUFJDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFXOUNXaXhMUVVGTExFTkJRMGdzUlVGQlJTeEJRVVZwUWl4cFFrRkJjVUlzUlVFMVQyaEVMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFFTeEZRVUZGTEVGQlJVNHNhVUpCUVhGQ0xFVkJOVTgxUWl4QlFUQlBWeXhQUVRGUFNpeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFXOUNXaXhMUVVGTExFTkJRMEVzUlVGQlJTeEJRVVZqTEdsQ1FVRnhRaXhGUVRWUGFFUXNRVUV3VDFFc1QwRXhUMFFzUVVGdlRrd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEZ2UWs0c1JVRkJSU3hEUVVGQkxFRkJRVUVzVjBGQlF5eEJRVUZCTEVWQlExQXNSVUZCUlN4QlFVVklMR2xDUVVGeFFpeEZRVFZQTlVJc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRazRzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUTFBc1JVRkJSU3hCUVVWcFFpeHBRa0ZCY1VJc1JVRTFUMmhFTEVGQk1FOVhMRTlCTVU5S0xFRkJiMDVNTEhkQ1FVRjVRaXhEUVVOMlFpeGpRVUZqTEVOQmIwSk9MRVZCUVVVc1EwRkJRU3hCUVVGQkxGZEJRVU1zUVVGQlFTeEZRVU5LTEVWQlFVVXNRVUZGVGl4cFFrRkJjVUlzUlVFMVR6VkNMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTktMRVZCUVVVc1FVRkZZeXhwUWtGQmNVSXNRMEZCUXp0SlFVTnlReXhWUVVGVkxFVkJRVU1zU1VGQlNTeEhRVTlvUWp0SlFVNTNRaXhUUVVGRExFVkJRV1FzVDBGQlR5eEZRVUZETEVsQlFVazdUVUU1VDJ4RExFRkJNRTlSTEU5Qk1VOUVMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEU0N4RlFVRkZMRUZCUlVnc2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFVTeFBRVEZQUkN4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwZ3NSVUZCUlN4QlFVVnBRaXhwUWtGQmNVSXNSVUUxVDJoRUxFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEUVN4RlFVRkZMRUZCUlU0c2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFZ5eFBRVEZQU2l4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwRXNSVUZCUlN4QlFVVmpMR2xDUVVGeFFpeEZRVFZQYUVRc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRazRzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUTFBc1JVRkJSU3hCUVVWSUxHbENRVUZ4UWl4RlFUVlBOVUlzUVVFd1QxRXNUMEV4VDBRc1FVRnZUa3dzZDBKQlFYbENMRU5CUTNaQ0xHTkJRV01zUTBGdlFrNHNSVUZCUlN4RFFVRkJMRUZCUVVFc1YwRkJReXhCUVVGQkxFVkJRMUFzUlVGQlJTeEJRVVZwUWl4cFFrRkJjVUlzUlVFMVQyaEVMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTktMRVZCUVVVc1FVRkZUaXhwUWtGQmNVSXNSVUUxVHpWQ0xFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEpPTEVWQlFVVXNRMEZCUVN4QlFVRkJMRmRCUVVNc1FVRkJRU3hGUVVOS0xFVkJRVVVzUVVGRll5eHBRa0ZCY1VJc1EwRkJRenRSUVVkdVF5eFBRVUZQTEVWQlFVVXNTMEZCU3l4SFFVdHFRanRKVG5BeFFsQXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5UV2R0UW5aRExFRkJNRTlSTEU5Qk1VOUVMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEU0N4RlFVRkZMRUZCUlVnc2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFVTeFBRVEZQUkN4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwZ3NSVUZCUlN4QlFVVnBRaXhwUWtGQmNVSXNSVUUxVDJoRUxFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEUVN4RlFVRkZMRUZCUlU0c2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFZ5eFBRVEZQU2l4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwRXNSVUZCUlN4QlFVVmpMR2xDUVVGeFFpeEZRVFZQYUVRc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRazRzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUTFBc1JVRkJSU3hCUVVWSUxHbENRVUZ4UWl4RlFUVlBOVUlzUVVFd1QxRXNUMEV4VDBRc1FVRnZUa3dzZDBKQlFYbENMRU5CUTNaQ0xHTkJRV01zUTBGdlFrNHNSVUZCUlN4RFFVRkJMRUZCUVVFc1YwRkJReXhCUVVGQkxFVkJRMUFzUlVGQlJTeEJRVVZwUWl4cFFrRkJjVUlzUlVFMVQyaEVMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTktMRVZCUVVVc1FVRkZUaXhwUWtGQmNVSXNSVUUxVHpWQ0xFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEpPTEVWQlFVVXNRMEZCUVN4QlFVRkJMRmRCUVVNc1FVRkJRU3hGUVVOS0xFVkJRVVVzUVVGRll5eHBRa0ZCY1VJc1EwRkJRenRSUVUxdVF5eFBRVUZQTEVWQlFVTXNTVUZCU1N4SFFVVm1PMFZPY0RGQ1VDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbE5aMjFDZGtNc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRbG9zUzBGQlN5eERRVU5JTEVWQlFVVXNRVUZYU0N4dlFrRkJkMElzUlVGeVVDOUNMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFFTeEZRVUZGTEVGQlYwNHNiMEpCUVhkQ0xFVkJjbEF2UWl4QlFUQlBVU3hQUVRGUFJDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFXOUNUaXhGUVVGRkxFTkJRVUVzUVVGQlFTeFhRVUZETEVGQlFVRXNSVUZEVUN4RlFVRkZMRUZCVjBnc2IwSkJRWGRDTEVWQmNsQXZRaXhCUVRCUFZ5eFBRVEZQU2l4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1RpeEZRVUZGTEVOQlFVRXNRVUZCUVN4WFFVRkRMRUZCUVVFc1JVRkRTaXhGUVVGRkxFRkJWMDRzYjBKQlFYZENMRU5CUVVNN1RVRkZiRUlzVlVGQlZTeEZRVUZETEUxQlFVMDdUVUZEYWtJc1YwRkJWeXhGUVVGRExFdEJRVXM3VFVGRGFrSXNZMEZCWXl4RlFVRkRMRXRCUVVzc1IwRkZka0k3TzBGT016RkNVQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMFZOWjIxQ2RrTXNRVUVyVUUwc1QwRXZVRU1zUVVGdlRrd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEV3UTFvc1MwRkJTeXhEUVVGRE8wbEJSVVlzVjBGQlZ5eEZRVUZETEVOQlFVTXNSMEZ4UW1oQ096dEJRWFJTVUN4QlFXOVJWU3hQUVhCUlNDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFUQkRXaXhMUVVGTExFTkJTVWdzYVVKQlFXbENMRU5CUTJZc1IwRkJSeXhGUVhCUllpeEJRVzlSWXl4UFFYQlJVQ3hCUVc5T1RDeDNRa0ZCZVVJc1EwRkRka0lzWTBGQll5eERRVEJEV2l4TFFVRkxMRU5CU1Vnc2FVSkJRV2xDTEVOQlExZ3NTMEZCU3l4RlFYQlJia0lzUVVGdlVXOUNMRTlCY0ZGaUxFRkJiMDVNTEhkQ1FVRjVRaXhEUVVOMlFpeGpRVUZqTEVOQk1FTmFMRXRCUVVzc1EwRkpTQ3hwUWtGQmFVSXNRMEZEVEN4TFFVRkxMRU5CUVVNN1JVRkRaQ3hUUVVGVExFVkJRVU1zU1VGQlNUdEZRVU5rTEZWQlFWVXNSVUZCUXl4SlFVRkpMRWRCUTJoQ096dEJRWFpSV0N4QlFYbFJVU3hQUVhwUlJDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFUQkRXaXhMUVVGTExFTkJWVWdzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUVdFN1JVRkRaQ3hYUVVGWExFVkJRVU1zUTBGQlF6dEZRVU5pTEdOQlFXTXNSVUZCUXl4RFFVRkRMRWRCVldwQ08wVkJjbEpVTEVGQk5sRlpMRTlCTjFGTUxFRkJiMDVNTEhkQ1FVRjVRaXhEUVVOMlFpeGpRVUZqTEVOQk1FTmFMRXRCUVVzc1EwRlZTQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFhRVUZETEVGQlFVRXNTVUZKUXl4RlFVRkZMRUZCUTBZc1dVRkJZeXhEUVVGQkxFRkJRVUVzUTBGQlF5eEZRVUZGTzBsQlEyWXNXVUZCV1N4RlFVRkRMRXRCUVVzc1IwRkRia0k3UlVGb1VtSXNRVUUyVVZrc1QwRTNVVXdzUVVGdlRrd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEV3UTFvc1MwRkJTeXhEUVZWSUxFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4SlFVbERMRVZCUVVVc1FVRkpSaXhYUVVGWkxFTkJRVU03U1VGRFdDeGhRVUZoTEVWQlFVTXNTMEZCU3l4SFFVTndRanM3UVU1dU0wSlVMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdSVTB5TTBKMlF5eEJRVU5GTEU5QlJFc3NRMEZEVEN4cFFrRkJhVUlzUTBGQlF6dEpRVVZrTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUldoQ096dEJRVXhJTEVGQlQwa3NUMEZRUnl4RFFVMU1MRk5CUVZNc1EwRkRVQ3hSUVVGUkxFTkJRVU03UlVGRFVDeE5RVUZOTEVWQlFVTXNRMEZCUXp0RlFVTlNMRTlCUVU4c1JVRkJReXhEUVVGRExFZEJTVlk3UlVGaVRDeEJRVlZOTEU5QlZrTXNRMEZOVEN4VFFVRlRMRU5CUTFBc1VVRkJVU3hEUVVkT0xFdEJRVXNzUTBGQlF6dEpRVU5LTEdGQlFXRXNSVUZCUXl4RFFVRkRMRWRCUTJoQ096dEJRVnBRTEVGQlpVVXNUMEZtU3l4RFFXVk1MRzlDUVVGdlFpeERRVUZETzBWQlEyNUNMRk5CUVZNc1JVRkJSU3hWUVVGVkxFZEJRM1JDT3p0QlFXcENTQ3hCUVd0Q1JTeFBRV3hDU3l4RFFXdENUQ3hwUWtGQmFVSXNRMEZCUXp0RlFVTm9RaXhQUVVGUExFVkJRVVVzU1VGQlNUdEZRVU5pTEZkQlFWY3NSVUZCUlN4TlFVRk5MRWRCUTNCQ096dEJUbWcxUWtNc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0RlRUSXpRblpETEVGQmRVSkpMRTlCZGtKSExFTkJjMEpNTERKQ1FVRXlRaXhEUVVONlFpeERRVUZETEVWQmRrSk1MRUZCZFVKUExFOUJka0pCTEVOQmMwSk1MREpDUVVFeVFpeERRVU4wUWl4UlFVRlJMRU5CUVVNN1NVRkZVaXhWUVVGVkxFVkJRVVVzUjBGQlJ6dEpRVU5tTEZWQlFWVXNSVUZCUlN4SlFVRkpPMGxCUTJoQ0xFOUJRVThzUlVGQlJTeExRVUZMTzBsQlEyUXNTMEZCU3l4RlFVRkZMRWxCUVVrc1IwRkZaRHM3UVVFNVFrd3NRVUZwUTBrc1QwRnFRMGNzUTBGblEwd3NaMEpCUVdkQ0xFTkJRMlFzVVVGQlVTeERRVUZETzBWQlExQXNUVUZCVFN4RlFVRkZMRWxCUVVrc1IwRkRZanM3UVVGdVEwd3NRVUZ6UTBVc1QwRjBRMHNzUTBGelEwd3NTMEZCU3l4RFFVRkJMRUZCUVVFc1IwRkJReXhEUVVGSkxHZERRVUZuUXl4QlFVRndReXhGUVVGelF6dEZRVU14UXl4UlFVRlJMRVZCUVVNc1VVRkJVVHRGUVVOcVFpeEhRVUZITEVWQlFVTXNTMEZCU3p0RlFVTlVMRXRCUVVzc1JVRkJReXhIUVVGSExFZEJRMVk3TzBGQk1VTklMRUZCY1VSSkxFOUJja1JITEVOQk5FTk1MRzFDUVVGdFFpeERRVk5xUWl4VFFVRlRMRU5CUVVNN1JVRkRVaXhWUVVGVkxFVkJRVVVzUjBGQlJ6dEZRVU5tTEZOQlFWTXNSVUZCUlN4SlFVRkpMRWRCZDBKb1FqdEZRUzlGVEN4QlFYZEVUU3hQUVhoRVF5eERRVFJEVEN4dFFrRkJiVUlzUTBGVGFrSXNVMEZCVXl4RFFVZFFMRXRCUVVzc1EwRkJRU3hCUVVGQkxFZEJRVU1zUTBGQlNTdzJRa0ZCTmtJc1FVRkJha01zUlVGQmJVTTdTVUZEZGtNc2MwSkJRWE5DTEVWQlFVVXNSMEZCUnp0SlFVTXpRaXg1UWtGQmVVSXNSVUZCUlN4SFFVRkhMRWRCUXk5Q08wVkJNMFJRTEVGQk5FUk5MRTlCTlVSRExFTkJORU5NTEcxQ1FVRnRRaXhEUVZOcVFpeFRRVUZUTEVOQlQxQXNUVUZCVFN4RlFUVkVXaXhCUVRSRVl5eFBRVFZFVUN4RFFUUkRUQ3h0UWtGQmJVSXNRMEZUYWtJc1UwRkJVeXhEUVU5RExFOUJRVThzUTBGQlF6dEpRVU5rTEdGQlFXRXNSVUZCUlN4RFFVRkRMRWRCVTJwQ08wbEJkRVZRTEVGQk5FUk5MRTlCTlVSRExFTkJORU5NTEcxQ1FVRnRRaXhEUVZOcVFpeFRRVUZUTEVOQlQxQXNUVUZCVFN4QlFVVk1MRmxCUVdNc1JVRTVSSEpDTEVGQk5FUmpMRTlCTlVSUUxFTkJORU5NTEcxQ1FVRnRRaXhEUVZOcVFpeFRRVUZUTEVOQlQwTXNUMEZCVHl4QlFVVmtMRmxCUVdNc1EwRkJRenROUVVOYUxITkNRVUZ6UWl4RlFVRkZMRWRCUVVjN1RVRkRNMElzZVVKQlFYbENMRVZCUVVVc1IwRkJSeXhIUVVNdlFqdEpRV3BGVkN4QlFUUkVUU3hQUVRWRVF5eERRVFJEVEN4dFFrRkJiVUlzUTBGVGFrSXNVMEZCVXl4RFFVOVFMRTFCUVUwc1FVRk5UQ3hYUVVGaExFVkJiRVZ3UWl4QlFUUkVZeXhQUVRWRVVDeERRVFJEVEN4dFFrRkJiVUlzUTBGVGFrSXNVMEZCVXl4RFFVOURMRTlCUVU4c1FVRk5aQ3hYUVVGaExFTkJRVU03VFVGRFdDeDFRa0ZCZFVJc1JVRkJSU3hIUVVGSE8wMUJRelZDTERCQ1FVRXdRaXhGUVVGRkxFZEJRVWNzUjBGRGFFTTdSVUZ5UlZRc1FVRjNSVlVzVDBGNFJVZ3NRMEUwUTB3c2JVSkJRVzFDTEVOQlUycENMRk5CUVZNc1FVRnJRbEFzVTBGQlZTeEhRVU5PTEVOQlFVTXNRMEZCUXp0SlFVTkdMRmxCUVZrc1JVRkJSU3hEUVVGRExFZEJRMmhDTzBWQk1VVlVMRUZCTkVWTkxFOUJOVVZETEVOQk5FTk1MRzFDUVVGdFFpeERRVk5xUWl4VFFVRlRMRU5CZFVKUUxFMUJRVTBzUTBGQlF6dEpRVU5NTEZOQlFWTXNSVUZCUlN4SlFVRkpMRWRCUTJoQ096dEJRVGxGVUN4QlFXZEdTU3hQUVdoR1J5eERRVFJEVEN4dFFrRkJiVUlzUTBGdlEycENMRlZCUVZVc1FVRkJRU3hUUVVGVExFTkJRVU03UlVGRGJFSXNaVUZCWlN4RlFVRkZMRmxCUVZrN1JVRkROMElzWVVGQllTeEZRVUZGTEVsQlFVa3NSMEZSY0VJN1JVRXhSa3dzUVVGdFJsRXNUMEZ1UmtRc1EwRTBRMHdzYlVKQlFXMUNMRU5CYjBOcVFpeFZRVUZWTEVGQlFVRXNVMEZCVXl4SFFVZG1MRU5CUVVNc1EwRkJRenRKUVVOR0xGbEJRVmtzUlVGQlF5eEpRVUZKTzBsQlEycENMR0ZCUVdFc1JVRkJReXhKUVVGSkxFZEJRMjVDTzBWQmRFWlFMRUZCZFVaTkxFOUJka1pETEVOQk5FTk1MRzFDUVVGdFFpeERRVzlEYWtJc1ZVRkJWU3hCUVVGQkxGTkJRVk1zUTBGUGFrSXNUMEZCVHl4RFFVRkRPMGxCUTA0c1lVRkJZU3hGUVVGRExFdEJRVXNzUjBGRGNFSTdPMEZCZWtaUUxFRkJOa1p6UXl4UFFUZEdMMElzUTBFMlJrd3NZMEZCWXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETERCQ1FVRXdRaXhEUVVGRE8wVkJRemRFTEZWQlFWVXNSVUZCUlN4SlFVRkpMRWRCSzBKcVFqdEZRVGRJU0N4QlFTdEdTU3hQUVM5R1J5eERRVFpHVEN4alFVRmpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNNRUpCUVRCQ0xFTkJSVFZFTEV0QlFVc3NRMEZCUXp0SlFVTktMR0ZCUVdFc1JVRkJReXhEUVVGRExFZEJRMmhDTzBWQmFrZE1MRUZCYTBkSkxFOUJiRWRITEVOQk5rWk1MR05CUVdNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl3d1FrRkJNRUlzUTBGTE5VUXNTMEZCU3l4RFFVRkJMRUZCUVVFc1IwRkJReXhEUVVGSkxESkNRVUV5UWl4QlFVRXZRaXhGUVVGcFF6dEpRVU55UXl4WFFVRlhMRVZCUVVVc1EwRkJReXhIUVVObU8wVkJjRWRNTEVGQmNVZEpMRTlCY2tkSExFTkJOa1pNTEdOQlFXTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5d3dRa0ZCTUVJc1EwRlJOVVFzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RFFVRkxMRkZCUVZFc1FVRkJZaXhGUVVGbE8wbEJRMjVDTEV0QlFVc3NSVUZCUXl4SFFVRkhMRWRCUTFZN1JVRjJSMHdzUVVGM1Iwa3NUMEY0UjBjc1EwRTJSa3dzWTBGQll5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExEQkNRVUV3UWl4RFFWYzFSQ3hMUVVGTExFTkJRVUVzUVVGQlFTeEZRVUZETEVWQlFVa3NiMEpCUVc5Q0xFRkJRWGhDTEVWQlFUQkNPMGxCUXpsQ0xFdEJRVXNzUlVGQlF5eEhRVUZITEVkQlExWTdSVTV5SzBKRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1NVMHlNMEoyUXl4QlFUSkhTU3hQUVROSFJ5eERRVFpHVEN4alFVRmpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNNRUpCUVRCQ0xFTkJZelZFTEU5QlFVOHNRMEZCUXp0TlFVVktMRTlCUVU4c1JVRkJSU3hKUVVGSkxFZEJSV2hDTzBWT01TdENSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMGxOTWpOQ2RrTXNRVUZuU0Uwc1QwRm9TRU1zUTBFMlJrd3NZMEZCWXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETERCQ1FVRXdRaXhIUVcxQ01VUXNSMEZCUnl4RlFXaElWQ3hCUVdkSWRVSXNUMEZvU0doQ0xFTkJOa1pNTEdOQlFXTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5d3dRa0ZCTUVJc1IwRnRRbTVFTEU5QlFVOHNSMEZCUnl4SFFVRkhMRU5CUVVNN1RVRkZia0lzVDBGQlR5eEZRVUZGTEVsQlFVazdUVUZEWWl4VFFVRlRMRVZCUVVVc1NVRkJTVHROUVVObUxHVkJRV1VzUlVGQlJTeGhRVUZoTEVkQlVXcERPMDFCTlVoTUxFRkJjVWhWTEU5QmNraElMRU5CTmtaTUxHTkJRV01zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXd3UWtGQk1FSXNSMEZ0UWpGRUxFZEJRVWNzUjBGTFF5eERRVUZETEVWQmNraFlMRUZCY1VoVkxFOUJja2hJTEVOQk5rWk1MR05CUVdNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl3d1FrRkJNRUlzUjBGdFFtNUVMRTlCUVU4c1IwRkJSeXhIUVVGSExFZEJTMmhDTEVOQlFVTXNRMEZCUXp0UlFVTkdMRmxCUVZrc1JVRkJReXhMUVVGTExFZEJRMjVDTzAxQmRraFVMRUZCWjBoTkxFOUJhRWhETEVOQk5rWk1MR05CUVdNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl3d1FrRkJNRUlzUjBGdFFqRkVMRWRCUVVjc1FVRlJSaXhYUVVGaExFVkJlRWh3UWl4QlFXZElkVUlzVDBGb1NHaENMRU5CTmtaTUxHTkJRV01zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXd3UWtGQk1FSXNSMEZ0UW01RUxFOUJRVThzUjBGQlJ5eEhRVUZITEVGQlVXNUNMRmRCUVdFc1EwRkJRenRSUVVOWUxGbEJRVmtzUlVGQlF5eERRVUZETEVkQlEyWTdPMEZCTVVoVUxFRkJPRWhGTEU5Qk9VaExMRVZCT0VoTUxFRkJRVUVzVFVGQlF5eEJRVUZCTEVWQlFWRTdSVUZEVUN4UFFVRlBMRVZCUVVVc1pVRkJaU3hIUVVONlFqczdRVUZvU1Vnc1FVRnBTVVVzVDBGcVNVc3NRMEZwU1V3c09FSkJRVGhDTEVOQlFVTTdSVUZETjBJc1QwRkJUeXhGUVVGRExFbEJRVWs3UlVGRFdpeGxRVUZsTEVWQlFVVXNUVUZCVFR0RlFVTjJRaXhYUVVGWExFVkJRVVVzVFVGQlRTeEhRVU53UWpzN1FVRnlTVWdzUVVGelNVVXNUMEYwU1Vzc1EwRnpTVXdzWjBKQlFXZENMRU5CUVVNN1JVRkRaaXhoUVVGaExFVkJRVU1zU1VGQlNTeEhRVWx1UWp0RlFUTkpTQ3hCUVhkSlNTeFBRWGhKUnl4RFFYTkpUQ3huUWtGQlowSXNRMEZGWkN4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVFVGQlRTeEJRVUZZTEVWQlFXRTdTVUZEYWtJc1UwRkJVeXhGUVVGRExFTkJRVU1zUjBGRFdqczdRVUV4U1V3c1FVRTJTVVVzVDBFM1NVc3NRMEUyU1V3c1MwRkJTeXhEUVVGQkxFRkJRVUVzUjBGQlF5eERRVUZKTERKQ1FVRXlRaXhCUVVFdlFpeEZRVUZwUXp0RlFVTnlReXhQUVVGUExFVkJRVVVzU1VGQlNUdEZRVU5pTEdWQlFXVXNSVUZCUlN4TlFVRk5PMFZCUTNaQ0xGZEJRVmNzUlVGQlJTeE5RVUZOTEVkQlEzQkNPenRCUVdwS1NDeEJRVzFLUlN4UFFXNUtTeXhEUVcxS1RDeExRVUZMTEVOQlFVRXNRVUZCUVN4SFFVRkRMRU5CUVVrc2IwTkJRVzlETEVGQlFYaERMRVZCUVRCRE8wVkJRemxETEZkQlFWY3NSVUZCUlN4RFFVRkRMRWRCUTJZN08wRkJja3BJTEVGQmQwcE5MRTlCZUVwRExFTkJkVXBNTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1EwRkJTU3h4UWtGQmNVSXNRVUZCZWtJc1NVRkRSaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUMEZCVHl4QlFVRmFMRVZCUVdNN1JVRkRjRUlzVTBGQlV5eEZRVUZETEVsQlFVa3NSMEZEWmpzN1FVRXhTa3dzUVVFMlNqUkNMRTlCTjBweVFpeERRVFpLVEN4MVFrRkJkVUlzUjBGQlJ5eExRVUZMTEVOQlFVTTdSVUZET1VJc1QwRkJUeXhGUVVGRExFdEJRVXM3UlVGRFlpeE5RVUZOTEVWQlFVTXNTVUZCU1N4SFFVTmFPenRCZUVkMFowTklMRUZCUVVFc1ZVRkJWU3hEUVVGRE8wVkJRMVFzUzBGQlN5eEZRVUZETEhGQ1FVRTBRaXhIUVVOdVF6czdRVUZQUkN4QlFVTkZMRXRCUkVjc1FVRkJRU3hKUVVGTExFVkJRVUVzUVVGQlFTeEJRVUZCTEVsQlFVTXNRMEZCU3l4VlFVRlZMRUZCUVdZc1JVRkJhVUlzU1VGQlN5eEZRVUZCTEVGQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFVkJRMmhETEUxQlFVOHNRMEZCUXp0RlFVTk9MRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEhOQ1FVRnpRaXhIUVVNeFF6czdRVUZIU0N4QlFVTkZMRVZCUkVFc1EwRkJRU3hCUVVGQkxGRkJRVU1zUVVGQlFTeERRVU5JTEUxQlFWTXNSVUZFU3l4QlFVTmFMRVZCUkdNc1FVRkJRU3h2UWtGQmIwSXNRVUZEY0VNc1RVRkJVeXhIUVVRMlFpeEJRVUZCTEVGQlEzQkRMRWxCUkhGRExFTkJRVXNzVTBGQlV5eEJRVUZrTEVOQlEzWkRMRTFCUVZNc1EwRkJRenRGUVVOT0xFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMSE5DUVVGelFpeEhRVU14UXpzN1FVRkhTQ3hCUVVORkxFOUJSRXNzUVVGRFRDeE5RVUZQTEVOQlFVTTdSVUZEVGl4UFFVRlBMRVZCUVVVc1NVRkJTVHRGUVVOaUxGZEJRVmNzUlVGQlJTeEpRVUZKTzBWQlEycENMRXRCUVVzc1JVRkJSU3h6UWtGQmMwSXNSMEZET1VJN08wRjNSMmxxUWtnc1FYaEhPV2xDUVN4UGQwYzRhVUpQTEVOQmRVMU1MR2xDUVVGcFFpeEZlRWMxZEVKdVFpeEJRWHBDUVN4VFFYbENVeXhGUVhGS1ZDeEJRVGxMUVN4UFFUaExUeXhEUVc5VFRDeHRRa0ZCYlVJc1EwRnNaRmc3UlVGRFVpeFBRVUZQTEVWQlFVTXNTVUZCU1N4SFFYTkNZanRGZDBkMWFFSkVMRUY0UnpscFFrRXNUM2RIT0dsQ1R5eERlRWN6YVVKTUxGVkJRVmNzUVhkSGEzWkNXQ3hwUWtGQmFVSXNSWGhIYkhaQ2FrSXNRVUZJUml4VlFVZGhMRUZCYzBKaUxGTkJRVk1zUlVGeFNsUXNRVUU1UzBFc1QwRTRTMDhzUTBFelMwd3NWVUZCVnl4QlFTdGpXQ3h0UWtGQmJVSXNRMEV2WTFBN1NVRkRWaXhUUVVGVExFVkJRVU1zU1VGQlNTeEhRVXRtTzBsM1IzRnBRa2dzUVhoSGVtbENUU3hQZDBkNWFVSkRMRU40UnpOcFFrd3NWVUZCVnl4QmQwZHJka0pZTEdsQ1FVRnBRaXhIZUVkb2RrSmlMRU5CUVVNc1JVRkdUQ3hCUVVWSkxGVkJSazhzUVVGelFtSXNVMEZCVXl4SFFYQkNTQ3hEUVVGRExFVkJlVXRRTEVGQmVrdE5MRTlCZVV0RExFTkJNMHRNTEZWQlFWY3NRVUVyWTFnc2JVSkJRVzFDTEVkQk4yTm1MRU5CUVVNc1EwRkJRenROUVVOR0xGbEJRVmtzUlVGQlJTeEpRVUZKTzAxQlEyeENMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFZEJRM0JDTzBWM1IzTnBRa3dzUVhoSE9XbENRU3hQZDBjNGFVSlBMRU40UjNCcFFrd3NVMEZCVlN4QmQwY3lkVUpXTEdsQ1FVRnBRaXhGZUVjemRVSnFRaXhCUVZaR0xGTkJWVmtzUVVGbFdpeFRRVUZUTEVWQmNVcFVMRUZCT1V0QkxFOUJPRXRQTEVOQmNFdE1MRk5CUVZVc1FVRjNZMVlzYlVKQlFXMUNMRU5CZUdOU08wbEJRMVFzWlVGQlpTeEZRVUZGTEUxQlFVMHNSMEZEZUVJN1JYZEhhMmxDU0N4QmVFZG9hVUpKTEU5M1IyZHBRa2NzUTBGMVRVd3NhVUpCUVdsQ0xFZDRSM1oxUW1Zc1EwRkJReXhGUVZkTUxFRkJXRWtzVTBGWFN5eEhRVmhNTEVOQlFVTXNSVUZuUzB3c1FVRm9TMGtzVDBGblMwY3NRMEZ2VTB3c2JVSkJRVzFDTEVkQmNHTnFRaXhEUVVGRExFTkJRVU03U1VGRFJpeFpRVUZaTEVWQlFVTXNTMEZCU3l4SFFVOXVRanRKZDBkM2FFSklMRUY0UjJocFFra3NUM2RIWjJsQ1J5eERRWFZOVEN4cFFrRkJhVUlzUjNoSGRuVkNaaXhEUVVGRExFRkJSVVFzVTBGQlZTeEZRVk5rTEVGQldFa3NVMEZYU3l4SFFWaE1MRU5CUVVNc1FVRkZSQ3hUUVVGVkxFVkJPRXBrTEVGQmFFdEpMRTlCWjB0SExFTkJiMU5NTEcxQ1FVRnRRaXhIUVhCamFrSXNRMEZCUXl4QlFVVkVMRk5CUVZVc1EwRkJRenROUVVOVUxGTkJRVk1zUlVGQlJTeERRVUZETEVkQlEySTdTWGRITkdoQ1RDeEJlRWRvYVVKSkxFOTNSMmRwUWtjc1EwRjFUVXdzYVVKQlFXbENMRWQ0UjNaMVFtWXNRMEZCUXl4QlFVdEVMRmRCUVZrc1JVRk5hRUlzUVVGWVNTeFRRVmRMTEVkQldFd3NRMEZCUXl4QlFVdEVMRmRCUVZrc1JVRXlTbWhDTEVGQmFFdEpMRTlCWjB0SExFTkJiMU5NTEcxQ1FVRnRRaXhIUVhCamFrSXNRMEZCUXl4QlFVdEVMRmRCUVZrc1EwRkJRenROUVVOWUxGbEJRVmtzUlVGQlF5eERRVUZETEVkQlEyWTdPME5CVFVnc1FVRkJRU3hCUVVGblFpeEpRVUZtTEVOQlFVc3NVVUZCVVN4QlFVRmlMRVZCUmtnc1UwRkJVeXhEUVVWWE8wVkJRMmhDTEZWQlFWVXNSVUZCUlN4TFFVRkxMRWRCUTJ4Q096dEJRV2xLU0N4QlFUbEpRU3hQUVRoSlR5eERRVzlUVEN4dFFrRkJiVUlzUlVGd1UzSkNMRUZCT1VsQkxFOUJPRWxQTEVOQksyWk1MR1ZCUVdVc1EwRTNiMEpRTzBWQlExSXNWVUZCVlN4RlFVRkRMRTFCUVUwc1IwRkRiRUk3TzBGQlJVUXNRVUZCUVN4RFFVRkRMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzWTBGQll5eEJRVUZ1UWl4RlFVRnhRanRGUVVOeVFpeExRVUZMTEVWQlFVTXNkVUpCUVhWQ08wVkJRemRDTEdWQlFXVXNSVUZCUXl4bFFVRmxMRWRCUTJoRE96dEJRVTFFTEZWQlFWVXNRMEZCVml4UFFVRlZPMFZCUTFJc1FVRkJRU3hGUVVGRk8wbEJRVVVzVTBGQlV5eEZRVUZGTEdOQlFXTTdPMEZCUnk5Q0xFRkJRVUVzYjBKQlFXOUNMRU5CUVVNN1JVRkRia0lzVTBGQlV5eEZRVUZGTERCQ1FVRXdRaXhIUVVOMFF6czdRVUZGUkN4QlFVVkpMR05CUmxVc1EwRkJReXhGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNRMEZEYUVJc01rSkJRVFJDTEVOQlF6RkNMRzlDUVVGdlFpeERRVUZETzBWQlEyNUNMRmRCUVZjc1JVRkJReXhKUVVGSkxFZEJRMnBDT3p0QlFVcE1MRUZCVVZFc1kwRlNUU3hEUVVGRExFVkJRVVVzUTBGQlFTeEJRVUZCTEZGQlFVTXNRVUZCUVN4RFFVMW9RaXhQUVVGUkxFTkJRMDRzYVVKQlFXbENMRWRCUTJJc1EwRkJReXhEUVVGRE8wVkJRMFlzVDBGQlR5eEZRVUZETEdsQ1FVRnBRaXhIUVVNeFFqczdRVUZXVUN4QlFWbEpMR05CV2xVc1EwRkJReXhGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNRMEZOYUVJc1QwRkJVU3hEUVUxT0xHOUNRVUZ2UWl4RFFVRkRPMFZCUTI1Q0xGZEJRVmNzUlVGQlF5eEpRVUZKTEVkQlEycENPenRCUVdsQ1RDeHhRa0ZCY1VJN1FVRkRja0k3T3pzN096czdSMEZQUnp0QlFVTklMRzFDUVVGdFFqdEJRV2xHYmtJc1FVRXpSVUVzVDBFeVJVOHNRMEUyV0V3c1kwRkJZeXhGUVRkWWFFSXNRVUV6UlVFc1QwRXlSVThzUTBFeVprd3NRMEZCUXl4RFFVRkJMRUZCUVVFc1MwRkJReXhGUVVGUExFOUJRVThzUVVGQlpDeEhRVE5tU2l4QlFUTkZRU3hQUVRKRlR5eERRVzFvUWt3c2IwSkJRVzlDTEVWQmJtaENkRUlzUVVFelJVRXNUMEV5UlU4c1EwRnRha0pNTEdkQ1FVRm5RaXhGUVc1cVFteENMRUZCTTBWQkxFOUJNa1ZQTEVOQmFYTkNUQ3hqUVVGakxFTkJaVm9zYjBKQlFXOUNMRVZCTUVSNFFpeEJRWEl4UWtFc1dVRnhNVUpaTEVOQmMwTldMRFpDUVVFMlFpeEhRVUZITEVOQlFVTXNSVUZvZWtKdVF5eEJRVE5GUVN4UFFUSkZUeXhEUVRKVlRDeDNRa0ZCZDBJc1EwRjBXbWhDTzBWQlExSXNUVUZCVFN4RlFVRkRMSGRDUVVGM1FpeERRVUZETERCQ1FVRXdRaXhEUVVGRExHdERRVUVyUXl4SFFVTXpSenM3UVVGNVJVUXNRVUYyUlVFc1QwRjFSVThzUTBFMldFd3NZMEZCWXl4RlFUZFlhRUlzUVVGMlJVRXNUMEYxUlU4c1EwRXlaa3dzUTBGQlF5eERRVUZCTEVGQlFVRXNTMEZCUXl4RlFVRlBMRTlCUVU4c1FVRkJaQ3hIUVRObVNpeEJRWFpGUVN4UFFYVkZUeXhEUVcxb1Frd3NiMEpCUVc5Q0xFVkJibWhDZEVJc1FVRjJSVUVzVDBGMVJVOHNRMEZ0YWtKTUxHZENRVUZuUWl4RlFXNXFRbXhDTEVGQmRrVkJMRTlCZFVWUExFTkJhWE5DVEN4alFVRmpMRU5CWlZvc2IwSkJRVzlDTEVWQk1FUjRRaXhCUVdveFFrRXNXVUZwTVVKWkxFTkJjME5XTERaQ1FVRTJRaXhIUVVGSExFTkJRVU1zUlVGb2VrSnVReXhCUVhaRlFTeFBRWFZGVHl4RFFXbFhUQ3hqUVVGakxFTkJaMEphTEVWQlFVVXNRVUZCUVN4WlFVRlpMRU5CZUdKV08wVkJRMDRzVDBGQlR5eEZRVUZETEVsQlFVa3NSMEZMWWp0RmEwY3ZTa2NzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRKYkVkblQzWkRMRUZCZGtWQkxFOUJkVVZQTEVOQk5saE1MR05CUVdNc1JVRTNXR2hDTEVGQmRrVkJMRTlCZFVWUExFTkJNbVpNTEVOQlFVTXNRMEZCUVN4QlFVRkJMRXRCUVVNc1JVRkJUeXhQUVVGUExFRkJRV1FzUjBFelprb3NRVUYyUlVFc1QwRjFSVThzUTBGdGFFSk1MRzlDUVVGdlFpeEZRVzVvUW5SQ0xFRkJka1ZCTEU5QmRVVlBMRU5CYldwQ1RDeG5Ra0ZCWjBJc1JVRnVha0pzUWl4QlFYWkZRU3hQUVhWRlR5eERRV2x6UWt3c1kwRkJZeXhEUVdWYUxHOUNRVUZ2UWl4RlFUQkVlRUlzUVVGcU1VSkJMRmxCYVRGQ1dTeERRWE5EVml3MlFrRkJOa0lzUjBGQlJ5eERRVUZETEVWQmFIcENia01zUVVGMlJVRXNUMEYxUlU4c1EwRnBWMHdzWTBGQll5eERRV2RDV2l4RlFVRkZMRUZCUVVFc1dVRkJXU3hEUVhoaVZqdE5RVWxLTEU5QlFVOHNSVUZCUXl4TFFVRkxMRWRCUldoQ096dEJRV2xGUkN4QlFYSkVRU3hQUVhGRVR5eERRVFpZVEN4alFVRmpMRVZCTjFob1FpeEJRWEpFUVN4UFFYRkVUeXhEUVRKbVRDeERRVUZETEVOQlFVRXNRVUZCUVN4TFFVRkRMRVZCUVU4c1QwRkJUeXhCUVVGa0xFZEJNMlpLTEVGQmNrUkJMRTlCY1VSUExFTkJiV2hDVEN4dlFrRkJiMElzUlVGdWFFSjBRaXhCUVhKRVFTeFBRWEZFVHl4RFFXMXFRa3dzWjBKQlFXZENMRVZCYm1wQ2JFSXNRVUZ5UkVFc1QwRnhSRThzUTBGcGMwSk1MR05CUVdNc1EwRmxXaXh2UWtGQmIwSXNRMEZ5ZDBKcVFqdEZRVkJNTEdGQlFXRXNSVUZCUXl4UFFVRlBPMFZCUjI1Q0xGVkJRVlVzUlVGQlF5eHpRa0ZCYzBJc1IwRk5jRU03TzBGQk5ucENSQ3hCUVRONlFrRXNXVUV5ZWtKWkxFTkJjME5XTERaQ1FVRTJRaXhIUVVGSExFTkJRVU1zUTBGcU1rSnlRanRGUVZoYUxHRkJRV0VzUlVGQlF5eFBRVUZQTzBWQllYSkNMRmxCUVZrc1JVRkJSU3hMUVVGTE8wVkJRMjVDTEdGQlFXRXNSVUZCUlN4TFFVRkxPMFZCUlhCQ0xGVkJRVlVzUlVGQlJTeDFRMEZCZFVNN1JVRkRia1FzUzBGQlN5eEZRVUZGTEd0RFFVRnJRenRGUVVONlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXh2UlVGQmFVWXNSMEZyUTNCSE8wVkJhM2hDUkN4QlFXeDZRa1VzV1VGcmVrSlZMRU5CYzBOV0xEWkNRVUUyUWl4SFFVRkhMRU5CUVVNc1EwRjRNVUpxUXl4RFFVRkRMRU5CUVVNN1NVRkRRU3hMUVVGTExFVkJRVVVzV1VGQldTeEhRVU53UWp0RmEwY3hURU1zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRKYkVjd0swSjJReXhCUVRkNVFra3NXVUUyZVVKUkxFTkJjME5XTERaQ1FVRTJRaXhIUVVGSExFTkJRVU1zUTBGdU1VSXZRaXhGUVVGRkxFTkJRVU03VFVGRFJDeFBRVUZQTEVWQlFVVXNTVUZCU1N4SFFVTmtPMFZCTW5sQ1RDeEJRWGg1UWtVc1dVRjNlVUpWTEVOQmMwTldMRFpDUVVFMlFpeEhRVUZITEVOQlFVTXNRMEU1TUVKcVF5eE5RVUZOTEVOQlFVTTdTVUZEVEN4UlFVRlJMRVZCUVVVc1VVRkJVVHRKUVVOc1FpeEhRVUZITEVWQlFVVXNUVUZCVFR0SlFVTllMRXRCUVVzc1JVRkJSU3hOUVVGTk8wbEJRMklzUzBGQlN5eEZRVUZGTEZsQlFWazdTVUZEYmtJc1ZVRkJWU3hGUVVGRkxHZENRVUZuUWp0SlFVTTFRaXhWUVVGVkxFVkJRVVVzU1VGQlNTeEhRVk5xUWp0SlFYbDRRa2dzUVVGNGVVSkZMRmxCZDNsQ1ZTeERRWE5EVml3MlFrRkJOa0lzUjBGQlJ5eERRVUZETEVOQk9UQkNha01zVFVGQlRTeEJRVTlLTEUxQlFVOHNSVUZwZVVKWUxFRkJlSGxDUlN4WlFYZDVRbFVzUTBGelExWXNOa0pCUVRaQ0xFZEJRVWNzUTBGQlF5eERRVGt3UW1wRExFMUJRVTBzUVVGUFN5eE5RVUZQTEVOQlFVTTdUVUZEWml4TFFVRkxMRVZCUVVVc2QwTkJRWEZFTEVOQlFVTXNWVUZCVlR0TlFVTjJSU3hOUVVGTkxFVkJRVVVzU1VGQlNUdE5RVU5hTEZWQlFWVXNSVUZCUlN4SlFVRkpMRWRCU1dwQ08wMUJNSGhDVEN4QlFUZDRRazBzV1VFMmVFSk5MRU5CYzBOV0xEWkNRVUUyUWl4SFFVRkhMRU5CUVVNc1EwRTVNRUpxUXl4TlFVRk5MRUZCVDBvc1RVRkJUeXhEUVVsTUxFZEJRVWNzUlVFMmVFSlVMRUZCTjNoQ1RTeFpRVFo0UWswc1EwRnpRMVlzTmtKQlFUWkNMRWRCUVVjc1EwRkJReXhEUVRrd1FtcERMRTFCUVUwc1FVRlBTeXhOUVVGUExFTkJTV1FzUjBGQlJ5eERRVUZETzFGQlEwWXNTVUZCU1N4RlFVRkZMSFZDUVVGMVFpeEhRVU01UWp0RlFUSjRRbEFzUVVFemVrSkJMRmxCTW5wQ1dTeERRWE5EVml3MlFrRkJOa0lzUjBFNWVrSTNRaXhyUWtGQmJVSXNRMEZCUXp0SlFVTnNRaXg1UWtGQmVVSXNSVUZCUlN4UFFVRlBPMGxCUTJ4RExHOUNRVUZ2UWl4RlFVRkZMRTlCUVU4N1NVRkROMElzTWtKQlFUSkNMRVZCUVVVc1QwRkJUenRKUVVOd1F5d3dRa0ZCTUVJc1JVRkJSU3hQUVVGUExFZEJRM0JET3p0QlFWTklMRUZCUVVFc1QwRkJUeXhEUVVGRE8wVkJaMDVPTEc5RFFVRnZRenRGUVVsd1F5d3JRa0ZCSzBJN1JVRm5SQzlDT3pzN096czdTMEZOUnp0RlFVVklPenM3T3pzN096czdPMHRCVlVjN1JVRXlRMGc3T3pzN096czdPMHRCVVVjN1JVRnJZa2c3T3pzN096czdTMEZQUnl4RlFVVktPMFZCY0hkQ1JDeEJRVU5GTEU5QlJFc3NRMEZEVEN3MlFrRkJOa0lzUTBGQlF6dEpRVXMxUWl4VlFVRlZMRVZCUVVVc2RVTkJRWFZETzBsQlVXNUVMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMVlzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZ0UWs0c1ZVRkJWU3hGUVVGRkxFMUJRVTBzUjBGVGJrSTdTVUV6UTBnc1FVRkZUU3hQUVVaRExFTkJRMHdzTmtKQlFUWkNMRWRCUTNwQ0xFTkJRVU1zUTBGQlF6dE5RVU5HTEZGQlFWRXNSVUZCUlN4UlFVRlJMRWRCUTI1Q08wbHJSM0JQUkN4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzAxc1IyZFBka01zUVVGRFJTeFBRVVJMTEVOQlEwd3NOa0pCUVRaQ0xFTkJRVU03VVVGVE1VSXNWVUZCVlN4RlFVRkZMR3RDUVVGclFqdFJRVU01UWl4SlFVRkpMRVZCUVVNc1EwRkJRenRSUVVOT0xFdEJRVXNzUlVGQlF5eERRVUZETEVkQkswSldPMGxCTTBOSUxFRkJRMFVzVDBGRVN5eERRVU5NTERaQ1FVRTJRaXhEUVdVelFpeEJRVUZCTEZkQlFVVXNRMEZCV1N4TlFVRk5MRUZCUVd4Q0xFVkJRVzlDTzAxQlJYQkNMRTlCUVU4c1JVRkJSU3hEUVVGRE8wMUJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdUVUZEVkN4UFFVRlBMRVZCUVVVc1MwRkJTenROUVVOa0xGVkJRVlVzUlVGQlJTd3JRMEZCSzBNc1IwRk5OVVE3U1d0SE0xQkVMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdUV3hIWjA5MlF5eEJRVU5GTEU5QlJFc3NRMEZEVEN3MlFrRkJOa0lzUTBGQlF6dFJRVFJDTVVJc1VVRkJVU3hGUVVGRkxGRkJRVkU3VVVGRGJFSXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkRVQ3hMUVVGTExFVkJRVVVzUTBGQlF6dFJRVU5TTEVkQlFVY3NSVUZCUlN4TlFVRk5MRWRCVjJRN1NVRXpRMGdzUVVGeFEwa3NUMEZ5UTBjc1EwRkRUQ3cyUWtGQk5rSXNRMEZ2UXpOQ0xFTkJRVU1zUTBGQlF6dE5RVU5CTEUxQlFVMHNSVUZCUlN4RFFVRkRMRWRCUTFZN1NVRjJRMHdzUVVGM1Ewa3NUMEY0UTBjc1EwRkRUQ3cyUWtGQk5rSXNRMEYxUXpOQ0xFdEJRVXNzUTBGQlF6dE5RVU5LTEZOQlFWTXNSVUZCUlN4dFFrRkJhMElzUjBGRE9VSTdSVUV4UTB3c1FVRTJRekJETEU5Qk4wTnVReXhEUVRSRFRDeHZRa0ZCYjBJc1EwRkRiRUlzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RlFVRk5MR0ZCUVdFc1FVRkJia0lzUTBGQmIwSXNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVNeFF5eE5RVUZOTEVWQlFVVXNUMEZCVHp0SlFVTm1MRkZCUVZFc1JVRkJReXhSUVVGUk8wbEJRMnBDTEZsQlFWa3NSVUZCUlN4TFFVRkxMRWRCYVVKd1FqdEpRV3BGVEN4QlFXbEVUU3hQUVdwRVF5eERRVFJEVEN4dlFrRkJiMElzUTBGRGJFSXNTMEZCU3l4RFFVRkJMRUZCUVVFc1NVRkJReXhGUVVGTkxHRkJRV0VzUVVGQmJrSXNRMEZCYjBJc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGSmVrTXNVVUZCVVN4RFFVRkRPMDFCUTFBc1VVRkJVU3hGUVVGRExGRkJRVkU3VFVGRGFrSXNSMEZCUnl4RlFVRkRMRU5CUVVNN1RVRkRUQ3hKUVVGSkxFVkJRVU1zVFVGQlRUdE5RVU5ZTEUxQlFVMHNSVUZCUXl4RFFVRkRPMDFCUTFJc1QwRkJUeXhGUVVGRExFbEJRVWs3VFVGRFdpeGxRVUZsTEVWQlFVVXNUVUZCVFR0TlFVTjJRaXhYUVVGWExFVkJRVVVzVFVGQlRTeEhRVU53UWp0SlFYcEVVQ3hCUVRaRE1FTXNUMEUzUTI1RExFTkJORU5NTEc5Q1FVRnZRaXhEUVVOc1FpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRVZCUVUwc1lVRkJZU3hCUVVGdVFpeERRVUZ2UWl4VFFVRlRMRWRCUVVjc1MwRkJTeXhCUVdGNlF5eE5RVUZQTEVOQlFVTTdUVUZEVGl4VlFVRlZMRVZCUVVVc2RVSkJRWFZDTzAxQlEyNURMRXRCUVVzc1JVRkJSU3cwUWtGQk5FSXNSMEZKY0VNN1RVRm9SVkFzUVVFMlJGRXNUMEUzUkVRc1EwRTBRMHdzYjBKQlFXOUNMRU5CUTJ4Q0xFdEJRVXNzUTBGQlFTeEJRVUZCTEVsQlFVTXNSVUZCVFN4aFFVRmhMRUZCUVc1Q0xFTkJRVzlDTEZOQlFWTXNSMEZCUnl4TFFVRkxMRUZCWVhwRExFMUJRVThzUTBGSFRDeEhRVUZITEVOQlFVTTdVVUZEUml4SlFVRkpMRVZCUVVVc1dVRkJXU3hIUVVOdVFqdEZRUzlFVkN4QlFXMUZSU3hQUVc1RlN5eERRVzFGVEN4RFFVRkRMRU5CUVVNN1NVRkRRU3hMUVVGTExFVkJRVU1zTUVKQlFUQkNMRWRCUTJwRE8wVkJja1ZJTEVGQmRVVkZMRTlCZGtWTExFTkJkVVZNTEVWQlFVVXNSVUYyUlVvc1FVRjFSVXNzVDBGMlJVVXNRMEYxUlVZc1JVRkJSU3hGUVhaRlVDeEJRWFZGVVN4UFFYWkZSQ3hEUVhWRlF5eEZRVUZGTEVWQmRrVldMRUZCZFVWWExFOUJka1ZLTEVOQmRVVkpMRVZCUVVVc1JVRjJSV0lzUVVGMVJXTXNUMEYyUlZBc1EwRjFSVThzUlVGQlJTeEZRWFpGYUVJc1FVRjFSV2xDTEU5QmRrVldMRU5CZFVWVkxFVkJRVVVzUTBGQlF6dEpRVU5vUWl4WFFVRlhMRVZCUVVVc1RVRkJUU3hIUVVOd1FqdEZRWHBGU0N4QlFUSkZSU3hQUVRORlN5eERRVEpGVEN4RlFVRkZMRVZCTTBWS0xFRkJNa1ZMTEU5Qk0wVkZMRU5CTWtWR0xFVkJRVVVzUlVFelJWQXNRVUV5UlZFc1QwRXpSVVFzUTBFeVJVTXNSVUZCUlN4RlFUTkZWaXhCUVRKRlZ5eFBRVE5GU2l4RFFUSkZTU3hGUVVGRkxFVkJNMFZpTEVGQk1rVmpMRTlCTTBWUUxFTkJNa1ZQTEVWQlFVVXNSVUV6UldoQ0xFRkJNa1ZwUWl4UFFUTkZWaXhEUVRKRlZTeEZRVUZGTEVWQk0wVnVRaXhCUVRKRmNVSXNUMEV6UldRc1EwRXlSV01zUzBGQlN5eERRVUZETzBsQlEzWkNMRXRCUVVzc1JVRkJReXh6UWtGQmNVTXNSMEZETlVNN1JVRTNSVWdzUVVGdFJrVXNUMEZ1Umtzc1EwRnRSa3dzVFVGQlRTeERRVUZETzBsQk5WUlFMRlZCUVZVc1JVRkJReXgxUWtGQmRVSTdTVUZEYkVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXcwUWtGQk5FSTdTVUZEYkVRc1MwRkJTeXhGUVVGRExEUkNRVUUwUWp0SlFVTnNReXhOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU5VTEdGQlFXRXNSVUZCUlN4SFFVRkhPMGxCUTJ4Q0xFOUJRVThzUlVGQlF5eFRRVUZUTzBsQk9GUm1MR0ZCUVdFc1JVRkJSU3hMUVVGTE8wbEJRM0JDTEZWQlFWVXNSVUZCUlN4SlFVRkpPMGxCUTJoQ0xHZENRVUZuUWl4RlFVTmtMR3RsUVVGclpUdEpRVWx3WlN4bFFVRmxMRVZCUVVVc1QwRkJUenRKUVVONFFpeHBRa0ZCYVVJc1JVRkJSU3hUUVVGVE8wbEJRelZDTEdkQ1FVRm5RaXhGUVVGRkxFOUJRVTg3U1VGRGVrSXNiVUpCUVcxQ0xFVkJRVVVzVlVGQlZUdEpRVU12UWpzN096czdPenM3TzA5QlUwY3NSVUZGU2p0SmEwZG9Wa01zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenROYkVkblQzWkRMRUZCYlVaRkxFOUJia1pMTEVOQmJVWk1MRTFCUVUwc1EwRkJRenRSUVVWSUxFdEJRVXNzUlVGQlJTeEpRVUZKTzFGQlExZ3NWVUZCVlN4RlFVRkZMRWxCUVVrc1IwRXdRbTVDTzBsQmFFaElMRUZCYlVaRkxFOUJia1pMTEVOQmJVWk1MRTFCUVUwc1FVRjBWRm9zVFVGQllTeERRVUZETzAxQlEwNHNUMEZCVHl4RlFVRkZMRWxCUVVrN1RVRkRZaXhqUVVGakxFVkJRVVVzYzBKQlFYTkNPMDFCUTNSRExIRkNRVUZ4UWl4RlFVRkZMSE5DUVVGelFpeEhRVU01UXpzN1FVRTJWRU1zWTBGQll5eERRVUZrTEZsQlFXTTdSVUU1Um14Q0xFRkJiVVpGTEU5QmJrWkxMRU5CYlVaTUxFMUJRVTBzUTBGQlRqdEpRVmxKTEdkQ1FVRm5RaXhGUVVGRkxEaENRVUU0UWl4SFFXbENia1E3UlVGb1NFZ3NRVUZ6U1VVc1QwRjBTVXNzUTBGelNVd3NUVUZCVFN4RFFVRkJMRUZCUVVFc1JVRkJReXhGUVVGSkxEWkNRVUUyUWl4QlFVRnFReXhGUVVGdFF6dEpRVU40UXl4aFFVRmhMRVZCUVVNc1NVRkJTVHRKUVVOc1FpeFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETERSQ1FVRTBRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRFJDUVVGNVF6dEpRVU40UnpzN1QwRkZSeXhGUVZkS08wbEJkRXBJTEVGQmMwbEZMRTlCZEVsTExFTkJjMGxNTEUxQlFVMHNRMEZCUVN4QlFVRkJMRVZCUVVNc1JVRkJTU3cyUWtGQk5rSXNRVUZCYWtNc1EwRk5UQ3hOUVVGUExFTkJRVU03VFVGRFRpeGpRVUZqTEVWQlFVVXNjMEpCUVhOQ0xFZEJRM1pETzBsclJ6bFhSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZ6U1VVc1QwRjBTVXNzUTBGelNVd3NUVUZCVFN4RFFVRkJMRUZCUVVFc1JVRkJReXhGUVVGSkxEWkNRVUUyUWl4QlFVRnFReXhGUVVGdFF6dFJRVlYwUXl4TFFVRkxMRVZCUVVVc1NVRkJTVHRSUVVOWUxGVkJRVlVzUlVGQlJTeFBRVUZQTEVkQlMzUkNPMGxyUjNSWVF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wMXNSMmRQZGtNc1FVRnpTVVVzVDBGMFNVc3NRMEZ6U1V3c1RVRkJUU3hEUVVGQkxFRkJRVUVzUlVGQlF5eEZRVUZKTERaQ1FVRTJRaXhCUVVGcVF5eEZRVUZ0UXp0UlFXTjBReXhoUVVGaExFVkJRVU1zUTBGQlF5eEhRVVZzUWp0RlFYUktTQ3hCUVhsTFJTeFBRWHBMU3l4RFFYbExUQ3hEUVVGRExFRkJRVUVzVTBGQlV5eERRVUZETzBsQlExUXNUVUZCVFN4RlFVRkRMRmRCUVZjc1IwRkRia0k3UlVFeWJFSklMRUZCZW14Q1JTeFBRWGxzUWtzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4dFFrRkJiVUlzUVVGQlFTeEpRVUZMTEVWQlFVRXNRVUZCUVN4QlFVRkJMRmRCUVVNc1EwRkJXU3hOUVVGTkxFRkJRV3hDTEV0QlFYVkNMRU5CUVVNc1FVRkJRU3hYUVVGWExFTkJlbXhDZGtVN1NVRndRbVFzWjBKQlFXZENMRVZCUVVVc1QwRkJUenRKUVVONlFpeG5Ra0ZCWjBJc1JVRkJSU3hwUTBGQmFVTTdTVUZEYmtRc1ZVRkJWU3hGUVVGRkxFbEJRVWs3U1VGRGFFSXNTMEZCU3l4RlFVRkZMRXRCUVVzc1IwRnRRbUk3U1VGMWJFSklMRUZCZW14Q1JTeFBRWGxzUWtzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4dFFrRkJiVUlzUVVGQlFTeEpRVUZMTEVWQlFVRXNRVUZCUVN4QlFVRkJMRmRCUVVNc1EwRkJXU3hOUVVGTkxFRkJRV3hDTEV0QmVtMUNjRVFzVFVGQlV5eEJRWGx0UW0xRkxGZEJRVmNzUlVGQmVrWXNRVUY2YkVKRkxFOUJlV3hDU3l4RFFVRkRMRzlDUVVGdlFpeERRVUZETEcxQ1FVRnRRaXhCUVVGQkxFbEJRVXNzUlVGQlFTeEJRVUZCTEVGQlFVRXNWMEZCUXl4RFFVRlpMRTFCUVUwc1FVRkJiRUlzUzBGNmJVSXpReXhOUVVGVExFRkJlVzFDTUVRc1YwRkJWeXhEUVhwdFFuQkZPMDFCUTJZc1kwRkJZeXhGUVVGRkxFOUJRVTg3VFVGRGRrSXNaMEpCUVdkQ0xFVkJRVVVzVDBGQlR6dE5RVU42UWl4blFrRkJaMElzUlVGQlJTeHBRMEZCYVVNN1RVRkRia1FzUzBGQlN5eEZRVUZGTEV0QlFVczdUVUZEV2l4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRFJDUVVFMFFpeEhRVU51UkR0SlFXMXRRa3dzUVVGNmJFSkZMRTlCZVd4Q1N5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHMUNRVUZ0UWl4QlFVRkJMRWxCUVVzc1JVRkJRU3hCUVVGQkxFRkJRVUVzVjBGQlF5eERRVUZaTEUxQlFVMHNRVUZCYkVJc1MwRnNiVUp3UkN4VFFVRlpMRUZCYTIxQ1owVXNWMEZCVnl4RFFXeHRRakZGTzAxQlExUXNUVUZCVFN4RlFVRkZMR1ZCUVdVc1IwRkRlRUk3UlVGMFMwd3NRVUZwVEVVc1QwRnFURXNzUTBGcFRFd3NRMEZCUXl4QlFVRkJMRTlCUVU4c1EwRkJRenRKUVVOUUxHVkJRV1VzUlVGQlF5eEpRVUZKTEVkQlJYSkNPMFZCY0V4SUxFRkJkMHhGTEU5QmVFeExMRU5CZDB4TUxFMUJRVTBzUlVGNFRGSXNRVUYzVEZVc1QwRjRURWdzUTBGM1RFY3NUMEZCVHl4RFFVRkRPMGxCYW1Gb1FpeFZRVUZWTEVWQlFVTXNkVUpCUVhWQ08wbEJRMnhETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNORUpCUVRSQ08wbEJRMnhFTEV0QlFVc3NSVUZCUXl3MFFrRkJORUk3U1VGRGJFTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRWQ3hoUVVGaExFVkJRVVVzUjBGQlJ6dEpRVU5zUWl4UFFVRlBMRVZCUVVNc1UwRkJVeXhIUVRCaGFFSTdTVUYwVFVnc1FVRjNURVVzVDBGNFRFc3NRMEYzVEV3c1RVRkJUU3hCUVROYVdpeE5RVUZoTEVWQmJVOVVMRUZCZDB4VkxFOUJlRXhJTEVOQmQweEhMRTlCUVU4c1FVRXpXbkpDTEUxQlFXRXNRMEZCUXp0TlFVTk9MRTlCUVU4c1JVRkJSU3hKUVVGSk8wMUJRMklzWTBGQll5eEZRVUZGTEhOQ1FVRnpRanROUVVOMFF5eHhRa0ZCY1VJc1JVRkJSU3h6UWtGQmMwSXNSMEZET1VNN1NVRXJUa2dzUVVGM1RFVXNUMEY0VEVzc1EwRjNURXdzVFVGQlRTeEJRWEphVkN4TlFVRlpMRVZCTms1WUxFRkJkMHhWTEU5QmVFeElMRU5CZDB4SExFOUJRVThzUVVGeVdteENMRTFCUVZrc1EwRkJRenROUVVOT0xGVkJRVlVzUlVGMlExSXNUMEZCVHp0TlFYZERWQ3hMUVVGTExFVkJRVVVzUzBGQlN6dE5RVU5hTEdOQlFXTXNSVUZCUlN3MlFrRkJNRU03VFVGRE1VUXNjVUpCUVhGQ0xFVkJRVVVzTmtKQlFUQkRMRWRCU1d4Rk8wMUJjVTVNTEVGQmVFNU5MRTlCZDA1RExFTkJkMHhNTEUxQlFVMHNRVUZ5V2s0c1RVRkJVeXhEUVV0TUxFZEJRVWNzUlVGM1RsUXNRVUY0VGswc1QwRjNUa01zUTBGM1RFY3NUMEZCVHl4QlFYSmFaaXhOUVVGVExFTkJTMHdzUjBGQlJ5eERRVUZETzFGQlEwWXNTVUZCU1N4RlFVRkZMRXRCUVVzc1IwRkRXanRKUVhOT1VDeEJRWGRNUlN4UFFYaE1TeXhEUVhkTVRDeE5RVUZOTEVGQlIwd3NaMEpCUVd0Q0xFVkJNMHh5UWl4QlFYZE1WU3hQUVhoTVNDeERRWGRNUnl4UFFVRlBMRUZCUjJRc1owSkJRV3RDTEVOQlFVTTdUVUZzUTJ4Q0xHZENRVUZuUWl4RlFVRkZMRTlCUVU4N1RVRkRla0lzWjBKQlFXZENMRVZCUVVVc2FVTkJRV2xETzAxQlEyNUVMRlZCUVZVc1JVRkJSU3hKUVVGSk8wMUJRMmhDTEV0QlFVc3NSVUZCUlN4TFFVRkxMRWRCYVVOWU8wMUJOMHhNTEVGQmQweEZMRTlCZUV4TExFTkJkMHhNTEUxQlFVMHNRVUZIVEN4blFrRkJhMElzUVVFNVFtNUNMRTFCUVZNc1JVRTNTbGdzUVVGM1RFVXNUMEY0VEVzc1EwRjNURXdzVFVGQlRTeEJRVWRNTEdkQ1FVRnJRaXhCUVRsQ1ZpeE5RVUZUTEVWQk4wcHdRaXhCUVhkTVZTeFBRWGhNU0N4RFFYZE1SeXhQUVVGUExFRkJSMlFzWjBKQlFXdENMRUZCT1VKdVFpeE5RVUZUTEVWQk4wcFlMRUZCZDB4VkxFOUJlRXhJTEVOQmQweEhMRTlCUVU4c1FVRkhaQ3huUWtGQmEwSXNRVUU1UWxZc1RVRkJVeXhEUVVGRE8xRkJRMllzWTBGQll5eEZRVUZGTEU5QlFVODdVVUZEZGtJc1owSkJRV2RDTEVWQlFVVXNUMEZCVHp0UlFVTjZRaXhuUWtGQlowSXNSVUZCUlN4cFEwRkJhVU03VVVGRGJrUXNTMEZCU3l4RlFVRkZMRXRCUVVzN1VVRkRXaXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExEUkNRVUUwUWl4SFFVTnVSRHROUVc1TFRDeEJRWGRNUlN4UFFYaE1TeXhEUVhkTVRDeE5RVUZOTEVGQlIwd3NaMEpCUVd0Q0xFRkJka0p1UWl4VFFVRlpMRVZCY0V0a0xFRkJkMHhWTEU5QmVFeElMRU5CZDB4SExFOUJRVThzUVVGSFpDeG5Ra0ZCYTBJc1FVRjJRbTVDTEZOQlFWa3NRMEZCUXp0UlFVTlVMRTFCUVUwc1JVRkJSU3hsUVVGbExFZEJRM2hDTzBsQmRFdE1MRUZCZDB4RkxFOUJlRXhMTEVOQmQweE1MRTFCUVUwc1FVRk5UQ3hWUVVGWkxFRkJRMVlzVFVGQlVTeEZRUzlNWWl4QlFYZE1SU3hQUVhoTVN5eERRWGRNVEN4TlFVRk5MRUZCVFV3c1ZVRkJXU3hCUVVORUxFOUJRVk1zUlVFdlRIWkNMRUZCZDB4RkxFOUJlRXhMTEVOQmQweE1MRTFCUVUwc1FVRk5UQ3hWUVVGWkxFRkJRMU1zVFVGQlVTeEZRUzlNYUVNc1FVRjNURVVzVDBGNFRFc3NRMEYzVEV3c1RVRkJUU3hCUVUxTUxGVkJRVmtzUVVGRGEwSXNUMEZCVXl4RlFTOU1NVU1zUVVGM1RGVXNUMEY0VEVnc1EwRjNURWNzVDBGQlR5eEJRVTFrTEZWQlFWa3NRVUZEVml4TlFVRlJMRVZCTDB4aUxFRkJkMHhWTEU5QmVFeElMRU5CZDB4SExFOUJRVThzUVVGTlpDeFZRVUZaTEVGQlEwUXNUMEZCVXl4RlFTOU1ka0lzUVVGM1RGVXNUMEY0VEVnc1EwRjNURWNzVDBGQlR5eEJRVTFrTEZWQlFWa3NRVUZEVXl4TlFVRlJMRVZCTDB4b1F5eEJRWGRNVlN4UFFYaE1TQ3hEUVhkTVJ5eFBRVUZQTEVGQlRXUXNWVUZCV1N4QlFVTnJRaXhQUVVGVExFTkJRVU03VFVGRGJrTXNZMEZCWXl4RlFVRkZMSE5EUVVGeFJEdE5RVU55UlN4blFrRkJaMElzUlVGcVkySXNSMEZCUnp0TlFXdGpUaXhMUVVGTExFVkJRVU1zUzBGQlN6dE5RVU5ZTEdkQ1FVRm5RaXhGUVVGRkxEWkNRVUZ0UkN4SFFVTjBSVHRGUVhCTlVDeEJRWGxOU1N4UFFYcE5SeXhGUVhkTlRDeEJRVUZCTEZkQlFVTXNRMEZCV1N4TlFVRk5MRUZCUVd4Q0xFVkJRME1zVFVGQlRTeEJRVU5NTEdkQ1FVRnJRaXhGUVRGTmRrSXNRVUY1VFZrc1QwRjZUVXdzUlVGM1RVd3NRVUZCUVN4WFFVRkRMRU5CUVZrc1RVRkJUU3hCUVVGc1FpeEZRVU5UTEU5QlFVOHNRVUZEWkN4blFrRkJhMElzUTBGQlF6dEpRVzVpZEVJc1ZVRkJWU3hGUVVGRExIVkNRVUYxUWp0SlFVTnNReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExEUkNRVUUwUWp0SlFVTnNSQ3hMUVVGTExFVkJRVU1zTkVKQlFUUkNPMGxCUTJ4RExFMUJRVTBzUlVGQlJTeERRVUZETzBsQlExUXNZVUZCWVN4RlFVRkZMRWRCUVVjN1NVRkRiRUlzVDBGQlR5eEZRVUZETEZOQlFWTXNSMEZuWWxvN1NVRTFUVkFzUVVGNVRVa3NUMEY2VFVjc1JVRjNUVXdzUVVGQlFTeFhRVUZETEVOQlFWa3NUVUZCVFN4QlFVRnNRaXhGUVVORExFMUJRVTBzUVVGRFRDeG5Ra0ZCYTBJc1FVRTNZVE5DTEUxQlFXRXNSVUZ0VDFRc1FVRjVUVmtzVDBGNlRVd3NSVUYzVFV3c1FVRkJRU3hYUVVGRExFTkJRVmtzVFVGQlRTeEJRVUZzUWl4RlFVTlRMRTlCUVU4c1FVRkRaQ3huUWtGQmEwSXNRVUUzWVROQ0xFMUJRV0VzUTBGQlF6dE5RVU5PTEU5QlFVOHNSVUZCUlN4SlFVRkpPMDFCUTJJc1kwRkJZeXhGUVVGRkxITkNRVUZ6UWp0TlFVTjBReXh4UWtGQmNVSXNSVUZCUlN4elFrRkJjMElzUjBGRE9VTTdTVUVyVGtnc1FVRjVUVWtzVDBGNlRVY3NSVUYzVFV3c1FVRkJRU3hYUVVGRExFTkJRVmtzVFVGQlRTeEJRVUZzUWl4RlFVTkRMRTFCUVUwc1FVRkRUQ3huUWtGQmEwSXNRVUYyWVhoQ0xFMUJRVmtzUlVFMlRsZ3NRVUY1VFZrc1QwRjZUVXdzUlVGM1RVd3NRVUZCUVN4WFFVRkRMRU5CUVZrc1RVRkJUU3hCUVVGc1FpeEZRVU5UTEU5QlFVOHNRVUZEWkN4blFrRkJhMElzUVVGMllYaENMRTFCUVZrc1EwRkJRenROUVVOT0xGVkJRVlVzUlVGMlExSXNUMEZCVHp0TlFYZERWQ3hMUVVGTExFVkJRVVVzUzBGQlN6dE5RVU5hTEdOQlFXTXNSVUZCUlN3MlFrRkJNRU03VFVGRE1VUXNjVUpCUVhGQ0xFVkJRVVVzTmtKQlFUQkRMRWRCU1d4Rk8wMUJjVTVNTEVGQmVFNU5MRTlCZDA1RExFVkJkMDFNTEVGQlFVRXNWMEZCUXl4RFFVRlpMRTFCUVUwc1FVRkJiRUlzUlVGRFF5eE5RVUZOTEVGQlEwd3NaMEpCUVd0Q0xFRkJkbUYyUWl4TlFVRlhMRU5CUzB3c1IwRkJSeXhGUVhkT1ZDeEJRWGhPVFN4UFFYZE9ReXhGUVhkTlRDeEJRVUZCTEZkQlFVTXNRMEZCV1N4TlFVRk5MRUZCUVd4Q0xFVkJRMU1zVDBGQlR5eEJRVU5rTEdkQ1FVRnJRaXhCUVhaaGRrSXNUVUZCVnl4RFFVdE1MRWRCUVVjc1EwRkJRenRSUVVOR0xFbEJRVWtzUlVGQlJTeExRVUZMTEVkQlExbzdSVUZ6VGxBc1FVRjVUa1VzVDBGNlRrc3NRMEY1VGt3c1MwRkJTeXhEUVVGQkxFRkJRVUVzU1VGQlF5eERRVUZMTEUxQlFVMHNRVUZCV0N4RlFVRmhPMGxCUTJwQ0xGbEJRVmtzUlVGQlF5eE5RVUZOTzBsQlEyNUNMR0ZCUVdFc1JVRkJReXhOUVVGTkxFZEJRM0pDTzBWQk5VNUlMRUZCT0U1RkxFOUJPVTVMTEVOQk9FNU1MRXRCUVVzc1EwRkJRU3hCUVVGQkxFbEJRVU1zUTBGQlN5eE5RVUZOTEVGQlFWZ3NSVUZCWVR0SlFVTnFRaXhaUVVGWkxFVkJRVU1zZDBKQlFYZENPMGxCUTNKRExGbEJRVmtzUlVGQlF5d3dRa0ZCTUVJN1NVRkRka01zV1VGQldTeEZRVUZETERSQ1FVRTBRaXhIUVVNeFF6dEZRV3hQU0N4QlFXOVBSU3hQUVhCUFN5eERRVzlQVEN4UlFVRlJMRU5CUVVNN1NVRkRVQ3hOUVVGTkxFVkJRVU1zU1VGQlNTeEhRVTlhTzBsclJ6VmpReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZ2VDBVc1QwRndUMHNzUTBGdlQwd3NVVUZCVVN4RFFVRkRPMUZCUjB3c1dVRkJXU3hGUVVGRExIZENRVUYzUWp0UlFVTnlReXhaUVVGWkxFVkJRVU1zTUVKQlFUQkNPMUZCUTNaRExGbEJRVmtzUlVGQlF5dzBRa0ZCTkVJN1VVRkRla01zWVVGQllTeEZRVUZETERSQ1FVRXlRaXhIUVVVMVF6dEZRVFZQU0N4QlFUaFBSU3hQUVRsUFN5eERRVGhQVEN4UFFVRlBMRU5CUVVNN1NVRkRUaXhYUVVGWExFVkJRVVVzU1VGQlNTeEhRVU5zUWp0RlFXaFFTQ3hCUVd0UVZTeFBRV3hRU0N4RFFXdFFUQ3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETzBsQlEyUXNXVUZCV1N4RlFVRkRMRWxCUVVrc1IwRkRiRUk3UlVGd1VFZ3NRVUZ6VUVVc1QwRjBVRXNzUTBGelVFd3NTVUZCU1N4RFFVRkRPMGxCUTBnc1QwRkJUeXhGUVVGRExFbEJRVWtzUjBGRFlqdEZRWGhRU0N4QlFUQlFSU3hQUVRGUVN5eERRVEJRVEN4SFFVRkhMRU5CUVVNN1NVRkRSaXhUUVVGVExFVkJRVU1zU1VGQlNTeEhRVU5tTzBWQk5WQklMRUZCZDFKRkxFOUJlRkpMTEVOQmQxSk1MRmRCUVZjc1EwRkJRenRKUVVOV0xHZENRVUZuUWl4RlFVRkZMSGRDUVVGM1FqdEpRVU14UXl4WlFVRlpMRVZCUVVVc05FSkJRVFJDTzBsQlF6RkRMRXRCUVVzc1JVRkJSU3h6UWtGQmMwSXNSMEZET1VJN1JVRTFVa2dzUVVFNFVrVXNUMEU1VWtzc1EwRTRVa3dzWTBGQll5eERRVUZETzBsQlEySXNaMEpCUVdkQ0xFVkJRVVVzVDBGQlR6dEpRVU42UWl4WlFVRlpMRVZCUVVVc1QwRkJUenRKUVVOeVFpeExRVUZMTEVWQlFVVXNUMEZCVHl4SFFVTm1PMFZyUjJ4blFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEpiRWRuVDNaRExFRkJkMU5STEU5QmVGTkVMRU5CYjFOTUxHMUNRVUZ0UWl4SFFVbGlMRU5CUVVNc1EwRkJRenROUVVOR0xGbEJRVmtzUlVGQlJTeERRVUZETEVkQlEyaENPMFZCTVZOUUxFRkJhVlJGTEU5QmFsUkxMRU5CYVZSTUxHRkJRV0VzUTBGQlF6dEpRVU5hTEdGQlFXRXNSVUZCUXl4SlFVRkpPMGxCUTJ4Q0xGZEJRVmNzUlVGQlJTdzBRa0ZCTkVJc1IwRlJNVU03U1d0SE0yaENReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZwVkVVc1QwRnFWRXNzUTBGcFZFd3NZVUZCWVN4RFFVRkRPMUZCU1ZZc1lVRkJZU3hGUVVGRExFdEJRVXNzUjBGTmRFSTdTVUZLUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTA3VFVGMlZETkNMRUZCYVZSRkxFOUJhbFJMTEVOQmFWUk1MR0ZCUVdFc1EwRkJRenRSUVU5V0xGTkJRVk1zUlVGQlF5eExRVUZMTzFGQlEyWXNWMEZCVnl4RlFVRkZMRzFEUVVGdFF5eEhRVVZ1UkR0RlFUTlVTQ3hCUVRKVlJTeFBRVE5WU3l4RFFUSlZUQ3gzUWtGQmQwSXNRMEZCUXp0SlFVVjJRaXhsUVVGbExFVkJRVU1zV1VGQldUdEpRVU0xUWl4VlFVRlZMRVZCUVVNc2VVSkJRV3RETzBsQlF6ZERMRmRCUVZjc1JVRkJReXhEUVVGRE8wbEJRMklzV1VGQldTeEZRVUZETEVOQlFVTTdTVUZEWkN4UFFVRlBMRVZCUVVNc1QwRkJUeXhIUVVsb1FqdEpRWEpXU0N4QlFXdFdUU3hQUVd4V1F5eERRVEpWVEN4M1FrRkJkMElzUjBGUGNFSXNRMEZCUXl4QlFVRkJMRTlCUVU4c1JVRnNWbVFzUVVGclZtZENMRTlCYkZaVUxFTkJNbFZNTEhkQ1FVRjNRaXhEUVU5V0xFMUJRVTBzUTBGQlF6dE5RVU5xUWl4VFFVRlRMRVZCUVVNc1VVRkJVU3hIUVVOdVFqdEZRWEJXVEN4QlFYZFdTU3hQUVhoV1J5eEJRWFZXVEN4M1FrRkJlVUlzUTBGRGRrSXNkMEpCUVhkQ0xFTkJRVU03U1VGRGRrSXNWMEZCVnl4RlFVRkRMRTFCUVUwN1NVRkRiRUlzWTBGQll5eEZRVUZETEUxQlFVMHNSMEZKZEVJN1NVRTVWa3dzUVVFeVZsRXNUMEV6VmtRc1FVRjFWa3dzZDBKQlFYbENMRU5CUTNaQ0xIZENRVUYzUWl4SFFVZHdRaXhEUVVGRExFRkJRVUVzVDBGQlR5eEZRVE5XYUVJc1FVRXlWbXRDTEU5Qk0xWllMRUZCZFZaTUxIZENRVUY1UWl4RFFVTjJRaXgzUWtGQmQwSXNRMEZIVml4TlFVRk5MRU5CUVVNN1RVRkRha0lzVTBGQlV5eEZRVUZETEV0QlFVc3NSMEZEYUVJN1JVRTNWbEFzUVVGcFYwVXNUMEZxVjBzc1EwRnBWMHdzWTBGQll5eERRVUZETzBsQlEySXNVMEZCVXl4RlFVRkRMRWxCUVVrc1IwRnhRbVk3U1VGMldFZ3NRVUZ0VjBrc1QwRnVWMGNzUTBGcFYwd3NZMEZCWXl4RFFVVmFMRVZCUVVVc1EwRkJRU3hCUVVGQkxGZEJRVU1zUVVGQlFTeEZRVUZoTzAxQlEyUXNZMEZCWXl4RlFVRkRMRXRCUVVzN1RVRkRjRUk3TzFOQlJVY3NSVUZUU2p0TmEwZG9iRUpFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3VVd4SFowOTJReXhCUVcxWFNTeFBRVzVYUnl4RFFXbFhUQ3hqUVVGakxFTkJSVm9zUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUVdFN1ZVRk5XaXhYUVVGWExFVkJRVU1zUzBGQlN5eEhRVTl3UWp0TlFXaFlUQ3hCUVcxWFNTeFBRVzVYUnl4RFFXbFhUQ3hqUVVGakxFTkJSVm9zUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRU5CVVVRc01rSkJRVFJDTEVGQlF6RkNMRmRCUVZrc1EwRkJRenRSUVVOWUxHTkJRV01zUlVGQlF5eERRVUZETEVkQlEycENPMGxCT1ZkVUxFRkJiVmhOTEU5QmJsaERMRU5CYVZkTUxHTkJRV01zUTBGblFsb3NSVUZCUlN4QlFVRkJMRmxCUVZrc1EwRkZXaXhEUVVGRExFTkJRVUVzUVVGQlFTeExRVUZETEVWQlFVOHNUMEZCVHl4QlFVRmtMRVZCUVdkQ08wMUJRMmhDTEUxQlFVMHNSVUZCUXl4RFFVRkRMRWRCUTFRN1JVRnlXRkFzUVVGNVdFVXNUMEY2V0Vzc1EwRjVXRXdzYVVKQlFXbENMRU5CUVVNN1NVRkRhRUlzVlVGQlZTeEZRVUZGTEhsRFFVRjVReXhIUVVOMFJEdEZRVE5ZU0N4QlFUWllSU3hQUVRkWVN5eERRVFpZVEN4alFVRmpMRU5CUVVNN1NVRkZZaXhQUVVGUExFVkJRVU1zUTBGQlF6dEpRVU5VTEdGQlFXRXNSVUZCUXl4TFFVRkxMRWRCVTNCQ08wbHJSM3B0UWtNc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0TmJFZG5UM1pETEVGQk5saEZMRTlCTjFoTExFTkJObGhNTEdOQlFXTXNRMEZCUXp0UlFVdFlMR0ZCUVdFc1JVRkJReXhEUVVGRExFZEJUMnhDTzBsQmVsbElMRUZCYjFsSkxFOUJjRmxITEVOQk5saE1MR05CUVdNc1EwRlBXaXhGUVVGRkxFRkJRMFlzV1VGQlpTeEZRWEpaYmtJc1FVRnZXVThzVDBGd1dVRXNRMEUyV0V3c1kwRkJZeXhEUVU5VUxFVkJRVVVzUVVGRFRDeFpRVUZsTEVWQmNsbHVRaXhCUVc5WlZTeFBRWEJaU0N4RFFUWllUQ3hqUVVGakxFTkJUMDRzUlVGQlJTeEJRVU5TTEZsQlFXVXNRMEZCUXp0TlFVTmFMRlZCUVZVc1JVRkJReXhEUVVGRExFZEJRMkk3UlVGMldWQXNRVUV5V1VVc1QwRXpXVXNzUTBFeVdVd3NNa0pCUVRKQ0xFTkJRVU03U1VGRk1VSXNUMEZCVHl4RlFVRkRMRXRCUVVzc1IwRTJRbVE3U1d0SE1XOUNReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUV5V1VVc1QwRXpXVXNzUTBFeVdVd3NNa0pCUVRKQ0xFTkJRVU03VVVGSmVFSXNZMEZCWXl4RlFVRkZMRU5CUVVNc1IwRXlRbkJDTzBsQk1XRklMRUZCYVZwSkxFOUJhbHBITEVOQk1sbE1MREpDUVVFeVFpeERRVTE2UWl4dFFrRkJiVUlzUTBGQlF6dE5RVU5zUWl4WFFVRlhMRVZCUVVNc1EwRkJRenROUVdGaUxGTkJRVk1zUlVGQlF5eEpRVUZKTzAxQlEyUXNUMEZCVHl4RlFVRkRMRWxCUVVrN1RVRkRXaXhoUVVGaExFVkJRVU1zU1VGQlNTeEhRVkZ1UWp0TmEwZDZiMEpFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3VVd4SFowOTJReXhCUVdsYVNTeFBRV3BhUnl4RFFUSlpUQ3d5UWtGQk1rSXNRMEZOZWtJc2JVSkJRVzFDTEVOQlFVTTdWVUZKYUVJc1UwRkJVeXhGUVVGRExFMUJRVTA3VlVGRGFFSXNTVUZCU1N4RlFVRkRMRkZCUVZFN1ZVRkZZaXhUUVVGVExFVkJRVVVzU1VGQlNTeEhRV2xDYkVJN1RVRjZZVXdzUVVFeVdrMHNUMEV6V2tNc1EwRXlXVXdzTWtKQlFUSkNMRU5CVFhwQ0xHMUNRVUZ0UWl4RFFWVnFRaXhMUVVGTExFTkJRVU03VVVGRFNpeExRVUZMTEVWQlFVTXNjMEpCUVhGQ0xFZEJSVFZDTzAxclJ6bHVRa2dzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRSYkVkblQzWkRMRUZCYVZwSkxFOUJhbHBITEVOQk1sbE1MREpDUVVFeVFpeERRVTE2UWl4dFFrRkJiVUlzUTBGQlF6dFZRV3RDYUVJc1lVRkJZU3hGUVVGRExFTkJRVU1zUjBGTmJFSTdUVUY2WVV3c1FVRnhZVTBzVDBGeVlVTXNRMEV5V1V3c01rSkJRVEpDTEVOQlRYcENMRzFDUVVGdFFpeERRVzlDYWtJc1MwRkJTeXhEUVVGRE8xRkJRMG9zU1VGQlNTeEZRVUZETEZGQlFWRTdVVUZEWWl4VFFVRlRMRVZCUVVNc1QwRkJUeXhIUVVOc1FqdEZRWGhoVUN4QlFUUmhSU3hQUVRWaFN5eERRVFJoVEN4cFEwRkJhVU1zUTBGQlF6dEpRVVZvUXl4aFFVRmhMRVZCUVVNc1NVRkJTU3hIUVhGQ2JrSTdTV3RIYm5GQ1F5eE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wMXNSMmRQZGtNc1FVRTBZVVVzVDBFMVlVc3NRMEUwWVV3c2FVTkJRV2xETEVOQlFVTTdVVUZKT1VJc1dVRkJXU3hGUVVGRExFbEJRVWs3VVVGRGFrSXNZVUZCWVN4RlFVRkZMRTFCUVUwc1IwRnJRbmhDTzBsQmJtTklMRUZCYldKSkxFOUJibUpITEVOQk5HRk1MR2xEUVVGcFF5eERRVTh2UWl4TlFVRk5MRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVVVGQlVTeEJRVUZpTEVWQlFXVTdUVUZEY0VJc1YwRkJWeXhGUVVGRExFbEJRVWtzUjBGRGFrSTdTVUZ5WWt3c1FVRnpZa2tzVDBGMFlrY3NRMEUwWVV3c2FVTkJRV2xETEVOQlZTOUNMRWxCUVVrc1EwRkJRenROUVVOSUxGRkJRVkVzUlVGQlJTeFJRVUZSTzAxQlEyeENPenM3T3pzN096czdVMEZUUnl4RlFVTktPMFZCYkdOTUxFRkJjV05GTEU5QmNtTkxMRU5CY1dOTUxHbENRVUZwUWl4RFFVRkRPMGxCVDJoQ0xFMUJRVTBzUlVGQlF5eFhRVUZYTEVkQlVXNUNPMGxCY0dSSUxFRkJjMk5OTEU5QmRHTkRMRU5CY1dOTUxHbENRVUZwUWl4SFFVTmlMRU5CUVVNc1EwRkJRenROUVVOR0xFMUJRVTBzUlVGQlF5eFhRVUZYTEVkQlNXNUNPMDFCTTJOTUxFRkJjMk5OTEU5QmRHTkRMRU5CY1dOTUxHbENRVUZwUWl4SFFVTmlMRU5CUVVNc1FVRkZSQ3hYUVVGWkxFTkJRVU03VVVGRFdDeFpRVUZaTEVWQlFVTXNRMEZCUXl4SFFVTm1PMGxyUnpGeFFrZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5iRWRuVDNaRExFRkJjV05GTEU5QmNtTkxMRU5CY1dOTUxHbENRVUZwUWl4RFFVRkRPMUZCVTJRc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUjBGTmJrSTdTVUZ3WkVnc1FVRm5aRWtzVDBGb1pFY3NRMEZ4WTB3c2FVSkJRV2xDTEVOQlYyWXNUVUZCVFN4RlFXaGtWaXhCUVdka1dTeFBRV2hrVEN4RFFYRmpUQ3hwUWtGQmFVSXNRMEZYVUN4UFFVRlBMRU5CUVVNN1RVRkRaQ3hUUVVGVExFVkJRVU1zU1VGQlNUdE5RVU5rTEVsQlFVa3NSVUZCUXl4UlFVRlJMRWRCUTJRN1JVRnVaRXdzUVVGelpFVXNUMEYwWkVzc1EwRnpaRXdzT0VKQlFUaENMRU5CUVVNN1NVRkROMElzWVVGQllTeEZRVUZETEVsQlFVa3NSMEZUYmtJN1NVRm9aVWdzUVVFeVpFa3NUMEV6WkVjc1EwRnpaRXdzT0VKQlFUaENMRU5CU3pWQ0xFVkJRVVVzUVVGRFJDeFpRVUZqTEVWQk5XUnVRaXhCUVRKa1R5eFBRVE5rUVN4RFFYTmtUQ3c0UWtGQk9FSXNRMEZMZWtJc1JVRkJSU3hCUVVOS0xGbEJRV01zUTBGQlF6dE5RVU5hTEZWQlFWVXNSVUZCUXl4RFFVRkRMRWRCUTJJN1JXdEhPWEpDU0N4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzBsc1IyZFBka01zUVVGclpVVXNUMEZzWlVzc1EwRnJaVXdzYjBKQlFXOUNMRU5CUVVNN1RVRkZha0lzWVVGQllTeEZRVUZGTEVsQlFVa3NSMEZSZEVJN1JXdEhOWE5DUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzBsc1IyZFBka01zUVVGelpVa3NUMEYwWlVjc1EwRnJaVXdzYjBKQlFXOUNMRU5CU1d4Q0xFdEJRVXNzUTBGQlF6dE5RVVZHTEU5QlFVOHNSVUZCUlN4TFFVRkxMRWRCUjJwQ08wVkJNMlZNTEVGQloyWk5MRTlCYUdaRExFRkJPR1ZNTEVsQlFVMHNRMEZCUVN4QlFVRkJMRzlDUVVGdlFpeEZRVU40UWl4dlFrRkJiMElzUTBGRGJFSXNTMEZCU3l4RFFVRkRPMGxCZW5SQ1ZpeFZRVUZWTEVWQlFVTXNkVUpCUVhWQ08wbEJRMnhETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNORUpCUVRSQ08wbEJRMnhFTEV0QlFVc3NSVUZCUXl3MFFrRkJORUk3U1VGRGJFTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRWQ3hoUVVGaExFVkJRVVVzUjBGQlJ6dEpRVU5zUWl4UFFVRlBMRVZCUVVNc1UwRkJVenRKUVhOMFFsZ3NVMEZCVXl4RlFVRkZMRkZCUVZFN1NVRkRia0lzVlVGQlZTeEZRVUZGTEUxQlFVMHNSMEZEYmtJN1NVRndabEFzUVVGblprMHNUMEZvWmtNc1FVRTRaVXdzU1VGQlRTeERRVUZCTEVGQlFVRXNiMEpCUVc5Q0xFVkJRM2hDTEc5Q1FVRnZRaXhEUVVOc1FpeExRVUZMTEVGQmJuUkNaaXhOUVVGaExFTkJRVU03VFVGRFRpeFBRVUZQTEVWQlFVVXNTVUZCU1R0TlFVTmlMR05CUVdNc1JVRkJSU3h6UWtGQmMwSTdUVUZEZEVNc2NVSkJRWEZDTEVWQlFVVXNjMEpCUVhOQ0xFZEJRemxETzBsQkswNUlMRUZCWjJaTkxFOUJhR1pETEVGQk9HVk1MRWxCUVUwc1EwRkJRU3hCUVVGQkxHOUNRVUZ2UWl4RlFVTjRRaXh2UWtGQmIwSXNRMEZEYkVJc1MwRkJTeXhCUVRkelFsb3NUVUZCV1N4RFFVRkRPMDFCUTA0c1ZVRkJWU3hGUVhaRFVpeFBRVUZQTzAxQmQwTlVMRXRCUVVzc1JVRkJSU3hMUVVGTE8wMUJRMW9zWTBGQll5eEZRVUZGTERaQ1FVRXdRenROUVVNeFJDeHhRa0ZCY1VJc1JVRkJSU3cyUWtGQk1FTXNSMEZKYkVVN1RVRnhUa3dzUVVGNFRrMHNUMEYzVGtNc1FVRTRaVXdzU1VGQlRTeERRVUZCTEVGQlFVRXNiMEpCUVc5Q0xFVkJRM2hDTEc5Q1FVRnZRaXhEUVVOc1FpeExRVUZMTEVGQk4zTkNXaXhOUVVGWkxFTkJTMHdzUjBGQlJ5eERRVUZETzFGQlEwWXNTVUZCU1N4RlFVRkZMRXRCUVVzc1IwRkRXanRGUVhOT1VDeEJRVzFuUWtVc1QwRnVaMEpMTEVOQmJXZENUQ3h0UWtGQmJVSXNRMEZCUXp0SlFVTnNRaXhsUVVGbExFVkJRVU1zVVVGQlVUdEpRVU40UWpzN1QwRkZSeXhGUVZWS08wbEJhbWhDU0N4QlFXMW5Ra1VzVDBGdVowSkxMRU5CYldkQ1RDeHRRa0ZCYlVJc1EwRkxha0lzUVVGQlFTeFhRVUZGTEVOQlFWa3NUVUZCVFN4QlFVRnNRaXhGUVVGdlFqdE5RVU53UWl4TlFVRk5MRVZCUVVVc1pVRkJaU3hIUVVONFFqdEpRVEZuUWt3c1FVRXlaMEpKTEU5Qk0yZENSeXhEUVcxblFrd3NiVUpCUVcxQ0xFTkJVV3BDTEUxQlFVMHNRMEZCUXp0TlFVTk1MRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJTV1k3VFd0SGFIWkNSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMUZzUjJkUGRrTXNRVUV5WjBKSkxFOUJNMmRDUnl4RFFXMW5Ra3dzYlVKQlFXMUNMRU5CVVdwQ0xFMUJRVTBzUTBGQlF6dFZRVWRJTEZOQlFWTXNSVUZCUXl4TFFVRkxMRWRCUld4Q08wVkJhR2hDVEN4QlFXMW9Ra1VzVDBGdWFFSkxMRU5CYldoQ1RDeHZRa0ZCYjBJc1EwRkJRenRKUVVWdVFpeGhRVUZoTEVWQlFVTXNTMEZCU3l4SFFUUkNjRUk3U1d0SGFuaENReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZ0YUVKRkxFOUJibWhDU3l4RFFXMW9Ra3dzYjBKQlFXOUNMRU5CUVVNN1VVRkpha0lzWVVGQllTeEZRVUZETEVOQlFVTXNSMEV3UW14Q08wbEJhbXBDU0N4QlFYbG9Ra2tzVDBGNmFFSkhMRU5CYldoQ1RDeHZRa0ZCYjBJc1EwRk5iRUlzUjBGQlJ5eERRVUZETzAxQlEwWXNTMEZCU3l4RlFVRkRMSE5DUVVGeFFpeEhRVU0xUWp0SlFUTm9Ra3dzUVVFNGFFSlJMRTlCT1doQ1JDeERRVzFvUWt3c2IwSkJRVzlDTEVOQlUyeENMRTlCUVU4c1IwRkRTQ3hQUVVGUExFTkJRMUFzUjBGQlJ5eERRVUZETzAxQlEwWXNVMEZCVXl4RlFVRkRMR2xDUVVGcFFqdE5RVU16UWl4WlFVRlpMRVZCUVVNc1RVRkJUU3hIUVVOd1FqdEpRV3BwUWxRc1FVRnJhVUpWTEU5QmJHbENTQ3hEUVcxb1Frd3NiMEpCUVc5Q0xFTkJVMnhDTEU5QlFVOHNSMEZEU0N4UFFVRlBMRWRCUzB3c2FVSkJRV2xDTEVOQlFVTTdUVUZEYkVJc1QwRkJUeXhGUVVGRExFbEJRVWtzUjBGRFlqdEpRWEJwUWxRc1FVRjNhVUpaTEU5QmVHbENUQ3hEUVcxb1Frd3NiMEpCUVc5Q0xFTkJVMnhDTEU5QlFVOHNRMEZWVEN4QlFVRkJMRWxCUVVVc1FVRkJRU3hKUVVORkxFOUJRVThzUjBGRFRDeHBRa0ZCYVVJc1EwRkJRenROUVVOc1FpeFBRVUZQTEVWQlFVTXNXVUZCV1N4SFFVTnlRanRKUVRGcFFsZ3NRVUV5YVVKWkxFOUJNMmxDVEN4RFFXMW9Ra3dzYjBKQlFXOUNMRU5CVTJ4Q0xFOUJRVThzUTBGVlRDeEJRVUZCTEVsQlFVVXNRVUZCUVN4SlFVTkZMRTlCUVU4c1IwRkpUQ3haUVVGWkxFTkJRVU03VFVGRFlpeFBRVUZQTEVWQlFVTXNTVUZCU1N4SFFVTmlPMFZCTjJsQ1dDeEJRVzFxUWtVc1QwRnVha0pMTEVOQmJXcENUQ3huUWtGQlowSXNRMEZCUXp0SlFVVm1MRTlCUVU4c1JVRkJSU3hMUVVGTE8wbEJRMlFzWVVGQllTeEZRVUZETEV0QlFVczdTVUZEYmtJc1ZVRkJWU3hGUVVGRExFdEJRVXNzUjBGblFtcENPMGxyUjNaNVFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5iRWRuVDNaRExFRkJiV3BDUlN4UFFXNXFRa3NzUTBGdGFrSk1MR2RDUVVGblFpeERRVUZETzFGQlRXSXNZVUZCWVN4RlFVRkRMRU5CUVVNc1IwRmpiRUk3U1VGMmEwSklMRUZCTW1wQ1NTeFBRVE5xUWtjc1EwRnRha0pNTEdkQ1FVRm5RaXhEUVZGa0xFOUJRVThzUTBGQlF6dE5RVU5PTEZOQlFWTXNSVUZCUlN4VlFVRlZMRWRCUTNSQ08wbEJOMnBDVEN4QlFTdHFRbEVzVDBFdmFrSkVMRU5CYldwQ1RDeG5Ra0ZCWjBJc1EwRlhaQ3hQUVVGUExFZEJRMGdzUjBGQlJ5eERRVUZETzAxQlEwb3NWMEZCVnl4RlFVRkRMRWxCUVVrc1IwRkRha0k3U1VGcWEwSlFMRUZCYld0Q1NTeFBRVzVyUWtjc1EwRnRha0pNTEdkQ1FVRm5RaXhEUVdkQ1pDeDNRa0ZCZDBJc1EwRkJRenROUVVOMlFpeFZRVUZWTEVWQlFVTXNTVUZCU1R0TlFVTm1MRTFCUVUwc1JVRkJReXhKUVVGSkxFZEJRMW83UlVGMGEwSk1MRUZCZVd0Q1JTeFBRWHByUWtzc1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVVGRE8wbEJRM1JDTEV0QlFVc3NSVUZCUXl4elFrRkJjVUlzUjBGblJEVkNPMGxCTVc1Q1NDeEJRVEpyUWtrc1QwRXphMEpITEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZGY2tJc1VVRkJVU3hEUVVGRE8wMUJRMUFzVFVGQlRTeEZRVUZETEVOQlFVTTdUVUZEVWl4UFFVRlBMRVZCUVVNc1RVRkJUU3hIUVVsbU8wMXJSMnA2UWtRc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0UmJFZG5UM1pETEVGQk1tdENTU3hQUVROclFrY3NRMEY1YTBKTUxIVkNRVUYxUWl4RFFVVnlRaXhSUVVGUkxFTkJRVU03VlVGSlRDeFBRVUZQTEVWQlFVTXNRMEZCUXl4SFFVVmFPMGxCYW14Q1RDeEJRWEZzUWtrc1QwRnliRUpITEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZaY2tJc2QwSkJRWGRDTEVOQlFVTTdUVUZEZGtJc1QwRkJUeXhGUVVGRExFbEJRVWs3VFVGRFdpeGxRVUZsTEVWQlFVVXNXVUZCV1N4SFFXdERPVUk3VFVGNmJrSk1MRUZCZVd4Q1VTeFBRWHBzUWtRc1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVZseVFpeDNRa0ZCZDBJc1IwRkpjRUlzUjBGQlJ5eERRVUZETzFGQlEwb3NUMEZCVHl4RlFVRkZMRWxCUVVrN1VVRkRZaXhYUVVGWExFVkJRVVVzVFVGQlRUdFJRVU51UWl4bFFVRmxMRVZCUVVVc1RVRkJUU3hIUVVONFFqdE5RVGRzUWxBc1FVRXJiRUpOTEU5QkwyeENReXhEUVhsclFrd3NkVUpCUVhWQ0xFTkJXWEpDTEhkQ1FVRjNRaXhEUVZWMFFpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFZEJMMnhDV2l4QlFTdHNRakpDTEU5QkwyeENjRUlzUTBGNWEwSk1MSFZDUVVGMVFpeERRVmx5UWl4M1FrRkJkMElzUTBGVlJDeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1ZVRkJWU3hCUVVGbUxFVkJRV2xDTzFGQlJURkRPenM3T3pzN1YwRk5SeXhGUVZWS08xRkJhbTVDVUN4QlFUSnRRbU1zVDBFemJVSlFMRU5CZVd0Q1RDeDFRa0ZCZFVJc1EwRlpja0lzZDBKQlFYZENMRU5CVlhSQ0xFdEJRVXNzUTBGQlFTeEJRVUZCTEVsQlFVTXNRMEZCU3l4UFFVRlBMRUZCUVZvc1EwRlRUQ3hSUVVGVkxFZEJSVXdzUzBGQlN5eERRVU5JTEVkQlFVY3NRMEZCUVN4QlFVRkJMRXRCUVVNc1JVRkJUeXhOUVVGTkxFRkJRV0lzUjBFemJVSnNRaXhCUVRKdFFtTXNUMEV6YlVKUUxFTkJlV3RDVEN4MVFrRkJkVUlzUTBGWmNrSXNkMEpCUVhkQ0xFTkJWVVFzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RFFVRkxMRlZCUVZVc1FVRkJaaXhEUVZNeFFpeFJRVUZWTEVkQlJVd3NTMEZCU3l4RFFVTklMRWRCUVVjc1EwRkJRU3hCUVVGQkxFdEJRVU1zUlVGQlR5eE5RVUZOTEVGQlFXSXNSVUZCWlR0VlFVTnFRaXhKUVVGSkxFVkJRVU1zYzBKQlFYTkNMRWRCUXpWQ08wMUJOMjFDWml4QlFXdHVRazBzVDBGc2JrSkRMRU5CZVd0Q1RDeDFRa0ZCZFVJc1EwRlpja0lzZDBKQlFYZENMRU5CTmtKMFFpeExRVUZMTEVOQlFVTTdVVUZGU2l4VFFVRlRMRVZCUVVNc1RVRkJUVHRSUVVOb1FpeFBRVUZQTEVWQlFVVXNTVUZCU1R0UlFVTmlMRmRCUVZjc1JVRkJSU3hOUVVGTk8xRkJRMjVDTEdWQlFXVXNSVUZCUlN4TlFVRk5MRWRCUTNoQ08wVkJlRzVDVUN4QlFUUnVRa1VzVDBFMWJrSkxMRU5CTkc1Q1RDeEhRVUZITEVOQlEwUXNRVUZCUVN4TFFVRkZMRVZCUVU4c1RVRkJUU3hCUVVGaUxFVkJRV1U3U1VGRFppeFJRVUZSTEVWQlFVTXNVVUZCVVR0SlFVTnFRaXhMUVVGTExFVkJRVU1zUjBGQlJ6dEpRVU5VTEUxQlFVMHNSVUZCUXl4SFFVRkhPMGxCUTFZc1NVRkJTU3hGUVVGRExGbEJRVmtzUjBGRGJFSTdSV3RIYkRKQ1JDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbHNSMmRQZGtNc1FVRnhiMEpGTEU5QmNtOUNTeXhEUVhGdlFrd3NNa0pCUVRKQ0xFTkJRVU03VFVGRmVFSXNUMEZCVHl4RlFVRkRMRWxCUVVrc1IwRkZaanRGYTBkNk1rSkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdTV3hIWjA5MlF5eEJRVEp2UWtVc1QwRXpiMEpMTEVOQk1tOUNUQ3d5UWtGQk1rSXNRMEZCUXp0TlFVVjRRaXhQUVVGUExFVkJRVU1zU1VGQlNTeEhRVVZtTzBWQkwyOUNTQ3hCUVdsd1FrVXNUMEZxY0VKTExFTkJhWEJDVEN4clFrRkJhMElzUTBGQlF6dEpRVU5xUWl4SlFVRkpMRVZCUVVNc1VVRkJVVHRKUVVOaUxFOUJRVThzUlVGQlF5eEpRVUZKTzBsQlExb3NUVUZCVFN4RlFVRkRMRTlCUVU4c1IwRkRaanRGUVhKd1FrZ3NRVUYxY0VKRkxFOUJkbkJDU3l4RFFYVndRa3dzZFVKQlFYVkNMRU5CUVVNN1NVRkRkRUlzUzBGQlN5eEZRVUZETEVsQlFVazdTVUZGVml4UFFVRlBMRVZCUVVNc1MwRkJTenRKUVVWaUxGbEJRVmtzUlVGQlJTeEhRVUZITzBsQlEycENMRmxCUVZrc1JVRkJSU3d5UWtGQmQwTTdTVUZEZEVRc1dVRkJXU3hGUVVGRkxFMUJRVTA3U1VGRGNFSXNZVUZCWVN4RlFVRkZMRWRCUVVjN1NVRkRiRUlzWjBKQlFXZENMRVZCUVVNc1YwRkJWenRKUVVNMVFpeFZRVUZWTEVWQlFVTXNNRVJCUVRCRU8wbEJSM0pGTEdWQlFXVXNSVUZCUlN4TlFVRk5PMGxCUTNaQ0xGZEJRVmNzUlVGQlJTeE5RVUZOTzBsQlJXNUNMRTlCUVU4c1JVRkJReXhKUVVGSkxFZEJkMEppTzBsclJ5ODFRa01zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VlFVRlZMRVZCUVVVc1MwRkJTenROYkVkblQzaERMRUZCZFhCQ1JTeFBRWFp3UWtzc1EwRjFjRUpNTEhWQ1FVRjFRaXhEUVVGRE8xRkJiMEp3UWl4UFFVRlBMRVZCUVVVc1NVRkJTU3hIUVc5Q2FFSTdTVUV2Y2tKSUxFRkJPSEZDU1N4UFFUbHhRa2NzUTBGMWNFSk1MSFZDUVVGMVFpeERRWFZDY2tJc1IwRkJSeXhEUVVGRE8wMUJRMFlzVTBGQlV5eEZRVUZETEVkQlFVYzdUVUZEWWl4SlFVRkpMRVZCUVVNc01rSkJRWGRETzAxQlF6ZERMRlZCUVZVc1JVRkJReXg1UTBGQmVVTTdUVUZEY0VRc1QwRkJUeXhGUVVGRExIRkRRVUZ4UXp0TlFVTTNReXhWUVVGVkxFVkJRVU1zU1VGQlNTeEhRVU5vUWp0SlFYQnlRa3dzUVVGMWNFSkZMRTlCZG5CQ1N5eERRWFZ3UWt3c2RVSkJRWFZDTEVGQkswSnlRaXc0UWtGQkswSXNRMEZCUXp0TlFVTTVRaXhuUWtGQlowSXNSVUZCUXl4UFFVRnhRanROUVVOMFF5eFpRVUZaTEVWQlFVVXNjMEpCUVhOQ08wMUJRM0JETEZWQlFWVXNSVUZCUXl3MFJFRkJORVFzUjBGTGVFVTdUVUU1Y2tKTUxFRkJNSEpDVFN4UFFURnlRa01zUTBGMWNFSk1MSFZDUVVGMVFpeEJRU3RDY2tJc09FSkJRU3RDTEVOQlNUZENMRWRCUVVjc1EwRkJRenRSUVVOR0xFbEJRVWtzUlVGQlF5eHpRa0ZCYzBJN1VVRkRNMElzVDBGQlR5eEZRVUZETEVOQlFVTXNSMEZEVmp0RlFUZHlRbEFzUVVGcGMwSkZMRTlCYW5OQ1N5eERRV2x6UWt3c1kwRkJZeXhEUVVGRE8wbEJSMklzVDBGQlR5eEZRVUZGTEUxQlFXRTdTVUZGZEVJc1QwRkJUeXhGUVVGRExFbEJRVWs3U1VGRFdpeGxRVUZsTEVWQlFVTXNUVUZCVFR0SlFVTjBRaXhYUVVGWExFVkJRVVVzVFVGQlRTeEhRV2xFY0VJN1NVRjZka0pJTEVGQk1ITkNTU3hQUVRGelFrY3NRMEZwYzBKTUxHTkJRV01zUTBGVFdpeHZRa0ZCYjBJc1EwRkJRenROUVVWdVFpeFZRVUZWTEVWQlFVTXNiVUpCUVdkQ08wMUJRek5DTEU5QlFVOHNSVUZCUXl4RFFVRkRMRWRCUTFZN1NVRTVjMEpNTEVGQlozUkNTU3hQUVdoMFFrY3NRMEZwYzBKTUxHTkJRV01zUTBGbFdpeHZRa0ZCYjBJc1EwRkJRenROUVVkdVFpeFRRVUZUTEVWQlFVTXNTVUZCU1R0TlFVVmtMRk5CUVZNc1JVRkJReXhKUVVGSk8wMUJRMlFzVlVGQlZTeEZRVUZETEVsQlFVazdUVUZEWml4UlFVRlJMRVZCUVVNc1VVRkJVVHROUVVOcVFpeFBRVUZQTEVWMVJ6a3JRa29zUzBGQlN5eEhka2QzWjBOVU8wMUJiSFpDVEN4QlFYbDBRazBzVDBGNmRFSkRMRU5CYVhOQ1RDeGpRVUZqTEVOQlpWb3NiMEpCUVc5Q0xFTkJVMnhDTEVWQlFVVXNRVUZEUml4WlFVRmxMRVZCTVhSQ2NrSXNRVUY1ZEVKVExFOUJlblJDUml4RFFXbHpRa3dzWTBGQll5eERRV1ZhTEc5Q1FVRnZRaXhEUVZObUxFVkJRVVVzUVVGRFRDeFpRVUZsTEVWQk1YUkNja0lzUVVGNWRFSlpMRTlCZW5SQ1RDeERRV2x6UWt3c1kwRkJZeXhEUVdWYUxHOUNRVUZ2UWl4RFFWTmFMRVZCUVVVc1FVRkRVaXhaUVVGbExFTkJRVU03VVVGRFdpeFZRVUZWTEVWQlFVTXNRMEZCUXl4SFFVTmlPMDFCTlhSQ1ZDeEJRVGgwUW1Nc1QwRTVkRUpRTEVOQmFYTkNUQ3hqUVVGakxFTkJaVm9zYjBKQlFXOUNMRU5CWTJ4Q0xFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZEV2l4UFFVRlBMRVZCUVVNc1MwRkJTenRSUVVOaUxHRkJRV0VzUlVGQlF5eExRVUZMTEVkQlNYQkNPMUZCY0hWQ1VDeEJRVGgwUW1Nc1QwRTVkRUpRTEVOQmFYTkNUQ3hqUVVGakxFTkJaVm9zYjBKQlFXOUNMRU5CWTJ4Q0xFOUJRVThzUTBGQlF5eExRVUZMTEVOQlIxZ3NRVUZCUVN4SFFVRkZMRU5CUVVrc01FSkJRVEJDTEVGQlFUbENMRVZCUVdkRE8xVkJRMmhETEdGQlFXRXNSVUZCUlN4RFFVRkRMRWRCUTJwQ08wMUJiblZDVkN4QlFYRjFRazBzVDBGeWRVSkRMRU5CYVhOQ1RDeGpRVUZqTEVOQlpWb3NiMEpCUVc5Q0xFTkJjVUpzUWl4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVFVGQlRTeEJRVUZZTEVWQlFXRTdVVUZEYWtJc1MwRkJTeXhGUVVGRExFbEJRVWs3VVVGRFZpeFRRVUZUTEVWQlFVTXNTMEZCU3l4SFFVTm9RanROUVhoMVFsQXNRVUY1ZFVKTkxFOUJlblZDUXl4RFFXbHpRa3dzWTBGQll5eERRV1ZhTEc5Q1FVRnZRaXhEUVhsQ2JFSXNiVUpCUVcxQ0xFTkJRVU03VVVGRGJFSXNWVUZCVlN4RlFVRkRMRXRCUVVzc1IwRlBha0k3VVVGcWRrSlFMRUZCTW5WQ1ZTeFBRVE4xUWtnc1EwRnBjMEpNTEdOQlFXTXNRMEZsV2l4dlFrRkJiMElzUTBGNVFteENMRzFDUVVGdFFpeEhRVVZtTEVOQlFVTXNRMEZCUXp0VlFVTkdMRWxCUVVrc1JVRkJReXhSUVVGUkxFZEJTV1E3U1VGb2RrSlVMRUZCYjNaQ1RTeFBRWEIyUWtNc1EwRnBjMEpNTEdOQlFXTXNRVUZyUkZvc1pVRkJaMElzUTBGRFpDeHZRa0ZCYjBJc1EwRkJRenROUVVOdVFpeFRRVUZUTEVWQlFVTXNhMEpCUVd0Q08wMUJRelZDTEZWQlFWVXNSVUZCUXl4clFrRkJhMElzUjBGRE9VSTdPMEZyUjNZNVFrZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZiRWN3SzBKMlF5eEJRVU5GTEZsQlJGVXNRMEZEVml4dFFrRkJiVUlzUTBGQlF6dEpRVVZvUWl4UFFVRlBMRVYxUjI1cFEwb3NTMEZCU3p0SmRrZHZhVU5TTEZGQlFWRXNSVUZCUlN4TlFVRk5PMGxCUTJoQ0xFbEJRVWtzUlVGQlJTeE5RVUZOTzBsQlExb3NTMEZCU3l4RlFVRkZMRTFCUVUwN1NVRkRZaXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVlZVTzBsQmFrSklMRUZCVVUwc1dVRlNUU3hEUVVOV0xHMUNRVUZ0UWl4RFFVOW1MRFpDUVVFMlFpeERRVUZETzAxQlJ6VkNPenM3VjBGSFJ5eEZRVU5LT3p0QlFXWlFMRUZCYTBKRkxGbEJiRUpWTEVOQmEwSldMRFpDUVVFMlFpeERRVUZETzBWQlJUVkNMRTlCUVU4c1JYVkhjR3BEUml4TFFVRkxPMFYyUjNGcVExWXNZVUZCWVN4RlFVRkZMRXRCUVVzc1IwRm5RbkpDTzBWclJ5OW5RME1zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRKYkVjd0swSjJReXhCUVd0Q1JTeFpRV3hDVlN4RFFXdENWaXcyUWtGQk5rSXNRMEZCUXp0TlFVc3hRaXhoUVVGaExFVkJRVVVzUTBGQlF5eEhRV051UWp0RlFYSkRTQ3hCUVhsQ1NTeFpRWHBDVVN4RFFXdENWaXcyUWtGQk5rSXNRMEZQTTBJc1RVRkJUU3hEUVVGRE8wbEJRMHdzVDBGQlR5eEZRVUZGTEUxQlFVMDdTVUZEWml4VlFVRlZMRVZCUVVVc1YwRkJWenRKUVVOMlFpeE5RVUZOTEVWQlFVVXNTVUZCU1R0SlFVTmFMRTlCUVU4c1JVRkJSU3hEUVVGRExFZEJUMWc3U1VGd1Ewd3NRVUY1UWtrc1dVRjZRbEVzUTBGclFsWXNOa0pCUVRaQ0xFTkJUek5DTEUxQlFVMHNRVUZMU2l4TlFVRlBMRVZCT1VKaUxFRkJlVUpKTEZsQmVrSlJMRU5CYTBKV0xEWkNRVUUyUWl4RFFVOHpRaXhOUVVGTkxFRkJTMHNzVFVGQlR5eERRVUZETzAxQlEyWXNWVUZCVlN4RlFVRkZMSE5DUVVGelFqdE5RVU5zUXl4TlFVRk5MRVZCUVVVc1pVRkJaVHROUVVWMlFpeFZRVUZWTEVWQlFVVXNaVUZCWlN4SFFVTTFRanM3UVVGdVExQXNRVUZ6UTJ0RExGbEJkRU4wUWl4RFFYTkRWaXcyUWtGQk5rSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1JVRkZhRU1zVDBGQlR5eEZRVUZGTEV0QlFVczdSVUZKWkN4WFFVRlhMRVZCUVVVc1NVRkJTVHRGUVVOcVFpeFpRVUZaTEVWQlFVVXNTVUZCU1N4SFFVTnVRanRGYTBkNGFFTkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdTV3hITUN0Q2RrTXNRVUZ6UTJ0RExGbEJkRU4wUWl4RFFYTkRWaXcyUWtGQk5rSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1RVRkpPVUlzVDBGQlR5eEZRVUZGTEZsQlFWa3NSMEZKZUVJN08wRkJPVU5JTEVGQkswTkZMRmxCTDBOVkxFTkJLME5XTEhGQ1FVRnhRaXhEUVVGRE8wVkJRM0JDTEdGQlFXRXNSVUZCUlN4SlFVRkpMRWRCVTNCQ08wVnJSMjVwUTBNc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0SmJFY3dLMEoyUXl4QlFTdERSU3haUVM5RFZTeERRU3REVml4eFFrRkJjVUlzUTBGQlF6dE5RVWRzUWl4aFFVRmhMRVZCUVVVc1EwRkJRenROUVVOb1FpeFRRVUZUTEVWQlFVVXNhVUpCUVdkQ08wMUJRek5DTEU5QlFVOHNSVUZCUlN4RFFVRkRMRWRCUzJJN1JVRjZSRWdzUVVGelJFa3NXVUYwUkZFc1EwRXJRMVlzY1VKQlFYRkNMRU5CVDI1Q0xGRkJRVkVzUTBGQlF6dEpRVU5RTEUxQlFVMHNSVUZCUlN4SlFVRkpMRWRCUTJJaUNuMD0gKi8iLG51bGwsbnVsbF19 */ \ No newline at end of file diff --git a/client/build/assets/css/eureka.0.0.129.min.css b/client/build/assets/css/eureka.0.0.129.min.css new file mode 100644 index 0000000..1034035 --- /dev/null +++ b/client/build/assets/css/eureka.0.0.129.min.css @@ -0,0 +1 @@ +.eureka{-webkit-box-sizing:border-box;box-sizing:border-box}.eureka *,.eureka ::after,.eureka ::before{-webkit-box-sizing:inherit;box-sizing:inherit}.eureka .eureka__media-source-selector select,.eureka.eureka__view-mode__grid img,.eureka.eureka__view-mode__thumb img{width:100%}.eureka .button,.eureka .eureka__layout-chooser .eureka__icon-radio-btns label,.eureka .eureka__upload-form label,.eureka button,.eureka select,.eureka th[aria-sort]{cursor:pointer}.eureka .eureka__modal,.eureka .eureka__modal .eureka__modal-scrim{position:absolute;top:0;left:0;right:0;bottom:0}.eureka .eureka__crop-modal input[type=radio]:checked+label,.eureka button[aria-pressed=true],.eureka input[aria-pressed=true]+label{-webkit-box-shadow:0 0 0 1px #e4e4e4,inset 0 .175em 0 #c5c5c5;-webkit-box-shadow:0 0 0 1px var(--border-shadow-color,#e4e4e4),inset 0 .175em 0 var(--border-shadow-color,#c5c5c5);box-shadow:0 0 0 1px #e4e4e4,inset 0 .175em 0 #c5c5c5;box-shadow:0 0 0 1px var(--border-shadow-color,#e4e4e4),inset 0 .175em 0 var(--border-shadow-color,#c5c5c5)}.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox],.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio],.eureka .eureka__layout-chooser legend,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka:not(.eureka__server-side) .eureka__upload-form input[type=file],.visually-hidden{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=checkbox] a,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=checkbox] button,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=checkbox] input,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=radio] a,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=radio] button,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=radio] input,.eureka .eureka__layout-chooser body:hover legend a,.eureka .eureka__layout-chooser body:hover legend button,.eureka .eureka__layout-chooser body:hover legend input,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) a,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) button,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) input,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) a,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) button,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) input,.eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type=file] a,.eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type=file] button,.eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type=file] input,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox] a,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox] button,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox] input,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio] a,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio] button,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio] input,body:hover .eureka .eureka__layout-chooser legend a,body:hover .eureka .eureka__layout-chooser legend button,body:hover .eureka .eureka__layout-chooser legend input,body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1) a,body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1) button,body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1) input,body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1) a,body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1) button,body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1) input,body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type=file] a,body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type=file] button,body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type=file] input,body:hover .visually-hidden a,body:hover .visually-hidden button,body:hover .visually-hidden input{display:none!important}[class*=eureka-wrapper],[class*=modal-section]{padding:0}@media screen and (min-width:641px){[class*=eureka-wrapper],[class*=modal-section]{display:-webkit-box;display:-ms-flexbox;display:flex;overflow-y:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.eureka-root:-webkit-full-screen{width:100vw;height:100vh;overflow-y:auto;background:#ececec;background:var(--bg-color,#ececec)}.eureka-root label[for*=fullscreen-toggle]{margin-left:8px;margin-left:.5rem}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row,.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden]{display:block!important}@media screen and (max-width:640px){.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr>td.eureka__td-media,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr>td.eureka__td-media{text-align:center}}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden]{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus-within>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus-within>td.eureka__context-row{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus-within>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus-within>td.eureka__context-row[hidden]{display:block!important}.eureka-root tbody:not(.empty)>tr:not(.empty){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.eureka-root tbody:not(.empty)>tr:not(.empty)>*{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}@supports (display:grid){.eureka-root tbody:not(.empty)>tr:not(.empty){display:grid}.eureka-root tbody:not(.empty)>tr:not(.empty)>td .eureka__td-media{grid-area:media}.eureka-root tbody:not(.empty)>tr:not(.empty)>td .eureka__td-filename{grid-area:name}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__context-row{grid-area:actions}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{grid-area:dimensions}@media screen and (max-width:640px){.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{display:none}}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{grid-area:file-size}@media screen and (max-width:640px){.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{display:none}}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{grid-area:edited-on}@media screen and (max-width:640px){.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{display:none}}}@supports (display:grid){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__choose{grid-area:choose}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__td-media{grid-area:media}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__td-filename{grid-area:name}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__context-row{grid-area:actions}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{grid-area:dimensions}@media screen and (max-width:640px){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{display:none}}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{grid-area:file-size}@media screen and (max-width:640px){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{display:none}}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{grid-area:edited-on}@media screen and (max-width:640px){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{display:none}}}@supports (display:grid){@media screen and (min-width:641px){.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list tbody:not(.empty)>tr:not(.empty),.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table tbody:not(.empty)>tr:not(.empty){grid-template-areas:"choose media name dimensions file-size edited-on" "actions actions actions actions actions actions";grid-template-columns:2rem auto 24% 12% 12% 12%}}}.eureka .eureka__choose-radio{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .eureka__choose-radio fieldset{margin:0;padding:0}.eureka .eureka__choose-radio .eureka__fieldset{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .eureka__choose-radio .eureka__fieldset>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>thead>tr{grid-template-columns:2rem 16% 40% 8% auto auto!important;grid-template-areas:"radio name media dimensions file-size edited-on"!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>thead>tr th:nth-of-type(3){text-align:left!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty){grid-template-columns:2rem 16% 40% 8% auto auto!important;grid-template-areas:"radio name media dimensions file-size edited-on"!important}@supports (display:grid){.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td.eureka__td-filename{text-align:left!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(4){grid-area:dimensions!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(5){grid-area:file-size!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(6){grid-area:edited-on!important}}.eureka-root{padding:8px;padding:.5rem}@media screen and (max-width:640px){.eureka-root .eureka table>thead{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}body:hover .eureka-root .eureka table>thead a,body:hover .eureka-root .eureka table>thead button,body:hover .eureka-root .eureka table>thead input{display:none!important}}@media screen and (max-width:640px){.eureka-root .eureka tbody>tr>td:not(.eureka__context-row){padding-right:.5rem}}.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>thead>tr{grid-template-areas:"choose choose choose choose choose choose" "media media media media media media" "name name name name name name" "actions actions actions actions actions actions"}@media screen and (min-width:641px){.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>thead>tr{grid-template-areas:"choose media name dimensions file-size edited-on";grid-template-columns:2rem auto 24% 12% 12% 12%}}.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table>thead>tr{grid-template-areas:"choose choose choose choose choose choose" "media media media media media media"}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>thead>tr{display:grid;grid-gap:0}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>thead>tr{grid-template-areas:"media name dimensions file-size edited-on";grid-template-columns:40% 24% 12% 12% 12%}}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr{grid-template-areas:"media media media media media" "name name name name name" "actions actions actions actions actions"}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr{grid-template-areas:"media name dimensions file-size edited-on" "actions actions actions actions actions"}}.eureka-root .eureka.eureka__view-mode__list table>tbody.empty>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody.empty>tr{display:block}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*=upload-form],.eureka-root .eureka.eureka__view-mode__table.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*=upload-form]{padding:.5em;margin-right:16px;margin-right:1rem}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr{grid-template-areas:"radio media name dimensions file-size edited-on";grid-template-columns:2rem 40% 24% auto auto auto}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1){grid-area:radio}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(2){grid-area:media;text-align:left}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(3){grid-area:name}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(5){grid-area:dimensions}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(6){grid-area:file-size}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(7){grid-area:edited-on}}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1){grid-area:none}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr td:first-child,.eureka-root .eureka.eureka__view-mode__list table>tbody>tr th:first-child,.eureka-root .eureka.eureka__view-mode__list table>thead>tr td:first-child,.eureka-root .eureka.eureka__view-mode__list table>thead>tr th:first-child{padding-left:8px;padding-left:.5rem}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr{grid-template-areas:"name name name name name" "actions actions actions actions actions";margin-bottom:8px;margin-bottom:.5rem}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr>td.eureka__choose{text-align:center}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list table>tbody>tr{grid-template-areas:"media name dimensions file-size edited-on" "actions actions actions actions actions"}}.eureka-root .eureka__table embed,.eureka-root .eureka__table img,.eureka-root .eureka__table object,.eureka-root .eureka__table video{-o-object-fit:contain;object-fit:contain}@media screen and (min-width:641px){.eureka-root{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.eureka-root .eureka{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1}.eureka-root .eureka>.eureka__browse-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%}.eureka-root .eureka>.eureka__browse-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%}.eureka-root .eureka>.eureka__browse-content>.eureka__pathbrowser{-webkit-box-flex:0;-ms-flex:0 0 14rem;flex:0 0 14rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0;margin-right:.5rem}.eureka-root .eureka>.eureka__browse-content>.eureka__pathbrowser[aria-hidden=true],.eureka-root .eureka>.eureka__browse-content>.eureka__pathbrowser[hidden]{display:none}.eureka-root .eureka>.eureka__browse-content>.eureka__stage{-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view{-ms-flex-preferred-size:auto;flex-basis:auto;-ms-flex-negative:1;flex-shrink:1;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view>header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;min-width:0;min-height:0;-ms-flex-wrap:nowrap;flex-wrap:nowrap;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:.5rem}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view>header>h2{margin-bottom:0;margin-right:auto}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view>header>h2 form{float:right}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:auto;-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:0 .5rem .5rem 0}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper>div{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:100%;height:100%;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper>div>table{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:100%;height:100%;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%}.eureka-root .eureka>.eureka__choose-bar{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-top:.5rem}}.eureka-root .eureka.eureka__view-mode__masonry>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper{padding-left:8px;padding-left:.5rem}@media screen and (max-width:640px){.eureka-root .eureka.eureka__view-mode__masonry>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper{padding-right:.5rem}}@media screen and (max-width:640px){.eureka-root .eureka>.eureka__choose-bar>*{margin-right:.5rem}.eureka-root .eureka>.eureka__choose-bar>:last-child{margin-right:0}}.eureka-root thead{-ms-flex-preferred-size:auto;flex-basis:auto;display:block;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.eureka-root thead.eureka__tbody-scrolling{padding-right:16px}.eureka-root thead[hidden]{display:none}.eureka-root thead>tr{display:block;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.eureka-root thead>tr>th{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.eureka-root thead>tr>th.eureka__choose{grid-area:choose}.eureka-root thead>tr>th.eureka__th-media{grid-area:media}.eureka-root thead>tr>th.eureka__th-filename{grid-area:name}.eureka-root thead>tr>th.eureka__th-actions{grid-area:none}.eureka-root thead>tr>th.eureka__th-dimensions{grid-area:dimensions}.eureka-root thead>tr>th.eureka__th-file-size{grid-area:file-size}.eureka-root thead>tr>th.eureka__th-edited-on{grid-area:edited-on}.eureka-root tbody.empty{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka-root tbody.empty>tr{text-align:center;display:block}.eureka-root tbody.empty>tr td{margin:0 auto;display:inline-block}.eureka-root tbody{-ms-flex-preferred-size:0;flex-basis:0;text-align:center;display:block;-ms-flex-wrap:no-wrap;flex-wrap:no-wrap;overflow-y:auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:1;flex-shrink:1;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-webkit-overflow-scrolling:touch}.eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__td-media,.eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__th-media{padding-left:16px;padding-left:1rem}@media screen and (min-width:641px){.eureka__media-directory-selector form{display:inline-block}.eureka__media-directory-selector>div{display:inline-block;margin-left:.5em}}.eureka__sort-select select{margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka__sort-select{margin-left:auto;margin-right:auto}.eureka__sort-select label{margin-right:.5rem}.eureka__sort-select select{margin-right:1rem;margin-bottom:0}}@media screen and (min-width:641px){.eureka__tree-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-bottom:.5rem}.eureka__tree-toggle>:first-child{margin-right:auto}.eureka__tree-toggle .eureka__upload-form{margin-right:auto}}@media screen and (min-width:641px) and (min-width:641px){.eureka__tree-toggle .eureka__upload-form form{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .eureka__tree-toggle .eureka__upload-form label[for*=upload-form]{padding-top:0;padding-bottom:0;line-height:2.2}}@media screen and (min-width:641px){.eureka__server-side .eureka__tree-toggle .eureka__upload-form{margin-right:0}}@media screen and (min-width:641px){.eureka.eureka__view-mode__table .eureka__table img{max-height:20vh}}.eureka.eureka__view-mode__table .eureka__table thead th:first-child{padding-left:8px;padding-left:.5rem}.eureka.eureka__view-mode__table .eureka__table thead th:last-child{padding-right:8px;padding-right:.5rem}.eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:first-child{padding-left:8px;padding-left:.5rem}.eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:last-child{padding-right:8px;padding-right:.5rem}.eureka.eureka__view-mode__table .eureka__table tr td,.eureka.eureka__view-mode__table .eureka__table tr th{text-align:center}@media screen and (min-width:641px){.eureka.eureka__view-mode__table .eureka__table tr td,.eureka.eureka__view-mode__table .eureka__table tr th{text-align:right}.eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media,.eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media{text-align:left}}.eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media,.eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media{text-align:left}.eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table img{max-height:20vh}.eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table tr:focus img{max-height:30vh}.eureka.eureka__view-mode__grid .eureka__table thead,.eureka.eureka__view-mode__masonry .eureka__table thead,.eureka.eureka__view-mode__thumb .eureka__table thead{display:none!important}.eureka.eureka__view-mode__grid .eureka__table td:not(.eureka__td-media):not(.eureka__choose),.eureka.eureka__view-mode__masonry .eureka__table td:not(.eureka__td-media):not(.eureka__choose),.eureka.eureka__view-mode__thumb .eureka__table td:not(.eureka__td-media):not(.eureka__choose){display:none}.eureka.eureka__view-mode__grid .eureka__table td[colspan],.eureka.eureka__view-mode__masonry .eureka__table td[colspan],.eureka.eureka__view-mode__thumb .eureka__table td[colspan]{display:block}.eureka.eureka__view-mode__grid .eureka__table tbody,.eureka.eureka__view-mode__masonry .eureka__table tbody,.eureka.eureka__view-mode__thumb .eureka__table tbody{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody,.eureka.eureka__view-mode__masonry .eureka__table tbody,.eureka.eureka__view-mode__thumb .eureka__table tbody{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}}.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex]{margin:0 8px 8px 0;margin:0 .5rem .5rem 0;-ms-flex-preferred-size:42vw;flex-basis:42vw;width:100%}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex]{display:inline-block}}.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex] td,.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] td,.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex] td{display:block}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex]{-ms-flex-preferred-size:16vw;flex-basis:16vw}}.eureka.eureka__view-mode__grid .eureka__table tbody .eureka__context-row,.eureka.eureka__view-mode__masonry .eureka__table tbody .eureka__context-row,.eureka.eureka__view-mode__thumb .eureka__table tbody .eureka__context-row{display:none}@media screen and (max-width:640px){.eureka.eureka__view-mode__thumb .eureka__table tbody{display:-webkit-box;display:-ms-flexbox;display:flex}}@media screen and (max-width:640px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]{margin-bottom:0}}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]{-ms-flex-preferred-size:25vw;flex-basis:25vw}}@media screen and (max-width:640px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex]>td:not(.eureka__context-row),.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]>td:not(.eureka__context-row){padding-right:0}}@media screen and (min-width:641px){.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]{max-width:20%;margin:0;padding:0 .25rem}}@media screen and (min-width:641px){.eureka .eureka__tree{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}}.eureka.eureka__view-mode__table .eureka__context-row{margin-top:8px;margin-top:.5rem}@media screen and (min-width:641px){.eureka .eureka__context-row{margin-top:0;width:100%;display:block;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10;width:100%}.eureka .eureka__context-row[hidden]{display:none!important}.eureka .eureka__context-row .eureka__context-buttons{width:100%}}.eureka .eureka__tree-bar{text-align:center}.eureka.eureka__view-mode__grid .eureka__td-media,.eureka.eureka__view-mode__masonry .eureka__td-media{margin:0 auto;display:inline-block}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead th:first-child{display:none}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead th:nth-of-type(2){text-align:left;padding-left:.5rem}}.eureka.eureka__view-mode__list .eureka__table thead th:last-child{padding-right:8px;padding-right:.5rem}.eureka.eureka__view-mode__list .eureka__table thead td,.eureka.eureka__view-mode__list .eureka__table thead th,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th{text-align:right}.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media{text-align:left}@supports (display:grid){.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media{display:block}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media{display:none}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-filename,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-filename,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-filename,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-filename{text-align:center;padding-top:.5rem;padding-bottom:.5rem}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table tbody{line-height:2}}.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media embed,.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media img,.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media video{max-width:10vh;max-height:10vh}.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu]{padding-top:0;padding-bottom:0}.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu]>td:nth-of-type(2){padding-left:8px;padding-left:.5rem}.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu]>td:last-child{padding-right:8px;padding-right:.5rem}@media screen and (max-width:640px){.eureka .eureka__crop-btn{display:none}}.eureka .flex-bar fieldset{margin:0;padding:0}.eureka .flex-bar fieldset label{margin-bottom:0}.eureka .eureka__invert-horz{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.eureka .eureka__td-media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (min-width:641px){.eureka .eureka__show-for-mobile-up p,.eureka .eureka__show-for-mobile-up textarea{max-height:3em;overflow-y:auto;display:block;width:100%}}.eureka .eureka__pathbar textarea{resize:none}.eureka label[for=eureka__crop_show-adv-controls]{position:absolute;top:.75em;right:1em}.eureka .eureka__crop-modal .icon-bar{margin-top:1em;font-size:16px;font-size:1rem}.eureka .eureka__crop-modal .icon-bar label[for=eureka__crop-drag-mode-move]{border-top-left-radius:3px;border-bottom-left-radius:3px}.eureka .eureka__crop-modal .icon-bar .button,.eureka .eureka__crop-modal .icon-bar button{border-radius:0}.eureka .eureka__crop-modal .icon-bar .button:first-child,.eureka .eureka__crop-modal .icon-bar button:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.eureka .eureka__crop-modal .icon-bar .button:last-child,.eureka .eureka__crop-modal .icon-bar button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.eureka .eureka__crop-modal .icon-bar.flex-bar>*{margin-right:0}.eureka .eureka__crop-modal .icon-bar button{font-size:16px;font-size:1rem}.eureka .eureka__crop-modal .wrappable.flex-bar{-ms-flex-pack:distribute;justify-content:space-around;margin-bottom:32px;margin-bottom:2rem}.eureka .eureka__crop-modal .wrappable.flex-bar>*{padding-left:16px;padding-left:1rem;padding-right:16px;padding-right:1rem}.eureka .eureka__crop-modal .wrappable.flex-bar summary{margin-bottom:8px;margin-bottom:.5rem}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box{margin-top:16px;margin-top:1rem}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label{margin-bottom:0}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label[for=eureka__crop-aspect-ratio]{line-height:2}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[type=number]{width:5em}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[id*=eureka__crop-scale]{width:4em}@media screen and (min-width:641px){.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box summary{display:-webkit-box;display:-ms-flexbox;display:flex}}@media screen and (min-width:641px){.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>details>div,.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>div{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>details>div>*,.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>div>*{margin-right:.5rem}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>details>div:last-child,.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>div:last-child{margin-right:0}}.eureka [hidden]{display:none!important}.eureka .eureka__crop-save-as-checkbox{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka .eureka__crop-as{padding-right:16px;padding-right:1rem}.eureka .eureka__crop-as input[type=text]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.eureka label[for=eureka__crop-save-as-name]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka label[for=eureka__crop-aspect-ratio-remember]{line-height:2}.eureka label[for=eureka__crop-rotate]+input[type=range]{min-width:14em}.eureka .eureka__choose-multile>label{display:block;height:100%}.dangerous{color:red;color:var(--dangerous,red)}input:not([type=checkbox]):not([type=radio]):focus{outline:1px solid #3697cd;outline:1px solid var(--active,#3697cd)}[role=listbox]:focus,tr.eureka__context-row:focus,tr[tabindex]:focus{outline:1px solid #3697cd;outline:1px solid var(--active,#3697cd)}summary:focus{outline:0;font-weight:700;color:#3697cd;color:var(--active,#3697cd)}.eureka .eureka__button-bar,.eureka .eureka__tree-bar,.flex-bar{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .wrappable.eureka__button-bar,.eureka .wrappable.eureka__tree-bar,.wrappable.flex-bar{-ms-flex-wrap:wrap;flex-wrap:wrap}.eureka .wrappable.eureka__button-bar>*,.eureka .wrappable.eureka__tree-bar>*,.wrappable.flex-bar>*{padding-left:16px;padding-left:1rem;padding-right:16px;padding-right:1rem}.balanced.flex-bar,.eureka .balanced.eureka__button-bar,.eureka .balanced.eureka__tree-bar{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eureka .eureka__button-bar>*,.eureka .eureka__tree-bar>*,.flex-bar>*{margin-right:8px;margin-right:.5rem}.eureka .eureka__button-bar>.growable,.eureka .eureka__tree-bar>.growable,.flex-bar>.growable{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.eureka .eureka__button-bar>:last-child,.eureka .eureka__tree-bar>:last-child,.flex-bar>:last-child{margin-right:0}[role=dialog] .flex-bar{margin-top:8px;margin-top:.5rem}.eureka .eureka__button-bar,.eureka .eureka__notice{text-align:center}a[role=presentation]{color:currentColor!important;text-decoration:none!important}@-webkit-keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.icon-circle-o-notch{-webkit-animation:spinner 1s linear infinite;animation:spinner 1s linear infinite}.eureka__table tr[tabindex].eureka__focused-media-item .eureka__td-filename{font-weight:700}.eureka__table tr[tabindex]:target .eureka__td-media>*{outline:3px solid #32ab9a}.eureka__table tr[tabindex]:target .eureka__td-filename{font-weight:700}.eureka .eureka__context-buttons,.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka [class^=alert],.eureka-root .eureka__notification-wrapper>*{border:1px solid #ddd;border:var(--border-width,1px) var(--border-style,solid) var(--panel-border-color,#ddd)}.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka .eureka__table td.comfortable,.eureka [class^=alert],.eureka-root .eureka__notification-wrapper>*{padding:16px;padding:1rem}@media screen and (min-width:641px){.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka .eureka__table td.comfortable,.eureka [class^=alert],.eureka-root .eureka__notification-wrapper>*{padding:.5rem}}.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka [class^=alert]{border-radius:.25rem;background:#fff;background:var(--light-bg,#fff)}.eureka-root .eureka__notification-wrapper>*{border-radius:.25rem;padding-left:1.5em;padding-right:1.5em;background:#d9edf7;background:var(--notification-background,#d9edf7);color:#1d6e95;color:var(--notification-color,#1d6e95);border:1px solid #309dd4;border:1px solid var(--notification-border-color,var(--notification-color,#309dd4))}.eureka-root .eureka__notification-wrapper>* a{color:currentColor}@media screen and (min-width:641px){.eureka-root .eureka__notification-wrapper>* br{display:none}}.eureka-root .eureka__notification-wrapper>* button{position:absolute;top:4px;top:.25rem;right:4px;right:.25rem;color:currentColor;-webkit-transition:color 240ms ease;transition:color 240ms ease;-webkit-box-shadow:none;box-shadow:none}.eureka-root .eureka__notification-wrapper>* button:focus,.eureka-root .eureka__notification-wrapper>* button:hover{color:#247fad!important;color:var(--notification-focus-color,#247fad)!important;border:none;-webkit-box-shadow:none;box-shadow:none}.eureka-root .eureka__notification-wrapper>* button:focus svg,.eureka-root .eureka__notification-wrapper>* button:hover svg{fill:currentColor!important}.eureka-root .eureka__notification-wrapper>.eureka__dangerous{--notification-background:#f7a2a2;--notification-color:#911912;--notification-border-color:#911912;--notification-focus-color:#911912}.eureka .eureka__notification-wrapper{-webkit-transition:top 240ms ease 90ms,opacity 240ms ease;transition:top 240ms ease 90ms,opacity 240ms ease;opacity:1;top:0;text-align:center}.eureka .eureka__notification-wrapper>*{position:relative}@media screen and (max-width:640px){.eureka .eureka__notification-wrapper{-webkit-transition:opacity 240ms ease;transition:opacity 240ms ease;left:0;right:0}}.eureka .eureka__notification-wrapper[aria-hidden=true]{opacity:0;top:-5em;display:block;-webkit-transition:opacity 340ms ease-out 90ms,top 420ms ease-out;transition:opacity 340ms ease-out 90ms,top 420ms ease-out}@media screen and (min-width:641px){.eureka .eureka__notification-wrapper{position:absolute;left:0;right:0;top:.25rem}}.eureka .eureka__notification-wrapper p{margin:0}.eureka .eureka__notification-wrapper .icon{-webkit-transform:translateY(.125em);transform:translateY(.125em)}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label{cursor:default;position:relative;padding-left:1.5em}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label .spinner{position:absolute;top:0;left:.275em;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label:hover{background:#fff;background:var(--button-bg,#fff);color:#555;color:var(--button-color,#555)}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label:hover svg{fill:currentColor}.eureka a{color:#3697cd;color:var(--link-color,#3697cd)}.eureka h1,.eureka h2,.eureka h3,.eureka h4,.eureka h5,.eureka h6{font-weight:400}.eureka h1,.eureka h2,.eureka h3,.eureka h4,.eureka h5,.eureka h6,.eureka thead{color:#555;color:var(--subtle,#555)}.eureka select{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em;padding-right:1.5em;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,");background-size:contain;background-repeat:no-repeat;background-scale:70% 70%;background-position:right .5em}@media screen and (max-width:640px){.eureka select{width:100%;margin-top:.5em}}.eureka select:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}@-moz-document url-prefix(){.eureka select{background-image:url(../img/select-arrow.svg)}}.eureka button[id^=eureka__tree-toggle__button]{margin-bottom:16px;margin-bottom:1rem;-webkit-box-shadow:0 0 0 1px #e4e4e4,0 .25em 0 #c5c5c5;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4),0 .25em 0 var(--border-color,#c5c5c5);box-shadow:0 0 0 1px #e4e4e4,0 .25em 0 #c5c5c5;box-shadow:0 0 0 1px var(--border-color,#e4e4e4),0 .25em 0 var(--border-color,#c5c5c5)}.eureka button[id^=eureka__tree-toggle__button]:focus{--button-color:#3697cd;--button-color:var(--active, #3697cd)}@media screen and (max-width:640px){.eureka button[id^=eureka__tree-toggle__button]{width:100%;min-height:1.75rem}}@media screen and (min-width:641px){.eureka button[id^=eureka__tree-toggle__button]{margin-bottom:0}}.eureka :disabled{cursor:not-allowed}.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:last-child{background-color:#32ab9a;background-image:-webkit-gradient(linear,left top,left bottom,from(#32ab9a),to(#00948e));background-image:linear-gradient(#32ab9a,#00948E);-webkit-box-shadow:none;box-shadow:none;color:#fff}.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:focus:last-child,.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:hover:last-child{--border-color:#007571;background-color:#2b9385;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b9385),to(#007571));background-image:linear-gradient(#2b9385,#007571);color:#fff;-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4)}.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:disabled:last-child{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.eureka a.button{text-decoration:none}.eureka .button,.eureka button{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em}.eureka .button:focus,.eureka button:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}.eureka .button:hover,.eureka button:hover{background:#3697cd;color:#fff;--border-color:#297aa7;--border-color:var(--active-darker, #297aa7);--border-shadow-color:#297aa7;--border-shadow-color:var(--active-darker, #297aa7)}.eureka .button:hover svg,.eureka button:hover svg{fill:#fff}.eureka .button.eureka__primary,.eureka button.eureka__primary{background-color:#32ab9a;background-image:-webkit-gradient(linear,left top,left bottom,from(#32ab9a),to(#00948e));background-image:linear-gradient(#32ab9a,#00948E);-webkit-box-shadow:none;box-shadow:none;color:#fff}.eureka .button.eureka__primary:focus,.eureka .button.eureka__primary:hover,.eureka button.eureka__primary:focus,.eureka button.eureka__primary:hover{--border-color:#007571;background-color:#2b9385;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b9385),to(#007571));background-image:linear-gradient(#2b9385,#007571);color:#fff;-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4)}.eureka .button.eureka__primary:disabled,.eureka button.eureka__primary:disabled{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.eureka .button.dangerous:active,.eureka .button.dangerous:focus,.eureka .button.dangerous:hover,.eureka .button.dangerous:target,.eureka button.dangerous:active,.eureka button.dangerous:focus,.eureka button.dangerous:hover,.eureka button.dangerous:target{--border-color:#b80000;--border-color:var(--border-color-dangerous, #b80000);background-color:red;color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,from(red),to(#c00));background-image:linear-gradient(red,#c00)}.eureka [aria-hidden=true] .button.eureka__primary,.eureka [aria-hidden=true] button.eureka__primary{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em}.eureka [aria-hidden=true] .button.eureka__primary:focus,.eureka [aria-hidden=true] button.eureka__primary:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}.eureka [aria-hidden=true] .button.eureka__primary:hover,.eureka [aria-hidden=true] button.eureka__primary:hover{background:#3697cd;color:#fff;--border-color:#297aa7;--border-color:var(--active-darker, #297aa7);--border-shadow-color:#297aa7;--border-shadow-color:var(--active-darker, #297aa7)}.eureka [aria-hidden=true] .button.eureka__primary:hover svg,.eureka [aria-hidden=true] button.eureka__primary:hover svg{fill:#fff}.eureka input[type=text]{padding-left:8px;padding-left:.5rem;padding-right:8px;padding-right:.5rem}.eureka input[type=text]{border-width:1px;border-width:var(--border-width,1px);border-style:solid;border-style:var(--border-style,solid);border-color:#e4e4e4;border-color:var(--border-color,#e4e4e4)}.eureka fieldset{border:none}@media screen and (max-width:640px){.eureka fieldset{border-width:1px;border-width:var(--border-width,1px);border-style:solid;border-style:var(--border-style,solid);border-color:#e4e4e4;border-color:var(--border-color,#e4e4e4);border-radius:.25rem;border-radius:var(--border-color,.25rem)}}.eureka .active{font-weight:700}.eureka details details{padding-left:.5em}.eureka menu{display:none}.eureka img{max-width:100%}.eureka .alert-info{background-color:#d9edf7;background-color:var(--light-bg,#d9edf7);border-color:#bce8f1;border-color:var(--border-color,#bce8f1);color:#31708f;color:var(--subtle,#31708f)}.eureka .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}@media screen and (max-width:640px){.eureka .eureka__button-bar>*{margin-right:0}}.eureka .eureka__tree{margin-bottom:16px;margin-bottom:1rem;line-height:1.6;line-height:var(--tree-line-height,1.6)}@media screen and (min-width:641px){.eureka .eureka__tree{margin-bottom:.5rem}}@media (pointer:coarse){.eureka .eureka__tree{font-size:1.4em;line-height:1.8;line-height:var(--tree-course-line-height,1.8)}}.eureka .eureka__context-buttons{-ms-flex-pack:distribute;justify-content:space-around;background:#f7f7f7;background:var(--button-bg,#f7f7f7);border-left:0;border-right:0;padding:8px 0;padding:.5rem 0}.eureka .eureka__context-buttons button,.eureka .eureka__context-buttons>a.button{font-size:11px;font-size:.6875rem}.eureka.eureka__view-mode__list .eureka__context-buttons{padding-top:5.6px;padding-top:.35rem;padding-bottom:5.6px;padding-bottom:.35rem}.eureka.eureka__view-mode__list .eureka__context-buttons button,.eureka.eureka__view-mode__list .eureka__context-buttons>a.button{font-size:9.6px;font-size:.6rem}.eureka .eureka__table{min-width:100%}.eureka .eureka__table tr[contextmenu]{padding-bottom:8px;padding-bottom:.5rem}@media screen and (min-width:641px){.eureka .eureka__table tr[contextmenu]{padding-top:.5rem}}.eureka .eureka__table tr[contextmenu].eureka__focused-media-item:last-child{padding-bottom:0}.eureka .eureka__table td.comfortable p[class^=alert]{margin:0}.eureka .eureka__td-media{background:0 0;background:var(--media-cell-background,transparent)}.eureka .eureka__stage{padding:0;margin-bottom:8px;margin-bottom:.5rem}@media screen and (min-width:641px){.eureka .eureka__stage{margin-bottom:0}}.eureka .eureka__stage h1:first-child,.eureka .eureka__stage h2:first-child,.eureka .eureka__stage h3:first-child{margin-top:0}.eureka .eureka__stage__filter-view{padding:8px;padding:.5rem}@media screen and (max-width:640px){.eureka .eureka__stage__filter-view{padding-bottom:0}}.eureka .eureka__stage__filter-view .eureka__search-bar{line-height:2;font-size:16px;font-size:1rem;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka .eureka__stage__filter-view .eureka__search-bar{font-size:.8rem;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:22em}}.eureka .eureka__stage__filter-view .eureka__search-bar label{color:#556c88;color:var(--subtle,#556c88)}@media screen and (min-width:641px){.eureka .eureka__stage__filter-view .eureka__search-bar{margin-bottom:0}}.eureka .eureka__stage__filter-view .eureka__search-bar input{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;font-size:inherit}.eureka .eureka__media-directory-selector{margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka .eureka__media-directory-selector{margin-right:auto;margin-bottom:.5rem}}.eureka .eureka__media-directory-selector button[type=submit]{margin-left:16px;margin-left:1rem}.eureka .eureka__media-directory-selector form{position:relative}.eureka .eureka__tree-bar{margin:8px 0 0 0;margin:.5rem 0 0 0}.eureka .eureka__tree-bar>*{margin:0 8px 0 0;margin:0 .5rem 0 0}.eureka .eureka__tree-bar>:last-child{margin-right:0}@media screen and (max-width:640px){.eureka .eureka__tree-bar{margin-top:1rem}}.eureka .eureka__tree-bar .button,.eureka .eureka__tree-bar button{font-size:16px;font-size:1rem;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.eureka .eureka__media-source-selector{margin-bottom:16px;margin-bottom:1rem}.eureka .eureka__media-source-selector h2:first-child,.eureka .eureka__media-source-selector h3:first-child{margin-top:0}@media screen and (max-width:640px){.eureka .eureka__upload-form{margin-bottom:1rem}}@media screen and (max-width:640px){.eureka .eureka__upload-form label{display:block}}.eureka:not(.eureka__server-side) .eureka__upload-form label{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em;font-size:11px;font-size:.6875rem;text-align:center}.eureka:not(.eureka__server-side) .eureka__upload-form label:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}.eureka:not(.eureka__server-side) .eureka__upload-form label:hover{background:#3697cd;color:#fff;--border-color:#297aa7;--border-color:var(--active-darker, #297aa7);--border-shadow-color:#297aa7;--border-shadow-color:var(--active-darker, #297aa7)}.eureka:not(.eureka__server-side) .eureka__upload-form label:hover svg{fill:#fff}.eureka .eureka__choose-bar{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.eureka .eureka__choose-bar[aria-hidden=true]{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.eureka .eureka__choose-bar button{font-size:16px;font-size:1rem}@media screen and (min-width:641px){.eureka .eureka__choose-bar button{font-size:.8rem}}.eureka .eureka__pathbrowser{margin-bottom:8px;margin-bottom:.5rem}@media screen and (min-width:641px){.eureka .eureka__pathbrowser{margin-bottom:0}}.eureka .eureka__pathbrowser nav{color:#556c88;color:var(--subtle,#556c88)}.eureka .eureka__pathbrowser details>summary svg{-webkit-transform:translateY(.2em);transform:translateY(.2em);margin-right:.25em}.eureka .eureka__pathbrowser details>summary>.icon-folder-open{display:none}.eureka .eureka__pathbrowser details[open]>summary>.icon-folder-open{display:inline-block}.eureka .eureka__pathbrowser details[open]>summary>.icon-folder{display:none}.eureka .eureka__pathbar{padding:8px;padding:.5rem;margin-bottom:8px;margin-bottom:.5rem;margin-top:8px;margin-top:.5rem}@media screen and (min-width:641px){.eureka .eureka__pathbar{margin-bottom:0}}.eureka .eureka__pathbar summary{word-wrap:break-word}.eureka .eureka__pathbar details>div{padding-top:16px;padding-top:1rem}.eureka .eureka__pathbar .eureka__context-buttons{background:0 0;border:none}.eureka .eureka__layout-chooser{color:#556c88;color:var(--subtle,#556c88)}.eureka .eureka__layout-chooser fieldset{margin:0;padding:.5em 0}@media screen and (min-width:641px){.eureka .eureka__layout-chooser fieldset{padding:0}}.eureka .eureka__layout-chooser .eureka__icon-radio-btns{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}.eureka .eureka__layout-chooser .eureka__icon-radio-btns>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox]:checked+label svg[class^=icon],.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio]:checked+label svg[class^=icon]{fill:#3697cd;fill:var(--active,#3697cd)}.eureka .eureka__layout-chooser .eureka__icon-radio-btns label{font-size:22.4px;font-size:1.4rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eureka svg[class^=icon]{position:relative;width:1em;height:1em;fill:currentColor}@media screen and (min-width:641px){.eureka .eureka__hide-for-mobile-up{display:none}}@media screen and (max-width:640px){.eureka .eureka__show-for-mobile-up{display:none}}.eureka .eureka__drop-area{-webkit-box-flex:2;-ms-flex:2 8 auto;flex:2 8 auto;display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer}.eureka .eureka__drop-area-zone{width:100%;padding:8px;padding:.5rem;border-width:2px;border-color:#ddd;border-color:var(--very-subtle,#ddd);border-style:dashed;border-radius:5px;background-color:transparent;-webkit-transition:border-color 240ms ease,background-color 320ms ease 120ms;transition:border-color 240ms ease,background-color 320ms ease 120ms;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none}@media screen and (min-height:360px){.eureka .eureka__drop-area-zone{display:-webkit-box;display:-ms-flexbox;display:flex}}.eureka .eureka__drop-area-zone svg{font-size:4em;fill:#ddd;fill:var(--very-subtle,#ddd);-webkit-transition:fill 240ms ease 160ms,opacity 240ms ease;transition:fill 240ms ease 160ms,opacity 240ms ease;opacity:.42;opacity:var(--very-subtle-icon-opacity,.42);max-height:100%}.eureka .eureka__drop-area-zone.eureka__drop-area-zone-active{background-color:#d9ecf6;border-color:#3697cd;border-color:var(--active,#3697cd);-webkit-transition:border-color 240ms ease 120ms,background-color 320ms ease 0;transition:border-color 240ms ease 120ms,background-color 320ms ease 0}.eureka .eureka__drop-area-zone.eureka__drop-area-zone-active svg{fill:#3697cd;fill:var(--active,#3697cd);opacity:1}.eureka .eureka__modal{z-index:100009;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka .eureka__modal .eureka__modal-scrim{background:rgba(8,8,8,.25);z-index:0}.eureka .eureka__modal .eureka__modal-panel{min-width:30vw;max-width:70vw;max-height:70vh;position:relative;z-index:99999}.eureka .eureka__modal .eureka__modal-panel h1:first-child,.eureka .eureka__modal .eureka__modal-panel h2:first-child,.eureka .eureka__modal .eureka__modal-panel h3:first-child{margin-top:0}.eureka .eureka__modal .eureka__modal-panel summary label{display:block;margin-bottom:8px;margin-bottom:.5rem}.eureka .eureka__modal .eureka__modal-panel summary label[for=eureka__crop-upload-file]{margin-bottom:0}.eureka .eureka__modal .eureka__modal-panel input[type=text]{width:100%;font-size:1.4em}.eureka .eureka__modal .eureka__modal-panel .eureka__button-bar{margin-top:8px;margin-top:.5rem}.eureka .eureka__modal .eureka__modal-panel .eureka__button-bar>*{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.eureka .eureka__modal.eureka__greedy .eureka__modal-panel{max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}@media screen and (max-width:640px){.eureka-root .eureka__sticky-bar{z-index:99999;position:-webkit-sticky;position:sticky;left:.5rem;right:.5rem;top:0}}.eureka-root .eureka__notification-wrapper{z-index:99999;margin-bottom:8px;margin-bottom:.5rem}@media screen and (min-width:641px){.eureka-root .eureka__notification-wrapper{margin-bottom:0}}.eureka-root .eureka__notification-wrapper button{display:inline;background:0 0;border:none;padding:0}.eureka-root .eureka__notification-wrapper button:focus,.eureka-root .eureka__notification-wrapper button:hover{background:0 0!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.eureka-root .eureka__notification-wrapper>*{display:block;margin-left:auto;margin-right:auto}@media screen and (min-width:641px){.eureka-root .eureka__notification-wrapper>*{display:inline-block}}.eureka-root .eureka__choose-radio{margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka-root .eureka__choose-radio{margin-bottom:0;-webkit-transform:translateY(.3em);transform:translateY(.3em);z-index:0}}.eureka-root .eureka__choose-radio fieldset{border:none} \ No newline at end of file diff --git a/client/build/assets/css/main.css b/client/build/assets/css/main.css new file mode 100644 index 0000000..10114f3 --- /dev/null +++ b/client/build/assets/css/main.css @@ -0,0 +1,1843 @@ +.eureka { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.eureka *, .eureka *::after, .eureka *::before { + -webkit-box-sizing: inherit; + box-sizing: inherit; } + +.eureka.eureka__view-mode__thumb img, .eureka.eureka__view-mode__grid img, .eureka .eureka__media-source-selector select { + width: 100%; } + +.eureka th[aria-sort], .eureka select, .eureka button, .eureka .button, .eureka .eureka__upload-form label, .eureka .eureka__layout-chooser .eureka__icon-radio-btns label { + cursor: pointer; } + +.eureka .eureka__modal, .eureka .eureka__modal .eureka__modal-scrim { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; } + +/* +http://www.phase2technology.com/blog/exploring-maps-in-sass-3-3/ +*/ +.eureka input[aria-pressed="true"] + label, .eureka .eureka__crop-modal input[type="radio"]:checked + label, .eureka button[aria-pressed="true"] { + -webkit-box-shadow: 0 0 0 1px #E4E4E4, inset 0 0.175em 0 #c5c5c5; + -webkit-box-shadow: 0 0 0 1px var(--border-shadow-color, #E4E4E4), inset 0 0.175em 0 var(--border-shadow-color, #c5c5c5); + box-shadow: 0 0 0 1px #E4E4E4, inset 0 0.175em 0 #c5c5c5; + box-shadow: 0 0 0 1px var(--border-shadow-color, #E4E4E4), inset 0 0.175em 0 var(--border-shadow-color, #c5c5c5); } + +.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1), .visually-hidden, .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"], .eureka .eureka__layout-chooser legend, .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"], .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] { + /*https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html*/ + position: absolute !important; + clip: rect(1px 1px 1px 1px); + /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + padding: 0 !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; } + body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1) a, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) a, body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) a, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) a, body:hover .visually-hidden a, body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"] a, .eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type="file"] a, body:hover .eureka .eureka__layout-chooser legend a, .eureka .eureka__layout-chooser body:hover legend a, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"] a, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="radio"] a, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] a, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="checkbox"] a, body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1) input, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) input, body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) input, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) input, body:hover .visually-hidden input, body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"] input, .eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type="file"] input, body:hover .eureka .eureka__layout-chooser legend input, .eureka .eureka__layout-chooser body:hover legend input, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"] input, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="radio"] input, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] input, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="checkbox"] input, body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1) button, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) button, body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) button, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table > thead > tr > th:nth-of-type(1) button, body:hover .visually-hidden button, body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type="file"] button, .eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type="file"] button, body:hover .eureka .eureka__layout-chooser legend button, .eureka .eureka__layout-chooser body:hover legend button, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"] button, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="radio"] button, body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] button, .eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type="checkbox"] button { + display: none !important; } + +[class*="modal-section"], [class*="eureka-wrapper"] { + padding: 0; } + @media screen and (min-width: 641px) { + [class*="modal-section"], [class*="eureka-wrapper"] { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + overflow-y: hidden; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } } + +.eureka-root { + /*.eureka { + tbody { + &:not(.empty) { + > tr:not(.empty) { + @supports (display:grid) { + grid-template-areas:"media name dimensions file-size edited-on" "actions actions actions actions actions"; + grid-template-columns: auto 24% 12% 12% 12%; + } + } + } + } + }*/ } + .eureka-root:-webkit-full-screen { + width: 100vw; + height: 100vh; + overflow-y: auto; + background: #ececec; + background: var(--bg-color, #ececec); } + .eureka-root label[for*="fullscreen-toggle"] { + margin-left: 8px; + margin-left: .5rem; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row, .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr.eureka__focused-media-item > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden] { + display: block !important; } + @media screen and (max-width: 640px) { + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr > td.eureka__td-media, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr > td.eureka__td-media { + text-align: center; } } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus > td.eureka__context-row[hidden] { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus-within > td.eureka__context-row, .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus-within > td.eureka__context-row { + display: block !important; } + .eureka-root .eureka__view-mode__table tbody:not(.empty) > tr:focus-within > td.eureka__context-row[hidden], .eureka-root .eureka__view-mode__list tbody:not(.empty) > tr:focus-within > td.eureka__context-row[hidden] { + display: block !important; } + .eureka-root tbody:not(.empty) > tr:not(.empty) { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + /*@supports (display: flex) and ( not (display:grid) ) { + }*/ } + .eureka-root tbody:not(.empty) > tr:not(.empty) > * { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + @supports (display: grid) { + .eureka-root tbody:not(.empty) > tr:not(.empty) { + display: grid; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td .eureka__td-media { + grid-area: media; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td .eureka__td-filename { + grid-area: name; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__context-row { + grid-area: actions; } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + grid-area: dimensions; } + @media screen and (max-width: 640px) { + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + display: none; } } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + grid-area: file-size; } + @media screen and (max-width: 640px) { + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + display: none; } } + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + grid-area: edited-on; } + @media screen and (max-width: 640px) { + .eureka-root tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + display: none; } } } + @supports (display: grid) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__choose { + grid-area: choose; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__td-media { + grid-area: media; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__td-filename { + grid-area: name; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__context-row { + grid-area: actions; } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + grid-area: dimensions; } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__dimensions { + display: none; } } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + grid-area: file-size; } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__file-size { + display: none; } } + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + grid-area: edited-on; } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody:not(.empty) > tr:not(.empty) > td.eureka__edited-on { + display: none; } } } + @supports (display: grid) { + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table tbody:not(.empty) > tr:not(.empty), .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list tbody:not(.empty) > tr:not(.empty) { + grid-template-areas: "choose media name dimensions file-size edited-on" "actions actions actions actions actions actions"; + grid-template-columns: 2rem auto 24% 12% 12% 12%; } } } + +.eureka .eureka__choose-radio { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .eureka__choose-radio fieldset { + margin: 0; + padding: 0; } + .eureka .eureka__choose-radio .eureka__fieldset { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .eureka__choose-radio .eureka__fieldset > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; } + +.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > thead > tr { + grid-template-columns: 2rem 16% 40% 8% auto auto !important; + grid-template-areas: "radio name media dimensions file-size edited-on" !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > thead > tr th:nth-of-type(3) { + text-align: left !important; } + +.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) { + grid-template-columns: 2rem 16% 40% 8% auto auto !important; + grid-template-areas: "radio name media dimensions file-size edited-on" !important; } + @supports (display: grid) { + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td { + /*&:nth-of-type(1) { + grid-area:media; + } + &:nth-of-type(2) { + grid-area:name; + } + &:nth-of-type(3) { + grid-area:actions; + }*/ } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td.eureka__td-filename { + text-align: left !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(4) { + grid-area: dimensions !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(5) { + grid-area: file-size !important; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(6) { + grid-area: edited-on !important; } } + +.eureka-root { + padding: 8px; + padding: .5rem; } + @media screen and (max-width: 640px) { + .eureka-root .eureka table > thead { + position: absolute !important; + clip: rect(1px 1px 1px 1px); + /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + padding: 0 !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; } + body:hover .eureka-root .eureka table > thead a, body:hover .eureka-root .eureka table > thead input, body:hover .eureka-root .eureka table > thead button { + display: none !important; } } + @media screen and (max-width: 640px) { + .eureka-root .eureka tbody > tr > td:not(.eureka__context-row) { + padding-right: .5rem; } } + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "choose choose choose choose choose choose" "media media media media media media" "name name name name name name" "actions actions actions actions actions actions"; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "choose media name dimensions file-size edited-on"; + grid-template-columns: 2rem auto 24% 12% 12% 12%; } } + .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table > tbody > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table > thead > tr, .eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table > tbody > tr { + grid-template-areas: "choose choose choose choose choose choose" "media media media media media media"; } + .eureka-root .eureka.eureka__view-mode__table table, .eureka-root .eureka.eureka__view-mode__list table { + /*> thead > tr { + grid-template-areas:"media name dimensions file-size edited-on"; + }*/ } + .eureka-root .eureka.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + display: grid; + grid-gap: 0; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__table table > thead > tr, .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > thead > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media name dimensions file-size edited-on"; + grid-template-columns: 40% 24% 12% 12% 12%; } } + .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media media media media media" "name name name name name" "actions actions actions actions actions"; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__table table > tbody > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media name dimensions file-size edited-on" "actions actions actions actions actions"; } } + .eureka-root .eureka.eureka__view-mode__table table > tbody.empty > tr, .eureka-root .eureka.eureka__view-mode__list table > tbody.empty > tr { + display: block; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*="upload-form"], .eureka-root .eureka.eureka__view-mode__list.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*="upload-form"] { + padding: 0.5em; + margin-right: 16px; + margin-right: 1rem; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr, .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr, .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) { + grid-template-areas: "radio media name dimensions file-size edited-on"; + grid-template-columns: 2rem 40% 24% auto auto auto; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(1) { + grid-area: radio; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(2), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(2) { + grid-area: media; + text-align: left; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(3), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(3) { + grid-area: name; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(5), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(5) { + grid-area: dimensions; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(6), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(6) { + grid-area: file-size; } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > td:nth-of-type(7), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > tbody:not(.empty) > tr:not(.empty) > th:nth-of-type(7) { + grid-area: edited-on; } } + .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table > thead > tr > th:nth-of-type(1), .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table > thead > tr > th:nth-of-type(1) { + grid-area: none; } + .eureka-root .eureka.eureka__view-mode__list table > thead > tr td:first-child, .eureka-root .eureka.eureka__view-mode__list table > thead > tr th:first-child, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr td:first-child, .eureka-root .eureka.eureka__view-mode__list table > tbody > tr th:first-child { + padding-left: 8px; + padding-left: .5rem; } + .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "name name name name name" "actions actions actions actions actions"; + margin-bottom: 8px; + margin-bottom: .5rem; } + .eureka-root .eureka.eureka__view-mode__list table > tbody > tr > td.eureka__choose { + text-align: center; } + @media screen and (min-width: 641px) { + .eureka-root .eureka.eureka__view-mode__list table > tbody > tr { + grid-template-areas: "media name dimensions file-size edited-on" "actions actions actions actions actions"; } } + +.eureka-root .eureka__table img, .eureka-root .eureka__table embed, .eureka-root .eureka__table object, .eureka-root .eureka__table video { + -o-object-fit: contain; + object-fit: contain; } + +@media screen and (min-width: 641px) { + .eureka-root { + /*display:grid; + grid-gap:0; + grid-template-columns:20vw auto; + grid-template-areas:"header header" "sidebar content" "footer footer";*/ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } + .eureka-root .eureka { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; } + .eureka-root .eureka > .eureka__browse-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 1 100%; + flex: 1 1 100%; } + .eureka-root .eureka.eureka__view-mode__table { + /*@supports (display: grid) { + }*/ } + .eureka-root .eureka > .eureka__browse-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1 1 100%; + flex: 1 1 100%; } + .eureka-root .eureka > .eureka__browse-content > .eureka__pathbrowser { + -webkit-box-flex: 0; + -ms-flex: 0 0 14rem; + flex: 0 0 14rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-negative: 0; + flex-shrink: 0; + -ms-flex-positive: 0; + flex-grow: 0; + margin-right: .5rem; } + .eureka-root .eureka > .eureka__browse-content > .eureka__pathbrowser[hidden], .eureka-root .eureka > .eureka__browse-content > .eureka__pathbrowser[aria-hidden="true"] { + display: none; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage { + -webkit-box-flex: 1; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view { + -ms-flex-preferred-size: auto; + flex-basis: auto; + -ms-flex-negative: 1; + flex-shrink: 1; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view > header { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + min-width: 0; + min-height: 0; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: .5rem; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view > header > h2 { + margin-bottom: 0; + margin-right: auto; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__stage__filter-view > header > h2 form { + float: right; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + height: auto; + -ms-flex-negative: 0; + flex-shrink: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding: 0 .5rem .5rem 0; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper > div { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-height: 100%; + height: 100%; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-negative: 1; + flex-shrink: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-width: 100%; } + .eureka-root .eureka > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper > div > table { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-height: 100%; + height: 100%; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-negative: 1; + flex-shrink: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-width: 100%; } + .eureka-root .eureka > .eureka__choose-bar { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + margin-top: .5rem; } } + +.eureka-root .eureka.eureka__view-mode__masonry > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper { + padding-left: 8px; + padding-left: .5rem; } + @media screen and (max-width: 640px) { + .eureka-root .eureka.eureka__view-mode__masonry > .eureka__browse-content > .eureka__stage > .eureka__table-wrapper { + padding-right: .5rem; } } + +@media screen and (max-width: 640px) { + .eureka-root .eureka > .eureka__choose-bar > * { + margin-right: .5rem; } + .eureka-root .eureka > .eureka__choose-bar > *:last-child { + margin-right: 0; } } + +.eureka-root thead { + -ms-flex-preferred-size: auto; + flex-basis: auto; + display: block; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; } + .eureka-root thead.eureka__tbody-scrolling { + padding-right: 16px; } + .eureka-root thead[hidden] { + display: none; } + .eureka-root thead > tr { + display: block; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + /*@supports (display: flex) and ( not (display: grid) ) { + }*/ } + .eureka-root thead > tr > th { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .eureka-root thead > tr > th.eureka__choose { + grid-area: choose; } + .eureka-root thead > tr > th.eureka__th-media { + grid-area: media; } + .eureka-root thead > tr > th.eureka__th-filename { + grid-area: name; } + .eureka-root thead > tr > th.eureka__th-actions { + grid-area: none; } + .eureka-root thead > tr > th.eureka__th-dimensions { + grid-area: dimensions; } + .eureka-root thead > tr > th.eureka__th-file-size { + grid-area: file-size; } + .eureka-root thead > tr > th.eureka__th-edited-on { + grid-area: edited-on; } + +.eureka-root tbody.empty { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .eureka-root tbody.empty > tr { + text-align: center; + display: block; } + .eureka-root tbody.empty > tr td { + margin: 0 auto; + display: inline-block; } + +.eureka-root tbody { + -ms-flex-preferred-size: 0; + flex-basis: 0; + text-align: center; + display: block; + -ms-flex-wrap: no-wrap; + flex-wrap: no-wrap; + overflow-y: auto; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -ms-flex-negative: 1; + flex-shrink: 1; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + -webkit-overflow-scrolling: touch; } + +.eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__th-media, .eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__td-media { + padding-left: 16px; + padding-left: 1rem; } + +@media screen and (min-width: 641px) { + .eureka__media-directory-selector form { + display: inline-block; } + .eureka__media-directory-selector > div { + display: inline-block; + margin-left: .5em; } } + +.eureka__sort-select select { + margin-bottom: 16px; + margin-bottom: 1rem; } + +@media screen and (min-width: 641px) { + .eureka__sort-select { + margin-left: auto; + margin-right: auto; } + .eureka__sort-select label { + margin-right: .5rem; } + .eureka__sort-select select { + margin-right: 1rem; + margin-bottom: 0; } } + +@media screen and (min-width: 641px) { + .eureka__tree-toggle { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-bottom: .5rem; } + .eureka__tree-toggle > *:first-child { + margin-right: auto; } + .eureka__tree-toggle .eureka__upload-form { + margin-right: auto; } } + @media screen and (min-width: 641px) and (min-width: 641px) { + .eureka__tree-toggle .eureka__upload-form form { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .eureka__tree-toggle .eureka__upload-form label[for*="upload-form"] { + padding-top: 0; + padding-bottom: 0; + line-height: 2.2; } } + +@media screen and (min-width: 641px) { + .eureka__server-side .eureka__tree-toggle .eureka__upload-form { + margin-right: 0; } } + +.eureka.eureka__view-mode__table { + /*@include media($gtMobile) { + }*/ } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__table .eureka__table img { + max-height: 20vh; } } + .eureka.eureka__view-mode__table .eureka__table thead th:first-child { + padding-left: 8px; + padding-left: .5rem; } + .eureka.eureka__view-mode__table .eureka__table thead th:last-child { + padding-right: 8px; + padding-right: .5rem; } + .eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:first-child { + padding-left: 8px; + padding-left: .5rem; } + .eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:last-child { + padding-right: 8px; + padding-right: .5rem; } + .eureka.eureka__view-mode__table .eureka__table tr td, .eureka.eureka__view-mode__table .eureka__table tr th { + text-align: center; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__table .eureka__table tr td, .eureka.eureka__view-mode__table .eureka__table tr th { + text-align: right; } + .eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media, .eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media { + text-align: left; } } + .eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media, .eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media { + text-align: left; } + .eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table img { + max-height: 20vh; } + .eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table tr:focus img { + max-height: 30vh; } + +.eureka.eureka__view-mode__thumb .eureka__table thead, .eureka.eureka__view-mode__grid .eureka__table thead, .eureka.eureka__view-mode__masonry .eureka__table thead { + display: none !important; } + +.eureka.eureka__view-mode__thumb .eureka__table td:not(.eureka__td-media):not(.eureka__choose), .eureka.eureka__view-mode__grid .eureka__table td:not(.eureka__td-media):not(.eureka__choose), .eureka.eureka__view-mode__masonry .eureka__table td:not(.eureka__td-media):not(.eureka__choose) { + display: none; } + +.eureka.eureka__view-mode__thumb .eureka__table td[colspan], .eureka.eureka__view-mode__grid .eureka__table td[colspan], .eureka.eureka__view-mode__masonry .eureka__table td[colspan] { + display: block; } + +.eureka.eureka__view-mode__thumb .eureka__table tbody, .eureka.eureka__view-mode__grid .eureka__table tbody, .eureka.eureka__view-mode__masonry .eureka__table tbody { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody, .eureka.eureka__view-mode__grid .eureka__table tbody, .eureka.eureka__view-mode__masonry .eureka__table tbody { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } } + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + margin: 0 8px 8px 0; + margin: 0 .5rem .5rem 0; + -ms-flex-preferred-size: 42vw; + flex-basis: 42vw; + width: 100%; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + display: inline-block; } } + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex] td, .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex] td, .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] td { + display: block; } + @media screen and (min-width: 641px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + -ms-flex-preferred-size: 16vw; + flex-basis: 16vw; } } + .eureka.eureka__view-mode__thumb .eureka__table tbody .eureka__context-row, .eureka.eureka__view-mode__grid .eureka__table tbody .eureka__context-row, .eureka.eureka__view-mode__masonry .eureka__table tbody .eureka__context-row { + display: none; } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__thumb .eureka__table tbody { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + margin-bottom: 0; } } + +@media screen and (min-width: 641px) { + .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex], .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + -ms-flex-preferred-size: 25vw; + flex-basis: 25vw; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex] > td:not(.eureka__context-row), .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] > td:not(.eureka__context-row) { + padding-right: 0; } } + +@media screen and (min-width: 641px) { + .eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] { + max-width: 20%; + margin: 0; + padding: 0 .25rem; } } + +@media screen and (min-width: 641px) { + .eureka .eureka__tree { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; } } + +.eureka.eureka__view-mode__table .eureka__context-row { + margin-top: 8px; + margin-top: .5rem; } + +@media screen and (min-width: 641px) { + .eureka .eureka__context-row { + margin-top: 0; + width: 100%; + display: block; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10; + width: 100%; + /*> td[colspan] { + }*/ } + .eureka .eureka__context-row[hidden] { + display: none !important; } + .eureka .eureka__context-row .eureka__context-buttons { + width: 100%; } } + +.eureka .eureka__tree-bar { + text-align: center; } + +.eureka.eureka__view-mode__grid .eureka__td-media, .eureka.eureka__view-mode__masonry .eureka__td-media { + margin: 0 auto; + display: inline-block; } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead th:first-child { + display: none; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead th:nth-of-type(2) { + text-align: left; + padding-left: .5rem; } } + +.eureka.eureka__view-mode__list .eureka__table thead th:last-child { + padding-right: 8px; + padding-right: .5rem; } + +.eureka.eureka__view-mode__list .eureka__table thead td, .eureka.eureka__view-mode__list .eureka__table thead th, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th { + text-align: right; } + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media { + text-align: left; } + @supports (display: grid) { + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media { + display: block; } } + @media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media { + display: none; } } + @media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-filename, .eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-filename, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-filename, .eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-filename { + text-align: center; + padding-top: .5rem; + padding-bottom: .5rem; } } + +@media screen and (max-width: 640px) { + .eureka.eureka__view-mode__list .eureka__table tbody { + line-height: 2; } } + +.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media img, .eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media video, .eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media embed { + max-width: 10vh; + max-height: 10vh; } + +.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu] { + padding-top: 0; + padding-bottom: 0; } + .eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu] > td:nth-of-type(2) { + padding-left: 8px; + padding-left: .5rem; } + .eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu] > td:last-child { + padding-right: 8px; + padding-right: .5rem; } + +@media screen and (max-width: 640px) { + .eureka .eureka__crop-btn { + display: none; } } + +.eureka .flex-bar fieldset { + margin: 0; + padding: 0; } + .eureka .flex-bar fieldset label { + margin-bottom: 0; } + +.eureka .eureka__invert-horz { + -webkit-transform: scaleX(-1); + transform: scaleX(-1); } + +.eureka .eureka__td-media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +@media screen and (min-width: 641px) { + .eureka .eureka__show-for-mobile-up p, .eureka .eureka__show-for-mobile-up textarea { + max-height: 3em; + overflow-y: auto; + display: block; + width: 100%; } } + +.eureka .eureka__pathbar textarea { + resize: none; } + +.eureka label[for="eureka__crop_show-adv-controls"] { + position: absolute; + top: .75em; + right: 1em; } + +.eureka .eureka__crop-modal .icon-bar { + margin-top: 1em; + font-size: 16px; + font-size: 1rem; } + .eureka .eureka__crop-modal .icon-bar label[for="eureka__crop-drag-mode-move"] { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + .eureka .eureka__crop-modal .icon-bar button, .eureka .eureka__crop-modal .icon-bar .button { + border-radius: 0; } + .eureka .eureka__crop-modal .icon-bar button:first-child, .eureka .eureka__crop-modal .icon-bar .button:first-child { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + .eureka .eureka__crop-modal .icon-bar button:last-child, .eureka .eureka__crop-modal .icon-bar .button:last-child { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } + .eureka .eureka__crop-modal .icon-bar.flex-bar > * { + margin-right: 0; } + .eureka .eureka__crop-modal .icon-bar button { + font-size: 16px; + font-size: 1rem; } + +.eureka .eureka__crop-modal .wrappable.flex-bar { + -ms-flex-pack: distribute; + justify-content: space-around; + margin-bottom: 32px; + margin-bottom: 2rem; } + .eureka .eureka__crop-modal .wrappable.flex-bar > * { + padding-left: 16px; + padding-left: 1rem; + padding-right: 16px; + padding-right: 1rem; } + .eureka .eureka__crop-modal .wrappable.flex-bar summary { + margin-bottom: 8px; + margin-bottom: .5rem; } + +.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box { + margin-top: 16px; + margin-top: 1rem; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label { + margin-bottom: 0; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label[for="eureka__crop-aspect-ratio"] { + line-height: 2; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[type="number"] { + width: 5em; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[id*="eureka__crop-scale"] { + width: 4em; } + @media screen and (min-width: 641px) { + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box summary { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } } + @media screen and (min-width: 641px) { + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > div, .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > details > div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > div > *, .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > details > div > * { + margin-right: .5rem; } + .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > div:last-child, .eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box > details > div:last-child { + margin-right: 0; } } + +.eureka [hidden] { + display: none !important; } + +.eureka .eureka__crop-save-as-checkbox { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.eureka .eureka__crop-as { + padding-right: 16px; + padding-right: 1rem; } + .eureka .eureka__crop-as input[type="text"] { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; } + +.eureka label[for="eureka__crop-save-as-name"] { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.eureka label[for="eureka__crop-aspect-ratio-remember"] { + line-height: 2; } + +.eureka label[for="eureka__crop-rotate"] + input[type="range"] { + min-width: 14em; } + +.eureka .eureka__choose-multile > label { + display: block; + height: 100%; } + +.dangerous { + color: red; + color: var(--dangerous, red); } + +input:not([type="checkbox"]):not([type="radio"]):focus { + outline: 1px solid #3697cd; + outline: 1px solid var(--active, #3697cd); } + +tr[tabindex]:focus, tr.eureka__context-row:focus, [role="listbox"]:focus { + outline: 1px solid #3697cd; + outline: 1px solid var(--active, #3697cd); } + +summary:focus { + outline: none; + font-weight: bold; + color: #3697cd; + color: var(--active, #3697cd); } + +.eureka .eureka__tree-bar, .flex-bar, .eureka .eureka__button-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .eureka .wrappable.eureka__tree-bar, .wrappable.flex-bar, .eureka .wrappable.eureka__button-bar { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .eureka .wrappable.eureka__tree-bar > *, .wrappable.flex-bar > *, .eureka .wrappable.eureka__button-bar > * { + padding-left: 16px; + padding-left: 1rem; + padding-right: 16px; + padding-right: 1rem; } + .eureka .balanced.eureka__tree-bar, .balanced.flex-bar, .eureka .balanced.eureka__button-bar { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .eureka .eureka__tree-bar > *, .flex-bar > *, .eureka .eureka__button-bar > * { + margin-right: 8px; + margin-right: .5rem; } + .eureka .eureka__tree-bar > *.growable, .flex-bar > *.growable, .eureka .eureka__button-bar > *.growable { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; } + .eureka .eureka__tree-bar > *:last-child, .flex-bar > *:last-child, .eureka .eureka__button-bar > *:last-child { + margin-right: 0; } + +[role="dialog"] .flex-bar { + margin-top: 8px; + margin-top: .5rem; } + +.eureka .eureka__button-bar, .eureka .eureka__notice { + text-align: center; } + +a[role="presentation"] { + color: currentColor !important; + text-decoration: none !important; } + +@-webkit-keyframes spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.icon-circle-o-notch { + -webkit-animation: spinner 1s linear infinite; + animation: spinner 1s linear infinite; } + +.eureka__table tr[tabindex].eureka__focused-media-item .eureka__td-filename { + font-weight: bold; } + +.eureka__table tr[tabindex]:target .eureka__td-media > * { + outline: 3px solid #32AB9A; } + +.eureka__table tr[tabindex]:target .eureka__td-filename { + font-weight: bold; } + +/* start leave out */ +/*body { + background:$gray; + font: normal .8125em/1.375em "Helvetica Neue", Helvetica, Arial, Tahoma, sans-serif; + //font-family: "Helvetica Neue", Helvetica, Arial, Tahoma, sans-serif; + color:$color; + margin:0; + padding:0.5rem; +}*/ +/* end leave out */ +.eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel, .eureka-root .eureka__notification-wrapper > *, .eureka .eureka__context-buttons { + border: 1px solid #dddddd; + border: var(--border-width, 1px) var(--border-style, solid) var(--panel-border-color, #dddddd); } + +.eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel, .eureka-root .eureka__notification-wrapper > *, .eureka .eureka__table td.comfortable { + padding: 16px; + padding: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel, .eureka-root .eureka__notification-wrapper > *, .eureka .eureka__table td.comfortable { + padding: .5rem; } } + +.eureka .eureka__stage, .eureka *[class^="alert"], .eureka .eureka__pathbrowser, .eureka .eureka__pathbar, .eureka .eureka__modal .eureka__modal-panel { + border-radius: 0.25rem; + background: white; + background: var(--light-bg, white); } + +.eureka-root .eureka__notification-wrapper > * { + border-radius: 0.25rem; + padding-left: 1.5em; + padding-right: 1.5em; + background: #d9edf7; + background: var(--notification-background, #d9edf7); + color: #1D6E95; + color: var(--notification-color, #1D6E95); + border: 1px solid #309dd4; + border: 1px solid var(--notification-border-color, var(--notification-color, #309dd4)); } + .eureka-root .eureka__notification-wrapper > * a { + color: currentColor; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__notification-wrapper > * br { + display: none; } } + .eureka-root .eureka__notification-wrapper > * button { + position: absolute; + top: 4px; + top: .25rem; + right: 4px; + right: .25rem; + color: currentColor; + -webkit-transition: color 240ms ease; + transition: color 240ms ease; + -webkit-box-shadow: none; + box-shadow: none; } + .eureka-root .eureka__notification-wrapper > * button:focus, .eureka-root .eureka__notification-wrapper > * button:hover { + color: #247fad !important; + color: var(--notification-focus-color, #247fad) !important; + border: none; + -webkit-box-shadow: none; + box-shadow: none; } + .eureka-root .eureka__notification-wrapper > * button:focus svg, .eureka-root .eureka__notification-wrapper > * button:hover svg { + fill: currentColor !important; } + .eureka-root .eureka__notification-wrapper > .eureka__dangerous { + --notification-background: #f7a2a2; + --notification-color: #911912; + --notification-border-color: #911912; + --notification-focus-color: #911912; } + +.eureka { + /* styling of blink/webkit marker */ + /* styling of fierfox marker */ + /*&.eureka__view-mode__table, &.eureka__view-mode__list { + .eureka__pathbar { + .eureka__context-buttons { + display:none; + } + } + }*/ + /*&.eureka__view-mode__thumb { + + } + + &.eureka__view-mode__grid { + + } + + &.eureka__view-mode__list { + + }*/ + /*.eureka__tree-toggle { + //margin-bottom:1rem; + @include media($gtMobile) { + //margin-bottom:0; + button { + //@include button-reset; + } + } + }*/ + /*#eureka__tree-toggle__button { + position:relative; + svg { + position:absolute; + top:0; + bottom:0; + } + }*/ } + .eureka .eureka__notification-wrapper { + -webkit-transition: top 240ms ease 90ms, opacity 240ms ease; + transition: top 240ms ease 90ms, opacity 240ms ease; + opacity: 1; + top: 0; + text-align: center; } + .eureka .eureka__notification-wrapper > * { + position: relative; } + @media screen and (max-width: 640px) { + .eureka .eureka__notification-wrapper { + -webkit-transition: opacity 240ms ease; + transition: opacity 240ms ease; + left: 0; + right: 0; } } + .eureka .eureka__notification-wrapper[aria-hidden="true"] { + opacity: 0; + top: -5em; + display: block; + -webkit-transition: opacity 340ms ease-out 90ms, top 420ms ease-out; + transition: opacity 340ms ease-out 90ms, top 420ms ease-out; } + @media screen and (min-width: 641px) { + .eureka .eureka__notification-wrapper { + position: absolute; + left: 0; + right: 0; + top: .25rem; } } + .eureka .eureka__notification-wrapper p { + margin: 0; } + .eureka .eureka__notification-wrapper .icon { + -webkit-transform: translateY(0.125em); + transform: translateY(0.125em); } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label { + cursor: default; + position: relative; + padding-left: 1.5em; } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label .spinner { + position: absolute; + top: 0; + left: .275em; + bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label:hover { + background: white; + background: var(--button-bg, white); + color: #555555; + color: var(--button-color, #555555); } + .eureka .eureka__upload-form input[name*="uploadFiles"]:disabled + label:hover svg { + fill: currentColor; } + .eureka a { + color: #3697cd; + color: var(--link-color, #3697cd); } + .eureka h1, .eureka h2, .eureka h3, .eureka h4, .eureka h5, .eureka h6 { + font-weight: normal; } + .eureka h1, .eureka h2, .eureka h3, .eureka h4, .eureka h5, .eureka h6, .eureka thead { + color: #555555; + color: var(--subtle, #555555); } + .eureka select { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; + padding-right: 1.5em; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-image: url("data:image/svg+xml;utf8,"); + background-size: contain; + background-repeat: no-repeat; + background-scale: 70% 70%; + background-position: right .5em; + /*&:hover { + background: transparent; + //background-image: url('../img/select-arrow.svg'); + background-size: contain; + background-repeat: no-repeat; + background-scale: 70% 70%; + background-position: right .5em; + color: currentColor; + //--border-color: var(--active, $active); + }*/ } + @media screen and (max-width: 640px) { + .eureka select { + width: 100%; + margin-top: .5em; } } + .eureka select:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + +@-moz-document url-prefix() { + .eureka select { + background-image: url("../img/select-arrow.svg"); } } + .eureka button[id^="eureka__tree-toggle__button"] { + margin-bottom: 16px; + margin-bottom: 1rem; + -webkit-box-shadow: 0 0 0 1px #E4E4E4, 0 0.25em 0 #c5c5c5; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4), 0 0.25em 0 var(--border-color, #c5c5c5); + box-shadow: 0 0 0 1px #E4E4E4, 0 0.25em 0 #c5c5c5; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4), 0 0.25em 0 var(--border-color, #c5c5c5); + /*&[aria-pressed="true"] { + box-shadow: 0 0 0 1px var(--border-shadow-color, #E4E4E4), inset 0 0.175em 0 var(--border-shadow-color, darken(#E4E4E4, 12%)); + }*/ } + .eureka button[id^="eureka__tree-toggle__button"]:focus { + --button-color: #3697cd; + --button-color: var(--active, #3697cd); } + @media screen and (max-width: 640px) { + .eureka button[id^="eureka__tree-toggle__button"] { + width: 100%; + min-height: 1.75rem; } } + @media screen and (min-width: 641px) { + .eureka button[id^="eureka__tree-toggle__button"] { + margin-bottom: 0; } } + .eureka *:disabled { + cursor: not-allowed; } + .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > *:last-child { + background-color: #32AB9A; + background-image: -webkit-gradient(linear, left top, left bottom, from(#32AB9A), to(#00948E)); + background-image: linear-gradient(#32AB9A, #00948E); + -webkit-box-shadow: none; + box-shadow: none; + color: white; } + .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > :hover:last-child, .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > :focus:last-child { + --border-color: #007571; + background-color: #2b9385; + background-image: -webkit-gradient(linear, left top, left bottom, from(#2b9385), to(#007571)); + background-image: linear-gradient(#2b9385, #007571); + color: white; + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); } + .eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden="true"]) > :disabled:last-child { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); } + .eureka a.button { + text-decoration: none; } + .eureka button, .eureka .button { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; } + .eureka button:focus, .eureka .button:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + .eureka button:hover, .eureka .button:hover { + background: #3697cd; + color: white; + --border-color: #297aa7; + --border-color: var(--active-darker, #297aa7); + --border-shadow-color: #297aa7; + --border-shadow-color: var(--active-darker, #297aa7); } + .eureka button:hover svg, .eureka .button:hover svg { + fill: white; } + .eureka button.eureka__primary, .eureka .button.eureka__primary { + background-color: #32AB9A; + background-image: -webkit-gradient(linear, left top, left bottom, from(#32AB9A), to(#00948E)); + background-image: linear-gradient(#32AB9A, #00948E); + -webkit-box-shadow: none; + box-shadow: none; + color: white; } + .eureka button.eureka__primary:hover, .eureka button.eureka__primary:focus, .eureka .button.eureka__primary:hover, .eureka .button.eureka__primary:focus { + --border-color: #007571; + background-color: #2b9385; + background-image: -webkit-gradient(linear, left top, left bottom, from(#2b9385), to(#007571)); + background-image: linear-gradient(#2b9385, #007571); + color: white; + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); } + .eureka button.eureka__primary:disabled, .eureka .button.eureka__primary:disabled { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); } + .eureka button.dangerous:hover, .eureka button.dangerous:active, .eureka button.dangerous:focus, .eureka button.dangerous:target, .eureka .button.dangerous:hover, .eureka .button.dangerous:active, .eureka .button.dangerous:focus, .eureka .button.dangerous:target { + --border-color: #b80000; + --border-color: var(--border-color-dangerous, #b80000); + background-color: red; + color: white; + background-image: -webkit-gradient(linear, left top, left bottom, from(red), to(#cc0000)); + background-image: linear-gradient(red, #cc0000); } + .eureka [aria-hidden="true"] button.eureka__primary, .eureka [aria-hidden="true"] .button.eureka__primary { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; } + .eureka [aria-hidden="true"] button.eureka__primary:focus, .eureka [aria-hidden="true"] .button.eureka__primary:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + .eureka [aria-hidden="true"] button.eureka__primary:hover, .eureka [aria-hidden="true"] .button.eureka__primary:hover { + background: #3697cd; + color: white; + --border-color: #297aa7; + --border-color: var(--active-darker, #297aa7); + --border-shadow-color: #297aa7; + --border-shadow-color: var(--active-darker, #297aa7); } + .eureka [aria-hidden="true"] button.eureka__primary:hover svg, .eureka [aria-hidden="true"] .button.eureka__primary:hover svg { + fill: white; } + .eureka input[type="text"] { + padding-left: 8px; + padding-left: 0.5rem; + padding-right: 8px; + padding-right: 0.5rem; } + .eureka input[type="text"] { + border-width: 1px; + border-width: var(--border-width, 1px); + border-style: solid; + border-style: var(--border-style, solid); + border-color: #E4E4E4; + border-color: var(--border-color, #E4E4E4); } + .eureka fieldset { + border: none; } + @media screen and (max-width: 640px) { + .eureka fieldset { + border-width: 1px; + border-width: var(--border-width, 1px); + border-style: solid; + border-style: var(--border-style, solid); + border-color: #E4E4E4; + border-color: var(--border-color, #E4E4E4); + border-radius: 0.25rem; + border-radius: var(--border-color, 0.25rem); } } + .eureka .active { + font-weight: bold; } + .eureka details details { + padding-left: .5em; } + .eureka menu { + display: none; } + .eureka img { + max-width: 100%; } + .eureka .alert-info { + background-color: #d9edf7; + background-color: var(--light-bg, #d9edf7); + border-color: #bce8f1; + border-color: var(--border-color, #bce8f1); + color: #31708f; + color: var(--subtle, #31708f); } + .eureka .alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #3c763d; } + @media screen and (max-width: 640px) { + .eureka .eureka__button-bar > * { + margin-right: 0; } } + .eureka .eureka__tree { + margin-bottom: 16px; + margin-bottom: 1rem; + line-height: 1.6; + line-height: var(--tree-line-height, 1.6); } + @media screen and (min-width: 641px) { + .eureka .eureka__tree { + margin-bottom: .5rem; } } + @media (pointer: coarse) { + .eureka .eureka__tree { + font-size: 1.4em; + line-height: 1.8; + line-height: var(--tree-course-line-height, 1.8); } } + .eureka .eureka__context-buttons { + -ms-flex-pack: distribute; + justify-content: space-around; + background: #f7f7f7; + background: var(--button-bg, #f7f7f7); + border-left: 0; + border-right: 0; + padding: 8px 0; + padding: .5rem 0; } + .eureka .eureka__context-buttons > a.button, .eureka .eureka__context-buttons button { + font-size: 11px; + font-size: .6875rem; } + .eureka.eureka__view-mode__list .eureka__context-buttons { + padding-top: 5.6px; + padding-top: .35rem; + padding-bottom: 5.6px; + padding-bottom: .35rem; } + .eureka.eureka__view-mode__list .eureka__context-buttons > a.button, .eureka.eureka__view-mode__list .eureka__context-buttons button { + font-size: 9.6px; + font-size: .6rem; } + .eureka .eureka__table { + min-width: 100%; } + .eureka .eureka__table tr[contextmenu] { + padding-bottom: 8px; + padding-bottom: .5rem; + /*&:first-child { + padding-top:0; + }*/ } + @media screen and (min-width: 641px) { + .eureka .eureka__table tr[contextmenu] { + padding-top: .5rem; } } + .eureka .eureka__table tr[contextmenu].eureka__focused-media-item:last-child { + padding-bottom: 0; } + .eureka .eureka__table td.comfortable p[class^="alert"] { + margin: 0; } + .eureka .eureka__td-media { + background: transparent; + background: var(--media-cell-background, transparent); } + .eureka .eureka__stage { + padding: 0; + margin-bottom: 8px; + margin-bottom: .5rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__stage { + margin-bottom: 0; } } + .eureka .eureka__stage h1:first-child, .eureka .eureka__stage h2:first-child, .eureka .eureka__stage h3:first-child { + margin-top: 0; } + .eureka .eureka__stage__filter-view { + padding: 8px; + padding: .5rem; } + @media screen and (max-width: 640px) { + .eureka .eureka__stage__filter-view { + padding-bottom: 0; } } + .eureka .eureka__stage__filter-view .eureka__search-bar { + line-height: 2; + font-size: 16px; + font-size: 1rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 16px; + margin-bottom: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__stage__filter-view .eureka__search-bar { + font-size: 0.8rem; + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + max-width: 22em; } } + .eureka .eureka__stage__filter-view .eureka__search-bar label { + color: #556C88; + color: var(--subtle, #556C88); } + @media screen and (min-width: 641px) { + .eureka .eureka__stage__filter-view .eureka__search-bar { + margin-bottom: 0; } } + .eureka .eureka__stage__filter-view .eureka__search-bar input { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; + font-size: inherit; } + .eureka .eureka__media-directory-selector { + margin-bottom: 16px; + margin-bottom: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__media-directory-selector { + margin-right: auto; + margin-bottom: 0.5rem; } } + .eureka .eureka__media-directory-selector button[type="submit"] { + margin-left: 16px; + margin-left: 1rem; } + .eureka .eureka__media-directory-selector form { + position: relative; + /*&::after { + display:inline-block; + width:1em; + position: absolute; + top: 0; + right: 0; + bottom: 0; + background:red; + content:'.'; + }*/ } + .eureka .eureka__tree-bar { + margin: 8px 0 0 0; + margin: .5rem 0 0 0; } + .eureka .eureka__tree-bar > * { + margin: 0 8px 0 0; + margin: 0 .5rem 0 0; } + .eureka .eureka__tree-bar > *:last-child { + margin-right: 0; } + @media screen and (max-width: 640px) { + .eureka .eureka__tree-bar { + margin-top: 1rem; } } + .eureka .eureka__tree-bar button, .eureka .eureka__tree-bar .button { + font-size: 16px; + font-size: 1rem; + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .eureka .eureka__media-source-selector { + margin-bottom: 16px; + margin-bottom: 1rem; } + .eureka .eureka__media-source-selector h2:first-child, .eureka .eureka__media-source-selector h3:first-child { + margin-top: 0; } + @media screen and (max-width: 640px) { + .eureka .eureka__upload-form { + margin-bottom: 1rem; } } + @media screen and (max-width: 640px) { + .eureka .eureka__upload-form label { + display: block; } } + .eureka:not(.eureka__server-side) .eureka__upload-form label { + background: white; + background: var(--button-bg, white); + -webkit-box-shadow: 0 0 0 1px #E4E4E4; + -webkit-box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + box-shadow: 0 0 0 1px #E4E4E4; + box-shadow: 0 0 0 1px var(--border-color, #E4E4E4); + color: #555555; + color: var(--button-color, #555555); + border: 0; + border-radius: 3px; + padding: .5em .5em; + font-size: 11px; + font-size: .6875rem; + text-align: center; } + .eureka:not(.eureka__server-side) .eureka__upload-form label:focus { + outline: none; + --border-color: #3697cd; + --border-color: var(--active, #3697cd); + --border-shadow-color: #3697cd; + --border-shadow-color: var(--active, #3697cd); } + .eureka:not(.eureka__server-side) .eureka__upload-form label:hover { + background: #3697cd; + color: white; + --border-color: #297aa7; + --border-color: var(--active-darker, #297aa7); + --border-shadow-color: #297aa7; + --border-shadow-color: var(--active-darker, #297aa7); } + .eureka:not(.eureka__server-side) .eureka__upload-form label:hover svg { + fill: white; } + .eureka .eureka__choose-bar { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + /*@include media($gtMobile) { + justify-content:flex-end; + }*/ } + .eureka .eureka__choose-bar[aria-hidden="true"] { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); } + .eureka .eureka__choose-bar button { + font-size: 16px; + font-size: 1rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__choose-bar button { + font-size: .8rem; } } + .eureka .eureka__pathbrowser { + margin-bottom: 8px; + margin-bottom: .5rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__pathbrowser { + margin-bottom: 0; } } + .eureka .eureka__pathbrowser nav { + color: #556C88; + color: var(--subtle, #556C88); } + .eureka .eureka__pathbrowser details > summary svg { + -webkit-transform: translateY(0.2em); + transform: translateY(0.2em); + margin-right: 0.25em; } + .eureka .eureka__pathbrowser details > summary > .icon-folder-open { + display: none; } + .eureka .eureka__pathbrowser details[open] > summary > .icon-folder-open { + display: inline-block; } + .eureka .eureka__pathbrowser details[open] > summary > .icon-folder { + display: none; } + .eureka .eureka__pathbar { + padding: 8px; + padding: .5rem; + margin-bottom: 8px; + margin-bottom: .5rem; + margin-top: 8px; + margin-top: .5rem; } + @media screen and (min-width: 641px) { + .eureka .eureka__pathbar { + margin-bottom: 0; } } + .eureka .eureka__pathbar summary { + word-wrap: break-word; } + .eureka .eureka__pathbar details > div { + padding-top: 16px; + padding-top: 1rem; } + .eureka .eureka__pathbar .eureka__context-buttons { + background: none; + border: none; } + .eureka .eureka__layout-chooser { + color: #556C88; + color: var(--subtle, #556C88); } + .eureka .eureka__layout-chooser fieldset { + margin: 0; + padding: .5em 0; } + @media screen and (min-width: 641px) { + .eureka .eureka__layout-chooser fieldset { + padding: 0; } } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: distribute; + justify-content: space-around; } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns > div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"], .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"] { + /*&:focus { + + { + label { + outline: 1px solid var(--active, $active); + } + } + }*/ } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="radio"]:checked + label svg[class^="icon"], .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type="checkbox"]:checked + label svg[class^="icon"] { + fill: #3697cd; + fill: var(--active, #3697cd); } + .eureka .eureka__layout-chooser .eureka__icon-radio-btns label { + font-size: 22.4px; + font-size: 1.4rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .eureka svg[class^="icon"] { + position: relative; + width: 1em; + height: 1em; + fill: currentColor; } + @media screen and (min-width: 641px) { + .eureka .eureka__hide-for-mobile-up { + display: none; } } + @media screen and (max-width: 640px) { + .eureka .eureka__show-for-mobile-up { + display: none; } } + .eureka .eureka__drop-area { + -webkit-box-flex: 2; + -ms-flex: 2 8 auto; + flex: 2 8 auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + cursor: pointer; } + .eureka .eureka__drop-area-zone { + width: 100%; + padding: 8px; + padding: .5rem; + border-width: 2px; + border-color: #dddddd; + border-color: var(--very-subtle, #dddddd); + border-style: dashed; + border-radius: 5px; + background-color: transparent; + -webkit-transition: border-color 240ms ease, background-color 320ms ease 120ms; + transition: border-color 240ms ease, background-color 320ms ease 120ms; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: none; } + @media screen and (min-height: 360px) { + .eureka .eureka__drop-area-zone { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } } + .eureka .eureka__drop-area-zone svg { + font-size: 4em; + fill: #dddddd; + fill: var(--very-subtle, #dddddd); + -webkit-transition: fill 240ms ease 160ms, opacity 240ms ease; + transition: fill 240ms ease 160ms, opacity 240ms ease; + opacity: 0.42; + opacity: var(--very-subtle-icon-opacity, 0.42); + max-height: 100%; } + .eureka .eureka__drop-area-zone.eureka__drop-area-zone-active { + background-color: #d9ecf6; + border-color: #3697cd; + border-color: var(--active, #3697cd); + -webkit-transition: border-color 240ms ease 120ms, background-color 320ms ease 0; + transition: border-color 240ms ease 120ms, background-color 320ms ease 0; } + .eureka .eureka__drop-area-zone.eureka__drop-area-zone-active svg { + fill: #3697cd; + fill: var(--active, #3697cd); + opacity: 1; } + .eureka .eureka__modal { + z-index: 100009; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .eureka .eureka__modal .eureka__modal-scrim { + background: rgba(8, 8, 8, 0.25); + z-index: 0; } + .eureka .eureka__modal .eureka__modal-panel { + min-width: 30vw; + max-width: 70vw; + max-height: 70vh; + position: relative; + z-index: 99999; } + .eureka .eureka__modal .eureka__modal-panel h1:first-child, .eureka .eureka__modal .eureka__modal-panel h2:first-child, .eureka .eureka__modal .eureka__modal-panel h3:first-child { + margin-top: 0; } + .eureka .eureka__modal .eureka__modal-panel summary label { + display: block; + margin-bottom: 8px; + margin-bottom: .5rem; } + .eureka .eureka__modal .eureka__modal-panel summary label[for="eureka__crop-upload-file"] { + margin-bottom: 0; } + .eureka .eureka__modal .eureka__modal-panel input[type="text"] { + width: 100%; + font-size: 1.4em; } + .eureka .eureka__modal .eureka__modal-panel .eureka__button-bar { + margin-top: 8px; + margin-top: .5rem; } + .eureka .eureka__modal .eureka__modal-panel .eureka__button-bar > * { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + .eureka .eureka__modal.eureka__greedy .eureka__modal-panel { + max-width: calc(100vw - 2rem); + max-height: calc(100vh - 2rem); } + +@media screen and (max-width: 640px) { + .eureka-root .eureka__sticky-bar { + z-index: 99999; + position: -webkit-sticky; + position: sticky; + left: 0.5rem; + right: 0.5rem; + top: 0; } + .eureka-root .eureka__sticky-bar .eureka__notification-wrapper { + /*transform: translateY(-5em); + &[aria-hidden="false"] { + transform: translateY(0); + }*/ } } + +.eureka-root .eureka__notification-wrapper { + z-index: 99999; + margin-bottom: 8px; + margin-bottom: .5rem; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__notification-wrapper { + margin-bottom: 0; } } + .eureka-root .eureka__notification-wrapper button { + display: inline; + background: transparent; + border: none; + padding: 0; } + .eureka-root .eureka__notification-wrapper button:hover, .eureka-root .eureka__notification-wrapper button:focus { + background: transparent !important; + border: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + +.eureka-root .eureka__notification-wrapper > * { + display: block; + margin-left: auto; + margin-right: auto; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__notification-wrapper > * { + display: inline-block; } } + +.eureka-root .eureka__choose-radio { + margin-bottom: 16px; + margin-bottom: 1rem; } + @media screen and (min-width: 641px) { + .eureka-root .eureka__choose-radio { + margin-bottom: 0; + -webkit-transform: translateY(0.3em); + transform: translateY(0.3em); + z-index: 0; } } + .eureka-root .eureka__choose-radio fieldset { + border: none; } +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zY3NzL21haW4uc2NzcyIsInNyYy9zY3NzL3NwZWMvX3RhY3VsYXIuc2NzcyIsIm1haW4uY3NzIiwic3JjL3Njc3MvbGF5b3V0L19sYXlvdXQuc2NzcyIsInNyYy9zY3NzL25lYXQvZ3JpZC9fbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPRTtFQUNFLCtCQUFzQjtVQUF0Qix1QkFBc0IsRUFDdkI7O0FBQ0Q7RUFJSSw0QkFBbUI7VUFBbkIsb0JBQW1CLEVBQ3BCOztBQXVTTDtFQ3ZRSSxZQUFVLEVBQ2I7O0FEc1FEO0VDM1BJLGdCQUFjLEVBQ2pCOztBRDBQRDtFQy9NSSxtQkFBaUI7RUFDakIsT0FBSztFQUNMLFFBQU07RUFDTixTQUFPO0VBQ1AsVUFBUSxFQUtYOztBQXNCRDs7RUFFRTtBRGhHRjtFQUNFLGlFQUE2SDtFQUE3SCx5SEFBNkg7VUFBN0gseURBQTZIO1VBQTdILGlIQUE2SCxFQUM5SDs7QUFFRDtFQUFtQiw2RkFBNkY7RUFuQjlHLDhCQUE2QjtFQUM3Qiw0QkFBMkI7RUFBRSxjQUFjO0VBQzNDLCtCQUE4QjtFQUM5QixzQkFBb0I7RUFDcEIscUJBQW1CO0VBQ25CLHVCQUFzQjtFQUN0QixzQkFBcUI7RUFDckIsaUJBQWdCLEVBY2pCO0VBYkM7SUFFSSx5QkFBd0IsRUFDekI7O0FFR0w7RUN0Q0UsV0FBUyxFQU9WO0VDOEVHO0lGNUNBO01DdkNBLHFCQUFhO01BQWIscUJBQWE7TUFBYixjQUFhO01BQ2IsbUJBQWlCO01BQ2pCLDZCQUFzQjtNQUF0Qiw4QkFBc0I7VUFBdEIsMkJBQXNCO2NBQXRCLHVCQUFzQixFQUd6QixFQUFBOztBQUVEO0VBd0dFOzs7Ozs7Ozs7OztLQVdHLEVBc0VKO0VBekxEO0lBR0ksYUFBWTtJQUNaLGNBQWE7SUFDYixpQkFBZ0I7SUFDaEIsb0JBQW9DO0lBQXBDLHFDQUFvQyxFQUNyQztFQVBIO0lBVUksaUJBQWtCO0lBQWxCLG1CQUFrQixFQUNuQjtFQVhIO0lBa0JZLDBCQUF5QixF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LEVBQ0osRUFBQTs7QUFmUDtFQW9CSSxlQ3BqQ1U7RURxakNWLG1CQUFvQjtFQUFwQixxQkFBb0IsRUFnQnJCO0VJL2dDQztJSjArQko7TUF1Qk0saUJBQWdCLEVBY25CLEVBQUE7RUFyQ0g7SUEwQk0sZ0JBQWU7SUFDZix3QkFBdUI7SUFDdkIsYUFBWTtJQUNaLFdBQVUsRUFPWDtJQXBDTDtNQStCUSxtQ0FBa0M7TUFDbEMsd0JBQXVCO01BRXZCLG9DQUEyQjtjQUEzQiw0QkFBMkIsRUFDNUI7O0FBbkNQO0VBd0NJLGVBQWM7RUFJZCxrQkFBaUI7RUFDakIsbUJBQWtCLEVBQ25CO0VJeGhDQztJSjArQko7TUEwQ00sc0JBQXFCLEVBSXhCLEVBQUE7O0FBOUNIO0VBZ0RJLG9CQUFtQjtFQUFuQixvQkFBbUIsRUFTcEI7RUluaUNDO0lKMCtCSjtNQWtETSxpQkFBZ0I7TUFDaEIscUNBQTJCO2NBQTNCLDZCQUEyQjtNQUMzQixXQUFVLEVBS2IsRUFBQTtFQXpESDtJQXVETSxhQUFZLEVBQ2IiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6W251bGwsbnVsbCwiLmV1cmVrYSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmV1cmVrYSAqLCAuZXVyZWthICo6OmFmdGVyLCAuZXVyZWthICo6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgaW1nLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIGltZywgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1zb3VyY2Utc2VsZWN0b3Igc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmV1cmVrYSB0aFthcmlhLXNvcnRdLCAuZXVyZWthIHNlbGVjdCwgLmV1cmVrYSBidXR0b24sIC5ldXJla2EgLmJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbCwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmV1cmVrYSAuZXVyZWthX19tb2RhbCwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1zY3JpbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi8qXG5odHRwOi8vd3d3LnBoYXNlMnRlY2hub2xvZ3kuY29tL2Jsb2cvZXhwbG9yaW5nLW1hcHMtaW4tc2Fzcy0zLTMvXG4qL1xuLmV1cmVrYSBpbnB1dFthcmlhLXByZXNzZWQ9XCJ0cnVlXCJdICsgbGFiZWwsIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsLCAuZXVyZWthIGJ1dHRvblthcmlhLXByZXNzZWQ9XCJ0cnVlXCJdIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1zaGFkb3ctY29sb3IsICNFNEU0RTQpLCBpbnNldCAwIDAuMTc1ZW0gMCB2YXIoLS1ib3JkZXItc2hhZG93LWNvbG9yLCAjYzVjNWM1KTsgfVxuXG4uZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSwgLnZpc3VhbGx5LWhpZGRlbiwgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIGxlZ2VuZCwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAvKmh0dHBzOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS9ibG9ncy95ZG4vY2xpcC1oaWRkZW4tY29udGVudC1iZXR0ZXItYWNjZXNzaWJpbGl0eS01MzQ1Ni5odG1sKi9cbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMXB4IDFweCAxcHggMXB4KTtcbiAgLyogSUU2LCBJRTcgKi9cbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgYm9keTpob3ZlciAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBhLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSBib2R5OmhvdmVyIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGEsIGJvZHk6aG92ZXIgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBhLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIGJvZHk6aG92ZXIgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSkgYSwgYm9keTpob3ZlciAudmlzdWFsbHktaGlkZGVuIGEsIGJvZHk6aG92ZXIgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdIGEsIC5ldXJla2E6bm90KC5ldXJla2FfX3NlcnZlci1zaWRlKSAuZXVyZWthX191cGxvYWQtZm9ybSBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJmaWxlXCJdIGEsIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBsZWdlbmQgYSwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBib2R5OmhvdmVyIGxlZ2VuZCBhLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJyYWRpb1wiXSBhLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSBhLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSBhLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSBhLCBib2R5OmhvdmVyIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGlucHV0LCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSBib2R5OmhvdmVyIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGlucHV0LCBib2R5OmhvdmVyIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSkgaW5wdXQsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgYm9keTpob3ZlciB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBpbnB1dCwgYm9keTpob3ZlciAudmlzdWFsbHktaGlkZGVuIGlucHV0LCBib2R5OmhvdmVyIC5ldXJla2E6bm90KC5ldXJla2FfX3NlcnZlci1zaWRlKSAuZXVyZWthX191cGxvYWQtZm9ybSBpbnB1dFt0eXBlPVwiZmlsZVwiXSBpbnB1dCwgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImZpbGVcIl0gaW5wdXQsIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBsZWdlbmQgaW5wdXQsIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgYm9keTpob3ZlciBsZWdlbmQgaW5wdXQsIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdIGlucHV0LCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBib2R5OmhvdmVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSBpbnB1dCwgYm9keTpob3ZlciAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gaW5wdXQsIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIGlucHV0LCBib2R5OmhvdmVyIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDEpIGJ1dHRvbiwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgYm9keTpob3ZlciB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBidXR0b24sIGJvZHk6aG92ZXIgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBidXR0b24sIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgYm9keTpob3ZlciB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSBidXR0b24sIGJvZHk6aG92ZXIgLnZpc3VhbGx5LWhpZGRlbiBidXR0b24sIGJvZHk6aG92ZXIgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdIGJ1dHRvbiwgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImZpbGVcIl0gYnV0dG9uLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgbGVnZW5kIGJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciBib2R5OmhvdmVyIGxlZ2VuZCBidXR0b24sIGJvZHk6aG92ZXIgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdIGJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgYm9keTpob3ZlciBpbnB1dFt0eXBlPVwicmFkaW9cIl0gYnV0dG9uLCBib2R5OmhvdmVyIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSBidXR0b24sIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGJvZHk6aG92ZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbltjbGFzcyo9XCJtb2RhbC1zZWN0aW9uXCJdLCBbY2xhc3MqPVwiZXVyZWthLXdyYXBwZXJcIl0ge1xuICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgW2NsYXNzKj1cIm1vZGFsLXNlY3Rpb25cIl0sIFtjbGFzcyo9XCJldXJla2Etd3JhcHBlclwiXSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5ldXJla2Etcm9vdCB7XG4gIC8qLmV1cmVrYSB7XG4gICAgdGJvZHkge1xuICAgICAgJjpub3QoLmVtcHR5KSB7XG4gICAgICAgID4gdHI6bm90KC5lbXB0eSkge1xuICAgICAgICAgIEBzdXBwb3J0cyAoZGlzcGxheTpncmlkKSB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlwibWVkaWEgbmFtZSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIiBcImFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9uc1wiO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDI0JSAxMiUgMTIlIDEyJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0qLyB9XG4gIC5ldXJla2Etcm9vdDotd2Via2l0LWZ1bGwtc2NyZWVuIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbG9yLCAjZWNlY2VjKTsgfVxuICAuZXVyZWthLXJvb3QgbGFiZWxbZm9yKj1cImZ1bGxzY3JlZW4tdG9nZ2xlXCJdIHtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0ci5ldXJla2FfX2ZvY3VzZWQtbWVkaWEtaXRlbSA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3csIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHIuZXVyZWthX19mb2N1c2VkLW1lZGlhLWl0ZW0gPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0ci5ldXJla2FfX2ZvY3VzZWQtbWVkaWEtaXRlbSA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3dbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpmb2N1cyA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3dbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyLmV1cmVrYV9fZm9jdXNlZC1tZWRpYS1pdGVtID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93W2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHIgPiB0ZC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHIgPiB0ZC5ldXJla2FfX3RkLW1lZGlhIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMgPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpmb2N1cyA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3dbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOmZvY3VzID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpmb2N1cy13aXRoaW4gPiB0ZC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMtd2l0aGluID4gdGQuZXVyZWthX19jb250ZXh0LXJvdyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMtd2l0aGluID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6Zm9jdXMtd2l0aGluID4gdGQuZXVyZWthX19jb250ZXh0LXJvd1toaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmV1cmVrYS1yb290IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSBhbmQgKCBub3QgKGRpc3BsYXk6Z3JpZCkgKSB7XG4gICAgICAgfSovIH1cbiAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+ICoge1xuICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkIC5ldXJla2FfX3RkLW1lZGlhIHtcbiAgICAgICAgICBncmlkLWFyZWE6IG1lZGlhOyB9XG4gICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQgLmV1cmVrYV9fdGQtZmlsZW5hbWUge1xuICAgICAgICAgIGdyaWQtYXJlYTogbmFtZTsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fY29udGV4dC1yb3cge1xuICAgICAgICAgIGdyaWQtYXJlYTogYWN0aW9uczsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZGltZW5zaW9ucyB7XG4gICAgICAgICAgZ3JpZC1hcmVhOiBkaW1lbnNpb25zOyB9XG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19kaW1lbnNpb25zIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19maWxlLXNpemUge1xuICAgICAgICAgIGdyaWQtYXJlYTogZmlsZS1zaXplOyB9XG4gICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19maWxlLXNpemUge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgICAgLmV1cmVrYS1yb290IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2VkaXRlZC1vbiB7XG4gICAgICAgICAgZ3JpZC1hcmVhOiBlZGl0ZWQtb247IH1cbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAgICAgLmV1cmVrYS1yb290IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2VkaXRlZC1vbiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfSB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2Nob29zZSB7XG4gICAgICBncmlkLWFyZWE6IGNob29zZTsgfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX3RkLW1lZGlhIHtcbiAgICAgIGdyaWQtYXJlYTogbWVkaWE7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX190ZC1maWxlbmFtZSB7XG4gICAgICBncmlkLWFyZWE6IG5hbWU7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19jb250ZXh0LXJvdyB7XG4gICAgICBncmlkLWFyZWE6IGFjdGlvbnM7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19kaW1lbnNpb25zIHtcbiAgICAgIGdyaWQtYXJlYTogZGltZW5zaW9uczsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZGltZW5zaW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZmlsZS1zaXplIHtcbiAgICAgIGdyaWQtYXJlYTogZmlsZS1zaXplOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX19maWxlLXNpemUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZC5ldXJla2FfX2VkaXRlZC1vbiB7XG4gICAgICBncmlkLWFyZWE6IGVkaXRlZC1vbjsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkLmV1cmVrYV9fZWRpdGVkLW9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH0gfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImNob29zZSBtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnNcIjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAycmVtIGF1dG8gMjQlIDEyJSAxMiUgMTIlOyB9IH0gfVxuXG4uZXVyZWthIC5ldXJla2FfX2Nob29zZS1yYWRpbyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtcmFkaW8gZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY2hvb3NlLXJhZGlvIC5ldXJla2FfX2ZpZWxkc2V0IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtcmFkaW8gLmV1cmVrYV9fZmllbGRzZXQgPiAqIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvOyB9XG5cbi5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlLmV1cmVrYV9fdGFibGUgPiB0aGVhZCA+IHRyIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAycmVtIDE2JSA0MCUgOCUgYXV0byBhdXRvICFpbXBvcnRhbnQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwicmFkaW8gbmFtZSBtZWRpYSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIiAhaW1wb3J0YW50OyB9XG4gIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlLmV1cmVrYV9fdGFibGUgPiB0aGVhZCA+IHRyIHRoOm50aC1vZi10eXBlKDMpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJyZW0gMTYlIDQwJSA4JSBhdXRvIGF1dG8gIWltcG9ydGFudDtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJyYWRpbyBuYW1lIG1lZGlhIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiICFpbXBvcnRhbnQ7IH1cbiAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZCB7XG4gICAgICAvKiY6bnRoLW9mLXR5cGUoMSkge1xuICAgICAgICAgICAgIGdyaWQtYXJlYTptZWRpYTtcbiAgICAgICAgICAgfVxuICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICAgICBncmlkLWFyZWE6bmFtZTtcbiAgICAgICAgICAgfVxuICAgICAgICAgICAmOm50aC1vZi10eXBlKDMpIHtcbiAgICAgICAgICAgICBncmlkLWFyZWE6YWN0aW9ucztcbiAgICAgICAgICAgfSovIH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlLmV1cmVrYV9fdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQuZXVyZWthX190ZC1maWxlbmFtZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg0KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZGltZW5zaW9ucyAhaW1wb3J0YW50OyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZS5ldXJla2FfX3RhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDUpIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBmaWxlLXNpemUgIWltcG9ydGFudDsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUuZXVyZWthX190YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg2KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZWRpdGVkLW9uICFpbXBvcnRhbnQ7IH0gfVxuXG4uZXVyZWthLXJvb3Qge1xuICBwYWRkaW5nOiAuNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthIHRhYmxlID4gdGhlYWQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7XG4gICAgICAvKiBJRTYsIElFNyAqL1xuICAgICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgYm9keTpob3ZlciAuZXVyZWthLXJvb3QgLmV1cmVrYSB0YWJsZSA+IHRoZWFkIGEsIGJvZHk6aG92ZXIgLmV1cmVrYS1yb290IC5ldXJla2EgdGFibGUgPiB0aGVhZCBpbnB1dCwgYm9keTpob3ZlciAuZXVyZWthLXJvb3QgLmV1cmVrYSB0YWJsZSA+IHRoZWFkIGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EgdGJvZHkgPiB0ciA+IHRkOm5vdCguZXVyZWthX19jb250ZXh0LXJvdykge1xuICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07IH0gfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0Ym9keSA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkgPiB0ciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJjaG9vc2UgY2hvb3NlIGNob29zZSBjaG9vc2UgY2hvb3NlIGNob29zZVwiIFwibWVkaWEgbWVkaWEgbWVkaWEgbWVkaWEgbWVkaWEgbWVkaWFcIiBcIm5hbWUgbmFtZSBuYW1lIG5hbWUgbmFtZSBuYW1lXCIgXCJhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9uc1wiOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRib2R5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJjaG9vc2UgbWVkaWEgbmFtZSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAycmVtIGF1dG8gMjQlIDEyJSAxMiUgMTIlOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIHRhYmxlID4gdGJvZHkgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX2Nob29zZS1tdWx0aXBsZS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCB0YWJsZSA+IHRib2R5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fY2hvb3NlLW11bHRpcGxlLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGUuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcImNob29zZSBjaG9vc2UgY2hvb3NlIGNob29zZSBjaG9vc2UgY2hvb3NlXCIgXCJtZWRpYSBtZWRpYSBtZWRpYSBtZWRpYSBtZWRpYSBtZWRpYVwiOyB9XG4gIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUge1xuICAgIC8qPiB0aGVhZCA+IHRyIHtcbiAgICAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiO1xuICAgICAgIH0qLyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRhYmxlID4gdGhlYWQgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRhYmxlID4gdGJvZHkgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRib2R5ID4gdHIge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtZ2FwOiAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0aGVhZCA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgdGFibGUgPiB0Ym9keSA+IHRyLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkgPiB0ciB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDAlIDI0JSAxMiUgMTIlIDEyJTsgfSB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHRhYmxlID4gdGJvZHkgPiB0ciwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwibWVkaWEgbWVkaWEgbWVkaWEgbWVkaWEgbWVkaWFcIiBcIm5hbWUgbmFtZSBuYW1lIG5hbWUgbmFtZVwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRib2R5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkgPiB0ciB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7IH0gfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSB0YWJsZSA+IHRib2R5LmVtcHR5ID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGJvZHkuZW1wdHkgPiB0ciB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSAuZXVyZWthX190cmVlLXRvZ2dsZSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbFtmb3IqPVwidXBsb2FkLWZvcm1cIl0sIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgLmV1cmVrYV9fdHJlZS10b2dnbGUgLmV1cmVrYV9fdXBsb2FkLWZvcm0gbGFiZWxbZm9yKj1cInVwbG9hZC1mb3JtXCJdIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwicmFkaW8gbWVkaWEgbmFtZSBkaW1lbnNpb25zIGZpbGUtc2l6ZSBlZGl0ZWQtb25cIjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMnJlbSA0MCUgMjQlIGF1dG8gYXV0byBhdXRvOyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDEpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSgxKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSgxKSB7XG4gICAgICAgIGdyaWQtYXJlYTogcmFkaW87IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSgyKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQ6bnRoLW9mLXR5cGUoMiksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDIpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBtZWRpYTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGQ6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDMpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSgzKSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGg6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGQ6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQ6bnRoLW9mLXR5cGUoMyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGg6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICBncmlkLWFyZWE6IG5hbWU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSg1KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0Ym9keTpub3QoLmVtcHR5KSA+IHRyOm5vdCguZW1wdHkpID4gdGQ6bnRoLW9mLXR5cGUoNSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRkOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDUpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdC5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRoOm50aC1vZi10eXBlKDUpIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBkaW1lbnNpb25zOyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoNiksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDYpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg2KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg2KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZmlsZS1zaXplOyB9XG4gICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoNyksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZS5ldXJla2FfX3NlcnZlci1zaWRlIHRhYmxlID4gdGJvZHk6bm90KC5lbXB0eSkgPiB0cjpub3QoLmVtcHR5KSA+IHRkOm50aC1vZi10eXBlKDcpLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRoZWFkID4gdHIgPiB0aDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0ZDpudGgtb2YtdHlwZSg3KSwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QuZXVyZWthX19zZXJ2ZXItc2lkZSB0YWJsZSA+IHRib2R5Om5vdCguZW1wdHkpID4gdHI6bm90KC5lbXB0eSkgPiB0aDpudGgtb2YtdHlwZSg3KSB7XG4gICAgICAgIGdyaWQtYXJlYTogZWRpdGVkLW9uOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlLmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSksIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0LmV1cmVrYV9fc2VydmVyLXNpZGUgdGFibGUgPiB0aGVhZCA+IHRyID4gdGg6bnRoLW9mLXR5cGUoMSkge1xuICAgIGdyaWQtYXJlYTogbm9uZTsgfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRoZWFkID4gdHIgdGQ6Zmlyc3QtY2hpbGQsIC5ldXJla2Etcm9vdCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHRhYmxlID4gdGhlYWQgPiB0ciB0aDpmaXJzdC1jaGlsZCwgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHRkOmZpcnN0LWNoaWxkLCAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRib2R5ID4gdHIgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcIm5hbWUgbmFtZSBuYW1lIG5hbWUgbmFtZVwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5ldXJla2FfX2Nob29zZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgdGFibGUgPiB0Ym9keSA+IHRyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtZWRpYSBuYW1lIGRpbWVuc2lvbnMgZmlsZS1zaXplIGVkaXRlZC1vblwiIFwiYWN0aW9ucyBhY3Rpb25zIGFjdGlvbnMgYWN0aW9ucyBhY3Rpb25zXCI7IH0gfVxuXG4uZXVyZWthLXJvb3QgLmV1cmVrYV9fdGFibGUgaW1nLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fdGFibGUgZW1iZWQsIC5ldXJla2Etcm9vdCAuZXVyZWthX190YWJsZSBvYmplY3QsIC5ldXJla2Etcm9vdCAuZXVyZWthX190YWJsZSB2aWRlbyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYS1yb290IHtcbiAgICAvKmRpc3BsYXk6Z3JpZDtcbiAgICBncmlkLWdhcDowO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoyMHZ3IGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcImhlYWRlciBoZWFkZXJcIiBcInNpZGViYXIgY29udGVudFwiIFwiZm9vdGVyIGZvb3RlclwiOyovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXg6IDE7IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHtcbiAgICAgICAgLypAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgICAgfSovIH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTsgfVxuICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSA+IC5ldXJla2FfX2Jyb3dzZS1jb250ZW50ID4gLmV1cmVrYV9fcGF0aGJyb3dzZXIge1xuICAgICAgICAgIGZsZXg6IDAgMCAxNHJlbTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07IH1cbiAgICAgICAgICAuZXVyZWthLXJvb3QgLmV1cmVrYSA+IC5ldXJla2FfX2Jyb3dzZS1jb250ZW50ID4gLmV1cmVrYV9fcGF0aGJyb3dzZXJbaGlkZGVuXSwgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3BhdGhicm93c2VyW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSB7XG4gICAgICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3N0YWdlID4gLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyA+IGhlYWRlciB7XG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtOyB9XG4gICAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyA+IGhlYWRlciA+IGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgICAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyA+IGhlYWRlciA+IGgyIGZvcm0ge1xuICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3N0YWdlID4gLmV1cmVrYV9fdGFibGUtd3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtIC41cmVtIDA7IH1cbiAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3RhYmxlLXdyYXBwZXIgPiBkaXYge1xuICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAgICAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fYnJvd3NlLWNvbnRlbnQgPiAuZXVyZWthX19zdGFnZSA+IC5ldXJla2FfX3RhYmxlLXdyYXBwZXIgPiBkaXYgPiB0YWJsZSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19jaG9vc2UtYmFyIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtOyB9IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgPiAuZXVyZWthX19icm93c2UtY29udGVudCA+IC5ldXJla2FfX3N0YWdlID4gLmV1cmVrYV9fdGFibGUtd3JhcHBlciB7XG4gIHBhZGRpbmctbGVmdDogLjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbWFzb25yeSA+IC5ldXJla2FfX2Jyb3dzZS1jb250ZW50ID4gLmV1cmVrYV9fc3RhZ2UgPiAuZXVyZWthX190YWJsZS13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS1yb290IC5ldXJla2EgPiAuZXVyZWthX19jaG9vc2UtYmFyID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTsgfVxuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthID4gLmV1cmVrYV9fY2hvb3NlLWJhciA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uZXVyZWthLXJvb3QgdGhlYWQge1xuICBmbGV4LWJhc2lzOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtZ3JvdzogMDsgfVxuICAuZXVyZWthLXJvb3QgdGhlYWQuZXVyZWthX190Ym9keS1zY3JvbGxpbmcge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cbiAgLmV1cmVrYS1yb290IHRoZWFkW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmV1cmVrYS1yb290IHRoZWFkID4gdHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qQHN1cHBvcnRzIChkaXNwbGF5OiBmbGV4KSBhbmQgKCBub3QgKGRpc3BsYXk6IGdyaWQpICkge1xuICAgICAgfSovIH1cbiAgICAuZXVyZWthLXJvb3QgdGhlYWQgPiB0ciA+IHRoIHtcbiAgICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gICAgICAuZXVyZWthLXJvb3QgdGhlYWQgPiB0ciA+IHRoLmV1cmVrYV9fY2hvb3NlIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBjaG9vc2U7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1tZWRpYSB7XG4gICAgICAgIGdyaWQtYXJlYTogbWVkaWE7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1maWxlbmFtZSB7XG4gICAgICAgIGdyaWQtYXJlYTogbmFtZTsgfVxuICAgICAgLmV1cmVrYS1yb290IHRoZWFkID4gdHIgPiB0aC5ldXJla2FfX3RoLWFjdGlvbnMge1xuICAgICAgICBncmlkLWFyZWE6IG5vbmU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1kaW1lbnNpb25zIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBkaW1lbnNpb25zOyB9XG4gICAgICAuZXVyZWthLXJvb3QgdGhlYWQgPiB0ciA+IHRoLmV1cmVrYV9fdGgtZmlsZS1zaXplIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBmaWxlLXNpemU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCB0aGVhZCA+IHRyID4gdGguZXVyZWthX190aC1lZGl0ZWQtb24ge1xuICAgICAgICBncmlkLWFyZWE6IGVkaXRlZC1vbjsgfVxuXG4uZXVyZWthLXJvb3QgdGJvZHkuZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuZXVyZWthLXJvb3QgdGJvZHkuZW1wdHkgPiB0ciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmV1cmVrYS1yb290IHRib2R5LmVtcHR5ID4gdHIgdGQge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmV1cmVrYS1yb290IHRib2R5IHtcbiAgZmxleC1iYXNpczogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC13cmFwOiBuby13cmFwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGU6bm90KC5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCkgLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX19jaG9vc2UtbXVsdGlwbGU6bm90KC5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCkgLmV1cmVrYV9fdGQtbWVkaWEge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYV9fbWVkaWEtZGlyZWN0b3J5LXNlbGVjdG9yIGZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3IgPiBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogLjVlbTsgfSB9XG5cbi5ldXJla2FfX3NvcnQtc2VsZWN0IHNlbGVjdCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYV9fc29ydC1zZWxlY3Qge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgIC5ldXJla2FfX3NvcnQtc2VsZWN0IGxhYmVsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07IH1cbiAgICAuZXVyZWthX19zb3J0LXNlbGVjdCBzZWxlY3Qge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gIC5ldXJla2FfX3RyZWUtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTsgfVxuICAgIC5ldXJla2FfX3RyZWUtdG9nZ2xlID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgICAuZXVyZWthX190cmVlLXRvZ2dsZSAuZXVyZWthX191cGxvYWQtZm9ybSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2FfX3RyZWUtdG9nZ2xlIC5ldXJla2FfX3VwbG9hZC1mb3JtIGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3RyZWUtdG9nZ2xlIC5ldXJla2FfX3VwbG9hZC1mb3JtIGxhYmVsW2Zvcio9XCJ1cGxvYWQtZm9ybVwiXSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuMjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthX19zZXJ2ZXItc2lkZSAuZXVyZWthX190cmVlLXRvZ2dsZSAuZXVyZWthX191cGxvYWQtZm9ybSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIHtcbiAgLypAaW5jbHVkZSBtZWRpYSgkZ3RNb2JpbGUpIHtcbiAgICB9Ki8gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIC5ldXJla2FfX3RhYmxlIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMHZoOyB9IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGg6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogLjVyZW07IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC41cmVtOyB9XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdHIgdGgge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUgLmV1cmVrYV9fdGFibGUgdHIgdGgge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0aC5ldXJla2FfX3RoLW1lZGlhIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSAuZXVyZWthX190YWJsZSB0ciB0aC5ldXJla2FfX3RoLW1lZGlhIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19lbmxhcmdlLWZvY3VzZWQtcm93cyAuZXVyZWthX190YWJsZSBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDIwdmg7IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGFibGUuZXVyZWthX19lbmxhcmdlLWZvY3VzZWQtcm93cyAuZXVyZWthX190YWJsZSB0cjpmb2N1cyBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDMwdmg7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGhlYWQsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGFibGUgdGhlYWQsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGhlYWQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGQ6bm90KC5ldXJla2FfX3RkLW1lZGlhKTpub3QoLmV1cmVrYV9fY2hvb3NlKSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0ZDpub3QoLmV1cmVrYV9fdGQtbWVkaWEpOm5vdCguZXVyZWthX19jaG9vc2UpLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRkOm5vdCguZXVyZWthX190ZC1tZWRpYSk6bm90KC5ldXJla2FfX2Nob29zZSkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRkW2NvbHNwYW5dLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRkW2NvbHNwYW5dLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRkW2NvbHNwYW5dIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkge1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGFibGUgdGJvZHksIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkge1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9IH1cbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbWFzb25yeSAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0ge1xuICAgIG1hcmdpbjogMCAuNXJlbSAuNXJlbSAwO1xuICAgIGZsZXgtYmFzaXM6IDQydnc7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fdGh1bWIgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbWFzb25yeSAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0gdGQsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHRkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0sIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHtcbiAgICAgICAgZmxleC1iYXNpczogMTZ2dzsgfSB9XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19ncmlkIC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX2NvbnRleHQtcm93LCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RodW1iIC5ldXJla2FfX3RhYmxlIHRib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0sIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0sIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbdGFiaW5kZXhdIHtcbiAgICBmbGV4LWJhc2lzOiAyNXZ3OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fZ3JpZCAuZXVyZWthX190YWJsZSB0Ym9keSB0clt0YWJpbmRleF0gPiB0ZDpub3QoLmV1cmVrYV9fY29udGV4dC1yb3cpLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSA+IHRkOm5vdCguZXVyZWthX19jb250ZXh0LXJvdykge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19tYXNvbnJ5IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW3RhYmluZGV4XSB7XG4gICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgLjI1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX190cmVlIHtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGZsZXgtZ3JvdzogMTsgfSB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX3RhYmxlIC5ldXJla2FfX2NvbnRleHQtcm93IHtcbiAgbWFyZ2luLXRvcDogLjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX19jb250ZXh0LXJvdyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG9yZGVyOiAxMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKj4gdGRbY29sc3Bhbl0ge1xuICAgICAgfSovIH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtcm93W2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jb250ZXh0LXJvdyAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uZXVyZWthIC5ldXJla2FfX3RyZWUtYmFyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2dyaWQgLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX21hc29ucnkgLmV1cmVrYV9fdGQtbWVkaWEge1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoOm50aC1vZi10eXBlKDIpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH0gfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTsgfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRkLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZCwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGgge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRkLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGQuZXVyZWthX190aC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0aC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRoLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRoLmV1cmVrYV9fdGgtbWVkaWEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAgIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGQuZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLmV1cmVrYV9fdGQtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGguZXVyZWthX190aC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGQuZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGQuZXVyZWthX190aC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGguZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0gdGguZXVyZWthX190aC1tZWRpYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0ZC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRkLmV1cmVrYV9fdGgtbWVkaWEsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGhlYWQgdGguZXVyZWthX190ZC1tZWRpYSwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0aC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0ZC5ldXJla2FfX3RoLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0aC5ldXJla2FfX3RkLW1lZGlhLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB0aC5ldXJla2FfX3RoLW1lZGlhIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0aGVhZCB0ZC5ldXJla2FfX3RkLWZpbGVuYW1lLCAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRoZWFkIHRoLmV1cmVrYV9fdGQtZmlsZW5hbWUsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRkLmV1cmVrYV9fdGQtZmlsZW5hbWUsIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdIHRoLmV1cmVrYV9fdGQtZmlsZW5hbWUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZy10b3A6IC41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0Ym9keSB7XG4gICAgbGluZS1oZWlnaHQ6IDI7IH0gfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRib2R5IC5ldXJla2FfX3RkLW1lZGlhIGltZywgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0Ym9keSAuZXVyZWthX190ZC1tZWRpYSB2aWRlbywgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX190YWJsZSB0Ym9keSAuZXVyZWthX190ZC1tZWRpYSBlbWJlZCB7XG4gIG1heC13aWR0aDogMTB2aDtcbiAgbWF4LWhlaWdodDogMTB2aDsgfVxuXG4uZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW2NvbnRleHRtZW51XSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX3RhYmxlIHRib2R5IHRyW2NvbnRleHRtZW51XSA+IHRkOm50aC1vZi10eXBlKDIpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC41cmVtOyB9XG4gIC5ldXJla2EuZXVyZWthX192aWV3LW1vZGVfX2xpc3QgLmV1cmVrYV9fdGFibGUgdGJvZHkgdHJbY29udGV4dG1lbnVdID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogLjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX19jcm9wLWJ0biB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5ldXJla2EgLmZsZXgtYmFyIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5ldXJla2EgLmZsZXgtYmFyIGZpZWxkc2V0IGxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5ldXJla2EgLmV1cmVrYV9faW52ZXJ0LWhvcnoge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7IH1cblxuLmV1cmVrYSAuZXVyZWthX190ZC1tZWRpYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgLmV1cmVrYSAuZXVyZWthX19zaG93LWZvci1tb2JpbGUtdXAgcCwgLmV1cmVrYSAuZXVyZWthX19zaG93LWZvci1tb2JpbGUtdXAgdGV4dGFyZWEge1xuICAgIG1heC1oZWlnaHQ6IDNlbTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmV1cmVrYSAuZXVyZWthX19wYXRoYmFyIHRleHRhcmVhIHtcbiAgcmVzaXplOiBub25lOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wX3Nob3ctYWR2LWNvbnRyb2xzXCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC43NWVtO1xuICByaWdodDogMWVtOyB9XG5cbi5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAuaWNvbi1iYXIge1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIGxhYmVsW2Zvcj1cImV1cmVrYV9fY3JvcC1kcmFnLW1vZGUtbW92ZVwiXSB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIGJ1dHRvbiwgLmV1cmVrYSAuZXVyZWthX19jcm9wLW1vZGFsIC5pY29uLWJhciAuYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jcm9wLW1vZGFsIC5pY29uLWJhciBidXR0b246Zmlyc3QtY2hpbGQsIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAuaWNvbi1iYXIgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIGJ1dHRvbjpsYXN0LWNoaWxkLCAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyIC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLmljb24tYmFyLmZsZXgtYmFyID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAuaWNvbi1iYXIgYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDFyZW07IH1cblxuLmV1cmVrYSAuZXVyZWthX19jcm9wLW1vZGFsIC53cmFwcGFibGUuZmxleC1iYXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAuZXVyZWthIC5ldXJla2FfX2Nyb3AtbW9kYWwgLndyYXBwYWJsZS5mbGV4LWJhciA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1tb2RhbCAud3JhcHBhYmxlLmZsZXgtYmFyIHN1bW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IC41cmVtOyB9XG5cbi5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3gge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3ggbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCBsYWJlbFtmb3I9XCJldXJla2FfX2Nyb3AtYXNwZWN0LXJhdGlvXCJdIHtcbiAgICBsaW5lLWhlaWdodDogMjsgfVxuICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2Nyb3AtYm91bmRpbmctYm94IGlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgIHdpZHRoOiA1ZW07IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCBpbnB1dFtpZCo9XCJldXJla2FfX2Nyb3Atc2NhbGVcIl0ge1xuICAgIHdpZHRoOiA0ZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2Nyb3AtYm91bmRpbmctYm94IHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRpdiwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRldGFpbHMgPiBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRpdiA+ICosIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3ggPiBkZXRhaWxzID4gZGl2ID4gKiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLjVyZW07IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fY3JvcC1ib3VuZGluZy1ib3ggPiBkaXY6bGFzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19jcm9wLWJvdW5kaW5nLWJveCA+IGRldGFpbHMgPiBkaXY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5ldXJla2EgW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYSAuZXVyZWthX19jcm9wLXNhdmUtYXMtY2hlY2tib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uZXVyZWthIC5ldXJla2FfX2Nyb3AtYXMge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fY3JvcC1hcyBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgZmxleC1ncm93OiAxOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wLXNhdmUtYXMtbmFtZVwiXSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wLWFzcGVjdC1yYXRpby1yZW1lbWJlclwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAyOyB9XG5cbi5ldXJla2EgbGFiZWxbZm9yPVwiZXVyZWthX19jcm9wLXJvdGF0ZVwiXSArIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIG1pbi13aWR0aDogMTRlbTsgfVxuXG4uZXVyZWthIC5ldXJla2FfX2Nob29zZS1tdWx0aWxlID4gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5kYW5nZXJvdXMge1xuICBjb2xvcjogdmFyKC0tZGFuZ2Vyb3VzLCByZWQpOyB9XG5cbmlucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSk6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTsgfVxuXG50clt0YWJpbmRleF06Zm9jdXMsIHRyLmV1cmVrYV9fY29udGV4dC1yb3c6Zm9jdXMsIFtyb2xlPVwibGlzdGJveFwiXTpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpOyB9XG5cbnN1bW1hcnk6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cblxuLmV1cmVrYSAuZXVyZWthX190cmVlLWJhciwgLmZsZXgtYmFyLCAuZXVyZWthIC5ldXJla2FfX2J1dHRvbi1iYXIge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5ldXJla2EgLndyYXBwYWJsZS5ldXJla2FfX3RyZWUtYmFyLCAud3JhcHBhYmxlLmZsZXgtYmFyLCAuZXVyZWthIC53cmFwcGFibGUuZXVyZWthX19idXR0b24tYmFyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZXVyZWthIC53cmFwcGFibGUuZXVyZWthX190cmVlLWJhciA+ICosIC53cmFwcGFibGUuZmxleC1iYXIgPiAqLCAuZXVyZWthIC53cmFwcGFibGUuZXVyZWthX19idXR0b24tYmFyID4gKiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5ldXJla2EgLmJhbGFuY2VkLmV1cmVrYV9fdHJlZS1iYXIsIC5iYWxhbmNlZC5mbGV4LWJhciwgLmV1cmVrYSAuYmFsYW5jZWQuZXVyZWthX19idXR0b24tYmFyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuZXVyZWthIC5ldXJla2FfX3RyZWUtYmFyID4gKiwgLmZsZXgtYmFyID4gKiwgLmV1cmVrYSAuZXVyZWthX19idXR0b24tYmFyID4gKiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqLmdyb3dhYmxlLCAuZmxleC1iYXIgPiAqLmdyb3dhYmxlLCAuZXVyZWthIC5ldXJla2FfX2J1dHRvbi1iYXIgPiAqLmdyb3dhYmxlIHtcbiAgICAgIGZsZXgtZ3JvdzogMTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqOmxhc3QtY2hpbGQsIC5mbGV4LWJhciA+ICo6bGFzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19idXR0b24tYmFyID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG5bcm9sZT1cImRpYWxvZ1wiXSAuZmxleC1iYXIge1xuICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuXG4uZXVyZWthIC5ldXJla2FfX2J1dHRvbi1iYXIsIC5ldXJla2EgLmV1cmVrYV9fbm90aWNlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbmFbcm9sZT1cInByZXNlbnRhdGlvblwiXSB7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3IgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cblxuQGtleWZyYW1lcyBzcGlubmVyIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4uaWNvbi1jaXJjbGUtby1ub3RjaCB7XG4gIGFuaW1hdGlvbjogc3Bpbm5lciAxcyBsaW5lYXIgaW5maW5pdGU7IH1cblxuLmV1cmVrYV9fdGFibGUgdHJbdGFiaW5kZXhdLmV1cmVrYV9fZm9jdXNlZC1tZWRpYS1pdGVtIC5ldXJla2FfX3RkLWZpbGVuYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmV1cmVrYV9fdGFibGUgdHJbdGFiaW5kZXhdOnRhcmdldCAuZXVyZWthX190ZC1tZWRpYSA+ICoge1xuICBvdXRsaW5lOiAzcHggc29saWQgIzMyQUI5QTsgfVxuXG4uZXVyZWthX190YWJsZSB0clt0YWJpbmRleF06dGFyZ2V0IC5ldXJla2FfX3RkLWZpbGVuYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogc3RhcnQgbGVhdmUgb3V0ICovXG4vKmJvZHkge1xuICBiYWNrZ3JvdW5kOiRncmF5O1xuICBmb250OiBub3JtYWwgLjgxMjVlbS8xLjM3NWVtIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAvL2ZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6JGNvbG9yO1xuICBtYXJnaW46MDtcbiAgcGFkZGluZzowLjVyZW07XG59Ki9cbi8qIGVuZCBsZWF2ZSBvdXQgKi9cbi5ldXJla2EgLmV1cmVrYV9fc3RhZ2UsIC5ldXJla2EgKltjbGFzc149XCJhbGVydFwiXSwgLmV1cmVrYSAuZXVyZWthX19wYXRoYnJvd3NlciwgLmV1cmVrYSAuZXVyZWthX19wYXRoYmFyLCAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsLCAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqLCAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyB7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyLXdpZHRoLCAxcHgpIHZhcigtLWJvcmRlci1zdHlsZSwgc29saWQpIHZhcigtLXBhbmVsLWJvcmRlci1jb2xvciwgI2RkZGRkZCk7IH1cblxuLmV1cmVrYSAuZXVyZWthX19zdGFnZSwgLmV1cmVrYSAqW2NsYXNzXj1cImFsZXJ0XCJdLCAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyLCAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwsIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciA+ICosIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdGQuY29tZm9ydGFibGUge1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYSAuZXVyZWthX19zdGFnZSwgLmV1cmVrYSAqW2NsYXNzXj1cImFsZXJ0XCJdLCAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyLCAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwsIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciA+ICosIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdGQuY29tZm9ydGFibGUge1xuICAgICAgcGFkZGluZzogLjVyZW07IH0gfVxuXG4uZXVyZWthIC5ldXJla2FfX3N0YWdlLCAuZXVyZWthICpbY2xhc3NePVwiYWxlcnRcIl0sIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJyb3dzZXIsIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJhciwgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJnLCB3aGl0ZSk7IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3RpZmljYXRpb24tYmFja2dyb3VuZCwgI2Q5ZWRmNyk7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tY29sb3IsICMxRDZFOTUpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ub3RpZmljYXRpb24tYm9yZGVyLWNvbG9yLCB2YXIoLS1ub3RpZmljYXRpb24tY29sb3IsICMzMDlkZDQpKTsgfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGEge1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGJyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLjI1cmVtO1xuICAgIHJpZ2h0OiAuMjVyZW07XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAyNDBtcyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZXVyZWthLXJvb3QgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgPiAqIGJ1dHRvbjpmb2N1cywgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiBidXR0b246aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1mb2N1cy1jb2xvciwgIzI0N2ZhZCkgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciA+ICogYnV0dG9uOmZvY3VzIHN2ZywgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiBidXR0b246aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gLmV1cmVrYV9fZGFuZ2Vyb3VzIHtcbiAgICAtLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kOiAjZjdhMmEyO1xuICAgIC0tbm90aWZpY2F0aW9uLWNvbG9yOiAjOTExOTEyO1xuICAgIC0tbm90aWZpY2F0aW9uLWJvcmRlci1jb2xvcjogIzkxMTkxMjtcbiAgICAtLW5vdGlmaWNhdGlvbi1mb2N1cy1jb2xvcjogIzkxMTkxMjsgfVxuXG4uZXVyZWthIHtcbiAgLyogc3R5bGluZyBvZiBibGluay93ZWJraXQgbWFya2VyICovXG4gIC8qIHN0eWxpbmcgb2YgZmllcmZveCBtYXJrZXIgKi9cbiAgLyomLmV1cmVrYV9fdmlldy1tb2RlX190YWJsZSwgJi5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCB7XG4gICAgLmV1cmVrYV9fcGF0aGJhciB7XG4gICAgICAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9Ki9cbiAgLyomLmV1cmVrYV9fdmlldy1tb2RlX190aHVtYiB7XG5cbiAgfVxuXG4gICYuZXVyZWthX192aWV3LW1vZGVfX2dyaWQge1xuXG4gIH1cblxuICAmLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IHtcblxuICB9Ki9cbiAgLyouZXVyZWthX190cmVlLXRvZ2dsZSB7XG4gICAgLy9tYXJnaW4tYm90dG9tOjFyZW07XG4gICAgQGluY2x1ZGUgbWVkaWEoJGd0TW9iaWxlKSB7XG4gICAgICAvL21hcmdpbi1ib3R0b206MDtcbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIC8vQGluY2x1ZGUgYnV0dG9uLXJlc2V0O1xuICAgICAgfVxuICAgIH1cbiAgfSovXG4gIC8qI2V1cmVrYV9fdHJlZS10b2dnbGVfX2J1dHRvbiB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgc3ZnIHtcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgdG9wOjA7XG4gICAgICBib3R0b206MDtcbiAgICB9XG4gIH0qLyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIge1xuICAgIHRyYW5zaXRpb246IHRvcCAyNDBtcyBlYXNlIDkwbXMsIG9wYWNpdHkgMjQwbXMgZWFzZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRvcDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjQwbXMgZWFzZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7IH0gfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXJbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0b3A6IC01ZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzQwbXMgZWFzZS1vdXQgOTBtcywgdG9wIDQyMG1zIGVhc2Utb3V0OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IC4yNXJlbTsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciBwIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIgLmljb24ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMTI1ZW0pOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fdXBsb2FkLWZvcm0gaW5wdXRbbmFtZSo9XCJ1cGxvYWRGaWxlc1wiXTpkaXNhYmxlZCArIGxhYmVsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3VwbG9hZC1mb3JtIGlucHV0W25hbWUqPVwidXBsb2FkRmlsZXNcIl06ZGlzYWJsZWQgKyBsYWJlbCAuc3Bpbm5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAuMjc1ZW07XG4gICAgICBib3R0b206IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBpbnB1dFtuYW1lKj1cInVwbG9hZEZpbGVzXCJdOmRpc2FibGVkICsgbGFiZWw6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWJnLCB3aGl0ZSk7XG4gICAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG9yLCAjNTU1NTU1KTsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBpbnB1dFtuYW1lKj1cInVwbG9hZEZpbGVzXCJdOmRpc2FibGVkICsgbGFiZWw6aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gIC5ldXJla2EgYSB7XG4gICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IsICMzNjk3Y2QpOyB9XG4gIC5ldXJla2EgaDEsIC5ldXJla2EgaDIsIC5ldXJla2EgaDMsIC5ldXJla2EgaDQsIC5ldXJla2EgaDUsIC5ldXJla2EgaDYge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgLmV1cmVrYSBoMSwgLmV1cmVrYSBoMiwgLmV1cmVrYSBoMywgLmV1cmVrYSBoNCwgLmV1cmVrYSBoNSwgLmV1cmVrYSBoNiwgLmV1cmVrYSB0aGVhZCB7XG4gICAgY29sb3I6IHZhcigtLXN1YnRsZSwgIzU1NTU1NSk7IH1cbiAgLmV1cmVrYSBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iZywgd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpO1xuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3IsICM1NTU1NTUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgcGFkZGluZzogLjVlbSAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MSA3NC44OCc+PHJlY3QgeT0nMTkuODgnIHdpZHRoPSc1MScgaGVpZ2h0PSc1NScgZmlsbD0nbm9uZScvPjxwYXRoIGQ9J00zNywyOC44OEExLjU2LDEuNTYsMCwwLDEsMzYuNTIsMzBMMjUuMTQsNDEuMzlhMS41OSwxLjU5LDAsMCwxLTIuMjksMEwxMS40OCwzMGExLjYzLDEuNjMsMCwwLDEsMS4xNC0yLjc3SDM1LjM4QTEuNjUsMS42NSwwLDAsMSwzNywyOC44OFptMC05Ljc1YTEuNjUsMS42NSwwLDAsMS0xLjYyLDEuNjNIMTIuNjNBMS42MiwxLjYyLDAsMCwxLDExLjQ4LDE4TDIyLjg2LDYuNjFhMS41OSwxLjU5LDAsMCwxLDIuMjksMEwzNi41MiwxOEExLjU2LDEuNTYsMCwwLDEsMzcsMTkuMTNaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtMC41IC02LjEzKScgZmlsbD0nIzk3OTc5NycvPjwvc3ZnPlwiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNjYWxlOiA3MCUgNzAlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC41ZW07XG4gICAgLyomOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zZWxlY3QtYXJyb3cuc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1zY2FsZTogNzAlIDcwJTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC41ZW07XG4gICAgICBjb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgLy8tLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLCAkYWN0aXZlKTtcbiAgICB9Ki8gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAuZXVyZWthIHNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAuNWVtOyB9IH1cbiAgICAuZXVyZWthIHNlbGVjdDpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgLS1ib3JkZXItY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cblxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgLmV1cmVrYSBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zZWxlY3QtYXJyb3cuc3ZnXCIpOyB9IH1cbiAgLmV1cmVrYSBidXR0b25baWRePVwiZXVyZWthX190cmVlLXRvZ2dsZV9fYnV0dG9uXCJdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpLCAwIDAuMjVlbSAwIHZhcigtLWJvcmRlci1jb2xvciwgI2M1YzVjNSk7XG4gICAgLyomW2FyaWEtcHJlc3NlZD1cInRydWVcIl0ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1zaGFkb3ctY29sb3IsICNFNEU0RTQpLCBpbnNldCAwIDAuMTc1ZW0gMCB2YXIoLS1ib3JkZXItc2hhZG93LWNvbG9yLCBkYXJrZW4oI0U0RTRFNCwgMTIlKSk7XG4gICAgfSovIH1cbiAgICAuZXVyZWthIGJ1dHRvbltpZF49XCJldXJla2FfX3RyZWUtdG9nZ2xlX19idXR0b25cIl06Zm9jdXMge1xuICAgICAgLS1idXR0b24tY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSBidXR0b25baWRePVwiZXVyZWthX190cmVlLXRvZ2dsZV9fYnV0dG9uXCJdIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIGJ1dHRvbltpZF49XCJldXJla2FfX3RyZWUtdG9nZ2xlX19idXR0b25cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgLmV1cmVrYSAqOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwtcGFuZWwgLmV1cmVrYV9fYnV0dG9uLWJhcjpub3QoW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSkgPiAqOmxhc3QtY2hpbGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMkFCOUE7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMzMkFCOUEsICMwMDk0OEUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbC1wYW5lbCAuZXVyZWthX19idXR0b24tYmFyOm5vdChbYXJpYS1oaWRkZW49XCJ0cnVlXCJdKSA+IDpob3ZlcjpsYXN0LWNoaWxkLCAuZXVyZWthIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXI6bm90KFthcmlhLWhpZGRlbj1cInRydWVcIl0pID4gOmZvY3VzOmxhc3QtY2hpbGQge1xuICAgICAgLS1ib3JkZXItY29sb3I6ICMwMDc1NzE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI5Mzg1O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMyYjkzODUsICMwMDc1NzEpO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXI6bm90KFthcmlhLWhpZGRlbj1cInRydWVcIl0pID4gOmRpc2FibGVkOmxhc3QtY2hpbGQge1xuICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7IH1cbiAgLmV1cmVrYSBhLmJ1dHRvbiB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5ldXJla2EgYnV0dG9uLCAuZXVyZWthIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iZywgd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpO1xuICAgIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3IsICM1NTU1NTUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgcGFkZGluZzogLjVlbSAuNWVtOyB9XG4gICAgLmV1cmVrYSBidXR0b246Zm9jdXMsIC5ldXJla2EgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgLS1ib3JkZXItY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZSwgIzM2OTdjZCk7IH1cbiAgICAuZXVyZWthIGJ1dHRvbjpob3ZlciwgLmV1cmVrYSAuYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzNjk3Y2Q7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAtLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLWRhcmtlciwgIzI5N2FhNyk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZS1kYXJrZXIsICMyOTdhYTcpOyB9XG4gICAgICAuZXVyZWthIGJ1dHRvbjpob3ZlciBzdmcsIC5ldXJla2EgLmJ1dHRvbjpob3ZlciBzdmcge1xuICAgICAgICBmaWxsOiB3aGl0ZTsgfVxuICAgIC5ldXJla2EgYnV0dG9uLmV1cmVrYV9fcHJpbWFyeSwgLmV1cmVrYSAuYnV0dG9uLmV1cmVrYV9fcHJpbWFyeSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzJBQjlBO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMzMkFCOUEsICMwMDk0OEUpO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLmV1cmVrYSBidXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyLCAuZXVyZWthIGJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6Zm9jdXMsIC5ldXJla2EgLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6aG92ZXIsIC5ldXJla2EgLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6Zm9jdXMge1xuICAgICAgICAtLWJvcmRlci1jb2xvcjogIzAwNzU3MTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJiOTM4NTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMyYjkzODUsICMwMDc1NzEpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1ib3JkZXItY29sb3IsICNFNEU0RTQpOyB9XG4gICAgICAuZXVyZWthIGJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6ZGlzYWJsZWQsIC5ldXJla2EgLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6ZGlzYWJsZWQge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTsgfVxuICAgIC5ldXJla2EgYnV0dG9uLmRhbmdlcm91czpob3ZlciwgLmV1cmVrYSBidXR0b24uZGFuZ2Vyb3VzOmFjdGl2ZSwgLmV1cmVrYSBidXR0b24uZGFuZ2Vyb3VzOmZvY3VzLCAuZXVyZWthIGJ1dHRvbi5kYW5nZXJvdXM6dGFyZ2V0LCAuZXVyZWthIC5idXR0b24uZGFuZ2Vyb3VzOmhvdmVyLCAuZXVyZWthIC5idXR0b24uZGFuZ2Vyb3VzOmFjdGl2ZSwgLmV1cmVrYSAuYnV0dG9uLmRhbmdlcm91czpmb2N1cywgLmV1cmVrYSAuYnV0dG9uLmRhbmdlcm91czp0YXJnZXQge1xuICAgICAgLS1ib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvci1kYW5nZXJvdXMsICNiODAwMDApO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJlZCwgI2NjMDAwMCk7IH1cbiAgLmV1cmVrYSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIGJ1dHRvbi5ldXJla2FfX3ByaW1hcnksIC5ldXJla2EgW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSAuYnV0dG9uLmV1cmVrYV9fcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWJnLCB3aGl0ZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7XG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvciwgIzU1NTU1NSk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBwYWRkaW5nOiAuNWVtIC41ZW07IH1cbiAgICAuZXVyZWthIFthcmlhLWhpZGRlbj1cInRydWVcIl0gYnV0dG9uLmV1cmVrYV9fcHJpbWFyeTpmb2N1cywgLmV1cmVrYSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIC5idXR0b24uZXVyZWthX19wcmltYXJ5OmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAtLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTtcbiAgICAgIC0tYm9yZGVyLXNoYWRvdy1jb2xvcjogdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTsgfVxuICAgIC5ldXJla2EgW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSBidXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyLCAuZXVyZWthIFthcmlhLWhpZGRlbj1cInRydWVcIl0gLmJ1dHRvbi5ldXJla2FfX3ByaW1hcnk6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzM2OTdjZDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIC0tYm9yZGVyLWNvbG9yOiB2YXIoLS1hY3RpdmUtZGFya2VyLCAjMjk3YWE3KTtcbiAgICAgIC0tYm9yZGVyLXNoYWRvdy1jb2xvcjogdmFyKC0tYWN0aXZlLWRhcmtlciwgIzI5N2FhNyk7IH1cbiAgICAgIC5ldXJla2EgW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSBidXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyIHN2ZywgLmV1cmVrYSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIC5idXR0b24uZXVyZWthX19wcmltYXJ5OmhvdmVyIHN2ZyB7XG4gICAgICAgIGZpbGw6IHdoaXRlOyB9XG4gIC5ldXJla2EgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsgfVxuICAuZXVyZWthIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci13aWR0aCwgMXB4KTtcbiAgICBib3JkZXItc3R5bGU6IHZhcigtLWJvcmRlci1zdHlsZSwgc29saWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yLCAjRTRFNEU0KTsgfVxuICAuZXVyZWthIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSBmaWVsZHNldCB7XG4gICAgICAgIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLXdpZHRoLCAxcHgpO1xuICAgICAgICBib3JkZXItc3R5bGU6IHZhcigtLWJvcmRlci1zdHlsZSwgc29saWQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1jb2xvciwgMC4yNXJlbSk7IH0gfVxuICAuZXVyZWthIC5hY3RpdmUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5ldXJla2EgZGV0YWlscyBkZXRhaWxzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IC41ZW07IH1cbiAgLmV1cmVrYSBtZW51IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5ldXJla2EgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmV1cmVrYSAuYWxlcnQtaW5mbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtYmcsICNkOWVkZjcpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yLCAjYmNlOGYxKTtcbiAgICBjb2xvcjogdmFyKC0tc3VidGxlLCAjMzE3MDhmKTsgfVxuICAuZXVyZWthIC5hbGVydC1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuICAgIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbiAgICBjb2xvcjogIzNjNzYzZDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2EgLmV1cmVrYV9fYnV0dG9uLWJhciA+ICoge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLmV1cmVrYSAuZXVyZWthX190cmVlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS10cmVlLWxpbmUtaGVpZ2h0LCAxLjYpOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtOyB9IH1cbiAgICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX190cmVlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXRyZWUtY291cnNlLWxpbmUtaGVpZ2h0LCAxLjgpOyB9IH1cbiAgLmV1cmVrYSAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iZywgI2Y3ZjdmNyk7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IC41cmVtIDA7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyA+IGEuYnV0dG9uLCAuZXVyZWthIC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyBidXR0b24ge1xuICAgICAgZm9udC1zaXplOiAuNjg3NXJlbTsgfVxuICAuZXVyZWthLmV1cmVrYV9fdmlldy1tb2RlX19saXN0IC5ldXJla2FfX2NvbnRleHQtYnV0dG9ucyB7XG4gICAgcGFkZGluZy10b3A6IC4zNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjM1cmVtOyB9XG4gICAgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMgPiBhLmJ1dHRvbiwgLmV1cmVrYS5ldXJla2FfX3ZpZXctbW9kZV9fbGlzdCAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMgYnV0dG9uIHtcbiAgICAgIGZvbnQtc2l6ZTogLjZyZW07IH1cbiAgLmV1cmVrYSAuZXVyZWthX190YWJsZSB7XG4gICAgbWluLXdpZHRoOiAxMDAlOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX190YWJsZSB0cltjb250ZXh0bWVudV0ge1xuICAgICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgICAgLyomOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgIH0qLyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgICAuZXVyZWthIC5ldXJla2FfX3RhYmxlIHRyW2NvbnRleHRtZW51XSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IC41cmVtOyB9IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdHJbY29udGV4dG1lbnVdLmV1cmVrYV9fZm9jdXNlZC1tZWRpYS1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdGFibGUgdGQuY29tZm9ydGFibGUgcFtjbGFzc149XCJhbGVydFwiXSB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgLmV1cmVrYSAuZXVyZWthX190ZC1tZWRpYSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWVkaWEtY2VsbC1iYWNrZ3JvdW5kLCB0cmFuc3BhcmVudCk7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19zdGFnZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19zdGFnZSBoMTpmaXJzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19zdGFnZSBoMjpmaXJzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19zdGFnZSBoMzpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IHtcbiAgICBwYWRkaW5nOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyAuZXVyZWthX19zZWFyY2gtYmFyIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2EgLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IC5ldXJla2FfX3NlYXJjaC1iYXIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIG1heC13aWR0aDogMjJlbTsgfSB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3N0YWdlX19maWx0ZXItdmlldyAuZXVyZWthX19zZWFyY2gtYmFyIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXN1YnRsZSwgIzU1NkM4OCk7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2EgLmV1cmVrYV9fc3RhZ2VfX2ZpbHRlci12aWV3IC5ldXJla2FfX3NlYXJjaC1iYXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19zdGFnZV9fZmlsdGVyLXZpZXcgLmV1cmVrYV9fc2VhcmNoLWJhciBpbnB1dCB7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3Ige1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1kaXJlY3Rvcnktc2VsZWN0b3IgYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21lZGlhLWRpcmVjdG9yeS1zZWxlY3RvciBmb3JtIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8qJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6MWVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZDpyZWQ7XG4gICAgICAgIGNvbnRlbnQ6Jy4nO1xuICAgICAgfSovIH1cbiAgLmV1cmVrYSAuZXVyZWthX190cmVlLWJhciB7XG4gICAgbWFyZ2luOiAuNXJlbSAwIDAgMDsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqIHtcbiAgICAgIG1hcmdpbjogMCAuNXJlbSAwIDA7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX190cmVlLWJhciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07IH0gfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fdHJlZS1iYXIgYnV0dG9uLCAuZXVyZWthIC5ldXJla2FfX3RyZWUtYmFyIC5idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1zb3VyY2Utc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21lZGlhLXNvdXJjZS1zZWxlY3RvciBoMjpmaXJzdC1jaGlsZCwgLmV1cmVrYSAuZXVyZWthX19tZWRpYS1zb3VyY2Utc2VsZWN0b3IgaDM6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIC5ldXJla2EgLmV1cmVrYV9fdXBsb2FkLWZvcm0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLmV1cmVrYSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5ldXJla2E6bm90KC5ldXJla2FfX3NlcnZlci1zaWRlKSAuZXVyZWthX191cGxvYWQtZm9ybSBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWJnLCB3aGl0ZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1jb2xvciwgI0U0RTRFNCk7XG4gICAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvciwgIzU1NTU1NSk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBwYWRkaW5nOiAuNWVtIC41ZW07XG4gICAgZm9udC1zaXplOiAuNjg3NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZXVyZWthOm5vdCguZXVyZWthX19zZXJ2ZXItc2lkZSkgLmV1cmVrYV9fdXBsb2FkLWZvcm0gbGFiZWw6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIC0tYm9yZGVyLWNvbG9yOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpO1xuICAgICAgLS1ib3JkZXItc2hhZG93LWNvbG9yOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpOyB9XG4gICAgLmV1cmVrYTpub3QoLmV1cmVrYV9fc2VydmVyLXNpZGUpIC5ldXJla2FfX3VwbG9hZC1mb3JtIGxhYmVsOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzNjk3Y2Q7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAtLWJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLWRhcmtlciwgIzI5N2FhNyk7XG4gICAgICAtLWJvcmRlci1zaGFkb3ctY29sb3I6IHZhcigtLWFjdGl2ZS1kYXJrZXIsICMyOTdhYTcpOyB9XG4gICAgICAuZXVyZWthOm5vdCguZXVyZWthX19zZXJ2ZXItc2lkZSkgLmV1cmVrYV9fdXBsb2FkLWZvcm0gbGFiZWw6aG92ZXIgc3ZnIHtcbiAgICAgICAgZmlsbDogd2hpdGU7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtYmFyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIC8qQGluY2x1ZGUgbWVkaWEoJGd0TW9iaWxlKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7XG4gICAgfSovIH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2Nob29zZS1iYXJbYXJpYS1oaWRkZW49XCJ0cnVlXCJdIHtcbiAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19jaG9vc2UtYmFyIGJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDFyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAgIC5ldXJla2EgLmV1cmVrYV9fY2hvb3NlLWJhciBidXR0b24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogLjhyZW07IH0gfVxuICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19wYXRoYnJvd3NlciBuYXYge1xuICAgICAgY29sb3I6IHZhcigtLXN1YnRsZSwgIzU1NkM4OCk7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIGRldGFpbHMgPiBzdW1tYXJ5IHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMC4yZW0pO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIGRldGFpbHMgPiBzdW1tYXJ5ID4gLmljb24tZm9sZGVyLW9wZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJyb3dzZXIgZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgPiAuaWNvbi1mb2xkZXItb3BlbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhicm93c2VyIGRldGFpbHNbb3Blbl0gPiBzdW1tYXJ5ID4gLmljb24tZm9sZGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmV1cmVrYSAuZXVyZWthX19wYXRoYmFyIHtcbiAgICBwYWRkaW5nOiAuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIgc3VtbWFyeSB7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX3BhdGhiYXIgZGV0YWlscyA+IGRpdiB7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fcGF0aGJhciAuZXVyZWthX19jb250ZXh0LWJ1dHRvbnMge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIHtcbiAgICBjb2xvcjogdmFyKC0tc3VidGxlLCAjNTU2Qzg4KTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgZmllbGRzZXQge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogLjVlbSAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgICAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIGZpZWxkc2V0IHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbGF5b3V0LWNob29zZXIgLmV1cmVrYV9faWNvbi1yYWRpby1idG5zIGlucHV0W3R5cGU9XCJyYWRpb1wiXSwgLmV1cmVrYSAuZXVyZWthX19sYXlvdXQtY2hvb3NlciAuZXVyZWthX19pY29uLXJhZGlvLWJ0bnMgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgLyomOmZvY3VzIHtcbiAgICAgICAgICArIHtcbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWFjdGl2ZSwgJGFjdGl2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9Ki8gfVxuICAgICAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsIHN2Z1tjbGFzc149XCJpY29uXCJdLCAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsIHN2Z1tjbGFzc149XCJpY29uXCJdIHtcbiAgICAgICAgICBmaWxsOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpOyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX2xheW91dC1jaG9vc2VyIC5ldXJla2FfX2ljb24tcmFkaW8tYnRucyBsYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuZXVyZWthIHN2Z1tjbGFzc149XCJpY29uXCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDFlbTtcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQxcHgpIHtcbiAgICAuZXVyZWthIC5ldXJla2FfX2hpZGUtZm9yLW1vYmlsZS11cCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAuZXVyZWthIC5ldXJla2FfX3Nob3ctZm9yLW1vYmlsZS11cCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmV1cmVrYSAuZXVyZWthX19kcm9wLWFyZWEge1xuICAgIGZsZXg6IDIgOCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fZHJvcC1hcmVhLXpvbmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IC41cmVtO1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdmVyeS1zdWJ0bGUsICNkZGRkZGQpO1xuICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjQwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAzMjBtcyBlYXNlIDEyMG1zO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiAzNjBweCkge1xuICAgICAgLmV1cmVrYSAuZXVyZWthX19kcm9wLWFyZWEtem9uZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fZHJvcC1hcmVhLXpvbmUgc3ZnIHtcbiAgICAgIGZvbnQtc2l6ZTogNGVtO1xuICAgICAgZmlsbDogdmFyKC0tdmVyeS1zdWJ0bGUsICNkZGRkZGQpO1xuICAgICAgdHJhbnNpdGlvbjogZmlsbCAyNDBtcyBlYXNlIDE2MG1zLCBvcGFjaXR5IDI0MG1zIGVhc2U7XG4gICAgICBvcGFjaXR5OiB2YXIoLS12ZXJ5LXN1YnRsZS1pY29uLW9wYWNpdHksIDAuNDIpO1xuICAgICAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fZHJvcC1hcmVhLXpvbmUuZXVyZWthX19kcm9wLWFyZWEtem9uZS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWNmNjtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWN0aXZlLCAjMzY5N2NkKTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyNDBtcyBlYXNlIDEyMG1zLCBiYWNrZ3JvdW5kLWNvbG9yIDMyMG1zIGVhc2UgMDsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19kcm9wLWFyZWEtem9uZS5ldXJla2FfX2Ryb3AtYXJlYS16b25lLWFjdGl2ZSBzdmcge1xuICAgICAgICBmaWxsOiB2YXIoLS1hY3RpdmUsICMzNjk3Y2QpO1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwge1xuICAgIHotaW5kZXg6IDEwMDAwOTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXNjcmltIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoOCwgOCwgOCwgMC4yNSk7XG4gICAgICB6LWluZGV4OiAwOyB9XG4gICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCB7XG4gICAgICBtaW4td2lkdGg6IDMwdnc7XG4gICAgICBtYXgtd2lkdGg6IDcwdnc7XG4gICAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTk5OTk7IH1cbiAgICAgIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgaDE6Zmlyc3QtY2hpbGQsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgaDI6Zmlyc3QtY2hpbGQsIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwgLmV1cmVrYV9fbW9kYWwtcGFuZWwgaDM6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIHN1bW1hcnkgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cbiAgICAgICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCBzdW1tYXJ5IGxhYmVsW2Zvcj1cImV1cmVrYV9fY3JvcC11cGxvYWQtZmlsZVwiXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgLmV1cmVrYSAuZXVyZWthX19tb2RhbCAuZXVyZWthX19tb2RhbC1wYW5lbCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDEuNGVtOyB9XG4gICAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuICAgICAgICAuZXVyZWthIC5ldXJla2FfX21vZGFsIC5ldXJla2FfX21vZGFsLXBhbmVsIC5ldXJla2FfX2J1dHRvbi1iYXIgPiAqIHtcbiAgICAgICAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAgIC5ldXJla2EgLmV1cmVrYV9fbW9kYWwuZXVyZWthX19ncmVlZHkgLmV1cmVrYV9fbW9kYWwtcGFuZWwge1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMnJlbSk7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMnJlbSk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX3N0aWNreS1iYXIge1xuICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgbGVmdDogMC41cmVtO1xuICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgdG9wOiAwOyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX3N0aWNreS1iYXIgLmV1cmVrYV9fbm90aWZpY2F0aW9uLXdyYXBwZXIge1xuICAgICAgLyp0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVlbSk7XG4gICAgICAgICZbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9Ki8gfSB9XG5cbi5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciB7XG4gIHotaW5kZXg6IDk5OTk5O1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX19ub3RpZmljYXRpb24td3JhcHBlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyIGJ1dHRvbjpob3ZlciwgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyIGJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0MXB4KSB7XG4gICAgLmV1cmVrYS1yb290IC5ldXJla2FfX25vdGlmaWNhdGlvbi13cmFwcGVyID4gKiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG4uZXVyZWthLXJvb3QgLmV1cmVrYV9fY2hvb3NlLXJhZGlvIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDFweCkge1xuICAgIC5ldXJla2Etcm9vdCAuZXVyZWthX19jaG9vc2UtcmFkaW8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjNlbSk7XG4gICAgICB6LWluZGV4OiAwOyB9IH1cbiAgLmV1cmVrYS1yb290IC5ldXJla2FfX2Nob29zZS1yYWRpbyBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXdvSkluWmxjbk5wYjI0aU9pQXpMQW9KSW1acGJHVWlPaUFpY0hWaWJHbGpMMkZ6YzJWMGN5OWpjM012YldGcGJpNWpjM01pTEFvSkluTnZkWEpqWlhNaU9pQmJDZ2tKSW5OeVl5OXpZM056TDIxaGFXNHVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZYMkp2ZFhKaWIyNHVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZjMlYwZEdsdVozTXZYMlJsY0hKbFkyRjBhVzl1TFhkaGNtNXBibWR6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDNObGRIUnBibWR6TDE5d2NtVm1hWGhsY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5elpYUjBhVzVuY3k5ZmNIZ3RkRzh0WlcwdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmMyVjBkR2x1WjNNdlgyRnpjMlYwTFhCcGNHVnNhVzVsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDE5aWIzVnlZbTl1TFdSbGNISmxZMkYwWlM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5bWRXNWpkR2x2Ym5NdlgyRnpjMmxuYmkxcGJuQjFkSE11YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2Wm5WdVkzUnBiMjV6TDE5amIyNTBZV2x1Y3k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5bWRXNWpkR2x2Ym5NdlgyTnZiblJoYVc1ekxXWmhiSE41TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJaMWJtTjBhVzl1Y3k5ZmFYTXRiR1Z1WjNSb0xuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyWjFibU4wYVc5dWN5OWZhWE10YkdsbmFIUXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZablZ1WTNScGIyNXpMMTlwY3kxdWRXMWlaWEl1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2Wm5WdVkzUnBiMjV6TDE5cGN5MXphWHBsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJaMWJtTjBhVzl1Y3k5ZmNIZ3RkRzh0WlcwdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlpuVnVZM1JwYjI1ekwxOXdlQzEwYnkxeVpXMHVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZablZ1WTNScGIyNXpMMTl6YUdGa1pTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOW1kVzVqZEdsdmJuTXZYM04wY21sd0xYVnVhWFJ6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJaMWJtTjBhVzl1Y3k5ZmRHbHVkQzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTltZFc1amRHbHZibk12WDNSeVlXNXphWFJwYjI0dGNISnZjR1Z5ZEhrdGJtRnRaUzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTltZFc1amRHbHZibk12WDNWdWNHRmpheTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTltZFc1amRHbHZibk12WDIxdlpIVnNZWEl0YzJOaGJHVXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZhR1ZzY0dWeWN5OWZZMjl1ZG1WeWRDMTFibWwwY3k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5b1pXeHdaWEp6TDE5a2FYSmxZM1JwYjI1aGJDMTJZV3gxWlhNdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmFHVnNjR1Z5Y3k5ZlptOXVkQzF6YjNWeVkyVXRaR1ZqYkdGeVlYUnBiMjR1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2YUdWc2NHVnljeTlmWjNKaFpHbGxiblF0Y0c5emFYUnBiMjV6TFhCaGNuTmxjaTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlvWld4d1pYSnpMMTlzYVc1bFlYSXRZVzVuYkdVdGNHRnljMlZ5TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJobGJIQmxjbk12WDJ4cGJtVmhjaTFuY21Ga2FXVnVkQzF3WVhKelpYSXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZhR1ZzY0dWeWN5OWZiR2x1WldGeUxYQnZjMmwwYVc5dWN5MXdZWEp6WlhJdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmFHVnNjR1Z5Y3k5ZmJHbHVaV0Z5TFhOcFpHVXRZMjl5Ym1WeUxYQmhjbk5sY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5b1pXeHdaWEp6TDE5eVlXUnBZV3d0WVhKbkxYQmhjbk5sY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5b1pXeHdaWEp6TDE5eVlXUnBZV3d0Y0c5emFYUnBiMjV6TFhCaGNuTmxjaTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlvWld4d1pYSnpMMTl5WVdScFlXd3RaM0poWkdsbGJuUXRjR0Z5YzJWeUxuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyaGxiSEJsY25NdlgzSmxibVJsY2kxbmNtRmthV1Z1ZEhNdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dmFHVnNjR1Z5Y3k5ZmMyaGhjR1V0YzJsNlpTMXpkSEpwY0hCbGNpNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOW9aV3h3WlhKekwxOXpkSEl0ZEc4dGJuVnRMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgyRnVhVzFoZEdsdmJpNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5aGNIQmxZWEpoYm1ObExuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyTnpjek12WDJKaFkydG1ZV05sTFhacGMybGlhV3hwZEhrdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlkzTnpNeTlmWW1GamEyZHliM1Z1WkM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5amMzTXpMMTlpWVdOclozSnZkVzVrTFdsdFlXZGxMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgySnZjbVJsY2kxcGJXRm5aUzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlqYzNNekwxOWpZV3hqTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJOemN6TXZYMk52YkhWdGJuTXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZM056TXk5ZlptbHNkR1Z5TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJOemN6TXZYMlpzWlhndFltOTRMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgyWnZiblF0Wm1GalpTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5bWIyNTBMV1psWVhSMWNtVXRjMlYwZEdsdVozTXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZM056TXk5ZmFHbGtjR2t0YldWa2FXRXRjWFZsY25rdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlkzTnpNeTlmYUhsd2FHVnVjeTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlqYzNNekwxOXBiV0ZuWlMxeVpXNWtaWEpwYm1jdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dlkzTnpNeTlmYTJWNVpuSmhiV1Z6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJOemN6TXZYMnhwYm1WaGNpMW5jbUZrYVdWdWRDNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5d1pYSnpjR1ZqZEdsMlpTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5d2JHRmpaV2h2YkdSbGNpNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWpjM016TDE5eVlXUnBZV3d0WjNKaFpHbGxiblF1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WTNOek15OWZjMlZzWldOMGFXOXVMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMk56Y3pNdlgzUmxlSFF0WkdWamIzSmhkR2x2Ymk1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5amMzTXpMMTkwY21GdWMyWnZjbTB1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WTNOek15OWZkSEpoYm5OcGRHbHZiaTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTlqYzNNekwxOTFjMlZ5TFhObGJHVmpkQzV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTloWkdSdmJuTXZYMkp2Y21SbGNpMWpiMnh2Y2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdlltOTFjbUp2Ymk5aFpHUnZibk12WDJKdmNtUmxjaTF5WVdScGRYTXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZV1JrYjI1ekwxOWliM0prWlhJdGMzUjViR1V1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WVdSa2IyNXpMMTlpYjNKa1pYSXRkMmxrZEdndWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dllXUmtiMjV6TDE5aWRYUjBiMjV6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmWTJ4bFlYSm1hWGd1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WVdSa2IyNXpMMTlsYkd4cGNITnBjeTV6WTNOeklpd0tDUWtpYzNKakwzTmpjM012WW05MWNtSnZiaTloWkdSdmJuTXZYMlp2Ym5RdGMzUmhZMnR6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmYUdsa1pTMTBaWGgwTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmYldGeVoybHVMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTlpYjNWeVltOXVMMkZrWkc5dWN5OWZjR0ZrWkdsdVp5NXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZZbTkxY21KdmJpOWhaR1J2Ym5NdlgzQnZjMmwwYVc5dUxuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OWliM1Z5WW05dUwyRmtaRzl1Y3k5ZmNISmxabWw0WlhJdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dllXUmtiMjV6TDE5eVpYUnBibUV0YVcxaFoyVXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMkp2ZFhKaWIyNHZZV1JrYjI1ekwxOXphWHBsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmZEdWNGRDMXBibkIxZEhNdWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwySnZkWEppYjI0dllXUmtiMjV6TDE5MGFXMXBibWN0Wm5WdVkzUnBiMjV6TG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5aWIzVnlZbTl1TDJGa1pHOXVjeTlmZEhKcFlXNW5iR1V1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WVdSa2IyNXpMMTkzYjNKa0xYZHlZWEF1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDJKdmRYSmliMjR2WDJKdmRYSmliMjR0WkdWd2NtVmpZWFJsWkMxMWNHTnZiV2x1Wnk1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzlmYm1WaGRDNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZibVZoZEM5ZmJtVmhkQzFvWld4d1pYSnpMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTl1WldGMEwyMXBlR2x1Y3k5ZlkyeGxZWEptYVhndWMyTnpjeUlzQ2drSkluTnlZeTl6WTNOekwyNWxZWFF2Wm5WdVkzUnBiMjV6TDE5d2NtbDJZWFJsTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5dVpXRjBMMloxYm1OMGFXOXVjeTlmYm1WM0xXSnlaV0ZyY0c5cGJuUXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdmMyVjBkR2x1WjNNdlgyZHlhV1F1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDI1bFlYUXZjMlYwZEdsdVozTXZYM1pwYzNWaGJDMW5jbWxrTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5dVpXRjBMM05sZEhScGJtZHpMMTlrYVhOaFlteGxMWGRoY201cGJtZHpMbk5qYzNNaUxBb0pDU0p6Y21NdmMyTnpjeTl1WldGMEwyZHlhV1F2WDNCeWFYWmhkR1V1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDI1bFlYUXZaM0pwWkM5ZlltOTRMWE5wZW1sdVp5NXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZibVZoZEM5bmNtbGtMMTl2YldWbllTNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZibVZoZEM5bmNtbGtMMTl2ZFhSbGNpMWpiMjUwWVdsdVpYSXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdlozSnBaQzlmYzNCaGJpMWpiMngxYlc1ekxuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OXVaV0YwTDJkeWFXUXZYM0p2ZHk1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzluY21sa0wxOXphR2xtZEM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzluY21sa0wxOXdZV1F1YzJOemN5SXNDZ2tKSW5OeVl5OXpZM056TDI1bFlYUXZaM0pwWkM5ZlptbHNiQzF3WVhKbGJuUXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdlozSnBaQzlmYldWa2FXRXVjMk56Y3lJc0Nna0pJbk55WXk5elkzTnpMMjVsWVhRdlozSnBaQzlmZEc4dFpHVndjbVZqWVhSbExuTmpjM01pTEFvSkNTSnpjbU12YzJOemN5OXVaV0YwTDJkeWFXUXZYM1pwYzNWaGJDMW5jbWxrTG5OamMzTWlMQW9KQ1NKemNtTXZjMk56Y3k5dVpXRjBMMmR5YVdRdlgyUnBjM0JzWVhrdFkyOXVkR1Y0ZEM1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJtVmhkQzluY21sa0wxOWthWEpsWTNScGIyNHRZMjl1ZEdWNGRDNXpZM056SWl3S0NRa2ljM0pqTDNOamMzTXZjM0JsWXk5ZmRHRmpkV3hoY2k1elkzTnpJaXdLQ1FraWMzSmpMM05qYzNNdmJHRjViM1YwTDE5c1lYbHZkWFF1YzJOemN5SUtDVjBzQ2draWJtRnRaWE1pT2lCYlhTd0tDU0p0WVhCd2FXNW5jeUk2SUNKQlFVOUZMRUZCUVVFc1QwRkJUeXhEUVVGRE8wVkJRMDRzVlVGQlZTeEZRVUZGTEZWQlFWVXNSMEZEZGtJN08wRkJRMFFzUVVGQlVTeFBRVUZFTEVOQlFVTXNRMEZCUXl4RlFVRlVMRUZCUVZFc1QwRkJSQ3hEUVVGRExFTkJRVU1zUVVGRlVDeFBRVUZSTEVWQlJsWXNRVUZCVVN4UFFVRkVMRU5CUVVNc1EwRkJReXhCUVVkUUxGRkJRVk1zUTBGQlF6dEZRVU5TTEZWQlFWVXNSVUZCUlN4UFFVRlBMRWRCUTNCQ096dEJRWFZUVEN4QmRVZDRVVUVzVDNaSGQxRlBMRUZCT0ZCTUxIbENRVUV3UWl4RFFVTjRRaXhIUVVGSExFVkJMMUJRTEVGMVIzaFJRU3hQZGtkM1VVOHNRVUU0VUhWQ0xIZENRVUY1UWl4RFFVTnVSQ3hIUVVGSExFVkJMMUJRTEVGMVIzaFJRU3hQZGtkM1VVOHNRMEZ6WkV3c09FSkJRVGhDTEVOQlJUVkNMRTFCUVUwc1EzVkhhSFZDUnp0RlFVTlVMRXRCUVVzc1JVRkJReXhKUVVGSkxFZEJRMkk3TzBGMlIzTlJSQ3hCZFVjMVVFRXNUM1pITkZCUExFTkJLMFZNTEVWQlFVVXNRMEZCUVN4QlFVRkJMRk5CUVVNc1FVRkJRU3hIUVM5RlRDeEJkVWMxVUVFc1QzWkhORkJQTEVOQmJVWk1MRTFCUVUwc1JVRnVSbElzUVhWSE5WQkJMRTkyUnpSUVR5eERRWGRNVEN4TlFVRk5MRVZCZUV4U0xFRjFSelZRUVN4UGRrYzBVRThzUTBGM1RFY3NUMEZCVHl4RlFYaE1ha0lzUVhWSE5WQkJMRTkyUnpSUVR5eERRV3RsVEN4dlFrRkJiMElzUTBGSmJFSXNTMEZCU3l4RlFYUmxWQ3hCZFVjMVVFRXNUM1pITkZCUExFTkJlV3RDVEN4MVFrRkJkVUlzUTBGWmNrSXNkMEpCUVhkQ0xFTkJOa0owUWl4TFFVRkxMRU4xUnpreVFrRTdSVUZEVUN4TlFVRk5MRVZCUVVNc1QwRkJUeXhIUVVOcVFqczdRWFpITUZCRUxFRjFSM2hOUVN4UGRrZDNUVThzUTBGcGMwSk1MR05CUVdNc1JVRnFjMEpvUWl4QmRVZDRUVUVzVDNaSGQwMVBMRU5CYVhOQ1RDeGpRVUZqTEVOQlUxb3NiMEpCUVc5Q0xFTjFSMncxUWs0N1JVRlFaQ3hSUVVGUkxFVkJRVU1zVVVGQlVUdEZRVU5xUWl4SFFVRkhMRVZCUVVNc1EwRkJRenRGUVVOTUxFbEJRVWtzUlVGQlF5eERRVUZETzBWQlEwNHNTMEZCU3l4RlFVRkRMRU5CUVVNN1JVRkRVQ3hOUVVGTkxFVkJRVU1zUTBGQlF5eEhRVXRZT3p0QlFYTkNSRHM3UlVGRlJUdEJka2M0UzBZc1FVRTVVVUVzVDBFNFVVOHNRMEZyU0V3c1MwRkJTeXhEUVVGQkxFRkJRVUVzV1VGQlF5eERRVUZoTEUxQlFVMHNRVUZCYmtJc1NVRkRSaXhMUVVGTExFVkJia2hZTEVGQk9WRkJMRTlCT0ZGUExFTkJkMGhNTEcxQ1FVRnRRaXhEUVVOcVFpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFTkJRV0VzVVVGQlVTeEhRVU4yUWl4TFFVRkxMRVZCTVVoaUxFRkJPVkZCTEU5Qk9GRlBMRU5CWjBsTUxFMUJRVTBzUTBGRFNpeEJRVUZCTEZsQlFVVXNRMEZCWVN4TlFVRk5MRUZCUVc1Q0xFVkJMMWxITzBWQlExQXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4dFEwRkJiVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zYlVOQlFXZEVMRWRCUXpsSU96dEJkMGMwVGtRc1FYaEhNVTVCTEZsM1J6Qk9XU3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFUUkNSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVU5TTEVWQlFVVXNRVUZEU0N4WlFVRmxMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJia2MxUWl4QmVFY3hUa0VzV1hkSE1FNVpMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFUUkNSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVU5TTEVWQlFVVXNRVUZEU0N4WlFVRmxMRU5CUVVFc1FVRkJRU3hEUVVGRExFZDRSMnhKTlVJc1FVRXpURUVzWjBKQk1reG5RaXhGUVN0RmFFSXNRVUV4VVVFc1QwRXdVVThzUVVFNFpVd3NTVUZCVFN4RFFVRkJMRUZCUVVFc2IwSkJRVzlDTEVWQlEzaENMRzlDUVVGdlFpeERRVTFzUWl4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVFVGQlRTeEJRVUZZTEVkQmNtWmFMRUZCTVZGQkxFOUJNRkZQTEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZUY2tJc1RVRkJUU3hGUVd4c1FsWXNRVUV4VVVFc1QwRXdVVThzUTBGNWEwSk1MSFZDUVVGMVFpeERRVmx5UWl4M1FrRkJkMElzUTBGVmRFSXNTMEZCU3l4RFFVRkJMRUZCUVVFc1NVRkJReXhEUVVGTExFOUJRVThzUVVGQldpeEhRUzlzUWxvc1FVRXhVVUVzVDBFd1VVOHNRMEY1YTBKTUxIVkNRVUYxUWl4RFFWbHlRaXgzUWtGQmQwSXNRMEZWUkN4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVlVGQlZTeEJRVUZtTEVWQmVqSkNhRUk3UlVGQlJTdzJSa0ZCTmtZN1JVRnVRamxITEZGQlFWRXNSVUZCUlN4dFFrRkJiVUk3UlVGRE4wSXNTVUZCU1N4RlFVRkZMSEZDUVVGeFFqdEZRVUZGTEdOQlFXTTdSVUZETTBNc1NVRkJTU3hGUVVGRkxIZENRVUYzUWp0RlFVTTVRaXhQUVVGUExFVkJRVU1zV1VGQldUdEZRVU53UWl4TlFVRk5MRVZCUVVNc1dVRkJXVHRGUVVOdVFpeE5RVUZOTEVWQlFVVXNZMEZCWXp0RlFVTjBRaXhMUVVGTExFVkJRVVVzWTBGQll6dEZRVU55UWl4UlFVRlJMRVZCUVVVc1RVRkJUU3hIUVdOcVFqdEZRV0pETEVGQlEwVXNTVUZFUlN4QlFVRkJMRTFCUVUwc1EzZEhjVTlhTEZsQlFWa3NRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBFMFFrUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkRVaXhGUVVGRkxFRkJRMGdzV1VGQlpTeERRVUZCTEVGQlFVRXNRMEZCUXl4RmVFZDJWWGhDTEVOQlFVTXNSWGRIYjA5TUxFRjRSM0JQU1N4WmQwZHZUMUVzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVONFIzSlRlRUlzU1VGQlNTeEJRVUZCTEUxQlFVMHNRM2RITUZOTUxFdEJRVXNzUjBFMFFrUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkRVaXhGUVVGRkxFRkJRMGdzV1VGQlpTeERRVUZCTEVGQlFVRXNRMEZCUXl4RmVFZDJWWGhDTEVOQlFVTXNSVUZFU0N4QlFVTkZMRWxCUkVVc1FVRkJRU3hOUVVGTkxFTjNSM0ZQV2l4WlFVRlpMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFUUkNSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVU5TTEVWQlFVVXNRVUZEU0N4WlFVRmxMRU5CUVVFc1FVRkJRU3hEUVVGRExFVjRSM1pWZUVJc1EwRkJReXhGZDBkdlQwd3NRWGhIY0U5SkxGbDNSMjlQVVN4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTjRSM0pUZUVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTNkSE1GTk1MRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVlhoQ0xFTkJRVU1zUlVGRVNDeEJRVU5GTEVsQlJFVXNRVUZCUVN4TlFVRk5MRU5CYzAxYUxHZENRVUZuUWl4RFFYSk5XaXhEUVVGRExFVkJSRWdzUVVGRFJTeEpRVVJGTEVGQlFVRXNUVUZCVFN4RFFYRlNXaXhQUVVGUExFRkJPR1ZNTEVsQlFVMHNRMEZCUVN4QlFVRkJMRzlDUVVGdlFpeEZRVU40UWl4dlFrRkJiMElzUTBGTmJFSXNTMEZCU3l4RFFVRkJMRUZCUVVFc1NVRkJReXhEUVVGTExFMUJRVTBzUVVGQldDeEZRWHAzUWxJc1EwRkJReXhGUVc5U1RDeEJRWEJTU1N4UFFXOVNSeXhCUVRobFRDeEpRVUZOTEVOQlFVRXNRVUZCUVN4dlFrRkJiMElzUlVGRGVFSXNiMEpCUVc5Q0xFTkJjSGRDZEVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTBFd2QwSk9MRXRCUVVzc1EwRkJRU3hCUVVGQkxFbEJRVU1zUTBGQlN5eE5RVUZOTEVGQlFWZ3NSVUY2ZDBKU0xFTkJRVU1zUlVGRVNDeEJRVU5GTEVsQlJFVXNRVUZCUVN4TlFVRk5MRU5CY1ZKYUxFOUJRVThzUTBGNWEwSk1MSFZDUVVGMVFpeERRVk55UWl4TlFVRk5MRU5CZERKQ1RpeERRVUZETEVWQmIxSk1MRUZCY0ZKSkxFOUJiMUpITEVOQmVXdENUQ3gxUWtGQmRVSXNRMEU1TVVKMlFpeEpRVUZKTEVGQlFVRXNUVUZCVFN4RFFYVXlRbElzVFVGQlRTeERRWFF5UWs0c1EwRkJReXhGUVVSSUxFRkJRMFVzU1VGRVJTeEJRVUZCTEUxQlFVMHNRMEZ4VWxvc1QwRkJUeXhEUVhsclFrd3NkVUpCUVhWQ0xFTkJXWEpDTEhkQ1FVRjNRaXhEUVZWMFFpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFVkJiak5DVWl4RFFVRkRMRVZCYjFKTUxFRkJjRkpKTEU5QmIxSkhMRU5CZVd0Q1RDeDFRa0ZCZFVJc1EwRlpja0lzZDBKQlFYZENMRU5CTVRKQ01VSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EwRnZNMEpPTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWxCUVVNc1EwRkJTeXhQUVVGUExFRkJRVm9zUlVGdU0wSlNMRU5CUVVNc1JVRkVTQ3hCUVVORkxFbEJSRVVzUVVGQlFTeE5RVUZOTEVOQmNWSmFMRTlCUVU4c1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVZseVFpeDNRa0ZCZDBJc1EwRlZSQ3hMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NWVUZCVlN4QlFVRm1MRVZCYmpOQ04wSXNRMEZCUXl4RlFXOVNUQ3hCUVhCU1NTeFBRVzlTUnl4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFURXlRakZDTEVsQlFVa3NRVUZCUVN4TlFVRk5MRU5CYnpOQ1pTeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1ZVRkJWU3hCUVVGbUxFVkJiak5DTjBJc1EwRkJReXhGUVVSSUxFRkJRMGtzU1VGRVFTeEJRVUZCTEUxQlFVMHNRM2RIY1U5YUxGbEJRVmtzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVlhSQ0xFdEJRVXNzUlhkSGIwOVlMRUY0UjNCUFRTeFpkMGR2VDAwc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTjRSM0pUZUVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTNkSE1GTk1MRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVlhSQ0xFdEJRVXNzUlVGRVZDeEJRVU5KTEVsQlJFRXNRVUZCUVN4TlFVRk5MRU4zUjNGUFdpeFpRVUZaTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRUZCZVVKd1JDeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVFJDUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVOU0xFVkJRVVVzUVVGRFNDeFpRVUZsTEVOQlFVRXNRVUZCUVN4RFFVRkRMRVY0UjNaVmRFSXNTMEZCU3l4RmQwZHZUMWdzUVhoSGNFOU5MRmwzUjI5UFRTeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU40UjNKVGVFSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EzZEhNRk5NTEV0QlFVc3NSMEUwUWtRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGRFVpeEZRVUZGTEVGQlEwZ3NXVUZCWlN4RFFVRkJMRUZCUVVFc1EwRkJReXhGZUVkMlZYUkNMRXRCUVVzc1JVRkVWQ3hCUVVOSkxFbEJSRUVzUVVGQlFTeE5RVUZOTEVOQmMwMWFMR2RDUVVGblFpeERRWEpOVml4TFFVRkxMRVZCUkZRc1FVRkRTU3hKUVVSQkxFRkJRVUVzVFVGQlRTeERRWEZTV2l4UFFVRlBMRUZCT0dWTUxFbEJRVTBzUTBGQlFTeEJRVUZCTEc5Q1FVRnZRaXhGUVVONFFpeHZRa0ZCYjBJc1EwRk5iRUlzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RFFVRkxMRTFCUVUwc1FVRkJXQ3hGUVhwM1FrNHNTMEZCU3l4RlFXOVNXQ3hCUVhCU1RTeFBRVzlTUXl4QlFUaGxUQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeHZRa0ZCYjBJc1JVRkRlRUlzYjBKQlFXOUNMRU5CY0hkQ2RFSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EwRXdkMEpPTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWxCUVVNc1EwRkJTeXhOUVVGTkxFRkJRVmdzUlVGNmQwSk9MRXRCUVVzc1JVRkVWQ3hCUVVOSkxFbEJSRUVzUVVGQlFTeE5RVUZOTEVOQmNWSmFMRTlCUVU4c1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVZOeVFpeE5RVUZOTEVOQmRESkNTaXhMUVVGTExFVkJiMUpZTEVGQmNGSk5MRTlCYjFKRExFTkJlV3RDVEN4MVFrRkJkVUlzUTBFNU1VSjJRaXhKUVVGSkxFRkJRVUVzVFVGQlRTeERRWFV5UWxJc1RVRkJUU3hEUVhReVFrb3NTMEZCU3l4RlFVUlVMRUZCUTBrc1NVRkVRU3hCUVVGQkxFMUJRVTBzUTBGeFVsb3NUMEZCVHl4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFWVjBRaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUMEZCVHl4QlFVRmFMRVZCYmpOQ1RpeExRVUZMTEVWQmIxSllMRUZCY0ZKTkxFOUJiMUpETEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZaY2tJc2QwSkJRWGRDTEVOQk1USkNNVUlzU1VGQlNTeEJRVUZCTEUxQlFVMHNRMEZ2TTBKT0xFdEJRVXNzUTBGQlFTeEJRVUZCTEVsQlFVTXNRMEZCU3l4UFFVRlBMRUZCUVZvc1JVRnVNMEpPTEV0QlFVc3NSVUZFVkN4QlFVTkpMRWxCUkVFc1FVRkJRU3hOUVVGTkxFTkJjVkphTEU5QlFVOHNRMEY1YTBKTUxIVkNRVUYxUWl4RFFWbHlRaXgzUWtGQmQwSXNRMEZWUkN4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVlVGQlZTeEJRVUZtTEVWQmJqTkNNMElzUzBGQlN5eEZRVzlTV0N4QlFYQlNUU3hQUVc5U1F5eERRWGxyUWt3c2RVSkJRWFZDTEVOQldYSkNMSGRDUVVGM1FpeERRVEV5UWpGQ0xFbEJRVWtzUVVGQlFTeE5RVUZOTEVOQmJ6TkNaU3hMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NWVUZCVlN4QlFVRm1MRVZCYmpOQ00wSXNTMEZCU3l4RlFVUlVMRUZCUTFVc1NVRkVUaXhCUVVGQkxFMUJRVTBzUTNkSGNVOWFMRmxCUVZrc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEUwUWtRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGRFVpeEZRVUZGTEVGQlEwZ3NXVUZCWlN4RFFVRkJMRUZCUVVFc1EwRkJReXhGZUVkMlZXaENMRTFCUVUwc1JYZEhiMDlzUWl4QmVFZHdUMWtzV1hkSGIwOUJMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEZUVkeVUzaENMRWxCUVVrc1FVRkJRU3hOUVVGTkxFTjNSekJUVEN4TFFVRkxMRWRCTkVKRUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlExSXNSVUZCUlN4QlFVTklMRmxCUVdVc1EwRkJRU3hCUVVGQkxFTkJRVU1zUlhoSGRsVm9RaXhOUVVGTkxFVkJSR2hDTEVGQlExVXNTVUZFVGl4QlFVRkJMRTFCUVUwc1EzZEhjVTlhTEZsQlFWa3NRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1FVRjVRbkJFTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQk5FSkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJRMUlzUlVGQlJTeEJRVU5JTEZsQlFXVXNRMEZCUVN4QlFVRkJMRU5CUVVNc1JYaEhkbFZvUWl4TlFVRk5MRVYzUjI5UGJFSXNRWGhIY0U5WkxGbDNSMjlQUVN4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTjRSM0pUZUVJc1NVRkJTU3hCUVVGQkxFMUJRVTBzUTNkSE1GTk1MRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEZlRWQyVldoQ0xFMUJRVTBzUlVGRWFFSXNRVUZEVlN4SlFVUk9MRUZCUVVFc1RVRkJUU3hEUVhOTldpeG5Ra0ZCWjBJc1EwRnlUVW9zVFVGQlRTeEZRVVJvUWl4QlFVTlZMRWxCUkU0c1FVRkJRU3hOUVVGTkxFTkJjVkphTEU5QlFVOHNRVUU0WlV3c1NVRkJUU3hEUVVGQkxFRkJRVUVzYjBKQlFXOUNMRVZCUTNoQ0xHOUNRVUZ2UWl4RFFVMXNRaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUVUZCVFN4QlFVRllMRVZCZW5kQ1FTeE5RVUZOTEVWQmIxSnNRaXhCUVhCU1dTeFBRVzlTVEN4QlFUaGxUQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeHZRa0ZCYjBJc1JVRkRlRUlzYjBKQlFXOUNMRU5CY0hkQ2RFSXNTVUZCU1N4QlFVRkJMRTFCUVUwc1EwRXdkMEpPTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWxCUVVNc1EwRkJTeXhOUVVGTkxFRkJRVmdzUlVGNmQwSkJMRTFCUVUwc1JVRkVhRUlzUVVGRFZTeEpRVVJPTEVGQlFVRXNUVUZCVFN4RFFYRlNXaXhQUVVGUExFTkJlV3RDVEN4MVFrRkJkVUlzUTBGVGNrSXNUVUZCVFN4RFFYUXlRa1VzVFVGQlRTeEZRVzlTYkVJc1FVRndVbGtzVDBGdlVrd3NRMEY1YTBKTUxIVkNRVUYxUWl4RFFUa3hRblpDTEVsQlFVa3NRVUZCUVN4TlFVRk5MRU5CZFRKQ1VpeE5RVUZOTEVOQmRESkNSU3hOUVVGTkxFVkJSR2hDTEVGQlExVXNTVUZFVGl4QlFVRkJMRTFCUVUwc1EwRnhVbG9zVDBGQlR5eERRWGxyUWt3c2RVSkJRWFZDTEVOQldYSkNMSGRDUVVGM1FpeERRVlYwUWl4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVDBGQlR5eEJRVUZhTEVWQmJqTkNRU3hOUVVGTkxFVkJiMUpzUWl4QlFYQlNXU3hQUVc5U1RDeERRWGxyUWt3c2RVSkJRWFZDTEVOQldYSkNMSGRDUVVGM1FpeERRVEV5UWpGQ0xFbEJRVWtzUVVGQlFTeE5RVUZOTEVOQmJ6TkNUaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUMEZCVHl4QlFVRmFMRVZCYmpOQ1FTeE5RVUZOTEVWQlJHaENMRUZCUTFVc1NVRkVUaXhCUVVGQkxFMUJRVTBzUTBGeFVsb3NUMEZCVHl4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFWVkVMRXRCUVVzc1EwRkJRU3hCUVVGQkxFbEJRVU1zUTBGQlN5eFZRVUZWTEVGQlFXWXNSVUZ1TTBKeVFpeE5RVUZOTEVWQmIxSnNRaXhCUVhCU1dTeFBRVzlTVEN4RFFYbHJRa3dzZFVKQlFYVkNMRU5CV1hKQ0xIZENRVUYzUWl4RFFURXlRakZDTEVsQlFVa3NRVUZCUVN4TlFVRk5MRU5CYnpOQ1pTeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1ZVRkJWU3hCUVVGbUxFVkJiak5DY2tJc1RVRkJUU3hEUVVGRE8wbEJRMklzVDBGQlR5eEZRVUZGTEdWQlFXVXNSMEZEZWtJN08wTjNSM0JEVEN4QlFVRkJMRUZCUVVFc1MwRkJReXhGUVVGUExHVkJRV1VzUVVGQmRFSXNTVUZCZVVJc1FVRkJRU3hCUVVGQkxFdEJRVU1zUlVGQlR5eG5Ra0ZCWjBJc1FVRkJka0lzUlVGQmVVSTdSVUZEYkVRc1QwRkJUeXhGUVVGRExFTkJRVU1zUjBGUFZqdEZUamhGUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzB0TmRFWjJReXhCUVVGQkxFRkJRVUVzUzBGQlF5eEZRVUZQTEdWQlFXVXNRVUZCZEVJc1NVRkJlVUlzUVVGQlFTeEJRVUZCTEV0QlFVTXNSVUZCVHl4blFrRkJaMElzUVVGQmRrSXNSVUZCZVVJN1RVRkhhRVFzVDBGQlR5eEZRVUZGTEVsQlFVazdUVUZEWWl4VlFVRlZMRVZCUVVNc1RVRkJUVHROUVVOcVFpeGpRVUZqTEVWQlFVVXNUVUZCVFN4SFFVZDZRanM3UVVGRlJDeEJRVUZCTEZsQlFWa3NRMEZCUXp0RlFYZEhXRHM3T3pzN096czdPenM3UzBGWFJ5eEZRWE5GU2p0RlFYcE1SQ3hCUVVWRkxGbEJSbFVzUVVGRlZpeHZRa0ZCY1VJc1EwRkJRenRKUVVOd1FpeExRVUZMTEVWQlFVVXNTMEZCU3p0SlFVTmFMRTFCUVUwc1JVRkJSU3hMUVVGTE8wbEJRMklzVlVGQlZTeEZRVUZGTEVsQlFVazdTVUZEYUVJc1ZVRkJWU3hGUVVGRkxIZENRVUYzUWl4SFFVTnlRenRGUVZCSUxFRkJVMFVzV1VGVVZTeERRVk5XTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1JVRkJTeXh0UWtGQmJVSXNRVUZCZUVJc1JVRkJNRUk3U1VGRE9VSXNWMEZCVnl4RlFVRkZMRXRCUVVzc1IwRkRia0k3UlVGWVNDeEJRV2xDV1N4WlFXcENRU3hEUVdGV0xIbENRVUY1UWl4RFFVTjJRaXhMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTmFMRVZCUVVVc1FVRkRTQ3d5UWtGQk5rSXNSMEZEZUVJc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RlFXcENiRU1zUVVGcFFsa3NXVUZxUWtFc1EwRmhWaXg1UWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRUZCUXpKQ0xFMUJRVkVzUjBGRGFrTXNSVUZCUlN4QlFVRkJMRzlDUVVGdlFpeEZRV3BDYkVNc1FVRnBRbGtzV1VGcVFrRXNRMEZoYVVJc2QwSkJRWGRDTEVOQlEycEVMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExb3NSVUZCUlN4QlFVTklMREpDUVVFMlFpeEhRVU40UWl4RlFVRkZMRUZCUVVFc2IwSkJRVzlDTEVWQmFrSnNReXhCUVdsQ1dTeFpRV3BDUVN4RFFXRnBRaXgzUWtGQmQwSXNRMEZEYWtRc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRUZCUXpKQ0xFMUJRVkVzUjBGRGFrTXNSVUZCUlN4QlFVRkJMRzlDUVVGdlFpeERRVUZETzBsQlEzWkNMRTlCUVU4c1JVRkJSU3huUWtGQlowSXNSMEZKTVVJN1NVRjBRbGdzUVVGcFFsa3NXVUZxUWtFc1EwRmhWaXg1UWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRUZCUTBnc01rSkJRVFpDTEVkQlEzaENMRVZCUVVVc1FVRkJRU3h2UWtGQmIwSXNRMEZGZWtJc1FVRkJRU3hOUVVGTExFRkJRVUVzUjBGdVFtUXNRVUZwUWxrc1dVRnFRa0VzUTBGaFZpeDVRa0ZCZVVJc1EwRkRka0lzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRXaXhGUVVGRkxFRkJRekpDTEUxQlFWRXNSMEZEYWtNc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RFFVVjZRaXhCUVVGQkxFMUJRVXNzUVVGQlFTeEhRVzVDWkN4QlFXbENXU3haUVdwQ1FTeERRV0ZwUWl4M1FrRkJkMElzUTBGRGFrUXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFdpeEZRVUZGTEVGQlEwZ3NNa0pCUVRaQ0xFZEJRM2hDTEVWQlFVVXNRVUZCUVN4dlFrRkJiMElzUTBGRmVrSXNRVUZCUVN4TlFVRkxMRUZCUVVFc1IwRnVRbVFzUVVGcFFsa3NXVUZxUWtFc1EwRmhhVUlzZDBKQlFYZENMRU5CUTJwRUxFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFvc1JVRkJSU3hCUVVNeVFpeE5RVUZSTEVkQlEycERMRVZCUVVVc1FVRkJRU3h2UWtGQmIwSXNRMEZGZWtJc1FVRkJRU3hOUVVGTExFRkJRVUVzUlVGQlVUdE5RVU5TTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUjBGRE1VSTdSVTUxUkZRc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0SlRUVkZka01zUVVGNVFsVXNXVUY2UWtVc1EwRmhWaXg1UWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEV2l4RlFVRkZMRWRCVlVFc1JVRkJSU3hCUVVGQkxHbENRVUZwUWl4RlFYcENOMElzUVVGNVFsVXNXVUY2UWtVc1EwRmhhVUlzZDBKQlFYZENMRU5CUTJwRUxFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFvc1JVRkJSU3hIUVZWQkxFVkJRVVVzUVVGQlFTeHBRa0ZCYVVJc1EwRkJRenROUVVWc1FpeFZRVUZWTEVWQlFVVXNUVUZCVFN4SFFVVnlRanRGUVRkQ1ZDeEJRV2REV1N4WlFXaERRU3hEUVdGV0xIbENRVUY1UWl4RFFVTjJRaXhMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTmFMRVZCUVVVc1FVRm5Ra2dzVFVGQlVTeEhRVU5JTEVWQlFVVXNRVUZCUVN4dlFrRkJiMElzUlVGb1EyeERMRUZCWjBOWkxGbEJhRU5CTEVOQllXbENMSGRDUVVGM1FpeERRVU5xUkN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5hTEVWQlFVVXNRVUZuUWtnc1RVRkJVU3hIUVVOSUxFVkJRVVVzUVVGQlFTeHZRa0ZCYjBJc1EwRkJRenRKUVVOMlFpeFBRVUZQTEVWQlFVVXNaMEpCUVdkQ0xFZEJTVEZDTzBsQmNrTllMRUZCWjBOWkxGbEJhRU5CTEVOQllWWXNlVUpCUVhsQ0xFTkJRM1pDTEV0QlFVc3NRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMW9zUlVGQlJTeEJRV2RDU0N4TlFVRlJMRWRCUTBnc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RFFVVjJRaXhCUVVGQkxFMUJRVWNzUVVGQlFTeEhRV3hEWkN4QlFXZERXU3haUVdoRFFTeERRV0ZwUWl4M1FrRkJkMElzUTBGRGFrUXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFdpeEZRVUZGTEVGQlowSklMRTFCUVZFc1IwRkRTQ3hGUVVGRkxFRkJRVUVzYjBKQlFXOUNMRU5CUlhaQ0xFRkJRVUVzVFVGQlJ5eEJRVUZCTEVWQlFWRTdUVUZEVWl4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVkQlF6RkNPMFZCY0VOaUxFRkJlVU5aTEZsQmVrTkJMRU5CWVZZc2VVSkJRWGxDTEVOQlEzWkNMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExb3NSVUZCUlN4QlFYbENTQ3hoUVVGbExFZEJRMVlzUlVGQlJTeEJRVUZCTEc5Q1FVRnZRaXhGUVhwRGJFTXNRVUY1UTFrc1dVRjZRMEVzUTBGaGFVSXNkMEpCUVhkQ0xFTkJRMnBFTEV0QlFVc3NRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMW9zUlVGQlJTeEJRWGxDU0N4aFFVRmxMRWRCUTFZc1JVRkJSU3hCUVVGQkxHOUNRVUZ2UWl4RFFVRkRPMGxCUTNaQ0xFOUJRVThzUlVGQlJTeG5Ra0ZCWjBJc1IwRkpNVUk3U1VFNVExZ3NRVUY1UTFrc1dVRjZRMEVzUTBGaFZpeDVRa0ZCZVVJc1EwRkRka0lzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRXaXhGUVVGRkxFRkJlVUpJTEdGQlFXVXNSMEZEVml4RlFVRkZMRUZCUVVFc2IwSkJRVzlDTEVOQlJYWkNMRUZCUVVFc1RVRkJSeXhCUVVGQkxFZEJNME5rTEVGQmVVTlpMRmxCZWtOQkxFTkJZV2xDTEhkQ1FVRjNRaXhEUVVOcVJDeExRVUZMTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVOYUxFVkJRVVVzUVVGNVFrZ3NZVUZCWlN4SFFVTldMRVZCUVVVc1FVRkJRU3h2UWtGQmIwSXNRMEZGZGtJc1FVRkJRU3hOUVVGSExFRkJRVUVzUlVGQlVUdE5RVU5TTEU5QlFVOHNSVUZCUlN4blFrRkJaMElzUjBGRE1VSTdSVUUzUTJJc1FVRjFSRThzV1VGMlJFc3NRMEZ4UkZnc1MwRkJTeXhCUVVOSUxFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEZRVUZGTzBsQlEyWXNUMEZCVHl4RlFVRkRMRWxCUVVrN1NVRkRXaXhUUVVGVExFVkJRVU1zU1VGQlNUdEpRVWxrTzFWQlEwY3NSVUZ6UTBvN1NVRndSMDRzUVVFd1JGTXNXVUV4UkVjc1EwRnhSRmdzUzBGQlN5eEJRVU5JTEVsQlFVMHNRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRVaXhGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVZFlMRU5CUVVNc1EwRkJRenROUVVOR0xFbEJRVWtzUlVGQlF5eFJRVUZSTEVkQlEyUTdTVUZKZFVJc1UwRkJReXhGUVVGa0xFOUJRVThzUlVGQlF5eEpRVUZKTzAxQmFFVTVRaXhCUVhWRVR5eFpRWFpFU3l4RFFYRkVXQ3hMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVWQlFVVTdVVUZWWWl4UFFVRlBMRVZCUVVNc1NVRkJTU3hIUVcxRFpqdFJRWEJIVGl4QlFYVkZWeXhaUVhaRlF5eERRWEZFV0N4TFFVRkxMRUZCUTBnc1NVRkJUU3hEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJaVlFzUlVGQlJTeERRVU5HTEdsQ1FVRnBRaXhEUVVGRE8xVkJRMmhDTEZOQlFWTXNSVUZCUXl4TFFVRkxMRWRCUTJoQ08xRkJla1ZhTEVGQk1FVlhMRmxCTVVWRExFTkJjVVJZTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRmxWQ3hGUVVGRkxFTkJTVVlzYjBKQlFXOUNMRU5CUVVNN1ZVRkRia0lzVTBGQlV5eEZRVUZETEVsQlFVa3NSMEZEWmp0UlFUVkZXaXhCUVhORlZ5eFpRWFJGUXl4RFFYRkVXQ3hMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlpWUXNSVUZCUlN4QlFVOUdMRzlDUVVGeFFpeERRVUZETzFWQlEzQkNMRk5CUVZNc1JVRkJReXhQUVVGUExFZEJRMnhDTzFGQkwwVmFMRUZCYzBWWExGbEJkRVZETEVOQmNVUllMRXRCUVVzc1FVRkRTQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGbFZDeEZRVUZGTEVGQlZVWXNiVUpCUVc5Q0xFTkJRVU03VlVGRGJrSXNVMEZCVXl4RlFVRkRMRlZCUVZVc1IwRkpja0k3VlU1VVVpeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8xbE5OVVYyUXl4QlFYTkZWeXhaUVhSRlF5eERRWEZFV0N4TFFVRkxMRUZCUTBnc1NVRkJUU3hEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJaVlFzUlVGQlJTeEJRVlZHTEcxQ1FVRnZRaXhEUVVGRE8yTkJSMnBDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUldoQ08xRkJja1phTEVGQmMwVlhMRmxCZEVWRExFTkJjVVJZTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRmxWQ3hGUVVGRkxFRkJaMEpHTEd0Q1FVRnRRaXhEUVVGRE8xVkJRMnhDTEZOQlFWTXNSVUZCUXl4VFFVRlRMRWRCU1hCQ08xVk9abElzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRaVFRWRmRrTXNRVUZ6UlZjc1dVRjBSVU1zUTBGeFJGZ3NTMEZCU3l4QlFVTklMRWxCUVUwc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFVpeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVdWVUxFVkJRVVVzUVVGblFrWXNhMEpCUVcxQ0xFTkJRVU03WTBGSGFFSXNUMEZCVHl4RlFVRkZMRWxCUVVrc1IwRkZhRUk3VVVFelJsb3NRVUZ6UlZjc1dVRjBSVU1zUTBGeFJGZ3NTMEZCU3l4QlFVTklMRWxCUVUwc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFVpeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVdWVUxFVkJRVVVzUVVGelFrWXNhMEpCUVcxQ0xFTkJRVU03VlVGRGJFSXNVMEZCVXl4RlFVRkRMRk5CUVZNc1IwRkpjRUk3VlU1eVFsSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dFpUVFZGZGtNc1FVRnpSVmNzV1VGMFJVTXNRMEZ4UkZnc1MwRkJTeXhCUVVOSUxFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRV1ZVTEVWQlFVVXNRVUZ6UWtZc2EwSkJRVzFDTEVOQlFVTTdZMEZIYUVJc1QwRkJUeXhGUVVGRkxFbEJRVWtzUjBGRmFFSTdSVUYzUW5GQ0xGTkJRVU1zUlVGQlpDeFBRVUZQTEVWQlFVTXNTVUZCU1R0SlFYcElhRU1zUVVGclNXRXNXVUZzU1VRc1EwRnhTRllzVDBGQlR5eERRVU5PTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRlZWQ3hGUVVGRkxFRkJRMFlzWlVGQlowSXNRMEZCUXp0TlFVTm1MRk5CUVZNc1JVRkJReXhOUVVGTkxFZEJRMnBDTzBsQmNrbGtMRUZCYTBsaExGbEJiRWxFTEVOQmNVaFdMRTlCUVU4c1EwRkRUaXhMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlZWUXNSVUZCUlN4QlFVbEdMR2xDUVVGclFpeERRVUZETzAxQlEycENMRk5CUVZNc1JVRkJReXhMUVVGTExFZEJRMmhDTzBsQmVFbGtMRUZCYTBsaExGbEJiRWxFTEVOQmNVaFdMRTlCUVU4c1EwRkRUaXhMUVVGTExFRkJRMGdzU1VGQlRTeERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVTlNMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlZWUXNSVUZCUlN4QlFVOUdMRzlDUVVGeFFpeERRVUZETzAxQlEzQkNMRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJRMlk3U1VFelNXUXNRVUZyU1dFc1dVRnNTVVFzUTBGeFNGWXNUMEZCVHl4RFFVTk9MRXRCUVVzc1FVRkRTQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGVlZDeEZRVUZGTEVGQlZVWXNiMEpCUVhGQ0xFTkJRVU03VFVGRGNFSXNVMEZCVXl4RlFVRkRMRTlCUVU4c1IwRkRiRUk3U1VFNVNXUXNRVUZyU1dFc1dVRnNTVVFzUTBGeFNGWXNUMEZCVHl4RFFVTk9MRXRCUVVzc1FVRkRTQ3hKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGVlZDeEZRVUZGTEVGQllVWXNiVUpCUVc5Q0xFTkJRVU03VFVGRGJrSXNVMEZCVXl4RlFVRkRMRlZCUVZVc1IwRkpja0k3VFU1NFJWWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dFJUVFZGZGtNc1FVRnJTV0VzV1VGc1NVUXNRMEZ4U0ZZc1QwRkJUeXhEUVVOT0xFdEJRVXNzUVVGRFNDeEpRVUZOTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFJc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZWVkN4RlFVRkZMRUZCWVVZc2JVSkJRVzlDTEVOQlFVTTdWVUZIYWtJc1QwRkJUeXhGUVVGRkxFbEJRVWtzUjBGRmFFSTdTVUZ3U21Rc1FVRnJTV0VzV1VGc1NVUXNRMEZ4U0ZZc1QwRkJUeXhEUVVOT0xFdEJRVXNzUVVGRFNDeEpRVUZOTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUTFJc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZWVkN4RlFVRkZMRUZCYlVKR0xHdENRVUZ0UWl4RFFVRkRPMDFCUTJ4Q0xGTkJRVk1zUlVGQlF5eFRRVUZUTEVkQlNYQkNPMDFPT1VWV0xFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1VVMDFSWFpETEVGQmEwbGhMRmxCYkVsRUxFTkJjVWhXTEU5QlFVOHNRMEZEVGl4TFFVRkxMRUZCUTBnc1NVRkJUU3hEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJWVlFzUlVGQlJTeEJRVzFDUml4clFrRkJiVUlzUTBGQlF6dFZRVWRvUWl4UFFVRlBMRVZCUVVVc1NVRkJTU3hIUVVWb1FqdEpRVEZLWkN4QlFXdEpZU3haUVd4SlJDeERRWEZJVml4UFFVRlBMRU5CUTA0c1MwRkJTeXhCUVVOSUxFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVlZVTEVWQlFVVXNRVUY1UWtZc2EwSkJRVzFDTEVOQlFVTTdUVUZEYkVJc1UwRkJVeXhGUVVGRExGTkJRVk1zUjBGSmNFSTdUVTV3UmxZc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0UlRUVkZka01zUVVGclNXRXNXVUZzU1VRc1EwRnhTRllzVDBGQlR5eERRVU5PTEV0QlFVc3NRVUZEU0N4SlFVRk5MRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRMUlzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRlZWQ3hGUVVGRkxFRkJlVUpHTEd0Q1FVRnRRaXhEUVVGRE8xVkJSMmhDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUldoQ08wVkJXV3RDTEZOQlFVTXNSVUZCWkN4UFFVRlBMRVZCUVVNc1NVRkJTVHRKVG1oSE0wSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5UVFZGZGtNc1FVRXlTMUVzV1VFelMwa3NRMEYzUzFnc1QwRkJUeXhCUVVGQkxIZENRVUYzUWl4QlFVRkJMSGxDUVVGNVFpeERRVU4yUkN4TFFVRkxMRUZCUTBvc1NVRkJUeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFZEJNMHR5UWl4QlFUSkxVU3haUVROTFNTeERRWGRMSzBNc1QwRkJUeXhCUVVGQkxIZENRVUYzUWl4QlFVRkJMSGRDUVVGM1FpeERRVU5vU0N4TFFVRkxMRUZCUTBvc1NVRkJUeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVU5TTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFVkJRVVU3VVVGTldDeHRRa0ZCYlVJc1JVRkJReXh2UjBGQmIwYzdVVUZEZUVnc2NVSkJRWEZDTEVWQlFVVXNlVUpCUVhsQ0xFZEJSM0pFT3p0QlFVMVFMRUZCUTBVc1QwRkVTeXhEUVVOTUxIRkNRVUZ4UWl4RFFVRkRPMFZCUTNCQ0xFOUJRVThzUlVGQlJTeEpRVUZKTEVkQlYyUTdSVUZpU0N4QlFVZEpMRTlCU0Vjc1EwRkRUQ3h4UWtGQmNVSXNRMEZGYmtJc1VVRkJVU3hEUVVGRE8wbEJRMUFzVFVGQlRTeEZRVUZGTEVOQlFVTTdTVUZEVkN4UFFVRlBMRVZCUVVVc1EwRkJReXhIUVVOWU8wVkJUa3dzUVVGUFNTeFBRVkJITEVOQlEwd3NjVUpCUVhGQ0xFTkJUVzVDTEdsQ1FVRnBRaXhEUVVGRE8wbEJRMmhDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCU1dRN1NVRmFUQ3hCUVZOUkxFOUJWRVFzUTBGRFRDeHhRa0ZCY1VJc1EwRk5ia0lzYVVKQlFXbENMRWRCUldJc1EwRkJReXhEUVVGRE8wMUJRMFlzU1VGQlNTeEZRVUZGTEZGQlFWRXNSMEZEWmpzN1FVRkxVQ3hCUVVOblF5eFpRVVJ3UWl4RFFVRkRMRTlCUVU4c1FVRkJRU3g1UWtGQmVVSXNRVUZCUVN4dlFrRkJiMElzUTBGREwwUXNTMEZCU3l4QlFVRkJMR05CUVdNc1IwRkJSeXhMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzBWQlF5OUNMSEZDUVVGeFFpeEZRVUZGTEc5RFFVRnZRenRGUVVNelJDeHRRa0ZCYlVJc1JVRkJSU3cwUkVGQk5FUXNSMEZOYkVZN1JVRlVTQ3hCUVVsSkxGbEJTbEVzUTBGQlF5eFBRVUZQTEVGQlFVRXNlVUpCUVhsQ0xFRkJRVUVzYjBKQlFXOUNMRU5CUXk5RUxFdEJRVXNzUVVGQlFTeGpRVUZqTEVkQlFVY3NTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkhPVUlzUlVGQlJTeEJRVU5CTEZsQlFXTXNRMEZCUVN4QlFVRkJMRU5CUVVNc1JVRkJSVHRKUVVObUxGVkJRVlVzUlVGQlJTeGxRVUZsTEVkQlF6VkNPenRCUVZCUUxFRkJXVThzV1VGYVN5eERRVUZETEU5QlFVOHNRVUZCUVN4NVFrRkJlVUlzUVVGQlFTeHZRa0ZCYjBJc1EwRlZMMFFzUzBGQlN5eEJRVUZCTEdOQlFXTXNSMEZCUnl4TFFVRkxMRUZCUXpGQ0xFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEZRVUZGTzBWQlEyWXNjVUpCUVhGQ0xFVkJRVVVzYjBOQlFXOURPMFZCUXpORUxHMUNRVUZ0UWl4RlFVRkZMRFJFUVVFMFJDeEhRVEJDYkVZN1JVRjZRbmxDTEZOQlFVTXNSVUZCWkN4UFFVRlBMRVZCUVVNc1NVRkJTVHRKUVdZNVFpeEJRV2RDVnl4WlFXaENReXhEUVVGRExFOUJRVThzUVVGQlFTeDVRa0ZCZVVJc1FVRkJRU3h2UWtGQmIwSXNRMEZWTDBRc1MwRkJTeXhCUVVGQkxHTkJRV01zUjBGQlJ5eExRVUZMTEVGQlF6RkNMRWxCUVUwc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGRFVpeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVsVUxFVkJRVVVzUTBGQlF6dE5RVU5JT3pzN096czdPenRqUVZGSExFVkJZVW83VFVGMFExWXNRVUZuUWxjc1dVRm9Ra01zUTBGQlF5eFBRVUZQTEVGQlFVRXNlVUpCUVhsQ0xFRkJRVUVzYjBKQlFXOUNMRU5CVlM5RUxFdEJRVXNzUVVGQlFTeGpRVUZqTEVkQlFVY3NTMEZCU3l4QlFVTXhRaXhKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSlZDeEZRVUZGTEVGQlZVWXNiMEpCUVhGQ0xFTkJRVU03VVVGRGNFSXNWVUZCVlN4RlFVRkZMR1ZCUVdVc1IwRkROVUk3VFVFMVFsb3NRVUZuUWxjc1dVRm9Ra01zUTBGQlF5eFBRVUZQTEVGQlFVRXNlVUpCUVhsQ0xFRkJRVUVzYjBKQlFXOUNMRU5CVlM5RUxFdEJRVXNzUVVGQlFTeGpRVUZqTEVkQlFVY3NTMEZCU3l4QlFVTXhRaXhKUVVGTkxFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlExSXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSlZDeEZRVUZGTEVGQllVWXNXVUZCWXl4RFFVRkJMRUZCUVVFc1EwRkJReXhGUVVGRk8xRkJRMllzVTBGQlV5eEZRVUZETEhGQ1FVRnhRaXhIUVVOb1F6dE5RUzlDV2l4QlFXZENWeXhaUVdoQ1F5eERRVUZETEU5QlFVOHNRVUZCUVN4NVFrRkJlVUlzUVVGQlFTeHZRa0ZCYjBJc1EwRlZMMFFzUzBGQlN5eEJRVUZCTEdOQlFXTXNSMEZCUnl4TFFVRkxMRUZCUXpGQ0xFbEJRVTBzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZEVWl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWxVTEVWQlFVVXNRVUZuUWtZc1dVRkJZeXhEUVVGQkxFRkJRVUVzUTBGQlF5eEZRVUZGTzFGQlEyWXNVMEZCVXl4RlFVRkRMRzlDUVVGdlFpeEhRVU12UWp0TlFXeERXaXhCUVdkQ1Z5eFpRV2hDUXl4RFFVRkRMRTlCUVU4c1FVRkJRU3g1UWtGQmVVSXNRVUZCUVN4dlFrRkJiMElzUTBGVkwwUXNTMEZCU3l4QlFVRkJMR05CUVdNc1IwRkJSeXhMUVVGTExFRkJRekZDTEVsQlFVMHNRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkRVaXhGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVbFVMRVZCUVVVc1FVRnRRa1lzV1VGQll5eERRVUZCTEVGQlFVRXNRMEZCUXl4RlFVRkZPMUZCUTJZc1UwRkJVeXhGUVVGRExHOUNRVUZ2UWl4SFFVTXZRanM3UVVGWldpeEJRVUZCTEZsQlFWa3NRMEZCUXp0RlFVTmFMRTlCUVU4c1JVRkJReXhMUVVGTExFZEJkMGxpTzBWT2VsUkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdTVTFuVEhaRExFRkJSMWNzV1VGSVF5eERRVVZZTEU5QlFVOHNRMEZEVEN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8wMTRSMmhRWml4UlFVRlJMRVZCUVVVc2JVSkJRVzFDTzAxQlF6ZENMRWxCUVVrc1JVRkJSU3h4UWtGQmNVSTdUVUZCUlN4alFVRmpPMDFCUXpORExFbEJRVWtzUlVGQlJTeDNRa0ZCZDBJN1RVRkRPVUlzVDBGQlR5eEZRVUZETEZsQlFWazdUVUZEY0VJc1RVRkJUU3hGUVVGRExGbEJRVms3VFVGRGJrSXNUVUZCVFN4RlFVRkZMR05CUVdNN1RVRkRkRUlzUzBGQlN5eEZRVUZGTEdOQlFXTTdUVUZEY2tJc1VVRkJVU3hGUVVGRkxFMUJRVTBzUjNkSE5rOWtPMDE0UnpWUFJpeEJRVU5GTEVsQlJFVXNRVUZCUVN4TlFVRk5MRU4zUjNGUFdpeFpRVUZaTEVOQlJWZ3NUMEZCVHl4RFFVTk1MRXRCUVVzc1IwRkJSeXhMUVVGTExFTjRSM1pQV2l4RFFVRkRMRVZCUkVnc1FVRkRTU3hKUVVSQkxFRkJRVUVzVFVGQlRTeERkMGR4VDFvc1dVRkJXU3hEUVVWWUxFOUJRVThzUTBGRFRDeExRVUZMTEVkQlFVY3NTMEZCU3l4RGVFZDJUMVlzUzBGQlN5eEZRVVJVTEVGQlExVXNTVUZFVGl4QlFVRkJMRTFCUVUwc1EzZEhjVTlhTEZsQlFWa3NRMEZGV0N4UFFVRlBMRU5CUTB3c1MwRkJTeXhIUVVGSExFdEJRVXNzUTNoSGRrOUtMRTFCUVUwc1EwRkJRenRSUVVOaUxFOUJRVThzUlVGQlJTeGxRVUZsTEVkQlEzcENPMFZyUjJ0RVJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbE5aMHgyUXl4QlFWVlRMRmxCVmtjc1EwRkZXQ3hQUVVGUExFTkJUVXdzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZGU2l4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzYjBKQlFXOUNMRVZCUVVVN1RVRkROMElzWVVGQllTeEZRVUZGTEV0QlFVc3NSMEZEY2tJN1JVRmFVaXhCUVd0Q2EwSXNXVUZzUWs0c1EwRkZXQ3hQUVVGUExFRkJZVXdzZDBKQlFYbENMRUZCUTNaQ0xIbENRVUV3UWl4RFFVTjRRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZGTEVWQlFVVXNSVUZzUW5CQ0xFRkJhMEpuUXl4WlFXeENjRUlzUTBGRldDeFBRVUZQTEVGQllVd3NkMEpCUVhsQ0xFRkJRM1pDTEhsQ1FVRXdRaXhEUVVONFFpeExRVUZMTEVkQlExa3NTMEZCU3l4SFFVRkhMRVZCUVVVc1JVRnNRbXhETEVGQmEwSnJRaXhaUVd4Q1RpeERRVVZZTEU5QlFVOHNRVUZoVEN4M1FrRkJlVUlzUVVGRFN5eDNRa0ZCZVVJc1EwRkRia1FzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUlN4RlFVRkZMRVZCYkVKd1FpeEJRV3RDWjBNc1dVRnNRbkJDTEVOQlJWZ3NUMEZCVHl4QlFXRk1MSGRDUVVGNVFpeEJRVU5MTEhkQ1FVRjVRaXhEUVVOdVJDeExRVUZMTEVkQlExa3NTMEZCU3l4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVONFFpeHRRa0ZCYlVJc1JVRkJSU3h0UzBGQmJVc3NSMEZMZWt3N1NVNTRUVTRzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenROVFdkTWRrTXNRVUZyUW10Q0xGbEJiRUpPTEVOQlJWZ3NUMEZCVHl4QlFXRk1MSGRDUVVGNVFpeEJRVU4yUWl4NVFrRkJNRUlzUTBGRGVFSXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSU3hGUVVGRkxFVkJiRUp3UWl4QlFXdENaME1zV1VGc1FuQkNMRU5CUlZnc1QwRkJUeXhCUVdGTUxIZENRVUY1UWl4QlFVTjJRaXg1UWtGQk1FSXNRMEZEZUVJc1MwRkJTeXhIUVVOWkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVWQmJFSnNReXhCUVd0Q2EwSXNXVUZzUWs0c1EwRkZXQ3hQUVVGUExFRkJZVXdzZDBKQlFYbENMRUZCUTBzc2QwSkJRWGxDTEVOQlEyNUVMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVVVzUlVGQlJTeEZRV3hDY0VJc1FVRnJRbWRETEZsQmJFSndRaXhEUVVWWUxFOUJRVThzUVVGaFRDeDNRa0ZCZVVJc1FVRkRTeXgzUWtGQmVVSXNRMEZEYmtRc1MwRkJTeXhIUVVOWkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZIZEVJc2JVSkJRVzFDTEVWQlFVVXNhMFJCUVd0RU8xRkJRM1pGTEhGQ1FVRnhRaXhGUVVGRkxIbENRVUY1UWl4SFFVVnVSRHRGUVhoQ1ZpeEJRVFpDYTBJc1dVRTNRazRzUTBGRldDeFBRVUZQTEVGQllVd3NkMEpCUVhsQ0xFRkJXWFpDTEhsQ1FVRXdRaXhEUVVONFFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkZMRVZCUVVVc1JVRTNRbkJDTEVGQk5rSm5ReXhaUVRkQ2NFSXNRMEZGV0N4UFFVRlBMRUZCWVV3c2QwSkJRWGxDTEVGQldYWkNMSGxDUVVFd1FpeERRVU40UWl4TFFVRkxMRWRCUTFrc1MwRkJTeXhIUVVGSExFVkJRVVVzUlVFM1FteERMRUZCTmtKclFpeFpRVGRDVGl4RFFVVllMRTlCUVU4c1FVRmhUQ3gzUWtGQmVVSXNRVUZaU3l4M1FrRkJlVUlzUTBGRGJrUXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSU3hGUVVGRkxFVkJOMEp3UWl4QlFUWkNaME1zV1VFM1FuQkNMRU5CUlZnc1QwRkJUeXhCUVdGTUxIZENRVUY1UWl4QlFWbExMSGRDUVVGNVFpeERRVU51UkN4TFFVRkxMRWRCUTFrc1MwRkJTeXhIUVVGSExFVkJRVVVzUlVFM1FteERMRUZCTmtKclFpeFpRVGRDVGl4RFFVVllMRTlCUVU4c1FVRmhUQ3gzUWtGQmVVSXNRVUZaWjBNc01rSkJRVFJDTEVOQlEycEdMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVVVzUlVGQlJTeEZRVGRDY0VJc1FVRTJRbWRETEZsQk4wSndRaXhEUVVWWUxFOUJRVThzUVVGaFRDeDNRa0ZCZVVJc1FVRlpaME1zTWtKQlFUUkNMRU5CUTJwR0xFdEJRVXNzUjBGRFdTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTNoQ0xHMUNRVUZ0UWl4RlFVRkZMR2xHUVVGcFJpeEhRVXQyUnp0RlFXNURWaXhCUVhkRFN5eFpRWGhEVHl4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRU5CUTNoQ0xFdEJRVXNzUlVGNFExWXNRVUYzUTBzc1dVRjRRMDhzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRMEZEYmtRc1MwRkJTeXhEUVVGRE8wbEJWMG83TzFWQlJVY3NSVUZWU2p0SlFTOUVUaXhCUVhsRGFVSXNXVUY2UTB3c1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhEUVVONFFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1JVRjZRMjVDTEVGQmVVTXJRaXhaUVhwRGJrSXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4RFFVTjRRaXhMUVVGTExFZEJRMkVzUzBGQlN5eEhRVUZITEVWQlFVVXNSVUY2UTJwRExFRkJlVU5wUWl4WlFYcERUQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeERRVU51UkN4TFFVRkxMRWRCUTBRc1MwRkJTeXhIUVVGSExFVkJRVVVzUlVGNlEyNUNMRUZCZVVNclFpeFpRWHBEYmtJc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUTBGRGJrUXNTMEZCU3l4SFFVTmhMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03VFVGRGVrSXNUMEZCVHl4RlFVRkRMRWxCUVVrN1RVRkZXaXhSUVVGUkxFVkJRVU1zUTBGQlF5eEhRVTFZTzAxT2JFOUtMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdVVTFuVEhaRExFRkJlVU5wUWl4WlFYcERUQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFTkJRM2hDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hGUVhwRGJrSXNRVUY1UXl0Q0xGbEJla051UWl4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRU5CUTNoQ0xFdEJRVXNzUjBGRFlTeExRVUZMTEVkQlFVY3NSVUZCUlN4RlFYcERha01zUVVGNVEybENMRmxCZWtOTUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVOQlEyNUVMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEZRWHBEYmtJc1FVRjVReXRDTEZsQmVrTnVRaXhEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeERRVU51UkN4TFFVRkxMRWRCUTJFc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dFZRVXQyUWl4dFFrRkJiVUlzUlVGQlJTd3lRMEZCTWtNN1ZVRkRhRVVzY1VKQlFYRkNMRVZCUVVNc2JVSkJRVzFDTEVkQlJ6VkRPMGxCYkVSU0xFRkJjMFJwUWl4WlFYUkVUQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFTkJRM2hDTEV0QlFVc3NSMEZqUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hGUVhSRWJrSXNRVUZ6UkdsQ0xGbEJkRVJNTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRU5CUTI1RUxFdEJRVXNzUjBGalJDeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMDFCUTFnc2JVSkJRVzFDTEVWQlFVVXNiMGRCUVc5SExFZEJTVEZJTzAxT00wOUtMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdVVTFuVEhaRExFRkJjMFJwUWl4WlFYUkVUQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFTkJRM2hDTEV0QlFVc3NSMEZqUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hGUVhSRWJrSXNRVUZ6UkdsQ0xGbEJkRVJNTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRU5CUTI1RUxFdEJRVXNzUjBGalJDeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMVZCUjFRc2JVSkJRVzFDTEVWQlFVTXNjVVpCUVhGR0xFZEJSVFZITzBsQk0wUlNMRUZCTkVSMVFpeFpRVFZFV0N4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRU5CUTNoQ0xFdEJRVXNzUjBGdlFrUXNTMEZCU3l4QlFVRkJMRTFCUVUwc1IwRkJSeXhGUVVGRkxFVkJOVVI2UWl4QlFUUkVkVUlzV1VFMVJGZ3NRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1EwRkRia1FzUzBGQlN5eEhRVzlDUkN4TFFVRkxMRUZCUVVFc1RVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF6dE5RVU5xUWl4UFFVRlBMRVZCUVVVc1MwRkJTeXhIUVVObU8wVkJPVVJTTEVGQmFVVnBSQ3haUVdwRmNrTXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUTI1Q0xHOUNRVUZ2UWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1JVRkJTeXhoUVVGaExFRkJRV3hDTEVkQmFrVjJSQ3hCUVdsRmFVUXNXVUZxUlhKRExFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZEYmtJc2IwSkJRVzlDTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUzBGQlN5eERRVUZCTEVGQlFVRXNSMEZCUXl4RlFVRkxMR0ZCUVdFc1FVRkJiRUlzUlVGQmIwSTdTVUZEYkVVc1QwRkJUeXhGUVVGRkxFdEJRVXM3U1VGRFpDeFpRVUZaTEVWQlFVVXNTVUZCU1N4SFFVTnVRanRGVG5CUVNpeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbE5aMHgyUXl4QlFYTkZiVUlzV1VGMFJWQXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4RlFYUkZja0lzUVVGelJUWkRMRmxCZEVWcVF5eERRVVZZTEU5QlFVOHNRVUZ4UTB3c2VVSkJRVEJDTEVGQmVVSjZRaXh2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUVVrc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNSMEYwUlRGRUxFRkJjMFZ0UWl4WlFYUkZVQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEZRWFJGY2tJc1FVRnpSVFpETEZsQmRFVnFReXhEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVWQlFVVTdUVUZGTDBNc2JVSkJRVzFDTEVWQlFVTXNhVVJCUVdsRU8wMUJRM0pGTEhGQ1FVRnhRaXhGUVVGRExESkNRVUV5UWl4SFFYVkNjRVE3VFVGb1IxWXNRVUV3UldVc1dVRXhSVWdzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRSQ3hMUVVGTExFZEJRVWNzUlVGQlJTeEhRVWxPTEVWQlFVVXNRVUZEVkN4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRVE5GT1VJc1FVRXdSWEZDTEZsQk1VVlVMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkpRU3hGUVVGRkxFRkJRMllzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRXpSVGxDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEVEN4NVFrRkJNRUlzUVVGNVFucENMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCUTFRc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEV6UlRsQ0xFRkJNRVZ4UWl4WlFURkZWQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSmNrTXNSVUZCUlN4QlFVTm1MRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQk0wVTVRaXhCUVRCRlpTeFpRVEZGU0N4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVsT0xFVkJRVVVzUVVGRFZDeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhIUVRORk9VSXNRVUV3UlhGQ0xGbEJNVVZVTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRUZCZVVKd1JDeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUnl4RlFVRkZMRWRCU1VFc1JVRkJSU3hCUVVObUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCTTBVNVFpeEJRVEJGWlN4WlFURkZTQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNUTkRMRVZCUVVVc1FVRkRWQ3haUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUTkZPVUlzUVVFd1JYRkNMRmxCTVVWVUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUVVrc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZKY2tNc1JVRkJSU3hCUVVObUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRVZCUVVVN1VVRkRaaXhUUVVGVExFVkJRVU1zUzBGQlN5eEhRVU5vUWp0TlFUZEZhRUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVsT0xFVkJRVVVzUVVGSlZDeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhIUVRsRk9VSXNRVUV3UlhGQ0xGbEJNVVZVTEVOQlJWZ3NUMEZCVHl4QlFYRkRUQ3g1UWtGQk1FSXNRVUY1UW5wQ0xHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZKUVN4RlFVRkZMRUZCU1dZc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEU1UlRsQ0xFRkJNRVZsTEZsQk1VVklMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEyRXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGQlNTeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVrelF5eEZRVUZGTEVGQlNWUXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBFNVJUbENMRUZCTUVWeFFpeFpRVEZGVkN4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRUZCZVVKNlFpeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5oTEV0QlFVc3NRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJRVWtzUlVGQlJTeEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkpja01zUlVGQlJTeEJRVWxtTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJPVVU1UWl4QlFUQkZaU3haUVRGRlNDeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbE9MRVZCUVVVc1FVRkpWQ3haUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUbEZPVUlzUVVFd1JYRkNMRmxCTVVWVUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlNVRXNSVUZCUlN4QlFVbG1MRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQk9VVTVRaXhCUVRCRlpTeFpRVEZGU0N4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEWVN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVUZKTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJTVE5ETEVWQlFVVXNRVUZKVkN4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRVGxGT1VJc1FVRXdSWEZDTEZsQk1VVlVMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSmNrTXNSVUZCUlN4QlFVbG1MRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVWQlFVVTdVVUZEWml4VFFVRlRMRVZCUVVNc1MwRkJTenRSUVVObUxGVkJRVlVzUlVGQlF5eEpRVUZKTEVkQlEyaENPMDFCYWtab1FpeEJRVEJGWlN4WlFURkZTQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJTVTRzUlVGQlJTeEJRVkZVTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJiRVk1UWl4QlFUQkZjVUlzV1VFeFJWUXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbEJMRVZCUVVVc1FVRlJaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFXeEdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEWVN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVUZKTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJTVE5ETEVWQlFVVXNRVUZSVkN4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRV3hHT1VJc1FVRXdSWEZDTEZsQk1VVlVMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEyRXNTMEZCU3l4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGQlNTeEZRVUZGTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVseVF5eEZRVUZGTEVGQlVXWXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBGc1JqbENMRUZCTUVWbExGbEJNVVZJTEVOQlJWZ3NUMEZCVHl4QlFYRkRkVUlzZDBKQlFYbENMRUZCZVVKd1JDeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUnl4RlFVRkZMRWRCU1U0c1JVRkJSU3hCUVZGVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCYkVZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRVUY1UW5CRUxHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZKUVN4RlFVRkZMRUZCVVdZc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEZzUmpsQ0xFRkJNRVZsTEZsQk1VVklMRU5CUlZnc1QwRkJUeXhCUVhGRGRVSXNkMEpCUVhsQ0xFRkJlVUp3UkN4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSk0wTXNSVUZCUlN4QlFWRlVMRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQmJFWTVRaXhCUVRCRmNVSXNXVUV4UlZRc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWx5UXl4RlFVRkZMRUZCVVdZc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSVUZCUlR0UlFVTm1MRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJRMlk3VFVGd1JtaENMRUZCTUVWbExGbEJNVVZJTEVOQlJWZ3NUMEZCVHl4QlFYRkRUQ3g1UWtGQk1FSXNRVUY1UW5wQ0xHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZKVGl4RlFVRkZMRUZCVjFRc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEZ5UmpsQ0xFRkJNRVZ4UWl4WlFURkZWQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJTVUVzUlVGQlJTeEJRVmRtTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJja1k1UWl4QlFUQkZaU3haUVRGRlNDeERRVVZZTEU5QlFVOHNRVUZ4UTB3c2VVSkJRVEJDTEVGQmVVSjZRaXh2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCUVVrc1JVRkJSU3hCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZKTTBNc1JVRkJSU3hCUVZkVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCY2tZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNYSkRMRVZCUVVVc1FVRlhaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFYSkdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTBRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGSlRpeEZRVUZGTEVGQlYxUXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBGeVJqbENMRUZCTUVWeFFpeFpRVEZGVkN4RFFVVllMRTlCUVU4c1FVRnhRM1ZDTEhkQ1FVRjVRaXhCUVhsQ2NFUXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hIUVVsQkxFVkJRVVVzUVVGWFppeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhIUVhKR09VSXNRVUV3UldVc1dVRXhSVWdzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRVUY1UW5CRUxHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMkVzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkJTU3hGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVa3pReXhGUVVGRkxFRkJWMVFzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRnlSamxDTEVGQk1FVnhRaXhaUVRGRlZDeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFlTeExRVUZMTEVGQlFVRXNTVUZCU3l4RFFVRkJMRUZCUVVFc1RVRkJUU3hKUVVGSkxFVkJRVVVzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4TlFVRk5MRWxCU1hKRExFVkJRVVVzUVVGWFppeFpRVUZ4UWl4RFFVRkJMRUZCUVVFc1EwRkJReXhGUVVGRk8xRkJRMllzVTBGQlV5eEZRVUZETEZWQlFWVXNSMEZEY2tJN1RVRjJSbWhDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEVEN4NVFrRkJNRUlzUVVGNVFucENMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTBRc1MwRkJTeXhIUVVGSExFVkJRVVVzUjBGSlRpeEZRVUZGTEVGQlkxUXNXVUZCY1VJc1EwRkJRU3hCUVVGQkxFTkJRVU1zUjBGNFJqbENMRUZCTUVWeFFpeFpRVEZGVkN4RFFVVllMRTlCUVU4c1FVRnhRMHdzZVVKQlFUQkNMRUZCZVVKNlFpeHZRa0ZCYzBJc1EwRkxia0lzUzBGQlN5eEhRVU5FTEV0QlFVc3NSMEZCUnl4RlFVRkZMRWRCU1VFc1JVRkJSU3hCUVdObUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCZUVZNVFpeEJRVEJGWlN4WlFURkZTQ3hEUVVWWUxFOUJRVThzUVVGeFEwd3NlVUpCUVRCQ0xFRkJlVUo2UWl4dlFrRkJjMElzUTBGTGJrSXNTMEZCU3l4SFFVTmhMRXRCUVVzc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlFVa3NSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxFMUJRVTBzU1VGSk0wTXNSVUZCUlN4QlFXTlVMRmxCUVhGQ0xFTkJRVUVzUVVGQlFTeERRVUZETEVkQmVFWTVRaXhCUVRCRmNVSXNXVUV4UlZRc1EwRkZXQ3hQUVVGUExFRkJjVU5NTEhsQ1FVRXdRaXhCUVhsQ2VrSXNiMEpCUVhOQ0xFTkJTMjVDTEV0QlFVc3NSMEZEWVN4TFFVRkxMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVUZKTEVWQlFVVXNRVUZCUVN4SlFVRkxMRU5CUVVFc1FVRkJRU3hOUVVGTkxFbEJTWEpETEVWQlFVVXNRVUZqWml4WlFVRnhRaXhEUVVGQkxFRkJRVUVzUTBGQlF5eEhRWGhHT1VJc1FVRXdSV1VzV1VFeFJVZ3NRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1FVRjVRbkJFTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkpUaXhGUVVGRkxFRkJZMVFzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRjRSamxDTEVGQk1FVnhRaXhaUVRGRlZDeERRVVZZTEU5QlFVOHNRVUZ4UTNWQ0xIZENRVUY1UWl4QlFYbENjRVFzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbEJMRVZCUVVVc1FVRmpaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFYaEdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCWTFRc1dVRkJjVUlzUTBGQlFTeEJRVUZCTEVOQlFVTXNSMEY0UmpsQ0xFRkJNRVZ4UWl4WlFURkZWQ3hEUVVWWUxFOUJRVThzUVVGeFEzVkNMSGRDUVVGNVFpeEJRWGxDY0VRc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNYSkRMRVZCUVVVc1FVRmpaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4RlFVRkZPMUZCUTJZc1UwRkJVeXhGUVVGRExGTkJRVk1zUjBGRGNFSTdUVUV4Um1oQ0xFRkJNRVZsTEZsQk1VVklMRU5CUlZnc1QwRkJUeXhCUVhGRFRDeDVRa0ZCTUVJc1FVRjVRbnBDTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQlEwUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkpUaXhGUVVGRkxFRkJhVUpVTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFZEJNMFk1UWl4QlFUQkZjVUlzV1VFeFJWUXNRMEZGV0N4UFFVRlBMRUZCY1VOTUxIbENRVUV3UWl4QlFYbENla0lzYjBKQlFYTkNMRU5CUzI1Q0xFdEJRVXNzUjBGRFJDeExRVUZMTEVkQlFVY3NSVUZCUlN4SFFVbEJMRVZCUVVVc1FVRnBRbVlzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRXpSamxDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEVEN4NVFrRkJNRUlzUVVGNVFucENMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCYVVKVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCTTBZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRkRZU3hMUVVGTExFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVRkpMRVZCUVVVc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeE5RVUZOTEVsQlNYSkRMRVZCUVVVc1FVRnBRbVlzV1VGQmNVSXNRMEZCUVN4QlFVRkJMRU5CUVVNc1IwRXpSamxDTEVGQk1FVmxMRmxCTVVWSUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlNVNHNSVUZCUlN4QlFXbENWQ3haUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUTkdPVUlzUVVFd1JYRkNMRmxCTVVWVUxFTkJSVmdzVDBGQlR5eEJRWEZEZFVJc2QwSkJRWGxDTEVGQmVVSndSQ3h2UWtGQmMwSXNRMEZMYmtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVkQlNVRXNSVUZCUlN4QlFXbENaaXhaUVVGeFFpeERRVUZCTEVGQlFVRXNRMEZCUXl4SFFUTkdPVUlzUVVFd1JXVXNXVUV4UlVnc1EwRkZXQ3hQUVVGUExFRkJjVU4xUWl4M1FrRkJlVUlzUVVGNVFuQkVMRzlDUVVGelFpeERRVXR1UWl4TFFVRkxMRWRCUTJFc1MwRkJTeXhCUVVGQkxFbEJRVXNzUTBGQlFTeEJRVUZCTEUxQlFVMHNTVUZCU1N4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzVFVGQlRTeEpRVWt6UXl4RlFVRkZMRUZCYVVKVUxGbEJRWEZDTEVOQlFVRXNRVUZCUVN4RFFVRkRMRWRCTTBZNVFpeEJRVEJGY1VJc1dVRXhSVlFzUTBGRldDeFBRVUZQTEVGQmNVTjFRaXgzUWtGQmVVSXNRVUY1UW5CRUxHOUNRVUZ6UWl4RFFVdHVRaXhMUVVGTExFZEJRMkVzUzBGQlN5eEJRVUZCTEVsQlFVc3NRMEZCUVN4QlFVRkJMRTFCUVUwc1NVRkJTU3hGUVVGRkxFRkJRVUVzU1VGQlN5eERRVUZCTEVGQlFVRXNUVUZCVFN4SlFVbHlReXhGUVVGRkxFRkJhVUptTEZsQlFYRkNMRU5CUVVFc1FVRkJRU3hEUVVGRExFVkJRVVU3VVVGRFppeFRRVUZUTEVWQlFVTXNVMEZCVXl4SFFVTndRanRGUVRkR2FFSXNRVUZyUjJFc1dVRnNSMFFzUTBGRldDeFBRVUZQTEVGQmNVTk1MSGxDUVVFd1FpeEJRWGxDZWtJc2IwSkJRWE5DTEVOQlMyNUNMRXRCUVVzc1IwRTBRa1FzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZEVWl4RlFVRkZMRUZCUTBnc1dVRkJaU3hEUVVGQkxFRkJRVUVzUTBGQlF5eEhRVzVITlVJc1FVRnJSMkVzV1VGc1IwUXNRMEZGV0N4UFFVRlBMRUZCY1VOMVFpeDNRa0ZCZVVJc1FVRjVRbkJFTEc5Q1FVRnpRaXhEUVV0dVFpeExRVUZMTEVkQk5FSkVMRXRCUVVzc1IwRkJSeXhGUVVGRkxFZEJRMUlzUlVGQlJTeEJRVU5JTEZsQlFXVXNRMEZCUVN4QlFVRkJMRU5CUVVNc1JVRkJSVHRKUVVObUxGTkJRVk1zUlVGQlF5eEpRVUZKTEVkQlJXWTdSVUYwUjJRc1FVRnBTRk1zV1VGcVNFY3NRMEZGV0N4UFFVRlBMRUZCTkVkTUxIZENRVUY1UWl4RFFVTjJRaXhMUVVGTExFZEJRMFFzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZEVml4RlFVRkZMRUZCUTBnc1dVRkJaMElzUlVGc1NIaENMRUZCYVVoaExGbEJha2hFTEVOQlJWZ3NUMEZCVHl4QlFUUkhUQ3gzUWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhIUVVORUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlEwNHNSVUZCUlN4QlFVTlFMRmxCUVdkQ0xFVkJiRWg0UWl4QlFXbElVeXhaUVdwSVJ5eERRVVZZTEU5QlFVOHNRVUUwUjB3c2QwSkJRWGxDTEVOQlEzWkNMRXRCUVVzc1IwRkRZU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVU40UWl4RlFVRkZMRUZCUTBnc1dVRkJaMElzUlVGc1NIaENMRUZCYVVoaExGbEJha2hFTEVOQlJWZ3NUMEZCVHl4QlFUUkhUQ3gzUWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhIUVVOaExFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlEzQkNMRVZCUVVVc1FVRkRVQ3haUVVGblFpeERRVUZETzBsQlExb3NXVUZCV1N4RlFVRkZMRXRCUVVzc1IwRkRjRUk3UlVGd1NGb3NRVUYxU0dsQ0xGbEJka2hNTEVOQlJWZ3NUMEZCVHl4QlFUUkhUQ3gzUWtGQmVVSXNRMEZEZGtJc1MwRkJTeXhIUVZGRUxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEV0N4dFFrRkJiVUlzUlVGQlJTeHZSVUZCYjBVN1NVRkRla1lzWVVGQllTeEZRVUZGTEV0QlFVc3NSMEZUY2tJN1NVRnNTVklzUVVFd1NGY3NXVUV4U0VNc1EwRkZXQ3hQUVVGUExFRkJORWRNTEhkQ1FVRjVRaXhEUVVOMlFpeExRVUZMTEVkQlVVUXNTMEZCU3l4SFFVRkhMRVZCUVVVc1IwRkhVaXhGUVVGRkxFRkJRMFlzWlVGQlowSXNRMEZCUXp0TlFVTm1MRlZCUVZVc1JVRkJSU3hOUVVGTkxFZEJRMjVDTzBsT04xTlNMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdUVTFuVEhaRExFRkJkVWhwUWl4WlFYWklUQ3hEUVVWWUxFOUJRVThzUVVFMFIwd3NkMEpCUVhsQ0xFTkJRM1pDTEV0QlFVc3NSMEZSUkN4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJVMVFzYlVKQlFXMUNMRVZCUVVVc2NVWkJRWEZHTEVkQlJUZEhPenRCUVZOU0xFRkJSMGtzV1VGSVVTeERRVVZXTEdOQlFXTXNRMEZEV2l4SFFVRkhMRVZCU0ZBc1FVRkhVeXhaUVVoSExFTkJSVllzWTBGQll5eERRVU5RTEV0QlFVc3NSVUZJWkN4QlFVZG5RaXhaUVVoS0xFTkJSVllzWTBGQll5eERRVU5CTEUxQlFVMHNSVUZJZEVJc1FVRkhkMElzV1VGSVdpeERRVVZXTEdOQlFXTXNRMEZEVVN4TFFVRkxMRU5CUVVVN1JVRkRla0lzVlVGQlZTeEZRVUZGTEU5QlFVOHNSMEZEY0VJN08wRk9hRlZFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3UlUweVZIWkRMRUZCUVVFc1dVRkJXU3hEUVVGRE8wbEJVMVE3T3pzMFJVRkhkMFU3U1VGRGVFVXNUMEZCVHl4RlFVRkRMRWxCUVVrN1NVRkRXaXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU5RTEdOQlFXTXNSVUZCUlN4TlFVRk5MRWRCY1VkNlFqdEpRWEJJUkN4QlFXZENTU3haUVdoQ1VTeERRV2RDVWl4UFFVRlBMRU5CUVVNN1RVRkRUaXhQUVVGUExFVkJRVU1zU1VGQlNUdE5RVU5hTEdOQlFXTXNSVUZCUlN4TlFVRk5PMDFCUTNSQ0xFbEJRVWtzUlVGQlJTeERRVUZETEVkQkswWlNPMDFCYkVoTUxFRkJiMEpSTEZsQmNFSkpMRU5CWjBKU0xFOUJRVThzUjBGSlNDeDFRa0ZCZFVJc1EwRkJRenRSUVVONFFpeFBRVUZQTEVWQlFVVXNTVUZCU1R0UlFVTmlMRWxCUVVrc1JVRkJSU3hSUVVGUkxFZEJSV1k3VFVGNFFsQXNRVUZuUWtrc1dVRm9RbEVzUTBGblFsSXNUMEZCVHl4QlFWTk1MSGxDUVVFd1FpeERRVUZETzFGQlEzcENPMWRCUTBjc1JVRkRTanROUVRWQ1VDeEJRVFpDVVN4WlFUZENTU3hEUVdkQ1VpeFBRVUZQTEVkQllVZ3NkVUpCUVhWQ0xFTkJRVU03VVVGRGVFSXNUMEZCVHl4RlFVRkRMRWxCUVVrN1VVRkRXaXhKUVVGSkxFVkJRVU1zVVVGQlVTeEhRVGhGWkR0UlFUZEhVQ3hCUVdsRFZTeFpRV3BEUlN4RFFXZENVaXhQUVVGUExFZEJZVWdzZFVKQlFYVkNMRWRCU1hKQ0xHOUNRVUZ2UWl4RFFVRkRPMVZCUTNKQ0xFbEJRVWtzUlVGQlF5eFRRVUZUTzFWQlEyUXNUMEZCVHl4RlFVRkRMRWxCUVVrN1ZVRkRXaXhqUVVGakxFVkJRVU1zVFVGQlRUdFZRVU55UWl4WFFVRlhMRVZCUVVNc1EwRkJRenRWUVVOaUxGTkJRVk1zUlVGQlF5eERRVUZETzFWQlExZ3NXVUZCV1N4RlFVRkRMRXRCUVVzc1IwRkpia0k3VlVFelExUXNRVUZwUTFVc1dVRnFRMFVzUTBGblFsSXNUMEZCVHl4SFFXRklMSFZDUVVGMVFpeEhRVWx5UWl4dlFrRkJiMElzUTBGUGNFSXNRVUZCUVN4TlFVRkZMRUZCUVVFc1IwRjRRMW9zUVVGcFExVXNXVUZxUTBVc1EwRm5RbElzVDBGQlR5eEhRV0ZJTEhWQ1FVRjFRaXhIUVVseVFpeHZRa0ZCYjBJc1EwRlBWQ3hCUVVGQkxGZEJRVVVzUTBGQldTeE5RVUZOTEVGQlFXeENMRVZCUVc5Q08xbEJReTlDTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUTJRN1VVRXhRMWdzUVVFMFExVXNXVUUxUTBVc1EwRm5RbElzVDBGQlR5eEhRV0ZJTEhWQ1FVRjFRaXhIUVdWeVFpeGpRVUZqTEVOQlFVTTdWVUZGWml4SlFVRkpMRVZCUVVNc1VVRkJVVHRWUVVWaUxFOUJRVThzUlVGQlF5eEpRVUZKTzFWQlExb3NZMEZCWXl4RlFVRkRMRTFCUVUwc1IwRXlSSFJDTzFWQk5VZFVMRUZCYTBSWkxGbEJiRVJCTEVOQlowSlNMRTlCUVU4c1IwRmhTQ3gxUWtGQmRVSXNSMEZsY2tJc1kwRkJZeXhIUVUxYUxESkNRVUV5UWl4RFFVRkRPMWxCUXpWQ0xGVkJRVlVzUlVGQlF5eEpRVUZKTzFsQlEyWXNWMEZCVnl4RlFVRkRMRU5CUVVNN1dVRkRZaXhUUVVGVExFVkJRVU1zUTBGQlF6dFpRVU5ZTEdOQlFXTXNSVUZCUXl4SFFVRkhMRWRCWjBKdVFqdFpRWFJGV0N4QlFYVkVZeXhaUVhaRVJpeERRV2RDVWl4UFFVRlBMRWRCWVVnc2RVSkJRWFZDTEVkQlpYSkNMR05CUVdNc1IwRk5XaXd5UWtGQk1rSXNSMEZMZWtJc1RVRkJUU3hEUVVGRE8yTkJRMUFzWTBGQll5eEZRVUZGTEVkQlFVYzdZMEZEYmtJc1UwRkJVeXhGUVVGRExFTkJRVU03WTBGRFdDeFZRVUZWTEVWQlFVTXNRMEZCUXp0alFVTmFMRk5CUVZNc1JVRkJReXhOUVVGTk8yTkJRMmhDTEU5QlFVOHNSVUZCUXl4SlFVRkpPMk5CUTFvc1lVRkJZU3hGUVVGRExFdEJRVXNzUjBGUmNFSTdZMEZ5UldJc1FVRTRSR2RDTEZsQk9VUktMRU5CWjBKU0xFOUJRVThzUjBGaFNDeDFRa0ZCZFVJc1IwRmxja0lzWTBGQll5eEhRVTFhTERKQ1FVRXlRaXhIUVV0NlFpeE5RVUZOTEVkQlQwb3NSVUZCUlN4RFFVRkRPMmRDUVVOSUxHRkJRV0VzUlVGQlF5eERRVUZETzJkQ1FVTm1MRmxCUVZrc1JVRkJSU3hKUVVGSkxFZEJTVzVDTzJkQ1FYQkZaaXhCUVdsRlowSXNXVUZxUlVvc1EwRm5RbElzVDBGQlR5eEhRV0ZJTEhWQ1FVRjFRaXhIUVdWeVFpeGpRVUZqTEVkQlRWb3NNa0pCUVRKQ0xFZEJTM3BDTEUxQlFVMHNSMEZQU2l4RlFVRkZMRU5CUjBZc1NVRkJTU3hEUVVGRE8ydENRVU5JTEV0QlFVc3NSVUZCUXl4TFFVRkxMRWRCUTFvN1ZVRnVSV3BDTEVGQmRVVlpMRmxCZGtWQkxFTkJaMEpTTEU5QlFVOHNSMEZoU0N4MVFrRkJkVUlzUjBGbGNrSXNZMEZCWXl4SFFUSkNXaXh6UWtGQmMwSXNRMEZCUXp0WlFVTjJRaXhWUVVGVkxFVkJRVU1zUTBGQlF6dFpRVU5hTEZOQlFWTXNSVUZCUXl4RFFVRkRPMWxCUTFnc1RVRkJUU3hGUVVGRExFbEJRVWs3V1VGRFdDeFhRVUZYTEVWQlFVTXNRMEZCUXp0WlFVTmlMRTlCUVU4c1JVRkJReXhKUVVGSk8xbEJRMW9zVjBGQlZ5eEZRVUZETEU5QlFVODdXVUZEYmtJc1pVRkJaU3hGUVVGRExFMUJRVTA3V1VGRGRFSXNZMEZCWXl4RlFVRkRMRTFCUVUwN1dVRkRja0lzVDBGQlR5eEZRVUZETEdWQlFXVXNSMEV5UW5oQ08xbEJNMGRZTEVGQmFVWmpMRmxCYWtaR0xFTkJaMEpTTEU5QlFVOHNSMEZoU0N4MVFrRkJkVUlzUjBGbGNrSXNZMEZCWXl4SFFUSkNXaXh6UWtGQmMwSXNSMEZWY0VJc1IwRkJSeXhEUVVGRE8yTkJRMG9zVlVGQlZTeEZRVUZETEVOQlFVTTdZMEZEV2l4VFFVRlRMRVZCUVVNc1EwRkJRenRqUVVOWUxGVkJRVlVzUlVGQlF5eEpRVUZKTzJOQlJXWXNUVUZCVFN4RlFVRkRMRWxCUVVrN1kwRkRXQ3hYUVVGWExFVkJRVU1zVDBGQlR6dGpRVU51UWl4bFFVRmxMRVZCUVVNc1RVRkJUVHRqUVVOMFFpeGpRVUZqTEVWQlFVTXNUVUZCVFR0alFVTnlRaXhYUVVGWExFVkJRVU1zUTBGQlF6dGpRVU5pTEU5QlFVOHNSVUZCUXl4SlFVRkpPMk5CUTFvc1UwRkJVeXhGUVVGRExFbEJRVWtzUjBGalpqdGpRVEZIWWl4QlFUWkdaMElzV1VFM1Jrb3NRMEZuUWxJc1QwRkJUeXhIUVdGSUxIVkNRVUYxUWl4SFFXVnlRaXhqUVVGakxFZEJNa0phTEhOQ1FVRnpRaXhIUVZWd1FpeEhRVUZITEVkQldVUXNTMEZCU3l4RFFVRkRPMmRDUVVOT0xGVkJRVlVzUlVGQlF5eERRVUZETzJkQ1FVTmFMRk5CUVZNc1JVRkJReXhEUVVGRE8yZENRVU5ZTEZWQlFWVXNSVUZCUXl4SlFVRkpPMmRDUVVWbUxFMUJRVTBzUlVGQlF5eEpRVUZKTzJkQ1FVTllMRmRCUVZjc1JVRkJReXhQUVVGUE8yZENRVU51UWl4bFFVRmxMRVZCUVVNc1RVRkJUVHRuUWtGRGRFSXNZMEZCWXl4RlFVRkRMRTFCUVUwN1owSkJRM0pDTEZkQlFWY3NSVUZCUXl4RFFVRkRPMmRDUVVOaUxFOUJRVThzUlVGQlF5eEpRVUZKTzJkQ1FVTmFMRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJRMlk3VFVGNlIyWXNRVUU0UjFFc1dVRTVSMGtzUTBGblFsSXNUMEZCVHl4SFFUaEdTQ3h0UWtGQmJVSXNRMEZCUXp0UlFVTndRaXhKUVVGSkxFVkJRVU1zVVVGQlVUdFJRVU5pTEZWQlFWVXNSVUZCUlN4TFFVRkxMRWRCUTJ4Q096dEJRVXRRTEVGQlFUWkdMRmxCUVdwR0xFTkJRVU1zVDBGQlR5eEJRVUZCTERKQ1FVRXlRaXhIUVVGSExIVkNRVUYxUWl4SFFVRkhMR05CUVdNc1IwRkJSeXh6UWtGQmMwSXNRMEZCUXp0RlFVTnNTQ3haUVVGWkxFVkJRVVVzUzBGQlN5eEhRVWx3UWp0RlRuUmlSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMGxOYVdKMlF5eEJRVUUyUml4WlFVRnFSaXhEUVVGRExFOUJRVThzUVVGQlFTd3lRa0ZCTWtJc1IwRkJSeXgxUWtGQmRVSXNSMEZCUnl4alFVRmpMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTTdUVUZIYUVnc1lVRkJZU3hGUVVGRkxFdEJRVXNzUjBGRmRrSTdPMEZPZEdKSExFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1JVMTNZblpETEVGQlFUWkRMRmxCUVdwRExFTkJRVU1zVDBGQlR5eEhRVUZITEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVV6UXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhIUVV0MFFqdEpRVkJFTEVGQlFUWkRMRmxCUVdwRExFTkJRVU1zVDBGQlR5eEhRVUZITEcxQ1FVRnRRaXhIUVVGSExFTkJRVU1zUVVGSE1VTXNWMEZCV1N4RFFVRkRPMDFCUTFnc1dVRkJXU3hGUVVGRkxFTkJRVU1zUjBGRGFFSTdPMEZCU1V3c1FVRkRSU3haUVVSVkxFTkJRMVlzUzBGQlN5eERRVUZETzBWQlEwb3NWVUZCVlN4RlFVRkRMRWxCUVVrN1JVRkRaaXhQUVVGUExFVkJRVU1zUzBGQlN6dEZRVU5pTEdWQlFXVXNSVUZCUXl4UlFVRlJPMFZCUTNoQ0xGZEJRVmNzUlVGQlF5eERRVUZETzBWQlEySXNVMEZCVXl4RlFVRkRMRU5CUVVNc1IwRTJRMW83UlVGdVJFZ3NRVUZEUlN4WlFVUlZMRU5CUTFZc1MwRkJTeXhCUVUxSUxIZENRVUY1UWl4RFFVRkRPMGxCUTNoQ0xHRkJRV0VzUlVGQlF5eEpRVUZKTEVkQlEyNUNPMFZCVkV3c1FVRkRSU3haUVVSVkxFTkJRMVlzUzBGQlN5eERRVk5JTEVGQlFVRXNUVUZCUlN4QlFVRkJMRVZCUVZFN1NVRkRVaXhQUVVGUExFVkJRVU1zU1VGQlNTeEhRVU5pTzBWQldrd3NRVUZoVFN4WlFXSk5MRU5CUTFZc1MwRkJTeXhIUVZsRUxFVkJRVVVzUTBGQlF6dEpRVU5JTEU5QlFVOHNSVUZCUXl4TFFVRkxPMGxCUTJJc1MwRkJTeXhGUVVGRExFbEJRVWs3U1VGRlZpeFBRVUZQTEVWQlFVTXNTVUZCU1R0SlFVTmFMRk5CUVZNc1JVRkJReXhKUVVGSk8wbEJRMlE3VTBGRFJ5eEZRVGhDU2p0SlFXeEVUQ3hCUVhOQ1VTeFpRWFJDU1N4RFFVTldMRXRCUVVzc1IwRlpSQ3hGUVVGRkxFZEJVMEVzUlVGQlJTeERRVUZETzAxQlEwZ3NTVUZCU1N4RlFVRkRMRkZCUVZFc1IwRXdRbVE3VFVGcVJGQXNRVUZ6UWxFc1dVRjBRa2tzUTBGRFZpeExRVUZMTEVkQldVUXNSVUZCUlN4SFFWTkJMRVZCUVVVc1FVRk5SaXhsUVVGblFpeERRVUZETzFGQlEyWXNVMEZCVXl4RlFVRkRMRTFCUVUwc1IwRkRha0k3VFVFNVFsUXNRVUZ6UWxFc1dVRjBRa2tzUTBGRFZpeExRVUZMTEVkQldVUXNSVUZCUlN4SFFWTkJMRVZCUVVVc1FVRlRSaXhwUWtGQmEwSXNRMEZCUXp0UlFVTnFRaXhUUVVGVExFVkJRVU1zUzBGQlN5eEhRVU5vUWp0TlFXcERWQ3hCUVhOQ1VTeFpRWFJDU1N4RFFVTldMRXRCUVVzc1IwRlpSQ3hGUVVGRkxFZEJVMEVzUlVGQlJTeEJRVmxHTEc5Q1FVRnhRaXhEUVVGRE8xRkJRM0JDTEZOQlFWTXNSVUZCUXl4SlFVRkpMRWRCUTJZN1RVRndRMVFzUVVGelFsRXNXVUYwUWtrc1EwRkRWaXhMUVVGTExFZEJXVVFzUlVGQlJTeEhRVk5CTEVWQlFVVXNRVUZsUml4dFFrRkJiMElzUTBGQlF6dFJRVU51UWl4VFFVRlRMRVZCUVVNc1NVRkJTU3hIUVVObU8wMUJka05VTEVGQmMwSlJMRmxCZEVKSkxFTkJRMVlzUzBGQlN5eEhRVmxFTEVWQlFVVXNSMEZUUVN4RlFVRkZMRUZCYTBKR0xITkNRVUYxUWl4RFFVRkRPMUZCUTNSQ0xGTkJRVk1zUlVGQlF5eFZRVUZWTEVkQlEzSkNPMDFCTVVOVUxFRkJjMEpSTEZsQmRFSkpMRU5CUTFZc1MwRkJTeXhIUVZsRUxFVkJRVVVzUjBGVFFTeEZRVUZGTEVGQmNVSkdMSEZDUVVGelFpeERRVUZETzFGQlEzSkNMRk5CUVZNc1JVRkJReXhUUVVGVExFZEJRM0JDTzAxQk4wTlVMRUZCYzBKUkxGbEJkRUpKTEVOQlExWXNTMEZCU3l4SFFWbEVMRVZCUVVVc1IwRlRRU3hGUVVGRkxFRkJkMEpHTEhGQ1FVRnpRaXhEUVVGRE8xRkJRM0pDTEZOQlFWTXNSVUZCUXl4VFFVRlRMRWRCUTNCQ096dEJRV2hFVkN4QlFXOUVSU3haUVhCRVZTeERRVzlFVml4TFFVRkxMRUZCUTBnc1RVRkJUeXhEUVVGRE8wVkJRMDRzVDBGQlR5eEZRVUZGTEVsQlFVazdSVUZEWWl4bFFVRmxMRVZCUVVVc1RVRkJUVHRGUVVOMlFpeFhRVUZYTEVWQlFVVXNUVUZCVFN4SFFWTndRanRGUVdwRlRDeEJRWGxFVVN4WlFYcEVTU3hEUVc5RVZpeExRVUZMTEVGQlEwZ3NUVUZCVHl4SFFVbElMRVZCUVVVc1EwRkJRenRKUVVOSUxGVkJRVlVzUlVGQlF5eE5RVUZOTzBsQlEycENMRTlCUVU4c1JVRkJReXhMUVVGTExFZEJTMlE3U1VGb1JWQXNRVUUwUkZFc1dVRTFSRWtzUTBGdlJGWXNTMEZCU3l4QlFVTklMRTFCUVU4c1IwRkpTQ3hGUVVGRkxFTkJSMFlzUlVGQlJTeERRVUZETzAxQlEwUXNUVUZCVFN4RlFVRkRMRTFCUVUwN1RVRkRZaXhQUVVGUExFVkJRVU1zV1VGQldTeEhRVU55UWpzN1FVRXZSRlFzUVVGdFJVVXNXVUZ1UlZVc1EwRnRSVllzUzBGQlN5eERRVUZETzBWQlEwb3NWVUZCVlN4RlFVRkRMRU5CUVVNN1JVRkRXaXhWUVVGVkxFVkJRVU1zVFVGQlRUdEZRVU5xUWl4UFFVRlBMRVZCUVVNc1MwRkJTenRGUVVOaUxGTkJRVk1zUlVGQlF5eFBRVUZQTzBWQlEycENMRlZCUVZVc1JVRkJReXhKUVVGSk8wVkJRMllzVjBGQlZ5eEZRVUZETEU5QlFVODdSVUZEYmtJc1kwRkJZeXhGUVVGRExFZEJRVWM3UlVGRGJFSXNaVUZCWlN4RlFVRkRMRTFCUVUwN1JVRkRkRUlzVjBGQlZ5eEZRVUZETEVOQlFVTTdSVUZEWWl4VFFVRlRMRVZCUVVNc1EwRkJRenRGUVVOWUxGTkJRVk1zUlVGQlF5eEpRVUZKTzBWQlEyUXNNRUpCUVRCQ0xFVkJRVVVzUzBGQlN5eEhRVU5zUXpzN1FVRkhTQ3hCUVVORkxFOUJSRXNzUVVGQlFTeDNRa0ZCZDBJc1FVRkJRU3hKUVVGTExFTkJRVUVzUVVGQlFTeDNRa0ZCZDBJc1JVRkRNVVFzYVVKQlFXbENMRVZCUkc1Q0xFRkJRM0ZDTEU5QlJHUXNRVUZCUVN4M1FrRkJkMElzUVVGQlFTeEpRVUZMTEVOQlFVRXNRVUZCUVN4M1FrRkJkMElzUlVGRGRrTXNhVUpCUVdsQ0xFTkJRVU03UlVGRGJrTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1IwRkRia0k3TzBGT2RtaENReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMFZOTUdoQ2RrTXNRVUZIU1N4cFEwRklOa0lzUTBGSE4wSXNTVUZCU1N4RFFVRkRPMGxCUTBnc1QwRkJUeXhGUVVGRExGbEJRVmtzUjBGRGNrSTdSVUZNVEN4QlFVMU5MR2xEUVU0eVFpeEhRVTB6UWl4SFFVRkhMRU5CUVVNN1NVRkRTaXhQUVVGUExFVkJRVU1zV1VGQldUdEpRVU53UWl4WFFVRlhMRVZCUVVNc1NVRkJTU3hIUVVOcVFqczdRVUZKVEN4QlFVTkZMRzlDUVVSclFpeERRVU5zUWl4TlFVRk5MRU5CUVVNN1JVRkRUQ3hoUVVGaExFVkJRVVVzU1VGQlNTeEhRVU53UWpzN1FVNHhhVUpETEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3UlUxMWFVSjJReXhCUVVGQkxHOUNRVUZ2UWl4RFFVRkRPMGxCUzJwQ0xGZEJRVmNzUlVGQlJTeEpRVUZKTzBsQlEycENMRmxCUVZrc1JVRkJSU3hKUVVGSkxFZEJWWEpDTzBsQmFFSkVMRUZCVDBrc2IwSkJVR2RDTEVOQlQyaENMRXRCUVVzc1EwRkJRenROUVVOS0xGbEJRVmtzUlVGQlJTeExRVUZMTEVkQlEzQkNPMGxCVkV3c1FVRlZTU3h2UWtGV1owSXNRMEZWYUVJc1RVRkJUU3hEUVVGRE8wMUJRMHdzV1VGQldTeEZRVUZGTEVsQlFVazdUVUZEYkVJc1lVRkJZU3hGUVVGRkxFTkJRVU1zUjBGRGFrSTdPMEZPY0dwQ1JDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wVk5lV3BDZGtNc1FVRkJRU3h2UWtGQmIwSXNRMEZCUXp0SlFVVnFRaXhQUVVGUExFVkJRVVVzU1VGQlNUdEpRVU5pTEdWQlFXVXNSVUZCUlN4UlFVRlJPMGxCUTNwQ0xGTkJRVk1zUlVGQlJTeEpRVUZKTzBsQlEyWXNZMEZCWXl4RlFVRkZMRXRCUVVzc1IwRXdRbmhDTzBsQkwwSkVMRUZCVFUwc2IwSkJUbU1zUjBGTlpDeERRVUZETEVGQlEwUXNXVUZCWVN4RFFVRkRPMDFCUTFvc1dVRkJXU3hGUVVGRExFbEJRVWtzUjBGRGJFSTdTVUZVVUN4QlFWZEpMRzlDUVZoblFpeERRVmRvUWl4dlFrRkJiMElzUTBGQlF6dE5RVU51UWl4WlFVRlpMRVZCUVVNc1NVRkJTU3hIUVdsQ2JFSTdTVTUwYkVKRUxFMUJRVTBzUTBGQlF5eE5RVUUyUWl4TlFVRnFRaXhUUVVGVExFVkJRVVVzUzBGQlN5eFBRVUZvUWl4VFFVRlRMRVZCUVVVc1MwRkJTenROVFhscVFuWkRMRUZCWlZFc2IwSkJabGtzUTBGWGFFSXNiMEpCUVc5Q0xFTkJTV2hDTEVsQlFVa3NRMEZCUXp0UlFVTklMRTlCUVU4c1JVRkJReXhKUVVGSkxFZEJRMkk3VFVGRFJDeEJRVU5GTEU5QlJFc3NRMEZzUW1Zc2IwSkJRVzlDTEVOQlYyaENMRzlDUVVGdlFpeERRVkZrTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1JVRkJTeXhoUVVGaExFRkJRV3hDTEVWQlFXOUNPMUZCUTNoQ0xGZEJRVmNzUlVGQlJTeERRVUZETzFGQlEyUXNZMEZCWXl4RlFVRkZMRU5CUVVNN1VVRkRha0lzVjBGQlZ5eEZRVUZGTEVkQlFVY3NSMEZEYWtJN08wRk9hR3hDVUN4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzAxTmJXeENha01zUVVGbVJpeHZRa0ZsYzBJc1EwRXhRakZDTEc5Q1FVRnZRaXhEUVZkb1FpeHZRa0ZCYjBJc1EwRmxTenRSUVVOeVFpeFpRVUZaTEVWQlFVTXNRMEZCUXl4SFFVTm1PenRCUVZkUUxFRkJRMFVzVDBGRVN5eEJRVU5NTEhsQ1FVRXdRaXhEUVVGRE8wVkJhVVI2UWp0UFFVTkhMRVZCWTBvN1JVNXFjVUpETEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3U1UxbmJVSjJReXhCUVVkTkxFOUJTRU1zUVVGRFRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRVU5hTEVkQlFVY3NRMEZCUXp0TlFVZEJMRlZCUVZVc1JVRkJReXhKUVVGSkxFZEJSV3hDTzBWQlVsQXNRVUZsVVN4UFFXWkVMRUZCUTB3c2VVSkJRVEJDTEVOQlEzaENMR05CUVdNc1EwRlpXaXhMUVVGTExFTkJRMGdzUlVGQlJTeEJRVU5CTEZsQlFXRXNRMEZCUXp0SlFVTmFMRmxCUVZrc1JVRkJReXhMUVVGTExFZEJRMjVDTzBWQmJFSllMRUZCWlZFc1QwRm1SQ3hCUVVOTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJXVm9zUzBGQlN5eERRVU5JTEVWQlFVVXNRVUZKUVN4WFFVRlpMRU5CUVVNN1NVRkRXQ3hoUVVGaExFVkJRVU1zUzBGQlN5eEhRVU53UWp0RlFYSkNXQ3hCUVhsQ1VTeFBRWHBDUkN4QlFVTk1MSGxDUVVFd1FpeERRVU40UWl4alFVRmpMRU5CYzBKYUxFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTkVMRVZCUVVVc1FVRkRRU3haUVVGaExFTkJRVU03U1VGRFdpeFpRVUZaTEVWQlFVTXNTMEZCU3l4SFFVTnVRanRGUVRWQ1dDeEJRWGxDVVN4UFFYcENSQ3hCUVVOTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJjMEphTEVWQlFVVXNRMEZCUVN4QlFVRkJMRmRCUVVNc1FVRkJRU3hGUVVORUxFVkJRVVVzUVVGSlFTeFhRVUZaTEVOQlFVTTdTVUZEV0N4aFFVRmhMRVZCUVVNc1MwRkJTeXhIUVVOd1FqdEZRUzlDV0N4QlFXMURVU3hQUVc1RFJDeEJRVU5NTEhsQ1FVRXdRaXhEUVVONFFpeGpRVUZqTEVOQlowTmFMRVZCUVVVc1EwRkRRU3hGUVVGRkxFVkJia05XTEVGQmJVTlhMRTlCYmtOS0xFRkJRMHdzZVVKQlFUQkNMRU5CUTNoQ0xHTkJRV01zUTBGblExb3NSVUZCUlN4RFFVTkhMRVZCUVVVc1EwRkJRenRKUVVOS0xGVkJRVlVzUlVGQlF5eE5RVUZOTEVkQlZXeENPMGxPT1c5Q1RDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wMU5aMjFDZGtNc1FVRnRRMUVzVDBGdVEwUXNRVUZEVEN4NVFrRkJNRUlzUTBGRGVFSXNZMEZCWXl4RFFXZERXaXhGUVVGRkxFTkJRMEVzUlVGQlJTeEZRVzVEVml4QlFXMURWeXhQUVc1RFNpeEJRVU5NTEhsQ1FVRXdRaXhEUVVONFFpeGpRVUZqTEVOQlowTmFMRVZCUVVVc1EwRkRSeXhGUVVGRkxFTkJRVU03VVVGSFJpeFZRVUZWTEVWQlFVTXNTMEZCU3l4SFFWRnVRanRSUVRsRFZDeEJRVzFEVVN4UFFXNURSQ3hCUVVOTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJaME5hTEVWQlFVVXNRMEZEUVN4RlFVRkZMRUZCU1VNc2FVSkJRVzFDTEVWQmRrTTVRaXhCUVcxRFZ5eFBRVzVEU2l4QlFVTk1MSGxDUVVFd1FpeERRVU40UWl4alFVRmpMRU5CWjBOYUxFVkJRVVVzUTBGRFJ5eEZRVUZGTEVGQlNVWXNhVUpCUVcxQ0xFTkJRVU03VlVGRGFrSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1IwRkRha0k3U1VGNlEySXNRVUZ0UTFFc1QwRnVRMFFzUVVGRFRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRV2REV2l4RlFVRkZMRU5CUTBFc1JVRkJSU3hCUVZGRUxHbENRVUZ0UWl4RlFUTkROVUlzUVVGdFExY3NUMEZ1UTBvc1FVRkRUQ3g1UWtGQk1FSXNRMEZEZUVJc1kwRkJZeXhEUVdkRFdpeEZRVUZGTEVOQlEwY3NSVUZCUlN4QlFWRktMR2xDUVVGdFFpeERRVUZETzAxQlEycENMRlZCUVZVc1JVRkJReXhKUVVGSkxFZEJRMmhDTzBWQk4wTllMRUZCZFVSUkxFOUJka1JFTEVGQlEwd3NlVUpCUVRCQ0xFRkJiMFI0UWl3MlFrRkJPRUlzUTBGRE5VSXNZMEZCWXl4RFFVTmFMRWRCUVVjc1EwRkJRenRKUVVOR0xGVkJRVlVzUlVGQlF5eEpRVUZKTEVkQlEyaENPMFZCZWtSVUxFRkJNa1JWTEU5Qk0wUklMRUZCUTB3c2VVSkJRVEJDTEVGQmIwUjRRaXcyUWtGQk9FSXNRMEZETlVJc1kwRkJZeXhEUVVsYUxFVkJRVVVzUVVGQlFTeE5RVUZOTEVOQlEwNHNSMEZCUnl4RFFVRkRPMGxCUTBZc1ZVRkJWU3hGUVVGRExFbEJRVWtzUjBGRGFFSTdPMEZCTjBSWUxFRkJjVVZOTEU5QmNrVkRMRUZCYlVWTUxIbENRVUV3UWl4RFFVTjRRaXhqUVVGakxFTkJRMW9zUzBGQlN5eEZRWEpGV0N4QlFYRkZUU3hQUVhKRlF5eEJRVzFGZFVJc2QwSkJRWGxDTEVOQlEyNUVMR05CUVdNc1EwRkRXaXhMUVVGTExFVkJja1ZZTEVGQmNVVk5MRTlCY2tWRExFRkJiVVZyUkN3eVFrRkJORUlzUTBGRGFrWXNZMEZCWXl4RFFVTmFMRXRCUVVzc1EwRkJRenRGUVVWS0xFOUJRVThzUlVGQlF5eGxRVUZsTEVkQlEzaENPenRCUVhoRlVDeEJRWGxGVFN4UFFYcEZReXhCUVcxRlRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRVXRhTEVWQlFVVXNRVUZEUml4SlFVRlJMRU5CUVVFc1FVRkJRU3hwUWtGQmFVSXNRMEZCUXl4SlFVRkxMRU5CUVVFc1FVRkJRU3hsUVVGbExFZEJNVVZ3UkN4QlFYbEZUU3hQUVhwRlF5eEJRVzFGZFVJc2QwSkJRWGxDTEVOQlEyNUVMR05CUVdNc1EwRkxXaXhGUVVGRkxFRkJRMFlzU1VGQlVTeERRVUZCTEVGQlFVRXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlN5eERRVUZCTEVGQlFVRXNaVUZCWlN4SFFURkZjRVFzUVVGNVJVMHNUMEY2UlVNc1FVRnRSV3RFTERKQ1FVRTBRaXhEUVVOcVJpeGpRVUZqTEVOQlMxb3NSVUZCUlN4QlFVTkdMRWxCUVZFc1EwRkJRU3hCUVVGQkxHbENRVUZwUWl4RFFVRkRMRWxCUVVzc1EwRkJRU3hCUVVGQkxHVkJRV1VzUlVGQlJUdEZRVVUxUXl4UFFVRlBMRVZCUVVNc1NVRkJTU3hIUVVOaU96dEJRVGRGVkN4QlFYbEZUU3hQUVhwRlF5eEJRVzFGVEN4NVFrRkJNRUlzUTBGRGVFSXNZMEZCWXl4RFFVdGFMRVZCUVVVc1EwRkxSaXhCUVVGQkxFOUJRVWtzUVVGQlFTeEhRVGxGVml4QlFYbEZUU3hQUVhwRlF5eEJRVzFGZFVJc2QwSkJRWGxDTEVOQlEyNUVMR05CUVdNc1EwRkxXaXhGUVVGRkxFTkJTMFlzUVVGQlFTeFBRVUZKTEVGQlFVRXNSMEU1UlZZc1FVRjVSVTBzVDBGNlJVTXNRVUZ0Uld0RUxESkNRVUUwUWl4RFFVTnFSaXhqUVVGakxFTkJTMW9zUlVGQlJTeERRVXRHTEVGQlFVRXNUMEZCU1N4QlFVRkJMRVZCUVZNN1JVRkRWQ3hQUVVGUExFVkJRVU1zUzBGQlN5eEhRVU5rT3p0QlFXaEdWQ3hCUVd0R1RTeFBRV3hHUXl4QlFXMUZUQ3g1UWtGQk1FSXNRMEZEZUVJc1kwRkJZeXhEUVdOYUxFdEJRVXNzUlVGc1JsZ3NRVUZyUmswc1QwRnNSa01zUVVGdFJYVkNMSGRDUVVGNVFpeERRVU51UkN4alFVRmpMRU5CWTFvc1MwRkJTeXhGUVd4R1dDeEJRV3RHVFN4UFFXeEdReXhCUVcxRmEwUXNNa0pCUVRSQ0xFTkJRMnBHTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CUVVNN1JVRkpTaXhUUVVGVExFVkJRVVVzU1VGQlNUdEZRVU5tTEdWQlFXVXNSVUZCUlN4TlFVRk5MRWRCYTBKNFFqdEZUbnB6UWtnc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0SlRXZHRRblpETEVGQmEwWk5MRTlCYkVaRExFRkJiVVZNTEhsQ1FVRXdRaXhEUVVONFFpeGpRVUZqTEVOQlkxb3NTMEZCU3l4RlFXeEdXQ3hCUVd0R1RTeFBRV3hHUXl4QlFXMUZkVUlzZDBKQlFYbENMRU5CUTI1RUxHTkJRV01zUTBGaldpeExRVUZMTEVWQmJFWllMRUZCYTBaTkxFOUJiRVpETEVGQmJVVnJSQ3d5UWtGQk5FSXNRMEZEYWtZc1kwRkJZeXhEUVdOYUxFdEJRVXNzUTBGQlF6dE5RVVZHTEU5QlFVOHNSVUZCUlN4bFFVRmxMRWRCY1VJelFqdEZRWHBIVUN4QlFYZEdVU3hQUVhoR1JDeEJRVzFGVEN4NVFrRkJNRUlzUTBGRGVFSXNZMEZCWXl4RFFXTmFMRXRCUVVzc1EwRk5TQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNSMEY0Umxnc1FVRjNSbEVzVDBGNFJrUXNRVUZ0UlhWQ0xIZENRVUY1UWl4RFFVTnVSQ3hqUVVGakxFTkJZMW9zUzBGQlN5eERRVTFJTEVWQlFVVXNRMEZCUVN4QlFVRkJMRkZCUVVNc1FVRkJRU3hIUVhoR1dDeEJRWGRHVVN4UFFYaEdSQ3hCUVcxRmEwUXNNa0pCUVRSQ0xFTkJRMnBHTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CVFVnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVWQlFWVTdTVUZQV0N4TlFVRk5MRVZCUVVNc1pVRkJaVHRKUVVOMFFpeFZRVUZWTEVWQlFVTXNTVUZCU1R0SlFVTm1MRXRCUVVzc1JVRkJReXhKUVVGSkxFZEJTVmc3U1U1eWMwSk1MRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdUVTFuYlVKMlF5eEJRWGRHVVN4UFFYaEdSQ3hCUVcxRlRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRV05hTEV0QlFVc3NRMEZOU0N4RlFVRkZMRU5CUVVFc1FVRkJRU3hSUVVGRExFRkJRVUVzUjBGNFJsZ3NRVUYzUmxFc1QwRjRSa1FzUVVGdFJYVkNMSGRDUVVGNVFpeERRVU51UkN4alFVRmpMRU5CWTFvc1MwRkJTeXhEUVUxSUxFVkJRVVVzUTBGQlFTeEJRVUZCTEZGQlFVTXNRVUZCUVN4SFFYaEdXQ3hCUVhkR1VTeFBRWGhHUkN4QlFXMUZhMFFzTWtKQlFUUkNMRU5CUTJwR0xHTkJRV01zUTBGaldpeExRVUZMTEVOQlRVZ3NSVUZCUlN4RFFVRkJMRUZCUVVFc1VVRkJReXhCUVVGQkxFVkJRVlU3VVVGRlZDeFBRVUZQTEVWQlFVTXNXVUZCV1N4SFFWZDJRanRKUVhKSFZDeEJRVFJHVlN4UFFUVkdTQ3hCUVcxRlRDeDVRa0ZCTUVJc1EwRkRlRUlzWTBGQll5eERRV05hTEV0QlFVc3NRMEZOU0N4RlFVRkZMRU5CUVVFc1FVRkJRU3hSUVVGRExFRkJRVUVzUlVGSlJDeEZRVUZGTEVWQk5VWmFMRUZCTkVaVkxFOUJOVVpJTEVGQmJVVjFRaXgzUWtGQmVVSXNRMEZEYmtRc1kwRkJZeXhEUVdOYUxFdEJRVXNzUTBGTlNDeEZRVUZGTEVOQlFVRXNRVUZCUVN4UlFVRkRMRUZCUVVFc1JVRkpSQ3hGUVVGRkxFVkJOVVphTEVGQk5FWlZMRTlCTlVaSUxFRkJiVVZyUkN3eVFrRkJORUlzUTBGRGFrWXNZMEZCWXl4RFFXTmFMRXRCUVVzc1EwRk5TQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNSVUZKUkN4RlFVRkZMRU5CUVVNN1RVRkRSQ3hQUVVGUExFVkJRVVVzUzBGQlN5eEhRVU5tTzBsT09YSkNVQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFOWjIxQ2RrTXNRVUYzUmxFc1QwRjRSa1FzUVVGdFJVd3NlVUpCUVRCQ0xFTkJRM2hDTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CVFVnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVkQmVFWllMRUZCZDBaUkxFOUJlRVpFTEVGQmJVVjFRaXgzUWtGQmVVSXNRMEZEYmtRc1kwRkJZeXhEUVdOYUxFdEJRVXNzUTBGTlNDeEZRVUZGTEVOQlFVRXNRVUZCUVN4UlFVRkRMRUZCUVVFc1IwRjRSbGdzUVVGM1JsRXNUMEY0UmtRc1FVRnRSV3RFTERKQ1FVRTBRaXhEUVVOcVJpeGpRVUZqTEVOQlkxb3NTMEZCU3l4RFFVMUlMRVZCUVVVc1EwRkJRU3hCUVVGQkxGRkJRVU1zUVVGQlFTeEZRVUZWTzFGQlYxUXNWVUZCVlN4RlFVRkRMRWxCUVVrc1IwRkZiRUk3UlVGeVIxUXNRVUZ6UjFFc1QwRjBSMFFzUVVGdFJVd3NlVUpCUVRCQ0xFTkJRM2hDTEdOQlFXTXNRMEZqV2l4TFFVRkxMRU5CYjBKSUxHOUNRVUZ2UWl4RlFYUkhOVUlzUVVGelIxRXNUMEYwUjBRc1FVRnRSWFZDTEhkQ1FVRjVRaXhEUVVOdVJDeGpRVUZqTEVOQlkxb3NTMEZCU3l4RFFXOUNTQ3h2UWtGQmIwSXNSVUYwUnpWQ0xFRkJjMGRSTEU5QmRFZEVMRUZCYlVWclJDd3lRa0ZCTkVJc1EwRkRha1lzWTBGQll5eERRV05hTEV0QlFVc3NRMEZ2UWtnc2IwSkJRVzlDTEVOQlFVTTdTVUZEYmtJc1QwRkJUeXhGUVVGRExFbEJRVWtzUjBGRFlqczdRVTU0YzBKTUxFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1JVMW5iVUoyUXl4QlFUaEhiVUlzVDBFNVIxb3NRVUUyUjB3c2VVSkJRVEJDTEVOQlEzaENMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRmFrSXNUMEZCVHl4RlFVRkZMRWxCUVVrc1IwRkZhRUk3TzBGT2JIUkNSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMFZOWjIxQ2RrTXNRVUYzU0ZFc1QwRjRTRVFzUVVGeFNFd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEZEV2l4TFFVRkxMRU5CUTBnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVkQmVFaFlMRUZCZDBoUkxFOUJlRWhFTEVGQmNVaHpRaXd5UWtGQk5FSXNRMEZEY2tRc1kwRkJZeXhEUVVOYUxFdEJRVXNzUTBGRFNDeEZRVUZGTEVOQlFVRXNRVUZCUVN4UlFVRkRMRUZCUVVFc1JVRkJWVHRKUVVkVUxHRkJRV0VzUlVGQlJTeERRVUZETEVkQlZXNUNPenRCVG5KMVFrd3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJkMGhSTEU5QmVFaEVMRUZCY1VoTUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJRMW9zUzBGQlN5eERRVU5JTEVWQlFVVXNRMEZCUVN4QlFVRkJMRkZCUVVNc1FVRkJRU3hIUVhoSVdDeEJRWGRJVVN4UFFYaElSQ3hCUVhGSWMwSXNNa0pCUVRSQ0xFTkJRM0pFTEdOQlFXTXNRMEZEV2l4TFFVRkxMRU5CUTBnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVWQlFWVTdTVUZOVkN4VlFVRlZMRVZCUVVNc1NVRkJTU3hIUVU5c1FqczdRVTV5ZFVKTUxFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1JVMW5iVUoyUXl4QlFXZEpXU3hQUVdoSlRDeEJRWEZJVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFVTmFMRXRCUVVzc1EwRkRTQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNTVUZSUXl4RlFVRkZMRUZCUVVFc1NVRkJTeXhEUVVGQkxFRkJRVUVzYjBKQlFXOUNMRWRCYUVsMlF5eEJRV2RKV1N4UFFXaEpUQ3hCUVhGSWMwSXNNa0pCUVRSQ0xFTkJRM0pFTEdOQlFXTXNRMEZEV2l4TFFVRkxMRU5CUTBnc1JVRkJSU3hEUVVGQkxFRkJRVUVzVVVGQlF5eEJRVUZCTEVsQlVVTXNSVUZCUlN4QlFVRkJMRWxCUVVzc1EwRkJRU3hCUVVGQkxHOUNRVUZ2UWl4RlFVRkZPMGxCUlROQ0xHRkJRV0VzUlVGQlJTeERRVUZETEVkQlJXNUNPenRCVG5CMVFsQXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJaMHBSTEU5QmFFcEVMRUZCTUVsTUxESkNRVUUwUWl4RFFVTXhRaXhqUVVGakxFTkJRMW9zUzBGQlN5eERRVWxJTEVWQlFVVXNRMEZCUVN4QlFVRkJMRkZCUVVNc1FVRkJRU3hGUVVGVk8wbEJUVlFzVTBGQlV5eEZRVUZETEVkQlFVYzdTVUZEWWl4TlFVRk5MRVZCUVVVc1EwRkJRenRKUVVOVUxFOUJRVThzUlVGQlJTeFJRVUZSTEVkQlQzQkNPenRCVGk5MlFrd3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJiMHRGTEU5QmNFdExMRU5CYjB0TUxHRkJRV0VzUTBGQlF6dEpRVVZXTEZWQlFWVXNSVUZCUXl4RFFVRkRPMGxCUTFvc1UwRkJVeXhGUVVGRExFTkJRVU1zUjBGRlpEczdRVUY2UzBnc1FVRTBTMGtzVDBFMVMwY3NRVUV5UzB3c2VVSkJRVEJDTEVOQlEzaENMRzlDUVVGdlFpeERRVUZETzBWQlEyNUNMRlZCUVZVc1JVRkJSU3hMUVVGTExFZEJRMnhDT3p0QlRqbDNRa1FzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRGVFdkdFFuWkRMRUZCYVV4RkxFOUJha3hMTEVOQmFVeE1MRzlDUVVGdlFpeERRVUZETzBsQlJXcENMRlZCUVZVc1JVRkJSU3hEUVVGRE8wbEJRMklzUzBGQlN5eEZRVUZGTEVsQlFVazdTVUZEV0N4UFFVRlBMRVZCUVVVc1MwRkJTenRKUVV0a0xFOUJRVThzUlVGQlJTeEpRVUZKTzBsQlEySXNTMEZCU3l4RlFVRkRMRVZCUVVVN1NVRkRVaXhMUVVGTExFVkJRVVVzU1VGQlNUdEpRVTFZTzFOQlEwY3NSVUZGVGp0SlFYSk5TQ3hCUVdsTVJTeFBRV3BNU3l4RFFXbE1UQ3h2UWtGQmIwSXNRMEZMYUVJc1FVRkJRU3hOUVVGRkxFRkJRVUVzUlVGQlVUdE5RVU5TTEU5QlFVOHNSVUZCUXl4bFFVRmxMRWRCUTNoQ08wbEJlRXhRTEVGQk9FeE5MRTlCT1V4RExFTkJhVXhNTEc5Q1FVRnZRaXhEUVdGb1FpeDNRa0ZCZDBJc1EwRkJRenROUVVOMlFpeExRVUZMTEVWQlFVTXNTVUZCU1N4SFFVTllPenRCUVdoTlVDeEJRWFZOUlN4UFFYWk5TeXhEUVhWTlRDeHBRa0ZCYVVJc1EwRkJRenRGUVVWb1FpeFZRVUZWTEVWQlFVVXNUVUZCVFN4SFFVVnVRanM3UVVFelRVZ3NRVUU0VFVrc1QwRTVUVWNzUVVFMlRVd3NkMEpCUVhsQ0xFTkJRM1pDTEdsQ1FVRnBRaXhGUVRsTmNrSXNRVUU0VFVrc1QwRTVUVWNzUVVFMlRYTkNMREpDUVVFMFFpeERRVU55UkN4cFFrRkJhVUlzUTBGQlF6dEZRVU5vUWl4TlFVRk5MRVZCUVVVc1RVRkJUVHRGUVVOa0xFOUJRVThzUlVGQlJTeFpRVUZaTEVkQlEzUkNPenRCVG1wNlFrUXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZUV2R0UW5aRExFRkJkVTVSTEU5QmRrNUVMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJRMW9zUzBGQlN5eERRVU5JTEVWQlFVVXNRVUZEUVN4WlFVRmhMRU5CUVVNN1NVRkZWaXhQUVVGUExFVkJRVU1zU1VGQlNTeEhRVVZtT3p0QlRqVjZRbEFzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRGVFdkdFFuWkRMRUZCZFU1UkxFOUJkazVFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CUTFvc1MwRkJTeXhEUVVOSUxFVkJRVVVzUVVGTlFTeFpRVUZqTEVOQlFVRXNRVUZCUVN4RFFVRkRMRVZCUVVVN1NVRkZZaXhWUVVGVkxFVkJRVU1zU1VGQlNUdEpRVU5tTEZsQlFWa3NSVUZCUXl4TFFVRkxMRWRCUlhKQ096dEJRV3hQV0N4QlFYVk9VU3hQUVhaT1JDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFVTmFMRXRCUVVzc1EwRkRTQ3hGUVVGRkxFRkJXVUVzVjBGQldTeERRVUZETzBWQlExZ3NZVUZCWVN4RlFVRkRMRXRCUVVzc1IwRkRjRUk3TzBGQmNrOVlMRUZCTUU5UkxFOUJNVTlFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFNDeEZRVUZGTEVWQk1VOVdMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFFTeEZRVUZGTEVWQk1VOWlMRUZCTUU5UkxFOUJNVTlFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTlFMRVZCUVVVc1JVRXhUMVlzUVVFd1QxY3NUMEV4VDBvc1FVRnZUa3dzZDBKQlFYbENMRU5CUTNaQ0xHTkJRV01zUTBGdlFrNHNSVUZCUlN4RFFVRkJMRUZCUVVFc1YwRkJReXhCUVVGQkxFVkJRMG9zUlVGQlJTeERRVUZETzBWQlEwb3NWVUZCVlN4RlFVRkRMRXRCUVVzc1IwRnBRbXBDTzBWQk5WQlVMRUZCTUU5UkxFOUJNVTlFTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFNDeEZRVUZGTEVGQlJVZ3NhVUpCUVhGQ0xFVkJOVTgxUWl4QlFUQlBVU3hQUVRGUFJDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFXOUNXaXhMUVVGTExFTkJRMGdzUlVGQlJTeEJRVVZwUWl4cFFrRkJjVUlzUlVFMVQyaEVMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFFTeEZRVUZGTEVGQlJVNHNhVUpCUVhGQ0xFVkJOVTgxUWl4QlFUQlBWeXhQUVRGUFNpeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFXOUNXaXhMUVVGTExFTkJRMEVzUlVGQlJTeEJRVVZqTEdsQ1FVRnhRaXhGUVRWUGFFUXNRVUV3VDFFc1QwRXhUMFFzUVVGdlRrd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEZ2UWs0c1JVRkJSU3hEUVVGQkxFRkJRVUVzVjBGQlF5eEJRVUZCTEVWQlExQXNSVUZCUlN4QlFVVklMR2xDUVVGeFFpeEZRVFZQTlVJc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRazRzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUTFBc1JVRkJSU3hCUVVWcFFpeHBRa0ZCY1VJc1JVRTFUMmhFTEVGQk1FOVhMRTlCTVU5S0xFRkJiMDVNTEhkQ1FVRjVRaXhEUVVOMlFpeGpRVUZqTEVOQmIwSk9MRVZCUVVVc1EwRkJRU3hCUVVGQkxGZEJRVU1zUVVGQlFTeEZRVU5LTEVWQlFVVXNRVUZGVGl4cFFrRkJjVUlzUlVFMVR6VkNMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTktMRVZCUVVVc1FVRkZZeXhwUWtGQmNVSXNRMEZCUXp0SlFVTnlReXhWUVVGVkxFVkJRVU1zU1VGQlNTeEhRVTlvUWp0SlFVNTNRaXhUUVVGRExFVkJRV1FzVDBGQlR5eEZRVUZETEVsQlFVazdUVUU1VDJ4RExFRkJNRTlSTEU5Qk1VOUVMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEU0N4RlFVRkZMRUZCUlVnc2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFVTeFBRVEZQUkN4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwZ3NSVUZCUlN4QlFVVnBRaXhwUWtGQmNVSXNSVUUxVDJoRUxFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEUVN4RlFVRkZMRUZCUlU0c2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFZ5eFBRVEZQU2l4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwRXNSVUZCUlN4QlFVVmpMR2xDUVVGeFFpeEZRVFZQYUVRc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRazRzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUTFBc1JVRkJSU3hCUVVWSUxHbENRVUZ4UWl4RlFUVlBOVUlzUVVFd1QxRXNUMEV4VDBRc1FVRnZUa3dzZDBKQlFYbENMRU5CUTNaQ0xHTkJRV01zUTBGdlFrNHNSVUZCUlN4RFFVRkJMRUZCUVVFc1YwRkJReXhCUVVGQkxFVkJRMUFzUlVGQlJTeEJRVVZwUWl4cFFrRkJjVUlzUlVFMVQyaEVMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTktMRVZCUVVVc1FVRkZUaXhwUWtGQmNVSXNSVUUxVHpWQ0xFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEpPTEVWQlFVVXNRMEZCUVN4QlFVRkJMRmRCUVVNc1FVRkJRU3hGUVVOS0xFVkJRVVVzUVVGRll5eHBRa0ZCY1VJc1EwRkJRenRSUVVkdVF5eFBRVUZQTEVWQlFVVXNTMEZCU3l4SFFVdHFRanRKVG5BeFFsQXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5UV2R0UW5aRExFRkJNRTlSTEU5Qk1VOUVMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEU0N4RlFVRkZMRUZCUlVnc2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFVTeFBRVEZQUkN4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwZ3NSVUZCUlN4QlFVVnBRaXhwUWtGQmNVSXNSVUUxVDJoRUxFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEphTEV0QlFVc3NRMEZEUVN4RlFVRkZMRUZCUlU0c2FVSkJRWEZDTEVWQk5VODFRaXhCUVRCUFZ5eFBRVEZQU2l4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1dpeExRVUZMTEVOQlEwRXNSVUZCUlN4QlFVVmpMR2xDUVVGeFFpeEZRVFZQYUVRc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRazRzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUTFBc1JVRkJSU3hCUVVWSUxHbENRVUZ4UWl4RlFUVlBOVUlzUVVFd1QxRXNUMEV4VDBRc1FVRnZUa3dzZDBKQlFYbENMRU5CUTNaQ0xHTkJRV01zUTBGdlFrNHNSVUZCUlN4RFFVRkJMRUZCUVVFc1YwRkJReXhCUVVGQkxFVkJRMUFzUlVGQlJTeEJRVVZwUWl4cFFrRkJjVUlzUlVFMVQyaEVMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKT0xFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4RlFVTktMRVZCUVVVc1FVRkZUaXhwUWtGQmNVSXNSVUUxVHpWQ0xFRkJNRTlYTEU5Qk1VOUtMRUZCYjA1TUxIZENRVUY1UWl4RFFVTjJRaXhqUVVGakxFTkJiMEpPTEVWQlFVVXNRMEZCUVN4QlFVRkJMRmRCUVVNc1FVRkJRU3hGUVVOS0xFVkJRVVVzUVVGRll5eHBRa0ZCY1VJc1EwRkJRenRSUVUxdVF5eFBRVUZQTEVWQlFVTXNTVUZCU1N4SFFVVm1PMFZPY0RGQ1VDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbE5aMjFDZGtNc1FVRXdUMUVzVDBFeFQwUXNRVUZ2VGt3c2QwSkJRWGxDTEVOQlEzWkNMR05CUVdNc1EwRnZRbG9zUzBGQlN5eERRVU5JTEVWQlFVVXNRVUZYU0N4dlFrRkJkMElzUlVGeVVDOUNMRUZCTUU5WExFOUJNVTlLTEVGQmIwNU1MSGRDUVVGNVFpeERRVU4yUWl4alFVRmpMRU5CYjBKYUxFdEJRVXNzUTBGRFFTeEZRVUZGTEVGQlYwNHNiMEpCUVhkQ0xFVkJjbEF2UWl4QlFUQlBVU3hQUVRGUFJDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFXOUNUaXhGUVVGRkxFTkJRVUVzUVVGQlFTeFhRVUZETEVGQlFVRXNSVUZEVUN4RlFVRkZMRUZCVjBnc2IwSkJRWGRDTEVWQmNsQXZRaXhCUVRCUFZ5eFBRVEZQU2l4QlFXOU9UQ3gzUWtGQmVVSXNRMEZEZGtJc1kwRkJZeXhEUVc5Q1RpeEZRVUZGTEVOQlFVRXNRVUZCUVN4WFFVRkRMRUZCUVVFc1JVRkRTaXhGUVVGRkxFRkJWMDRzYjBKQlFYZENMRU5CUVVNN1RVRkZiRUlzVlVGQlZTeEZRVUZETEUxQlFVMDdUVUZEYWtJc1YwRkJWeXhGUVVGRExFdEJRVXM3VFVGRGFrSXNZMEZCWXl4RlFVRkRMRXRCUVVzc1IwRkZka0k3TzBGT016RkNVQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMFZOWjIxQ2RrTXNRVUVyVUUwc1QwRXZVRU1zUVVGdlRrd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEV3UTFvc1MwRkJTeXhEUVVGRE8wbEJSVVlzVjBGQlZ5eEZRVUZETEVOQlFVTXNSMEZ4UW1oQ096dEJRWFJTVUN4QlFXOVJWU3hQUVhCUlNDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFUQkRXaXhMUVVGTExFTkJTVWdzYVVKQlFXbENMRU5CUTJZc1IwRkJSeXhGUVhCUllpeEJRVzlSWXl4UFFYQlJVQ3hCUVc5T1RDeDNRa0ZCZVVJc1EwRkRka0lzWTBGQll5eERRVEJEV2l4TFFVRkxMRU5CU1Vnc2FVSkJRV2xDTEVOQlExZ3NTMEZCU3l4RlFYQlJia0lzUVVGdlVXOUNMRTlCY0ZGaUxFRkJiMDVNTEhkQ1FVRjVRaXhEUVVOMlFpeGpRVUZqTEVOQk1FTmFMRXRCUVVzc1EwRkpTQ3hwUWtGQmFVSXNRMEZEVEN4TFFVRkxMRU5CUVVNN1JVRkRaQ3hUUVVGVExFVkJRVU1zU1VGQlNUdEZRVU5rTEZWQlFWVXNSVUZCUXl4SlFVRkpMRWRCUTJoQ096dEJRWFpSV0N4QlFYbFJVU3hQUVhwUlJDeEJRVzlPVEN4M1FrRkJlVUlzUTBGRGRrSXNZMEZCWXl4RFFUQkRXaXhMUVVGTExFTkJWVWdzUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUVdFN1JVRkRaQ3hYUVVGWExFVkJRVU1zUTBGQlF6dEZRVU5pTEdOQlFXTXNSVUZCUXl4RFFVRkRMRWRCVldwQ08wVkJjbEpVTEVGQk5sRlpMRTlCTjFGTUxFRkJiMDVNTEhkQ1FVRjVRaXhEUVVOMlFpeGpRVUZqTEVOQk1FTmFMRXRCUVVzc1EwRlZTQ3hGUVVGRkxFTkJRVUVzUVVGQlFTeFhRVUZETEVGQlFVRXNTVUZKUXl4RlFVRkZMRUZCUTBZc1dVRkJZeXhEUVVGQkxFRkJRVUVzUTBGQlF5eEZRVUZGTzBsQlEyWXNXVUZCV1N4RlFVRkRMRXRCUVVzc1IwRkRia0k3UlVGb1VtSXNRVUUyVVZrc1QwRTNVVXdzUVVGdlRrd3NkMEpCUVhsQ0xFTkJRM1pDTEdOQlFXTXNRMEV3UTFvc1MwRkJTeXhEUVZWSUxFVkJRVVVzUTBGQlFTeEJRVUZCTEZkQlFVTXNRVUZCUVN4SlFVbERMRVZCUVVVc1FVRkpSaXhYUVVGWkxFTkJRVU03U1VGRFdDeGhRVUZoTEVWQlFVTXNTMEZCU3l4SFFVTndRanM3UVU1dU0wSlVMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdSVTB5TTBKMlF5eEJRVU5GTEU5QlJFc3NRMEZEVEN4cFFrRkJhVUlzUTBGQlF6dEpRVVZrTEU5QlFVOHNSVUZCUlN4SlFVRkpMRWRCUldoQ096dEJRVXhJTEVGQlQwa3NUMEZRUnl4RFFVMU1MRk5CUVZNc1EwRkRVQ3hSUVVGUkxFTkJRVU03UlVGRFVDeE5RVUZOTEVWQlFVTXNRMEZCUXp0RlFVTlNMRTlCUVU4c1JVRkJReXhEUVVGRExFZEJTVlk3UlVGaVRDeEJRVlZOTEU5QlZrTXNRMEZOVEN4VFFVRlRMRU5CUTFBc1VVRkJVU3hEUVVkT0xFdEJRVXNzUTBGQlF6dEpRVU5LTEdGQlFXRXNSVUZCUXl4RFFVRkRMRWRCUTJoQ096dEJRVnBRTEVGQlpVVXNUMEZtU3l4RFFXVk1MRzlDUVVGdlFpeERRVUZETzBWQlEyNUNMRk5CUVZNc1JVRkJSU3hWUVVGVkxFZEJRM1JDT3p0QlFXcENTQ3hCUVd0Q1JTeFBRV3hDU3l4RFFXdENUQ3hwUWtGQmFVSXNRMEZCUXp0RlFVTm9RaXhQUVVGUExFVkJRVVVzU1VGQlNUdEZRVU5pTEZkQlFWY3NSVUZCUlN4TlFVRk5MRWRCUTNCQ096dEJUbWcxUWtNc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0RlRUSXpRblpETEVGQmRVSkpMRTlCZGtKSExFTkJjMEpNTERKQ1FVRXlRaXhEUVVONlFpeERRVUZETEVWQmRrSk1MRUZCZFVKUExFOUJka0pCTEVOQmMwSk1MREpDUVVFeVFpeERRVU4wUWl4UlFVRlJMRU5CUVVNN1NVRkZVaXhWUVVGVkxFVkJRVVVzUjBGQlJ6dEpRVU5tTEZWQlFWVXNSVUZCUlN4SlFVRkpPMGxCUTJoQ0xFOUJRVThzUlVGQlJTeExRVUZMTzBsQlEyUXNTMEZCU3l4RlFVRkZMRWxCUVVrc1IwRkZaRHM3UVVFNVFrd3NRVUZwUTBrc1QwRnFRMGNzUTBGblEwd3NaMEpCUVdkQ0xFTkJRMlFzVVVGQlVTeERRVUZETzBWQlExQXNUVUZCVFN4RlFVRkZMRWxCUVVrc1IwRkRZanM3UVVGdVEwd3NRVUZ6UTBVc1QwRjBRMHNzUTBGelEwd3NTMEZCU3l4RFFVRkJMRUZCUVVFc1IwRkJReXhEUVVGSkxHZERRVUZuUXl4QlFVRndReXhGUVVGelF6dEZRVU14UXl4UlFVRlJMRVZCUVVNc1VVRkJVVHRGUVVOcVFpeEhRVUZITEVWQlFVTXNTMEZCU3p0RlFVTlVMRXRCUVVzc1JVRkJReXhIUVVGSExFZEJRMVk3TzBGQk1VTklMRUZCY1VSSkxFOUJja1JITEVOQk5FTk1MRzFDUVVGdFFpeERRVk5xUWl4VFFVRlRMRU5CUVVNN1JVRkRVaXhWUVVGVkxFVkJRVVVzUjBGQlJ6dEZRVU5tTEZOQlFWTXNSVUZCUlN4SlFVRkpMRWRCZDBKb1FqdEZRUzlGVEN4QlFYZEVUU3hQUVhoRVF5eERRVFJEVEN4dFFrRkJiVUlzUTBGVGFrSXNVMEZCVXl4RFFVZFFMRXRCUVVzc1EwRkJRU3hCUVVGQkxFZEJRVU1zUTBGQlNTdzJRa0ZCTmtJc1FVRkJha01zUlVGQmJVTTdTVUZEZGtNc2MwSkJRWE5DTEVWQlFVVXNSMEZCUnp0SlFVTXpRaXg1UWtGQmVVSXNSVUZCUlN4SFFVRkhMRWRCUXk5Q08wVkJNMFJRTEVGQk5FUk5MRTlCTlVSRExFTkJORU5NTEcxQ1FVRnRRaXhEUVZOcVFpeFRRVUZUTEVOQlQxQXNUVUZCVFN4RlFUVkVXaXhCUVRSRVl5eFBRVFZFVUN4RFFUUkRUQ3h0UWtGQmJVSXNRMEZUYWtJc1UwRkJVeXhEUVU5RExFOUJRVThzUTBGQlF6dEpRVU5rTEdGQlFXRXNSVUZCUlN4RFFVRkRMRWRCVTJwQ08wbEJkRVZRTEVGQk5FUk5MRTlCTlVSRExFTkJORU5NTEcxQ1FVRnRRaXhEUVZOcVFpeFRRVUZUTEVOQlQxQXNUVUZCVFN4QlFVVk1MRmxCUVdNc1JVRTVSSEpDTEVGQk5FUmpMRTlCTlVSUUxFTkJORU5NTEcxQ1FVRnRRaXhEUVZOcVFpeFRRVUZUTEVOQlQwTXNUMEZCVHl4QlFVVmtMRmxCUVdNc1EwRkJRenROUVVOYUxITkNRVUZ6UWl4RlFVRkZMRWRCUVVjN1RVRkRNMElzZVVKQlFYbENMRVZCUVVVc1IwRkJSeXhIUVVNdlFqdEpRV3BGVkN4QlFUUkVUU3hQUVRWRVF5eERRVFJEVEN4dFFrRkJiVUlzUTBGVGFrSXNVMEZCVXl4RFFVOVFMRTFCUVUwc1FVRk5UQ3hYUVVGaExFVkJiRVZ3UWl4QlFUUkVZeXhQUVRWRVVDeERRVFJEVEN4dFFrRkJiVUlzUTBGVGFrSXNVMEZCVXl4RFFVOURMRTlCUVU4c1FVRk5aQ3hYUVVGaExFTkJRVU03VFVGRFdDeDFRa0ZCZFVJc1JVRkJSU3hIUVVGSE8wMUJRelZDTERCQ1FVRXdRaXhGUVVGRkxFZEJRVWNzUjBGRGFFTTdSVUZ5UlZRc1FVRjNSVlVzVDBGNFJVZ3NRMEUwUTB3c2JVSkJRVzFDTEVOQlUycENMRk5CUVZNc1FVRnJRbEFzVTBGQlZTeEhRVU5PTEVOQlFVTXNRMEZCUXp0SlFVTkdMRmxCUVZrc1JVRkJSU3hEUVVGRExFZEJRMmhDTzBWQk1VVlVMRUZCTkVWTkxFOUJOVVZETEVOQk5FTk1MRzFDUVVGdFFpeERRVk5xUWl4VFFVRlRMRU5CZFVKUUxFMUJRVTBzUTBGQlF6dEpRVU5NTEZOQlFWTXNSVUZCUlN4SlFVRkpMRWRCUTJoQ096dEJRVGxGVUN4QlFXZEdTU3hQUVdoR1J5eERRVFJEVEN4dFFrRkJiVUlzUTBGdlEycENMRlZCUVZVc1FVRkJRU3hUUVVGVExFTkJRVU03UlVGRGJFSXNaVUZCWlN4RlFVRkZMRmxCUVZrN1JVRkROMElzWVVGQllTeEZRVUZGTEVsQlFVa3NSMEZSY0VJN1JVRXhSa3dzUVVGdFJsRXNUMEZ1UmtRc1EwRTBRMHdzYlVKQlFXMUNMRU5CYjBOcVFpeFZRVUZWTEVGQlFVRXNVMEZCVXl4SFFVZG1MRU5CUVVNc1EwRkJRenRKUVVOR0xGbEJRVmtzUlVGQlF5eEpRVUZKTzBsQlEycENMR0ZCUVdFc1JVRkJReXhKUVVGSkxFZEJRMjVDTzBWQmRFWlFMRUZCZFVaTkxFOUJka1pETEVOQk5FTk1MRzFDUVVGdFFpeERRVzlEYWtJc1ZVRkJWU3hCUVVGQkxGTkJRVk1zUTBGUGFrSXNUMEZCVHl4RFFVRkRPMGxCUTA0c1lVRkJZU3hGUVVGRExFdEJRVXNzUjBGRGNFSTdPMEZCZWtaUUxFRkJOa1p6UXl4UFFUZEdMMElzUTBFMlJrd3NZMEZCWXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETERCQ1FVRXdRaXhEUVVGRE8wVkJRemRFTEZWQlFWVXNSVUZCUlN4SlFVRkpMRWRCSzBKcVFqdEZRVGRJU0N4QlFTdEdTU3hQUVM5R1J5eERRVFpHVEN4alFVRmpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNNRUpCUVRCQ0xFTkJSVFZFTEV0QlFVc3NRMEZCUXp0SlFVTktMR0ZCUVdFc1JVRkJReXhEUVVGRExFZEJRMmhDTzBWQmFrZE1MRUZCYTBkSkxFOUJiRWRITEVOQk5rWk1MR05CUVdNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl3d1FrRkJNRUlzUTBGTE5VUXNTMEZCU3l4RFFVRkJMRUZCUVVFc1IwRkJReXhEUVVGSkxESkNRVUV5UWl4QlFVRXZRaXhGUVVGcFF6dEpRVU55UXl4WFFVRlhMRVZCUVVVc1EwRkJReXhIUVVObU8wVkJjRWRNTEVGQmNVZEpMRTlCY2tkSExFTkJOa1pNTEdOQlFXTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5d3dRa0ZCTUVJc1EwRlJOVVFzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RFFVRkxMRkZCUVZFc1FVRkJZaXhGUVVGbE8wbEJRMjVDTEV0QlFVc3NSVUZCUXl4SFFVRkhMRWRCUTFZN1JVRjJSMHdzUVVGM1Iwa3NUMEY0UjBjc1EwRTJSa3dzWTBGQll5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExEQkNRVUV3UWl4RFFWYzFSQ3hMUVVGTExFTkJRVUVzUVVGQlFTeEZRVUZETEVWQlFVa3NiMEpCUVc5Q0xFRkJRWGhDTEVWQlFUQkNPMGxCUXpsQ0xFdEJRVXNzUlVGQlF5eEhRVUZITEVkQlExWTdSVTV5SzBKRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEUxQlFVMHNVMEZCVXl4RlFVRkZMRXRCUVVzN1NVMHlNMEoyUXl4QlFUSkhTU3hQUVROSFJ5eERRVFpHVEN4alFVRmpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNNRUpCUVRCQ0xFTkJZelZFTEU5QlFVOHNRMEZCUXp0TlFVVktMRTlCUVU4c1JVRkJSU3hKUVVGSkxFZEJSV2hDTzBWT01TdENSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMGxOTWpOQ2RrTXNRVUZuU0Uwc1QwRm9TRU1zUTBFMlJrd3NZMEZCWXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETERCQ1FVRXdRaXhIUVcxQ01VUXNSMEZCUnl4RlFXaElWQ3hCUVdkSWRVSXNUMEZvU0doQ0xFTkJOa1pNTEdOQlFXTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5d3dRa0ZCTUVJc1IwRnRRbTVFTEU5QlFVOHNSMEZCUnl4SFFVRkhMRU5CUVVNN1RVRkZia0lzVDBGQlR5eEZRVUZGTEVsQlFVazdUVUZEWWl4VFFVRlRMRVZCUVVVc1NVRkJTVHROUVVObUxHVkJRV1VzUlVGQlJTeGhRVUZoTEVkQlVXcERPMDFCTlVoTUxFRkJjVWhWTEU5QmNraElMRU5CTmtaTUxHTkJRV01zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXd3UWtGQk1FSXNSMEZ0UWpGRUxFZEJRVWNzUjBGTFF5eERRVUZETEVWQmNraFlMRUZCY1VoVkxFOUJja2hJTEVOQk5rWk1MR05CUVdNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl3d1FrRkJNRUlzUjBGdFFtNUVMRTlCUVU4c1IwRkJSeXhIUVVGSExFZEJTMmhDTEVOQlFVTXNRMEZCUXp0UlFVTkdMRmxCUVZrc1JVRkJReXhMUVVGTExFZEJRMjVDTzAxQmRraFVMRUZCWjBoTkxFOUJhRWhETEVOQk5rWk1MR05CUVdNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl3d1FrRkJNRUlzUjBGdFFqRkVMRWRCUVVjc1FVRlJSaXhYUVVGaExFVkJlRWh3UWl4QlFXZElkVUlzVDBGb1NHaENMRU5CTmtaTUxHTkJRV01zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXd3UWtGQk1FSXNSMEZ0UW01RUxFOUJRVThzUjBGQlJ5eEhRVUZITEVGQlVXNUNMRmRCUVdFc1EwRkJRenRSUVVOWUxGbEJRVmtzUlVGQlF5eERRVUZETEVkQlEyWTdPMEZCTVVoVUxFRkJPRWhGTEU5Qk9VaExMRVZCT0VoTUxFRkJRVUVzVFVGQlF5eEJRVUZCTEVWQlFWRTdSVUZEVUN4UFFVRlBMRVZCUVVVc1pVRkJaU3hIUVVONlFqczdRVUZvU1Vnc1FVRnBTVVVzVDBGcVNVc3NRMEZwU1V3c09FSkJRVGhDTEVOQlFVTTdSVUZETjBJc1QwRkJUeXhGUVVGRExFbEJRVWs3UlVGRFdpeGxRVUZsTEVWQlFVVXNUVUZCVFR0RlFVTjJRaXhYUVVGWExFVkJRVVVzVFVGQlRTeEhRVU53UWpzN1FVRnlTVWdzUVVGelNVVXNUMEYwU1Vzc1EwRnpTVXdzWjBKQlFXZENMRU5CUVVNN1JVRkRaaXhoUVVGaExFVkJRVU1zU1VGQlNTeEhRVWx1UWp0RlFUTkpTQ3hCUVhkSlNTeFBRWGhKUnl4RFFYTkpUQ3huUWtGQlowSXNRMEZGWkN4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVFVGQlRTeEJRVUZZTEVWQlFXRTdTVUZEYWtJc1UwRkJVeXhGUVVGRExFTkJRVU1zUjBGRFdqczdRVUV4U1V3c1FVRTJTVVVzVDBFM1NVc3NRMEUyU1V3c1MwRkJTeXhEUVVGQkxFRkJRVUVzUjBGQlF5eERRVUZKTERKQ1FVRXlRaXhCUVVFdlFpeEZRVUZwUXp0RlFVTnlReXhQUVVGUExFVkJRVVVzU1VGQlNUdEZRVU5pTEdWQlFXVXNSVUZCUlN4TlFVRk5PMFZCUTNaQ0xGZEJRVmNzUlVGQlJTeE5RVUZOTEVkQlEzQkNPenRCUVdwS1NDeEJRVzFLUlN4UFFXNUtTeXhEUVcxS1RDeExRVUZMTEVOQlFVRXNRVUZCUVN4SFFVRkRMRU5CUVVrc2IwTkJRVzlETEVGQlFYaERMRVZCUVRCRE8wVkJRemxETEZkQlFWY3NSVUZCUlN4RFFVRkRMRWRCUTJZN08wRkJja3BJTEVGQmQwcE5MRTlCZUVwRExFTkJkVXBNTEV0QlFVc3NRMEZCUVN4QlFVRkJMRWRCUVVNc1EwRkJTU3h4UWtGQmNVSXNRVUZCZWtJc1NVRkRSaXhMUVVGTExFTkJRVUVzUVVGQlFTeEpRVUZETEVOQlFVc3NUMEZCVHl4QlFVRmFMRVZCUVdNN1JVRkRjRUlzVTBGQlV5eEZRVUZETEVsQlFVa3NSMEZEWmpzN1FVRXhTa3dzUVVFMlNqUkNMRTlCTjBweVFpeERRVFpLVEN4MVFrRkJkVUlzUjBGQlJ5eExRVUZMTEVOQlFVTTdSVUZET1VJc1QwRkJUeXhGUVVGRExFdEJRVXM3UlVGRFlpeE5RVUZOTEVWQlFVTXNTVUZCU1N4SFFVTmFPenRCZUVkMFowTklMRUZCUVVFc1ZVRkJWU3hEUVVGRE8wVkJRMVFzUzBGQlN5eEZRVUZETEhGQ1FVRTBRaXhIUVVOdVF6czdRVUZQUkN4QlFVTkZMRXRCUkVjc1FVRkJRU3hKUVVGTExFVkJRVUVzUVVGQlFTeEJRVUZCTEVsQlFVTXNRMEZCU3l4VlFVRlZMRUZCUVdZc1JVRkJhVUlzU1VGQlN5eEZRVUZCTEVGQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFVkJRMmhETEUxQlFVOHNRMEZCUXp0RlFVTk9MRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEhOQ1FVRnpRaXhIUVVNeFF6czdRVUZIU0N4QlFVTkZMRVZCUkVFc1EwRkJRU3hCUVVGQkxGRkJRVU1zUVVGQlFTeERRVU5JTEUxQlFWTXNSVUZFU3l4QlFVTmFMRVZCUkdNc1FVRkJRU3h2UWtGQmIwSXNRVUZEY0VNc1RVRkJVeXhIUVVRMlFpeEJRVUZCTEVGQlEzQkRMRWxCUkhGRExFTkJRVXNzVTBGQlV5eEJRVUZrTEVOQlEzWkRMRTFCUVZNc1EwRkJRenRGUVVOT0xFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMSE5DUVVGelFpeEhRVU14UXpzN1FVRkhTQ3hCUVVORkxFOUJSRXNzUVVGRFRDeE5RVUZQTEVOQlFVTTdSVUZEVGl4UFFVRlBMRVZCUVVVc1NVRkJTVHRGUVVOaUxGZEJRVmNzUlVGQlJTeEpRVUZKTzBWQlEycENMRXRCUVVzc1JVRkJSU3h6UWtGQmMwSXNSMEZET1VJN08wRjNSMmxxUWtnc1FYaEhPV2xDUVN4UGQwYzRhVUpQTEVOQmRVMU1MR2xDUVVGcFFpeEZlRWMxZEVKdVFpeEJRWHBDUVN4VFFYbENVeXhGUVhGS1ZDeEJRVGxMUVN4UFFUaExUeXhEUVc5VFRDeHRRa0ZCYlVJc1EwRnNaRmc3UlVGRFVpeFBRVUZQTEVWQlFVTXNTVUZCU1N4SFFYTkNZanRGZDBkMWFFSkVMRUY0UnpscFFrRXNUM2RIT0dsQ1R5eERlRWN6YVVKTUxGVkJRVmNzUVhkSGEzWkNXQ3hwUWtGQmFVSXNSWGhIYkhaQ2FrSXNRVUZJUml4VlFVZGhMRUZCYzBKaUxGTkJRVk1zUlVGeFNsUXNRVUU1UzBFc1QwRTRTMDhzUTBFelMwd3NWVUZCVnl4QlFTdGpXQ3h0UWtGQmJVSXNRMEV2WTFBN1NVRkRWaXhUUVVGVExFVkJRVU1zU1VGQlNTeEhRVXRtTzBsM1IzRnBRa2dzUVhoSGVtbENUU3hQZDBkNWFVSkRMRU40UnpOcFFrd3NWVUZCVnl4QmQwZHJka0pZTEdsQ1FVRnBRaXhIZUVkb2RrSmlMRU5CUVVNc1JVRkdUQ3hCUVVWSkxGVkJSazhzUVVGelFtSXNVMEZCVXl4SFFYQkNTQ3hEUVVGRExFVkJlVXRRTEVGQmVrdE5MRTlCZVV0RExFTkJNMHRNTEZWQlFWY3NRVUVyWTFnc2JVSkJRVzFDTEVkQk4yTm1MRU5CUVVNc1EwRkJRenROUVVOR0xGbEJRVmtzUlVGQlJTeEpRVUZKTzAxQlEyeENMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFZEJRM0JDTzBWM1IzTnBRa3dzUVhoSE9XbENRU3hQZDBjNGFVSlBMRU40UjNCcFFrd3NVMEZCVlN4QmQwY3lkVUpXTEdsQ1FVRnBRaXhGZUVjemRVSnFRaXhCUVZaR0xGTkJWVmtzUVVGbFdpeFRRVUZUTEVWQmNVcFVMRUZCT1V0QkxFOUJPRXRQTEVOQmNFdE1MRk5CUVZVc1FVRjNZMVlzYlVKQlFXMUNMRU5CZUdOU08wbEJRMVFzWlVGQlpTeEZRVUZGTEUxQlFVMHNSMEZEZUVJN1JYZEhhMmxDU0N4QmVFZG9hVUpKTEU5M1IyZHBRa2NzUTBGMVRVd3NhVUpCUVdsQ0xFZDRSM1oxUW1Zc1EwRkJReXhGUVZkTUxFRkJXRWtzVTBGWFN5eEhRVmhNTEVOQlFVTXNSVUZuUzB3c1FVRm9TMGtzVDBGblMwY3NRMEZ2VTB3c2JVSkJRVzFDTEVkQmNHTnFRaXhEUVVGRExFTkJRVU03U1VGRFJpeFpRVUZaTEVWQlFVTXNTMEZCU3l4SFFVOXVRanRKZDBkM2FFSklMRUY0UjJocFFra3NUM2RIWjJsQ1J5eERRWFZOVEN4cFFrRkJhVUlzUjNoSGRuVkNaaXhEUVVGRExFRkJSVVFzVTBGQlZTeEZRVk5rTEVGQldFa3NVMEZYU3l4SFFWaE1MRU5CUVVNc1FVRkZSQ3hUUVVGVkxFVkJPRXBrTEVGQmFFdEpMRTlCWjB0SExFTkJiMU5NTEcxQ1FVRnRRaXhIUVhCamFrSXNRMEZCUXl4QlFVVkVMRk5CUVZVc1EwRkJRenROUVVOVUxGTkJRVk1zUlVGQlJTeERRVUZETEVkQlEySTdTWGRITkdoQ1RDeEJlRWRvYVVKSkxFOTNSMmRwUWtjc1EwRjFUVXdzYVVKQlFXbENMRWQ0UjNaMVFtWXNRMEZCUXl4QlFVdEVMRmRCUVZrc1JVRk5hRUlzUVVGWVNTeFRRVmRMTEVkQldFd3NRMEZCUXl4QlFVdEVMRmRCUVZrc1JVRXlTbWhDTEVGQmFFdEpMRTlCWjB0SExFTkJiMU5NTEcxQ1FVRnRRaXhIUVhCamFrSXNRMEZCUXl4QlFVdEVMRmRCUVZrc1EwRkJRenROUVVOWUxGbEJRVmtzUlVGQlF5eERRVUZETEVkQlEyWTdPME5CVFVnc1FVRkJRU3hCUVVGblFpeEpRVUZtTEVOQlFVc3NVVUZCVVN4QlFVRmlMRVZCUmtnc1UwRkJVeXhEUVVWWE8wVkJRMmhDTEZWQlFWVXNSVUZCUlN4TFFVRkxMRWRCUTJ4Q096dEJRV2xLU0N4QlFUbEpRU3hQUVRoSlR5eERRVzlUVEN4dFFrRkJiVUlzUlVGd1UzSkNMRUZCT1VsQkxFOUJPRWxQTEVOQksyWk1MR1ZCUVdVc1EwRTNiMEpRTzBWQlExSXNWVUZCVlN4RlFVRkRMRTFCUVUwc1IwRkRiRUk3TzBGQlJVUXNRVUZCUVN4RFFVRkRMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzWTBGQll5eEJRVUZ1UWl4RlFVRnhRanRGUVVOeVFpeExRVUZMTEVWQlFVTXNkVUpCUVhWQ08wVkJRemRDTEdWQlFXVXNSVUZCUXl4bFFVRmxMRWRCUTJoRE96dEJRVTFFTEZWQlFWVXNRMEZCVml4UFFVRlZPMFZCUTFJc1FVRkJRU3hGUVVGRk8wbEJRVVVzVTBGQlV5eEZRVUZGTEdOQlFXTTdPMEZCUnk5Q0xFRkJRVUVzYjBKQlFXOUNMRU5CUVVNN1JVRkRia0lzVTBGQlV5eEZRVUZGTERCQ1FVRXdRaXhIUVVOMFF6czdRVUZGUkN4QlFVVkpMR05CUmxVc1EwRkJReXhGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNRMEZEYUVJc01rSkJRVFJDTEVOQlF6RkNMRzlDUVVGdlFpeERRVUZETzBWQlEyNUNMRmRCUVZjc1JVRkJReXhKUVVGSkxFZEJRMnBDT3p0QlFVcE1MRUZCVVZFc1kwRlNUU3hEUVVGRExFVkJRVVVzUTBGQlFTeEJRVUZCTEZGQlFVTXNRVUZCUVN4RFFVMW9RaXhQUVVGUkxFTkJRMDRzYVVKQlFXbENMRWRCUTJJc1EwRkJReXhEUVVGRE8wVkJRMFlzVDBGQlR5eEZRVUZETEdsQ1FVRnBRaXhIUVVNeFFqczdRVUZXVUN4QlFWbEpMR05CV2xVc1EwRkJReXhGUVVGRkxFTkJRVUVzUVVGQlFTeFJRVUZETEVGQlFVRXNRMEZOYUVJc1QwRkJVU3hEUVUxT0xHOUNRVUZ2UWl4RFFVRkRPMFZCUTI1Q0xGZEJRVmNzUlVGQlF5eEpRVUZKTEVkQlEycENPenRCUVdsQ1RDeHhRa0ZCY1VJN1FVRkRja0k3T3pzN096czdSMEZQUnp0QlFVTklMRzFDUVVGdFFqdEJRV2xHYmtJc1FVRXpSVUVzVDBFeVJVOHNRMEUyV0V3c1kwRkJZeXhGUVRkWWFFSXNRVUV6UlVFc1QwRXlSVThzUTBFeVprd3NRMEZCUXl4RFFVRkJMRUZCUVVFc1MwRkJReXhGUVVGUExFOUJRVThzUVVGQlpDeEhRVE5tU2l4QlFUTkZRU3hQUVRKRlR5eERRVzFvUWt3c2IwSkJRVzlDTEVWQmJtaENkRUlzUVVFelJVRXNUMEV5UlU4c1EwRnRha0pNTEdkQ1FVRm5RaXhGUVc1cVFteENMRUZCTTBWQkxFOUJNa1ZQTEVOQmFYTkNUQ3hqUVVGakxFTkJaVm9zYjBKQlFXOUNMRVZCTUVSNFFpeEJRWEl4UWtFc1dVRnhNVUpaTEVOQmMwTldMRFpDUVVFMlFpeEhRVUZITEVOQlFVTXNSVUZvZWtKdVF5eEJRVE5GUVN4UFFUSkZUeXhEUVRKVlRDeDNRa0ZCZDBJc1EwRjBXbWhDTzBWQlExSXNUVUZCVFN4RlFVRkRMSGRDUVVGM1FpeERRVUZETERCQ1FVRXdRaXhEUVVGRExHdERRVUVyUXl4SFFVTXpSenM3UVVGNVJVUXNRVUYyUlVFc1QwRjFSVThzUTBFMldFd3NZMEZCWXl4RlFUZFlhRUlzUVVGMlJVRXNUMEYxUlU4c1EwRXlaa3dzUTBGQlF5eERRVUZCTEVGQlFVRXNTMEZCUXl4RlFVRlBMRTlCUVU4c1FVRkJaQ3hIUVRObVNpeEJRWFpGUVN4UFFYVkZUeXhEUVcxb1Frd3NiMEpCUVc5Q0xFVkJibWhDZEVJc1FVRjJSVUVzVDBGMVJVOHNRMEZ0YWtKTUxHZENRVUZuUWl4RlFXNXFRbXhDTEVGQmRrVkJMRTlCZFVWUExFTkJhWE5DVEN4alFVRmpMRU5CWlZvc2IwSkJRVzlDTEVWQk1FUjRRaXhCUVdveFFrRXNXVUZwTVVKWkxFTkJjME5XTERaQ1FVRTJRaXhIUVVGSExFTkJRVU1zUlVGb2VrSnVReXhCUVhaRlFTeFBRWFZGVHl4RFFXbFhUQ3hqUVVGakxFTkJaMEphTEVWQlFVVXNRVUZCUVN4WlFVRlpMRU5CZUdKV08wVkJRMDRzVDBGQlR5eEZRVUZETEVsQlFVa3NSMEZMWWp0RmEwY3ZTa2NzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRKYkVkblQzWkRMRUZCZGtWQkxFOUJkVVZQTEVOQk5saE1MR05CUVdNc1JVRTNXR2hDTEVGQmRrVkJMRTlCZFVWUExFTkJNbVpNTEVOQlFVTXNRMEZCUVN4QlFVRkJMRXRCUVVNc1JVRkJUeXhQUVVGUExFRkJRV1FzUjBFelprb3NRVUYyUlVFc1QwRjFSVThzUTBGdGFFSk1MRzlDUVVGdlFpeEZRVzVvUW5SQ0xFRkJka1ZCTEU5QmRVVlBMRU5CYldwQ1RDeG5Ra0ZCWjBJc1JVRnVha0pzUWl4QlFYWkZRU3hQUVhWRlR5eERRV2x6UWt3c1kwRkJZeXhEUVdWYUxHOUNRVUZ2UWl4RlFUQkVlRUlzUVVGcU1VSkJMRmxCYVRGQ1dTeERRWE5EVml3MlFrRkJOa0lzUjBGQlJ5eERRVUZETEVWQmFIcENia01zUVVGMlJVRXNUMEYxUlU4c1EwRnBWMHdzWTBGQll5eERRV2RDV2l4RlFVRkZMRUZCUVVFc1dVRkJXU3hEUVhoaVZqdE5RVWxLTEU5QlFVOHNSVUZCUXl4TFFVRkxMRWRCUldoQ096dEJRV2xGUkN4QlFYSkVRU3hQUVhGRVR5eERRVFpZVEN4alFVRmpMRVZCTjFob1FpeEJRWEpFUVN4UFFYRkVUeXhEUVRKbVRDeERRVUZETEVOQlFVRXNRVUZCUVN4TFFVRkRMRVZCUVU4c1QwRkJUeXhCUVVGa0xFZEJNMlpLTEVGQmNrUkJMRTlCY1VSUExFTkJiV2hDVEN4dlFrRkJiMElzUlVGdWFFSjBRaXhCUVhKRVFTeFBRWEZFVHl4RFFXMXFRa3dzWjBKQlFXZENMRVZCYm1wQ2JFSXNRVUZ5UkVFc1QwRnhSRThzUTBGcGMwSk1MR05CUVdNc1EwRmxXaXh2UWtGQmIwSXNRMEZ5ZDBKcVFqdEZRVkJNTEdGQlFXRXNSVUZCUXl4UFFVRlBPMFZCUjI1Q0xGVkJRVlVzUlVGQlF5eHpRa0ZCYzBJc1IwRk5jRU03TzBGQk5ucENSQ3hCUVRONlFrRXNXVUV5ZWtKWkxFTkJjME5XTERaQ1FVRTJRaXhIUVVGSExFTkJRVU1zUTBGcU1rSnlRanRGUVZoYUxHRkJRV0VzUlVGQlF5eFBRVUZQTzBWQllYSkNMRmxCUVZrc1JVRkJSU3hMUVVGTE8wVkJRMjVDTEdGQlFXRXNSVUZCUlN4TFFVRkxPMFZCUlhCQ0xGVkJRVlVzUlVGQlJTeDFRMEZCZFVNN1JVRkRia1FzUzBGQlN5eEZRVUZGTEd0RFFVRnJRenRGUVVONlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXh2UlVGQmFVWXNSMEZyUTNCSE8wVkJhM2hDUkN4QlFXeDZRa1VzV1VGcmVrSlZMRU5CYzBOV0xEWkNRVUUyUWl4SFFVRkhMRU5CUVVNc1EwRjRNVUpxUXl4RFFVRkRMRU5CUVVNN1NVRkRRU3hMUVVGTExFVkJRVVVzV1VGQldTeEhRVU53UWp0RmEwY3hURU1zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRKYkVjd0swSjJReXhCUVRkNVFra3NXVUUyZVVKUkxFTkJjME5XTERaQ1FVRTJRaXhIUVVGSExFTkJRVU1zUTBGdU1VSXZRaXhGUVVGRkxFTkJRVU03VFVGRFJDeFBRVUZQTEVWQlFVVXNTVUZCU1N4SFFVTmtPMFZCTW5sQ1RDeEJRWGg1UWtVc1dVRjNlVUpWTEVOQmMwTldMRFpDUVVFMlFpeEhRVUZITEVOQlFVTXNRMEU1TUVKcVF5eE5RVUZOTEVOQlFVTTdTVUZEVEN4UlFVRlJMRVZCUVVVc1VVRkJVVHRKUVVOc1FpeEhRVUZITEVWQlFVVXNUVUZCVFR0SlFVTllMRXRCUVVzc1JVRkJSU3hOUVVGTk8wbEJRMklzUzBGQlN5eEZRVUZGTEZsQlFWazdTVUZEYmtJc1ZVRkJWU3hGUVVGRkxHZENRVUZuUWp0SlFVTTFRaXhWUVVGVkxFVkJRVVVzU1VGQlNTeEhRVk5xUWp0SlFYbDRRa2dzUVVGNGVVSkZMRmxCZDNsQ1ZTeERRWE5EVml3MlFrRkJOa0lzUjBGQlJ5eERRVUZETEVOQk9UQkNha01zVFVGQlRTeEJRVTlLTEUxQlFVOHNSVUZwZVVKWUxFRkJlSGxDUlN4WlFYZDVRbFVzUTBGelExWXNOa0pCUVRaQ0xFZEJRVWNzUTBGQlF5eERRVGt3UW1wRExFMUJRVTBzUVVGUFN5eE5RVUZQTEVOQlFVTTdUVUZEWml4TFFVRkxMRVZCUVVVc2QwTkJRWEZFTEVOQlFVTXNWVUZCVlR0TlFVTjJSU3hOUVVGTkxFVkJRVVVzU1VGQlNUdE5RVU5hTEZWQlFWVXNSVUZCUlN4SlFVRkpMRWRCU1dwQ08wMUJNSGhDVEN4QlFUZDRRazBzV1VFMmVFSk5MRU5CYzBOV0xEWkNRVUUyUWl4SFFVRkhMRU5CUVVNc1EwRTVNRUpxUXl4TlFVRk5MRUZCVDBvc1RVRkJUeXhEUVVsTUxFZEJRVWNzUlVFMmVFSlVMRUZCTjNoQ1RTeFpRVFo0UWswc1EwRnpRMVlzTmtKQlFUWkNMRWRCUVVjc1EwRkJReXhEUVRrd1FtcERMRTFCUVUwc1FVRlBTeXhOUVVGUExFTkJTV1FzUjBGQlJ5eERRVUZETzFGQlEwWXNTVUZCU1N4RlFVRkZMSFZDUVVGMVFpeEhRVU01UWp0RlFUSjRRbEFzUVVFemVrSkJMRmxCTW5wQ1dTeERRWE5EVml3MlFrRkJOa0lzUjBFNWVrSTNRaXhyUWtGQmJVSXNRMEZCUXp0SlFVTnNRaXg1UWtGQmVVSXNSVUZCUlN4UFFVRlBPMGxCUTJ4RExHOUNRVUZ2UWl4RlFVRkZMRTlCUVU4N1NVRkROMElzTWtKQlFUSkNMRVZCUVVVc1QwRkJUenRKUVVOd1F5d3dRa0ZCTUVJc1JVRkJSU3hQUVVGUExFZEJRM0JET3p0QlFWTklMRUZCUVVFc1QwRkJUeXhEUVVGRE8wVkJaMDVPTEc5RFFVRnZRenRGUVVsd1F5d3JRa0ZCSzBJN1JVRm5SQzlDT3pzN096czdTMEZOUnp0RlFVVklPenM3T3pzN096czdPMHRCVlVjN1JVRXlRMGc3T3pzN096czdPMHRCVVVjN1JVRnJZa2c3T3pzN096czdTMEZQUnl4RlFVVktPMFZCY0hkQ1JDeEJRVU5GTEU5QlJFc3NRMEZEVEN3MlFrRkJOa0lzUTBGQlF6dEpRVXMxUWl4VlFVRlZMRVZCUVVVc2RVTkJRWFZETzBsQlVXNUVMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMVlzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZ0UWs0c1ZVRkJWU3hGUVVGRkxFMUJRVTBzUjBGVGJrSTdTVUV6UTBnc1FVRkZUU3hQUVVaRExFTkJRMHdzTmtKQlFUWkNMRWRCUTNwQ0xFTkJRVU1zUTBGQlF6dE5RVU5HTEZGQlFWRXNSVUZCUlN4UlFVRlJMRWRCUTI1Q08wbHJSM0JQUkN4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzAxc1IyZFBka01zUVVGRFJTeFBRVVJMTEVOQlEwd3NOa0pCUVRaQ0xFTkJRVU03VVVGVE1VSXNWVUZCVlN4RlFVRkZMR3RDUVVGclFqdFJRVU01UWl4SlFVRkpMRVZCUVVNc1EwRkJRenRSUVVOT0xFdEJRVXNzUlVGQlF5eERRVUZETEVkQkswSldPMGxCTTBOSUxFRkJRMFVzVDBGRVN5eERRVU5NTERaQ1FVRTJRaXhEUVdVelFpeEJRVUZCTEZkQlFVVXNRMEZCV1N4TlFVRk5MRUZCUVd4Q0xFVkJRVzlDTzAxQlJYQkNMRTlCUVU4c1JVRkJSU3hEUVVGRE8wMUJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdUVUZEVkN4UFFVRlBMRVZCUVVVc1MwRkJTenROUVVOa0xGVkJRVlVzUlVGQlJTd3JRMEZCSzBNc1IwRk5OVVE3U1d0SE0xQkVMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdUV3hIWjA5MlF5eEJRVU5GTEU5QlJFc3NRMEZEVEN3MlFrRkJOa0lzUTBGQlF6dFJRVFJDTVVJc1VVRkJVU3hGUVVGRkxGRkJRVkU3VVVGRGJFSXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkRVQ3hMUVVGTExFVkJRVVVzUTBGQlF6dFJRVU5TTEVkQlFVY3NSVUZCUlN4TlFVRk5MRWRCVjJRN1NVRXpRMGdzUVVGeFEwa3NUMEZ5UTBjc1EwRkRUQ3cyUWtGQk5rSXNRMEZ2UXpOQ0xFTkJRVU1zUTBGQlF6dE5RVU5CTEUxQlFVMHNSVUZCUlN4RFFVRkRMRWRCUTFZN1NVRjJRMHdzUVVGM1Ewa3NUMEY0UTBjc1EwRkRUQ3cyUWtGQk5rSXNRMEYxUXpOQ0xFdEJRVXNzUTBGQlF6dE5RVU5LTEZOQlFWTXNSVUZCUlN4dFFrRkJhMElzUjBGRE9VSTdSVUV4UTB3c1FVRTJRekJETEU5Qk4wTnVReXhEUVRSRFRDeHZRa0ZCYjBJc1EwRkRiRUlzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RlFVRk5MR0ZCUVdFc1FVRkJia0lzUTBGQmIwSXNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJRenRKUVVNeFF5eE5RVUZOTEVWQlFVVXNUMEZCVHp0SlFVTm1MRkZCUVZFc1JVRkJReXhSUVVGUk8wbEJRMnBDTEZsQlFWa3NSVUZCUlN4TFFVRkxMRWRCYVVKd1FqdEpRV3BGVEN4QlFXbEVUU3hQUVdwRVF5eERRVFJEVEN4dlFrRkJiMElzUTBGRGJFSXNTMEZCU3l4RFFVRkJMRUZCUVVFc1NVRkJReXhGUVVGTkxHRkJRV0VzUVVGQmJrSXNRMEZCYjBJc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGSmVrTXNVVUZCVVN4RFFVRkRPMDFCUTFBc1VVRkJVU3hGUVVGRExGRkJRVkU3VFVGRGFrSXNSMEZCUnl4RlFVRkRMRU5CUVVNN1RVRkRUQ3hKUVVGSkxFVkJRVU1zVFVGQlRUdE5RVU5ZTEUxQlFVMHNSVUZCUXl4RFFVRkRPMDFCUTFJc1QwRkJUeXhGUVVGRExFbEJRVWs3VFVGRFdpeGxRVUZsTEVWQlFVVXNUVUZCVFR0TlFVTjJRaXhYUVVGWExFVkJRVVVzVFVGQlRTeEhRVU53UWp0SlFYcEVVQ3hCUVRaRE1FTXNUMEUzUTI1RExFTkJORU5NTEc5Q1FVRnZRaXhEUVVOc1FpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRVZCUVUwc1lVRkJZU3hCUVVGdVFpeERRVUZ2UWl4VFFVRlRMRWRCUVVjc1MwRkJTeXhCUVdGNlF5eE5RVUZQTEVOQlFVTTdUVUZEVGl4VlFVRlZMRVZCUVVVc2RVSkJRWFZDTzAxQlEyNURMRXRCUVVzc1JVRkJSU3cwUWtGQk5FSXNSMEZKY0VNN1RVRm9SVkFzUVVFMlJGRXNUMEUzUkVRc1EwRTBRMHdzYjBKQlFXOUNMRU5CUTJ4Q0xFdEJRVXNzUTBGQlFTeEJRVUZCTEVsQlFVTXNSVUZCVFN4aFFVRmhMRUZCUVc1Q0xFTkJRVzlDTEZOQlFWTXNSMEZCUnl4TFFVRkxMRUZCWVhwRExFMUJRVThzUTBGSFRDeEhRVUZITEVOQlFVTTdVVUZEUml4SlFVRkpMRVZCUVVVc1dVRkJXU3hIUVVOdVFqdEZRUzlFVkN4QlFXMUZSU3hQUVc1RlN5eERRVzFGVEN4RFFVRkRMRU5CUVVNN1NVRkRRU3hMUVVGTExFVkJRVU1zTUVKQlFUQkNMRWRCUTJwRE8wVkJja1ZJTEVGQmRVVkZMRTlCZGtWTExFTkJkVVZNTEVWQlFVVXNSVUYyUlVvc1FVRjFSVXNzVDBGMlJVVXNRMEYxUlVZc1JVRkJSU3hGUVhaRlVDeEJRWFZGVVN4UFFYWkZSQ3hEUVhWRlF5eEZRVUZGTEVWQmRrVldMRUZCZFVWWExFOUJka1ZLTEVOQmRVVkpMRVZCUVVVc1JVRjJSV0lzUVVGMVJXTXNUMEYyUlZBc1EwRjFSVThzUlVGQlJTeEZRWFpGYUVJc1FVRjFSV2xDTEU5QmRrVldMRU5CZFVWVkxFVkJRVVVzUTBGQlF6dEpRVU5vUWl4WFFVRlhMRVZCUVVVc1RVRkJUU3hIUVVOd1FqdEZRWHBGU0N4QlFUSkZSU3hQUVRORlN5eERRVEpGVEN4RlFVRkZMRVZCTTBWS0xFRkJNa1ZMTEU5Qk0wVkZMRU5CTWtWR0xFVkJRVVVzUlVFelJWQXNRVUV5UlZFc1QwRXpSVVFzUTBFeVJVTXNSVUZCUlN4RlFUTkZWaXhCUVRKRlZ5eFBRVE5GU2l4RFFUSkZTU3hGUVVGRkxFVkJNMFZpTEVGQk1rVmpMRTlCTTBWUUxFTkJNa1ZQTEVWQlFVVXNSVUV6UldoQ0xFRkJNa1ZwUWl4UFFUTkZWaXhEUVRKRlZTeEZRVUZGTEVWQk0wVnVRaXhCUVRKRmNVSXNUMEV6UldRc1EwRXlSV01zUzBGQlN5eERRVUZETzBsQlEzWkNMRXRCUVVzc1JVRkJReXh6UWtGQmNVTXNSMEZETlVNN1JVRTNSVWdzUVVGdFJrVXNUMEZ1Umtzc1EwRnRSa3dzVFVGQlRTeERRVUZETzBsQk5WUlFMRlZCUVZVc1JVRkJReXgxUWtGQmRVSTdTVUZEYkVNc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXcwUWtGQk5FSTdTVUZEYkVRc1MwRkJTeXhGUVVGRExEUkNRVUUwUWp0SlFVTnNReXhOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU5VTEdGQlFXRXNSVUZCUlN4SFFVRkhPMGxCUTJ4Q0xFOUJRVThzUlVGQlF5eFRRVUZUTzBsQk9GUm1MR0ZCUVdFc1JVRkJSU3hMUVVGTE8wbEJRM0JDTEZWQlFWVXNSVUZCUlN4SlFVRkpPMGxCUTJoQ0xHZENRVUZuUWl4RlFVTmtMR3RsUVVGclpUdEpRVWx3WlN4bFFVRmxMRVZCUVVVc1QwRkJUenRKUVVONFFpeHBRa0ZCYVVJc1JVRkJSU3hUUVVGVE8wbEJRelZDTEdkQ1FVRm5RaXhGUVVGRkxFOUJRVTg3U1VGRGVrSXNiVUpCUVcxQ0xFVkJRVVVzVlVGQlZUdEpRVU12UWpzN096czdPenM3TzA5QlUwY3NSVUZGU2p0SmEwZG9Wa01zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenROYkVkblQzWkRMRUZCYlVaRkxFOUJia1pMTEVOQmJVWk1MRTFCUVUwc1EwRkJRenRSUVVWSUxFdEJRVXNzUlVGQlJTeEpRVUZKTzFGQlExZ3NWVUZCVlN4RlFVRkZMRWxCUVVrc1IwRXdRbTVDTzBsQmFFaElMRUZCYlVaRkxFOUJia1pMTEVOQmJVWk1MRTFCUVUwc1FVRjBWRm9zVFVGQllTeERRVUZETzAxQlEwNHNUMEZCVHl4RlFVRkZMRWxCUVVrN1RVRkRZaXhqUVVGakxFVkJRVVVzYzBKQlFYTkNPMDFCUTNSRExIRkNRVUZ4UWl4RlFVRkZMSE5DUVVGelFpeEhRVU01UXpzN1FVRTJWRU1zWTBGQll5eERRVUZrTEZsQlFXTTdSVUU1Um14Q0xFRkJiVVpGTEU5QmJrWkxMRU5CYlVaTUxFMUJRVTBzUTBGQlRqdEpRVmxKTEdkQ1FVRm5RaXhGUVVGRkxEaENRVUU0UWl4SFFXbENia1E3UlVGb1NFZ3NRVUZ6U1VVc1QwRjBTVXNzUTBGelNVd3NUVUZCVFN4RFFVRkJMRUZCUVVFc1JVRkJReXhGUVVGSkxEWkNRVUUyUWl4QlFVRnFReXhGUVVGdFF6dEpRVU40UXl4aFFVRmhMRVZCUVVNc1NVRkJTVHRKUVVOc1FpeFZRVUZWTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETERSQ1FVRTBRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRFJDUVVGNVF6dEpRVU40UnpzN1QwRkZSeXhGUVZkS08wbEJkRXBJTEVGQmMwbEZMRTlCZEVsTExFTkJjMGxNTEUxQlFVMHNRMEZCUVN4QlFVRkJMRVZCUVVNc1JVRkJTU3cyUWtGQk5rSXNRVUZCYWtNc1EwRk5UQ3hOUVVGUExFTkJRVU03VFVGRFRpeGpRVUZqTEVWQlFVVXNjMEpCUVhOQ0xFZEJRM1pETzBsclJ6bFhSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZ6U1VVc1QwRjBTVXNzUTBGelNVd3NUVUZCVFN4RFFVRkJMRUZCUVVFc1JVRkJReXhGUVVGSkxEWkNRVUUyUWl4QlFVRnFReXhGUVVGdFF6dFJRVlYwUXl4TFFVRkxMRVZCUVVVc1NVRkJTVHRSUVVOWUxGVkJRVlVzUlVGQlJTeFBRVUZQTEVkQlMzUkNPMGxyUjNSWVF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wMXNSMmRQZGtNc1FVRnpTVVVzVDBGMFNVc3NRMEZ6U1V3c1RVRkJUU3hEUVVGQkxFRkJRVUVzUlVGQlF5eEZRVUZKTERaQ1FVRTJRaXhCUVVGcVF5eEZRVUZ0UXp0UlFXTjBReXhoUVVGaExFVkJRVU1zUTBGQlF5eEhRVVZzUWp0RlFYUktTQ3hCUVhsTFJTeFBRWHBMU3l4RFFYbExUQ3hEUVVGRExFRkJRVUVzVTBGQlV5eERRVUZETzBsQlExUXNUVUZCVFN4RlFVRkRMRmRCUVZjc1IwRkRia0k3UlVFeWJFSklMRUZCZW14Q1JTeFBRWGxzUWtzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4dFFrRkJiVUlzUVVGQlFTeEpRVUZMTEVWQlFVRXNRVUZCUVN4QlFVRkJMRmRCUVVNc1EwRkJXU3hOUVVGTkxFRkJRV3hDTEV0QlFYVkNMRU5CUVVNc1FVRkJRU3hYUVVGWExFTkJlbXhDZGtVN1NVRndRbVFzWjBKQlFXZENMRVZCUVVVc1QwRkJUenRKUVVONlFpeG5Ra0ZCWjBJc1JVRkJSU3hwUTBGQmFVTTdTVUZEYmtRc1ZVRkJWU3hGUVVGRkxFbEJRVWs3U1VGRGFFSXNTMEZCU3l4RlFVRkZMRXRCUVVzc1IwRnRRbUk3U1VGMWJFSklMRUZCZW14Q1JTeFBRWGxzUWtzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4dFFrRkJiVUlzUVVGQlFTeEpRVUZMTEVWQlFVRXNRVUZCUVN4QlFVRkJMRmRCUVVNc1EwRkJXU3hOUVVGTkxFRkJRV3hDTEV0QmVtMUNjRVFzVFVGQlV5eEJRWGx0UW0xRkxGZEJRVmNzUlVGQmVrWXNRVUY2YkVKRkxFOUJlV3hDU3l4RFFVRkRMRzlDUVVGdlFpeERRVUZETEcxQ1FVRnRRaXhCUVVGQkxFbEJRVXNzUlVGQlFTeEJRVUZCTEVGQlFVRXNWMEZCUXl4RFFVRlpMRTFCUVUwc1FVRkJiRUlzUzBGNmJVSXpReXhOUVVGVExFRkJlVzFDTUVRc1YwRkJWeXhEUVhwdFFuQkZPMDFCUTJZc1kwRkJZeXhGUVVGRkxFOUJRVTg3VFVGRGRrSXNaMEpCUVdkQ0xFVkJRVVVzVDBGQlR6dE5RVU42UWl4blFrRkJaMElzUlVGQlJTeHBRMEZCYVVNN1RVRkRia1FzUzBGQlN5eEZRVUZGTEV0QlFVczdUVUZEV2l4VlFVRlZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRFJDUVVFMFFpeEhRVU51UkR0SlFXMXRRa3dzUVVGNmJFSkZMRTlCZVd4Q1N5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHMUNRVUZ0UWl4QlFVRkJMRWxCUVVzc1JVRkJRU3hCUVVGQkxFRkJRVUVzVjBGQlF5eERRVUZaTEUxQlFVMHNRVUZCYkVJc1MwRnNiVUp3UkN4VFFVRlpMRUZCYTIxQ1owVXNWMEZCVnl4RFFXeHRRakZGTzAxQlExUXNUVUZCVFN4RlFVRkZMR1ZCUVdVc1IwRkRlRUk3UlVGMFMwd3NRVUZwVEVVc1QwRnFURXNzUTBGcFRFd3NRMEZCUXl4QlFVRkJMRTlCUVU4c1EwRkJRenRKUVVOUUxHVkJRV1VzUlVGQlF5eEpRVUZKTEVkQlJYSkNPMFZCY0V4SUxFRkJkMHhGTEU5QmVFeExMRU5CZDB4TUxFMUJRVTBzUlVGNFRGSXNRVUYzVEZVc1QwRjRURWdzUTBGM1RFY3NUMEZCVHl4RFFVRkRPMGxCYW1Gb1FpeFZRVUZWTEVWQlFVTXNkVUpCUVhWQ08wbEJRMnhETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNORUpCUVRSQ08wbEJRMnhFTEV0QlFVc3NSVUZCUXl3MFFrRkJORUk3U1VGRGJFTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRWQ3hoUVVGaExFVkJRVVVzUjBGQlJ6dEpRVU5zUWl4UFFVRlBMRVZCUVVNc1UwRkJVeXhIUVRCaGFFSTdTVUYwVFVnc1FVRjNURVVzVDBGNFRFc3NRMEYzVEV3c1RVRkJUU3hCUVROYVdpeE5RVUZoTEVWQmJVOVVMRUZCZDB4VkxFOUJlRXhJTEVOQmQweEhMRTlCUVU4c1FVRXpXbkpDTEUxQlFXRXNRMEZCUXp0TlFVTk9MRTlCUVU4c1JVRkJSU3hKUVVGSk8wMUJRMklzWTBGQll5eEZRVUZGTEhOQ1FVRnpRanROUVVOMFF5eHhRa0ZCY1VJc1JVRkJSU3h6UWtGQmMwSXNSMEZET1VNN1NVRXJUa2dzUVVGM1RFVXNUMEY0VEVzc1EwRjNURXdzVFVGQlRTeEJRWEphVkN4TlFVRlpMRVZCTms1WUxFRkJkMHhWTEU5QmVFeElMRU5CZDB4SExFOUJRVThzUVVGeVdteENMRTFCUVZrc1EwRkJRenROUVVOT0xGVkJRVlVzUlVGMlExSXNUMEZCVHp0TlFYZERWQ3hMUVVGTExFVkJRVVVzUzBGQlN6dE5RVU5hTEdOQlFXTXNSVUZCUlN3MlFrRkJNRU03VFVGRE1VUXNjVUpCUVhGQ0xFVkJRVVVzTmtKQlFUQkRMRWRCU1d4Rk8wMUJjVTVNTEVGQmVFNU5MRTlCZDA1RExFTkJkMHhNTEUxQlFVMHNRVUZ5V2s0c1RVRkJVeXhEUVV0TUxFZEJRVWNzUlVGM1RsUXNRVUY0VGswc1QwRjNUa01zUTBGM1RFY3NUMEZCVHl4QlFYSmFaaXhOUVVGVExFTkJTMHdzUjBGQlJ5eERRVUZETzFGQlEwWXNTVUZCU1N4RlFVRkZMRXRCUVVzc1IwRkRXanRKUVhOT1VDeEJRWGRNUlN4UFFYaE1TeXhEUVhkTVRDeE5RVUZOTEVGQlIwd3NaMEpCUVd0Q0xFVkJNMHh5UWl4QlFYZE1WU3hQUVhoTVNDeERRWGRNUnl4UFFVRlBMRUZCUjJRc1owSkJRV3RDTEVOQlFVTTdUVUZzUTJ4Q0xHZENRVUZuUWl4RlFVRkZMRTlCUVU4N1RVRkRla0lzWjBKQlFXZENMRVZCUVVVc2FVTkJRV2xETzAxQlEyNUVMRlZCUVZVc1JVRkJSU3hKUVVGSk8wMUJRMmhDTEV0QlFVc3NSVUZCUlN4TFFVRkxMRWRCYVVOWU8wMUJOMHhNTEVGQmQweEZMRTlCZUV4TExFTkJkMHhNTEUxQlFVMHNRVUZIVEN4blFrRkJhMElzUVVFNVFtNUNMRTFCUVZNc1JVRTNTbGdzUVVGM1RFVXNUMEY0VEVzc1EwRjNURXdzVFVGQlRTeEJRVWRNTEdkQ1FVRnJRaXhCUVRsQ1ZpeE5RVUZUTEVWQk4wcHdRaXhCUVhkTVZTeFBRWGhNU0N4RFFYZE1SeXhQUVVGUExFRkJSMlFzWjBKQlFXdENMRUZCT1VKdVFpeE5RVUZUTEVWQk4wcFlMRUZCZDB4VkxFOUJlRXhJTEVOQmQweEhMRTlCUVU4c1FVRkhaQ3huUWtGQmEwSXNRVUU1UWxZc1RVRkJVeXhEUVVGRE8xRkJRMllzWTBGQll5eEZRVUZGTEU5QlFVODdVVUZEZGtJc1owSkJRV2RDTEVWQlFVVXNUMEZCVHp0UlFVTjZRaXhuUWtGQlowSXNSVUZCUlN4cFEwRkJhVU03VVVGRGJrUXNTMEZCU3l4RlFVRkZMRXRCUVVzN1VVRkRXaXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExEUkNRVUUwUWl4SFFVTnVSRHROUVc1TFRDeEJRWGRNUlN4UFFYaE1TeXhEUVhkTVRDeE5RVUZOTEVGQlIwd3NaMEpCUVd0Q0xFRkJka0p1UWl4VFFVRlpMRVZCY0V0a0xFRkJkMHhWTEU5QmVFeElMRU5CZDB4SExFOUJRVThzUVVGSFpDeG5Ra0ZCYTBJc1FVRjJRbTVDTEZOQlFWa3NRMEZCUXp0UlFVTlVMRTFCUVUwc1JVRkJSU3hsUVVGbExFZEJRM2hDTzBsQmRFdE1MRUZCZDB4RkxFOUJlRXhMTEVOQmQweE1MRTFCUVUwc1FVRk5UQ3hWUVVGWkxFRkJRMVlzVFVGQlVTeEZRUzlNWWl4QlFYZE1SU3hQUVhoTVN5eERRWGRNVEN4TlFVRk5MRUZCVFV3c1ZVRkJXU3hCUVVORUxFOUJRVk1zUlVFdlRIWkNMRUZCZDB4RkxFOUJlRXhMTEVOQmQweE1MRTFCUVUwc1FVRk5UQ3hWUVVGWkxFRkJRMU1zVFVGQlVTeEZRUzlNYUVNc1FVRjNURVVzVDBGNFRFc3NRMEYzVEV3c1RVRkJUU3hCUVUxTUxGVkJRVmtzUVVGRGEwSXNUMEZCVXl4RlFTOU1NVU1zUVVGM1RGVXNUMEY0VEVnc1EwRjNURWNzVDBGQlR5eEJRVTFrTEZWQlFWa3NRVUZEVml4TlFVRlJMRVZCTDB4aUxFRkJkMHhWTEU5QmVFeElMRU5CZDB4SExFOUJRVThzUVVGTlpDeFZRVUZaTEVGQlEwUXNUMEZCVXl4RlFTOU1ka0lzUVVGM1RGVXNUMEY0VEVnc1EwRjNURWNzVDBGQlR5eEJRVTFrTEZWQlFWa3NRVUZEVXl4TlFVRlJMRVZCTDB4b1F5eEJRWGRNVlN4UFFYaE1TQ3hEUVhkTVJ5eFBRVUZQTEVGQlRXUXNWVUZCV1N4QlFVTnJRaXhQUVVGVExFTkJRVU03VFVGRGJrTXNZMEZCWXl4RlFVRkZMSE5EUVVGeFJEdE5RVU55UlN4blFrRkJaMElzUlVGcVkySXNSMEZCUnp0TlFXdGpUaXhMUVVGTExFVkJRVU1zUzBGQlN6dE5RVU5ZTEdkQ1FVRm5RaXhGUVVGRkxEWkNRVUZ0UkN4SFFVTjBSVHRGUVhCTlVDeEJRWGxOU1N4UFFYcE5SeXhGUVhkTlRDeEJRVUZCTEZkQlFVTXNRMEZCV1N4TlFVRk5MRUZCUVd4Q0xFVkJRME1zVFVGQlRTeEJRVU5NTEdkQ1FVRnJRaXhGUVRGTmRrSXNRVUY1VFZrc1QwRjZUVXdzUlVGM1RVd3NRVUZCUVN4WFFVRkRMRU5CUVZrc1RVRkJUU3hCUVVGc1FpeEZRVU5UTEU5QlFVOHNRVUZEWkN4blFrRkJhMElzUTBGQlF6dEpRVzVpZEVJc1ZVRkJWU3hGUVVGRExIVkNRVUYxUWp0SlFVTnNReXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExEUkNRVUUwUWp0SlFVTnNSQ3hMUVVGTExFVkJRVU1zTkVKQlFUUkNPMGxCUTJ4RExFMUJRVTBzUlVGQlJTeERRVUZETzBsQlExUXNZVUZCWVN4RlFVRkZMRWRCUVVjN1NVRkRiRUlzVDBGQlR5eEZRVUZETEZOQlFWTXNSMEZuWWxvN1NVRTFUVkFzUVVGNVRVa3NUMEY2VFVjc1JVRjNUVXdzUVVGQlFTeFhRVUZETEVOQlFWa3NUVUZCVFN4QlFVRnNRaXhGUVVORExFMUJRVTBzUVVGRFRDeG5Ra0ZCYTBJc1FVRTNZVE5DTEUxQlFXRXNSVUZ0VDFRc1FVRjVUVmtzVDBGNlRVd3NSVUYzVFV3c1FVRkJRU3hYUVVGRExFTkJRVmtzVFVGQlRTeEJRVUZzUWl4RlFVTlRMRTlCUVU4c1FVRkRaQ3huUWtGQmEwSXNRVUUzWVROQ0xFMUJRV0VzUTBGQlF6dE5RVU5PTEU5QlFVOHNSVUZCUlN4SlFVRkpPMDFCUTJJc1kwRkJZeXhGUVVGRkxITkNRVUZ6UWp0TlFVTjBReXh4UWtGQmNVSXNSVUZCUlN4elFrRkJjMElzUjBGRE9VTTdTVUVyVGtnc1FVRjVUVWtzVDBGNlRVY3NSVUYzVFV3c1FVRkJRU3hYUVVGRExFTkJRVmtzVFVGQlRTeEJRVUZzUWl4RlFVTkRMRTFCUVUwc1FVRkRUQ3huUWtGQmEwSXNRVUYyWVhoQ0xFMUJRVmtzUlVFMlRsZ3NRVUY1VFZrc1QwRjZUVXdzUlVGM1RVd3NRVUZCUVN4WFFVRkRMRU5CUVZrc1RVRkJUU3hCUVVGc1FpeEZRVU5UTEU5QlFVOHNRVUZEWkN4blFrRkJhMElzUVVGMllYaENMRTFCUVZrc1EwRkJRenROUVVOT0xGVkJRVlVzUlVGMlExSXNUMEZCVHp0TlFYZERWQ3hMUVVGTExFVkJRVVVzUzBGQlN6dE5RVU5hTEdOQlFXTXNSVUZCUlN3MlFrRkJNRU03VFVGRE1VUXNjVUpCUVhGQ0xFVkJRVVVzTmtKQlFUQkRMRWRCU1d4Rk8wMUJjVTVNTEVGQmVFNU5MRTlCZDA1RExFVkJkMDFNTEVGQlFVRXNWMEZCUXl4RFFVRlpMRTFCUVUwc1FVRkJiRUlzUlVGRFF5eE5RVUZOTEVGQlEwd3NaMEpCUVd0Q0xFRkJkbUYyUWl4TlFVRlhMRU5CUzB3c1IwRkJSeXhGUVhkT1ZDeEJRWGhPVFN4UFFYZE9ReXhGUVhkTlRDeEJRVUZCTEZkQlFVTXNRMEZCV1N4TlFVRk5MRUZCUVd4Q0xFVkJRMU1zVDBGQlR5eEJRVU5rTEdkQ1FVRnJRaXhCUVhaaGRrSXNUVUZCVnl4RFFVdE1MRWRCUVVjc1EwRkJRenRSUVVOR0xFbEJRVWtzUlVGQlJTeExRVUZMTEVkQlExbzdSVUZ6VGxBc1FVRjVUa1VzVDBGNlRrc3NRMEY1VGt3c1MwRkJTeXhEUVVGQkxFRkJRVUVzU1VGQlF5eERRVUZMTEUxQlFVMHNRVUZCV0N4RlFVRmhPMGxCUTJwQ0xGbEJRVmtzUlVGQlF5eE5RVUZOTzBsQlEyNUNMR0ZCUVdFc1JVRkJReXhOUVVGTkxFZEJRM0pDTzBWQk5VNUlMRUZCT0U1RkxFOUJPVTVMTEVOQk9FNU1MRXRCUVVzc1EwRkJRU3hCUVVGQkxFbEJRVU1zUTBGQlN5eE5RVUZOTEVGQlFWZ3NSVUZCWVR0SlFVTnFRaXhaUVVGWkxFVkJRVU1zZDBKQlFYZENPMGxCUTNKRExGbEJRVmtzUlVGQlF5d3dRa0ZCTUVJN1NVRkRka01zV1VGQldTeEZRVUZETERSQ1FVRTBRaXhIUVVNeFF6dEZRV3hQU0N4QlFXOVBSU3hQUVhCUFN5eERRVzlQVEN4UlFVRlJMRU5CUVVNN1NVRkRVQ3hOUVVGTkxFVkJRVU1zU1VGQlNTeEhRVTlhTzBsclJ6VmpReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZ2VDBVc1QwRndUMHNzUTBGdlQwd3NVVUZCVVN4RFFVRkRPMUZCUjB3c1dVRkJXU3hGUVVGRExIZENRVUYzUWp0UlFVTnlReXhaUVVGWkxFVkJRVU1zTUVKQlFUQkNPMUZCUTNaRExGbEJRVmtzUlVGQlF5dzBRa0ZCTkVJN1VVRkRla01zWVVGQllTeEZRVUZETERSQ1FVRXlRaXhIUVVVMVF6dEZRVFZQU0N4QlFUaFBSU3hQUVRsUFN5eERRVGhQVEN4UFFVRlBMRU5CUVVNN1NVRkRUaXhYUVVGWExFVkJRVVVzU1VGQlNTeEhRVU5zUWp0RlFXaFFTQ3hCUVd0UVZTeFBRV3hRU0N4RFFXdFFUQ3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETzBsQlEyUXNXVUZCV1N4RlFVRkRMRWxCUVVrc1IwRkRiRUk3UlVGd1VFZ3NRVUZ6VUVVc1QwRjBVRXNzUTBGelVFd3NTVUZCU1N4RFFVRkRPMGxCUTBnc1QwRkJUeXhGUVVGRExFbEJRVWtzUjBGRFlqdEZRWGhRU0N4QlFUQlFSU3hQUVRGUVN5eERRVEJRVEN4SFFVRkhMRU5CUVVNN1NVRkRSaXhUUVVGVExFVkJRVU1zU1VGQlNTeEhRVU5tTzBWQk5WQklMRUZCZDFKRkxFOUJlRkpMTEVOQmQxSk1MRmRCUVZjc1EwRkJRenRKUVVOV0xHZENRVUZuUWl4RlFVRkZMSGRDUVVGM1FqdEpRVU14UXl4WlFVRlpMRVZCUVVVc05FSkJRVFJDTzBsQlF6RkRMRXRCUVVzc1JVRkJSU3h6UWtGQmMwSXNSMEZET1VJN1JVRTFVa2dzUVVFNFVrVXNUMEU1VWtzc1EwRTRVa3dzWTBGQll5eERRVUZETzBsQlEySXNaMEpCUVdkQ0xFVkJRVVVzVDBGQlR6dEpRVU42UWl4WlFVRlpMRVZCUVVVc1QwRkJUenRKUVVOeVFpeExRVUZMTEVWQlFVVXNUMEZCVHl4SFFVTm1PMFZyUjJ4blFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEpiRWRuVDNaRExFRkJkMU5STEU5QmVGTkVMRU5CYjFOTUxHMUNRVUZ0UWl4SFFVbGlMRU5CUVVNc1EwRkJRenROUVVOR0xGbEJRVmtzUlVGQlJTeERRVUZETEVkQlEyaENPMFZCTVZOUUxFRkJhVlJGTEU5QmFsUkxMRU5CYVZSTUxHRkJRV0VzUTBGQlF6dEpRVU5hTEdGQlFXRXNSVUZCUXl4SlFVRkpPMGxCUTJ4Q0xGZEJRVmNzUlVGQlJTdzBRa0ZCTkVJc1IwRlJNVU03U1d0SE0yaENReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZwVkVVc1QwRnFWRXNzUTBGcFZFd3NZVUZCWVN4RFFVRkRPMUZCU1ZZc1lVRkJZU3hGUVVGRExFdEJRVXNzUjBGTmRFSTdTVUZLUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTA3VFVGMlZETkNMRUZCYVZSRkxFOUJhbFJMTEVOQmFWUk1MR0ZCUVdFc1EwRkJRenRSUVU5V0xGTkJRVk1zUlVGQlF5eExRVUZMTzFGQlEyWXNWMEZCVnl4RlFVRkZMRzFEUVVGdFF5eEhRVVZ1UkR0RlFUTlVTQ3hCUVRKVlJTeFBRVE5WU3l4RFFUSlZUQ3gzUWtGQmQwSXNRMEZCUXp0SlFVVjJRaXhsUVVGbExFVkJRVU1zV1VGQldUdEpRVU0xUWl4VlFVRlZMRVZCUVVNc2VVSkJRV3RETzBsQlF6ZERMRmRCUVZjc1JVRkJReXhEUVVGRE8wbEJRMklzV1VGQldTeEZRVUZETEVOQlFVTTdTVUZEWkN4UFFVRlBMRVZCUVVNc1QwRkJUeXhIUVVsb1FqdEpRWEpXU0N4QlFXdFdUU3hQUVd4V1F5eERRVEpWVEN4M1FrRkJkMElzUjBGUGNFSXNRMEZCUXl4QlFVRkJMRTlCUVU4c1JVRnNWbVFzUVVGclZtZENMRTlCYkZaVUxFTkJNbFZNTEhkQ1FVRjNRaXhEUVU5V0xFMUJRVTBzUTBGQlF6dE5RVU5xUWl4VFFVRlRMRVZCUVVNc1VVRkJVU3hIUVVOdVFqdEZRWEJXVEN4QlFYZFdTU3hQUVhoV1J5eEJRWFZXVEN4M1FrRkJlVUlzUTBGRGRrSXNkMEpCUVhkQ0xFTkJRVU03U1VGRGRrSXNWMEZCVnl4RlFVRkRMRTFCUVUwN1NVRkRiRUlzWTBGQll5eEZRVUZETEUxQlFVMHNSMEZKZEVJN1NVRTVWa3dzUVVFeVZsRXNUMEV6VmtRc1FVRjFWa3dzZDBKQlFYbENMRU5CUTNaQ0xIZENRVUYzUWl4SFFVZHdRaXhEUVVGRExFRkJRVUVzVDBGQlR5eEZRVE5XYUVJc1FVRXlWbXRDTEU5Qk0xWllMRUZCZFZaTUxIZENRVUY1UWl4RFFVTjJRaXgzUWtGQmQwSXNRMEZIVml4TlFVRk5MRU5CUVVNN1RVRkRha0lzVTBGQlV5eEZRVUZETEV0QlFVc3NSMEZEYUVJN1JVRTNWbEFzUVVGcFYwVXNUMEZxVjBzc1EwRnBWMHdzWTBGQll5eERRVUZETzBsQlEySXNVMEZCVXl4RlFVRkRMRWxCUVVrc1IwRnhRbVk3U1VGMldFZ3NRVUZ0VjBrc1QwRnVWMGNzUTBGcFYwd3NZMEZCWXl4RFFVVmFMRVZCUVVVc1EwRkJRU3hCUVVGQkxGZEJRVU1zUVVGQlFTeEZRVUZoTzAxQlEyUXNZMEZCWXl4RlFVRkRMRXRCUVVzN1RVRkRjRUk3TzFOQlJVY3NSVUZUU2p0TmEwZG9iRUpFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3VVd4SFowOTJReXhCUVcxWFNTeFBRVzVYUnl4RFFXbFhUQ3hqUVVGakxFTkJSVm9zUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRVZCUVdFN1ZVRk5XaXhYUVVGWExFVkJRVU1zUzBGQlN5eEhRVTl3UWp0TlFXaFlUQ3hCUVcxWFNTeFBRVzVYUnl4RFFXbFhUQ3hqUVVGakxFTkJSVm9zUlVGQlJTeERRVUZCTEVGQlFVRXNWMEZCUXl4QlFVRkJMRU5CVVVRc01rSkJRVFJDTEVGQlF6RkNMRmRCUVZrc1EwRkJRenRSUVVOWUxHTkJRV01zUlVGQlF5eERRVUZETEVkQlEycENPMGxCT1ZkVUxFRkJiVmhOTEU5QmJsaERMRU5CYVZkTUxHTkJRV01zUTBGblFsb3NSVUZCUlN4QlFVRkJMRmxCUVZrc1EwRkZXaXhEUVVGRExFTkJRVUVzUVVGQlFTeExRVUZETEVWQlFVOHNUMEZCVHl4QlFVRmtMRVZCUVdkQ08wMUJRMmhDTEUxQlFVMHNSVUZCUXl4RFFVRkRMRWRCUTFRN1JVRnlXRkFzUVVGNVdFVXNUMEY2V0Vzc1EwRjVXRXdzYVVKQlFXbENMRU5CUVVNN1NVRkRhRUlzVlVGQlZTeEZRVUZGTEhsRFFVRjVReXhIUVVOMFJEdEZRVE5ZU0N4QlFUWllSU3hQUVRkWVN5eERRVFpZVEN4alFVRmpMRU5CUVVNN1NVRkZZaXhQUVVGUExFVkJRVU1zUTBGQlF6dEpRVU5VTEdGQlFXRXNSVUZCUXl4TFFVRkxMRWRCVTNCQ08wbHJSM3B0UWtNc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0TmJFZG5UM1pETEVGQk5saEZMRTlCTjFoTExFTkJObGhNTEdOQlFXTXNRMEZCUXp0UlFVdFlMR0ZCUVdFc1JVRkJReXhEUVVGRExFZEJUMnhDTzBsQmVsbElMRUZCYjFsSkxFOUJjRmxITEVOQk5saE1MR05CUVdNc1EwRlBXaXhGUVVGRkxFRkJRMFlzV1VGQlpTeEZRWEpaYmtJc1FVRnZXVThzVDBGd1dVRXNRMEUyV0V3c1kwRkJZeXhEUVU5VUxFVkJRVVVzUVVGRFRDeFpRVUZsTEVWQmNsbHVRaXhCUVc5WlZTeFBRWEJaU0N4RFFUWllUQ3hqUVVGakxFTkJUMDRzUlVGQlJTeEJRVU5TTEZsQlFXVXNRMEZCUXp0TlFVTmFMRlZCUVZVc1JVRkJReXhEUVVGRExFZEJRMkk3UlVGMldWQXNRVUV5V1VVc1QwRXpXVXNzUTBFeVdVd3NNa0pCUVRKQ0xFTkJRVU03U1VGRk1VSXNUMEZCVHl4RlFVRkRMRXRCUVVzc1IwRTJRbVE3U1d0SE1XOUNReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUV5V1VVc1QwRXpXVXNzUTBFeVdVd3NNa0pCUVRKQ0xFTkJRVU03VVVGSmVFSXNZMEZCWXl4RlFVRkZMRU5CUVVNc1IwRXlRbkJDTzBsQk1XRklMRUZCYVZwSkxFOUJhbHBITEVOQk1sbE1MREpDUVVFeVFpeERRVTE2UWl4dFFrRkJiVUlzUTBGQlF6dE5RVU5zUWl4WFFVRlhMRVZCUVVNc1EwRkJRenROUVdGaUxGTkJRVk1zUlVGQlF5eEpRVUZKTzAxQlEyUXNUMEZCVHl4RlFVRkRMRWxCUVVrN1RVRkRXaXhoUVVGaExFVkJRVU1zU1VGQlNTeEhRVkZ1UWp0TmEwZDZiMEpFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRTFCUVUwc1UwRkJVeXhGUVVGRkxFdEJRVXM3VVd4SFowOTJReXhCUVdsYVNTeFBRV3BhUnl4RFFUSlpUQ3d5UWtGQk1rSXNRMEZOZWtJc2JVSkJRVzFDTEVOQlFVTTdWVUZKYUVJc1UwRkJVeXhGUVVGRExFMUJRVTA3VlVGRGFFSXNTVUZCU1N4RlFVRkRMRkZCUVZFN1ZVRkZZaXhUUVVGVExFVkJRVVVzU1VGQlNTeEhRV2xDYkVJN1RVRjZZVXdzUVVFeVdrMHNUMEV6V2tNc1EwRXlXVXdzTWtKQlFUSkNMRU5CVFhwQ0xHMUNRVUZ0UWl4RFFWVnFRaXhMUVVGTExFTkJRVU03VVVGRFNpeExRVUZMTEVWQlFVTXNjMEpCUVhGQ0xFZEJSVFZDTzAxclJ6bHVRa2dzVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRSYkVkblQzWkRMRUZCYVZwSkxFOUJhbHBITEVOQk1sbE1MREpDUVVFeVFpeERRVTE2UWl4dFFrRkJiVUlzUTBGQlF6dFZRV3RDYUVJc1lVRkJZU3hGUVVGRExFTkJRVU1zUjBGTmJFSTdUVUY2WVV3c1FVRnhZVTBzVDBGeVlVTXNRMEV5V1V3c01rSkJRVEpDTEVOQlRYcENMRzFDUVVGdFFpeERRVzlDYWtJc1MwRkJTeXhEUVVGRE8xRkJRMG9zU1VGQlNTeEZRVUZETEZGQlFWRTdVVUZEWWl4VFFVRlRMRVZCUVVNc1QwRkJUeXhIUVVOc1FqdEZRWGhoVUN4QlFUUmhSU3hQUVRWaFN5eERRVFJoVEN4cFEwRkJhVU1zUTBGQlF6dEpRVVZvUXl4aFFVRmhMRVZCUVVNc1NVRkJTU3hIUVhGQ2JrSTdTV3RIYm5GQ1F5eE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wMXNSMmRQZGtNc1FVRTBZVVVzVDBFMVlVc3NRMEUwWVV3c2FVTkJRV2xETEVOQlFVTTdVVUZKT1VJc1dVRkJXU3hGUVVGRExFbEJRVWs3VVVGRGFrSXNZVUZCWVN4RlFVRkZMRTFCUVUwc1IwRnJRbmhDTzBsQmJtTklMRUZCYldKSkxFOUJibUpITEVOQk5HRk1MR2xEUVVGcFF5eERRVTh2UWl4TlFVRk5MRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVVVGQlVTeEJRVUZpTEVWQlFXVTdUVUZEY0VJc1YwRkJWeXhGUVVGRExFbEJRVWtzUjBGRGFrSTdTVUZ5WWt3c1FVRnpZa2tzVDBGMFlrY3NRMEUwWVV3c2FVTkJRV2xETEVOQlZTOUNMRWxCUVVrc1EwRkJRenROUVVOSUxGRkJRVkVzUlVGQlJTeFJRVUZSTzAxQlEyeENPenM3T3pzN096czdVMEZUUnl4RlFVTktPMFZCYkdOTUxFRkJjV05GTEU5QmNtTkxMRU5CY1dOTUxHbENRVUZwUWl4RFFVRkRPMGxCVDJoQ0xFMUJRVTBzUlVGQlF5eFhRVUZYTEVkQlVXNUNPMGxCY0dSSUxFRkJjMk5OTEU5QmRHTkRMRU5CY1dOTUxHbENRVUZwUWl4SFFVTmlMRU5CUVVNc1EwRkJRenROUVVOR0xFMUJRVTBzUlVGQlF5eFhRVUZYTEVkQlNXNUNPMDFCTTJOTUxFRkJjMk5OTEU5QmRHTkRMRU5CY1dOTUxHbENRVUZwUWl4SFFVTmlMRU5CUVVNc1FVRkZSQ3hYUVVGWkxFTkJRVU03VVVGRFdDeFpRVUZaTEVWQlFVTXNRMEZCUXl4SFFVTm1PMGxyUnpGeFFrZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5iRWRuVDNaRExFRkJjV05GTEU5QmNtTkxMRU5CY1dOTUxHbENRVUZwUWl4RFFVRkRPMUZCVTJRc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUjBGTmJrSTdTVUZ3WkVnc1FVRm5aRWtzVDBGb1pFY3NRMEZ4WTB3c2FVSkJRV2xDTEVOQlYyWXNUVUZCVFN4RlFXaGtWaXhCUVdka1dTeFBRV2hrVEN4RFFYRmpUQ3hwUWtGQmFVSXNRMEZYVUN4UFFVRlBMRU5CUVVNN1RVRkRaQ3hUUVVGVExFVkJRVU1zU1VGQlNUdE5RVU5rTEVsQlFVa3NSVUZCUXl4UlFVRlJMRWRCUTJRN1JVRnVaRXdzUVVGelpFVXNUMEYwWkVzc1EwRnpaRXdzT0VKQlFUaENMRU5CUVVNN1NVRkROMElzWVVGQllTeEZRVUZETEVsQlFVa3NSMEZUYmtJN1NVRm9aVWdzUVVFeVpFa3NUMEV6WkVjc1EwRnpaRXdzT0VKQlFUaENMRU5CU3pWQ0xFVkJRVVVzUVVGRFJDeFpRVUZqTEVWQk5XUnVRaXhCUVRKa1R5eFBRVE5rUVN4RFFYTmtUQ3c0UWtGQk9FSXNRMEZMZWtJc1JVRkJSU3hCUVVOS0xGbEJRV01zUTBGQlF6dE5RVU5hTEZWQlFWVXNSVUZCUXl4RFFVRkRMRWRCUTJJN1JXdEhPWEpDU0N4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzBsc1IyZFBka01zUVVGclpVVXNUMEZzWlVzc1EwRnJaVXdzYjBKQlFXOUNMRU5CUVVNN1RVRkZha0lzWVVGQllTeEZRVUZGTEVsQlFVa3NSMEZSZEVJN1JXdEhOWE5DUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hOUVVGTkxGTkJRVk1zUlVGQlJTeExRVUZMTzBsc1IyZFBka01zUVVGelpVa3NUMEYwWlVjc1EwRnJaVXdzYjBKQlFXOUNMRU5CU1d4Q0xFdEJRVXNzUTBGQlF6dE5RVVZHTEU5QlFVOHNSVUZCUlN4TFFVRkxMRWRCUjJwQ08wVkJNMlZNTEVGQloyWk5MRTlCYUdaRExFRkJPR1ZNTEVsQlFVMHNRMEZCUVN4QlFVRkJMRzlDUVVGdlFpeEZRVU40UWl4dlFrRkJiMElzUTBGRGJFSXNTMEZCU3l4RFFVRkRPMGxCZW5SQ1ZpeFZRVUZWTEVWQlFVTXNkVUpCUVhWQ08wbEJRMnhETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNORUpCUVRSQ08wbEJRMnhFTEV0QlFVc3NSVUZCUXl3MFFrRkJORUk3U1VGRGJFTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRWQ3hoUVVGaExFVkJRVVVzUjBGQlJ6dEpRVU5zUWl4UFFVRlBMRVZCUVVNc1UwRkJVenRKUVhOMFFsZ3NVMEZCVXl4RlFVRkZMRkZCUVZFN1NVRkRia0lzVlVGQlZTeEZRVUZGTEUxQlFVMHNSMEZEYmtJN1NVRndabEFzUVVGblprMHNUMEZvWmtNc1FVRTRaVXdzU1VGQlRTeERRVUZCTEVGQlFVRXNiMEpCUVc5Q0xFVkJRM2hDTEc5Q1FVRnZRaXhEUVVOc1FpeExRVUZMTEVGQmJuUkNaaXhOUVVGaExFTkJRVU03VFVGRFRpeFBRVUZQTEVWQlFVVXNTVUZCU1R0TlFVTmlMR05CUVdNc1JVRkJSU3h6UWtGQmMwSTdUVUZEZEVNc2NVSkJRWEZDTEVWQlFVVXNjMEpCUVhOQ0xFZEJRemxETzBsQkswNUlMRUZCWjJaTkxFOUJhR1pETEVGQk9HVk1MRWxCUVUwc1EwRkJRU3hCUVVGQkxHOUNRVUZ2UWl4RlFVTjRRaXh2UWtGQmIwSXNRMEZEYkVJc1MwRkJTeXhCUVRkelFsb3NUVUZCV1N4RFFVRkRPMDFCUTA0c1ZVRkJWU3hGUVhaRFVpeFBRVUZQTzAxQmQwTlVMRXRCUVVzc1JVRkJSU3hMUVVGTE8wMUJRMW9zWTBGQll5eEZRVUZGTERaQ1FVRXdRenROUVVNeFJDeHhRa0ZCY1VJc1JVRkJSU3cyUWtGQk1FTXNSMEZKYkVVN1RVRnhUa3dzUVVGNFRrMHNUMEYzVGtNc1FVRTRaVXdzU1VGQlRTeERRVUZCTEVGQlFVRXNiMEpCUVc5Q0xFVkJRM2hDTEc5Q1FVRnZRaXhEUVVOc1FpeExRVUZMTEVGQk4zTkNXaXhOUVVGWkxFTkJTMHdzUjBGQlJ5eERRVUZETzFGQlEwWXNTVUZCU1N4RlFVRkZMRXRCUVVzc1IwRkRXanRGUVhOT1VDeEJRVzFuUWtVc1QwRnVaMEpMTEVOQmJXZENUQ3h0UWtGQmJVSXNRMEZCUXp0SlFVTnNRaXhsUVVGbExFVkJRVU1zVVVGQlVUdEpRVU40UWpzN1QwRkZSeXhGUVZWS08wbEJhbWhDU0N4QlFXMW5Ra1VzVDBGdVowSkxMRU5CYldkQ1RDeHRRa0ZCYlVJc1EwRkxha0lzUVVGQlFTeFhRVUZGTEVOQlFWa3NUVUZCVFN4QlFVRnNRaXhGUVVGdlFqdE5RVU53UWl4TlFVRk5MRVZCUVVVc1pVRkJaU3hIUVVONFFqdEpRVEZuUWt3c1FVRXlaMEpKTEU5Qk0yZENSeXhEUVcxblFrd3NiVUpCUVcxQ0xFTkJVV3BDTEUxQlFVMHNRMEZCUXp0TlFVTk1MRk5CUVZNc1JVRkJReXhKUVVGSkxFZEJTV1k3VFd0SGFIWkNSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMUZzUjJkUGRrTXNRVUV5WjBKSkxFOUJNMmRDUnl4RFFXMW5Ra3dzYlVKQlFXMUNMRU5CVVdwQ0xFMUJRVTBzUTBGQlF6dFZRVWRJTEZOQlFWTXNSVUZCUXl4TFFVRkxMRWRCUld4Q08wVkJhR2hDVEN4QlFXMW9Ra1VzVDBGdWFFSkxMRU5CYldoQ1RDeHZRa0ZCYjBJc1EwRkJRenRKUVVWdVFpeGhRVUZoTEVWQlFVTXNTMEZCU3l4SFFUUkNjRUk3U1d0SGFuaENReXhOUVVGTkxFTkJRVU1zVFVGQlRTeE5RVUZOTEZOQlFWTXNSVUZCUlN4TFFVRkxPMDFzUjJkUGRrTXNRVUZ0YUVKRkxFOUJibWhDU3l4RFFXMW9Ra3dzYjBKQlFXOUNMRU5CUVVNN1VVRkpha0lzWVVGQllTeEZRVUZETEVOQlFVTXNSMEV3UW14Q08wbEJhbXBDU0N4QlFYbG9Ra2tzVDBGNmFFSkhMRU5CYldoQ1RDeHZRa0ZCYjBJc1EwRk5iRUlzUjBGQlJ5eERRVUZETzAxQlEwWXNTMEZCU3l4RlFVRkRMSE5DUVVGeFFpeEhRVU0xUWp0SlFUTm9Ra3dzUVVFNGFFSlJMRTlCT1doQ1JDeERRVzFvUWt3c2IwSkJRVzlDTEVOQlUyeENMRTlCUVU4c1IwRkRTQ3hQUVVGUExFTkJRMUFzUjBGQlJ5eERRVUZETzAxQlEwWXNVMEZCVXl4RlFVRkRMR2xDUVVGcFFqdE5RVU16UWl4WlFVRlpMRVZCUVVNc1RVRkJUU3hIUVVOd1FqdEpRV3BwUWxRc1FVRnJhVUpWTEU5QmJHbENTQ3hEUVcxb1Frd3NiMEpCUVc5Q0xFTkJVMnhDTEU5QlFVOHNSMEZEU0N4UFFVRlBMRWRCUzB3c2FVSkJRV2xDTEVOQlFVTTdUVUZEYkVJc1QwRkJUeXhGUVVGRExFbEJRVWtzUjBGRFlqdEpRWEJwUWxRc1FVRjNhVUpaTEU5QmVHbENUQ3hEUVcxb1Frd3NiMEpCUVc5Q0xFTkJVMnhDTEU5QlFVOHNRMEZWVEN4QlFVRkJMRWxCUVVVc1FVRkJRU3hKUVVORkxFOUJRVThzUjBGRFRDeHBRa0ZCYVVJc1EwRkJRenROUVVOc1FpeFBRVUZQTEVWQlFVTXNXVUZCV1N4SFFVTnlRanRKUVRGcFFsZ3NRVUV5YVVKWkxFOUJNMmxDVEN4RFFXMW9Ra3dzYjBKQlFXOUNMRU5CVTJ4Q0xFOUJRVThzUTBGVlRDeEJRVUZCTEVsQlFVVXNRVUZCUVN4SlFVTkZMRTlCUVU4c1IwRkpUQ3haUVVGWkxFTkJRVU03VFVGRFlpeFBRVUZQTEVWQlFVTXNTVUZCU1N4SFFVTmlPMFZCTjJsQ1dDeEJRVzFxUWtVc1QwRnVha0pMTEVOQmJXcENUQ3huUWtGQlowSXNRMEZCUXp0SlFVVm1MRTlCUVU4c1JVRkJSU3hMUVVGTE8wbEJRMlFzWVVGQllTeEZRVUZETEV0QlFVczdTVUZEYmtJc1ZVRkJWU3hGUVVGRExFdEJRVXNzUjBGblFtcENPMGxyUjNaNVFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dE5iRWRuVDNaRExFRkJiV3BDUlN4UFFXNXFRa3NzUTBGdGFrSk1MR2RDUVVGblFpeERRVUZETzFGQlRXSXNZVUZCWVN4RlFVRkRMRU5CUVVNc1IwRmpiRUk3U1VGMmEwSklMRUZCTW1wQ1NTeFBRVE5xUWtjc1EwRnRha0pNTEdkQ1FVRm5RaXhEUVZGa0xFOUJRVThzUTBGQlF6dE5RVU5PTEZOQlFWTXNSVUZCUlN4VlFVRlZMRWRCUTNSQ08wbEJOMnBDVEN4QlFTdHFRbEVzVDBFdmFrSkVMRU5CYldwQ1RDeG5Ra0ZCWjBJc1EwRlhaQ3hQUVVGUExFZEJRMGdzUjBGQlJ5eERRVUZETzAxQlEwb3NWMEZCVnl4RlFVRkRMRWxCUVVrc1IwRkRha0k3U1VGcWEwSlFMRUZCYld0Q1NTeFBRVzVyUWtjc1EwRnRha0pNTEdkQ1FVRm5RaXhEUVdkQ1pDeDNRa0ZCZDBJc1EwRkJRenROUVVOMlFpeFZRVUZWTEVWQlFVTXNTVUZCU1R0TlFVTm1MRTFCUVUwc1JVRkJReXhKUVVGSkxFZEJRMW83UlVGMGEwSk1MRUZCZVd0Q1JTeFBRWHByUWtzc1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVVGRE8wbEJRM1JDTEV0QlFVc3NSVUZCUXl4elFrRkJjVUlzUjBGblJEVkNPMGxCTVc1Q1NDeEJRVEpyUWtrc1QwRXphMEpITEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZGY2tJc1VVRkJVU3hEUVVGRE8wMUJRMUFzVFVGQlRTeEZRVUZETEVOQlFVTTdUVUZEVWl4UFFVRlBMRVZCUVVNc1RVRkJUU3hIUVVsbU8wMXJSMnA2UWtRc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0UmJFZG5UM1pETEVGQk1tdENTU3hQUVROclFrY3NRMEY1YTBKTUxIVkNRVUYxUWl4RFFVVnlRaXhSUVVGUkxFTkJRVU03VlVGSlRDeFBRVUZQTEVWQlFVTXNRMEZCUXl4SFFVVmFPMGxCYW14Q1RDeEJRWEZzUWtrc1QwRnliRUpITEVOQmVXdENUQ3gxUWtGQmRVSXNRMEZaY2tJc2QwSkJRWGRDTEVOQlFVTTdUVUZEZGtJc1QwRkJUeXhGUVVGRExFbEJRVWs3VFVGRFdpeGxRVUZsTEVWQlFVVXNXVUZCV1N4SFFXdERPVUk3VFVGNmJrSk1MRUZCZVd4Q1VTeFBRWHBzUWtRc1EwRjVhMEpNTEhWQ1FVRjFRaXhEUVZseVFpeDNRa0ZCZDBJc1IwRkpjRUlzUjBGQlJ5eERRVUZETzFGQlEwb3NUMEZCVHl4RlFVRkZMRWxCUVVrN1VVRkRZaXhYUVVGWExFVkJRVVVzVFVGQlRUdFJRVU51UWl4bFFVRmxMRVZCUVVVc1RVRkJUU3hIUVVONFFqdE5RVGRzUWxBc1FVRXJiRUpOTEU5QkwyeENReXhEUVhsclFrd3NkVUpCUVhWQ0xFTkJXWEpDTEhkQ1FVRjNRaXhEUVZWMFFpeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1QwRkJUeXhCUVVGYUxFZEJMMnhDV2l4QlFTdHNRakpDTEU5QkwyeENjRUlzUTBGNWEwSk1MSFZDUVVGMVFpeERRVmx5UWl4M1FrRkJkMElzUTBGVlJDeExRVUZMTEVOQlFVRXNRVUZCUVN4SlFVRkRMRU5CUVVzc1ZVRkJWU3hCUVVGbUxFVkJRV2xDTzFGQlJURkRPenM3T3pzN1YwRk5SeXhGUVZWS08xRkJhbTVDVUN4QlFUSnRRbU1zVDBFemJVSlFMRU5CZVd0Q1RDeDFRa0ZCZFVJc1EwRlpja0lzZDBKQlFYZENMRU5CVlhSQ0xFdEJRVXNzUTBGQlFTeEJRVUZCTEVsQlFVTXNRMEZCU3l4UFFVRlBMRUZCUVZvc1EwRlRUQ3hSUVVGVkxFZEJSVXdzUzBGQlN5eERRVU5JTEVkQlFVY3NRMEZCUVN4QlFVRkJMRXRCUVVNc1JVRkJUeXhOUVVGTkxFRkJRV0lzUjBFemJVSnNRaXhCUVRKdFFtTXNUMEV6YlVKUUxFTkJlV3RDVEN4MVFrRkJkVUlzUTBGWmNrSXNkMEpCUVhkQ0xFTkJWVVFzUzBGQlN5eERRVUZCTEVGQlFVRXNTVUZCUXl4RFFVRkxMRlZCUVZVc1FVRkJaaXhEUVZNeFFpeFJRVUZWTEVkQlJVd3NTMEZCU3l4RFFVTklMRWRCUVVjc1EwRkJRU3hCUVVGQkxFdEJRVU1zUlVGQlR5eE5RVUZOTEVGQlFXSXNSVUZCWlR0VlFVTnFRaXhKUVVGSkxFVkJRVU1zYzBKQlFYTkNMRWRCUXpWQ08wMUJOMjFDWml4QlFXdHVRazBzVDBGc2JrSkRMRU5CZVd0Q1RDeDFRa0ZCZFVJc1EwRlpja0lzZDBKQlFYZENMRU5CTmtKMFFpeExRVUZMTEVOQlFVTTdVVUZGU2l4VFFVRlRMRVZCUVVNc1RVRkJUVHRSUVVOb1FpeFBRVUZQTEVWQlFVVXNTVUZCU1R0UlFVTmlMRmRCUVZjc1JVRkJSU3hOUVVGTk8xRkJRMjVDTEdWQlFXVXNSVUZCUlN4TlFVRk5MRWRCUTNoQ08wVkJlRzVDVUN4QlFUUnVRa1VzVDBFMWJrSkxMRU5CTkc1Q1RDeEhRVUZITEVOQlEwUXNRVUZCUVN4TFFVRkZMRVZCUVU4c1RVRkJUU3hCUVVGaUxFVkJRV1U3U1VGRFppeFJRVUZSTEVWQlFVTXNVVUZCVVR0SlFVTnFRaXhMUVVGTExFVkJRVU1zUjBGQlJ6dEpRVU5VTEUxQlFVMHNSVUZCUXl4SFFVRkhPMGxCUTFZc1NVRkJTU3hGUVVGRExGbEJRVmtzUjBGRGJFSTdSV3RIYkRKQ1JDeE5RVUZOTEVOQlFVTXNUVUZCVFN4TlFVRk5MRk5CUVZNc1JVRkJSU3hMUVVGTE8wbHNSMmRQZGtNc1FVRnhiMEpGTEU5QmNtOUNTeXhEUVhGdlFrd3NNa0pCUVRKQ0xFTkJRVU03VFVGRmVFSXNUMEZCVHl4RlFVRkRMRWxCUVVrc1IwRkZaanRGYTBkNk1rSkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdTV3hIWjA5MlF5eEJRVEp2UWtVc1QwRXpiMEpMTEVOQk1tOUNUQ3d5UWtGQk1rSXNRMEZCUXp0TlFVVjRRaXhQUVVGUExFVkJRVU1zU1VGQlNTeEhRVVZtTzBWQkwyOUNTQ3hCUVdsd1FrVXNUMEZxY0VKTExFTkJhWEJDVEN4clFrRkJhMElzUTBGQlF6dEpRVU5xUWl4SlFVRkpMRVZCUVVNc1VVRkJVVHRKUVVOaUxFOUJRVThzUlVGQlF5eEpRVUZKTzBsQlExb3NUVUZCVFN4RlFVRkRMRTlCUVU4c1IwRkRaanRGUVhKd1FrZ3NRVUYxY0VKRkxFOUJkbkJDU3l4RFFYVndRa3dzZFVKQlFYVkNMRU5CUVVNN1NVRkRkRUlzUzBGQlN5eEZRVUZETEVsQlFVazdTVUZGVml4UFFVRlBMRVZCUVVNc1MwRkJTenRKUVVWaUxGbEJRVmtzUlVGQlJTeEhRVUZITzBsQlEycENMRmxCUVZrc1JVRkJSU3d5UWtGQmQwTTdTVUZEZEVRc1dVRkJXU3hGUVVGRkxFMUJRVTA3U1VGRGNFSXNZVUZCWVN4RlFVRkZMRWRCUVVjN1NVRkRiRUlzWjBKQlFXZENMRVZCUVVNc1YwRkJWenRKUVVNMVFpeFZRVUZWTEVWQlFVTXNNRVJCUVRCRU8wbEJSM0pGTEdWQlFXVXNSVUZCUlN4TlFVRk5PMGxCUTNaQ0xGZEJRVmNzUlVGQlJTeE5RVUZOTzBsQlJXNUNMRTlCUVU4c1JVRkJReXhKUVVGSkxFZEJkMEppTzBsclJ5ODFRa01zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VlFVRlZMRVZCUVVVc1MwRkJTenROYkVkblQzaERMRUZCZFhCQ1JTeFBRWFp3UWtzc1EwRjFjRUpNTEhWQ1FVRjFRaXhEUVVGRE8xRkJiMEp3UWl4UFFVRlBMRVZCUVVVc1NVRkJTU3hIUVc5Q2FFSTdTVUV2Y2tKSUxFRkJPSEZDU1N4UFFUbHhRa2NzUTBGMWNFSk1MSFZDUVVGMVFpeERRWFZDY2tJc1IwRkJSeXhEUVVGRE8wMUJRMFlzVTBGQlV5eEZRVUZETEVkQlFVYzdUVUZEWWl4SlFVRkpMRVZCUVVNc01rSkJRWGRETzAxQlF6ZERMRlZCUVZVc1JVRkJReXg1UTBGQmVVTTdUVUZEY0VRc1QwRkJUeXhGUVVGRExIRkRRVUZ4UXp0TlFVTTNReXhWUVVGVkxFVkJRVU1zU1VGQlNTeEhRVU5vUWp0SlFYQnlRa3dzUVVGMWNFSkZMRTlCZG5CQ1N5eERRWFZ3UWt3c2RVSkJRWFZDTEVGQkswSnlRaXc0UWtGQkswSXNRMEZCUXp0TlFVTTVRaXhuUWtGQlowSXNSVUZCUXl4UFFVRnhRanROUVVOMFF5eFpRVUZaTEVWQlFVVXNjMEpCUVhOQ08wMUJRM0JETEZWQlFWVXNSVUZCUXl3MFJFRkJORVFzUjBGTGVFVTdUVUU1Y2tKTUxFRkJNSEpDVFN4UFFURnlRa01zUTBGMWNFSk1MSFZDUVVGMVFpeEJRU3RDY2tJc09FSkJRU3RDTEVOQlNUZENMRWRCUVVjc1EwRkJRenRSUVVOR0xFbEJRVWtzUlVGQlF5eHpRa0ZCYzBJN1VVRkRNMElzVDBGQlR5eEZRVUZETEVOQlFVTXNSMEZEVmp0RlFUZHlRbEFzUVVGcGMwSkZMRTlCYW5OQ1N5eERRV2x6UWt3c1kwRkJZeXhEUVVGRE8wbEJSMklzVDBGQlR5eEZRVUZGTEUxQlFXRTdTVUZGZEVJc1QwRkJUeXhGUVVGRExFbEJRVWs3U1VGRFdpeGxRVUZsTEVWQlFVTXNUVUZCVFR0SlFVTjBRaXhYUVVGWExFVkJRVVVzVFVGQlRTeEhRV2xFY0VJN1NVRjZka0pJTEVGQk1ITkNTU3hQUVRGelFrY3NRMEZwYzBKTUxHTkJRV01zUTBGVFdpeHZRa0ZCYjBJc1EwRkJRenROUVVWdVFpeFZRVUZWTEVWQlFVTXNiVUpCUVdkQ08wMUJRek5DTEU5QlFVOHNSVUZCUXl4RFFVRkRMRWRCUTFZN1NVRTVjMEpNTEVGQlozUkNTU3hQUVdoMFFrY3NRMEZwYzBKTUxHTkJRV01zUTBGbFdpeHZRa0ZCYjBJc1EwRkJRenROUVVkdVFpeFRRVUZUTEVWQlFVTXNTVUZCU1R0TlFVVmtMRk5CUVZNc1JVRkJReXhKUVVGSk8wMUJRMlFzVlVGQlZTeEZRVUZETEVsQlFVazdUVUZEWml4UlFVRlJMRVZCUVVNc1VVRkJVVHROUVVOcVFpeFBRVUZQTEVWMVJ6a3JRa29zUzBGQlN5eEhka2QzWjBOVU8wMUJiSFpDVEN4QlFYbDBRazBzVDBGNmRFSkRMRU5CYVhOQ1RDeGpRVUZqTEVOQlpWb3NiMEpCUVc5Q0xFTkJVMnhDTEVWQlFVVXNRVUZEUml4WlFVRmxMRVZCTVhSQ2NrSXNRVUY1ZEVKVExFOUJlblJDUml4RFFXbHpRa3dzWTBGQll5eERRV1ZhTEc5Q1FVRnZRaXhEUVZObUxFVkJRVVVzUVVGRFRDeFpRVUZsTEVWQk1YUkNja0lzUVVGNWRFSlpMRTlCZW5SQ1RDeERRV2x6UWt3c1kwRkJZeXhEUVdWYUxHOUNRVUZ2UWl4RFFWTmFMRVZCUVVVc1FVRkRVaXhaUVVGbExFTkJRVU03VVVGRFdpeFZRVUZWTEVWQlFVTXNRMEZCUXl4SFFVTmlPMDFCTlhSQ1ZDeEJRVGgwUW1Nc1QwRTVkRUpRTEVOQmFYTkNUQ3hqUVVGakxFTkJaVm9zYjBKQlFXOUNMRU5CWTJ4Q0xFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZEV2l4UFFVRlBMRVZCUVVNc1MwRkJTenRSUVVOaUxHRkJRV0VzUlVGQlF5eExRVUZMTEVkQlNYQkNPMUZCY0hWQ1VDeEJRVGgwUW1Nc1QwRTVkRUpRTEVOQmFYTkNUQ3hqUVVGakxFTkJaVm9zYjBKQlFXOUNMRU5CWTJ4Q0xFOUJRVThzUTBGQlF5eExRVUZMTEVOQlIxZ3NRVUZCUVN4SFFVRkZMRU5CUVVrc01FSkJRVEJDTEVGQlFUbENMRVZCUVdkRE8xVkJRMmhETEdGQlFXRXNSVUZCUlN4RFFVRkRMRWRCUTJwQ08wMUJiblZDVkN4QlFYRjFRazBzVDBGeWRVSkRMRU5CYVhOQ1RDeGpRVUZqTEVOQlpWb3NiMEpCUVc5Q0xFTkJjVUpzUWl4TFFVRkxMRU5CUVVFc1FVRkJRU3hKUVVGRExFTkJRVXNzVFVGQlRTeEJRVUZZTEVWQlFXRTdVVUZEYWtJc1MwRkJTeXhGUVVGRExFbEJRVWs3VVVGRFZpeFRRVUZUTEVWQlFVTXNTMEZCU3l4SFFVTm9RanROUVhoMVFsQXNRVUY1ZFVKTkxFOUJlblZDUXl4RFFXbHpRa3dzWTBGQll5eERRV1ZhTEc5Q1FVRnZRaXhEUVhsQ2JFSXNiVUpCUVcxQ0xFTkJRVU03VVVGRGJFSXNWVUZCVlN4RlFVRkRMRXRCUVVzc1IwRlBha0k3VVVGcWRrSlFMRUZCTW5WQ1ZTeFBRVE4xUWtnc1EwRnBjMEpNTEdOQlFXTXNRMEZsV2l4dlFrRkJiMElzUTBGNVFteENMRzFDUVVGdFFpeEhRVVZtTEVOQlFVTXNRMEZCUXp0VlFVTkdMRWxCUVVrc1JVRkJReXhSUVVGUkxFZEJTV1E3U1VGb2RrSlVMRUZCYjNaQ1RTeFBRWEIyUWtNc1EwRnBjMEpNTEdOQlFXTXNRVUZyUkZvc1pVRkJaMElzUTBGRFpDeHZRa0ZCYjBJc1EwRkJRenROUVVOdVFpeFRRVUZUTEVWQlFVTXNhMEpCUVd0Q08wMUJRelZDTEZWQlFWVXNSVUZCUXl4clFrRkJhMElzUjBGRE9VSTdPMEZyUjNZNVFrZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc1RVRkJUU3hUUVVGVExFVkJRVVVzUzBGQlN6dEZiRWN3SzBKMlF5eEJRVU5GTEZsQlJGVXNRMEZEVml4dFFrRkJiVUlzUTBGQlF6dEpRVVZvUWl4UFFVRlBMRVYxUjI1cFEwb3NTMEZCU3p0SmRrZHZhVU5TTEZGQlFWRXNSVUZCUlN4TlFVRk5PMGxCUTJoQ0xFbEJRVWtzUlVGQlJTeE5RVUZOTzBsQlExb3NTMEZCU3l4RlFVRkZMRTFCUVUwN1NVRkRZaXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVlZVTzBsQmFrSklMRUZCVVUwc1dVRlNUU3hEUVVOV0xHMUNRVUZ0UWl4RFFVOW1MRFpDUVVFMlFpeERRVUZETzAxQlJ6VkNPenM3VjBGSFJ5eEZRVU5LT3p0QlFXWlFMRUZCYTBKRkxGbEJiRUpWTEVOQmEwSldMRFpDUVVFMlFpeERRVUZETzBWQlJUVkNMRTlCUVU4c1JYVkhjR3BEUml4TFFVRkxPMFYyUjNGcVExWXNZVUZCWVN4RlFVRkZMRXRCUVVzc1IwRm5RbkpDTzBWclJ5OW5RME1zVFVGQlRTeERRVUZETEUxQlFVMHNUVUZCVFN4VFFVRlRMRVZCUVVVc1MwRkJTenRKYkVjd0swSjJReXhCUVd0Q1JTeFpRV3hDVlN4RFFXdENWaXcyUWtGQk5rSXNRMEZCUXp0TlFVc3hRaXhoUVVGaExFVkJRVVVzUTBGQlF5eEhRV051UWp0RlFYSkRTQ3hCUVhsQ1NTeFpRWHBDVVN4RFFXdENWaXcyUWtGQk5rSXNRMEZQTTBJc1RVRkJUU3hEUVVGRE8wbEJRMHdzVDBGQlR5eEZRVUZGTEUxQlFVMDdTVUZEWml4VlFVRlZMRVZCUVVVc1YwRkJWenRKUVVOMlFpeE5RVUZOTEVWQlFVVXNTVUZCU1R0SlFVTmFMRTlCUVU4c1JVRkJSU3hEUVVGRExFZEJUMWc3U1VGd1Ewd3NRVUY1UWtrc1dVRjZRbEVzUTBGclFsWXNOa0pCUVRaQ0xFTkJUek5DTEUxQlFVMHNRVUZMU2l4TlFVRlBMRVZCT1VKaUxFRkJlVUpKTEZsQmVrSlJMRU5CYTBKV0xEWkNRVUUyUWl4RFFVOHpRaXhOUVVGTkxFRkJTMHNzVFVGQlR5eERRVUZETzAxQlEyWXNWVUZCVlN4RlFVRkZMSE5DUVVGelFqdE5RVU5zUXl4TlFVRk5MRVZCUVVVc1pVRkJaVHROUVVWMlFpeFZRVUZWTEVWQlFVVXNaVUZCWlN4SFFVTTFRanM3UVVGdVExQXNRVUZ6UTJ0RExGbEJkRU4wUWl4RFFYTkRWaXcyUWtGQk5rSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1JVRkZhRU1zVDBGQlR5eEZRVUZGTEV0QlFVczdSVUZKWkN4WFFVRlhMRVZCUVVVc1NVRkJTVHRGUVVOcVFpeFpRVUZaTEVWQlFVVXNTVUZCU1N4SFFVTnVRanRGYTBkNGFFTkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFMUJRVTBzVTBGQlV5eEZRVUZGTEV0QlFVczdTV3hITUN0Q2RrTXNRVUZ6UTJ0RExGbEJkRU4wUWl4RFFYTkRWaXcyUWtGQk5rSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1RVRkpPVUlzVDBGQlR5eEZRVUZGTEZsQlFWa3NSMEZKZUVJN08wRkJPVU5JTEVGQkswTkZMRmxCTDBOVkxFTkJLME5XTEhGQ1FVRnhRaXhEUVVGRE8wVkJRM0JDTEdGQlFXRXNSVUZCUlN4SlFVRkpMRWRCVTNCQ08wVnJSMjVwUTBNc1RVRkJUU3hEUVVGRExFMUJRVTBzVFVGQlRTeFRRVUZUTEVWQlFVVXNTMEZCU3p0SmJFY3dLMEoyUXl4QlFTdERSU3haUVM5RFZTeERRU3REVml4eFFrRkJjVUlzUTBGQlF6dE5RVWRzUWl4aFFVRmhMRVZCUVVVc1EwRkJRenROUVVOb1FpeFRRVUZUTEVWQlFVVXNhVUpCUVdkQ08wMUJRek5DTEU5QlFVOHNSVUZCUlN4RFFVRkRMRWRCUzJJN1JVRjZSRWdzUVVGelJFa3NXVUYwUkZFc1EwRXJRMVlzY1VKQlFYRkNMRU5CVDI1Q0xGRkJRVkVzUTBGQlF6dEpRVU5RTEUxQlFVMHNSVUZCUlN4SlFVRkpMRWRCUTJJaUNuMD0gKi8iLG51bGwsbnVsbF19 */ \ No newline at end of file diff --git a/client/build/assets/css/main.min.css b/client/build/assets/css/main.min.css new file mode 100644 index 0000000..1034035 --- /dev/null +++ b/client/build/assets/css/main.min.css @@ -0,0 +1 @@ +.eureka{-webkit-box-sizing:border-box;box-sizing:border-box}.eureka *,.eureka ::after,.eureka ::before{-webkit-box-sizing:inherit;box-sizing:inherit}.eureka .eureka__media-source-selector select,.eureka.eureka__view-mode__grid img,.eureka.eureka__view-mode__thumb img{width:100%}.eureka .button,.eureka .eureka__layout-chooser .eureka__icon-radio-btns label,.eureka .eureka__upload-form label,.eureka button,.eureka select,.eureka th[aria-sort]{cursor:pointer}.eureka .eureka__modal,.eureka .eureka__modal .eureka__modal-scrim{position:absolute;top:0;left:0;right:0;bottom:0}.eureka .eureka__crop-modal input[type=radio]:checked+label,.eureka button[aria-pressed=true],.eureka input[aria-pressed=true]+label{-webkit-box-shadow:0 0 0 1px #e4e4e4,inset 0 .175em 0 #c5c5c5;-webkit-box-shadow:0 0 0 1px var(--border-shadow-color,#e4e4e4),inset 0 .175em 0 var(--border-shadow-color,#c5c5c5);box-shadow:0 0 0 1px #e4e4e4,inset 0 .175em 0 #c5c5c5;box-shadow:0 0 0 1px var(--border-shadow-color,#e4e4e4),inset 0 .175em 0 var(--border-shadow-color,#c5c5c5)}.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox],.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio],.eureka .eureka__layout-chooser legend,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka:not(.eureka__server-side) .eureka__upload-form input[type=file],.visually-hidden{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=checkbox] a,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=checkbox] button,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=checkbox] input,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=radio] a,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=radio] button,.eureka .eureka__layout-chooser .eureka__icon-radio-btns body:hover input[type=radio] input,.eureka .eureka__layout-chooser body:hover legend a,.eureka .eureka__layout-chooser body:hover legend button,.eureka .eureka__layout-chooser body:hover legend input,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) a,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) button,.eureka-root .eureka.eureka__view-mode__list.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) input,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) a,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) button,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side body:hover table>thead>tr>th:nth-of-type(1) input,.eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type=file] a,.eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type=file] button,.eureka:not(.eureka__server-side) .eureka__upload-form body:hover input[type=file] input,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox] a,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox] button,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox] input,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio] a,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio] button,body:hover .eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio] input,body:hover .eureka .eureka__layout-chooser legend a,body:hover .eureka .eureka__layout-chooser legend button,body:hover .eureka .eureka__layout-chooser legend input,body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1) a,body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1) button,body:hover .eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1) input,body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1) a,body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1) button,body:hover .eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1) input,body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type=file] a,body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type=file] button,body:hover .eureka:not(.eureka__server-side) .eureka__upload-form input[type=file] input,body:hover .visually-hidden a,body:hover .visually-hidden button,body:hover .visually-hidden input{display:none!important}[class*=eureka-wrapper],[class*=modal-section]{padding:0}@media screen and (min-width:641px){[class*=eureka-wrapper],[class*=modal-section]{display:-webkit-box;display:-ms-flexbox;display:flex;overflow-y:hidden;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.eureka-root:-webkit-full-screen{width:100vw;height:100vh;overflow-y:auto;background:#ececec;background:var(--bg-color,#ececec)}.eureka-root label[for*=fullscreen-toggle]{margin-left:8px;margin-left:.5rem}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row,.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr.eureka__focused-media-item>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden]{display:block!important}@media screen and (max-width:640px){.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr>td.eureka__td-media,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr>td.eureka__td-media{text-align:center}}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus>td.eureka__context-row[hidden]{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus-within>td.eureka__context-row,.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus-within>td.eureka__context-row{display:block!important}.eureka-root .eureka__view-mode__list tbody:not(.empty)>tr:focus-within>td.eureka__context-row[hidden],.eureka-root .eureka__view-mode__table tbody:not(.empty)>tr:focus-within>td.eureka__context-row[hidden]{display:block!important}.eureka-root tbody:not(.empty)>tr:not(.empty){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.eureka-root tbody:not(.empty)>tr:not(.empty)>*{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}@supports (display:grid){.eureka-root tbody:not(.empty)>tr:not(.empty){display:grid}.eureka-root tbody:not(.empty)>tr:not(.empty)>td .eureka__td-media{grid-area:media}.eureka-root tbody:not(.empty)>tr:not(.empty)>td .eureka__td-filename{grid-area:name}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__context-row{grid-area:actions}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{grid-area:dimensions}@media screen and (max-width:640px){.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{display:none}}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{grid-area:file-size}@media screen and (max-width:640px){.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{display:none}}.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{grid-area:edited-on}@media screen and (max-width:640px){.eureka-root tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{display:none}}}@supports (display:grid){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__choose{grid-area:choose}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__td-media{grid-area:media}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__td-filename{grid-area:name}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__context-row{grid-area:actions}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{grid-area:dimensions}@media screen and (max-width:640px){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__dimensions{display:none}}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{grid-area:file-size}@media screen and (max-width:640px){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__file-size{display:none}}.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{grid-area:edited-on}@media screen and (max-width:640px){.eureka-root .eureka tbody:not(.empty)>tr:not(.empty)>td.eureka__edited-on{display:none}}}@supports (display:grid){@media screen and (min-width:641px){.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list tbody:not(.empty)>tr:not(.empty),.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table tbody:not(.empty)>tr:not(.empty){grid-template-areas:"choose media name dimensions file-size edited-on" "actions actions actions actions actions actions";grid-template-columns:2rem auto 24% 12% 12% 12%}}}.eureka .eureka__choose-radio{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .eureka__choose-radio fieldset{margin:0;padding:0}.eureka .eureka__choose-radio .eureka__fieldset{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .eureka__choose-radio .eureka__fieldset>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>thead>tr{grid-template-columns:2rem 16% 40% 8% auto auto!important;grid-template-areas:"radio name media dimensions file-size edited-on"!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>thead>tr th:nth-of-type(3){text-align:left!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty){grid-template-columns:2rem 16% 40% 8% auto auto!important;grid-template-areas:"radio name media dimensions file-size edited-on"!important}@supports (display:grid){.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td.eureka__td-filename{text-align:left!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(4){grid-area:dimensions!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(5){grid-area:file-size!important}.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table.eureka__table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(6){grid-area:edited-on!important}}.eureka-root{padding:8px;padding:.5rem}@media screen and (max-width:640px){.eureka-root .eureka table>thead{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}body:hover .eureka-root .eureka table>thead a,body:hover .eureka-root .eureka table>thead button,body:hover .eureka-root .eureka table>thead input{display:none!important}}@media screen and (max-width:640px){.eureka-root .eureka tbody>tr>td:not(.eureka__context-row){padding-right:.5rem}}.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>thead>tr{grid-template-areas:"choose choose choose choose choose choose" "media media media media media media" "name name name name name name" "actions actions actions actions actions actions"}@media screen and (min-width:641px){.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__table table>thead>tr{grid-template-areas:"choose media name dimensions file-size edited-on";grid-template-columns:2rem auto 24% 12% 12% 12%}}.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__grid table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__masonry table>thead>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table>tbody>tr,.eureka-root .eureka.eureka__choose-multiple.eureka__view-mode__thumb table>thead>tr{grid-template-areas:"choose choose choose choose choose choose" "media media media media media media"}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>thead>tr{display:grid;grid-gap:0}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__list table>thead>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>thead>tr{grid-template-areas:"media name dimensions file-size edited-on";grid-template-columns:40% 24% 12% 12% 12%}}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr{grid-template-areas:"media media media media media" "name name name name name" "actions actions actions actions actions"}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list table>tbody>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody>tr{grid-template-areas:"media name dimensions file-size edited-on" "actions actions actions actions actions"}}.eureka-root .eureka.eureka__view-mode__list table>tbody.empty>tr,.eureka-root .eureka.eureka__view-mode__table table>tbody.empty>tr{display:block}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*=upload-form],.eureka-root .eureka.eureka__view-mode__table.eureka__server-side .eureka__tree-toggle .eureka__upload-form label[for*=upload-form]{padding:.5em;margin-right:16px;margin-right:1rem}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr,.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr{grid-template-areas:"radio media name dimensions file-size edited-on";grid-template-columns:2rem 40% 24% auto auto auto}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1){grid-area:radio}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(2),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(2){grid-area:media;text-align:left}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(3),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(3){grid-area:name}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(5),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(5){grid-area:dimensions}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(6),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(6){grid-area:file-size}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>tbody:not(.empty)>tr:not(.empty)>th:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>td:nth-of-type(7),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(7){grid-area:edited-on}}.eureka-root .eureka.eureka__view-mode__list.eureka__server-side table>thead>tr>th:nth-of-type(1),.eureka-root .eureka.eureka__view-mode__table.eureka__server-side table>thead>tr>th:nth-of-type(1){grid-area:none}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr td:first-child,.eureka-root .eureka.eureka__view-mode__list table>tbody>tr th:first-child,.eureka-root .eureka.eureka__view-mode__list table>thead>tr td:first-child,.eureka-root .eureka.eureka__view-mode__list table>thead>tr th:first-child{padding-left:8px;padding-left:.5rem}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr{grid-template-areas:"name name name name name" "actions actions actions actions actions";margin-bottom:8px;margin-bottom:.5rem}.eureka-root .eureka.eureka__view-mode__list table>tbody>tr>td.eureka__choose{text-align:center}@media screen and (min-width:641px){.eureka-root .eureka.eureka__view-mode__list table>tbody>tr{grid-template-areas:"media name dimensions file-size edited-on" "actions actions actions actions actions"}}.eureka-root .eureka__table embed,.eureka-root .eureka__table img,.eureka-root .eureka__table object,.eureka-root .eureka__table video{-o-object-fit:contain;object-fit:contain}@media screen and (min-width:641px){.eureka-root{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.eureka-root .eureka{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1}.eureka-root .eureka>.eureka__browse-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%}.eureka-root .eureka>.eureka__browse-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%}.eureka-root .eureka>.eureka__browse-content>.eureka__pathbrowser{-webkit-box-flex:0;-ms-flex:0 0 14rem;flex:0 0 14rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0;margin-right:.5rem}.eureka-root .eureka>.eureka__browse-content>.eureka__pathbrowser[aria-hidden=true],.eureka-root .eureka>.eureka__browse-content>.eureka__pathbrowser[hidden]{display:none}.eureka-root .eureka>.eureka__browse-content>.eureka__stage{-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view{-ms-flex-preferred-size:auto;flex-basis:auto;-ms-flex-negative:1;flex-shrink:1;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view>header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;min-width:0;min-height:0;-ms-flex-wrap:nowrap;flex-wrap:nowrap;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:.5rem}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view>header>h2{margin-bottom:0;margin-right:auto}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__stage__filter-view>header>h2 form{float:right}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:auto;-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:0 .5rem .5rem 0}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper>div{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:100%;height:100%;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%}.eureka-root .eureka>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper>div>table{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:100%;height:100%;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:100%}.eureka-root .eureka>.eureka__choose-bar{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-top:.5rem}}.eureka-root .eureka.eureka__view-mode__masonry>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper{padding-left:8px;padding-left:.5rem}@media screen and (max-width:640px){.eureka-root .eureka.eureka__view-mode__masonry>.eureka__browse-content>.eureka__stage>.eureka__table-wrapper{padding-right:.5rem}}@media screen and (max-width:640px){.eureka-root .eureka>.eureka__choose-bar>*{margin-right:.5rem}.eureka-root .eureka>.eureka__choose-bar>:last-child{margin-right:0}}.eureka-root thead{-ms-flex-preferred-size:auto;flex-basis:auto;display:block;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.eureka-root thead.eureka__tbody-scrolling{padding-right:16px}.eureka-root thead[hidden]{display:none}.eureka-root thead>tr{display:block;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.eureka-root thead>tr>th{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.eureka-root thead>tr>th.eureka__choose{grid-area:choose}.eureka-root thead>tr>th.eureka__th-media{grid-area:media}.eureka-root thead>tr>th.eureka__th-filename{grid-area:name}.eureka-root thead>tr>th.eureka__th-actions{grid-area:none}.eureka-root thead>tr>th.eureka__th-dimensions{grid-area:dimensions}.eureka-root thead>tr>th.eureka__th-file-size{grid-area:file-size}.eureka-root thead>tr>th.eureka__th-edited-on{grid-area:edited-on}.eureka-root tbody.empty{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka-root tbody.empty>tr{text-align:center;display:block}.eureka-root tbody.empty>tr td{margin:0 auto;display:inline-block}.eureka-root tbody{-ms-flex-preferred-size:0;flex-basis:0;text-align:center;display:block;-ms-flex-wrap:no-wrap;flex-wrap:no-wrap;overflow-y:auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:1;flex-shrink:1;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-webkit-overflow-scrolling:touch}.eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__td-media,.eureka.eureka__choose-multiple:not(.eureka__view-mode__grid) .eureka__th-media{padding-left:16px;padding-left:1rem}@media screen and (min-width:641px){.eureka__media-directory-selector form{display:inline-block}.eureka__media-directory-selector>div{display:inline-block;margin-left:.5em}}.eureka__sort-select select{margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka__sort-select{margin-left:auto;margin-right:auto}.eureka__sort-select label{margin-right:.5rem}.eureka__sort-select select{margin-right:1rem;margin-bottom:0}}@media screen and (min-width:641px){.eureka__tree-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-bottom:.5rem}.eureka__tree-toggle>:first-child{margin-right:auto}.eureka__tree-toggle .eureka__upload-form{margin-right:auto}}@media screen and (min-width:641px) and (min-width:641px){.eureka__tree-toggle .eureka__upload-form form{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .eureka__tree-toggle .eureka__upload-form label[for*=upload-form]{padding-top:0;padding-bottom:0;line-height:2.2}}@media screen and (min-width:641px){.eureka__server-side .eureka__tree-toggle .eureka__upload-form{margin-right:0}}@media screen and (min-width:641px){.eureka.eureka__view-mode__table .eureka__table img{max-height:20vh}}.eureka.eureka__view-mode__table .eureka__table thead th:first-child{padding-left:8px;padding-left:.5rem}.eureka.eureka__view-mode__table .eureka__table thead th:last-child{padding-right:8px;padding-right:.5rem}.eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:first-child{padding-left:8px;padding-left:.5rem}.eureka.eureka__view-mode__table .eureka__table tr[contextmenu] td:last-child{padding-right:8px;padding-right:.5rem}.eureka.eureka__view-mode__table .eureka__table tr td,.eureka.eureka__view-mode__table .eureka__table tr th{text-align:center}@media screen and (min-width:641px){.eureka.eureka__view-mode__table .eureka__table tr td,.eureka.eureka__view-mode__table .eureka__table tr th{text-align:right}.eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media,.eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media{text-align:left}}.eureka.eureka__view-mode__table .eureka__table tr td.eureka__th-media,.eureka.eureka__view-mode__table .eureka__table tr th.eureka__th-media{text-align:left}.eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table img{max-height:20vh}.eureka.eureka__view-mode__table.eureka__enlarge-focused-rows .eureka__table tr:focus img{max-height:30vh}.eureka.eureka__view-mode__grid .eureka__table thead,.eureka.eureka__view-mode__masonry .eureka__table thead,.eureka.eureka__view-mode__thumb .eureka__table thead{display:none!important}.eureka.eureka__view-mode__grid .eureka__table td:not(.eureka__td-media):not(.eureka__choose),.eureka.eureka__view-mode__masonry .eureka__table td:not(.eureka__td-media):not(.eureka__choose),.eureka.eureka__view-mode__thumb .eureka__table td:not(.eureka__td-media):not(.eureka__choose){display:none}.eureka.eureka__view-mode__grid .eureka__table td[colspan],.eureka.eureka__view-mode__masonry .eureka__table td[colspan],.eureka.eureka__view-mode__thumb .eureka__table td[colspan]{display:block}.eureka.eureka__view-mode__grid .eureka__table tbody,.eureka.eureka__view-mode__masonry .eureka__table tbody,.eureka.eureka__view-mode__thumb .eureka__table tbody{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody,.eureka.eureka__view-mode__masonry .eureka__table tbody,.eureka.eureka__view-mode__thumb .eureka__table tbody{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}}.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex]{margin:0 8px 8px 0;margin:0 .5rem .5rem 0;-ms-flex-preferred-size:42vw;flex-basis:42vw;width:100%}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex]{display:inline-block}}.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex] td,.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex] td,.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex] td{display:block}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__thumb .eureka__table tbody tr[tabindex]{-ms-flex-preferred-size:16vw;flex-basis:16vw}}.eureka.eureka__view-mode__grid .eureka__table tbody .eureka__context-row,.eureka.eureka__view-mode__masonry .eureka__table tbody .eureka__context-row,.eureka.eureka__view-mode__thumb .eureka__table tbody .eureka__context-row{display:none}@media screen and (max-width:640px){.eureka.eureka__view-mode__thumb .eureka__table tbody{display:-webkit-box;display:-ms-flexbox;display:flex}}@media screen and (max-width:640px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]{margin-bottom:0}}@media screen and (min-width:641px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex],.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]{-ms-flex-preferred-size:25vw;flex-basis:25vw}}@media screen and (max-width:640px){.eureka.eureka__view-mode__grid .eureka__table tbody tr[tabindex]>td:not(.eureka__context-row),.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]>td:not(.eureka__context-row){padding-right:0}}@media screen and (min-width:641px){.eureka.eureka__view-mode__masonry .eureka__table tbody tr[tabindex]{max-width:20%;margin:0;padding:0 .25rem}}@media screen and (min-width:641px){.eureka .eureka__tree{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}}.eureka.eureka__view-mode__table .eureka__context-row{margin-top:8px;margin-top:.5rem}@media screen and (min-width:641px){.eureka .eureka__context-row{margin-top:0;width:100%;display:block;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10;width:100%}.eureka .eureka__context-row[hidden]{display:none!important}.eureka .eureka__context-row .eureka__context-buttons{width:100%}}.eureka .eureka__tree-bar{text-align:center}.eureka.eureka__view-mode__grid .eureka__td-media,.eureka.eureka__view-mode__masonry .eureka__td-media{margin:0 auto;display:inline-block}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead th:first-child{display:none}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead th:nth-of-type(2){text-align:left;padding-left:.5rem}}.eureka.eureka__view-mode__list .eureka__table thead th:last-child{padding-right:8px;padding-right:.5rem}.eureka.eureka__view-mode__list .eureka__table thead td,.eureka.eureka__view-mode__list .eureka__table thead th,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th{text-align:right}.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media{text-align:left}@supports (display:grid){.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media{display:block}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__th-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-media,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__th-media{display:none}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table thead td.eureka__td-filename,.eureka.eureka__view-mode__list .eureka__table thead th.eureka__td-filename,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] td.eureka__td-filename,.eureka.eureka__view-mode__list .eureka__table tr[contextmenu] th.eureka__td-filename{text-align:center;padding-top:.5rem;padding-bottom:.5rem}}@media screen and (max-width:640px){.eureka.eureka__view-mode__list .eureka__table tbody{line-height:2}}.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media embed,.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media img,.eureka.eureka__view-mode__list .eureka__table tbody .eureka__td-media video{max-width:10vh;max-height:10vh}.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu]{padding-top:0;padding-bottom:0}.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu]>td:nth-of-type(2){padding-left:8px;padding-left:.5rem}.eureka.eureka__view-mode__list .eureka__table tbody tr[contextmenu]>td:last-child{padding-right:8px;padding-right:.5rem}@media screen and (max-width:640px){.eureka .eureka__crop-btn{display:none}}.eureka .flex-bar fieldset{margin:0;padding:0}.eureka .flex-bar fieldset label{margin-bottom:0}.eureka .eureka__invert-horz{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.eureka .eureka__td-media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (min-width:641px){.eureka .eureka__show-for-mobile-up p,.eureka .eureka__show-for-mobile-up textarea{max-height:3em;overflow-y:auto;display:block;width:100%}}.eureka .eureka__pathbar textarea{resize:none}.eureka label[for=eureka__crop_show-adv-controls]{position:absolute;top:.75em;right:1em}.eureka .eureka__crop-modal .icon-bar{margin-top:1em;font-size:16px;font-size:1rem}.eureka .eureka__crop-modal .icon-bar label[for=eureka__crop-drag-mode-move]{border-top-left-radius:3px;border-bottom-left-radius:3px}.eureka .eureka__crop-modal .icon-bar .button,.eureka .eureka__crop-modal .icon-bar button{border-radius:0}.eureka .eureka__crop-modal .icon-bar .button:first-child,.eureka .eureka__crop-modal .icon-bar button:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.eureka .eureka__crop-modal .icon-bar .button:last-child,.eureka .eureka__crop-modal .icon-bar button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.eureka .eureka__crop-modal .icon-bar.flex-bar>*{margin-right:0}.eureka .eureka__crop-modal .icon-bar button{font-size:16px;font-size:1rem}.eureka .eureka__crop-modal .wrappable.flex-bar{-ms-flex-pack:distribute;justify-content:space-around;margin-bottom:32px;margin-bottom:2rem}.eureka .eureka__crop-modal .wrappable.flex-bar>*{padding-left:16px;padding-left:1rem;padding-right:16px;padding-right:1rem}.eureka .eureka__crop-modal .wrappable.flex-bar summary{margin-bottom:8px;margin-bottom:.5rem}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box{margin-top:16px;margin-top:1rem}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label{margin-bottom:0}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box label[for=eureka__crop-aspect-ratio]{line-height:2}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[type=number]{width:5em}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box input[id*=eureka__crop-scale]{width:4em}@media screen and (min-width:641px){.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box summary{display:-webkit-box;display:-ms-flexbox;display:flex}}@media screen and (min-width:641px){.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>details>div,.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>div{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>details>div>*,.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>div>*{margin-right:.5rem}.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>details>div:last-child,.eureka .eureka__modal .eureka__modal-panel .eureka__crop-bounding-box>div:last-child{margin-right:0}}.eureka [hidden]{display:none!important}.eureka .eureka__crop-save-as-checkbox{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka .eureka__crop-as{padding-right:16px;padding-right:1rem}.eureka .eureka__crop-as input[type=text]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.eureka label[for=eureka__crop-save-as-name]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka label[for=eureka__crop-aspect-ratio-remember]{line-height:2}.eureka label[for=eureka__crop-rotate]+input[type=range]{min-width:14em}.eureka .eureka__choose-multile>label{display:block;height:100%}.dangerous{color:red;color:var(--dangerous,red)}input:not([type=checkbox]):not([type=radio]):focus{outline:1px solid #3697cd;outline:1px solid var(--active,#3697cd)}[role=listbox]:focus,tr.eureka__context-row:focus,tr[tabindex]:focus{outline:1px solid #3697cd;outline:1px solid var(--active,#3697cd)}summary:focus{outline:0;font-weight:700;color:#3697cd;color:var(--active,#3697cd)}.eureka .eureka__button-bar,.eureka .eureka__tree-bar,.flex-bar{display:-webkit-box;display:-ms-flexbox;display:flex}.eureka .wrappable.eureka__button-bar,.eureka .wrappable.eureka__tree-bar,.wrappable.flex-bar{-ms-flex-wrap:wrap;flex-wrap:wrap}.eureka .wrappable.eureka__button-bar>*,.eureka .wrappable.eureka__tree-bar>*,.wrappable.flex-bar>*{padding-left:16px;padding-left:1rem;padding-right:16px;padding-right:1rem}.balanced.flex-bar,.eureka .balanced.eureka__button-bar,.eureka .balanced.eureka__tree-bar{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eureka .eureka__button-bar>*,.eureka .eureka__tree-bar>*,.flex-bar>*{margin-right:8px;margin-right:.5rem}.eureka .eureka__button-bar>.growable,.eureka .eureka__tree-bar>.growable,.flex-bar>.growable{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.eureka .eureka__button-bar>:last-child,.eureka .eureka__tree-bar>:last-child,.flex-bar>:last-child{margin-right:0}[role=dialog] .flex-bar{margin-top:8px;margin-top:.5rem}.eureka .eureka__button-bar,.eureka .eureka__notice{text-align:center}a[role=presentation]{color:currentColor!important;text-decoration:none!important}@-webkit-keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.icon-circle-o-notch{-webkit-animation:spinner 1s linear infinite;animation:spinner 1s linear infinite}.eureka__table tr[tabindex].eureka__focused-media-item .eureka__td-filename{font-weight:700}.eureka__table tr[tabindex]:target .eureka__td-media>*{outline:3px solid #32ab9a}.eureka__table tr[tabindex]:target .eureka__td-filename{font-weight:700}.eureka .eureka__context-buttons,.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka [class^=alert],.eureka-root .eureka__notification-wrapper>*{border:1px solid #ddd;border:var(--border-width,1px) var(--border-style,solid) var(--panel-border-color,#ddd)}.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka .eureka__table td.comfortable,.eureka [class^=alert],.eureka-root .eureka__notification-wrapper>*{padding:16px;padding:1rem}@media screen and (min-width:641px){.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka .eureka__table td.comfortable,.eureka [class^=alert],.eureka-root .eureka__notification-wrapper>*{padding:.5rem}}.eureka .eureka__modal .eureka__modal-panel,.eureka .eureka__pathbar,.eureka .eureka__pathbrowser,.eureka .eureka__stage,.eureka [class^=alert]{border-radius:.25rem;background:#fff;background:var(--light-bg,#fff)}.eureka-root .eureka__notification-wrapper>*{border-radius:.25rem;padding-left:1.5em;padding-right:1.5em;background:#d9edf7;background:var(--notification-background,#d9edf7);color:#1d6e95;color:var(--notification-color,#1d6e95);border:1px solid #309dd4;border:1px solid var(--notification-border-color,var(--notification-color,#309dd4))}.eureka-root .eureka__notification-wrapper>* a{color:currentColor}@media screen and (min-width:641px){.eureka-root .eureka__notification-wrapper>* br{display:none}}.eureka-root .eureka__notification-wrapper>* button{position:absolute;top:4px;top:.25rem;right:4px;right:.25rem;color:currentColor;-webkit-transition:color 240ms ease;transition:color 240ms ease;-webkit-box-shadow:none;box-shadow:none}.eureka-root .eureka__notification-wrapper>* button:focus,.eureka-root .eureka__notification-wrapper>* button:hover{color:#247fad!important;color:var(--notification-focus-color,#247fad)!important;border:none;-webkit-box-shadow:none;box-shadow:none}.eureka-root .eureka__notification-wrapper>* button:focus svg,.eureka-root .eureka__notification-wrapper>* button:hover svg{fill:currentColor!important}.eureka-root .eureka__notification-wrapper>.eureka__dangerous{--notification-background:#f7a2a2;--notification-color:#911912;--notification-border-color:#911912;--notification-focus-color:#911912}.eureka .eureka__notification-wrapper{-webkit-transition:top 240ms ease 90ms,opacity 240ms ease;transition:top 240ms ease 90ms,opacity 240ms ease;opacity:1;top:0;text-align:center}.eureka .eureka__notification-wrapper>*{position:relative}@media screen and (max-width:640px){.eureka .eureka__notification-wrapper{-webkit-transition:opacity 240ms ease;transition:opacity 240ms ease;left:0;right:0}}.eureka .eureka__notification-wrapper[aria-hidden=true]{opacity:0;top:-5em;display:block;-webkit-transition:opacity 340ms ease-out 90ms,top 420ms ease-out;transition:opacity 340ms ease-out 90ms,top 420ms ease-out}@media screen and (min-width:641px){.eureka .eureka__notification-wrapper{position:absolute;left:0;right:0;top:.25rem}}.eureka .eureka__notification-wrapper p{margin:0}.eureka .eureka__notification-wrapper .icon{-webkit-transform:translateY(.125em);transform:translateY(.125em)}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label{cursor:default;position:relative;padding-left:1.5em}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label .spinner{position:absolute;top:0;left:.275em;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label:hover{background:#fff;background:var(--button-bg,#fff);color:#555;color:var(--button-color,#555)}.eureka .eureka__upload-form input[name*=uploadFiles]:disabled+label:hover svg{fill:currentColor}.eureka a{color:#3697cd;color:var(--link-color,#3697cd)}.eureka h1,.eureka h2,.eureka h3,.eureka h4,.eureka h5,.eureka h6{font-weight:400}.eureka h1,.eureka h2,.eureka h3,.eureka h4,.eureka h5,.eureka h6,.eureka thead{color:#555;color:var(--subtle,#555)}.eureka select{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em;padding-right:1.5em;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,");background-size:contain;background-repeat:no-repeat;background-scale:70% 70%;background-position:right .5em}@media screen and (max-width:640px){.eureka select{width:100%;margin-top:.5em}}.eureka select:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}@-moz-document url-prefix(){.eureka select{background-image:url(../img/select-arrow.svg)}}.eureka button[id^=eureka__tree-toggle__button]{margin-bottom:16px;margin-bottom:1rem;-webkit-box-shadow:0 0 0 1px #e4e4e4,0 .25em 0 #c5c5c5;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4),0 .25em 0 var(--border-color,#c5c5c5);box-shadow:0 0 0 1px #e4e4e4,0 .25em 0 #c5c5c5;box-shadow:0 0 0 1px var(--border-color,#e4e4e4),0 .25em 0 var(--border-color,#c5c5c5)}.eureka button[id^=eureka__tree-toggle__button]:focus{--button-color:#3697cd;--button-color:var(--active, #3697cd)}@media screen and (max-width:640px){.eureka button[id^=eureka__tree-toggle__button]{width:100%;min-height:1.75rem}}@media screen and (min-width:641px){.eureka button[id^=eureka__tree-toggle__button]{margin-bottom:0}}.eureka :disabled{cursor:not-allowed}.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:last-child{background-color:#32ab9a;background-image:-webkit-gradient(linear,left top,left bottom,from(#32ab9a),to(#00948e));background-image:linear-gradient(#32ab9a,#00948E);-webkit-box-shadow:none;box-shadow:none;color:#fff}.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:focus:last-child,.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:hover:last-child{--border-color:#007571;background-color:#2b9385;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b9385),to(#007571));background-image:linear-gradient(#2b9385,#007571);color:#fff;-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4)}.eureka .eureka__modal-panel .eureka__button-bar:not([aria-hidden=true])>:disabled:last-child{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.eureka a.button{text-decoration:none}.eureka .button,.eureka button{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em}.eureka .button:focus,.eureka button:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}.eureka .button:hover,.eureka button:hover{background:#3697cd;color:#fff;--border-color:#297aa7;--border-color:var(--active-darker, #297aa7);--border-shadow-color:#297aa7;--border-shadow-color:var(--active-darker, #297aa7)}.eureka .button:hover svg,.eureka button:hover svg{fill:#fff}.eureka .button.eureka__primary,.eureka button.eureka__primary{background-color:#32ab9a;background-image:-webkit-gradient(linear,left top,left bottom,from(#32ab9a),to(#00948e));background-image:linear-gradient(#32ab9a,#00948E);-webkit-box-shadow:none;box-shadow:none;color:#fff}.eureka .button.eureka__primary:focus,.eureka .button.eureka__primary:hover,.eureka button.eureka__primary:focus,.eureka button.eureka__primary:hover{--border-color:#007571;background-color:#2b9385;background-image:-webkit-gradient(linear,left top,left bottom,from(#2b9385),to(#007571));background-image:linear-gradient(#2b9385,#007571);color:#fff;-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4)}.eureka .button.eureka__primary:disabled,.eureka button.eureka__primary:disabled{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.eureka .button.dangerous:active,.eureka .button.dangerous:focus,.eureka .button.dangerous:hover,.eureka .button.dangerous:target,.eureka button.dangerous:active,.eureka button.dangerous:focus,.eureka button.dangerous:hover,.eureka button.dangerous:target{--border-color:#b80000;--border-color:var(--border-color-dangerous, #b80000);background-color:red;color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,from(red),to(#c00));background-image:linear-gradient(red,#c00)}.eureka [aria-hidden=true] .button.eureka__primary,.eureka [aria-hidden=true] button.eureka__primary{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em}.eureka [aria-hidden=true] .button.eureka__primary:focus,.eureka [aria-hidden=true] button.eureka__primary:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}.eureka [aria-hidden=true] .button.eureka__primary:hover,.eureka [aria-hidden=true] button.eureka__primary:hover{background:#3697cd;color:#fff;--border-color:#297aa7;--border-color:var(--active-darker, #297aa7);--border-shadow-color:#297aa7;--border-shadow-color:var(--active-darker, #297aa7)}.eureka [aria-hidden=true] .button.eureka__primary:hover svg,.eureka [aria-hidden=true] button.eureka__primary:hover svg{fill:#fff}.eureka input[type=text]{padding-left:8px;padding-left:.5rem;padding-right:8px;padding-right:.5rem}.eureka input[type=text]{border-width:1px;border-width:var(--border-width,1px);border-style:solid;border-style:var(--border-style,solid);border-color:#e4e4e4;border-color:var(--border-color,#e4e4e4)}.eureka fieldset{border:none}@media screen and (max-width:640px){.eureka fieldset{border-width:1px;border-width:var(--border-width,1px);border-style:solid;border-style:var(--border-style,solid);border-color:#e4e4e4;border-color:var(--border-color,#e4e4e4);border-radius:.25rem;border-radius:var(--border-color,.25rem)}}.eureka .active{font-weight:700}.eureka details details{padding-left:.5em}.eureka menu{display:none}.eureka img{max-width:100%}.eureka .alert-info{background-color:#d9edf7;background-color:var(--light-bg,#d9edf7);border-color:#bce8f1;border-color:var(--border-color,#bce8f1);color:#31708f;color:var(--subtle,#31708f)}.eureka .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}@media screen and (max-width:640px){.eureka .eureka__button-bar>*{margin-right:0}}.eureka .eureka__tree{margin-bottom:16px;margin-bottom:1rem;line-height:1.6;line-height:var(--tree-line-height,1.6)}@media screen and (min-width:641px){.eureka .eureka__tree{margin-bottom:.5rem}}@media (pointer:coarse){.eureka .eureka__tree{font-size:1.4em;line-height:1.8;line-height:var(--tree-course-line-height,1.8)}}.eureka .eureka__context-buttons{-ms-flex-pack:distribute;justify-content:space-around;background:#f7f7f7;background:var(--button-bg,#f7f7f7);border-left:0;border-right:0;padding:8px 0;padding:.5rem 0}.eureka .eureka__context-buttons button,.eureka .eureka__context-buttons>a.button{font-size:11px;font-size:.6875rem}.eureka.eureka__view-mode__list .eureka__context-buttons{padding-top:5.6px;padding-top:.35rem;padding-bottom:5.6px;padding-bottom:.35rem}.eureka.eureka__view-mode__list .eureka__context-buttons button,.eureka.eureka__view-mode__list .eureka__context-buttons>a.button{font-size:9.6px;font-size:.6rem}.eureka .eureka__table{min-width:100%}.eureka .eureka__table tr[contextmenu]{padding-bottom:8px;padding-bottom:.5rem}@media screen and (min-width:641px){.eureka .eureka__table tr[contextmenu]{padding-top:.5rem}}.eureka .eureka__table tr[contextmenu].eureka__focused-media-item:last-child{padding-bottom:0}.eureka .eureka__table td.comfortable p[class^=alert]{margin:0}.eureka .eureka__td-media{background:0 0;background:var(--media-cell-background,transparent)}.eureka .eureka__stage{padding:0;margin-bottom:8px;margin-bottom:.5rem}@media screen and (min-width:641px){.eureka .eureka__stage{margin-bottom:0}}.eureka .eureka__stage h1:first-child,.eureka .eureka__stage h2:first-child,.eureka .eureka__stage h3:first-child{margin-top:0}.eureka .eureka__stage__filter-view{padding:8px;padding:.5rem}@media screen and (max-width:640px){.eureka .eureka__stage__filter-view{padding-bottom:0}}.eureka .eureka__stage__filter-view .eureka__search-bar{line-height:2;font-size:16px;font-size:1rem;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka .eureka__stage__filter-view .eureka__search-bar{font-size:.8rem;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;max-width:22em}}.eureka .eureka__stage__filter-view .eureka__search-bar label{color:#556c88;color:var(--subtle,#556c88)}@media screen and (min-width:641px){.eureka .eureka__stage__filter-view .eureka__search-bar{margin-bottom:0}}.eureka .eureka__stage__filter-view .eureka__search-bar input{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;font-size:inherit}.eureka .eureka__media-directory-selector{margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka .eureka__media-directory-selector{margin-right:auto;margin-bottom:.5rem}}.eureka .eureka__media-directory-selector button[type=submit]{margin-left:16px;margin-left:1rem}.eureka .eureka__media-directory-selector form{position:relative}.eureka .eureka__tree-bar{margin:8px 0 0 0;margin:.5rem 0 0 0}.eureka .eureka__tree-bar>*{margin:0 8px 0 0;margin:0 .5rem 0 0}.eureka .eureka__tree-bar>:last-child{margin-right:0}@media screen and (max-width:640px){.eureka .eureka__tree-bar{margin-top:1rem}}.eureka .eureka__tree-bar .button,.eureka .eureka__tree-bar button{font-size:16px;font-size:1rem;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.eureka .eureka__media-source-selector{margin-bottom:16px;margin-bottom:1rem}.eureka .eureka__media-source-selector h2:first-child,.eureka .eureka__media-source-selector h3:first-child{margin-top:0}@media screen and (max-width:640px){.eureka .eureka__upload-form{margin-bottom:1rem}}@media screen and (max-width:640px){.eureka .eureka__upload-form label{display:block}}.eureka:not(.eureka__server-side) .eureka__upload-form label{background:#fff;background:var(--button-bg,#fff);-webkit-box-shadow:0 0 0 1px #e4e4e4;-webkit-box-shadow:0 0 0 1px var(--border-color,#e4e4e4);box-shadow:0 0 0 1px #e4e4e4;box-shadow:0 0 0 1px var(--border-color,#e4e4e4);color:#555;color:var(--button-color,#555);border:0;border-radius:3px;padding:.5em .5em;font-size:11px;font-size:.6875rem;text-align:center}.eureka:not(.eureka__server-side) .eureka__upload-form label:focus{outline:0;--border-color:#3697cd;--border-color:var(--active, #3697cd);--border-shadow-color:#3697cd;--border-shadow-color:var(--active, #3697cd)}.eureka:not(.eureka__server-side) .eureka__upload-form label:hover{background:#3697cd;color:#fff;--border-color:#297aa7;--border-color:var(--active-darker, #297aa7);--border-shadow-color:#297aa7;--border-shadow-color:var(--active-darker, #297aa7)}.eureka:not(.eureka__server-side) .eureka__upload-form label:hover svg{fill:#fff}.eureka .eureka__choose-bar{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.eureka .eureka__choose-bar[aria-hidden=true]{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.eureka .eureka__choose-bar button{font-size:16px;font-size:1rem}@media screen and (min-width:641px){.eureka .eureka__choose-bar button{font-size:.8rem}}.eureka .eureka__pathbrowser{margin-bottom:8px;margin-bottom:.5rem}@media screen and (min-width:641px){.eureka .eureka__pathbrowser{margin-bottom:0}}.eureka .eureka__pathbrowser nav{color:#556c88;color:var(--subtle,#556c88)}.eureka .eureka__pathbrowser details>summary svg{-webkit-transform:translateY(.2em);transform:translateY(.2em);margin-right:.25em}.eureka .eureka__pathbrowser details>summary>.icon-folder-open{display:none}.eureka .eureka__pathbrowser details[open]>summary>.icon-folder-open{display:inline-block}.eureka .eureka__pathbrowser details[open]>summary>.icon-folder{display:none}.eureka .eureka__pathbar{padding:8px;padding:.5rem;margin-bottom:8px;margin-bottom:.5rem;margin-top:8px;margin-top:.5rem}@media screen and (min-width:641px){.eureka .eureka__pathbar{margin-bottom:0}}.eureka .eureka__pathbar summary{word-wrap:break-word}.eureka .eureka__pathbar details>div{padding-top:16px;padding-top:1rem}.eureka .eureka__pathbar .eureka__context-buttons{background:0 0;border:none}.eureka .eureka__layout-chooser{color:#556c88;color:var(--subtle,#556c88)}.eureka .eureka__layout-chooser fieldset{margin:0;padding:.5em 0}@media screen and (min-width:641px){.eureka .eureka__layout-chooser fieldset{padding:0}}.eureka .eureka__layout-chooser .eureka__icon-radio-btns{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}.eureka .eureka__layout-chooser .eureka__icon-radio-btns>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=checkbox]:checked+label svg[class^=icon],.eureka .eureka__layout-chooser .eureka__icon-radio-btns input[type=radio]:checked+label svg[class^=icon]{fill:#3697cd;fill:var(--active,#3697cd)}.eureka .eureka__layout-chooser .eureka__icon-radio-btns label{font-size:22.4px;font-size:1.4rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eureka svg[class^=icon]{position:relative;width:1em;height:1em;fill:currentColor}@media screen and (min-width:641px){.eureka .eureka__hide-for-mobile-up{display:none}}@media screen and (max-width:640px){.eureka .eureka__show-for-mobile-up{display:none}}.eureka .eureka__drop-area{-webkit-box-flex:2;-ms-flex:2 8 auto;flex:2 8 auto;display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer}.eureka .eureka__drop-area-zone{width:100%;padding:8px;padding:.5rem;border-width:2px;border-color:#ddd;border-color:var(--very-subtle,#ddd);border-style:dashed;border-radius:5px;background-color:transparent;-webkit-transition:border-color 240ms ease,background-color 320ms ease 120ms;transition:border-color 240ms ease,background-color 320ms ease 120ms;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none}@media screen and (min-height:360px){.eureka .eureka__drop-area-zone{display:-webkit-box;display:-ms-flexbox;display:flex}}.eureka .eureka__drop-area-zone svg{font-size:4em;fill:#ddd;fill:var(--very-subtle,#ddd);-webkit-transition:fill 240ms ease 160ms,opacity 240ms ease;transition:fill 240ms ease 160ms,opacity 240ms ease;opacity:.42;opacity:var(--very-subtle-icon-opacity,.42);max-height:100%}.eureka .eureka__drop-area-zone.eureka__drop-area-zone-active{background-color:#d9ecf6;border-color:#3697cd;border-color:var(--active,#3697cd);-webkit-transition:border-color 240ms ease 120ms,background-color 320ms ease 0;transition:border-color 240ms ease 120ms,background-color 320ms ease 0}.eureka .eureka__drop-area-zone.eureka__drop-area-zone-active svg{fill:#3697cd;fill:var(--active,#3697cd);opacity:1}.eureka .eureka__modal{z-index:100009;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eureka .eureka__modal .eureka__modal-scrim{background:rgba(8,8,8,.25);z-index:0}.eureka .eureka__modal .eureka__modal-panel{min-width:30vw;max-width:70vw;max-height:70vh;position:relative;z-index:99999}.eureka .eureka__modal .eureka__modal-panel h1:first-child,.eureka .eureka__modal .eureka__modal-panel h2:first-child,.eureka .eureka__modal .eureka__modal-panel h3:first-child{margin-top:0}.eureka .eureka__modal .eureka__modal-panel summary label{display:block;margin-bottom:8px;margin-bottom:.5rem}.eureka .eureka__modal .eureka__modal-panel summary label[for=eureka__crop-upload-file]{margin-bottom:0}.eureka .eureka__modal .eureka__modal-panel input[type=text]{width:100%;font-size:1.4em}.eureka .eureka__modal .eureka__modal-panel .eureka__button-bar{margin-top:8px;margin-top:.5rem}.eureka .eureka__modal .eureka__modal-panel .eureka__button-bar>*{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.eureka .eureka__modal.eureka__greedy .eureka__modal-panel{max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}@media screen and (max-width:640px){.eureka-root .eureka__sticky-bar{z-index:99999;position:-webkit-sticky;position:sticky;left:.5rem;right:.5rem;top:0}}.eureka-root .eureka__notification-wrapper{z-index:99999;margin-bottom:8px;margin-bottom:.5rem}@media screen and (min-width:641px){.eureka-root .eureka__notification-wrapper{margin-bottom:0}}.eureka-root .eureka__notification-wrapper button{display:inline;background:0 0;border:none;padding:0}.eureka-root .eureka__notification-wrapper button:focus,.eureka-root .eureka__notification-wrapper button:hover{background:0 0!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.eureka-root .eureka__notification-wrapper>*{display:block;margin-left:auto;margin-right:auto}@media screen and (min-width:641px){.eureka-root .eureka__notification-wrapper>*{display:inline-block}}.eureka-root .eureka__choose-radio{margin-bottom:16px;margin-bottom:1rem}@media screen and (min-width:641px){.eureka-root .eureka__choose-radio{margin-bottom:0;-webkit-transform:translateY(.3em);transform:translateY(.3em);z-index:0}}.eureka-root .eureka__choose-radio fieldset{border:none} \ No newline at end of file diff --git a/client/build/assets/img/icons.0.0.129.min.svg b/client/build/assets/img/icons.0.0.129.min.svg new file mode 100644 index 0000000..6587383 --- /dev/null +++ b/client/build/assets/img/icons.0.0.129.min.svg @@ -0,0 +1 @@ +arrow-downarrow-leftarrow-rightarrow-uparrows-harrows-varrowscaret-downcaret-leftcaret-rightcaret-square-o-downcaret-square-o-leftcaret-square-o-rightcaret-square-o-upcaret-upcheckcircle-o-notchcompresscropdownloadexclamation-circleexclamation-triangleexclamationexpandfile-archive-ofile-audio-ofile-code-ofile-excel-ofile-image-ofile-ofile-pdf-ofile-powerpoint-ofile-text-ofile-textfile-video-ofile-word-ofilefolder-ofolder-open-ofolder-openfolderinfo-circlelistmasonryplus-square-oplus-squaresearch-minussearch-plussort-alpha-ascsort-alpha-descsort-amount-ascsort-amount-descsort-ascsort-descsort-numeric-ascsort-numeric-descsortspinnersquare-osquaretableth-largeth-listtimestrash-otrashundoupload \ No newline at end of file diff --git a/client/build/assets/img/icons.0.0.129.svg b/client/build/assets/img/icons.0.0.129.svg new file mode 100644 index 0000000..cb32267 --- /dev/null +++ b/client/build/assets/img/icons.0.0.129.svg @@ -0,0 +1,333 @@ + + + arrow-down + + + + arrow-left + + + + arrow-right + + + + arrow-up + + + + arrows-h + + + + arrows-v + + + + arrows + + + + caret-down + + + + caret-left + + + + caret-right + + + + caret-square-o-down + + + + caret-square-o-left + + + + caret-square-o-right + + + + caret-square-o-up + + + + caret-up + + + + check + + + + circle-o-notch + + + + compress + + + + crop + + + + download + + + + exclamation-circle + + + + exclamation-triangle + + + + exclamation + + + + expand + + + + file-archive-o + + + + file-audio-o + + + + file-code-o + + + + file-excel-o + + + + file-image-o + + + + file-o + + + + file-pdf-o + + + + file-powerpoint-o + + + + file-text-o + + + + file-text + + + + file-video-o + + + + file-word-o + + + + file + + + + folder-o + + + + folder-open-o + + + + folder-open + + + + folder + + + + info-circle + + + + list + + + + masonry + + + + + + + + + plus-square-o + + + + plus-square + + + + search-minus + + + + search-plus + + + + sort-alpha-asc + + + + sort-alpha-desc + + + + sort-amount-asc + + + + sort-amount-desc + + + + sort-asc + + + + sort-desc + + + + sort-numeric-asc + + + + sort-numeric-desc + + + + sort + + + + spinner + + + + square-o + + + + square + + + + table + + + + th-large + + + + th-list + + + + times + + + + trash-o + + + + trash + + + + undo + + + + upload + + + \ No newline at end of file diff --git a/client/build/assets/img/select-arrow.svg b/client/build/assets/img/select-arrow.svg new file mode 100644 index 0000000..420275d --- /dev/null +++ b/client/build/assets/img/select-arrow.svg @@ -0,0 +1 @@ + diff --git a/client/build/assets/img/src/svg/arrow-down.svg b/client/build/assets/img/src/svg/arrow-down.svg new file mode 100644 index 0000000..1937562 --- /dev/null +++ b/client/build/assets/img/src/svg/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/arrow-left.svg b/client/build/assets/img/src/svg/arrow-left.svg new file mode 100644 index 0000000..64e59f8 --- /dev/null +++ b/client/build/assets/img/src/svg/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/arrow-right.svg b/client/build/assets/img/src/svg/arrow-right.svg new file mode 100644 index 0000000..4db606f --- /dev/null +++ b/client/build/assets/img/src/svg/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/arrow-up.svg b/client/build/assets/img/src/svg/arrow-up.svg new file mode 100644 index 0000000..a4f3927 --- /dev/null +++ b/client/build/assets/img/src/svg/arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/arrows-h.svg b/client/build/assets/img/src/svg/arrows-h.svg new file mode 100644 index 0000000..4fdbd33 --- /dev/null +++ b/client/build/assets/img/src/svg/arrows-h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/arrows-v.svg b/client/build/assets/img/src/svg/arrows-v.svg new file mode 100644 index 0000000..5c3e7b7 --- /dev/null +++ b/client/build/assets/img/src/svg/arrows-v.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/arrows.svg b/client/build/assets/img/src/svg/arrows.svg new file mode 100644 index 0000000..19f6ecb --- /dev/null +++ b/client/build/assets/img/src/svg/arrows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-down.svg b/client/build/assets/img/src/svg/caret-down.svg new file mode 100644 index 0000000..194ecb4 --- /dev/null +++ b/client/build/assets/img/src/svg/caret-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-left.svg b/client/build/assets/img/src/svg/caret-left.svg new file mode 100644 index 0000000..713c8db --- /dev/null +++ b/client/build/assets/img/src/svg/caret-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-right.svg b/client/build/assets/img/src/svg/caret-right.svg new file mode 100644 index 0000000..ec8109f --- /dev/null +++ b/client/build/assets/img/src/svg/caret-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-square-o-down.svg b/client/build/assets/img/src/svg/caret-square-o-down.svg new file mode 100644 index 0000000..28edc1c --- /dev/null +++ b/client/build/assets/img/src/svg/caret-square-o-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-square-o-left.svg b/client/build/assets/img/src/svg/caret-square-o-left.svg new file mode 100644 index 0000000..26bf130 --- /dev/null +++ b/client/build/assets/img/src/svg/caret-square-o-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-square-o-right.svg b/client/build/assets/img/src/svg/caret-square-o-right.svg new file mode 100644 index 0000000..eea5042 --- /dev/null +++ b/client/build/assets/img/src/svg/caret-square-o-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-square-o-up.svg b/client/build/assets/img/src/svg/caret-square-o-up.svg new file mode 100644 index 0000000..b143e73 --- /dev/null +++ b/client/build/assets/img/src/svg/caret-square-o-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/caret-up.svg b/client/build/assets/img/src/svg/caret-up.svg new file mode 100644 index 0000000..fe0e474 --- /dev/null +++ b/client/build/assets/img/src/svg/caret-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/check.svg b/client/build/assets/img/src/svg/check.svg new file mode 100644 index 0000000..a2973b2 --- /dev/null +++ b/client/build/assets/img/src/svg/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/circle-o-notch.svg b/client/build/assets/img/src/svg/circle-o-notch.svg new file mode 100644 index 0000000..a1789d3 --- /dev/null +++ b/client/build/assets/img/src/svg/circle-o-notch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/compress.svg b/client/build/assets/img/src/svg/compress.svg new file mode 100644 index 0000000..56587b4 --- /dev/null +++ b/client/build/assets/img/src/svg/compress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/crop.svg b/client/build/assets/img/src/svg/crop.svg new file mode 100644 index 0000000..2c32410 --- /dev/null +++ b/client/build/assets/img/src/svg/crop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/download.svg b/client/build/assets/img/src/svg/download.svg new file mode 100644 index 0000000..cb6a98d --- /dev/null +++ b/client/build/assets/img/src/svg/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/exclamation-circle.svg b/client/build/assets/img/src/svg/exclamation-circle.svg new file mode 100644 index 0000000..532aa9f --- /dev/null +++ b/client/build/assets/img/src/svg/exclamation-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/exclamation-triangle.svg b/client/build/assets/img/src/svg/exclamation-triangle.svg new file mode 100644 index 0000000..641ec2e --- /dev/null +++ b/client/build/assets/img/src/svg/exclamation-triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/exclamation.svg b/client/build/assets/img/src/svg/exclamation.svg new file mode 100644 index 0000000..e3e131b --- /dev/null +++ b/client/build/assets/img/src/svg/exclamation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/expand.svg b/client/build/assets/img/src/svg/expand.svg new file mode 100644 index 0000000..1008232 --- /dev/null +++ b/client/build/assets/img/src/svg/expand.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-archive-o.svg b/client/build/assets/img/src/svg/file-archive-o.svg new file mode 100644 index 0000000..7eadecc --- /dev/null +++ b/client/build/assets/img/src/svg/file-archive-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-audio-o.svg b/client/build/assets/img/src/svg/file-audio-o.svg new file mode 100644 index 0000000..67c9500 --- /dev/null +++ b/client/build/assets/img/src/svg/file-audio-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-code-o.svg b/client/build/assets/img/src/svg/file-code-o.svg new file mode 100644 index 0000000..c3e0aa2 --- /dev/null +++ b/client/build/assets/img/src/svg/file-code-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-excel-o.svg b/client/build/assets/img/src/svg/file-excel-o.svg new file mode 100644 index 0000000..4eb8589 --- /dev/null +++ b/client/build/assets/img/src/svg/file-excel-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-image-o.svg b/client/build/assets/img/src/svg/file-image-o.svg new file mode 100644 index 0000000..12fffff --- /dev/null +++ b/client/build/assets/img/src/svg/file-image-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-o.svg b/client/build/assets/img/src/svg/file-o.svg new file mode 100644 index 0000000..eff72ff --- /dev/null +++ b/client/build/assets/img/src/svg/file-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-pdf-o.svg b/client/build/assets/img/src/svg/file-pdf-o.svg new file mode 100644 index 0000000..fbc7535 --- /dev/null +++ b/client/build/assets/img/src/svg/file-pdf-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-powerpoint-o.svg b/client/build/assets/img/src/svg/file-powerpoint-o.svg new file mode 100644 index 0000000..a2574f0 --- /dev/null +++ b/client/build/assets/img/src/svg/file-powerpoint-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-text-o.svg b/client/build/assets/img/src/svg/file-text-o.svg new file mode 100644 index 0000000..f26f5b1 --- /dev/null +++ b/client/build/assets/img/src/svg/file-text-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-text.svg b/client/build/assets/img/src/svg/file-text.svg new file mode 100644 index 0000000..2bcba79 --- /dev/null +++ b/client/build/assets/img/src/svg/file-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-video-o.svg b/client/build/assets/img/src/svg/file-video-o.svg new file mode 100644 index 0000000..6754918 --- /dev/null +++ b/client/build/assets/img/src/svg/file-video-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file-word-o.svg b/client/build/assets/img/src/svg/file-word-o.svg new file mode 100644 index 0000000..2149464 --- /dev/null +++ b/client/build/assets/img/src/svg/file-word-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/file.svg b/client/build/assets/img/src/svg/file.svg new file mode 100644 index 0000000..5f3f439 --- /dev/null +++ b/client/build/assets/img/src/svg/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/folder-o.svg b/client/build/assets/img/src/svg/folder-o.svg new file mode 100644 index 0000000..1ea19cf --- /dev/null +++ b/client/build/assets/img/src/svg/folder-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/folder-open-o.svg b/client/build/assets/img/src/svg/folder-open-o.svg new file mode 100644 index 0000000..a869316 --- /dev/null +++ b/client/build/assets/img/src/svg/folder-open-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/folder-open.svg b/client/build/assets/img/src/svg/folder-open.svg new file mode 100644 index 0000000..9b2b830 --- /dev/null +++ b/client/build/assets/img/src/svg/folder-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/folder.svg b/client/build/assets/img/src/svg/folder.svg new file mode 100644 index 0000000..ff0efe6 --- /dev/null +++ b/client/build/assets/img/src/svg/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/info-circle.svg b/client/build/assets/img/src/svg/info-circle.svg new file mode 100644 index 0000000..4488ea1 --- /dev/null +++ b/client/build/assets/img/src/svg/info-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/list.svg b/client/build/assets/img/src/svg/list.svg new file mode 100644 index 0000000..1cf121a --- /dev/null +++ b/client/build/assets/img/src/svg/list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/masonry.svg b/client/build/assets/img/src/svg/masonry.svg new file mode 100644 index 0000000..ef6be14 --- /dev/null +++ b/client/build/assets/img/src/svg/masonry.svg @@ -0,0 +1,10 @@ + + masonry + + + + + + + + diff --git a/client/build/assets/img/src/svg/plus-square-o.svg b/client/build/assets/img/src/svg/plus-square-o.svg new file mode 100644 index 0000000..649b992 --- /dev/null +++ b/client/build/assets/img/src/svg/plus-square-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/plus-square.svg b/client/build/assets/img/src/svg/plus-square.svg new file mode 100644 index 0000000..070a125 --- /dev/null +++ b/client/build/assets/img/src/svg/plus-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/search-minus.svg b/client/build/assets/img/src/svg/search-minus.svg new file mode 100644 index 0000000..3ad217b --- /dev/null +++ b/client/build/assets/img/src/svg/search-minus.svg @@ -0,0 +1,5 @@ + + search-minus + + + diff --git a/client/build/assets/img/src/svg/search-plus.svg b/client/build/assets/img/src/svg/search-plus.svg new file mode 100644 index 0000000..f6a7d98 --- /dev/null +++ b/client/build/assets/img/src/svg/search-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-alpha-asc.svg b/client/build/assets/img/src/svg/sort-alpha-asc.svg new file mode 100644 index 0000000..80d318d --- /dev/null +++ b/client/build/assets/img/src/svg/sort-alpha-asc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-alpha-desc.svg b/client/build/assets/img/src/svg/sort-alpha-desc.svg new file mode 100644 index 0000000..64bda2e --- /dev/null +++ b/client/build/assets/img/src/svg/sort-alpha-desc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-amount-asc.svg b/client/build/assets/img/src/svg/sort-amount-asc.svg new file mode 100644 index 0000000..b183b36 --- /dev/null +++ b/client/build/assets/img/src/svg/sort-amount-asc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-amount-desc.svg b/client/build/assets/img/src/svg/sort-amount-desc.svg new file mode 100644 index 0000000..3f8c1f4 --- /dev/null +++ b/client/build/assets/img/src/svg/sort-amount-desc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-asc.svg b/client/build/assets/img/src/svg/sort-asc.svg new file mode 100644 index 0000000..38f79a5 --- /dev/null +++ b/client/build/assets/img/src/svg/sort-asc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-desc.svg b/client/build/assets/img/src/svg/sort-desc.svg new file mode 100644 index 0000000..998980f --- /dev/null +++ b/client/build/assets/img/src/svg/sort-desc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-numeric-asc.svg b/client/build/assets/img/src/svg/sort-numeric-asc.svg new file mode 100644 index 0000000..2168848 --- /dev/null +++ b/client/build/assets/img/src/svg/sort-numeric-asc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort-numeric-desc.svg b/client/build/assets/img/src/svg/sort-numeric-desc.svg new file mode 100644 index 0000000..ad38614 --- /dev/null +++ b/client/build/assets/img/src/svg/sort-numeric-desc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/sort.svg b/client/build/assets/img/src/svg/sort.svg new file mode 100644 index 0000000..505c65e --- /dev/null +++ b/client/build/assets/img/src/svg/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/spinner.svg b/client/build/assets/img/src/svg/spinner.svg new file mode 100644 index 0000000..af9b75b --- /dev/null +++ b/client/build/assets/img/src/svg/spinner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/square-o.svg b/client/build/assets/img/src/svg/square-o.svg new file mode 100644 index 0000000..956acbc --- /dev/null +++ b/client/build/assets/img/src/svg/square-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/square.svg b/client/build/assets/img/src/svg/square.svg new file mode 100644 index 0000000..7f012c7 --- /dev/null +++ b/client/build/assets/img/src/svg/square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/table.svg b/client/build/assets/img/src/svg/table.svg new file mode 100644 index 0000000..1894839 --- /dev/null +++ b/client/build/assets/img/src/svg/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/th-large.svg b/client/build/assets/img/src/svg/th-large.svg new file mode 100644 index 0000000..74a7c39 --- /dev/null +++ b/client/build/assets/img/src/svg/th-large.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/th-list.svg b/client/build/assets/img/src/svg/th-list.svg new file mode 100644 index 0000000..c0cc7c8 --- /dev/null +++ b/client/build/assets/img/src/svg/th-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/times.svg b/client/build/assets/img/src/svg/times.svg new file mode 100644 index 0000000..2c96303 --- /dev/null +++ b/client/build/assets/img/src/svg/times.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/trash-o.svg b/client/build/assets/img/src/svg/trash-o.svg new file mode 100644 index 0000000..45c047f --- /dev/null +++ b/client/build/assets/img/src/svg/trash-o.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/trash.svg b/client/build/assets/img/src/svg/trash.svg new file mode 100644 index 0000000..4c3f85d --- /dev/null +++ b/client/build/assets/img/src/svg/trash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/undo.svg b/client/build/assets/img/src/svg/undo.svg new file mode 100644 index 0000000..6aa896d --- /dev/null +++ b/client/build/assets/img/src/svg/undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/img/src/svg/upload.svg b/client/build/assets/img/src/svg/upload.svg new file mode 100644 index 0000000..36cfc41 --- /dev/null +++ b/client/build/assets/img/src/svg/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/cs.json b/client/build/assets/js/i18n/locales/cs.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/cs.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/de.json b/client/build/assets/js/i18n/locales/de.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/de.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/es.json b/client/build/assets/js/i18n/locales/es.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/es.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/fy.json b/client/build/assets/js/i18n/locales/fy.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/fy.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/it.json b/client/build/assets/js/i18n/locales/it.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/it.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/ja.json b/client/build/assets/js/i18n/locales/ja.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/ja.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/nl.json b/client/build/assets/js/i18n/locales/nl.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/nl.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/pl.json b/client/build/assets/js/i18n/locales/pl.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/pl.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/ru.json b/client/build/assets/js/i18n/locales/ru.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/ru.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/i18n/locales/sv.json b/client/build/assets/js/i18n/locales/sv.json new file mode 100644 index 0000000..851fcc4 --- /dev/null +++ b/client/build/assets/js/i18n/locales/sv.json @@ -0,0 +1,76 @@ +{ + "close.mediaBrowser":"Close Media Browser", + "choose":"Choose", + "item":"item", + "mediaItem":"media item", + "pluralItem":"a media item", + "rename.item":"Rename Item{item}", + "media":"Media", + "name":"Name", + "dimensions":"Dimensions", + "fileSize":"File Size", + "editedOn":"Edited On", + "search.tryAnother":"Try another search", + "search.noResults":"Uh oh. No results found for \"{filter}\"", + "grammar.or":"or", + "search.clearFilter":"clear the search filter", + "directory.appearsToBeEmpty":"Directory \"{cd}\" appears to be empty.", + "perhapsYouWouldLikeTo":"Perhaps you'd like to", + "upload.someFiles":"upload some files", + "grammar.to":"to", + "directory.set":"Set Directory", + "directory.browse":"Browse Directory", + "support.noVideo":"Your browser does not support the video tag.", + "support.noAudio":"Your browser does not support the audio tag.", + "select":"Select", + "media.contents":"Media Contents", + "grammar.a":"a", + "media.source":"Media Source", + "modal.closeWindow":"Close {title} Modal Window", + "cancel":"Cancel", + "directory.cancelCreating":"creating directory {cd}", + "create":"Create", + "directory":"directory", + "renamingItem":"renaming item {filename}", + "filter":"Filter", + "sortBy":"Sort by", + "upload.files":"Upload files", + "upload.dragFilesUploading":"Uploading files…", + "layout.fullscreenMode":"Fullscreen Mode", + "layout.table":"Table Layout", + "layout.thumb":"Thumbnail Layout", + "layout.grid":"Grid Layout", + "layout.list":"List Layout", + "media.browse":"Browse", + "directory.create":"Create a Directory", + "directory.createNewIn":"Create a new Directory in {cd}", + "mediaSourceTree":"Media Source Panel", + "close":"Close", + "open":"Open", + "rename":"Rename", + "delete":"Delete", + "in":"in", + "file.create":"Create File", + "contents.ofby":"contents of {cd} by filename, filesize, dimensions or even modification date", + "contents.filterBy":"Filter contents of {cd} by filename, filesize, dimensions or even modification date", + "file.quickCreate":"Quick Create Files", + "rename.cannot":"Cannot rename {filename} to the same name", + "expand":"Expand", + "choose.item":"Choose {filename}", + "directory.delete":"Delete Directory", + "delete.item":"Delete {filename}", + "download":"Download", + "download.item":"Download {filename}", + "expand.item":"Expand {filename}", + "directory.refresh":"Refresh Directory", + "upload.filesTo":"Upload File to {cd}", + "upload.createFileIn":"Create File in {cd}", + "context.performActions":"Perform Actions such as Expand or Choose on {filename}", + "directory.chmod":"chmod Directory", + "layout.tabular":"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns", + "layout.thumbnail":"Thumbnail layout displays a grid of medium sized thumbnails", + "file.openInNewTab":"Open {filename} in a new tab", + "toggle":"Toggle", + "media.sourceTree":"Media Source Panel", + "upload.dragFilestoUpload":"Drag files here to be uploaded to {cd}" +} \ No newline at end of file diff --git a/client/build/assets/js/stats.html b/client/build/assets/js/stats.html new file mode 100644 index 0000000..654eda7 --- /dev/null +++ b/client/build/assets/js/stats.html @@ -0,0 +1,208 @@ + + + Webpack Visualizer + +
+ + + \ No newline at end of file diff --git a/client/build/assets/js/vendor/masonry/masonry.pkgd.js b/client/build/assets/js/vendor/masonry/masonry.pkgd.js new file mode 100644 index 0000000..6803cb5 --- /dev/null +++ b/client/build/assets/js/vendor/masonry/masonry.pkgd.js @@ -0,0 +1,2499 @@ +/*! + * Masonry PACKAGED v4.2.0 + * Cascading grid layout library + * http://masonry.desandro.com + * MIT License + * by David DeSandro + */ + +/** + * Bridget makes jQuery widgets + * v2.0.1 + * MIT license + */ + +/* jshint browser: true, strict: true, undef: true, unused: true */ + +( function( window, factory ) { + // universal module definition + /*jshint strict: false */ /* globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) { + return factory( window, jQuery ); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + window, + require('jquery') + ); + } else { + // browser global + window.jQueryBridget = factory( + window, + window.jQuery + ); + } + +}( window, function factory( window, jQuery ) { +'use strict'; + +// ----- utils ----- // + +var arraySlice = Array.prototype.slice; + +// helper function for logging errors +// $.error breaks jQuery chaining +var console = window.console; +var logError = typeof console == 'undefined' ? function() {} : + function( message ) { + console.error( message ); + }; + +// ----- jQueryBridget ----- // + +function jQueryBridget( namespace, PluginClass, $ ) { + $ = $ || jQuery || window.jQuery; + if ( !$ ) { + return; + } + + // add option method -> $().plugin('option', {...}) + if ( !PluginClass.prototype.option ) { + // option setter + PluginClass.prototype.option = function( opts ) { + // bail out if not an object + if ( !$.isPlainObject( opts ) ){ + return; + } + this.options = $.extend( true, this.options, opts ); + }; + } + + // make jQuery plugin + $.fn[ namespace ] = function( arg0 /*, arg1 */ ) { + if ( typeof arg0 == 'string' ) { + // method call $().plugin( 'methodName', { options } ) + // shift arguments by 1 + var args = arraySlice.call( arguments, 1 ); + return methodCall( this, arg0, args ); + } + // just $().plugin({ options }) + plainCall( this, arg0 ); + return this; + }; + + // $().plugin('methodName') + function methodCall( $elems, methodName, args ) { + var returnValue; + var pluginMethodStr = '$().' + namespace + '("' + methodName + '")'; + + $elems.each( function( i, elem ) { + // get instance + var instance = $.data( elem, namespace ); + if ( !instance ) { + logError( namespace + ' not initialized. Cannot call methods, i.e. ' + + pluginMethodStr ); + return; + } + + var method = instance[ methodName ]; + if ( !method || methodName.charAt(0) == '_' ) { + logError( pluginMethodStr + ' is not a valid method' ); + return; + } + + // apply method, get return value + var value = method.apply( instance, args ); + // set return value if value is returned, use only first value + returnValue = returnValue === undefined ? value : returnValue; + }); + + return returnValue !== undefined ? returnValue : $elems; + } + + function plainCall( $elems, options ) { + $elems.each( function( i, elem ) { + var instance = $.data( elem, namespace ); + if ( instance ) { + // set options & init + instance.option( options ); + instance._init(); + } else { + // initialize new instance + instance = new PluginClass( elem, options ); + $.data( elem, namespace, instance ); + } + }); + } + + updateJQuery( $ ); + +} + +// ----- updateJQuery ----- // + +// set $.bridget for v1 backwards compatibility +function updateJQuery( $ ) { + if ( !$ || ( $ && $.bridget ) ) { + return; + } + $.bridget = jQueryBridget; +} + +updateJQuery( jQuery || window.jQuery ); + +// ----- ----- // + +return jQueryBridget; + +})); + +/** + * EvEmitter v1.0.3 + * Lil' event emitter + * MIT License + */ + +/* jshint unused: true, undef: true, strict: true */ + +( function( global, factory ) { + // universal module definition + /* jshint strict: false */ /* globals define, module, window */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'ev-emitter/ev-emitter',factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory(); + } else { + // Browser globals + global.EvEmitter = factory(); + } + +}( typeof window != 'undefined' ? window : this, function() { + + + +function EvEmitter() {} + +var proto = EvEmitter.prototype; + +proto.on = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // set events hash + var events = this._events = this._events || {}; + // set listeners array + var listeners = events[ eventName ] = events[ eventName ] || []; + // only add once + if ( listeners.indexOf( listener ) == -1 ) { + listeners.push( listener ); + } + + return this; +}; + +proto.once = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // add event + this.on( eventName, listener ); + // set once flag + // set onceEvents hash + var onceEvents = this._onceEvents = this._onceEvents || {}; + // set onceListeners object + var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; + // set flag + onceListeners[ listener ] = true; + + return this; +}; + +proto.off = function( eventName, listener ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + var index = listeners.indexOf( listener ); + if ( index != -1 ) { + listeners.splice( index, 1 ); + } + + return this; +}; + +proto.emitEvent = function( eventName, args ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + var i = 0; + var listener = listeners[i]; + args = args || []; + // once stuff + var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; + + while ( listener ) { + var isOnce = onceListeners && onceListeners[ listener ]; + if ( isOnce ) { + // remove listener + // remove before trigger to prevent recursion + this.off( eventName, listener ); + // unset once flag + delete onceListeners[ listener ]; + } + // trigger listener + listener.apply( this, args ); + // get next listener + i += isOnce ? 0 : 1; + listener = listeners[i]; + } + + return this; +}; + +return EvEmitter; + +})); + +/*! + * getSize v2.0.2 + * measure size of elements + * MIT license + */ + +/*jshint browser: true, strict: true, undef: true, unused: true */ +/*global define: false, module: false, console: false */ + +( function( window, factory ) { + 'use strict'; + + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'get-size/get-size',[],function() { + return factory(); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory(); + } else { + // browser global + window.getSize = factory(); + } + +})( window, function factory() { +'use strict'; + +// -------------------------- helpers -------------------------- // + +// get a number from a string, not a percentage +function getStyleSize( value ) { + var num = parseFloat( value ); + // not a percent like '100%', and a number + var isValid = value.indexOf('%') == -1 && !isNaN( num ); + return isValid && num; +} + +function noop() {} + +var logError = typeof console == 'undefined' ? noop : + function( message ) { + console.error( message ); + }; + +// -------------------------- measurements -------------------------- // + +var measurements = [ + 'paddingLeft', + 'paddingRight', + 'paddingTop', + 'paddingBottom', + 'marginLeft', + 'marginRight', + 'marginTop', + 'marginBottom', + 'borderLeftWidth', + 'borderRightWidth', + 'borderTopWidth', + 'borderBottomWidth' +]; + +var measurementsLength = measurements.length; + +function getZeroSize() { + var size = { + width: 0, + height: 0, + innerWidth: 0, + innerHeight: 0, + outerWidth: 0, + outerHeight: 0 + }; + for ( var i=0; i < measurementsLength; i++ ) { + var measurement = measurements[i]; + size[ measurement ] = 0; + } + return size; +} + +// -------------------------- getStyle -------------------------- // + +/** + * getStyle, get style of element, check for Firefox bug + * https://bugzilla.mozilla.org/show_bug.cgi?id=548397 + */ +function getStyle( elem ) { + var style = getComputedStyle( elem ); + if ( !style ) { + logError( 'Style returned ' + style + + '. Are you running this code in a hidden iframe on Firefox? ' + + 'See http://bit.ly/getsizebug1' ); + } + return style; +} + +// -------------------------- setup -------------------------- // + +var isSetup = false; + +var isBoxSizeOuter; + +/** + * setup + * check isBoxSizerOuter + * do on first getSize() rather than on page load for Firefox bug + */ +function setup() { + // setup once + if ( isSetup ) { + return; + } + isSetup = true; + + // -------------------------- box sizing -------------------------- // + + /** + * WebKit measures the outer-width on style.width on border-box elems + * IE & Firefox<29 measures the inner-width + */ + var div = document.createElement('div'); + div.style.width = '200px'; + div.style.padding = '1px 2px 3px 4px'; + div.style.borderStyle = 'solid'; + div.style.borderWidth = '1px 2px 3px 4px'; + div.style.boxSizing = 'border-box'; + + var body = document.body || document.documentElement; + body.appendChild( div ); + var style = getStyle( div ); + + getSize.isBoxSizeOuter = isBoxSizeOuter = getStyleSize( style.width ) == 200; + body.removeChild( div ); + +} + +// -------------------------- getSize -------------------------- // + +function getSize( elem ) { + setup(); + + // use querySeletor if elem is string + if ( typeof elem == 'string' ) { + elem = document.querySelector( elem ); + } + + // do not proceed on non-objects + if ( !elem || typeof elem != 'object' || !elem.nodeType ) { + return; + } + + var style = getStyle( elem ); + + // if hidden, everything is 0 + if ( style.display == 'none' ) { + return getZeroSize(); + } + + var size = {}; + size.width = elem.offsetWidth; + size.height = elem.offsetHeight; + + var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; + + // get all measurements + for ( var i=0; i < measurementsLength; i++ ) { + var measurement = measurements[i]; + var value = style[ measurement ]; + var num = parseFloat( value ); + // any 'auto', 'medium' value will be 0 + size[ measurement ] = !isNaN( num ) ? num : 0; + } + + var paddingWidth = size.paddingLeft + size.paddingRight; + var paddingHeight = size.paddingTop + size.paddingBottom; + var marginWidth = size.marginLeft + size.marginRight; + var marginHeight = size.marginTop + size.marginBottom; + var borderWidth = size.borderLeftWidth + size.borderRightWidth; + var borderHeight = size.borderTopWidth + size.borderBottomWidth; + + var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; + + // overwrite width and height if we can get it from style + var styleWidth = getStyleSize( style.width ); + if ( styleWidth !== false ) { + size.width = styleWidth + + // add padding and border unless it's already including it + ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth ); + } + + var styleHeight = getStyleSize( style.height ); + if ( styleHeight !== false ) { + size.height = styleHeight + + // add padding and border unless it's already including it + ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight ); + } + + size.innerWidth = size.width - ( paddingWidth + borderWidth ); + size.innerHeight = size.height - ( paddingHeight + borderHeight ); + + size.outerWidth = size.width + marginWidth; + size.outerHeight = size.height + marginHeight; + + return size; +} + +return getSize; + +}); + +/** + * matchesSelector v2.0.2 + * matchesSelector( element, '.selector' ) + * MIT license + */ + +/*jshint browser: true, strict: true, undef: true, unused: true */ + +( function( window, factory ) { + /*global define: false, module: false */ + 'use strict'; + // universal module definition + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'desandro-matches-selector/matches-selector',factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory(); + } else { + // browser global + window.matchesSelector = factory(); + } + +}( window, function factory() { + 'use strict'; + + var matchesMethod = ( function() { + var ElemProto = window.Element.prototype; + // check for the standard method name first + if ( ElemProto.matches ) { + return 'matches'; + } + // check un-prefixed + if ( ElemProto.matchesSelector ) { + return 'matchesSelector'; + } + // check vendor prefixes + var prefixes = [ 'webkit', 'moz', 'ms', 'o' ]; + + for ( var i=0; i < prefixes.length; i++ ) { + var prefix = prefixes[i]; + var method = prefix + 'MatchesSelector'; + if ( ElemProto[ method ] ) { + return method; + } + } + })(); + + return function matchesSelector( elem, selector ) { + return elem[ matchesMethod ]( selector ); + }; + +})); + +/** + * Fizzy UI utils v2.0.4 + * MIT license + */ + +/*jshint browser: true, undef: true, unused: true, strict: true */ + +( function( window, factory ) { + // universal module definition + /*jshint strict: false */ /*globals define, module, require */ + + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'fizzy-ui-utils/utils',[ + 'desandro-matches-selector/matches-selector' + ], function( matchesSelector ) { + return factory( window, matchesSelector ); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + window, + require('desandro-matches-selector') + ); + } else { + // browser global + window.fizzyUIUtils = factory( + window, + window.matchesSelector + ); + } + +}( window, function factory( window, matchesSelector ) { + + + +var utils = {}; + +// ----- extend ----- // + +// extends objects +utils.extend = function( a, b ) { + for ( var prop in b ) { + a[ prop ] = b[ prop ]; + } + return a; +}; + +// ----- modulo ----- // + +utils.modulo = function( num, div ) { + return ( ( num % div ) + div ) % div; +}; + +// ----- makeArray ----- // + +// turn element or nodeList into an array +utils.makeArray = function( obj ) { + var ary = []; + if ( Array.isArray( obj ) ) { + // use object if already an array + ary = obj; + } else if ( obj && typeof obj == 'object' && + typeof obj.length == 'number' ) { + // convert nodeList to array + for ( var i=0; i < obj.length; i++ ) { + ary.push( obj[i] ); + } + } else { + // array of single index + ary.push( obj ); + } + return ary; +}; + +// ----- removeFrom ----- // + +utils.removeFrom = function( ary, obj ) { + var index = ary.indexOf( obj ); + if ( index != -1 ) { + ary.splice( index, 1 ); + } +}; + +// ----- getParent ----- // + +utils.getParent = function( elem, selector ) { + while ( elem != document.body ) { + elem = elem.parentNode; + if ( matchesSelector( elem, selector ) ) { + return elem; + } + } +}; + +// ----- getQueryElement ----- // + +// use element as selector string +utils.getQueryElement = function( elem ) { + if ( typeof elem == 'string' ) { + return document.querySelector( elem ); + } + return elem; +}; + +// ----- handleEvent ----- // + +// enable .ontype to trigger from .addEventListener( elem, 'type' ) +utils.handleEvent = function( event ) { + var method = 'on' + event.type; + if ( this[ method ] ) { + this[ method ]( event ); + } +}; + +// ----- filterFindElements ----- // + +utils.filterFindElements = function( elems, selector ) { + // make array of elems + elems = utils.makeArray( elems ); + var ffElems = []; + + elems.forEach( function( elem ) { + // check that elem is an actual element + if ( !( elem instanceof HTMLElement ) ) { + return; + } + // add elem if no selector + if ( !selector ) { + ffElems.push( elem ); + return; + } + // filter & find items if we have a selector + // filter + if ( matchesSelector( elem, selector ) ) { + ffElems.push( elem ); + } + // find children + var childElems = elem.querySelectorAll( selector ); + // concat childElems to filterFound array + for ( var i=0; i < childElems.length; i++ ) { + ffElems.push( childElems[i] ); + } + }); + + return ffElems; +}; + +// ----- debounceMethod ----- // + +utils.debounceMethod = function( _class, methodName, threshold ) { + // original method + var method = _class.prototype[ methodName ]; + var timeoutName = methodName + 'Timeout'; + + _class.prototype[ methodName ] = function() { + var timeout = this[ timeoutName ]; + if ( timeout ) { + clearTimeout( timeout ); + } + var args = arguments; + + var _this = this; + this[ timeoutName ] = setTimeout( function() { + method.apply( _this, args ); + delete _this[ timeoutName ]; + }, threshold || 100 ); + }; +}; + +// ----- docReady ----- // + +utils.docReady = function( callback ) { + var readyState = document.readyState; + if ( readyState == 'complete' || readyState == 'interactive' ) { + // do async to allow for other scripts to run. metafizzy/flickity#441 + setTimeout( callback ); + } else { + document.addEventListener( 'DOMContentLoaded', callback ); + } +}; + +// ----- htmlInit ----- // + +// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/ +utils.toDashed = function( str ) { + return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) { + return $1 + '-' + $2; + }).toLowerCase(); +}; + +var console = window.console; +/** + * allow user to initialize classes via [data-namespace] or .js-namespace class + * htmlInit( Widget, 'widgetName' ) + * options are parsed from data-namespace-options + */ +utils.htmlInit = function( WidgetClass, namespace ) { + utils.docReady( function() { + var dashedNamespace = utils.toDashed( namespace ); + var dataAttr = 'data-' + dashedNamespace; + var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' ); + var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace ); + var elems = utils.makeArray( dataAttrElems ) + .concat( utils.makeArray( jsDashElems ) ); + var dataOptionsAttr = dataAttr + '-options'; + var jQuery = window.jQuery; + + elems.forEach( function( elem ) { + var attr = elem.getAttribute( dataAttr ) || + elem.getAttribute( dataOptionsAttr ); + var options; + try { + options = attr && JSON.parse( attr ); + } catch ( error ) { + // log error, do not initialize + if ( console ) { + console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className + + ': ' + error ); + } + return; + } + // initialize + var instance = new WidgetClass( elem, options ); + // make available via $().data('namespace') + if ( jQuery ) { + jQuery.data( elem, namespace, instance ); + } + }); + + }); +}; + +// ----- ----- // + +return utils; + +})); + +/** + * Outlayer Item + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /* globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'outlayer/item',[ + 'ev-emitter/ev-emitter', + 'get-size/get-size' + ], + factory + ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory( + require('ev-emitter'), + require('get-size') + ); + } else { + // browser global + window.Outlayer = {}; + window.Outlayer.Item = factory( + window.EvEmitter, + window.getSize + ); + } + +}( window, function factory( EvEmitter, getSize ) { +'use strict'; + +// ----- helpers ----- // + +function isEmptyObj( obj ) { + for ( var prop in obj ) { + return false; + } + prop = null; + return true; +} + +// -------------------------- CSS3 support -------------------------- // + + +var docElemStyle = document.documentElement.style; + +var transitionProperty = typeof docElemStyle.transition == 'string' ? + 'transition' : 'WebkitTransition'; +var transformProperty = typeof docElemStyle.transform == 'string' ? + 'transform' : 'WebkitTransform'; + +var transitionEndEvent = { + WebkitTransition: 'webkitTransitionEnd', + transition: 'transitionend' +}[ transitionProperty ]; + +// cache all vendor properties that could have vendor prefix +var vendorProperties = { + transform: transformProperty, + transition: transitionProperty, + transitionDuration: transitionProperty + 'Duration', + transitionProperty: transitionProperty + 'Property', + transitionDelay: transitionProperty + 'Delay' +}; + +// -------------------------- Item -------------------------- // + +function Item( element, layout ) { + if ( !element ) { + return; + } + + this.element = element; + // parent layout class, i.e. Masonry, Isotope, or Packery + this.layout = layout; + this.position = { + x: 0, + y: 0 + }; + + this._create(); +} + +// inherit EvEmitter +var proto = Item.prototype = Object.create( EvEmitter.prototype ); +proto.constructor = Item; + +proto._create = function() { + // transition objects + this._transn = { + ingProperties: {}, + clean: {}, + onEnd: {} + }; + + this.css({ + position: 'absolute' + }); +}; + +// trigger specified handler for event type +proto.handleEvent = function( event ) { + var method = 'on' + event.type; + if ( this[ method ] ) { + this[ method ]( event ); + } +}; + +proto.getSize = function() { + this.size = getSize( this.element ); +}; + +/** + * apply CSS styles to element + * @param {Object} style + */ +proto.css = function( style ) { + var elemStyle = this.element.style; + + for ( var prop in style ) { + // use vendor property if available + var supportedProp = vendorProperties[ prop ] || prop; + elemStyle[ supportedProp ] = style[ prop ]; + } +}; + + // measure position, and sets it +proto.getPosition = function() { + var style = getComputedStyle( this.element ); + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + var xValue = style[ isOriginLeft ? 'left' : 'right' ]; + var yValue = style[ isOriginTop ? 'top' : 'bottom' ]; + // convert percent to pixels + var layoutSize = this.layout.size; + var x = xValue.indexOf('%') != -1 ? + ( parseFloat( xValue ) / 100 ) * layoutSize.width : parseInt( xValue, 10 ); + var y = yValue.indexOf('%') != -1 ? + ( parseFloat( yValue ) / 100 ) * layoutSize.height : parseInt( yValue, 10 ); + + // clean up 'auto' or other non-integer values + x = isNaN( x ) ? 0 : x; + y = isNaN( y ) ? 0 : y; + // remove padding from measurement + x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight; + y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom; + + this.position.x = x; + this.position.y = y; +}; + +// set settled position, apply padding +proto.layoutPosition = function() { + var layoutSize = this.layout.size; + var style = {}; + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + + // x + var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight'; + var xProperty = isOriginLeft ? 'left' : 'right'; + var xResetProperty = isOriginLeft ? 'right' : 'left'; + + var x = this.position.x + layoutSize[ xPadding ]; + // set in percentage or pixels + style[ xProperty ] = this.getXValue( x ); + // reset other property + style[ xResetProperty ] = ''; + + // y + var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom'; + var yProperty = isOriginTop ? 'top' : 'bottom'; + var yResetProperty = isOriginTop ? 'bottom' : 'top'; + + var y = this.position.y + layoutSize[ yPadding ]; + // set in percentage or pixels + style[ yProperty ] = this.getYValue( y ); + // reset other property + style[ yResetProperty ] = ''; + + this.css( style ); + this.emitEvent( 'layout', [ this ] ); +}; + +proto.getXValue = function( x ) { + var isHorizontal = this.layout._getOption('horizontal'); + return this.layout.options.percentPosition && !isHorizontal ? + ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px'; +}; + +proto.getYValue = function( y ) { + var isHorizontal = this.layout._getOption('horizontal'); + return this.layout.options.percentPosition && isHorizontal ? + ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px'; +}; + +proto._transitionTo = function( x, y ) { + this.getPosition(); + // get current x & y from top/left + var curX = this.position.x; + var curY = this.position.y; + + var compareX = parseInt( x, 10 ); + var compareY = parseInt( y, 10 ); + var didNotMove = compareX === this.position.x && compareY === this.position.y; + + // save end position + this.setPosition( x, y ); + + // if did not move and not transitioning, just go to layout + if ( didNotMove && !this.isTransitioning ) { + this.layoutPosition(); + return; + } + + var transX = x - curX; + var transY = y - curY; + var transitionStyle = {}; + transitionStyle.transform = this.getTranslate( transX, transY ); + + this.transition({ + to: transitionStyle, + onTransitionEnd: { + transform: this.layoutPosition + }, + isCleaning: true + }); +}; + +proto.getTranslate = function( x, y ) { + // flip cooridinates if origin on right or bottom + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + x = isOriginLeft ? x : -x; + y = isOriginTop ? y : -y; + return 'translate3d(' + x + 'px, ' + y + 'px, 0)'; +}; + +// non transition + transform support +proto.goTo = function( x, y ) { + this.setPosition( x, y ); + this.layoutPosition(); +}; + +proto.moveTo = proto._transitionTo; + +proto.setPosition = function( x, y ) { + this.position.x = parseInt( x, 10 ); + this.position.y = parseInt( y, 10 ); +}; + +// ----- transition ----- // + +/** + * @param {Object} style - CSS + * @param {Function} onTransitionEnd + */ + +// non transition, just trigger callback +proto._nonTransition = function( args ) { + this.css( args.to ); + if ( args.isCleaning ) { + this._removeStyles( args.to ); + } + for ( var prop in args.onTransitionEnd ) { + args.onTransitionEnd[ prop ].call( this ); + } +}; + +/** + * proper transition + * @param {Object} args - arguments + * @param {Object} to - style to transition to + * @param {Object} from - style to start transition from + * @param {Boolean} isCleaning - removes transition styles after transition + * @param {Function} onTransitionEnd - callback + */ +proto.transition = function( args ) { + // redirect to nonTransition if no transition duration + if ( !parseFloat( this.layout.options.transitionDuration ) ) { + this._nonTransition( args ); + return; + } + + var _transition = this._transn; + // keep track of onTransitionEnd callback by css property + for ( var prop in args.onTransitionEnd ) { + _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ]; + } + // keep track of properties that are transitioning + for ( prop in args.to ) { + _transition.ingProperties[ prop ] = true; + // keep track of properties to clean up when transition is done + if ( args.isCleaning ) { + _transition.clean[ prop ] = true; + } + } + + // set from styles + if ( args.from ) { + this.css( args.from ); + // force redraw. http://blog.alexmaccaw.com/css-transitions + var h = this.element.offsetHeight; + // hack for JSHint to hush about unused var + h = null; + } + // enable transition + this.enableTransition( args.to ); + // set styles that are transitioning + this.css( args.to ); + + this.isTransitioning = true; + +}; + +// dash before all cap letters, including first for +// WebkitTransform => -webkit-transform +function toDashedAll( str ) { + return str.replace( /([A-Z])/g, function( $1 ) { + return '-' + $1.toLowerCase(); + }); +} + +var transitionProps = 'opacity,' + toDashedAll( transformProperty ); + +proto.enableTransition = function(/* style */) { + // HACK changing transitionProperty during a transition + // will cause transition to jump + if ( this.isTransitioning ) { + return; + } + + // make `transition: foo, bar, baz` from style object + // HACK un-comment this when enableTransition can work + // while a transition is happening + // var transitionValues = []; + // for ( var prop in style ) { + // // dash-ify camelCased properties like WebkitTransition + // prop = vendorProperties[ prop ] || prop; + // transitionValues.push( toDashedAll( prop ) ); + // } + // munge number to millisecond, to match stagger + var duration = this.layout.options.transitionDuration; + duration = typeof duration == 'number' ? duration + 'ms' : duration; + // enable transition styles + this.css({ + transitionProperty: transitionProps, + transitionDuration: duration, + transitionDelay: this.staggerDelay || 0 + }); + // listen for transition end event + this.element.addEventListener( transitionEndEvent, this, false ); +}; + +// ----- events ----- // + +proto.onwebkitTransitionEnd = function( event ) { + this.ontransitionend( event ); +}; + +proto.onotransitionend = function( event ) { + this.ontransitionend( event ); +}; + +// properties that I munge to make my life easier +var dashedVendorProperties = { + '-webkit-transform': 'transform' +}; + +proto.ontransitionend = function( event ) { + // disregard bubbled events from children + if ( event.target !== this.element ) { + return; + } + var _transition = this._transn; + // get property name of transitioned property, convert to prefix-free + var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName; + + // remove property that has completed transitioning + delete _transition.ingProperties[ propertyName ]; + // check if any properties are still transitioning + if ( isEmptyObj( _transition.ingProperties ) ) { + // all properties have completed transitioning + this.disableTransition(); + } + // clean style + if ( propertyName in _transition.clean ) { + // clean up style + this.element.style[ event.propertyName ] = ''; + delete _transition.clean[ propertyName ]; + } + // trigger onTransitionEnd callback + if ( propertyName in _transition.onEnd ) { + var onTransitionEnd = _transition.onEnd[ propertyName ]; + onTransitionEnd.call( this ); + delete _transition.onEnd[ propertyName ]; + } + + this.emitEvent( 'transitionEnd', [ this ] ); +}; + +proto.disableTransition = function() { + this.removeTransitionStyles(); + this.element.removeEventListener( transitionEndEvent, this, false ); + this.isTransitioning = false; +}; + +/** + * removes style property from element + * @param {Object} style +**/ +proto._removeStyles = function( style ) { + // clean up transition styles + var cleanStyle = {}; + for ( var prop in style ) { + cleanStyle[ prop ] = ''; + } + this.css( cleanStyle ); +}; + +var cleanTransitionStyle = { + transitionProperty: '', + transitionDuration: '', + transitionDelay: '' +}; + +proto.removeTransitionStyles = function() { + // remove transition + this.css( cleanTransitionStyle ); +}; + +// ----- stagger ----- // + +proto.stagger = function( delay ) { + delay = isNaN( delay ) ? 0 : delay; + this.staggerDelay = delay + 'ms'; +}; + +// ----- show/hide/remove ----- // + +// remove element from DOM +proto.removeElem = function() { + this.element.parentNode.removeChild( this.element ); + // remove display: none + this.css({ display: '' }); + this.emitEvent( 'remove', [ this ] ); +}; + +proto.remove = function() { + // just remove element if no transition support or no transition + if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) { + this.removeElem(); + return; + } + + // start transition + this.once( 'transitionEnd', function() { + this.removeElem(); + }); + this.hide(); +}; + +proto.reveal = function() { + delete this.isHidden; + // remove display: none + this.css({ display: '' }); + + var options = this.layout.options; + + var onTransitionEnd = {}; + var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle'); + onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd; + + this.transition({ + from: options.hiddenStyle, + to: options.visibleStyle, + isCleaning: true, + onTransitionEnd: onTransitionEnd + }); +}; + +proto.onRevealTransitionEnd = function() { + // check if still visible + // during transition, item may have been hidden + if ( !this.isHidden ) { + this.emitEvent('reveal'); + } +}; + +/** + * get style property use for hide/reveal transition end + * @param {String} styleProperty - hiddenStyle/visibleStyle + * @returns {String} + */ +proto.getHideRevealTransitionEndProperty = function( styleProperty ) { + var optionStyle = this.layout.options[ styleProperty ]; + // use opacity + if ( optionStyle.opacity ) { + return 'opacity'; + } + // get first property + for ( var prop in optionStyle ) { + return prop; + } +}; + +proto.hide = function() { + // set flag + this.isHidden = true; + // remove display: none + this.css({ display: '' }); + + var options = this.layout.options; + + var onTransitionEnd = {}; + var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle'); + onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd; + + this.transition({ + from: options.visibleStyle, + to: options.hiddenStyle, + // keep hidden stuff hidden + isCleaning: true, + onTransitionEnd: onTransitionEnd + }); +}; + +proto.onHideTransitionEnd = function() { + // check if still hidden + // during transition, item may have been un-hidden + if ( this.isHidden ) { + this.css({ display: 'none' }); + this.emitEvent('hide'); + } +}; + +proto.destroy = function() { + this.css({ + position: '', + left: '', + right: '', + top: '', + bottom: '', + transition: '', + transform: '' + }); +}; + +return Item; + +})); + +/*! + * Outlayer v2.1.0 + * the brains and guts of a layout library + * MIT license + */ + +( function( window, factory ) { + 'use strict'; + // universal module definition + /* jshint strict: false */ /* globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'outlayer/outlayer',[ + 'ev-emitter/ev-emitter', + 'get-size/get-size', + 'fizzy-ui-utils/utils', + './item' + ], + function( EvEmitter, getSize, utils, Item ) { + return factory( window, EvEmitter, getSize, utils, Item); + } + ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory( + window, + require('ev-emitter'), + require('get-size'), + require('fizzy-ui-utils'), + require('./item') + ); + } else { + // browser global + window.Outlayer = factory( + window, + window.EvEmitter, + window.getSize, + window.fizzyUIUtils, + window.Outlayer.Item + ); + } + +}( window, function factory( window, EvEmitter, getSize, utils, Item ) { +'use strict'; + +// ----- vars ----- // + +var console = window.console; +var jQuery = window.jQuery; +var noop = function() {}; + +// -------------------------- Outlayer -------------------------- // + +// globally unique identifiers +var GUID = 0; +// internal store of all Outlayer intances +var instances = {}; + + +/** + * @param {Element, String} element + * @param {Object} options + * @constructor + */ +function Outlayer( element, options ) { + var queryElement = utils.getQueryElement( element ); + if ( !queryElement ) { + if ( console ) { + console.error( 'Bad element for ' + this.constructor.namespace + + ': ' + ( queryElement || element ) ); + } + return; + } + this.element = queryElement; + // add jQuery + if ( jQuery ) { + this.$element = jQuery( this.element ); + } + + // options + this.options = utils.extend( {}, this.constructor.defaults ); + this.option( options ); + + // add id for Outlayer.getFromElement + var id = ++GUID; + this.element.outlayerGUID = id; // expando + instances[ id ] = this; // associate via id + + // kick it off + this._create(); + + var isInitLayout = this._getOption('initLayout'); + if ( isInitLayout ) { + this.layout(); + } +} + +// settings are for internal use only +Outlayer.namespace = 'outlayer'; +Outlayer.Item = Item; + +// default options +Outlayer.defaults = { + containerStyle: { + position: 'relative' + }, + initLayout: true, + originLeft: true, + originTop: true, + resize: true, + resizeContainer: true, + // item options + transitionDuration: '0.4s', + hiddenStyle: { + opacity: 0, + transform: 'scale(0.001)' + }, + visibleStyle: { + opacity: 1, + transform: 'scale(1)' + } +}; + +var proto = Outlayer.prototype; +// inherit EvEmitter +utils.extend( proto, EvEmitter.prototype ); + +/** + * set options + * @param {Object} opts + */ +proto.option = function( opts ) { + utils.extend( this.options, opts ); +}; + +/** + * get backwards compatible option value, check old name + */ +proto._getOption = function( option ) { + var oldOption = this.constructor.compatOptions[ option ]; + return oldOption && this.options[ oldOption ] !== undefined ? + this.options[ oldOption ] : this.options[ option ]; +}; + +Outlayer.compatOptions = { + // currentName: oldName + initLayout: 'isInitLayout', + horizontal: 'isHorizontal', + layoutInstant: 'isLayoutInstant', + originLeft: 'isOriginLeft', + originTop: 'isOriginTop', + resize: 'isResizeBound', + resizeContainer: 'isResizingContainer' +}; + +proto._create = function() { + // get items from children + this.reloadItems(); + // elements that affect layout, but are not laid out + this.stamps = []; + this.stamp( this.options.stamp ); + // set container style + utils.extend( this.element.style, this.options.containerStyle ); + + // bind resize method + var canBindResize = this._getOption('resize'); + if ( canBindResize ) { + this.bindResize(); + } +}; + +// goes through all children again and gets bricks in proper order +proto.reloadItems = function() { + // collection of item elements + this.items = this._itemize( this.element.children ); +}; + + +/** + * turn elements into Outlayer.Items to be used in layout + * @param {Array or NodeList or HTMLElement} elems + * @returns {Array} items - collection of new Outlayer Items + */ +proto._itemize = function( elems ) { + + var itemElems = this._filterFindItemElements( elems ); + var Item = this.constructor.Item; + + // create new Outlayer Items for collection + var items = []; + for ( var i=0; i < itemElems.length; i++ ) { + var elem = itemElems[i]; + var item = new Item( elem, this ); + items.push( item ); + } + + return items; +}; + +/** + * get item elements to be used in layout + * @param {Array or NodeList or HTMLElement} elems + * @returns {Array} items - item elements + */ +proto._filterFindItemElements = function( elems ) { + return utils.filterFindElements( elems, this.options.itemSelector ); +}; + +/** + * getter method for getting item elements + * @returns {Array} elems - collection of item elements + */ +proto.getItemElements = function() { + return this.items.map( function( item ) { + return item.element; + }); +}; + +// ----- init & layout ----- // + +/** + * lays out all items + */ +proto.layout = function() { + this._resetLayout(); + this._manageStamps(); + + // don't animate first layout + var layoutInstant = this._getOption('layoutInstant'); + var isInstant = layoutInstant !== undefined ? + layoutInstant : !this._isLayoutInited; + this.layoutItems( this.items, isInstant ); + + // flag for initalized + this._isLayoutInited = true; +}; + +// _init is alias for layout +proto._init = proto.layout; + +/** + * logic before any new layout + */ +proto._resetLayout = function() { + this.getSize(); +}; + + +proto.getSize = function() { + this.size = getSize( this.element ); +}; + +/** + * get measurement from option, for columnWidth, rowHeight, gutter + * if option is String -> get element from selector string, & get size of element + * if option is Element -> get size of element + * else use option as a number + * + * @param {String} measurement + * @param {String} size - width or height + * @private + */ +proto._getMeasurement = function( measurement, size ) { + var option = this.options[ measurement ]; + var elem; + if ( !option ) { + // default to 0 + this[ measurement ] = 0; + } else { + // use option as an element + if ( typeof option == 'string' ) { + elem = this.element.querySelector( option ); + } else if ( option instanceof HTMLElement ) { + elem = option; + } + // use size of element, if element + this[ measurement ] = elem ? getSize( elem )[ size ] : option; + } +}; + +/** + * layout a collection of item elements + * @api public + */ +proto.layoutItems = function( items, isInstant ) { + items = this._getItemsForLayout( items ); + + this._layoutItems( items, isInstant ); + + this._postLayout(); +}; + +/** + * get the items to be laid out + * you may want to skip over some items + * @param {Array} items + * @returns {Array} items + */ +proto._getItemsForLayout = function( items ) { + return items.filter( function( item ) { + return !item.isIgnored; + }); +}; + +/** + * layout items + * @param {Array} items + * @param {Boolean} isInstant + */ +proto._layoutItems = function( items, isInstant ) { + this._emitCompleteOnItems( 'layout', items ); + + if ( !items || !items.length ) { + // no items, emit event with empty array + return; + } + + var queue = []; + + items.forEach( function( item ) { + // get x/y object from method + var position = this._getItemLayoutPosition( item ); + // enqueue + position.item = item; + position.isInstant = isInstant || item.isLayoutInstant; + queue.push( position ); + }, this ); + + this._processLayoutQueue( queue ); +}; + +/** + * get item layout position + * @param {Outlayer.Item} item + * @returns {Object} x and y position + */ +proto._getItemLayoutPosition = function( /* item */ ) { + return { + x: 0, + y: 0 + }; +}; + +/** + * iterate over array and position each item + * Reason being - separating this logic prevents 'layout invalidation' + * thx @paul_irish + * @param {Array} queue + */ +proto._processLayoutQueue = function( queue ) { + this.updateStagger(); + queue.forEach( function( obj, i ) { + this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i ); + }, this ); +}; + +// set stagger from option in milliseconds number +proto.updateStagger = function() { + var stagger = this.options.stagger; + if ( stagger === null || stagger === undefined ) { + this.stagger = 0; + return; + } + this.stagger = getMilliseconds( stagger ); + return this.stagger; +}; + +/** + * Sets position of item in DOM + * @param {Outlayer.Item} item + * @param {Number} x - horizontal position + * @param {Number} y - vertical position + * @param {Boolean} isInstant - disables transitions + */ +proto._positionItem = function( item, x, y, isInstant, i ) { + if ( isInstant ) { + // if not transition, just set CSS + item.goTo( x, y ); + } else { + item.stagger( i * this.stagger ); + item.moveTo( x, y ); + } +}; + +/** + * Any logic you want to do after each layout, + * i.e. size the container + */ +proto._postLayout = function() { + this.resizeContainer(); +}; + +proto.resizeContainer = function() { + var isResizingContainer = this._getOption('resizeContainer'); + if ( !isResizingContainer ) { + return; + } + var size = this._getContainerSize(); + if ( size ) { + this._setContainerMeasure( size.width, true ); + this._setContainerMeasure( size.height, false ); + } +}; + +/** + * Sets width or height of container if returned + * @returns {Object} size + * @param {Number} width + * @param {Number} height + */ +proto._getContainerSize = noop; + +/** + * @param {Number} measure - size of width or height + * @param {Boolean} isWidth + */ +proto._setContainerMeasure = function( measure, isWidth ) { + if ( measure === undefined ) { + return; + } + + var elemSize = this.size; + // add padding and border width if border box + if ( elemSize.isBorderBox ) { + measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + + elemSize.borderLeftWidth + elemSize.borderRightWidth : + elemSize.paddingBottom + elemSize.paddingTop + + elemSize.borderTopWidth + elemSize.borderBottomWidth; + } + + measure = Math.max( measure, 0 ); + this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px'; +}; + +/** + * emit eventComplete on a collection of items events + * @param {String} eventName + * @param {Array} items - Outlayer.Items + */ +proto._emitCompleteOnItems = function( eventName, items ) { + var _this = this; + function onComplete() { + _this.dispatchEvent( eventName + 'Complete', null, [ items ] ); + } + + var count = items.length; + if ( !items || !count ) { + onComplete(); + return; + } + + var doneCount = 0; + function tick() { + doneCount++; + if ( doneCount == count ) { + onComplete(); + } + } + + // bind callback + items.forEach( function( item ) { + item.once( eventName, tick ); + }); +}; + +/** + * emits events via EvEmitter and jQuery events + * @param {String} type - name of event + * @param {Event} event - original event + * @param {Array} args - extra arguments + */ +proto.dispatchEvent = function( type, event, args ) { + // add original event to arguments + var emitArgs = event ? [ event ].concat( args ) : args; + this.emitEvent( type, emitArgs ); + + if ( jQuery ) { + // set this.$element + this.$element = this.$element || jQuery( this.element ); + if ( event ) { + // create jQuery event + var $event = jQuery.Event( event ); + $event.type = type; + this.$element.trigger( $event, args ); + } else { + // just trigger with type if no event available + this.$element.trigger( type, args ); + } + } +}; + +// -------------------------- ignore & stamps -------------------------- // + + +/** + * keep item in collection, but do not lay it out + * ignored items do not get skipped in layout + * @param {Element} elem + */ +proto.ignore = function( elem ) { + var item = this.getItem( elem ); + if ( item ) { + item.isIgnored = true; + } +}; + +/** + * return item to layout collection + * @param {Element} elem + */ +proto.unignore = function( elem ) { + var item = this.getItem( elem ); + if ( item ) { + delete item.isIgnored; + } +}; + +/** + * adds elements to stamps + * @param {NodeList, Array, Element, or String} elems + */ +proto.stamp = function( elems ) { + elems = this._find( elems ); + if ( !elems ) { + return; + } + + this.stamps = this.stamps.concat( elems ); + // ignore + elems.forEach( this.ignore, this ); +}; + +/** + * removes elements to stamps + * @param {NodeList, Array, or Element} elems + */ +proto.unstamp = function( elems ) { + elems = this._find( elems ); + if ( !elems ){ + return; + } + + elems.forEach( function( elem ) { + // filter out removed stamp elements + utils.removeFrom( this.stamps, elem ); + this.unignore( elem ); + }, this ); +}; + +/** + * finds child elements + * @param {NodeList, Array, Element, or String} elems + * @returns {Array} elems + */ +proto._find = function( elems ) { + if ( !elems ) { + return; + } + // if string, use argument as selector string + if ( typeof elems == 'string' ) { + elems = this.element.querySelectorAll( elems ); + } + elems = utils.makeArray( elems ); + return elems; +}; + +proto._manageStamps = function() { + if ( !this.stamps || !this.stamps.length ) { + return; + } + + this._getBoundingRect(); + + this.stamps.forEach( this._manageStamp, this ); +}; + +// update boundingLeft / Top +proto._getBoundingRect = function() { + // get bounding rect for container element + var boundingRect = this.element.getBoundingClientRect(); + var size = this.size; + this._boundingRect = { + left: boundingRect.left + size.paddingLeft + size.borderLeftWidth, + top: boundingRect.top + size.paddingTop + size.borderTopWidth, + right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ), + bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth ) + }; +}; + +/** + * @param {Element} stamp +**/ +proto._manageStamp = noop; + +/** + * get x/y position of element relative to container element + * @param {Element} elem + * @returns {Object} offset - has left, top, right, bottom + */ +proto._getElementOffset = function( elem ) { + var boundingRect = elem.getBoundingClientRect(); + var thisRect = this._boundingRect; + var size = getSize( elem ); + var offset = { + left: boundingRect.left - thisRect.left - size.marginLeft, + top: boundingRect.top - thisRect.top - size.marginTop, + right: thisRect.right - boundingRect.right - size.marginRight, + bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom + }; + return offset; +}; + +// -------------------------- resize -------------------------- // + +// enable event handlers for listeners +// i.e. resize -> onresize +proto.handleEvent = utils.handleEvent; + +/** + * Bind layout to window resizing + */ +proto.bindResize = function() { + window.addEventListener( 'resize', this ); + this.isResizeBound = true; +}; + +/** + * Unbind layout to window resizing + */ +proto.unbindResize = function() { + window.removeEventListener( 'resize', this ); + this.isResizeBound = false; +}; + +proto.onresize = function() { + this.resize(); +}; + +utils.debounceMethod( Outlayer, 'onresize', 100 ); + +proto.resize = function() { + // don't trigger if size did not change + // or if resize was unbound. See #9 + if ( !this.isResizeBound || !this.needsResizeLayout() ) { + return; + } + + this.layout(); +}; + +/** + * check if layout is needed post layout + * @returns Boolean + */ +proto.needsResizeLayout = function() { + var size = getSize( this.element ); + // check that this.size and size are there + // IE8 triggers resize on body size change, so they might not be + var hasSizes = this.size && size; + return hasSizes && size.innerWidth !== this.size.innerWidth; +}; + +// -------------------------- methods -------------------------- // + +/** + * add items to Outlayer instance + * @param {Array or NodeList or Element} elems + * @returns {Array} items - Outlayer.Items +**/ +proto.addItems = function( elems ) { + var items = this._itemize( elems ); + // add items to collection + if ( items.length ) { + this.items = this.items.concat( items ); + } + return items; +}; + +/** + * Layout newly-appended item elements + * @param {Array or NodeList or Element} elems + */ +proto.appended = function( elems ) { + var items = this.addItems( elems ); + if ( !items.length ) { + return; + } + // layout and reveal just the new items + this.layoutItems( items, true ); + this.reveal( items ); +}; + +/** + * Layout prepended elements + * @param {Array or NodeList or Element} elems + */ +proto.prepended = function( elems ) { + var items = this._itemize( elems ); + if ( !items.length ) { + return; + } + // add items to beginning of collection + var previousItems = this.items.slice(0); + this.items = items.concat( previousItems ); + // start new layout + this._resetLayout(); + this._manageStamps(); + // layout new stuff without transition + this.layoutItems( items, true ); + this.reveal( items ); + // layout previous items + this.layoutItems( previousItems ); +}; + +/** + * reveal a collection of items + * @param {Array of Outlayer.Items} items + */ +proto.reveal = function( items ) { + this._emitCompleteOnItems( 'reveal', items ); + if ( !items || !items.length ) { + return; + } + var stagger = this.updateStagger(); + items.forEach( function( item, i ) { + item.stagger( i * stagger ); + item.reveal(); + }); +}; + +/** + * hide a collection of items + * @param {Array of Outlayer.Items} items + */ +proto.hide = function( items ) { + this._emitCompleteOnItems( 'hide', items ); + if ( !items || !items.length ) { + return; + } + var stagger = this.updateStagger(); + items.forEach( function( item, i ) { + item.stagger( i * stagger ); + item.hide(); + }); +}; + +/** + * reveal item elements + * @param {Array}, {Element}, {NodeList} items + */ +proto.revealItemElements = function( elems ) { + var items = this.getItems( elems ); + this.reveal( items ); +}; + +/** + * hide item elements + * @param {Array}, {Element}, {NodeList} items + */ +proto.hideItemElements = function( elems ) { + var items = this.getItems( elems ); + this.hide( items ); +}; + +/** + * get Outlayer.Item, given an Element + * @param {Element} elem + * @param {Function} callback + * @returns {Outlayer.Item} item + */ +proto.getItem = function( elem ) { + // loop through items to get the one that matches + for ( var i=0; i < this.items.length; i++ ) { + var item = this.items[i]; + if ( item.element == elem ) { + // return item + return item; + } + } +}; + +/** + * get collection of Outlayer.Items, given Elements + * @param {Array} elems + * @returns {Array} items - Outlayer.Items + */ +proto.getItems = function( elems ) { + elems = utils.makeArray( elems ); + var items = []; + elems.forEach( function( elem ) { + var item = this.getItem( elem ); + if ( item ) { + items.push( item ); + } + }, this ); + + return items; +}; + +/** + * remove element(s) from instance and DOM + * @param {Array or NodeList or Element} elems + */ +proto.remove = function( elems ) { + var removeItems = this.getItems( elems ); + + this._emitCompleteOnItems( 'remove', removeItems ); + + // bail if no items to remove + if ( !removeItems || !removeItems.length ) { + return; + } + + removeItems.forEach( function( item ) { + item.remove(); + // remove item from collection + utils.removeFrom( this.items, item ); + }, this ); +}; + +// ----- destroy ----- // + +// remove and disable Outlayer instance +proto.destroy = function() { + // clean up dynamic styles + var style = this.element.style; + style.height = ''; + style.position = ''; + style.width = ''; + // destroy items + this.items.forEach( function( item ) { + item.destroy(); + }); + + this.unbindResize(); + + var id = this.element.outlayerGUID; + delete instances[ id ]; // remove reference to instance by id + delete this.element.outlayerGUID; + // remove data for jQuery + if ( jQuery ) { + jQuery.removeData( this.element, this.constructor.namespace ); + } + +}; + +// -------------------------- data -------------------------- // + +/** + * get Outlayer instance from element + * @param {Element} elem + * @returns {Outlayer} + */ +Outlayer.data = function( elem ) { + elem = utils.getQueryElement( elem ); + var id = elem && elem.outlayerGUID; + return id && instances[ id ]; +}; + + +// -------------------------- create Outlayer class -------------------------- // + +/** + * create a layout class + * @param {String} namespace + */ +Outlayer.create = function( namespace, options ) { + // sub-class Outlayer + var Layout = subclass( Outlayer ); + // apply new options and compatOptions + Layout.defaults = utils.extend( {}, Outlayer.defaults ); + utils.extend( Layout.defaults, options ); + Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions ); + + Layout.namespace = namespace; + + Layout.data = Outlayer.data; + + // sub-class Item + Layout.Item = subclass( Item ); + + // -------------------------- declarative -------------------------- // + + utils.htmlInit( Layout, namespace ); + + // -------------------------- jQuery bridge -------------------------- // + + // make into jQuery plugin + if ( jQuery && jQuery.bridget ) { + jQuery.bridget( namespace, Layout ); + } + + return Layout; +}; + +function subclass( Parent ) { + function SubClass() { + Parent.apply( this, arguments ); + } + + SubClass.prototype = Object.create( Parent.prototype ); + SubClass.prototype.constructor = SubClass; + + return SubClass; +} + +// ----- helpers ----- // + +// how many milliseconds are in each unit +var msUnits = { + ms: 1, + s: 1000 +}; + +// munge time-like parameter into millisecond number +// '0.4s' -> 40 +function getMilliseconds( time ) { + if ( typeof time == 'number' ) { + return time; + } + var matches = time.match( /(^\d*\.?\d*)(\w*)/ ); + var num = matches && matches[1]; + var unit = matches && matches[2]; + if ( !num.length ) { + return 0; + } + num = parseFloat( num ); + var mult = msUnits[ unit ] || 1; + return num * mult; +} + +// ----- fin ----- // + +// back in global +Outlayer.Item = Item; + +return Outlayer; + +})); + +/*! + * Masonry v4.2.0 + * Cascading grid layout library + * http://masonry.desandro.com + * MIT License + * by David DeSandro + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( [ + 'outlayer/outlayer', + 'get-size/get-size' + ], + factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + require('outlayer'), + require('get-size') + ); + } else { + // browser global + window.Masonry = factory( + window.Outlayer, + window.getSize + ); + } + +}( window, function factory( Outlayer, getSize ) { + + + +// -------------------------- masonryDefinition -------------------------- // + + // create an Outlayer layout class + var Masonry = Outlayer.create('masonry'); + // isFitWidth -> fitWidth + Masonry.compatOptions.fitWidth = 'isFitWidth'; + + var proto = Masonry.prototype; + + proto._resetLayout = function() { + this.getSize(); + this._getMeasurement( 'columnWidth', 'outerWidth' ); + this._getMeasurement( 'gutter', 'outerWidth' ); + this.measureColumns(); + + // reset column Y + this.colYs = []; + for ( var i=0; i < this.cols; i++ ) { + this.colYs.push( 0 ); + } + + this.maxY = 0; + this.horizontalColIndex = 0; + }; + + proto.measureColumns = function() { + this.getContainerWidth(); + // if columnWidth is 0, default to outerWidth of first item + if ( !this.columnWidth ) { + var firstItem = this.items[0]; + var firstItemElem = firstItem && firstItem.element; + // columnWidth fall back to item of first element + this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth || + // if first elem has no width, default to size of container + this.containerWidth; + } + + var columnWidth = this.columnWidth += this.gutter; + + // calculate columns + var containerWidth = this.containerWidth + this.gutter; + var cols = containerWidth / columnWidth; + // fix rounding errors, typically with gutters + var excess = columnWidth - containerWidth % columnWidth; + // if overshoot is less than a pixel, round up, otherwise floor it + var mathMethod = excess && excess < 1 ? 'round' : 'floor'; + cols = Math[ mathMethod ]( cols ); + this.cols = Math.max( cols, 1 ); + }; + + proto.getContainerWidth = function() { + // container is parent if fit width + var isFitWidth = this._getOption('fitWidth'); + var container = isFitWidth ? this.element.parentNode : this.element; + // check that this.size and size are there + // IE8 triggers resize on body size change, so they might not be + var size = getSize( container ); + this.containerWidth = size && size.innerWidth; + }; + + proto._getItemLayoutPosition = function( item ) { + item.getSize(); + // how many columns does this brick span + var remainder = item.size.outerWidth % this.columnWidth; + var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil'; + // round if off by 1 pixel, otherwise use ceil + var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth ); + colSpan = Math.min( colSpan, this.cols ); + // use horizontal or top column position + var colPosMethod = this.options.horizontalOrder ? + '_getHorizontalColPosition' : '_getTopColPosition'; + var colPosition = this[ colPosMethod ]( colSpan, item ); + // position the brick + var position = { + x: this.columnWidth * colPosition.col, + y: colPosition.y + }; + // apply setHeight to necessary columns + var setHeight = colPosition.y + item.size.outerHeight; + var setMax = colSpan + colPosition.col; + for ( var i = colPosition.col; i < setMax; i++ ) { + this.colYs[i] = setHeight; + } + + return position; + }; + + proto._getTopColPosition = function( colSpan ) { + var colGroup = this._getTopColGroup( colSpan ); + // get the minimum Y value from the columns + var minimumY = Math.min.apply( Math, colGroup ); + + return { + col: colGroup.indexOf( minimumY ), + y: minimumY, + }; + }; + + /** + * @param {Number} colSpan - number of columns the element spans + * @returns {Array} colGroup + */ + proto._getTopColGroup = function( colSpan ) { + if ( colSpan < 2 ) { + // if brick spans only one column, use all the column Ys + return this.colYs; + } + + var colGroup = []; + // how many different places could this brick fit horizontally + var groupCount = this.cols + 1 - colSpan; + // for each group potential horizontal position + for ( var i = 0; i < groupCount; i++ ) { + colGroup[i] = this._getColGroupY( i, colSpan ); + } + return colGroup; + }; + + proto._getColGroupY = function( col, colSpan ) { + if ( colSpan < 2 ) { + return this.colYs[ col ]; + } + // make an array of colY values for that one group + var groupColYs = this.colYs.slice( col, col + colSpan ); + // and get the max value of the array + return Math.max.apply( Math, groupColYs ); + }; + + // get column position based on horizontal index. #873 + proto._getHorizontalColPosition = function( colSpan, item ) { + var col = this.horizontalColIndex % this.cols; + var isOver = colSpan > 1 && col + colSpan > this.cols; + // shift to next row if item can't fit on current row + col = isOver ? 0 : col; + // don't let zero-size items take up space + var hasSize = item.size.outerWidth && item.size.outerHeight; + this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex; + + return { + col: col, + y: this._getColGroupY( col, colSpan ), + }; + }; + + proto._manageStamp = function( stamp ) { + var stampSize = getSize( stamp ); + var offset = this._getElementOffset( stamp ); + // get the columns that this stamp affects + var isOriginLeft = this._getOption('originLeft'); + var firstX = isOriginLeft ? offset.left : offset.right; + var lastX = firstX + stampSize.outerWidth; + var firstCol = Math.floor( firstX / this.columnWidth ); + firstCol = Math.max( 0, firstCol ); + var lastCol = Math.floor( lastX / this.columnWidth ); + // lastCol should not go over if multiple of columnWidth #425 + lastCol -= lastX % this.columnWidth ? 0 : 1; + lastCol = Math.min( this.cols - 1, lastCol ); + // set colYs to bottom of the stamp + + var isOriginTop = this._getOption('originTop'); + var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) + + stampSize.outerHeight; + for ( var i = firstCol; i <= lastCol; i++ ) { + this.colYs[i] = Math.max( stampMaxY, this.colYs[i] ); + } + }; + + proto._getContainerSize = function() { + this.maxY = Math.max.apply( Math, this.colYs ); + var size = { + height: this.maxY + }; + + if ( this._getOption('fitWidth') ) { + size.width = this._getContainerFitWidth(); + } + + return size; + }; + + proto._getContainerFitWidth = function() { + var unusedCols = 0; + // count unused columns + var i = this.cols; + while ( --i ) { + if ( this.colYs[i] !== 0 ) { + break; + } + unusedCols++; + } + // fit container to columns that have been used + return ( this.cols - unusedCols ) * this.columnWidth - this.gutter; + }; + + proto.needsResizeLayout = function() { + var previousWidth = this.containerWidth; + this.getContainerWidth(); + return previousWidth != this.containerWidth; + }; + + return Masonry; + +})); + diff --git a/client/build/assets/js/vendor/masonry/masonry.pkgd.min.js b/client/build/assets/js/vendor/masonry/masonry.pkgd.min.js new file mode 100644 index 0000000..a61c0de --- /dev/null +++ b/client/build/assets/js/vendor/masonry/masonry.pkgd.min.js @@ -0,0 +1,9 @@ +/*! + * Masonry PACKAGED v4.2.0 + * Cascading grid layout library + * http://masonry.desandro.com + * MIT License + * by David DeSandro + */ + +!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);r.isBoxSizeOuter=s=200==t(o.width),i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); \ No newline at end of file diff --git a/client/build/assets/js/vendor/modernizr.js b/client/build/assets/js/vendor/modernizr.js new file mode 100644 index 0000000..c2545e5 --- /dev/null +++ b/client/build/assets/js/vendor/modernizr.js @@ -0,0 +1,3 @@ +/*! modernizr 3.3.1 (Custom Build) | MIT * + * http://modernizr.com/download/?-adownload-audio-batteryapi-checked-cookies-cssanimations-csscalc-csscolumns-csspointerevents-csspositionsticky-cssremunit-cssvhunit-cssvwunit-datauri-emoji-es5date-es6array-es6collections-es6math-es6number-es6object-es6string-eventlistener-fetch-filereader-filesystem-flexbox-fontface-fullscreen-generators-geolocation-hidden-history-htmlimports-inlinesvg-inputtypes-jpeg2000-json-lastchild-ligatures-lowbattery-mediaqueries-notification-oninput-opacity-pagevisibility-picture-promises-queryselector-requestanimationframe-scrollsnappoints-sharedworkers-speechsynthesis-srcset-subpixelfont-svg-svgasimg-svgfilters-typedarrays-urlparser-vibrate-webaudio-webworkers-willchange-setclasses !*/ +!function(e,t,n){function r(e,t){return typeof e===t}function i(){var e,t,n,i,a,o,s;for(var d in v)if(v.hasOwnProperty(d)){if(e=[],t=v[d],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;np;p++)if(h=e[p],y=k.style[h],s(h,"-")&&(h=f(h)),k.style[h]!==n){if(a||r(i,"undefined"))return d(),"pfx"==t?h:!0;try{k.style[h]=i}catch(g){}if(k.style[h]!=y)return d(),"pfx"==t?h:!0}return d(),!1}function A(e,t){return function(){return e.apply(t,arguments)}}function h(e,t,n){var i;for(var a in e)if(e[a]in t)return n===!1?e[a]:(i=t[e[a]],r(i,"function")?A(i,n||t):i);return!1}function y(e,t,n,i,a){var o=e.charAt(0).toUpperCase()+e.slice(1),s=(e+" "+C.join(o+" ")+o).split(" ");return r(t,"string")||r(t,"undefined")?p(s,t,i,a):(s=(e+" "+_.join(o+" ")+o).split(" "),h(s,t,n))}function m(e,t){if("object"==typeof e)for(var n in e)B(e,n)&&m(n,e[n]);else{e=e.toLowerCase();var r=e.split("."),i=Modernizr[r[0]];if(2==r.length&&(i=i[r[1]]),"undefined"!=typeof i)return Modernizr;t="function"==typeof t?t():t,1==r.length?Modernizr[r[0]]=t:(!Modernizr[r[0]]||Modernizr[r[0]]instanceof Boolean||(Modernizr[r[0]]=new Boolean(Modernizr[r[0]])),Modernizr[r[0]][r[1]]=t),a([(t&&0!=t?"":"no-")+r.join("-")]),Modernizr._trigger(e,t)}return Modernizr}function g(e,t,r){return y(e,n,n,t,r)}var v=[],T={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){v.push({name:e,fn:t,options:n})},addAsyncTest:function(e){v.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=T,Modernizr=new Modernizr;var w=[],b=t.documentElement,x="svg"===b.nodeName.toLowerCase();Modernizr.addTest("audio",function(){var e=o("audio"),t=!1;try{(t=!!e.canPlayType)&&(t=new Boolean(t),t.ogg=e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),t.mp3=e.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/,""),t.opus=e.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),t.wav=e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),t.m4a=(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(n){}return t});var S="Moz O ms Webkit",C=T._config.usePrefixes?S.split(" "):[];T._cssomPrefixes=C;var E={elem:o("modernizr")};Modernizr._q.push(function(){delete E.elem});var k={style:E.elem.style};Modernizr._q.unshift(function(){delete k.style});var _=T._config.usePrefixes?S.toLowerCase().split(" "):[];T._domPrefixes=_,T.testAllProps=y;var P=function(t){var r,i=R.length,a=e.CSSRule;if("undefined"==typeof a)return n;if(!t)return!1;if(t=t.replace(/^@/,""),r=t.replace(/-/g,"_").toUpperCase()+"_RULE",r in a)return"@"+t;for(var o=0;i>o;o++){var s=R[o],d=s.toUpperCase()+"_"+r;if(d in a)return"@-"+s.toLowerCase()+"-"+t}return!1};T.atRule=P;var N=T.prefixed=function(e,t,n){return 0===e.indexOf("@")?P(e):(-1!=e.indexOf("-")&&(e=f(e)),t?y(e,t,n):y(e,"pfx"))};Modernizr.addTest("batteryapi",!!N("battery",navigator),{aliases:["battery-api"]}),Modernizr.addTest("cookies",function(){try{t.cookie="cookietest=1";var e=-1!=t.cookie.indexOf("cookietest=");return t.cookie="cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT",e}catch(n){return!1}}),Modernizr.addTest("canvas",function(){var e=o("canvas");return!(!e.getContext||!e.getContext("2d"))}),Modernizr.addTest("canvastext",function(){return Modernizr.canvas===!1?!1:"function"==typeof o("canvas").getContext("2d").fillText}),Modernizr.addTest("emoji",function(){if(!Modernizr.canvastext)return!1;var t=e.devicePixelRatio||1,n=12*t,r=o("canvas"),i=r.getContext("2d");return i.fillStyle="#f00",i.textBaseline="top",i.font="32px Arial",i.fillText("🐨",0,0),0!==i.getImageData(n,n,1,1).data[0]}),Modernizr.addTest("eventlistener","addEventListener"in e),Modernizr.addTest("fullscreen",!(!N("exitFullscreen",t,!1)&&!N("cancelFullScreen",t,!1))),Modernizr.addTest("geolocation","geolocation"in navigator),Modernizr.addTest("history",function(){var t=navigator.userAgent;return-1===t.indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone")?e.history&&"pushState"in e.history:!1});var B;!function(){var e={}.hasOwnProperty;B=r(e,"undefined")||r(e.call,"undefined")?function(e,t){return t in e&&r(e.constructor.prototype[t],"undefined")}:function(t,n){return e.call(t,n)}}(),T._l={},T.on=function(e,t){this._l[e]||(this._l[e]=[]),this._l[e].push(t),Modernizr.hasOwnProperty(e)&&setTimeout(function(){Modernizr._trigger(e,Modernizr[e])},0)},T._trigger=function(e,t){if(this._l[e]){var n=this._l[e];setTimeout(function(){var e,r;for(e=0;ed;d++)M.setAttribute("type",r=e[d]),a="text"!==M.type&&"style"in M,a&&(M.value=s,M.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(r)&&M.style.WebkitAppearance!==n?(b.appendChild(M),i=t.defaultView,a=i.getComputedStyle&&"textfield"!==i.getComputedStyle(M,null).WebkitAppearance&&0!==M.offsetHeight,b.removeChild(M)):/^(search|tel)$/.test(r)||(a=/^(url|email)$/.test(r)?M.checkValidity&&M.checkValidity()===!1:M.value!=s)),O[e[d]]=!!a;return O}(I),Modernizr.addTest("json","JSON"in e&&"parse"in JSON&&"stringify"in JSON),T.testAllProps=g,Modernizr.addTest("ligatures",g("fontFeatureSettings",'"liga" 1')),Modernizr.addTest("notification",function(){if(!e.Notification||!e.Notification.requestPermission)return!1;if("granted"===e.Notification.permission)return!0;try{new e.Notification("")}catch(t){if("TypeError"===t.name)return!1}return!0}),Modernizr.addTest("pagevisibility",!!N("hidden",t,!1)),Modernizr.addTest("queryselector","querySelector"in t&&"querySelectorAll"in t),Modernizr.addTest("requestanimationframe",!!N("requestAnimationFrame",e),{aliases:["raf"]}),Modernizr.addTest("svg",!!t.createElementNS&&!!t.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect),Modernizr.addTest("typedarrays","ArrayBuffer"in e),Modernizr.addTest("vibrate",!!N("vibrate",navigator)),Modernizr.addTest("adownload",!e.externalHost&&"download"in o("a")),Modernizr.addTest("webaudio",function(){var t="webkitAudioContext"in e,n="AudioContext"in e;return Modernizr._config.usePrefixes?t||n:n}),Modernizr.addTest("lowbattery",function(){var e=.2,t=N("battery",navigator);return!!(t&&!t.charging&&t.level<=e)}),Modernizr.addTest("cssanimations",g("animationName","a",!0));var R=T._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):[];T._prefixes=R,Modernizr.addTest("csscalc",function(){var e="width:",t="calc(10px);",n=o("a");return n.style.cssText=e+R.join(t+e),!!n.style.length});var z=T.testStyles=u;Modernizr.addTest("checked",function(){return z("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}",function(e){var t=o("input");return t.setAttribute("type","checkbox"),t.setAttribute("checked","checked"),e.appendChild(t),20===t.offsetLeft})}),function(){Modernizr.addTest("csscolumns",function(){var e=!1,t=g("columnCount");try{(e=!!t)&&(e=new Boolean(e))}catch(n){}return e});for(var e,t,n=["Width","Span","Fill","Gap","Rule","RuleColor","RuleStyle","RuleWidth","BreakBefore","BreakAfter","BreakInside"],r=0;r=9,i=533>t&&e.match(/android/gi);return n||i||r}();j?Modernizr.addTest("fontface",!1):z('@font-face {font-family:"font";src:url("https://")}',function(e,n){var r=t.getElementById("smodernizr"),i=r.sheet||r.styleSheet,a=i?i.cssRules&&i.cssRules[0]?i.cssRules[0].cssText:i.cssText||"":"",o=/src/i.test(a)&&0===a.indexOf(n.split(" ")[0]);Modernizr.addTest("fontface",o)}),z("#modernizr div {width:100px} #modernizr :last-child{width:200px;display:block}",function(e){Modernizr.addTest("lastchild",e.lastChild.offsetWidth>e.firstChild.offsetWidth)},2);var F=function(){var t=e.matchMedia||e.msMatchMedia;return t?function(e){var n=t(e);return n&&n.matches||!1}:function(t){var n=!1;return u("@media "+t+" { #modernizr { position: absolute; } }",function(t){n="absolute"==(e.getComputedStyle?e.getComputedStyle(t,null):t.currentStyle).position}),n}}();T.mq=F,Modernizr.addTest("mediaqueries",F("only all")),Modernizr.addTest("opacity",function(){var e=o("a").style;return e.cssText=R.join("opacity:.55;"),/^0.55$/.test(e.opacity)}),Modernizr.addTest("csspointerevents",function(){var e=o("a").style;return e.cssText="pointer-events:auto","auto"===e.pointerEvents}),Modernizr.addTest("csspositionsticky",function(){var e="position:",t="sticky",n=o("a"),r=n.style;return r.cssText=e+R.join(t+";"+e).slice(0,-e.length),-1!==r.position.indexOf(t)}),Modernizr.addTest("cssremunit",function(){var e=o("a").style;try{e.fontSize="3rem"}catch(t){}return/rem/.test(e.fontSize)}),Modernizr.addTest("scrollsnappoints",g("scrollSnapType")),z("#modernizr{position: absolute; top: -10em; visibility:hidden; font: normal 10px arial;}#subpixel{float: left; font-size: 33.3333%;}",function(t){var n=t.firstChild;n.innerHTML="This is a text written in Arial",Modernizr.addTest("subpixelfont",e.getComputedStyle?"44px"!==e.getComputedStyle(n,null).getPropertyValue("width"):!1)},1,["subpixel"]),z("#modernizr { height: 50vh; }",function(t){var n=parseInt(e.innerHeight/2,10),r=parseInt((e.getComputedStyle?getComputedStyle(t,null):t.currentStyle).height,10);Modernizr.addTest("cssvhunit",r==n)}),z("#modernizr { width: 50vw; }",function(t){var n=parseInt(e.innerWidth/2,10),r=parseInt((e.getComputedStyle?getComputedStyle(t,null):t.currentStyle).width,10);Modernizr.addTest("cssvwunit",r==n)}),Modernizr.addTest("willchange","willChange"in b.style),Modernizr.addTest("hidden","hidden"in o("a")),Modernizr.addTest("picture","HTMLPictureElement"in e),Modernizr.addTest("es5date",function(){var e="2013-04-12T06:06:37.307Z",t=!1;try{t=!!Date.parse(e)}catch(n){}return!!(Date.now&&Date.prototype&&Date.prototype.toISOString&&Date.prototype.toJSON&&t)}),Modernizr.addTest("es6array",!!(Array.prototype&&Array.prototype.copyWithin&&Array.prototype.fill&&Array.prototype.find&&Array.prototype.findIndex&&Array.prototype.keys&&Array.prototype.entries&&Array.prototype.values&&Array.from&&Array.of)),Modernizr.addTest("es6collections",!!(e.Map&&e.Set&&e.WeakMap&&e.WeakSet)),Modernizr.addTest("generators",function(){try{new Function("function* test() {}")()}catch(e){return!1}return!0}),Modernizr.addTest("es6math",!!(Math&&Math.clz32&&Math.cbrt&&Math.imul&&Math.sign&&Math.log10&&Math.log2&&Math.log1p&&Math.expm1&&Math.cosh&&Math.sinh&&Math.tanh&&Math.acosh&&Math.asinh&&Math.atanh&&Math.hypot&&Math.trunc&&Math.fround)),Modernizr.addTest("es6number",!!(Number.isFinite&&Number.isInteger&&Number.isSafeInteger&&Number.isNaN&&Number.parseInt&&Number.parseFloat&&Number.isInteger(Number.MAX_SAFE_INTEGER)&&Number.isInteger(Number.MIN_SAFE_INTEGER)&&Number.isFinite(Number.EPSILON))),Modernizr.addTest("es6object",!!(Object.assign&&Object.is&&Object.setPrototypeOf)),Modernizr.addTest("promises",function(){return"Promise"in e&&"resolve"in e.Promise&&"reject"in e.Promise&&"all"in e.Promise&&"race"in e.Promise&&function(){var t;return new e.Promise(function(e){t=e}),"function"==typeof t}()}),Modernizr.addTest("es6string",!!(String.fromCodePoint&&String.raw&&String.prototype.codePointAt&&String.prototype.repeat&&String.prototype.startsWith&&String.prototype.endsWith&&String.prototype.contains));var L=function(){function e(e,t){var i;return e?(t&&"string"!=typeof t||(t=o(t||"div")),e="on"+e,i=e in t,!i&&r&&(t.setAttribute||(t=o("div")),t.setAttribute(e,""),i="function"==typeof t[e],t[e]!==n&&(t[e]=n),t.removeAttribute(e)),i):!1}var r=!("onblur"in t.documentElement);return e}();T.hasEvent=L,Modernizr.addTest("oninput",function(){var n,r=o("input");if(r.setAttribute("oninput","return"),L("oninput",b)||"function"==typeof r.oninput)return!0;try{var i=t.createEvent("KeyboardEvent");n=!1;var a=function(e){n=!0,e.preventDefault(),e.stopPropagation()};i.initKeyEvent("keypress",!0,!0,e,!1,!1,!1,!1,0,"e".charCodeAt(0)),b.appendChild(r),r.addEventListener("input",a,!1),r.focus(),r.dispatchEvent(i),r.removeEventListener("input",a,!1),b.removeChild(r)}catch(s){n=!1}return n}),Modernizr.addTest("filereader",!!(e.File&&e.FileList&&e.FileReader)),Modernizr.addTest("filesystem",!!N("requestFileSystem",e)),Modernizr.addAsyncTest(function(){var e=new Image;e.onload=e.onerror=function(){m("jpeg2000",1==e.width)},e.src="data:image/jp2;base64,/0//UQAyAAAAAAABAAAAAgAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAEBwEBBwEBBwEBBwEB/1IADAAAAAEAAAQEAAH/XAAEQED/ZAAlAAFDcmVhdGVkIGJ5IE9wZW5KUEVHIHZlcnNpb24gMi4wLjD/kAAKAAAAAABYAAH/UwAJAQAABAQAAf9dAAUBQED/UwAJAgAABAQAAf9dAAUCQED/UwAJAwAABAQAAf9dAAUDQED/k8+kEAGvz6QQAa/PpBABr994EAk//9k="}),Modernizr.addTest("srcset","srcset"in o("img")),Modernizr.addTest("fetch","fetch"in e),Modernizr.addTest("speechsynthesis","SpeechSynthesisUtterance"in e),Modernizr.addTest("svgasimg",t.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")),Modernizr.addTest("svgfilters",function(){var t=!1;try{t="SVGFEColorMatrixElement"in e&&2==SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE}catch(n){}return t}),Modernizr.addTest("inlinesvg",function(){var e=o("div");return e.innerHTML="","http://www.w3.org/2000/svg"==("undefined"!=typeof SVGRect&&e.firstChild&&e.firstChild.namespaceURI)}),Modernizr.addAsyncTest(function(){function e(){var e=new Image;e.onerror=function(){m("datauri",!0),Modernizr.datauri=new Boolean(!0),Modernizr.datauri.over32kb=!1},e.onload=function(){m("datauri",!0),Modernizr.datauri=new Boolean(!0),Modernizr.datauri.over32kb=1==e.width&&1==e.height};for(var t="R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";t.length<33e3;)t="\r\n"+t;e.src="data:image/gif;base64,"+t}-1!==navigator.userAgent.indexOf("MSIE 7.")&&setTimeout(function(){m("datauri",!1)},10);var t=new Image;t.onerror=function(){m("datauri",!1)},t.onload=function(){1==t.width&&1==t.height?e():m("datauri",!1)},t.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="}),Modernizr.addTest("urlparser",function(){var e;try{return e=new URL("http://modernizr.com/"),"http://modernizr.com/"===e.href}catch(t){return!1}}),Modernizr.addTest("sharedworkers","SharedWorker"in e),Modernizr.addTest("webworkers","Worker"in e),i(),a(w),delete T.addTest,delete T.addAsyncTest;for(var U=0;UEureka Media Browser
\ No newline at end of file diff --git a/client/build/nued.html b/client/build/nued.html new file mode 100644 index 0000000..50586de --- /dev/null +++ b/client/build/nued.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + Eureka Media Browser + + +
+ + + + diff --git a/client/build/static/css/main.243c0c43.css b/client/build/static/css/main.243c0c43.css new file mode 100644 index 0000000..5d3fd50 --- /dev/null +++ b/client/build/static/css/main.243c0c43.css @@ -0,0 +1,10 @@ +/*! + * Cropper.js v0.8.1 + * https://github.com/fengyuanchen/cropperjs + * + * Copyright (c) 2015-2016 Fengyuan Chen + * Released under the MIT license + * + * Date: 2016-09-03T04:55:16.458Z + */.cropper-container{font-size:0;line-height:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;direction:ltr}.cropper-container img{display:block;min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;width:100%;height:100%;image-orientation:0deg}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-wrap-box{overflow:hidden}.cropper-drag-box{opacity:0;background-color:#fff}.cropper-modal{opacity:.5;background-color:#000}.cropper-view-box{display:block;overflow:hidden;width:100%;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75)}.cropper-dashed{position:absolute;display:block;opacity:.5;border:0 dashed #eee}.cropper-dashed.dashed-h{top:33.33333333%;left:0;width:100%;height:33.33333333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.33333333%;width:33.33333333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-center{position:absolute;top:50%;left:50%;display:block;width:0;height:0;opacity:.75}.cropper-center:after,.cropper-center:before{position:absolute;display:block;content:" ";background-color:#eee}.cropper-center:before{top:0;left:-3px;width:7px;height:1px}.cropper-center:after{top:-3px;left:0;width:1px;height:7px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;width:100%;height:100%;opacity:.1}.cropper-face{top:0;left:0;background-color:#fff}.cropper-line{background-color:#39f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{width:5px;height:5px;opacity:.75;background-color:#39f}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;width:20px;height:20px;cursor:se-resize;opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;width:200%;height:200%;content:" ";opacity:0;background-color:#39f}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{width:5px;height:5px;opacity:.75}}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{position:absolute;display:block;width:0;height:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed} +/*# sourceMappingURL=main.243c0c43.css.map*/ \ No newline at end of file diff --git a/client/build/static/css/main.243c0c43.css.map b/client/build/static/css/main.243c0c43.css.map new file mode 100644 index 0000000..261ad07 --- /dev/null +++ b/client/build/static/css/main.243c0c43.css.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"static/css/main.243c0c43.css","sourceRoot":""} \ No newline at end of file diff --git a/client/build/static/js/main.a6b5a45c.js b/client/build/static/js/main.a6b5a45c.js new file mode 100644 index 0000000..47e09c8 --- /dev/null +++ b/client/build/static/js/main.a6b5a45c.js @@ -0,0 +1,22 @@ +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="/",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var n=t.slice(1),r=e[t[0]];return function(e,t,o){r.apply(this,[e,t,o].concat(n))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,n){n(768),e.exports=n(413)},function(e,t,n){"use strict";function r(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,s],c=0;l=new Error(t.replace(/%s/g,function(){return u[c++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}e.exports=r},1,1,1,function(e,t,n){"use strict";e.exports=n(775)},[808,41],function(e,t){"use strict";function n(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;o0&&void 0!==arguments[0]?arguments[0]:[],t=Array.isArray(e)?e:[e];t.forEach(function(e){e&&e.locale&&(O.__addLocaleData(e),D.__addLocaleData(e))})}function a(e){for(var t=(e||"").split("-");t.length>0;){if(i(t.join("-")))return!0;t.pop()}return!1}function i(e){var t=e&&e.toLowerCase();return!(!O.__localeData__[t]||!D.__localeData__[t])}function s(e){return(""+e).replace(he,function(e){return fe[e]})}function l(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.reduce(function(t,r){return e.hasOwnProperty(r)?t[r]=e[r]:n.hasOwnProperty(r)&&(t[r]=n[r]),t},{})}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.intl;A(t,"[React Intl] Could not find required `intl` object. needs to exist in the component ancestry.")}function c(e,t){if(e===t)return!0;if("object"!==("undefined"==typeof e?"undefined":j(e))||null===e||"object"!==("undefined"==typeof t?"undefined":j(t))||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty.bind(t),a=0;a3&&void 0!==arguments[3]?arguments[3]:{},u=i.intl,d=void 0===u?{}:u,p=s.intl,f=void 0===p?{}:p;return!c(t,r)||!c(n,o)||!(f===d||c(l(f,pe),l(d,pe)))}function p(e){return e.displayName||e.name||"Component"}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.intlPropName,r=void 0===n?"intl":n,o=t.withRef,a=void 0!==o&&o,i=function(t){function n(e,t){U(this,n);var r=K(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e,t));return u(t),r}return z(n,t),B(n,[{key:"getWrappedInstance",value:function(){return A(a,"[React Intl] To access the wrapped instance, the `{withRef: true}` option must be set when calling: `injectIntl()`"),this.refs.wrappedInstance}},{key:"render",value:function(){return R.createElement(e,H({},this.props,W({},r,this.context.intl),{ref:a?"wrappedInstance":null}))}}]),n}(N.Component);return i.displayName="InjectIntl("+p(e)+")",i.contextTypes={intl:se},i.WrappedComponent=e,i}function h(e){return e}function m(e){return O.prototype._resolveLocale(e)}function v(e){return O.prototype._findPluralRuleFunction(e)}function g(e){var t=D.thresholds;t.second=e.second,t.minute=e.minute,t.hour=e.hour,t.day=e.day,t.month=e.month}function y(e,t,n){var r=e&&e[t]&&e[t][n];if(r)return r}function b(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=r.format,s=new Date(n),u=i&&y(a,"date",i),c=l(r,ve,u);try{return t.getDateTimeFormat(o,c).format(s)}catch(e){}return String(s)}function _(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=r.format,s=new Date(n),u=i&&y(a,"time",i),c=l(r,ve,u);c.hour||c.minute||c.second||(c=H({},c,{hour:"numeric",minute:"numeric"}));try{return t.getDateTimeFormat(o,c).format(s)}catch(e){}return String(s)}function E(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=r.format,s=new Date(n),u=new Date(r.now),c=i&&y(a,"relative",i),d=l(r,ye,c),p=H({},D.thresholds);g(_e);try{return t.getRelativeFormat(o,d).format(s,{now:isFinite(u)?u:t.now()})}catch(e){}finally{g(p)}return String(s)}function C(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=r.format,s=i&&y(a,"number",i),u=l(r,ge,s);try{return t.getNumberFormat(o,u).format(n)}catch(e){}return String(n)}function w(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=l(r,be);try{return t.getPluralFormat(o,a).format(n)}catch(e){}return"other"}function x(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.locale,a=e.formats,i=e.messages,s=e.defaultLocale,l=e.defaultFormats,u=n.id,c=n.defaultMessage;A(u,"[React Intl] An `id` must be provided to format a message.");var d=i&&i[u],p=Object.keys(r).length>0;if(!p)return d||c||u;var f=void 0;if(d)try{var h=t.getMessageFormat(d,o,a);f=h.format(r)}catch(e){}if(!f&&c)try{var m=t.getMessageFormat(c,s,l);f=m.format(r)}catch(e){}return f||d||c||u}function S(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=Object.keys(r).reduce(function(e,t){var n=r[t];return e[t]="string"==typeof n?s(n):n,e},{});return x(e,t,n,o)}function M(e){var t=Math.abs(e);return t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},K=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},Y=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t":">","<":"<",'"':""","'":"'"},he=/[&><"']/g,me=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};U(this,e);var r="ordinal"===n.style,o=v(m(t));this.format=function(e){return o(e,r)}},ve=Object.keys(le),ge=Object.keys(ue),ye=Object.keys(ce),be=Object.keys(de),_e={second:60,minute:60,hour:24,day:30,month:12},Ee=Object.freeze({formatDate:b,formatTime:_,formatRelative:E,formatNumber:C,formatPlural:w,formatMessage:x,formatHTMLMessage:S}),Ce=Object.keys(ae),we=Object.keys(ie),xe={formats:{},messages:{},textComponent:"span",defaultLocale:"en",defaultFormats:{}},Se=function(e){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};U(this,t);var r=K(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));A("undefined"!=typeof Intl,"[React Intl] The `Intl` APIs must be available in the runtime, and do not appear to be built-in. An `Intl` polyfill should be loaded.\nSee: http://formatjs.io/guides/runtime-environments/");var o=n.intl,a=void 0;a=isFinite(e.initialNow)?Number(e.initialNow):o?o.now():Date.now();var i=o||{},s=i.formatters,l=void 0===s?{getDateTimeFormat:L(Intl.DateTimeFormat),getNumberFormat:L(Intl.NumberFormat),getMessageFormat:L(O),getRelativeFormat:L(D),getPluralFormat:L(me)}:s;return r.state=H({},l,{now:function(){return r._didDisplay?Date.now():a}}),r}return z(t,e),B(t,[{key:"getConfig",value:function(){var e=this.context.intl,t=l(this.props,Ce,e);for(var n in xe)void 0===t[n]&&(t[n]=xe[n]);if(!a(t.locale)){var r=t,o=(r.locale,r.defaultLocale),i=r.defaultFormats;t=H({},t,{locale:o,formats:i,messages:xe.messages})}return t}},{key:"getBoundFormatFns",value:function(e,t){return we.reduce(function(n,r){return n[r]=Ee[r].bind(null,e,t),n},{})}},{key:"getChildContext",value:function(){var e=this.getConfig(),t=this.getBoundFormatFns(e,this.state),n=this.state,r=n.now,o=V(n,["now"]);return{intl:H({},e,t,{formatters:o,now:r})}}},{key:"shouldComponentUpdate",value:function(){for(var e=arguments.length,t=Array(e),n=0;n1?o-1:0),i=1;i0;if(h){var m=Math.floor(1099511627776*Math.random()).toString(16),v=function(){var e=0;return function(){return"ELEMENT-"+m+"-"+(e+=1)}}();d="@__"+m+"__@",p={},f={},Object.keys(s).forEach(function(e){var t=s[e];if(N.isValidElement(t)){var n=v();p[e]=d+n+d,f[n]=t}else p[e]=t})}var g={id:o,description:a,defaultMessage:i},y=t(g,p||s),b=void 0,_=f&&Object.keys(f).length>0;return b=_?y.split(d).filter(function(e){return!!e}).map(function(e){return f[e]||e}):[y],"function"==typeof c?c.apply(void 0,Y(b)):N.createElement.apply(void 0,[u,null].concat(Y(b)))}}]),t}(N.Component);Le.displayName="FormattedMessage",Le.contextTypes={intl:se},Le.defaultProps={values:{}};var Fe=function(e){function t(e,n){U(this,t);var r=K(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));return u(n),r}return z(t,e),B(t,[{key:"shouldComponentUpdate",value:function(e){var t=this.props.values,n=e.values;if(!c(n,t))return!0;for(var r=H({},e,{values:t}),o=arguments.length,a=Array(o>1?o-1:0),i=1;i1&&void 0!==arguments[1]&&arguments[1];return{type:y,item:e,inverted:t}},_="remove_media_item_from_chosen_items",E=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:_,item:e,inverted:t}},C="update_content",w=function(e){return{type:C,content:e}},x="update_config",S=function(e){return{type:x,config:e}},M="update_tree_node_status",k=function(e,t){return{type:M,cd:e,open:t}};t.UPDATE_TREE_NODE_STATUS=M,t.updateTreeNodeStatus=k;var T=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){return fetch("/assets/components/eureka/media/sources/"+e,{method:"GET",headers:Object.assign({},{Accept:"application/json","Content-Type":"application/json"},t)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(e){return n(D(e))}).catch(function(e){return n(I(e))})}},P="update_source_tree_success",O="update_source_tree_error",D=function(e){return{type:P,contents:e}},I=function(e){return{type:O,error:e}},N=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function(r){return fetch(a.default.makeURL("/assets/components/eureka/media/sources/"+e,t),{method:"GET",headers:Object.assign({},{Accept:"application/json","Content-Type":"application/json"},n)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw console.log(t),t.response=e,t}return e}).then(function(e){return e.json()}).then(function(n){return r(L(n,e,t))}).catch(function(e){return r(F(e))})}},R="fetch_directory_contents_success",A="fetch_directory_contents_error",L=function(e,t,n){return{type:R,contents:e,source:t,params:n}};t.fetchDirectoryContentsSuccess=L;var F=function(e){return{type:A,error:e}};t.fetchDirectoryContentsError=F;var j=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){return fetch("/assets/components/eureka/media/sources",{method:"GET",headers:Object.assign({},{Accept:"application/json","Content-Type":"application/json"},e)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(e){return t(W(e))}).catch(function(e){return t(H(e))})}},U="fetch_media_sources_success",B="fetch_media_sources_error",W=function(e){return{type:U,sources:e}},H=function(e){return{type:B,error:e}},z="delete_media_item_success",V=function(e,t){return{type:z,source:e,path:t}};t.DELETE_MEDIA_ITEM_SUCCESS=z,t.deleteMediaItemSuccess=V,t.UPDATE_CONFIG=x,t.updateConfig=S;var K="delete_media_item_error",Y=function(e){return{type:K,error:e}},q=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function(r){return fetch(a.default.makeURL("/assets/components/eureka/media/sources/"+e,{path:t}),{method:"DELETE",credentials:"include",headers:Object.assign({},{Accept:"application/json","Content-Type":"application/json"},n)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(e){if(e===!1)throw new Error("Unable to delete directory "+t);return e}).then(function(n){return r(V(e,t,n))}).catch(function(e){return r(Y(e))})}},G="delete_media_items_success",X=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return{type:G,contents:e,formData:t,chosenMediaItems:n}};t.DELETE_MEDIA_ITEMS_SUCCESS=G,t.deleteMediaItemsSuccess=X;var $="delete_media_items_error",Q=function(e,t){return{type:$,source:e,path:t}};t.DELETE_MEDIA_ITEMS_ERROR=$,t.deleteMediaItemsError=Q;var Z=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return console.log("deleteMediaItems"),function(o){return fetch("/assets/components/eureka/media/sources/"+e,{method:"DELETE",body:t,credentials:"include",headers:Object.assign({},{Accept:"application/json"},n)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(e){return e}).then(function(e){return o(X(e,t,r))}).catch(function(e){return o(Q(e))})}};t.deleteMediaItems=Z;var J="notification",ee=function(e,t,n,r){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=arguments.length>5&&void 0!==arguments[5]&&arguments[5];return console.log("notify",e),{type:J,message:e,id:(new Date).getTime(),archived:a,notificationType:t,learnMore:n,dismissAfter:r,sticky:o}};t.NOTIFICATION=J,t.notify=ee;var te="notification_dismissed",ne=function(e){return{type:te,id:e}};t.NOTIFICATION_DELETED=te,t.deleteNotification=ne;var re="notification_archived",oe=function(e){return{type:re,id:e}};t.NOTIFICATION_ARCHIVED=re,t.archiveNotification=oe;var ae="upload_files_success",ie=function(e){return{type:ae,contents:e}};t.UPLOAD_FILES_SUCCESS=ae,t.uploadFilesSuccess=ie;var se="upload_files_error",le=function(e){return{type:se,error:e}};t.UPLOAD_FILES_ERROR=se,t.uploadFilesError=le;var ue=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return function(o){return fetch(a.default.makeURL("/assets/components/eureka/media/sources/"+e,{path:t}),{method:"POST",body:n,headers:Object.assign({},{},r)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(e){return o(ie(e))}).catch(function(e){return o(le(e))})}},ce=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function(r){return fetch(a.default.makeURL("/assets/components/eureka/media/sources/"+e,{path:t}),{method:"PUT",headers:Object.assign({},{Accept:"application/json","Content-Type":"application/json"},n)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(n){if(!n){var r=new Error("unable to create "+t+" for media source "+e);throw r.response=!1,r}}).then(function(e){return r(pe(e))}).catch(function(e){return r(he(e))})}},de="create_directory_success",pe=function(e){return{type:de,success:e}};t.CREATE_DIRECTORY_SUCCESS=de,t.createDirectorySuccess=pe;var fe="create_directory_error",he=function(e){return{type:fe,error:e}};t.CREATE_DIRECTORY_ERROR=fe,t.createDirectoryError=he,t.createDirectory=ce,t.uploadFiles=ue,t.ADD_ITEM_SUCCESS=i,t.addItemSuccess=l,t.ADD_ITEM_ERROR=s,t.addItemError=u,t.UPDATE_VIEW=c,t.updateView=d,t.UPDATE_SOURCE=v,t.updateSource=g,t.updateSourceTree=T,t.UPDATE_SOURCE_TREE_SUCCESS=P,t.updateSourceTreeSuccess=D,t.UPDATE_SOURCE_TREE_ERROR=O,t.updateSourceTreeError=I,t.UPDATE_CONTENT=C,t.updateContent=w,t.FETCH_DIRECTORY_CONTENTS_SUCCESS=R,t.FETCH_DIRECTORY_CONTENTS_ERROR=A,t.fetchDirectoryContents=N,t.fetchMediaSources=j,t.FETCH_MEDIA_SOURCES_SUCCESS=U,t.fetchMediaSourcesSuccess=W,t.FETCH_MEDIA_SOURCES_ERROR=B,t.fetchMediaSourcesError=H,t.DELETE_MEDIA_ITEM_ERROR=K,t.deleteMediaItemError=Y,t.deleteMediaItem=q;var me=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return function(o){return fetch(a.default.makeURL("/assets/components/eureka/media/sources/"+e,{path:t,name:n}),{method:"PUT",headers:Object.assign({},{Accept:"application/json","Content-Type":"application/json"},r)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(n){if(!n){var r=new Error("unable to create "+t+" for media source "+e);throw r.response=!1,r}}).then(function(r){return o(ge(r,e,t,n))}).catch(function(e){return o(be(e))})}},ve="rename_directory_success",ge=function(e,t,n,r){return{type:ve,success:e,source:t,dirPath:n,name:r}},ye="rename_directory_error",be=function(e){return{type:ye,error:e}};t.RENAME_DIRECTORY_SUCCESS=ve,t.renameDirectorySuccess=ge,t.RENAME_DIRECTORY_ERROR=ye,t.renameDirectoryError=be,t.renameDirectory=me;var _e=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return function(o){return fetch(a.default.makeURL("/assets/components/eureka/media/sources/"+e,{path:t,name:n}),{method:"PUT",headers:Object.assign({},{Accept:"application/json","Content-Type":"application/json"},r)}).then(function(e){if(e.state<200||e.state>=300){var t=new Error(e.statusText);throw t.response=e,t}return e}).then(function(e){return e.json()}).then(function(n){if(!n){var r=new Error("unable to create "+t+" for media source "+e);throw r.response=!1,r}return n}).then(function(e){return o(Ce(e))}).catch(function(e){return o(xe(e))})}},Ee="rename_item_success",Ce=function(e){return{type:Ee,contents:e}},we="rename_item_error",xe=function(e){return{type:we,error:e}};t.RENAME_ITEM_SUCCESS=Ee,t.renameItemSuccess=Ce,t.RENAME_ITEM_ERROR=we,t.renameItemError=xe,t.renameItem=_e,t.addMediaItemToChosenItems=b,t.ADD_MEDIA_ITEM_TO_CHOSEN_ITEMS=y,t.removeMediaItemFromChosenItems=E,t.REMOVE_MEDIA_ITEM_FROM_CHOSEN_ITEMS=_,t.invertSelection=m,t.INVERT_SELECTION=h,t.deselectAll=f,t.DESELECT_ALL=p},function(e,t,n){"use strict";var r=n(142),o=r.createStore,a=r.applyMiddleware,i=n(776).default,s=n(415),l=o(s.EurekaReducer,a(i));e.exports=l},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0});var o,a=n(14);t.default=(0,a.defineMessages)((o={directory:{id:"directory.create",defaultMessage:"Create a Directory"},createNewDirectoryIn:{id:"directory.createNewIn",defaultMessage:"Create a new Directory in {cd}"},directoryCancelCreating:{id:"directory.cancelCreating",defaultMessage:"Cancel creating directory {cd}"},choose:{id:"choose",defaultMessage:"Choose"},reset:{id:"reset",defaultMessage:"Reset"},rememberThis:{id:"rememberAspectRatio",defaultMessage:"Remember Ratio"},crop:{id:"crop",defaultMessage:"Crop"},cropItem:{id:"cropItem",defaultMessage:"Crop {item}"},cropAs:{id:"cropAs",defaultMessage:"Crop as"},cropAsItem:{id:"cropAsItem",defaultMessage:"Crop as {item}"},saveAsItem:{id:"saveAsItem",defaultMessage:"Save as {item}"},croppingItem:{id:"croppingItem",defaultMessage:"Cropping {item}"},cancel:{id:"cancel",defaultMessage:"Cancel"},mediaSourceTree:{id:"mediaSourceTree",defaultMessage:"Media Source Panel"},pastImageFromClipboardMessage:{id:"pastImageFromClipboardMessage",defaultMessage:"Paste images from the clipboard to upload"},pastImageFromClipboardToMessage:{id:"pastImageFromClipboardToMessage",defaultMessage:"Paste images from the clipboard to upload to ${cd} of source ${cs}"},deleteAreYouSureMessage:{id:"deleteAreYouSureMessage",defaultMessage:"Are you sure you want to permanently delete {filename}?"},cropAreYouSureMessage:{id:"cropAreYouSureMessage",defaultMessage:"Are you sure you want to reset your crop?"},masonryLayoutMessage:{id:"masonryLayoutMessage",defaultMessage:"Masonry Layout"},close:{id:"close",defaultMessage:"Close"},open:{id:"open",defaultMessage:"Open"},rename:{id:"rename",defaultMessage:"Rename"},welcomeToEureka:{id:"welcomeToEureka",defaultMessage:"Welcome to Eureka. You found it."},delete:{id:"delete",defaultMessage:"Delete"},in:{id:"in",defaultMessage:"in"},createFile:{id:"file.create",defaultMessage:"Create File"},contentsOfBy:{id:"contents.ofby",defaultMessage:"contents of {cd} by filename, filesize, dimensions or even modification date"},filterContentsOfBy:{id:"contents.filterBy",defaultMessage:"Filter contents of {cd} by filename, filesize, dimensions or even modification date"},quickCreateFile:{id:"file.quickCreate",defaultMessage:"Quick Create Files"},cannotRename:{id:"rename.cannot",defaultMessage:"Cannot rename {filename} to the same name"},expand:{id:"expand",defaultMessage:"Expand"},chooseItem:{id:"choose.item",defaultMessage:"Choose {filename}"},renameItem:{id:"rename.item",defaultMessage:"Rename {filename}"},newName:{id:"new.name",defaultMessage:"New name"},deleteDirectory:{id:"directory.delete",defaultMessage:"Delete Directory"},fetchingContents:{id:"contents.fetchingContents",defaultMessage:"Hold tight while we fetch {cd}"},deleteItem:{id:"delete.item",defaultMessage:"Delete {filename}"},deletedItem:{id:"deleted.item",defaultMessage:"Deleted {filename}"},download:{id:"download",defaultMessage:"Download"},downloadItem:{id:"download.item",defaultMessage:"Download {filename}"},expandItem:{id:"expand.item",defaultMessage:"Expand {filename}" +},refreshDirectory:{id:"directory.refresh",defaultMessage:"Refresh Directory"},uploadFiles:{id:"upload.files",defaultMessage:"Upload Files"},uploadFileTo:{id:"upload.filesTo",defaultMessage:"Upload File to {cd}"},createFileInMessage:{id:"upload.createFileIn",defaultMessage:"Create File in {cd}"},closeMediaBrowser:{id:"close.mediaBrowser",defaultMessage:"Close Media Browser"},performContextualActions:{id:"context.performActions",defaultMessage:"Perform Actions such as Expand or Choose on {filename}"}},r(o,"choose",{id:"choose",defaultMessage:"Choose"}),r(o,"item",{id:"item",defaultMessage:"item"}),r(o,"tabularLayoutDescription",{id:"layout.tabular",defaultMessage:"Tabular Layout displays image thumbnails along with Name, Description, File Size and Edited On columns"}),r(o,"thumbnailLayoutDescription",{id:"layout.thumbnail",defaultMessage:"Thumbnail layout displays a grid of medium sized thumbnails"}),r(o,"gridLayoutDescription",{id:"layout.grid",defaultMessage:"Grid View displays images a grid of large images"}),r(o,"listLayoutDescription",{id:"layout.list",defaultMessage:"List Layout displays Name, Description, File Size and Edited On columns"}),r(o,"openFileInNewTab",{id:"file.openInNewTab",defaultMessage:"Open {filename} in a new tab"}),r(o,"mediaItem",{id:"mediaItem",defaultMessage:"media item"}),r(o,"toggle",{id:"toggle",defaultMessage:"Toggle"}),r(o,"pluralItem",{id:"pluralItem",defaultMessage:"a media item",value:1,one:"a media item",other:"media items"}),r(o,"pluralChoose",{id:"pluralChoose",defaultMessage:"item",one:"item",other:"items",few:"items",many:"items",zero:""}),r(o,"copyListofSelectedFiles",{id:"copyListofSelectedFiles",defaultMessage:"Copy list of selected files"}),r(o,"mediaSourceTreeMessage",{id:"media.sourceTree",defaultMessage:"Media Source Panel"}),r(o,"dragFilesUploading",{id:"upload.dragFilesUploading",defaultMessage:"Uploading files…",values:{cd:"./"}}),r(o,"dragFilesToBeUploadedTo",{id:"upload.dragFilestoUpload",defaultMessage:"Drag files here to be uploaded to {cd}",values:{cd:"./"}}),r(o,"dragMode",{id:"dragMode",defaultMessage:"Drag Mode"}),r(o,"cropMove",{id:"crop.move",defaultMessage:"Move"}),r(o,"cropShowGuides",{id:"crop.showGuides",defaultMessage:"Show Guides"}),r(o,"cropHideGuides",{id:"crop.hideGuides",defaultMessage:"Hide Guides"}),r(o,"cropToggleGuides",{id:"crop.toggleGuides",defaultMessage:"Toggle Guides"}),r(o,"cropZoomIn",{id:"crop.zoomIn",defaultMessage:"Zoom In"}),r(o,"cropZoomOut",{id:"crop.cropZoomOut",defaultMessage:"Zoom Out"}),r(o,"cropMoveLeft",{id:"crop.moveLeft",defaultMessage:"Move Left"}),r(o,"cropMoveRight",{id:"crop.moveRight",defaultMessage:"Move Right"}),r(o,"cropMoveUp",{id:"crop.moveUp",defaultMessage:"Move Up"}),r(o,"cropMoveDown",{id:"crop.moveDown",defaultMessage:"Move Down"}),r(o,"cropDownload",{id:"crop.download",defaultMessage:"Download Cropped Image"}),r(o,"cropUploadImage",{id:"crop.uploadImage",defaultMessage:"Upload Image to Crop"}),r(o,"upload",{id:"crop.upload",defaultMessage:"Upload"}),r(o,"cropBoundingBox",{id:"crop.boundingBox",defaultMessage:"Bounding Box (px)"}),r(o,"cropX",{id:"crop.X",defaultMessage:"X"}),r(o,"cropY",{id:"crop.Y",defaultMessage:"Y"}),r(o,"cropWidth",{id:"crop.width",defaultMessage:"Width"}),r(o,"cropHeight",{id:"crop.height",defaultMessage:"Height"}),r(o,"cropAspectRatio",{id:"crop.aspectRatio",defaultMessage:"Aspect Ratio"}),r(o,"cropFree",{id:"crop.free",defaultMessage:"Free"}),r(o,"cropScaleRotate",{id:"crop.scaleRotate",defaultMessage:"Scale & Rotate"}),r(o,"cropRotate",{id:"crop.rotate",defaultMessage:"Rotate"}),r(o,"cropScale",{id:"crop.scale",defaultMessage:"Scale"}),o))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(5),a=r(o),i=n(32),s=r(i),l=function(e){var t=Object.assign({},{assetsBasePath:"./assets/",iconSVG:"./img/icons.svg"},e.config);return a.default.createElement("svg",{"aria-hidden":void 0===e.ariaHidden||e.ariaHidden,className:"icon icon-"+e.icon},a.default.createElement("use",{xlinkHref:s.default.join(t.assetsBasePath,t.iconSVG)+"#icon-"+e.icon}))};t.default=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){return Array.isArray(e)?e:Array.from(e)}function a(e,t){try{var n=new URL(e,window.location.origin);return Object.keys(t).forEach(function(e){return n.searchParams.append(e,t[e])}),n}catch(o){var n,r=function(){console.log(o),n=e.indexOf("?")>-1?e.substr(0,e.indexOf("?"))+"?":e+"?";var r=[];return Object.keys(t).forEach(function(e){return r.push(e+"="+t[e])}),n+=r.join("&"),{v:n}}();if("object"===("undefined"==typeof r?"undefined":h(r)))return r.v}}function i(e){var t={time:(new Date).getTime(),target:e.currentTarget},n=t.target===_.target&&t.time-_.time=65&&t<=90?e.toLowerCase():"__"+("000"+t.toString(16)).slice(-4)})}function u(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,o=[];for(t=0,n=e.length;t1&&void 0!==arguments[1]?arguments[1]:"||",n=e.split(t),r=o(n),a=r[0],i=r.slice(1),s=i.join("||");return[a,s]}function p(e,t,n){if(t[e.sort.by]===n[e.sort.by])return 0;var r=void 0;switch(e.sort.by){case"dimensions":try{r=t.dimensions[0]*t.dimensions[1]>n.dimensions[0]*n.dimensions[1]?1:-1}catch(e){console.log(e)}break;case"editedOn":r=new Date(t.editedOn).getTime()>new Date(n.editedOn).getTime()?1:-1;break;default:r=t[e.sort.by]>n[e.sort.by]?1:-1}return e.sort.dir===g?r:0-r}function f(e,t){console.log("runPrefixMethod");for(var n,r,o=["webkit","moz","ms","o",""],a=0;a=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!o;a--){var i=a>=0?arguments[a]:e.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");i&&(t=i+"/"+t,o="/"===i.charAt(0))}return t=n(r(t.split("/"),function(e){return!!e}),!o).join("/"),(o?"/":"")+t||"."},t.normalize=function(e){var o=t.isAbsolute(e),a="/"===i(e,-1);return e=n(r(e.split("/"),function(e){return!!e}),!o).join("/"),e||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var o=r(e.split("/")),a=r(n.split("/")),i=Math.min(o.length,a.length),s=i,l=0;l1&&void 0!==arguments[1]?arguments[1]:{},n=[],i=0,s=void 0,l=void 0,u=void 0,c=void 0,d=void 0,p=void 0,f=void 0,h=void 0,m=void 0,v=void 0,g=void 0,y=void 0,b=void 0,_=void 0;if(isNaN(e))throw new Error("Invalid arguments");return u=t.bits===!0,g=t.unix===!0,l=t.base||2,v=void 0!==t.round?t.round:g?1:2,y=void 0!==t.spacer?t.spacer:g?"":" ",_=t.symbols||t.suffixes||{},b=2===l?t.standard||"jedec":"jedec",m=t.output||"string",d=t.fullform===!0,p=t.fullforms instanceof Array?t.fullforms:[],s=void 0!==t.exponent?t.exponent:-1,h=Number(e),f=h<0,c=l>2?1e3:1024,f&&(h=-h),(s===-1||isNaN(s))&&(s=Math.floor(Math.log(h)/Math.log(c)),s<0&&(s=0)),s>8&&(s=8),0===h?(n[0]=0,n[1]=g?"":o[b][u?"bits":"bytes"][s]):(i=h/(2===l?Math.pow(2,10*s):Math.pow(1e3,s)),u&&(i*=8,i>=c&&s<8&&(i/=c,s++)),n[0]=Number(i.toFixed(s>0?v:0)),n[1]=10===l&&1===s?u?"kb":"kB":o[b][u?"bits":"bytes"][s],g&&(n[1]="jedec"===b?n[1].charAt(0):s>0?n[1].replace(/B$/,""):n[1],r.test(n[1])&&(n[0]=Math.floor(n[0]),n[1]=""))),f&&(n[0]=-n[0]),n[1]=_[n[1]]||n[1],"array"===m?n:"exponent"===m?s:"object"===m?{value:n[0],suffix:n[1],symbol:n[1]}:(d&&(n[1]=p[s]?p[s]:a[b][s]+(u?"bit":"byte")+(1===n[0]?"":"s")),n.join(y))}var r=/^(b|B)$/,o={iec:{bits:["b","Kib","Mib","Gib","Tib","Pib","Eib","Zib","Yib"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},a={iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]};n.partial=function(e){return function(t){return n(t,e)}},e.exports=n}("undefined"!=typeof window?window:t)}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function r(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}}var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=r()?Object.assign:function(e,t){for(var r,s,l=n(e),u=1;u":">","<":"<",'"':""","'":"'"},a=/[&><"']/g;e.exports=r},[904,20],[806,2],[831,48,88,282,586,35,302,9,181],108,[868,115],[887,91,302,177],[891,2],112,113,[904,21],[806,3],[831,50,93,315,656,37,335,11,200],108,[868,124],[887,96,335,196],[891,3],112,113,[904,22],[806,4],[831,52,98,349,725,39,369,13,219],108,[868,133],[887,101,369,215],[891,4],112,113,[904,23],function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.compose=t.applyMiddleware=t.bindActionCreators=t.combineReducers=t.createStore=void 0;var o=n(379),a=r(o),i=n(779),s=r(i),l=n(778),u=r(l),c=n(777),d=r(c),p=n(378),f=r(p),h=n(380);r(h);t.createStore=a.default,t.combineReducers=s.default,t.bindActionCreators=u.default,t.applyMiddleware=d.default,t.compose=f.default},function(e,t,n){var r,o;!function(a,i){r=i,o="function"==typeof r?r.call(t,n,t,e):r,!(void 0!==o&&(e.exports=o))}("undefined"!=typeof window?window:this,function(){"use strict";function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var n=this._events=this._events||{},r=n[e]=n[e]||[];return r.indexOf(t)==-1&&r.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var n=this._onceEvents=this._onceEvents||{},r=n[e]=n[e]||{};return r[t]=!0,this}},t.off=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){var r=n.indexOf(t);return r!=-1&&n.splice(r,1),this}},t.emitEvent=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){var r=0,o=n[r];t=t||[];for(var a=this._onceEvents&&this._onceEvents[e];o;){var i=a&&a[o];i&&(this.off(e,o),delete a[o]),o.apply(this,t),r+=i?0:1,o=n[r]}return this}},e})},function(e,t,n){"use strict";var r={};e.exports=r},function(e,t,n){var r;!function(o,a){"use strict";r=function(){return a()}.call(t,n,t,e),!(void 0!==r&&(e.exports=r))}(window,function(){"use strict";function e(e){var t=parseFloat(e),n=e.indexOf("%")==-1&&!isNaN(t);return n&&t}function t(){}function n(){for(var e={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},t=0;t