File: D:/HostingSpaces/PGeelen/planning.budelaandekook.nl/wwwroot/wwwroot/dist/app.js.map
{"version":3,"sources":["..\\..\\webpack/bootstrap d0adb847ba0a03303501","..\\..\\./~/aurelia-dependency-injection/dist/native-modules/aurelia-dependency-injection.js","..\\..\\./~/aurelia-pal/dist/native-modules/aurelia-pal.js","..\\..\\./~/aurelia-path/dist/native-modules/aurelia-path.js","..\\..\\./~/aurelia-auth/dist/commonjs/base-config.js","..\\..\\./~/aurelia-auth/dist/commonjs/auth-utilities.js","..\\..\\./~/aurelia-loader/dist/native-modules/aurelia-loader.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/repeat-utilities.js","..\\..\\./~/aurelia-task-queue/dist/native-modules/aurelia-task-queue.js","..\\..\\./~/aurelia-auth/dist/commonjs/authentication.js","..\\..\\./~/aurelia-auth/dist/commonjs/storage.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/aurelia-hide-style.js","..\\..\\./~/aurelia-polyfills/dist/native-modules/aurelia-polyfills.js","..\\..\\./~/aurelia-templating/dist/native-modules/aurelia-templating.js","..\\..\\./~/aurelia-auth/dist/commonjs/popup.js","..\\..\\./~/aurelia-history/dist/native-modules/aurelia-history.js","..\\..\\./~/aurelia-hot-module-reload/dist/native-modules/aurelia-hot-module-reload.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/abstract-repeater.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/analyze-view-factory.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/array-repeat-strategy.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/binding-signaler.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/html-sanitizer.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/map-repeat-strategy.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/null-repeat-strategy.js","..\\..\\./~/aurelia-binding/dist/native-modules/aurelia-binding.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/number-repeat-strategy.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/repeat-strategy-locator.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/set-repeat-strategy.js","..\\..\\./~/bootstrap/dist/fonts/glyphicons-halflings-regular.eot","..\\..\\./~/html-entities/lib/html5-entities.js","..\\..\\./~/process/browser.js","..\\..\\(webpack)/buildin/global.js","..\\..\\./~/aurelia-bootstrapper/dist/native-modules/aurelia-bootstrapper.js","..\\..\\./~/aurelia-loader-webpack/dist/native-modules/aurelia-loader-webpack.js","..\\..\\./~/aurelia-webpack-plugin/dist/aurelia-entry.js","..\\..\\./~/jquery/dist/jquery.js","..\\..\\(webpack)-hot-middleware/client.js","..\\..\\./~/ansi-html/index.js","..\\..\\./~/ansi-regex/index.js","..\\..\\./~/aurelia-auth/dist/commonjs/auth-fetch-config.js","..\\..\\./~/aurelia-auth/dist/commonjs/auth-service.js","..\\..\\./~/aurelia-auth/dist/commonjs/authorize-step.js","..\\..\\./~/aurelia-auth/dist/commonjs/oAuth1.js","..\\..\\./~/aurelia-auth/dist/commonjs/oAuth2.js","..\\..\\./~/aurelia-hot-module-reload/dist/native-modules/hmr-css-resource.js","..\\..\\./~/aurelia-hot-module-reload/dist/native-modules/render-utils.js","..\\..\\./~/aurelia-fetch-client/dist/native-modules/aurelia-fetch-client.js","..\\..\\./~/aurelia-hot-module-reload/dist/native-modules/view-model-traverse-controller.js","..\\..\\./~/aurelia-hot-module-reload/dist/native-modules/view-traverse-controller.js","..\\..\\./~/aurelia-route-recognizer/dist/native-modules/aurelia-route-recognizer.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/css-resource.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/dynamic-element.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/html-resource-plugin.js","..\\..\\./~/aurelia-templating-router/dist/native-modules/route-loader.js","..\\..\\./~/bootstrap/dist/js/npm.js","..\\..\\./~/bootstrap/js/affix.js","..\\..\\./~/bootstrap/js/alert.js","..\\..\\./~/css-loader/lib/css-base.js","..\\..\\./~/bootstrap/js/button.js","..\\..\\./~/bootstrap/js/carousel.js","..\\..\\./~/bootstrap/js/collapse.js","..\\..\\./~/bootstrap/js/dropdown.js","..\\..\\./~/bootstrap/js/modal.js","..\\..\\./~/bootstrap/js/popover.js","..\\..\\./~/bootstrap/js/scrollspy.js","..\\..\\./~/bootstrap/js/tab.js","..\\..\\./~/bootstrap/js/tooltip.js","..\\..\\./~/bootstrap/js/transition.js","..\\..\\./~/aurelia-metadata/dist/native-modules/aurelia-metadata.js","..\\..\\./~/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf","..\\..\\./~/bootstrap/dist/fonts/glyphicons-halflings-regular.woff","..\\..\\./~/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2","..\\..\\./~/html-entities/index.js","..\\..\\./~/html-entities/lib/html4-entities.js","..\\..\\./~/html-entities/lib/xml-entities.js","..\\..\\./~/isomorphic-fetch/fetch-npm-browserify.js","..\\..\\./~/querystring-es3/decode.js","..\\..\\./~/querystring-es3/encode.js","..\\..\\./~/querystring-es3/index.js","..\\..\\./~/aurelia-router/dist/native-modules/aurelia-router.js","..\\..\\./~/setimmediate/setImmediate.js","..\\..\\./~/strip-ansi/index.js","..\\..\\./~/timers-browserify/main.js","..\\..\\./ClientApp/auth-config.ts","..\\..\\./ClientApp/app/components/login/img/logo.jpg","..\\..\\./ClientApp/app/components/navmenu/img/navbar.jpg","..\\..\\./ClientApp/app/components/schedule/img/hoofdgerecht-gray.png","..\\..\\./ClientApp/app/components/schedule/img/nagerecht-gray.png","..\\..\\./ClientApp/app/components/schedule/img/voorgerecht-gray.png","..\\..\\./~/bootstrap/dist/fonts/glyphicons-halflings-regular.svg","..\\..\\./~/aurelia-logging/dist/native-modules/aurelia-logging.js","..\\..\\(webpack)-hot-middleware/client-overlay.js","..\\..\\(webpack)-hot-middleware/process-update.js","..\\..\\(webpack)/buildin/module.js","..\\..\\./~/whatwg-fetch/fetch.js","..\\..\\./ClientApp/app/components/app/app.ts","..\\..\\./ClientApp/app/components/app/app.html","..\\..\\./ClientApp/app/components/app/app.scss","..\\..\\./ClientApp/app/components/app/custom-bootstrap.scss","..\\..\\./ClientApp/app/components/home/home.ts","..\\..\\./ClientApp/app/components/home/home.html","..\\..\\./ClientApp/app/components/home/home.scss","..\\..\\./ClientApp/app/components/letters/letters.ts","..\\..\\./ClientApp/app/components/letters/letters.html","..\\..\\./ClientApp/app/components/letters/letters.scss","..\\..\\./ClientApp/app/components/login/login.ts","..\\..\\./ClientApp/app/components/login/login.html","..\\..\\./ClientApp/app/components/login/login.scss","..\\..\\./ClientApp/app/components/navmenu/navmenu.ts","..\\..\\./ClientApp/app/components/navmenu/navmenu.html","..\\..\\./ClientApp/app/components/navmenu/navmenu.scss","..\\..\\./ClientApp/app/components/preferences/preferences.ts","..\\..\\./ClientApp/app/components/preferences/preferences.html","..\\..\\./ClientApp/app/components/preferences/preferences.scss","..\\..\\./ClientApp/app/components/schedule/schedule.ts","..\\..\\./ClientApp/app/components/schedule/schedule.html","..\\..\\./ClientApp/app/components/schedule/schedule.scss","..\\..\\./ClientApp/app/components/schedules/schedules.ts","..\\..\\./ClientApp/app/components/schedules/schedules.html","..\\..\\./ClientApp/app/components/schedules/schedules.scss","..\\..\\./ClientApp/app/components/user/user.ts","..\\..\\./ClientApp/app/components/user/user.html","..\\..\\./ClientApp/app/components/user/user.scss","..\\..\\./~/au-table/dist/commonjs/index.js","..\\..\\./~/au-table/dist/commonjs/au-table.js","..\\..\\./~/au-table/dist/commonjs/au-table-pagination.js","..\\..\\./~/au-table/dist/commonjs/au-table-pagination.html","..\\..\\./~/au-table/dist/commonjs/au-table-select.js","..\\..\\./~/au-table/dist/commonjs/au-table-sort.js","..\\..\\./~/aurelia-auth/dist/commonjs/aurelia-auth.js","..\\..\\./~/aurelia-auth/dist/commonjs/auth-filter.js","..\\..\\./~/aurelia-event-aggregator/dist/native-modules/aurelia-event-aggregator.js","..\\..\\./~/aurelia-framework/dist/native-modules/aurelia-framework.js","..\\..\\./~/aurelia-history-browser/dist/native-modules/aurelia-history-browser.js","..\\..\\./~/aurelia-logging-console/dist/native-modules/aurelia-logging-console.js","..\\..\\./~/aurelia-pal-browser/dist/native-modules/aurelia-pal-browser.js","..\\..\\./~/aurelia-templating-binding/dist/native-modules/aurelia-templating-binding.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/aurelia-templating-resources.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/attr-binding-behavior.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/binding-mode-behaviors.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/compose.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/debounce-binding-behavior.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/focus.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/hide.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/if.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/repeat.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/replaceable.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/sanitize-html.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/self-binding-behavior.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/show.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/signal-binding-behavior.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/throttle-binding-behavior.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/update-trigger-binding-behavior.js","..\\..\\./~/aurelia-templating-resources/dist/native-modules/with.js","..\\..\\./~/aurelia-templating-router/dist/native-modules/aurelia-templating-router.js","..\\..\\./~/aurelia-templating-router/dist/native-modules/route-href.js","..\\..\\./~/aurelia-templating-router/dist/native-modules/router-view.js","..\\..\\./ClientApp/boot.ts","..\\..\\./~/bootstrap/dist/css/bootstrap.css"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA,mEAA2D;AAC3D;AACA;AACA,WAAG;;AAEH,oDAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA,cAAM;AACN;AACA;AACA,cAAM;AACN;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;AACJ;;;;AAIA;AACA,sDAA8C;AAC9C;AACA,oCAA4B;AAC5B,qCAA6B;AAC7B,yCAAiC;;AAEjC,+CAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAAsC;AACtC;AACA;AACA,qCAA6B;AAC7B,qCAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAAoB,gBAAgB;AACpC;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA,4BAAoB,gBAAgB;AACpC;AACA;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAiB,8BAA8B;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;AACJ;;AAEA,4DAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA,aAAK;AACL,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sBAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAe,uCAAuC;AACtD;AACA;AACA;AACA;AACA;AACA,uBAAe,sBAAsB;AACrC;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAa,wCAAwC;AACrD;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA,gBAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,8CAAsC,uBAAuB;;AAE7D;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnsBA;AAAA;;;;AAI6B;AACJ;;AAEzB;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA,yGAAyG,eAAe;AACxH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yGAAyG,eAAe;AACxH;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uGAAuG,eAAe;AACtH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;;;AAIA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oEAAoE,eAAe;AACnF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,C;;;;;;;;;;;;;;;;;ACxuBA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AC7FA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA,qCAAqC,UAAU;AAC/C;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,oCAAoC,SAAS;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA,gFAAgF;AAChF,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,C;;;;;;;;ACtMA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,yBAAyB;AACzB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;AC5MD;;AAEA;AACA;AACA,CAAC;;AAED,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACjLA;AAAA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;;;AAIxhB;AACR;;AAEjB;;;AAGA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;;;;;AClI4F;;AAE7F;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,qBAAqB;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;AC1FA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;;;AAIvN;;AAEvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8DAA8D,kBAAkB;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;ACvMA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,e;;;;;;;;ACtLD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,e;;;;;;;;;;;;AChDsB;;AAEvB;;AAEA,uDAAuD,yBAAyB,EAAE;;AAElF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE3N;;AAEnB;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,+BAA+B;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA,+CAA+C,eAAe;AAC9D;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa,IAAI;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA,SAAS;AACT;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,8CAA8C;AAC9C;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wDAAwD,0BAA0B,IAAI;AACtF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/zBA;AAAA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;;;AAI1Q;AACqC;AACJ;AACR;AACe;AACF;AACsH;AACxI;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+FAAkD,2DAA2D;AAC7G;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,+CAA+C,QAAQ;AACvD;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,QAAQ;AACvD;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA,8CAA8C,QAAQ;AACtD;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;;AAEP;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,QAAQ;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,qBAAqB,QAAQ;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,QAAQ;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb,OAAO;AACP;AACA;AACA,eAAe;AACf,SAAS;AACT;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,OAAO;AACP;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,qCAAqC,QAAQ;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;;AAEA;AACA,qCAAqC,QAAQ;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC,QAAQ;AAC/C;AACA;;AAEA;AACA,0CAA0C,QAAQ;AAClD;AACA;;AAEA;AACA,uCAAuC,QAAQ;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;;AAEA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,QAAQ;AAClD;AACA;;AAEA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,oCAAoC;AACpC,8BAA8B;AAC9B,kCAAkC;AAClC,sCAAsC;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA;AACA,mBAAmB,QAAQ;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,iDAAiD,QAAQ;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,KAAK;AACL;AACA,8CAA8C,UAAU;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0FAA0F;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,kEAAkE;AAClG,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,KAAK;AACL,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,wDAAwD,YAAY;AACpE;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,wDAAwD,YAAY;AACpE;AACA;AACA;AACA,OAAO;AACP,sDAAsD,YAAY;AAClE;AACA;AACA;AACA,KAAK;AACL,oDAAoD,YAAY;AAChE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4CAA4C,YAAY;AACxD;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,UAAU;AAClD;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B;;AAE/B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,8CAA8C;;AAE9C;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,iB;;;;;;;;ACxsJD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC,e;;;;;;;;;;;ACrJD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;;;;;;;ACpCD;AAAA;AACA;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,iEAAiE,uBAAuB,EAAE,4BAA4B;AACrJ;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,YAAY;AACZ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACc;AACG;AAC4B;AACzB;AACS;AACA;AACG;AAC2B;AAC3D,+BAA+B,0BAA0B,aAAa,oBAAoB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4CAA4C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,wKAA0F,EAAE;AACtK,iFAAiF,yIAA2D,EAAE;AAC9I,kFAAkF,0IAA4D,EAAE;AAChJ;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;;;;;;;;;;;;ACtQR;AACA;;;AAGA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;ACxDD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;;AC/C4F;AACtE;;AAEtB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;AC1OuB;;AAExB;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;ACrBD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;ACZ2D;;AAE5D;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;ACzGD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdO;AACA;AACA;;AAER,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;;;AAI5e;AACwB;AACJ;AACD;;AAEnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,eAAe;AACnC;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA,qBAAqB,gBAAgB;AACrC,sBAAsB,kBAAkB;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD,cAAc;AAChE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gDAAgD,eAAe;AAC/D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4CAA4C,eAAe;AAC3D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;;AAEQ;AACR;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,eAAe;AAC7D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oDAAoD,eAAe;AACnE;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kDAAkD,eAAe;AACjE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB;;AAEnB,8CAA8C,eAAe;AAC7D;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,yBAAyB,EAAE;AAC3B;AACA;;AAEA;;AAEA,4BAA4B,UAAU;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;;AAEA;AACA,yDAAyD;AACzD;AACA;;AAEA;AACA;;AAEA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK,+BAA+B;AACpC;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kIAAkI;AACzI;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB;;AAElB,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA,wEAAwE;AACxE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA,kBAAkB;;AAElB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6FAA6F;;AAE7F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;;AAE1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP,sMAAsM,YAAY;AAClN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,4CAA4C,iCAAiC;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,eAAe;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,aAAa;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD,oBAAoB;;AAE3E;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AC3yK4D;;AAE5D;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;AACA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;;;;ACvD4B;AACC;AACF;AACA;AACG;;AAE/B;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;AChD2D;;AAE5D;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,G;;;;;;;AC/FD,gF;;;;;;;ACAA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7LA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLtC;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;;ACpBA;AACkC;;AAElC;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH,kDAAgG;;AAEhG;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,qB;;;;;;;;;;;;;;;AChKA;AAAA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,iEAAiE,uBAAuB,EAAE,4BAA4B;AACrJ;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,YAAY;AACZ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACiB;AACA;AACO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AACO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iCAAiC,EAAE,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,EAAE;AACf,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,+BAA+B,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,kEAAkE,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,kEAAkE,EAAE;AACzI,0EAA0E,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6BAA6B,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;;;;;;ACzTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,YAAY;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA,gBAAgB,IAAI;;AAEpB;AACA;;AAEA;;AAEA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS;;AAET;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,6BAA6B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,gBAAgB,aAAa,EAAE;AAC/B;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;AACA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gEAAgE;;AAEhE;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,2DAA2D;;AAE3D;AACA;AACA,oFAAoF;;AAEpF;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD,UAAU,wCAAwC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA,CAAC;;;;AAID;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,QAAQ,GAAG;AACX;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;;AAEA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB,0BAA0B,wBAAwB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,0CAA0C;AAC1C,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU,cAAc;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA,OAAO;AACP,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC,sCAAsC;AAC9E,oCAAoC,uCAAuC;AAC3E,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC,qCAAqC;AACrC,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;AAEA;;AAEA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,EAAE;AACF;;AAEA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAgB;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;;AAEA;AACA;;AAEA,cAAc,sBAAsB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,cAAc;;AAExB;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uCAAuC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,uDAAuD;AAC9E;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,+BAA+B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA,SAAS,8BAA8B;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C,cAAc,WAAW;AACxE,mBAAmB,UAAU;AAC7B;AACA,sBAAsB,cAAc,sBAAsB,gBAAgB;AAC1E,gBAAgB,WAAW,YAAY;AACvC,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAA+D;AAC3E;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;;AAEf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,UAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iDAAiD,0BAA0B;AAC3E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,kBAAkB;AAC7B,cAAc;AACd,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,mBAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;;AAGA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,KAAK;AACL;;AAEA,WAAW;AACX,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,gDAAgD;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC;;AAElC;AACA,sBAAsB;AACtB,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA,cAAc,sDAAsD;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA,cAAc,mCAAmC;AACjD,eAAe,6DAA6D;AAC5E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AAAA;AACF;;;;;AAKA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA,CAAC;;;;;;;;AC3nUD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B,8BAA8B;AAC9B;AACA;AACA;AACA,mDAAmD,mBAAmB,EAAE;AACxE;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mCAAmC;AACnC,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;AC7PA;;AAEA;;AAEA;AACA,mDAAmD,IAAI,SAAS,MAAM,IAAI;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,GAAG;AACH;AACA,sBAAsB;AACtB,GAAG;AACH,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,UAAU,+BAA+B;AAChF;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC/KA;AACA;AACA,6BAA6B,YAAY,IAAI,IAAI,MAAM,IAAI;AAC3D;;;;;;;;;ACHA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,CAAC,e;;;;;;;;ACvCD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,0BAA0B,eAAe;AACxF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,sDAAsD,KAAK;AACzG;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oEAAoE;AACpE;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,CAAC,e;;;;;;;;AC9JD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,e;;;;;;;;AC9CD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,4CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC,e;;;;;;;;ACtFD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA+C;;AAE/C;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC,e;;;;;;;;;;;;;;;;AChLD;AAAA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACmB;AACF;AACQ;AACF;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC1G4B;AAC5B;AACA;AACA;AACA;AACA,4EAA4E;AAC5E,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mIAAmI,EAAE;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;ACnGA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;;;AAI9O;AACA,gEAAgE,KAAK,2BAA2B;AAChG;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA,iCAAiC,0BAA0B;AAC3D;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA,kDAAkD;AAClD;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB;AACtB;AACA,0BAA0B,aAAa;AACvC,sCAAsC,aAAa,YAAY,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+FAA+F,aAAa;AAC5G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;;;;;;;ACnPA;AAAA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,SAAS,0FAA0F,0FAA0F,SAAS,6FAA6F,+DAA+D,SAAS,uFAAuF,8DAA8D,SAAS,sFAAsF,wEAAwE,SAAS,2FAA2F;AACr3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,wDAAwD;AACjG;AACA,sGAAsG,SAAS,6DAA6D;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,SAAS,gEAAgE;AAC1L;AACA;AACA;AACA,gDAAgD,SAAS,kEAAkE;AAC3H;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,6GAA6G,SAAS,8DAA8D;AACpL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS,gFAAgF;AACrI;AACA,aAAa;AACb;AACA,KAAK;AACL,wGAAwG,SAAS,6DAA6D;AAC9K;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,SAAS,wEAAwE,uFAAuF,SAAS,sEAAsE;AACxW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,uCAAuC;AAChF;AACA;AACA;AACA;AACA,+GAA+G,SAAS,kEAAkE,uEAAuE,SAAS,yDAAyD;AACnU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,8EAA8E,SAAS,2DAA2D;AAClJ,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,SAAS,mEAAmE,0EAA0E,SAAS,8DAA8D,8DAA8D,SAAS,wDAAwD,sEAAsE,SAAS,4DAA4D;AACvlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,SAAS,+EAA+E,0EAA0E,SAAS,2EAA2E,8EAA8E,SAAS,gFAAgF,sEAAsE,SAAS,0EAA0E,sEAAsE,SAAS,4EAA4E;AACpzB;AACA;AACA,mGAAmG,SAAS,gFAAgF;AAC5L,SAAS;AACT;AACA;AACA;AACA,+FAA+F,SAAS,wGAAwG;AAChN,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G,SAAS,uEAAuE,qGAAqG,SAAS,8EAA8E;AAC1X;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,SAAS,gEAAgE,wFAAwF,SAAS,iEAAiE;AAClV;AACA;AACA,wFAAwF,SAAS,6GAA6G;AAC9M,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;;;ACvMmB;AACK;AACxB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qDAAqD,2EAA2E,EAAE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,oDAAoD,EAAE;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,qBAAqB,yBAAyB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wCAAwC,EAAE;AACzG,gEAAgE,yCAAyC,EAAE;AAC3G,wDAAwD,wBAAwB,EAAE;AAClF,KAAK;AACL,oBAAoB;AACpB;AACA;;;;;;;;;;;;;;;;;;ACrD6C;;AAE7C;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,wJAAwJ;AACxJ;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C,OAAO;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED,oEAAoE,KAAK;;AAEzE;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA,gBAAgB,4EAA4E;AAC5F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,cAAc,kCAAkC;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;AACA,cAAc,iCAAiC;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA,OAAO;AACP,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;;AAEA,qBAAqB,uCAAuC;;AAE5D;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yCAAyC,QAAQ;AACjD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;AACA;;AAEA,sCAAsC,OAAO;AAC7C;AACA;;AAEA,iBAAiB,yEAAyE;AAC1F;;AAEA;AACA;;AAEA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;;AC5fA;AAAA,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;;;AAIlb;AACzC;AACG;AACK;AACF;;AAEvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,C;;;;;;;;;;;;ACxG2C;AAC3C;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA,C;;;;;;;;;;;;ACtBqB;AACW;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;;AAEA,wBAAwB;AACxB,OAAO;AACP;AACA,GAAG;AACH,C;;;;;;;;;;;;;;ACjCA;AAAA;;;;AAIA,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE3d;AACmC;AACtB;AACL;AACR;AACW;;AAE5B;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH;AACA,C;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uB;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;;AAEH,CAAC;;;;;;;;;ACjKD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;AC7FD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL,CAAC;;;;;;;;;AC5HD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,sFAAsF,eAAe;AACrG;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,qDAAqD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,CAAC;;;;;;;;;AC5OD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH,CAAC;;;;;;;;;ACnND;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,sEAAsE,sBAAsB;AAC5F;AACA;AACA;;AAEA,CAAC;;;;;;;;;ACpKD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,gCAAgC;;AAEzE;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,yCAAyC,gCAAgC;;AAEzE;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,kEAAkE,kCAAkC;;AAEpG;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;;AAEH,CAAC;;;;;;;;;AClVD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA,iCAAiC;;AAEjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;AC3GD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH,CAAC;;;;;;;;;AC3KD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;;;;;;;;;AC1JD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;;AAEA,iCAAiC,KAAK;AACtC;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,iBAAiB,kCAAkC;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;AACvE,0BAA0B,WAAW,wEAAwE;AAC7G;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,qBAAqB;AACrB,8BAA8B,uDAAuD;;AAErF,sBAAsB;AACtB;;AAEA;AACA,oCAAoC,gFAAgF;AACpH,oCAAoC,gFAAgF;AACpH,oCAAoC,iFAAiF;AACrH,oCAAoC;;AAEpC;;AAEA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,OAAO,kFAAkF;AACzF;AACA;AACA,KAAK;AACL;AACA;AACA,qDAAqD;AACrD;AACA,OAAO,uDAAuD;AAC9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;ACvgBD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,CAAC;;;;;;;;;;;;;;;;AC1DD;AAAA,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;;;AAI3N;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC,+CAA+C;;AAElF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA,iEAAiE,aAAa;AAC9E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;AChQA,gF;;;;;;;ACAA,iF;;;;;;;ACAA,kF;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,SAAS;AACT,oCAAoC;AACpC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,SAAS;AACT,WAAW;AACX,WAAW;AACX,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,iBAAiB;AACjB,eAAe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,mCAAmC;AACnC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpFA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;;;AAI5e;AAC0B;AACN;AACF;AACQ;;AAE1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,uCAAuC,OAAO;AAC9C;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,4BAA4B,iFAAiF;AAC7G;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,iCAAiC,0BAA0B,gCAAgC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,+DAA+D;AAC1F;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,0EAA0E;;;;AAI1E;AACA,kCAAkC,+BAA+B;AACjE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,yEAAyE;AACzE,0EAA0E;;;;AAI1E;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,yBAAyB;AACtD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD,QAAQ;AACzD,wCAAwC;AACxC;AACA;AACA;AACA,OAAO;AACP,0CAA0C;AAC1C;;AAEA;AACA,iDAAiD,UAAU;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0EAA0E;;AAE1E;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4DAA4D;;AAElG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL,oEAAoE;AACpE,iBAAiB,iBAAiB;AAClC;AACA,sBAAsB;;AAEtB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL,sCAAsC,cAAc;AACpD,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,mBAAmB,6EAA6E;;AAEhG;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA,aAAa;;AAEb;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gEAAgE,2BAA2B;AAC3F,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP,gBAAgB;AAChB,OAAO;AACP;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF,GAAG;AACH,2CAA2C,+BAA+B;AAC1E,GAAG;AACH;AACA;AACA,C;;;;;;;ACtxDA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;ACzLD;AACA;;AAEA;AACA;AACA;;;;;;;;ACLA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;ACpDA,IAAI,MAAM,GAAG;IACT,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,aAAa;IACvB,cAAc,EAAE,KAAK;CACxB,CAAC;AAEF,yDAAe,MAAM,EAAC;;;;;;;;ACNtB,kCAAkC,ohQ;;;;;;;ACAlC,gF;;;;;;;ACAA,gF;;;;;;;ACAA,gF;;;;;;;ACAA,gF;;;;;;;ACAA,qCAAqC,wH;;;;;;;;;;;;;;;;;;ACErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;ACjGD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAkD,YAAY,iBAAiB;AAC/E;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,0FAA0F;;AAE1F;AACA,uBAAuB;AACvB,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;;AAEA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,SAAS;AACT;AACA,SAAS;AACT,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5ciE;AAER;AAG1D,IAAa,GAAG;IAGZ,aAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAE5C,CAAC;IAED,sBAAQ,GAAR;QACI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,6BAAe,GAAf,UAAgB,MAA2B,EAAE,MAAc;QACvD,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAChC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,2DAAa,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC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;;;;AC5BA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yLAAyL,2DAA2D,4CAA4C,2DAA2D,4CAA4C,2DAA2D,4CAA4C,2DAA2D;AACziB;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,uJAAuJ;AACvJ;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qKAAqK;AACrK;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yJAAyJ;AACzJ;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,+JAA+J;AAC/J;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4JAA4J;AAC5J;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0KAA0K;AAC1K;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC,yB;;;;;;;;AC1bD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,+GAA+G,2DAA2D;AAC1K;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,a;;;;;;;AC1PD,kgCAAkgC,WAAW,ivB;;;;;;;;ACA7gC;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kOAAkO,2DAA2D;AAC7R;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,yB;;;;;;;;ACjLD;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC,yB;;;;;;;;ACtJD;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mD;;;;;;;;AC/BA;;AAEA;AACA;AACA,CAAC;;AAED,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;;;AClBD;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIA;AACoB;AACH;AACwF;AACjF;AACO;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uGAA0D,kCAAkC;AAC5F;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA,iFAAiF;AACjF;;AAEA;;AAEA;AACA;AACA,oCAAoC,iHAAiH;AACrJ;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sGAAyD,kCAAkC;AAC3F;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE;;AAEzE;AACA;AACA;AACA,wBAAwB,sEAAsE;AAC9F;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC;AACpC;;AAEA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,4EAA4E,EAAE;AACxG;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,sEAAsE;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,CAAC;;AAEO;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+D;;;;;;;;;;;;;ACjdA;AAAA;;AAEA,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;;;AAIpd;AACN;;AAElB;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,GAAG,YAAY;;AAElD;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uEAAuE;;AAEvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACxSiB;;AAEjB;AACA;;AAEA;;AAEA;AACA;;AAEA,sFAAsF,aAAa;AACnG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0FAA0F,eAAe;AACzG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0FAA0F,eAAe;AACzG;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0FAA0F,eAAe;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;AClDD;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAEnO;;AAEvC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6CAA6C,cAAc;AAC3D;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAiD,QAAQ;AACzD;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,C;;;;;;;;;;;;;;;;;ACrdA;AAAA;;AAEA,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;;;AAI5e;AACoN;AACrK;;AAE/C;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;;AAEA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA,SAAS,qBAAqB;AAC9B;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACroBmB;AACD;AACL;AACE;AACE;AACF;AACA;AACsB;AACf;AACN;AACK;AACQ;AACL;AACM;AACiD;AAC7C;AACA;AACJ;AACE;AACN;AACa;AACZ;AACK;AACmB;AACtB;AACC;AACF;AACA;AACG;AACyG;AACxG;AACO;;AAEvC;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;ACjDgC;;AAEhC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;AChBD;AAAA;;;;AAIsB;AACN;;AAEhB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA,CAAC;;AAED;;;AAGA;AACA,CAAC;;AAED;;;AAGA;AACA,CAAC,c;;;;;;;;;;;;;AClCD;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;AAIA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAE4B;AACR;AACwE;AAC9E;;AAEd;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;;AC/LsB;;AAEtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;;ACtDD;AAAA;;;;AAI0B;AACJ;AACL;AACG;AACN;;AAEd;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,0B;;;;;;;;;;;;;ACtED;AAAA;;;;AAI2B;AACS;AACtB;AACmD;;AAEjE;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,0B;;;;;;;;;;;ACnCD;AAAA;;;;AAI0E;AACzD;;AAEjB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,qC;;;;;;;;;;;;;;;;AC7GD;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;AAIA,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEiB;AACS;AAC4F;AACtF;AACsD;AACtD;AACL;;AAE3B;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC,+C;;;;;;;;;;;ACrSD;AAAA;;;;AAIiB;AACyD;;AAE1E;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,qC;;;;;;;;;;;;AC9BD;AAAA;;;;AAIyB;AACR;AACO;;AAExB;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,0B;;;;;;;;;;;;ACtBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;AC7BD;AAAA;;;;AAI2B;AACS;AACtB;AACmD;;AAEjE;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,0B;;;;;;;;;;;;;ACjCyB;;AAE1B;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;ACtDqB;;AAEtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;AC9DD;AAAA;;;;AAIoC;;AAEpC;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA,wFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,oG;;;;;;;;;;;;AC9CD;AAAA;;;;AAIiB;AACyD;AAC1C;;AAEhC;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,qC;;;;;;;;;;;;;;;;;AC3CkB;AACsB;AACT;AACX;AACD;;AAEpB;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACVA;AAAA;;;;AAIoC;AACnB;AACA;AACH;AACd;;AAEA;;AAEA,+OAAgF,gDAAgD,wGAAqB,iDAAiD,wGAAqB,0CAA0C;AACrQ;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA,CAAC,2D;;;;;;;;;;;;;;;;AC5DD;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;AAIA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAE4B;AACI;AAC4H;AAC3I;AACA;AACH;;AAEd;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;AACA;;;;AAIA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,G;;;;;;;;;;;;;;;;ACpOyB;AAC4B;AACJ;AAC/B;AACoB;AAGvC,oDAFyF;AAEnF,mBAAoB,OAAgB;IACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAEpC,EAAE,CAAC,CAAC,IAAY,CAAC,CAAC,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,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","file":"app.js","sourcesContent":[" \tfunction hotDisposeChunk(chunkId) {\n \t\tdelete installedChunks[chunkId];\n \t}\n \tvar parentHotUpdateCallback = this[\"webpackHotUpdate\"];\n \tthis[\"webpackHotUpdate\"] = \r\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars\r\n \t\thotAddUpdateChunk(chunkId, moreModules);\r\n \t\tif(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\r\n \t} ;\r\n \t\r\n \tfunction hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars\r\n \t\tvar head = document.getElementsByTagName(\"head\")[0];\r\n \t\tvar script = document.createElement(\"script\");\r\n \t\tscript.type = \"text/javascript\";\r\n \t\tscript.charset = \"utf-8\";\r\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + hotCurrentHash + \".hot-update.js\";\r\n \t\thead.appendChild(script);\r\n \t}\r\n \t\r\n \tfunction hotDownloadManifest() { // eslint-disable-line no-unused-vars\r\n \t\treturn new Promise(function(resolve, reject) {\r\n \t\t\tif(typeof XMLHttpRequest === \"undefined\")\r\n \t\t\t\treturn reject(new Error(\"No browser support\"));\r\n \t\t\ttry {\r\n \t\t\t\tvar request = new XMLHttpRequest();\r\n \t\t\t\tvar requestPath = __webpack_require__.p + \"\" + hotCurrentHash + \".hot-update.json\";\r\n \t\t\t\trequest.open(\"GET\", requestPath, true);\r\n \t\t\t\trequest.timeout = 10000;\r\n \t\t\t\trequest.send(null);\r\n \t\t\t} catch(err) {\r\n \t\t\t\treturn reject(err);\r\n \t\t\t}\r\n \t\t\trequest.onreadystatechange = function() {\r\n \t\t\t\tif(request.readyState !== 4) return;\r\n \t\t\t\tif(request.status === 0) {\r\n \t\t\t\t\t// timeout\r\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" timed out.\"));\r\n \t\t\t\t} else if(request.status === 404) {\r\n \t\t\t\t\t// no update available\r\n \t\t\t\t\tresolve();\r\n \t\t\t\t} else if(request.status !== 200 && request.status !== 304) {\r\n \t\t\t\t\t// other failure\r\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\r\n \t\t\t\t} else {\r\n \t\t\t\t\t// success\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\r\n \t\t\t\t\t} catch(e) {\r\n \t\t\t\t\t\treject(e);\r\n \t\t\t\t\t\treturn;\r\n \t\t\t\t\t}\r\n \t\t\t\t\tresolve(update);\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t});\r\n \t}\r\n\n \t\r\n \t\r\n \tvar hotApplyOnUpdate = true;\r\n \tvar hotCurrentHash = \"d0adb847ba0a03303501\"; // eslint-disable-line no-unused-vars\r\n \tvar hotCurrentModuleData = {};\r\n \tvar hotCurrentChildModule; // eslint-disable-line no-unused-vars\r\n \tvar hotCurrentParents = []; // eslint-disable-line no-unused-vars\r\n \tvar hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars\r\n \t\r\n \tfunction hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars\r\n \t\tvar me = installedModules[moduleId];\r\n \t\tif(!me) return __webpack_require__;\r\n \t\tvar fn = function(request) {\r\n \t\t\tif(me.hot.active) {\r\n \t\t\t\tif(installedModules[request]) {\r\n \t\t\t\t\tif(installedModules[request].parents.indexOf(moduleId) < 0)\r\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\r\n \t\t\t\t} else {\r\n \t\t\t\t\thotCurrentParents = [moduleId];\r\n \t\t\t\t\thotCurrentChildModule = request;\r\n \t\t\t\t}\r\n \t\t\t\tif(me.children.indexOf(request) < 0)\r\n \t\t\t\t\tme.children.push(request);\r\n \t\t\t} else {\r\n \t\t\t\tconsole.warn(\"[HMR] unexpected require(\" + request + \") from disposed module \" + moduleId);\r\n \t\t\t\thotCurrentParents = [];\r\n \t\t\t}\r\n \t\t\treturn __webpack_require__(request);\r\n \t\t};\r\n \t\tvar ObjectFactory = function ObjectFactory(name) {\r\n \t\t\treturn {\r\n \t\t\t\tconfigurable: true,\r\n \t\t\t\tenumerable: true,\r\n \t\t\t\tget: function() {\r\n \t\t\t\t\treturn __webpack_require__[name];\r\n \t\t\t\t},\r\n \t\t\t\tset: function(value) {\r\n \t\t\t\t\t__webpack_require__[name] = value;\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t};\r\n \t\tfor(var name in __webpack_require__) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(__webpack_require__, name) && name !== \"e\") {\r\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\r\n \t\t\t}\r\n \t\t}\r\n \t\tfn.e = function(chunkId) {\r\n \t\t\tif(hotStatus === \"ready\")\r\n \t\t\t\thotSetStatus(\"prepare\");\r\n \t\t\thotChunksLoading++;\r\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\r\n \t\t\t\tfinishChunkLoading();\r\n \t\t\t\tthrow err;\r\n \t\t\t});\r\n \t\r\n \t\t\tfunction finishChunkLoading() {\r\n \t\t\t\thotChunksLoading--;\r\n \t\t\t\tif(hotStatus === \"prepare\") {\r\n \t\t\t\t\tif(!hotWaitingFilesMap[chunkId]) {\r\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tif(hotChunksLoading === 0 && hotWaitingFiles === 0) {\r\n \t\t\t\t\t\thotUpdateDownloaded();\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t};\r\n \t\treturn fn;\r\n \t}\r\n \t\r\n \tfunction hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars\r\n \t\tvar hot = {\r\n \t\t\t// private stuff\r\n \t\t\t_acceptedDependencies: {},\r\n \t\t\t_declinedDependencies: {},\r\n \t\t\t_selfAccepted: false,\r\n \t\t\t_selfDeclined: false,\r\n \t\t\t_disposeHandlers: [],\r\n \t\t\t_main: hotCurrentChildModule !== moduleId,\r\n \t\r\n \t\t\t// Module API\r\n \t\t\tactive: true,\r\n \t\t\taccept: function(dep, callback) {\r\n \t\t\t\tif(typeof dep === \"undefined\")\r\n \t\t\t\t\thot._selfAccepted = true;\r\n \t\t\t\telse if(typeof dep === \"function\")\r\n \t\t\t\t\thot._selfAccepted = dep;\r\n \t\t\t\telse if(typeof dep === \"object\")\r\n \t\t\t\t\tfor(var i = 0; i < dep.length; i++)\r\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\r\n \t\t\t\telse\r\n \t\t\t\t\thot._acceptedDependencies[dep] = callback || function() {};\r\n \t\t\t},\r\n \t\t\tdecline: function(dep) {\r\n \t\t\t\tif(typeof dep === \"undefined\")\r\n \t\t\t\t\thot._selfDeclined = true;\r\n \t\t\t\telse if(typeof dep === \"object\")\r\n \t\t\t\t\tfor(var i = 0; i < dep.length; i++)\r\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\r\n \t\t\t\telse\r\n \t\t\t\t\thot._declinedDependencies[dep] = true;\r\n \t\t\t},\r\n \t\t\tdispose: function(callback) {\r\n \t\t\t\thot._disposeHandlers.push(callback);\r\n \t\t\t},\r\n \t\t\taddDisposeHandler: function(callback) {\r\n \t\t\t\thot._disposeHandlers.push(callback);\r\n \t\t\t},\r\n \t\t\tremoveDisposeHandler: function(callback) {\r\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\r\n \t\t\t\tif(idx >= 0) hot._disposeHandlers.splice(idx, 1);\r\n \t\t\t},\r\n \t\r\n \t\t\t// Management API\r\n \t\t\tcheck: hotCheck,\r\n \t\t\tapply: hotApply,\r\n \t\t\tstatus: function(l) {\r\n \t\t\t\tif(!l) return hotStatus;\r\n \t\t\t\thotStatusHandlers.push(l);\r\n \t\t\t},\r\n \t\t\taddStatusHandler: function(l) {\r\n \t\t\t\thotStatusHandlers.push(l);\r\n \t\t\t},\r\n \t\t\tremoveStatusHandler: function(l) {\r\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\r\n \t\t\t\tif(idx >= 0) hotStatusHandlers.splice(idx, 1);\r\n \t\t\t},\r\n \t\r\n \t\t\t//inherit from previous dispose call\r\n \t\t\tdata: hotCurrentModuleData[moduleId]\r\n \t\t};\r\n \t\thotCurrentChildModule = undefined;\r\n \t\treturn hot;\r\n \t}\r\n \t\r\n \tvar hotStatusHandlers = [];\r\n \tvar hotStatus = \"idle\";\r\n \t\r\n \tfunction hotSetStatus(newStatus) {\r\n \t\thotStatus = newStatus;\r\n \t\tfor(var i = 0; i < hotStatusHandlers.length; i++)\r\n \t\t\thotStatusHandlers[i].call(null, newStatus);\r\n \t}\r\n \t\r\n \t// while downloading\r\n \tvar hotWaitingFiles = 0;\r\n \tvar hotChunksLoading = 0;\r\n \tvar hotWaitingFilesMap = {};\r\n \tvar hotRequestedFilesMap = {};\r\n \tvar hotAvailableFilesMap = {};\r\n \tvar hotDeferred;\r\n \t\r\n \t// The update info\r\n \tvar hotUpdate, hotUpdateNewHash;\r\n \t\r\n \tfunction toModuleId(id) {\r\n \t\tvar isNumber = (+id) + \"\" === id;\r\n \t\treturn isNumber ? +id : id;\r\n \t}\r\n \t\r\n \tfunction hotCheck(apply) {\r\n \t\tif(hotStatus !== \"idle\") throw new Error(\"check() is only allowed in idle status\");\r\n \t\thotApplyOnUpdate = apply;\r\n \t\thotSetStatus(\"check\");\r\n \t\treturn hotDownloadManifest().then(function(update) {\r\n \t\t\tif(!update) {\r\n \t\t\t\thotSetStatus(\"idle\");\r\n \t\t\t\treturn null;\r\n \t\t\t}\r\n \t\t\thotRequestedFilesMap = {};\r\n \t\t\thotWaitingFilesMap = {};\r\n \t\t\thotAvailableFilesMap = update.c;\r\n \t\t\thotUpdateNewHash = update.h;\r\n \t\r\n \t\t\thotSetStatus(\"prepare\");\r\n \t\t\tvar promise = new Promise(function(resolve, reject) {\r\n \t\t\t\thotDeferred = {\r\n \t\t\t\t\tresolve: resolve,\r\n \t\t\t\t\treject: reject\r\n \t\t\t\t};\r\n \t\t\t});\r\n \t\t\thotUpdate = {};\r\n \t\t\tvar chunkId = 0;\r\n \t\t\t{ // eslint-disable-line no-lone-blocks\r\n \t\t\t\t/*globals chunkId */\r\n \t\t\t\thotEnsureUpdateChunk(chunkId);\r\n \t\t\t}\r\n \t\t\tif(hotStatus === \"prepare\" && hotChunksLoading === 0 && hotWaitingFiles === 0) {\r\n \t\t\t\thotUpdateDownloaded();\r\n \t\t\t}\r\n \t\t\treturn promise;\r\n \t\t});\r\n \t}\r\n \t\r\n \tfunction hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars\r\n \t\tif(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\r\n \t\t\treturn;\r\n \t\thotRequestedFilesMap[chunkId] = false;\r\n \t\tfor(var moduleId in moreModules) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\r\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\r\n \t\t\t}\r\n \t\t}\r\n \t\tif(--hotWaitingFiles === 0 && hotChunksLoading === 0) {\r\n \t\t\thotUpdateDownloaded();\r\n \t\t}\r\n \t}\r\n \t\r\n \tfunction hotEnsureUpdateChunk(chunkId) {\r\n \t\tif(!hotAvailableFilesMap[chunkId]) {\r\n \t\t\thotWaitingFilesMap[chunkId] = true;\r\n \t\t} else {\r\n \t\t\thotRequestedFilesMap[chunkId] = true;\r\n \t\t\thotWaitingFiles++;\r\n \t\t\thotDownloadUpdateChunk(chunkId);\r\n \t\t}\r\n \t}\r\n \t\r\n \tfunction hotUpdateDownloaded() {\r\n \t\thotSetStatus(\"ready\");\r\n \t\tvar deferred = hotDeferred;\r\n \t\thotDeferred = null;\r\n \t\tif(!deferred) return;\r\n \t\tif(hotApplyOnUpdate) {\r\n \t\t\thotApply(hotApplyOnUpdate).then(function(result) {\r\n \t\t\t\tdeferred.resolve(result);\r\n \t\t\t}, function(err) {\r\n \t\t\t\tdeferred.reject(err);\r\n \t\t\t});\r\n \t\t} else {\r\n \t\t\tvar outdatedModules = [];\r\n \t\t\tfor(var id in hotUpdate) {\r\n \t\t\t\tif(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\r\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\tdeferred.resolve(outdatedModules);\r\n \t\t}\r\n \t}\r\n \t\r\n \tfunction hotApply(options) {\r\n \t\tif(hotStatus !== \"ready\") throw new Error(\"apply() is only allowed in ready status\");\r\n \t\toptions = options || {};\r\n \t\r\n \t\tvar cb;\r\n \t\tvar i;\r\n \t\tvar j;\r\n \t\tvar module;\r\n \t\tvar moduleId;\r\n \t\r\n \t\tfunction getAffectedStuff(updateModuleId) {\r\n \t\t\tvar outdatedModules = [updateModuleId];\r\n \t\t\tvar outdatedDependencies = {};\r\n \t\r\n \t\t\tvar queue = outdatedModules.slice().map(function(id) {\r\n \t\t\t\treturn {\r\n \t\t\t\t\tchain: [id],\r\n \t\t\t\t\tid: id\r\n \t\t\t\t};\r\n \t\t\t});\r\n \t\t\twhile(queue.length > 0) {\r\n \t\t\t\tvar queueItem = queue.pop();\r\n \t\t\t\tvar moduleId = queueItem.id;\r\n \t\t\t\tvar chain = queueItem.chain;\r\n \t\t\t\tmodule = installedModules[moduleId];\r\n \t\t\t\tif(!module || module.hot._selfAccepted)\r\n \t\t\t\t\tcontinue;\r\n \t\t\t\tif(module.hot._selfDeclined) {\r\n \t\t\t\t\treturn {\r\n \t\t\t\t\t\ttype: \"self-declined\",\r\n \t\t\t\t\t\tchain: chain,\r\n \t\t\t\t\t\tmoduleId: moduleId\r\n \t\t\t\t\t};\r\n \t\t\t\t}\r\n \t\t\t\tif(module.hot._main) {\r\n \t\t\t\t\treturn {\r\n \t\t\t\t\t\ttype: \"unaccepted\",\r\n \t\t\t\t\t\tchain: chain,\r\n \t\t\t\t\t\tmoduleId: moduleId\r\n \t\t\t\t\t};\r\n \t\t\t\t}\r\n \t\t\t\tfor(var i = 0; i < module.parents.length; i++) {\r\n \t\t\t\t\tvar parentId = module.parents[i];\r\n \t\t\t\t\tvar parent = installedModules[parentId];\r\n \t\t\t\t\tif(!parent) continue;\r\n \t\t\t\t\tif(parent.hot._declinedDependencies[moduleId]) {\r\n \t\t\t\t\t\treturn {\r\n \t\t\t\t\t\t\ttype: \"declined\",\r\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\r\n \t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\tparentId: parentId\r\n \t\t\t\t\t\t};\r\n \t\t\t\t\t}\r\n \t\t\t\t\tif(outdatedModules.indexOf(parentId) >= 0) continue;\r\n \t\t\t\t\tif(parent.hot._acceptedDependencies[moduleId]) {\r\n \t\t\t\t\t\tif(!outdatedDependencies[parentId])\r\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\r\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\r\n \t\t\t\t\t\tcontinue;\r\n \t\t\t\t\t}\r\n \t\t\t\t\tdelete outdatedDependencies[parentId];\r\n \t\t\t\t\toutdatedModules.push(parentId);\r\n \t\t\t\t\tqueue.push({\r\n \t\t\t\t\t\tchain: chain.concat([parentId]),\r\n \t\t\t\t\t\tid: parentId\r\n \t\t\t\t\t});\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\r\n \t\t\treturn {\r\n \t\t\t\ttype: \"accepted\",\r\n \t\t\t\tmoduleId: updateModuleId,\r\n \t\t\t\toutdatedModules: outdatedModules,\r\n \t\t\t\toutdatedDependencies: outdatedDependencies\r\n \t\t\t};\r\n \t\t}\r\n \t\r\n \t\tfunction addAllToSet(a, b) {\r\n \t\t\tfor(var i = 0; i < b.length; i++) {\r\n \t\t\t\tvar item = b[i];\r\n \t\t\t\tif(a.indexOf(item) < 0)\r\n \t\t\t\t\ta.push(item);\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// at begin all updates modules are outdated\r\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\r\n \t\tvar outdatedDependencies = {};\r\n \t\tvar outdatedModules = [];\r\n \t\tvar appliedUpdate = {};\r\n \t\r\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\r\n \t\t\tconsole.warn(\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\");\r\n \t\t};\r\n \t\r\n \t\tfor(var id in hotUpdate) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\r\n \t\t\t\tmoduleId = toModuleId(id);\r\n \t\t\t\tvar result;\r\n \t\t\t\tif(hotUpdate[id]) {\r\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tresult = {\r\n \t\t\t\t\t\ttype: \"disposed\",\r\n \t\t\t\t\t\tmoduleId: id\r\n \t\t\t\t\t};\r\n \t\t\t\t}\r\n \t\t\t\tvar abortError = false;\r\n \t\t\t\tvar doApply = false;\r\n \t\t\t\tvar doDispose = false;\r\n \t\t\t\tvar chainInfo = \"\";\r\n \t\t\t\tif(result.chain) {\r\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\r\n \t\t\t\t}\r\n \t\t\t\tswitch(result.type) {\r\n \t\t\t\t\tcase \"self-declined\":\r\n \t\t\t\t\t\tif(options.onDeclined)\r\n \t\t\t\t\t\t\toptions.onDeclined(result);\r\n \t\t\t\t\t\tif(!options.ignoreDeclined)\r\n \t\t\t\t\t\t\tabortError = new Error(\"Aborted because of self decline: \" + result.moduleId + chainInfo);\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"declined\":\r\n \t\t\t\t\t\tif(options.onDeclined)\r\n \t\t\t\t\t\t\toptions.onDeclined(result);\r\n \t\t\t\t\t\tif(!options.ignoreDeclined)\r\n \t\t\t\t\t\t\tabortError = new Error(\"Aborted because of declined dependency: \" + result.moduleId + \" in \" + result.parentId + chainInfo);\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"unaccepted\":\r\n \t\t\t\t\t\tif(options.onUnaccepted)\r\n \t\t\t\t\t\t\toptions.onUnaccepted(result);\r\n \t\t\t\t\t\tif(!options.ignoreUnaccepted)\r\n \t\t\t\t\t\t\tabortError = new Error(\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo);\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"accepted\":\r\n \t\t\t\t\t\tif(options.onAccepted)\r\n \t\t\t\t\t\t\toptions.onAccepted(result);\r\n \t\t\t\t\t\tdoApply = true;\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tcase \"disposed\":\r\n \t\t\t\t\t\tif(options.onDisposed)\r\n \t\t\t\t\t\t\toptions.onDisposed(result);\r\n \t\t\t\t\t\tdoDispose = true;\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t\tdefault:\r\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\r\n \t\t\t\t}\r\n \t\t\t\tif(abortError) {\r\n \t\t\t\t\thotSetStatus(\"abort\");\r\n \t\t\t\t\treturn Promise.reject(abortError);\r\n \t\t\t\t}\r\n \t\t\t\tif(doApply) {\r\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\r\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\r\n \t\t\t\t\tfor(moduleId in result.outdatedDependencies) {\r\n \t\t\t\t\t\tif(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) {\r\n \t\t\t\t\t\t\tif(!outdatedDependencies[moduleId])\r\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\r\n \t\t\t\t\t\t\taddAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]);\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t\tif(doDispose) {\r\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\r\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// Store self accepted outdated modules to require them later by the module system\r\n \t\tvar outdatedSelfAcceptedModules = [];\r\n \t\tfor(i = 0; i < outdatedModules.length; i++) {\r\n \t\t\tmoduleId = outdatedModules[i];\r\n \t\t\tif(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted)\r\n \t\t\t\toutdatedSelfAcceptedModules.push({\r\n \t\t\t\t\tmodule: moduleId,\r\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\r\n \t\t\t\t});\r\n \t\t}\r\n \t\r\n \t\t// Now in \"dispose\" phase\r\n \t\thotSetStatus(\"dispose\");\r\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\r\n \t\t\tif(hotAvailableFilesMap[chunkId] === false) {\r\n \t\t\t\thotDisposeChunk(chunkId);\r\n \t\t\t}\r\n \t\t});\r\n \t\r\n \t\tvar idx;\r\n \t\tvar queue = outdatedModules.slice();\r\n \t\twhile(queue.length > 0) {\r\n \t\t\tmoduleId = queue.pop();\r\n \t\t\tmodule = installedModules[moduleId];\r\n \t\t\tif(!module) continue;\r\n \t\r\n \t\t\tvar data = {};\r\n \t\r\n \t\t\t// Call dispose handlers\r\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\r\n \t\t\tfor(j = 0; j < disposeHandlers.length; j++) {\r\n \t\t\t\tcb = disposeHandlers[j];\r\n \t\t\t\tcb(data);\r\n \t\t\t}\r\n \t\t\thotCurrentModuleData[moduleId] = data;\r\n \t\r\n \t\t\t// disable module (this disables requires from this module)\r\n \t\t\tmodule.hot.active = false;\r\n \t\r\n \t\t\t// remove module from cache\r\n \t\t\tdelete installedModules[moduleId];\r\n \t\r\n \t\t\t// remove \"parents\" references from all children\r\n \t\t\tfor(j = 0; j < module.children.length; j++) {\r\n \t\t\t\tvar child = installedModules[module.children[j]];\r\n \t\t\t\tif(!child) continue;\r\n \t\t\t\tidx = child.parents.indexOf(moduleId);\r\n \t\t\t\tif(idx >= 0) {\r\n \t\t\t\t\tchild.parents.splice(idx, 1);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// remove outdated dependency from module children\r\n \t\tvar dependency;\r\n \t\tvar moduleOutdatedDependencies;\r\n \t\tfor(moduleId in outdatedDependencies) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {\r\n \t\t\t\tmodule = installedModules[moduleId];\r\n \t\t\t\tif(module) {\r\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\r\n \t\t\t\t\tfor(j = 0; j < moduleOutdatedDependencies.length; j++) {\r\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\r\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\r\n \t\t\t\t\t\tif(idx >= 0) module.children.splice(idx, 1);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// Not in \"apply\" phase\r\n \t\thotSetStatus(\"apply\");\r\n \t\r\n \t\thotCurrentHash = hotUpdateNewHash;\r\n \t\r\n \t\t// insert new code\r\n \t\tfor(moduleId in appliedUpdate) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\r\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// call accept handlers\r\n \t\tvar error = null;\r\n \t\tfor(moduleId in outdatedDependencies) {\r\n \t\t\tif(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {\r\n \t\t\t\tmodule = installedModules[moduleId];\r\n \t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\r\n \t\t\t\tvar callbacks = [];\r\n \t\t\t\tfor(i = 0; i < moduleOutdatedDependencies.length; i++) {\r\n \t\t\t\t\tdependency = moduleOutdatedDependencies[i];\r\n \t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\r\n \t\t\t\t\tif(callbacks.indexOf(cb) >= 0) continue;\r\n \t\t\t\t\tcallbacks.push(cb);\r\n \t\t\t\t}\r\n \t\t\t\tfor(i = 0; i < callbacks.length; i++) {\r\n \t\t\t\t\tcb = callbacks[i];\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\tcb(moduleOutdatedDependencies);\r\n \t\t\t\t\t} catch(err) {\r\n \t\t\t\t\t\tif(options.onErrored) {\r\n \t\t\t\t\t\t\toptions.onErrored({\r\n \t\t\t\t\t\t\t\ttype: \"accept-errored\",\r\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\r\n \t\t\t\t\t\t\t\terror: err\r\n \t\t\t\t\t\t\t});\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tif(!options.ignoreErrored) {\r\n \t\t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\t\terror = err;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// Load self accepted modules\r\n \t\tfor(i = 0; i < outdatedSelfAcceptedModules.length; i++) {\r\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\r\n \t\t\tmoduleId = item.module;\r\n \t\t\thotCurrentParents = [moduleId];\r\n \t\t\ttry {\r\n \t\t\t\t__webpack_require__(moduleId);\r\n \t\t\t} catch(err) {\r\n \t\t\t\tif(typeof item.errorHandler === \"function\") {\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\titem.errorHandler(err);\r\n \t\t\t\t\t} catch(err2) {\r\n \t\t\t\t\t\tif(options.onErrored) {\r\n \t\t\t\t\t\t\toptions.onErrored({\r\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\r\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\t\terror: err2,\r\n \t\t\t\t\t\t\t\torginalError: err\r\n \t\t\t\t\t\t\t});\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tif(!options.ignoreErrored) {\r\n \t\t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\t\terror = err2;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\terror = err;\r\n \t\t\t\t\t}\r\n \t\t\t\t} else {\r\n \t\t\t\t\tif(options.onErrored) {\r\n \t\t\t\t\t\toptions.onErrored({\r\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\r\n \t\t\t\t\t\t\tmoduleId: moduleId,\r\n \t\t\t\t\t\t\terror: err\r\n \t\t\t\t\t\t});\r\n \t\t\t\t\t}\r\n \t\t\t\t\tif(!options.ignoreErrored) {\r\n \t\t\t\t\t\tif(!error)\r\n \t\t\t\t\t\t\terror = err;\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\r\n \t\t// handle errors in accept handlers and self accepted module load\r\n \t\tif(error) {\r\n \t\t\thotSetStatus(\"fail\");\r\n \t\t\treturn Promise.reject(error);\r\n \t\t}\r\n \t\r\n \t\thotSetStatus(\"idle\");\r\n \t\treturn new Promise(function(resolve) {\r\n \t\t\tresolve(outdatedModules);\r\n \t\t});\r\n \t}\r\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n \t// Load entry module and return exports\n \treturn hotCreateRequire(94)(__webpack_require__.s = 94);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d0adb847ba0a03303501","var _dec, _class, _dec2, _class3, _dec3, _class5, _dec4, _class7, _dec5, _class9, _dec6, _class11, _dec7, _class13, _classInvokers;\n\n\n\nimport { protocol, metadata } from 'aurelia-metadata';\nimport { AggregateError } from 'aurelia-pal';\n\nexport var resolver = protocol.create('aurelia:resolver', function (target) {\n if (!(typeof target.get === 'function')) {\n return 'Resolvers must implement: get(container: Container, key: any): any';\n }\n\n return true;\n});\n\nexport var Lazy = (_dec = resolver(), _dec(_class = function () {\n function Lazy(key) {\n \n\n this._key = key;\n }\n\n Lazy.prototype.get = function get(container) {\n var _this = this;\n\n return function () {\n return container.get(_this._key);\n };\n };\n\n Lazy.of = function of(key) {\n return new Lazy(key);\n };\n\n return Lazy;\n}()) || _class);\n\nexport var All = (_dec2 = resolver(), _dec2(_class3 = function () {\n function All(key) {\n \n\n this._key = key;\n }\n\n All.prototype.get = function get(container) {\n return container.getAll(this._key);\n };\n\n All.of = function of(key) {\n return new All(key);\n };\n\n return All;\n}()) || _class3);\n\nexport var Optional = (_dec3 = resolver(), _dec3(_class5 = function () {\n function Optional(key) {\n var checkParent = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];\n\n \n\n this._key = key;\n this._checkParent = checkParent;\n }\n\n Optional.prototype.get = function get(container) {\n if (container.hasResolver(this._key, this._checkParent)) {\n return container.get(this._key);\n }\n\n return null;\n };\n\n Optional.of = function of(key) {\n var checkParent = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];\n\n return new Optional(key, checkParent);\n };\n\n return Optional;\n}()) || _class5);\n\nexport var Parent = (_dec4 = resolver(), _dec4(_class7 = function () {\n function Parent(key) {\n \n\n this._key = key;\n }\n\n Parent.prototype.get = function get(container) {\n return container.parent ? container.parent.get(this._key) : null;\n };\n\n Parent.of = function of(key) {\n return new Parent(key);\n };\n\n return Parent;\n}()) || _class7);\n\nexport var StrategyResolver = (_dec5 = resolver(), _dec5(_class9 = function () {\n function StrategyResolver(strategy, state) {\n \n\n this.strategy = strategy;\n this.state = state;\n }\n\n StrategyResolver.prototype.get = function get(container, key) {\n switch (this.strategy) {\n case 0:\n return this.state;\n case 1:\n var singleton = container.invoke(this.state);\n this.state = singleton;\n this.strategy = 0;\n return singleton;\n case 2:\n return container.invoke(this.state);\n case 3:\n return this.state(container, key, this);\n case 4:\n return this.state[0].get(container, key);\n case 5:\n return container.get(this.state);\n default:\n throw new Error('Invalid strategy: ' + this.strategy);\n }\n };\n\n return StrategyResolver;\n}()) || _class9);\n\nexport var Factory = (_dec6 = resolver(), _dec6(_class11 = function () {\n function Factory(key) {\n \n\n this._key = key;\n }\n\n Factory.prototype.get = function get(container) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n return container.invoke(_this2._key, rest);\n };\n };\n\n Factory.of = function of(key) {\n return new Factory(key);\n };\n\n return Factory;\n}()) || _class11);\n\nexport var NewInstance = (_dec7 = resolver(), _dec7(_class13 = function () {\n function NewInstance(key) {\n \n\n this.key = key;\n this.asKey = key;\n\n for (var _len2 = arguments.length, dynamicDependencies = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n dynamicDependencies[_key2 - 1] = arguments[_key2];\n }\n\n this.dynamicDependencies = dynamicDependencies;\n }\n\n NewInstance.prototype.get = function get(container) {\n var dynamicDependencies = this.dynamicDependencies.length > 0 ? this.dynamicDependencies.map(function (dependency) {\n return dependency['protocol:aurelia:resolver'] ? dependency.get(container) : container.get(dependency);\n }) : undefined;\n var instance = container.invoke(this.key, dynamicDependencies);\n container.registerInstance(this.asKey, instance);\n return instance;\n };\n\n NewInstance.prototype.as = function as(key) {\n this.asKey = key;\n return this;\n };\n\n NewInstance.of = function of(key) {\n for (var _len3 = arguments.length, dynamicDependencies = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n dynamicDependencies[_key3 - 1] = arguments[_key3];\n }\n\n return new (Function.prototype.bind.apply(NewInstance, [null].concat([key], dynamicDependencies)))();\n };\n\n return NewInstance;\n}()) || _class13);\n\nexport function getDecoratorDependencies(target, name) {\n var dependencies = target.inject;\n if (typeof dependencies === 'function') {\n throw new Error('Decorator ' + name + ' cannot be used with \"inject()\". Please use an array instead.');\n }\n if (!dependencies) {\n dependencies = metadata.getOwn(metadata.paramTypes, target).slice();\n target.inject = dependencies;\n }\n\n return dependencies;\n}\n\nexport function lazy(keyValue) {\n return function (target, key, index) {\n var params = getDecoratorDependencies(target, 'lazy');\n params[index] = Lazy.of(keyValue);\n };\n}\n\nexport function all(keyValue) {\n return function (target, key, index) {\n var params = getDecoratorDependencies(target, 'all');\n params[index] = All.of(keyValue);\n };\n}\n\nexport function optional() {\n var checkParentOrTarget = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n var deco = function deco(checkParent) {\n return function (target, key, index) {\n var params = getDecoratorDependencies(target, 'optional');\n params[index] = Optional.of(params[index], checkParent);\n };\n };\n if (typeof checkParentOrTarget === 'boolean') {\n return deco(checkParentOrTarget);\n }\n return deco(true);\n}\n\nexport function parent(target, key, index) {\n var params = getDecoratorDependencies(target, 'parent');\n params[index] = Parent.of(params[index]);\n}\n\nexport function factory(keyValue, asValue) {\n return function (target, key, index) {\n var params = getDecoratorDependencies(target, 'factory');\n var factory = Factory.of(keyValue);\n params[index] = asValue ? factory.as(asValue) : factory;\n };\n}\n\nexport function newInstance(asKeyOrTarget) {\n for (var _len4 = arguments.length, dynamicDependencies = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n dynamicDependencies[_key4 - 1] = arguments[_key4];\n }\n\n var deco = function deco(asKey) {\n return function (target, key, index) {\n var params = getDecoratorDependencies(target, 'newInstance');\n params[index] = NewInstance.of.apply(NewInstance, [params[index]].concat(dynamicDependencies));\n if (!!asKey) {\n params[index].as(asKey);\n }\n };\n };\n if (arguments.length >= 1) {\n return deco(asKeyOrTarget);\n }\n return deco();\n}\n\nexport function invoker(value) {\n return function (target) {\n metadata.define(metadata.invoker, value, target);\n };\n}\n\nexport function invokeAsFactory(potentialTarget) {\n var deco = function deco(target) {\n metadata.define(metadata.invoker, FactoryInvoker.instance, target);\n };\n\n return potentialTarget ? deco(potentialTarget) : deco;\n}\n\nexport var FactoryInvoker = function () {\n function FactoryInvoker() {\n \n }\n\n FactoryInvoker.prototype.invoke = function invoke(container, fn, dependencies) {\n var i = dependencies.length;\n var args = new Array(i);\n\n while (i--) {\n args[i] = container.get(dependencies[i]);\n }\n\n return fn.apply(undefined, args);\n };\n\n FactoryInvoker.prototype.invokeWithDynamicDependencies = function invokeWithDynamicDependencies(container, fn, staticDependencies, dynamicDependencies) {\n var i = staticDependencies.length;\n var args = new Array(i);\n\n while (i--) {\n args[i] = container.get(staticDependencies[i]);\n }\n\n if (dynamicDependencies !== undefined) {\n args = args.concat(dynamicDependencies);\n }\n\n return fn.apply(undefined, args);\n };\n\n return FactoryInvoker;\n}();\n\nFactoryInvoker.instance = new FactoryInvoker();\n\nexport function registration(value) {\n return function (target) {\n metadata.define(metadata.registration, value, target);\n };\n}\n\nexport function transient(key) {\n return registration(new TransientRegistration(key));\n}\n\nexport function singleton(keyOrRegisterInChild) {\n var registerInChild = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n return registration(new SingletonRegistration(keyOrRegisterInChild, registerInChild));\n}\n\nexport var TransientRegistration = function () {\n function TransientRegistration(key) {\n \n\n this._key = key;\n }\n\n TransientRegistration.prototype.registerResolver = function registerResolver(container, key, fn) {\n var existingResolver = container.getResolver(this._key || key);\n return existingResolver === undefined ? container.registerTransient(this._key || key, fn) : existingResolver;\n };\n\n return TransientRegistration;\n}();\n\nexport var SingletonRegistration = function () {\n function SingletonRegistration(keyOrRegisterInChild) {\n var registerInChild = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n \n\n if (typeof keyOrRegisterInChild === 'boolean') {\n this._registerInChild = keyOrRegisterInChild;\n } else {\n this._key = keyOrRegisterInChild;\n this._registerInChild = registerInChild;\n }\n }\n\n SingletonRegistration.prototype.registerResolver = function registerResolver(container, key, fn) {\n var targetContainer = this._registerInChild ? container : container.root;\n var existingResolver = targetContainer.getResolver(this._key || key);\n return existingResolver === undefined ? targetContainer.registerSingleton(this._key || key, fn) : existingResolver;\n };\n\n return SingletonRegistration;\n}();\n\nfunction validateKey(key) {\n if (key === null || key === undefined) {\n throw new Error('key/value cannot be null or undefined. Are you trying to inject/register something that doesn\\'t exist with DI?');\n }\n}\nexport var _emptyParameters = Object.freeze([]);\n\nmetadata.registration = 'aurelia:registration';\nmetadata.invoker = 'aurelia:invoker';\n\nvar resolverDecorates = resolver.decorates;\n\nexport var InvocationHandler = function () {\n function InvocationHandler(fn, invoker, dependencies) {\n \n\n this.fn = fn;\n this.invoker = invoker;\n this.dependencies = dependencies;\n }\n\n InvocationHandler.prototype.invoke = function invoke(container, dynamicDependencies) {\n return dynamicDependencies !== undefined ? this.invoker.invokeWithDynamicDependencies(container, this.fn, this.dependencies, dynamicDependencies) : this.invoker.invoke(container, this.fn, this.dependencies);\n };\n\n return InvocationHandler;\n}();\n\nfunction invokeWithDynamicDependencies(container, fn, staticDependencies, dynamicDependencies) {\n var i = staticDependencies.length;\n var args = new Array(i);\n\n while (i--) {\n args[i] = container.get(staticDependencies[i]);\n }\n\n if (dynamicDependencies !== undefined) {\n args = args.concat(dynamicDependencies);\n }\n\n return Reflect.construct(fn, args);\n}\n\nvar classInvokers = (_classInvokers = {}, _classInvokers[0] = {\n invoke: function invoke(container, Type) {\n return new Type();\n },\n\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\n}, _classInvokers[1] = {\n invoke: function invoke(container, Type, deps) {\n return new Type(container.get(deps[0]));\n },\n\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\n}, _classInvokers[2] = {\n invoke: function invoke(container, Type, deps) {\n return new Type(container.get(deps[0]), container.get(deps[1]));\n },\n\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\n}, _classInvokers[3] = {\n invoke: function invoke(container, Type, deps) {\n return new Type(container.get(deps[0]), container.get(deps[1]), container.get(deps[2]));\n },\n\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\n}, _classInvokers[4] = {\n invoke: function invoke(container, Type, deps) {\n return new Type(container.get(deps[0]), container.get(deps[1]), container.get(deps[2]), container.get(deps[3]));\n },\n\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\n}, _classInvokers[5] = {\n invoke: function invoke(container, Type, deps) {\n return new Type(container.get(deps[0]), container.get(deps[1]), container.get(deps[2]), container.get(deps[3]), container.get(deps[4]));\n },\n\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\n}, _classInvokers.fallback = {\n invoke: invokeWithDynamicDependencies,\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\n}, _classInvokers);\n\nfunction getDependencies(f) {\n if (!f.hasOwnProperty('inject')) {\n return [];\n }\n\n if (typeof f.inject === 'function') {\n return f.inject();\n }\n\n return f.inject;\n}\n\nexport var Container = function () {\n function Container(configuration) {\n \n\n if (configuration === undefined) {\n configuration = {};\n }\n\n this._configuration = configuration;\n this._onHandlerCreated = configuration.onHandlerCreated;\n this._handlers = configuration.handlers || (configuration.handlers = new Map());\n this._resolvers = new Map();\n this.root = this;\n this.parent = null;\n }\n\n Container.prototype.makeGlobal = function makeGlobal() {\n Container.instance = this;\n return this;\n };\n\n Container.prototype.setHandlerCreatedCallback = function setHandlerCreatedCallback(onHandlerCreated) {\n this._onHandlerCreated = onHandlerCreated;\n this._configuration.onHandlerCreated = onHandlerCreated;\n };\n\n Container.prototype.registerInstance = function registerInstance(key, instance) {\n return this.registerResolver(key, new StrategyResolver(0, instance === undefined ? key : instance));\n };\n\n Container.prototype.registerSingleton = function registerSingleton(key, fn) {\n return this.registerResolver(key, new StrategyResolver(1, fn === undefined ? key : fn));\n };\n\n Container.prototype.registerTransient = function registerTransient(key, fn) {\n return this.registerResolver(key, new StrategyResolver(2, fn === undefined ? key : fn));\n };\n\n Container.prototype.registerHandler = function registerHandler(key, handler) {\n return this.registerResolver(key, new StrategyResolver(3, handler));\n };\n\n Container.prototype.registerAlias = function registerAlias(originalKey, aliasKey) {\n return this.registerResolver(aliasKey, new StrategyResolver(5, originalKey));\n };\n\n Container.prototype.registerResolver = function registerResolver(key, resolver) {\n validateKey(key);\n\n var allResolvers = this._resolvers;\n var result = allResolvers.get(key);\n\n if (result === undefined) {\n allResolvers.set(key, resolver);\n } else if (result.strategy === 4) {\n result.state.push(resolver);\n } else {\n allResolvers.set(key, new StrategyResolver(4, [result, resolver]));\n }\n\n return resolver;\n };\n\n Container.prototype.autoRegister = function autoRegister(key, fn) {\n fn = fn === undefined ? key : fn;\n\n if (typeof fn === 'function') {\n var _registration = metadata.get(metadata.registration, fn);\n\n if (_registration === undefined) {\n return this.registerResolver(key, new StrategyResolver(1, fn));\n }\n\n return _registration.registerResolver(this, key, fn);\n }\n\n return this.registerResolver(key, new StrategyResolver(0, fn));\n };\n\n Container.prototype.autoRegisterAll = function autoRegisterAll(fns) {\n var i = fns.length;\n while (i--) {\n this.autoRegister(fns[i]);\n }\n };\n\n Container.prototype.unregister = function unregister(key) {\n this._resolvers.delete(key);\n };\n\n Container.prototype.hasResolver = function hasResolver(key) {\n var checkParent = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n validateKey(key);\n\n return this._resolvers.has(key) || checkParent && this.parent !== null && this.parent.hasResolver(key, checkParent);\n };\n\n Container.prototype.getResolver = function getResolver(key) {\n return this._resolvers.get(key);\n };\n\n Container.prototype.get = function get(key) {\n validateKey(key);\n\n if (key === Container) {\n return this;\n }\n\n if (resolverDecorates(key)) {\n return key.get(this, key);\n }\n\n var resolver = this._resolvers.get(key);\n\n if (resolver === undefined) {\n if (this.parent === null) {\n return this.autoRegister(key).get(this, key);\n }\n\n var _registration2 = metadata.get(metadata.registration, key);\n\n if (_registration2 === undefined) {\n return this.parent._get(key);\n }\n\n return _registration2.registerResolver(this, key, key).get(this, key);\n }\n\n return resolver.get(this, key);\n };\n\n Container.prototype._get = function _get(key) {\n var resolver = this._resolvers.get(key);\n\n if (resolver === undefined) {\n if (this.parent === null) {\n return this.autoRegister(key).get(this, key);\n }\n\n return this.parent._get(key);\n }\n\n return resolver.get(this, key);\n };\n\n Container.prototype.getAll = function getAll(key) {\n validateKey(key);\n\n var resolver = this._resolvers.get(key);\n\n if (resolver === undefined) {\n if (this.parent === null) {\n return _emptyParameters;\n }\n\n return this.parent.getAll(key);\n }\n\n if (resolver.strategy === 4) {\n var state = resolver.state;\n var i = state.length;\n var results = new Array(i);\n\n while (i--) {\n results[i] = state[i].get(this, key);\n }\n\n return results;\n }\n\n return [resolver.get(this, key)];\n };\n\n Container.prototype.createChild = function createChild() {\n var child = new Container(this._configuration);\n child.root = this.root;\n child.parent = this;\n return child;\n };\n\n Container.prototype.invoke = function invoke(fn, dynamicDependencies) {\n try {\n var _handler = this._handlers.get(fn);\n\n if (_handler === undefined) {\n _handler = this._createInvocationHandler(fn);\n this._handlers.set(fn, _handler);\n }\n\n return _handler.invoke(this, dynamicDependencies);\n } catch (e) {\n throw new AggregateError('Error invoking ' + fn.name + '. Check the inner error for details.', e, true);\n }\n };\n\n Container.prototype._createInvocationHandler = function _createInvocationHandler(fn) {\n var dependencies = void 0;\n\n if (fn.inject === undefined) {\n dependencies = metadata.getOwn(metadata.paramTypes, fn) || _emptyParameters;\n } else {\n dependencies = [];\n var ctor = fn;\n while (typeof ctor === 'function') {\n var _dependencies;\n\n (_dependencies = dependencies).push.apply(_dependencies, getDependencies(ctor));\n ctor = Object.getPrototypeOf(ctor);\n }\n }\n\n var invoker = metadata.getOwn(metadata.invoker, fn) || classInvokers[dependencies.length] || classInvokers.fallback;\n\n var handler = new InvocationHandler(fn, invoker, dependencies);\n return this._onHandlerCreated !== undefined ? this._onHandlerCreated(handler) : handler;\n };\n\n return Container;\n}();\n\nexport function autoinject(potentialTarget) {\n var deco = function deco(target) {\n var previousInject = target.inject ? target.inject.slice() : null;\n var autoInject = metadata.getOwn(metadata.paramTypes, target) || _emptyParameters;\n if (!previousInject) {\n target.inject = autoInject;\n } else {\n for (var i = 0; i < autoInject.length; i++) {\n if (previousInject[i] && previousInject[i] !== autoInject[i]) {\n var prevIndex = previousInject.indexOf(autoInject[i]);\n if (prevIndex > -1) {\n previousInject.splice(prevIndex, 1);\n }\n previousInject.splice(prevIndex > -1 && prevIndex < i ? i - 1 : i, 0, autoInject[i]);\n } else if (!previousInject[i]) {\n previousInject[i] = autoInject[i];\n }\n }\n target.inject = previousInject;\n }\n };\n\n return potentialTarget ? deco(potentialTarget) : deco;\n}\n\nexport function inject() {\n for (var _len5 = arguments.length, rest = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n rest[_key5] = arguments[_key5];\n }\n\n return function (target, key, descriptor) {\n if (typeof descriptor === 'number' && rest.length === 1) {\n var params = target.inject;\n if (typeof params === 'function') {\n throw new Error('Decorator inject cannot be used with \"inject()\". Please use an array instead.');\n }\n if (!params) {\n params = metadata.getOwn(metadata.paramTypes, target).slice();\n target.inject = params;\n }\n params[descriptor] = rest[0];\n return;\n }\n\n if (descriptor) {\n var _fn = descriptor.value;\n _fn.inject = rest;\n } else {\n target.inject = rest;\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-dependency-injection/dist/native-modules/aurelia-dependency-injection.js\n// module id = 0\n// module chunks = 0","\nexport function AggregateError(message, innerError, skipIfAlreadyAggregate) {\n if (innerError) {\n if (innerError.innerError && skipIfAlreadyAggregate) {\n return innerError;\n }\n\n var separator = '\\n------------------------------------------------\\n';\n\n message += separator + 'Inner Error:\\n';\n\n if (typeof innerError === 'string') {\n message += 'Message: ' + innerError;\n } else {\n if (innerError.message) {\n message += 'Message: ' + innerError.message;\n } else {\n message += 'Unknown Inner Error Type. Displaying Inner Error as JSON:\\n ' + JSON.stringify(innerError, null, ' ');\n }\n\n if (innerError.stack) {\n message += '\\nInner Error Stack:\\n' + innerError.stack;\n message += '\\nEnd Inner Error Stack';\n }\n }\n\n message += separator;\n }\n\n var e = new Error(message);\n if (innerError) {\n e.innerError = innerError;\n }\n\n return e;\n}\n\nexport var FEATURE = {};\n\nexport var PLATFORM = {\n noop: function noop() {},\n eachModule: function eachModule() {},\n moduleName: function (_moduleName) {\n function moduleName(_x) {\n return _moduleName.apply(this, arguments);\n }\n\n moduleName.toString = function () {\n return _moduleName.toString();\n };\n\n return moduleName;\n }(function (moduleName) {\n return moduleName;\n })\n};\n\nPLATFORM.global = function () {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n return new Function('return this')();\n}();\n\nexport var DOM = {};\nexport var isInitialized = false;\n\nexport function initializePAL(callback) {\n if (isInitialized) {\n return;\n }\n isInitialized = true;\n if (typeof Object.getPropertyDescriptor !== 'function') {\n Object.getPropertyDescriptor = function (subject, name) {\n var pd = Object.getOwnPropertyDescriptor(subject, name);\n var proto = Object.getPrototypeOf(subject);\n while (typeof pd === 'undefined' && proto !== null) {\n pd = Object.getOwnPropertyDescriptor(proto, name);\n proto = Object.getPrototypeOf(proto);\n }\n return pd;\n };\n }\n\n callback(PLATFORM, FEATURE, DOM);\n}\nexport function reset() {\n isInitialized = false;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-pal/dist/native-modules/aurelia-pal.js\n// module id = 1\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nfunction trimDots(ary) {\n for (var i = 0; i < ary.length; ++i) {\n var part = ary[i];\n if (part === '.') {\n ary.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n if (i === 0 || i === 1 && ary[2] === '..' || ary[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n ary.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n}\n\nexport function relativeToFile(name, file) {\n var fileParts = file && file.split('/');\n var nameParts = name.trim().split('/');\n\n if (nameParts[0].charAt(0) === '.' && fileParts) {\n var normalizedBaseParts = fileParts.slice(0, fileParts.length - 1);\n nameParts.unshift.apply(nameParts, normalizedBaseParts);\n }\n\n trimDots(nameParts);\n\n return nameParts.join('/');\n}\n\nexport function join(path1, path2) {\n if (!path1) {\n return path2;\n }\n\n if (!path2) {\n return path1;\n }\n\n var schemeMatch = path1.match(/^([^/]*?:)\\//);\n var scheme = schemeMatch && schemeMatch.length > 0 ? schemeMatch[1] : '';\n path1 = path1.substr(scheme.length);\n\n var urlPrefix = void 0;\n if (path1.indexOf('///') === 0 && scheme === 'file:') {\n urlPrefix = '///';\n } else if (path1.indexOf('//') === 0) {\n urlPrefix = '//';\n } else if (path1.indexOf('/') === 0) {\n urlPrefix = '/';\n } else {\n urlPrefix = '';\n }\n\n var trailingSlash = path2.slice(-1) === '/' ? '/' : '';\n\n var url1 = path1.split('/');\n var url2 = path2.split('/');\n var url3 = [];\n\n for (var i = 0, ii = url1.length; i < ii; ++i) {\n if (url1[i] === '..') {\n url3.pop();\n } else if (url1[i] === '.' || url1[i] === '') {\n continue;\n } else {\n url3.push(url1[i]);\n }\n }\n\n for (var _i = 0, _ii = url2.length; _i < _ii; ++_i) {\n if (url2[_i] === '..') {\n url3.pop();\n } else if (url2[_i] === '.' || url2[_i] === '') {\n continue;\n } else {\n url3.push(url2[_i]);\n }\n }\n\n return scheme + urlPrefix + url3.join('/') + trailingSlash;\n}\n\nvar encode = encodeURIComponent;\nvar encodeKey = function encodeKey(k) {\n return encode(k).replace('%24', '$');\n};\n\nfunction buildParam(key, value, traditional) {\n var result = [];\n if (value === null || value === undefined) {\n return result;\n }\n if (Array.isArray(value)) {\n for (var i = 0, l = value.length; i < l; i++) {\n if (traditional) {\n result.push(encodeKey(key) + '=' + encode(value[i]));\n } else {\n var arrayKey = key + '[' + (_typeof(value[i]) === 'object' && value[i] !== null ? i : '') + ']';\n result = result.concat(buildParam(arrayKey, value[i]));\n }\n }\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !traditional) {\n for (var propertyName in value) {\n result = result.concat(buildParam(key + '[' + propertyName + ']', value[propertyName]));\n }\n } else {\n result.push(encodeKey(key) + '=' + encode(value));\n }\n return result;\n}\n\nexport function buildQueryString(params, traditional) {\n var pairs = [];\n var keys = Object.keys(params || {}).sort();\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n pairs = pairs.concat(buildParam(key, params[key], traditional));\n }\n\n if (pairs.length === 0) {\n return '';\n }\n\n return pairs.join('&');\n}\n\nfunction processScalarParam(existedParam, value) {\n if (Array.isArray(existedParam)) {\n existedParam.push(value);\n return existedParam;\n }\n if (existedParam !== undefined) {\n return [existedParam, value];\n }\n\n return value;\n}\n\nfunction parseComplexParam(queryParams, keys, value) {\n var currentParams = queryParams;\n var keysLastIndex = keys.length - 1;\n for (var j = 0; j <= keysLastIndex; j++) {\n var key = keys[j] === '' ? currentParams.length : keys[j];\n if (j < keysLastIndex) {\n var prevValue = !currentParams[key] || _typeof(currentParams[key]) === 'object' ? currentParams[key] : [currentParams[key]];\n currentParams = currentParams[key] = prevValue || (isNaN(keys[j + 1]) ? {} : []);\n } else {\n currentParams = currentParams[key] = value;\n }\n }\n}\n\nexport function parseQueryString(queryString) {\n var queryParams = {};\n if (!queryString || typeof queryString !== 'string') {\n return queryParams;\n }\n\n var query = queryString;\n if (query.charAt(0) === '?') {\n query = query.substr(1);\n }\n\n var pairs = query.replace(/\\+/g, ' ').split('&');\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i].split('=');\n var key = decodeURIComponent(pair[0]);\n if (!key) {\n continue;\n }\n\n var keys = key.split('][');\n var keysLastIndex = keys.length - 1;\n\n if (/\\[/.test(keys[0]) && /\\]$/.test(keys[keysLastIndex])) {\n keys[keysLastIndex] = keys[keysLastIndex].replace(/\\]$/, '');\n keys = keys.shift().split('[').concat(keys);\n keysLastIndex = keys.length - 1;\n } else {\n keysLastIndex = 0;\n }\n\n if (pair.length >= 2) {\n var value = pair[1] ? decodeURIComponent(pair[1]) : '';\n if (keysLastIndex) {\n parseComplexParam(queryParams, keys, value);\n } else {\n queryParams[key] = processScalarParam(queryParams[key], value);\n }\n } else {\n queryParams[key] = true;\n }\n }\n return queryParams;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-path/dist/native-modules/aurelia-path.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BaseConfig = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _authUtilities = require('./auth-utilities');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BaseConfig = exports.BaseConfig = function () {\n BaseConfig.prototype.configure = function configure(incomingConfig) {\n (0, _authUtilities.merge)(this._current, incomingConfig);\n };\n\n _createClass(BaseConfig, [{\n key: 'current',\n get: function get() {\n return this._current;\n }\n }]);\n\n function BaseConfig() {\n _classCallCheck(this, BaseConfig);\n\n this._current = {\n httpInterceptor: true,\n loginOnSignup: true,\n baseUrl: '/',\n loginRedirect: '#/',\n logoutRedirect: '#/',\n signupRedirect: '#/login',\n loginUrl: '/auth/login',\n signupUrl: '/auth/signup',\n profileUrl: '/auth/me',\n loginRoute: '/login',\n signupRoute: '/signup',\n tokenRoot: false,\n tokenName: 'token',\n idTokenName: 'id_token',\n tokenPrefix: 'aurelia',\n responseTokenProp: 'access_token',\n responseIdTokenProp: 'id_token',\n unlinkUrl: '/auth/unlink/',\n unlinkMethod: 'get',\n authHeader: 'Authorization',\n authToken: 'Bearer',\n withCredentials: true,\n platform: 'browser',\n storage: 'localStorage',\n providers: {\n identSrv: {\n name: 'identSrv',\n url: '/auth/identSrv',\n\n redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,\n scope: ['profile', 'openid'],\n responseType: 'code',\n scopePrefix: '',\n scopeDelimiter: ' ',\n requiredUrlParams: ['scope', 'nonce'],\n optionalUrlParams: ['display', 'state'],\n state: function state() {\n var rand = Math.random().toString(36).substr(2);\n return encodeURIComponent(rand);\n },\n display: 'popup',\n type: '2.0',\n clientId: 'jsClient',\n nonce: function nonce() {\n var val = ((Date.now() + Math.random()) * Math.random()).toString().replace('.', '');\n return encodeURIComponent(val);\n },\n popupOptions: { width: 452, height: 633 }\n },\n google: {\n name: 'google',\n url: '/auth/google',\n authorizationEndpoint: 'https://accounts.google.com/o/oauth2/auth',\n redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,\n scope: ['profile', 'email'],\n scopePrefix: 'openid',\n scopeDelimiter: ' ',\n requiredUrlParams: ['scope'],\n optionalUrlParams: ['display', 'state'],\n display: 'popup',\n type: '2.0',\n state: function state() {\n var rand = Math.random().toString(36).substr(2);\n return encodeURIComponent(rand);\n },\n popupOptions: {\n width: 452,\n height: 633\n }\n },\n facebook: {\n name: 'facebook',\n url: '/auth/facebook',\n authorizationEndpoint: 'https://www.facebook.com/v2.3/dialog/oauth',\n redirectUri: window.location.origin + '/' || window.location.protocol + '//' + window.location.host + '/',\n scope: ['email'],\n scopeDelimiter: ',',\n nonce: function nonce() {\n return Math.random();\n },\n requiredUrlParams: ['nonce', 'display', 'scope'],\n display: 'popup',\n type: '2.0',\n popupOptions: {\n width: 580,\n height: 400\n }\n },\n linkedin: {\n name: 'linkedin',\n url: '/auth/linkedin',\n authorizationEndpoint: 'https://www.linkedin.com/uas/oauth2/authorization',\n redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,\n requiredUrlParams: ['state'],\n scope: ['r_emailaddress'],\n scopeDelimiter: ' ',\n state: 'STATE',\n type: '2.0',\n popupOptions: {\n width: 527,\n height: 582\n }\n },\n github: {\n name: 'github',\n url: '/auth/github',\n authorizationEndpoint: 'https://github.com/login/oauth/authorize',\n redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,\n optionalUrlParams: ['scope'],\n scope: ['user:email'],\n scopeDelimiter: ' ',\n type: '2.0',\n popupOptions: {\n width: 1020,\n height: 618\n }\n },\n yahoo: {\n name: 'yahoo',\n url: '/auth/yahoo',\n authorizationEndpoint: 'https://api.login.yahoo.com/oauth2/request_auth',\n redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,\n scope: [],\n scopeDelimiter: ',',\n type: '2.0',\n popupOptions: {\n width: 559,\n height: 519\n }\n },\n twitter: {\n name: 'twitter',\n url: '/auth/twitter',\n authorizationEndpoint: 'https://api.twitter.com/oauth/authenticate',\n type: '1.0',\n popupOptions: {\n width: 495,\n height: 645\n }\n },\n live: {\n name: 'live',\n url: '/auth/live',\n authorizationEndpoint: 'https://login.live.com/oauth20_authorize.srf',\n redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,\n scope: ['wl.emails'],\n scopeDelimiter: ' ',\n requiredUrlParams: ['display', 'scope'],\n display: 'popup',\n type: '2.0',\n popupOptions: {\n width: 500,\n height: 560\n }\n },\n instagram: {\n name: 'instagram',\n url: '/auth/instagram',\n authorizationEndpoint: 'https://api.instagram.com/oauth/authorize',\n redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host,\n requiredUrlParams: ['scope'],\n scope: ['basic'],\n scopeDelimiter: '+',\n display: 'popup',\n type: '2.0',\n popupOptions: {\n width: 550,\n height: 369\n }\n }\n }\n };\n }\n\n return BaseConfig;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/base-config.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.status = status;\nexports.isDefined = isDefined;\nexports.camelCase = camelCase;\nexports.parseQueryString = parseQueryString;\nexports.isString = isString;\nexports.isObject = isObject;\nexports.isFunction = isFunction;\nexports.joinUrl = joinUrl;\nexports.isBlankObject = isBlankObject;\nexports.isArrayLike = isArrayLike;\nexports.isWindow = isWindow;\nexports.extend = extend;\nexports.merge = merge;\nexports.forEach = forEach;\nvar slice = [].slice;\n\nfunction setHashKey(obj, h) {\n if (h) {\n obj.$$hashKey = h;\n } else {\n delete obj.$$hashKey;\n }\n}\n\nfunction baseExtend(dst, objs, deep) {\n var h = dst.$$hashKey;\n\n for (var i = 0, ii = objs.length; i < ii; ++i) {\n var obj = objs[i];\n if (!isObject(obj) && !isFunction(obj)) continue;\n var keys = Object.keys(obj);\n for (var j = 0, jj = keys.length; j < jj; j++) {\n var key = keys[j];\n var src = obj[key];\n\n if (deep && isObject(src)) {\n if (!isObject(dst[key])) dst[key] = Array.isArray(src) ? [] : {};\n baseExtend(dst[key], [src], true);\n } else {\n dst[key] = src;\n }\n }\n }\n\n setHashKey(dst, h);\n return dst;\n}\n\nfunction status(response) {\n if (response.status >= 200 && response.status < 400) {\n return response.json().catch(function (error) {\n return null;\n });\n }\n\n throw response;\n}\n\nfunction isDefined(value) {\n return typeof value !== 'undefined';\n}\n\nfunction camelCase(name) {\n return name.replace(/([\\:\\-\\_]+(.))/g, function (_, separator, letter, offset) {\n return offset ? letter.toUpperCase() : letter;\n });\n}\n\nfunction parseQueryString(keyValue) {\n var key = void 0;\n var value = void 0;\n var obj = {};\n\n forEach((keyValue || '').split('&'), function (kv) {\n if (kv) {\n value = kv.split('=');\n key = decodeURIComponent(value[0]);\n obj[key] = isDefined(value[1]) ? decodeURIComponent(value[1]) : true;\n }\n });\n\n return obj;\n}\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n\nfunction isObject(value) {\n return value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object';\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction joinUrl(baseUrl, url) {\n if (/^(?:[a-z]+:)?\\/\\//i.test(url)) {\n return url;\n }\n\n var joined = [baseUrl, url].join('/');\n var normalize = function normalize(str) {\n return str.replace(/[\\/]+/g, '/').replace(/\\/\\?/g, '?').replace(/\\/\\#/g, '#').replace(/\\:\\//g, '://');\n };\n\n return normalize(joined);\n}\n\nfunction isBlankObject(value) {\n return value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !Object.getPrototypeOf(value);\n}\n\nfunction isArrayLike(obj) {\n if (obj === null || isWindow(obj)) {\n return false;\n }\n}\n\nfunction isWindow(obj) {\n return obj && obj.window === obj;\n}\n\nfunction extend(dst) {\n return baseExtend(dst, slice.call(arguments, 1), false);\n}\n\nfunction merge(dst) {\n return baseExtend(dst, slice.call(arguments, 1), true);\n}\n\nfunction forEach(obj, iterator, context) {\n var key = void 0;\n var length = void 0;\n if (obj) {\n if (isFunction(obj)) {\n for (key in obj) {\n if (key !== 'prototype' && key !== 'length' && key !== 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else if (Array.isArray(obj) || isArrayLike(obj)) {\n var isPrimitive = (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object';\n for (key = 0, length = obj.length; key < length; key++) {\n if (isPrimitive || key in obj) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else if (obj.forEach && obj.forEach !== forEach) {\n obj.forEach(iterator, context, obj);\n } else if (isBlankObject(obj)) {\n for (key in obj) {\n iterator.call(context, obj[key], key, obj);\n }\n } else if (typeof obj.hasOwnProperty === 'function') {\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n } else {\n for (key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n }\n }\n return obj;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/auth-utilities.js\n// module id = 12\n// module chunks = 0","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\n\nimport { relativeToFile } from 'aurelia-path';\nimport { Origin } from 'aurelia-metadata';\n\nexport var TemplateDependency = function TemplateDependency(src, name) {\n \n\n this.src = src;\n this.name = name;\n};\n\nexport var TemplateRegistryEntry = function () {\n function TemplateRegistryEntry(address) {\n \n\n this.templateIsLoaded = false;\n this.factoryIsReady = false;\n this.resources = null;\n this.dependencies = null;\n\n this.address = address;\n this.onReady = null;\n this._template = null;\n this._factory = null;\n }\n\n TemplateRegistryEntry.prototype.addDependency = function addDependency(src, name) {\n var finalSrc = typeof src === 'string' ? relativeToFile(src, this.address) : Origin.get(src).moduleId;\n\n this.dependencies.push(new TemplateDependency(finalSrc, name));\n };\n\n _createClass(TemplateRegistryEntry, [{\n key: 'template',\n get: function get() {\n return this._template;\n },\n set: function set(value) {\n var address = this.address;\n var requires = void 0;\n var current = void 0;\n var src = void 0;\n var dependencies = void 0;\n\n this._template = value;\n this.templateIsLoaded = true;\n\n requires = value.content.querySelectorAll('require');\n dependencies = this.dependencies = new Array(requires.length);\n\n for (var i = 0, ii = requires.length; i < ii; ++i) {\n current = requires[i];\n src = current.getAttribute('from');\n\n if (!src) {\n throw new Error('<require> element in ' + address + ' has no \"from\" attribute.');\n }\n\n dependencies[i] = new TemplateDependency(relativeToFile(src, address), current.getAttribute('as'));\n\n if (current.parentNode) {\n current.parentNode.removeChild(current);\n }\n }\n }\n }, {\n key: 'factory',\n get: function get() {\n return this._factory;\n },\n set: function set(value) {\n this._factory = value;\n this.factoryIsReady = true;\n }\n }]);\n\n return TemplateRegistryEntry;\n}();\n\nexport var Loader = function () {\n function Loader() {\n \n\n this.templateRegistry = {};\n }\n\n Loader.prototype.map = function map(id, source) {\n throw new Error('Loaders must implement map(id, source).');\n };\n\n Loader.prototype.normalizeSync = function normalizeSync(moduleId, relativeTo) {\n throw new Error('Loaders must implement normalizeSync(moduleId, relativeTo).');\n };\n\n Loader.prototype.normalize = function normalize(moduleId, relativeTo) {\n throw new Error('Loaders must implement normalize(moduleId: string, relativeTo: string): Promise<string>.');\n };\n\n Loader.prototype.loadModule = function loadModule(id) {\n throw new Error('Loaders must implement loadModule(id).');\n };\n\n Loader.prototype.loadAllModules = function loadAllModules(ids) {\n throw new Error('Loader must implement loadAllModules(ids).');\n };\n\n Loader.prototype.loadTemplate = function loadTemplate(url) {\n throw new Error('Loader must implement loadTemplate(url).');\n };\n\n Loader.prototype.loadText = function loadText(url) {\n throw new Error('Loader must implement loadText(url).');\n };\n\n Loader.prototype.applyPluginToUrl = function applyPluginToUrl(url, pluginName) {\n throw new Error('Loader must implement applyPluginToUrl(url, pluginName).');\n };\n\n Loader.prototype.addPlugin = function addPlugin(pluginName, implementation) {\n throw new Error('Loader must implement addPlugin(pluginName, implementation).');\n };\n\n Loader.prototype.getOrCreateTemplateRegistryEntry = function getOrCreateTemplateRegistryEntry(address) {\n return this.templateRegistry[address] || (this.templateRegistry[address] = new TemplateRegistryEntry(address));\n };\n\n return Loader;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-loader/dist/native-modules/aurelia-loader.js\n// module id = 13\n// module chunks = 0","import { createOverrideContext, BindingBehavior, ValueConverter, sourceContext, bindingMode } from 'aurelia-binding';\n\nvar oneTime = bindingMode.oneTime;\n\nexport function updateOverrideContexts(views, startIndex) {\n var length = views.length;\n\n if (startIndex > 0) {\n startIndex = startIndex - 1;\n }\n\n for (; startIndex < length; ++startIndex) {\n updateOverrideContext(views[startIndex].overrideContext, startIndex, length);\n }\n}\n\nexport function createFullOverrideContext(repeat, data, index, length, key) {\n var bindingContext = {};\n var overrideContext = createOverrideContext(bindingContext, repeat.scope.overrideContext);\n\n if (typeof key !== 'undefined') {\n bindingContext[repeat.key] = key;\n bindingContext[repeat.value] = data;\n } else {\n bindingContext[repeat.local] = data;\n }\n updateOverrideContext(overrideContext, index, length);\n return overrideContext;\n}\n\nexport function updateOverrideContext(overrideContext, index, length) {\n var first = index === 0;\n var last = index === length - 1;\n var even = index % 2 === 0;\n\n overrideContext.$index = index;\n overrideContext.$first = first;\n overrideContext.$last = last;\n overrideContext.$middle = !(first || last);\n overrideContext.$odd = !even;\n overrideContext.$even = even;\n}\n\nexport function getItemsSourceExpression(instruction, attrName) {\n return instruction.behaviorInstructions.filter(function (bi) {\n return bi.originalAttrName === attrName;\n })[0].attributes.items.sourceExpression;\n}\n\nexport function unwrapExpression(expression) {\n var unwrapped = false;\n while (expression instanceof BindingBehavior) {\n expression = expression.expression;\n }\n while (expression instanceof ValueConverter) {\n expression = expression.expression;\n unwrapped = true;\n }\n return unwrapped ? expression : null;\n}\n\nexport function isOneTime(expression) {\n while (expression instanceof BindingBehavior) {\n if (expression.name === 'oneTime') {\n return true;\n }\n expression = expression.expression;\n }\n return false;\n}\n\nexport function updateOneTimeBinding(binding) {\n if (binding.call && binding.mode === oneTime) {\n binding.call(sourceContext);\n } else if (binding.updateOneTimeBindings) {\n binding.updateOneTimeBindings();\n }\n}\n\nexport function indexOf(array, item, matcher, startIndex) {\n if (!matcher) {\n return array.indexOf(item);\n }\n var length = array.length;\n for (var index = startIndex || 0; index < length; index++) {\n if (matcher(array[index], item)) {\n return index;\n }\n }\n return -1;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/repeat-utilities.js\n// module id = 14\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n\n\nimport { DOM, FEATURE } from 'aurelia-pal';\n\nvar hasSetImmediate = typeof setImmediate === 'function';\nvar stackSeparator = '\\nEnqueued in TaskQueue by:\\n';\nvar microStackSeparator = '\\nEnqueued in MicroTaskQueue by:\\n';\n\nfunction makeRequestFlushFromMutationObserver(flush) {\n var toggle = 1;\n var observer = DOM.createMutationObserver(flush);\n var node = DOM.createTextNode('');\n observer.observe(node, { characterData: true });\n return function requestFlush() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\nfunction makeRequestFlushFromTimer(flush) {\n return function requestFlush() {\n var timeoutHandle = setTimeout(handleFlushTimer, 0);\n\n var intervalHandle = setInterval(handleFlushTimer, 50);\n function handleFlushTimer() {\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n flush();\n }\n };\n}\n\nfunction onError(error, task, longStacks) {\n if (longStacks && task.stack && (typeof error === 'undefined' ? 'undefined' : _typeof(error)) === 'object' && error !== null) {\n error.stack = filterFlushStack(error.stack) + task.stack;\n }\n\n if ('onError' in task) {\n task.onError(error);\n } else if (hasSetImmediate) {\n setImmediate(function () {\n throw error;\n });\n } else {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n}\n\nexport var TaskQueue = function () {\n function TaskQueue() {\n var _this = this;\n\n \n\n this.flushing = false;\n this.longStacks = false;\n\n this.microTaskQueue = [];\n this.microTaskQueueCapacity = 1024;\n this.taskQueue = [];\n\n if (FEATURE.mutationObserver) {\n this.requestFlushMicroTaskQueue = makeRequestFlushFromMutationObserver(function () {\n return _this.flushMicroTaskQueue();\n });\n } else {\n this.requestFlushMicroTaskQueue = makeRequestFlushFromTimer(function () {\n return _this.flushMicroTaskQueue();\n });\n }\n\n this.requestFlushTaskQueue = makeRequestFlushFromTimer(function () {\n return _this.flushTaskQueue();\n });\n }\n\n TaskQueue.prototype.queueMicroTask = function queueMicroTask(task) {\n if (this.microTaskQueue.length < 1) {\n this.requestFlushMicroTaskQueue();\n }\n\n if (this.longStacks) {\n task.stack = this.prepareQueueStack(microStackSeparator);\n }\n this.microTaskQueue.push(task);\n };\n\n TaskQueue.prototype.queueTask = function queueTask(task) {\n if (this.taskQueue.length < 1) {\n this.requestFlushTaskQueue();\n }\n\n if (this.longStacks) {\n task.stack = this.prepareQueueStack(stackSeparator);\n }\n this.taskQueue.push(task);\n };\n\n TaskQueue.prototype.flushTaskQueue = function flushTaskQueue() {\n var queue = this.taskQueue;\n var index = 0;\n var task = void 0;\n\n this.taskQueue = [];\n\n try {\n this.flushing = true;\n while (index < queue.length) {\n task = queue[index];\n if (this.longStacks) {\n this.stack = typeof task.stack === 'string' ? task.stack : undefined;\n }\n task.call();\n index++;\n }\n } catch (error) {\n onError(error, task, this.longStacks);\n } finally {\n this.flushing = false;\n }\n };\n\n TaskQueue.prototype.flushMicroTaskQueue = function flushMicroTaskQueue() {\n var queue = this.microTaskQueue;\n var capacity = this.microTaskQueueCapacity;\n var index = 0;\n var task = void 0;\n\n try {\n this.flushing = true;\n while (index < queue.length) {\n task = queue[index];\n if (this.longStacks) {\n this.stack = typeof task.stack === 'string' ? task.stack : undefined;\n }\n task.call();\n index++;\n\n if (index > capacity) {\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n\n queue.length -= index;\n index = 0;\n }\n }\n } catch (error) {\n onError(error, task, this.longStacks);\n } finally {\n this.flushing = false;\n }\n\n queue.length = 0;\n };\n\n TaskQueue.prototype.prepareQueueStack = function prepareQueueStack(separator) {\n var stack = separator + filterQueueStack(captureStack());\n if (typeof this.stack === 'string') {\n stack = filterFlushStack(stack) + this.stack;\n }\n return stack;\n };\n\n return TaskQueue;\n}();\n\nfunction captureStack() {\n var error = new Error();\n\n if (error.stack) {\n return error.stack;\n }\n\n try {\n throw error;\n } catch (e) {\n return e.stack;\n }\n}\n\nfunction filterQueueStack(stack) {\n return stack.replace(/^[\\s\\S]*?\\bqueue(Micro)?Task\\b[^\\n]*\\n/, '');\n}\n\nfunction filterFlushStack(stack) {\n var index = stack.lastIndexOf('flushMicroTaskQueue');\n if (index < 0) {\n index = stack.lastIndexOf('flushTaskQueue');\n if (index < 0) {\n return stack;\n }\n }\n index = stack.lastIndexOf('\\n', index);\n return index < 0 ? stack : stack.substr(0, index);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-task-queue/dist/native-modules/aurelia-task-queue.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Authentication = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dec, _class;\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nvar _baseConfig = require('./base-config');\n\nvar _storage = require('./storage');\n\nvar _authUtilities = require('./auth-utilities');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Authentication = exports.Authentication = (_dec = (0, _aureliaDependencyInjection.inject)(_storage.Storage, _baseConfig.BaseConfig), _dec(_class = function () {\n function Authentication(storage, config) {\n _classCallCheck(this, Authentication);\n\n this.storage = storage;\n this.config = config.current;\n this.tokenName = this.config.tokenPrefix ? this.config.tokenPrefix + '_' + this.config.tokenName : this.config.tokenName;\n this.idTokenName = this.config.tokenPrefix ? this.config.tokenPrefix + '_' + this.config.idTokenName : this.config.idTokenName;\n }\n\n Authentication.prototype.getLoginRoute = function getLoginRoute() {\n return this.config.loginRoute;\n };\n\n Authentication.prototype.getLoginRedirect = function getLoginRedirect() {\n return this.initialUrl || this.config.loginRedirect;\n };\n\n Authentication.prototype.getLoginUrl = function getLoginUrl() {\n return this.config.baseUrl ? (0, _authUtilities.joinUrl)(this.config.baseUrl, this.config.loginUrl) : this.config.loginUrl;\n };\n\n Authentication.prototype.getSignupUrl = function getSignupUrl() {\n return this.config.baseUrl ? (0, _authUtilities.joinUrl)(this.config.baseUrl, this.config.signupUrl) : this.config.signupUrl;\n };\n\n Authentication.prototype.getProfileUrl = function getProfileUrl() {\n return this.config.baseUrl ? (0, _authUtilities.joinUrl)(this.config.baseUrl, this.config.profileUrl) : this.config.profileUrl;\n };\n\n Authentication.prototype.getToken = function getToken() {\n return this.storage.get(this.tokenName);\n };\n\n Authentication.prototype.getPayload = function getPayload() {\n var token = this.storage.get(this.tokenName);\n return this.decomposeToken(token);\n };\n\n Authentication.prototype.decomposeToken = function decomposeToken(token) {\n if (token && token.split('.').length === 3) {\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n\n try {\n return JSON.parse(decodeURIComponent(escape(window.atob(base64))));\n } catch (error) {\n return null;\n }\n }\n };\n\n Authentication.prototype.setInitialUrl = function setInitialUrl(url) {\n this.initialUrl = url;\n };\n\n Authentication.prototype.setToken = function setToken(response, redirect) {\n var accessToken = response && response[this.config.responseTokenProp];\n var tokenToStore = void 0;\n\n if (accessToken) {\n if ((0, _authUtilities.isObject)(accessToken) && (0, _authUtilities.isObject)(accessToken.data)) {\n response = accessToken;\n } else if ((0, _authUtilities.isString)(accessToken)) {\n tokenToStore = accessToken;\n }\n }\n\n if (!tokenToStore && response) {\n tokenToStore = this.config.tokenRoot && response[this.config.tokenRoot] ? response[this.config.tokenRoot][this.config.tokenName] : response[this.config.tokenName];\n }\n\n if (tokenToStore) {\n this.storage.set(this.tokenName, tokenToStore);\n }\n\n var idToken = response && response[this.config.responseIdTokenProp];\n\n if (idToken) {\n this.storage.set(this.idTokenName, idToken);\n }\n\n if (this.config.loginRedirect && !redirect) {\n window.location.href = this.getLoginRedirect();\n } else if (redirect && (0, _authUtilities.isString)(redirect)) {\n window.location.href = window.encodeURI(redirect);\n }\n };\n\n Authentication.prototype.removeToken = function removeToken() {\n this.storage.remove(this.tokenName);\n };\n\n Authentication.prototype.isAuthenticated = function isAuthenticated() {\n var token = this.storage.get(this.tokenName);\n\n if (!token) {\n return false;\n }\n\n if (token.split('.').length !== 3) {\n return true;\n }\n\n var exp = void 0;\n try {\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n exp = JSON.parse(window.atob(base64)).exp;\n } catch (error) {\n return false;\n }\n\n if (exp) {\n return Math.round(new Date().getTime() / 1000) <= exp;\n }\n\n return true;\n };\n\n Authentication.prototype.logout = function logout(redirect) {\n var _this = this;\n\n return new Promise(function (resolve) {\n _this.storage.remove(_this.tokenName);\n\n if (_this.config.logoutRedirect && !redirect) {\n window.location.href = _this.config.logoutRedirect;\n } else if ((0, _authUtilities.isString)(redirect)) {\n window.location.href = redirect;\n }\n\n resolve();\n });\n };\n\n _createClass(Authentication, [{\n key: 'tokenInterceptor',\n get: function get() {\n var config = this.config;\n var storage = this.storage;\n var auth = this;\n return {\n request: function request(_request) {\n if (auth.isAuthenticated() && config.httpInterceptor) {\n var tokenName = config.tokenPrefix ? config.tokenPrefix + '_' + config.tokenName : config.tokenName;\n var token = storage.get(tokenName);\n\n if (config.authHeader && config.authToken) {\n token = config.authToken + ' ' + token;\n }\n\n _request.headers.set(config.authHeader, token);\n }\n return _request;\n }\n };\n }\n }]);\n\n return Authentication;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/authentication.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Storage = undefined;\n\nvar _dec, _class;\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nvar _baseConfig = require('./base-config');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Storage = exports.Storage = (_dec = (0, _aureliaDependencyInjection.inject)(_baseConfig.BaseConfig), _dec(_class = function () {\n function Storage(config) {\n _classCallCheck(this, Storage);\n\n this.config = config.current;\n this.storage = this._getStorage(this.config.storage);\n }\n\n Storage.prototype.get = function get(key) {\n return this.storage.getItem(key);\n };\n\n Storage.prototype.set = function set(key, value) {\n return this.storage.setItem(key, value);\n };\n\n Storage.prototype.remove = function remove(key) {\n return this.storage.removeItem(key);\n };\n\n Storage.prototype._getStorage = function _getStorage(type) {\n if (type === 'localStorage') {\n if ('localStorage' in window && window.localStorage !== null) return localStorage;\n throw new Error('Local Storage is disabled or unavailable.');\n } else if (type === 'sessionStorage') {\n if ('sessionStorage' in window && window.sessionStorage !== null) return sessionStorage;\n throw new Error('Session Storage is disabled or unavailable.');\n }\n\n throw new Error('Invalid storage type specified: ' + type);\n };\n\n return Storage;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/storage.js\n// module id = 17\n// module chunks = 0","import { FEATURE, DOM } from 'aurelia-pal';\n\nexport var aureliaHideClassName = 'aurelia-hide';\n\nvar aureliaHideClass = '.' + aureliaHideClassName + ' { display:none !important; }';\n\nexport function injectAureliaHideStyleAtHead() {\n DOM.injectStyles(aureliaHideClass);\n}\n\nexport function injectAureliaHideStyleAtBoundary(domBoundary) {\n if (FEATURE.shadowDOM && domBoundary && !domBoundary.hasAureliaHideStyle) {\n domBoundary.hasAureliaHideStyle = true;\n DOM.injectStyles(aureliaHideClass, domBoundary);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/aurelia-hide-style.js\n// module id = 18\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nimport { PLATFORM } from 'aurelia-pal';\n\nif (typeof FEATURE_NO_ES2015 === 'undefined') {\n\n (function (Object, GOPS) {\n 'use strict';\n\n if (GOPS in Object) return;\n\n var setDescriptor,\n G = PLATFORM.global,\n id = 0,\n random = '' + Math.random(),\n prefix = '__\\x01symbol:',\n prefixLength = prefix.length,\n internalSymbol = '__\\x01symbol@@' + random,\n DP = 'defineProperty',\n DPies = 'defineProperties',\n GOPN = 'getOwnPropertyNames',\n GOPD = 'getOwnPropertyDescriptor',\n PIE = 'propertyIsEnumerable',\n gOPN = Object[GOPN],\n gOPD = Object[GOPD],\n create = Object.create,\n keys = Object.keys,\n defineProperty = Object[DP],\n $defineProperties = Object[DPies],\n descriptor = gOPD(Object, GOPN),\n ObjectProto = Object.prototype,\n hOP = ObjectProto.hasOwnProperty,\n pIE = ObjectProto[PIE],\n toString = ObjectProto.toString,\n indexOf = Array.prototype.indexOf || function (v) {\n for (var i = this.length; i-- && this[i] !== v;) {}\n return i;\n },\n addInternalIfNeeded = function addInternalIfNeeded(o, uid, enumerable) {\n if (!hOP.call(o, internalSymbol)) {\n defineProperty(o, internalSymbol, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: {}\n });\n }\n o[internalSymbol]['@@' + uid] = enumerable;\n },\n createWithSymbols = function createWithSymbols(proto, descriptors) {\n var self = create(proto);\n if (descriptors !== null && (typeof descriptors === 'undefined' ? 'undefined' : _typeof(descriptors)) === 'object') {\n gOPN(descriptors).forEach(function (key) {\n if (propertyIsEnumerable.call(descriptors, key)) {\n $defineProperty(self, key, descriptors[key]);\n }\n });\n }\n return self;\n },\n copyAsNonEnumerable = function copyAsNonEnumerable(descriptor) {\n var newDescriptor = create(descriptor);\n newDescriptor.enumerable = false;\n return newDescriptor;\n },\n get = function get() {},\n onlyNonSymbols = function onlyNonSymbols(name) {\n return name != internalSymbol && !hOP.call(source, name);\n },\n onlySymbols = function onlySymbols(name) {\n return name != internalSymbol && hOP.call(source, name);\n },\n propertyIsEnumerable = function propertyIsEnumerable(key) {\n var uid = '' + key;\n return onlySymbols(uid) ? hOP.call(this, uid) && this[internalSymbol]['@@' + uid] : pIE.call(this, key);\n },\n setAndGetSymbol = function setAndGetSymbol(uid) {\n var descriptor = {\n enumerable: false,\n configurable: true,\n get: get,\n set: function set(value) {\n setDescriptor(this, uid, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: value\n });\n addInternalIfNeeded(this, uid, true);\n }\n };\n defineProperty(ObjectProto, uid, descriptor);\n return source[uid] = defineProperty(Object(uid), 'constructor', sourceConstructor);\n },\n _Symbol = function _Symbol2(description) {\n if (this && this !== G) {\n throw new TypeError('Symbol is not a constructor');\n }\n return setAndGetSymbol(prefix.concat(description || '', random, ++id));\n },\n source = create(null),\n sourceConstructor = { value: _Symbol },\n sourceMap = function sourceMap(uid) {\n return source[uid];\n },\n $defineProperty = function defineProp(o, key, descriptor) {\n var uid = '' + key;\n if (onlySymbols(uid)) {\n setDescriptor(o, uid, descriptor.enumerable ? copyAsNonEnumerable(descriptor) : descriptor);\n addInternalIfNeeded(o, uid, !!descriptor.enumerable);\n } else {\n defineProperty(o, key, descriptor);\n }\n return o;\n },\n $getOwnPropertySymbols = function getOwnPropertySymbols(o) {\n var cof = toString.call(o);\n o = cof === '[object String]' ? o.split('') : Object(o);\n return gOPN(o).filter(onlySymbols).map(sourceMap);\n };\n\n descriptor.value = $defineProperty;\n defineProperty(Object, DP, descriptor);\n\n descriptor.value = $getOwnPropertySymbols;\n defineProperty(Object, GOPS, descriptor);\n\n descriptor.value = function getOwnPropertyNames(o) {\n return gOPN(o).filter(onlyNonSymbols);\n };\n defineProperty(Object, GOPN, descriptor);\n\n descriptor.value = function defineProperties(o, descriptors) {\n var symbols = $getOwnPropertySymbols(descriptors);\n if (symbols.length) {\n keys(descriptors).concat(symbols).forEach(function (uid) {\n if (propertyIsEnumerable.call(descriptors, uid)) {\n $defineProperty(o, uid, descriptors[uid]);\n }\n });\n } else {\n $defineProperties(o, descriptors);\n }\n return o;\n };\n defineProperty(Object, DPies, descriptor);\n\n descriptor.value = propertyIsEnumerable;\n defineProperty(ObjectProto, PIE, descriptor);\n\n descriptor.value = _Symbol;\n defineProperty(G, 'Symbol', descriptor);\n\n descriptor.value = function (key) {\n var uid = prefix.concat(prefix, key, random);\n return uid in ObjectProto ? source[uid] : setAndGetSymbol(uid);\n };\n defineProperty(_Symbol, 'for', descriptor);\n\n descriptor.value = function (symbol) {\n return hOP.call(source, symbol) ? symbol.slice(prefixLength * 2, -random.length) : void 0;\n };\n defineProperty(_Symbol, 'keyFor', descriptor);\n\n descriptor.value = function getOwnPropertyDescriptor(o, key) {\n var descriptor = gOPD(o, key);\n if (descriptor && onlySymbols(key)) {\n descriptor.enumerable = propertyIsEnumerable.call(o, key);\n }\n return descriptor;\n };\n defineProperty(Object, GOPD, descriptor);\n\n descriptor.value = function (proto, descriptors) {\n return arguments.length === 1 ? create(proto) : createWithSymbols(proto, descriptors);\n };\n defineProperty(Object, 'create', descriptor);\n\n descriptor.value = function () {\n var str = toString.call(this);\n return str === '[object String]' && onlySymbols(this) ? '[object Symbol]' : str;\n };\n defineProperty(ObjectProto, 'toString', descriptor);\n\n try {\n setDescriptor = create(defineProperty({}, prefix, {\n get: function get() {\n return defineProperty(this, prefix, { value: false })[prefix];\n }\n }))[prefix] || defineProperty;\n } catch (o_O) {\n setDescriptor = function setDescriptor(o, key, descriptor) {\n var protoDescriptor = gOPD(ObjectProto, key);\n delete ObjectProto[key];\n defineProperty(o, key, descriptor);\n defineProperty(ObjectProto, key, protoDescriptor);\n };\n }\n })(Object, 'getOwnPropertySymbols');\n\n (function (O, S) {\n var dP = O.defineProperty,\n ObjectProto = O.prototype,\n toString = ObjectProto.toString,\n toStringTag = 'toStringTag',\n descriptor;\n ['iterator', 'match', 'replace', 'search', 'split', 'hasInstance', 'isConcatSpreadable', 'unscopables', 'species', 'toPrimitive', toStringTag].forEach(function (name) {\n if (!(name in Symbol)) {\n dP(Symbol, name, { value: Symbol(name) });\n switch (name) {\n case toStringTag:\n descriptor = O.getOwnPropertyDescriptor(ObjectProto, 'toString');\n descriptor.value = function () {\n var str = toString.call(this),\n tst = typeof this === 'undefined' || this === null ? undefined : this[Symbol.toStringTag];\n return typeof tst === 'undefined' ? str : '[object ' + tst + ']';\n };\n dP(ObjectProto, 'toString', descriptor);\n break;\n }\n }\n });\n })(Object, Symbol);\n\n (function (Si, AP, SP) {\n\n function returnThis() {\n return this;\n }\n\n if (!AP[Si]) AP[Si] = function () {\n var i = 0,\n self = this,\n iterator = {\n next: function next() {\n var done = self.length <= i;\n return done ? { done: done } : { done: done, value: self[i++] };\n }\n };\n iterator[Si] = returnThis;\n return iterator;\n };\n\n if (!SP[Si]) SP[Si] = function () {\n var fromCodePoint = String.fromCodePoint,\n self = this,\n i = 0,\n length = self.length,\n iterator = {\n next: function next() {\n var done = length <= i,\n c = done ? '' : fromCodePoint(self.codePointAt(i));\n i += c.length;\n return done ? { done: done } : { done: done, value: c };\n }\n };\n iterator[Si] = returnThis;\n return iterator;\n };\n })(Symbol.iterator, Array.prototype, String.prototype);\n}\n\nif (typeof FEATURE_NO_ES2015 === 'undefined') {\n\n Number.isNaN = Number.isNaN || function (value) {\n return value !== value;\n };\n\n Number.isFinite = Number.isFinite || function (value) {\n return typeof value === \"number\" && isFinite(value);\n };\n}\n\nif (!String.prototype.endsWith || function () {\n try {\n return !\"ab\".endsWith(\"a\", 1);\n } catch (e) {\n return true;\n }\n}()) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!String.prototype.startsWith || function () {\n try {\n return !\"ab\".startsWith(\"b\", 1);\n } catch (e) {\n return true;\n }\n}()) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (typeof FEATURE_NO_ES2015 === 'undefined') {\n\n if (!Array.from) {\n Array.from = function () {\n var toInteger = function toInteger(it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? Math.floor : Math.ceil)(it);\n };\n var toLength = function toLength(it) {\n return it > 0 ? Math.min(toInteger(it), 0x1fffffffffffff) : 0;\n };\n var iterCall = function iterCall(iter, fn, val, index) {\n try {\n return fn(val, index);\n } catch (E) {\n if (typeof iter.return == 'function') iter.return();\n throw E;\n }\n };\n\n return function from(arrayLike) {\n var O = Object(arrayLike),\n C = typeof this == 'function' ? this : Array,\n aLen = arguments.length,\n mapfn = aLen > 1 ? arguments[1] : undefined,\n mapping = mapfn !== undefined,\n index = 0,\n iterFn = O[Symbol.iterator],\n length,\n result,\n step,\n iterator;\n if (mapping) mapfn = mapfn.bind(aLen > 2 ? arguments[2] : undefined);\n if (iterFn != undefined && !Array.isArray(arrayLike)) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n result[index] = mapping ? iterCall(iterator, mapfn, step.value, index) : step.value;\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n result[index] = mapping ? mapfn(O[index], index) : O[index];\n }\n }\n result.length = index;\n return result;\n };\n }();\n }\n\n if (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, 'find', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n }\n\n if (!Array.prototype.findIndex) {\n Object.defineProperty(Array.prototype, 'findIndex', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.findIndex called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return i;\n }\n }\n return -1;\n }\n });\n }\n}\n\nif (typeof FEATURE_NO_ES2016 === 'undefined' && !Array.prototype.includes) {\n Object.defineProperty(Array.prototype, 'includes', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: function value(searchElement) {\n var O = Object(this);\n var len = parseInt(O.length) || 0;\n if (len === 0) {\n return false;\n }\n var n = parseInt(arguments[1]) || 0;\n var k;\n if (n >= 0) {\n k = n;\n } else {\n k = len + n;\n if (k < 0) {\n k = 0;\n }\n }\n var currentElement;\n while (k < len) {\n currentElement = O[k];\n if (searchElement === currentElement || searchElement !== searchElement && currentElement !== currentElement) {\n return true;\n }\n k++;\n }\n return false;\n }\n });\n}\n\nif (typeof FEATURE_NO_ES2015 === 'undefined') {\n\n (function () {\n var needsFix = false;\n\n try {\n var s = Object.keys('a');\n needsFix = s.length !== 1 || s[0] !== '0';\n } catch (e) {\n needsFix = true;\n }\n\n if (needsFix) {\n Object.keys = function () {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n hasDontEnumBug = !{ toString: null }.propertyIsEnumerable('toString'),\n dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'],\n dontEnumsLength = dontEnums.length;\n\n return function (obj) {\n if (obj === undefined || obj === null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n\n obj = Object(obj);\n\n var result = [],\n prop,\n i;\n\n for (prop in obj) {\n if (hasOwnProperty.call(obj, prop)) {\n result.push(prop);\n }\n }\n\n if (hasDontEnumBug) {\n for (i = 0; i < dontEnumsLength; i++) {\n if (hasOwnProperty.call(obj, dontEnums[i])) {\n result.push(dontEnums[i]);\n }\n }\n }\n\n return result;\n };\n }();\n }\n })();\n\n (function (O) {\n if ('assign' in O) {\n return;\n }\n\n O.defineProperty(O, 'assign', {\n configurable: true,\n writable: true,\n value: function () {\n var gOPS = O.getOwnPropertySymbols,\n pIE = O.propertyIsEnumerable,\n filterOS = gOPS ? function (self) {\n return gOPS(self).filter(pIE, self);\n } : function () {\n return Array.prototype;\n };\n\n return function assign(where) {\n if (gOPS && !(where instanceof O)) {\n console.warn('problematic Symbols', where);\n }\n\n function set(keyOrSymbol) {\n where[keyOrSymbol] = arg[keyOrSymbol];\n }\n\n for (var i = 1, ii = arguments.length; i < ii; ++i) {\n var arg = arguments[i];\n\n if (arg === null || arg === undefined) {\n continue;\n }\n\n O.keys(arg).concat(filterOS(arg)).forEach(set);\n }\n\n return where;\n };\n }()\n });\n })(Object);\n}\n\nif (typeof FEATURE_NO_ES2015 === 'undefined') {\n\n (function (global) {\n var i;\n\n var defineProperty = Object.defineProperty,\n is = function is(a, b) {\n return a === b || a !== a && b !== b;\n };\n\n if (typeof WeakMap == 'undefined') {\n global.WeakMap = createCollection({\n 'delete': sharedDelete,\n\n clear: sharedClear,\n\n get: sharedGet,\n\n has: mapHas,\n\n set: sharedSet\n }, true);\n }\n\n if (typeof Map == 'undefined' || typeof new Map().values !== 'function' || !new Map().values().next) {\n var _createCollection;\n\n global.Map = createCollection((_createCollection = {\n 'delete': sharedDelete,\n\n has: mapHas,\n\n get: sharedGet,\n\n set: sharedSet,\n\n keys: sharedKeys,\n\n values: sharedValues,\n\n entries: mapEntries,\n\n forEach: sharedForEach,\n\n clear: sharedClear\n }, _createCollection[Symbol.iterator] = mapEntries, _createCollection));\n }\n\n if (typeof Set == 'undefined' || typeof new Set().values !== 'function' || !new Set().values().next) {\n var _createCollection2;\n\n global.Set = createCollection((_createCollection2 = {\n has: setHas,\n\n add: sharedAdd,\n\n 'delete': sharedDelete,\n\n clear: sharedClear,\n\n keys: sharedValues,\n values: sharedValues,\n\n entries: setEntries,\n\n forEach: sharedForEach\n }, _createCollection2[Symbol.iterator] = sharedValues, _createCollection2));\n }\n\n if (typeof WeakSet == 'undefined') {\n global.WeakSet = createCollection({\n 'delete': sharedDelete,\n\n add: sharedAdd,\n\n clear: sharedClear,\n\n has: setHas\n }, true);\n }\n\n function createCollection(proto, objectOnly) {\n function Collection(a) {\n if (!this || this.constructor !== Collection) return new Collection(a);\n this._keys = [];\n this._values = [];\n this._itp = [];\n this.objectOnly = objectOnly;\n\n if (a) init.call(this, a);\n }\n\n if (!objectOnly) {\n defineProperty(proto, 'size', {\n get: sharedSize\n });\n }\n\n proto.constructor = Collection;\n Collection.prototype = proto;\n\n return Collection;\n }\n\n function init(a) {\n var i;\n\n if (this.add) a.forEach(this.add, this);else a.forEach(function (a) {\n this.set(a[0], a[1]);\n }, this);\n }\n\n function sharedDelete(key) {\n if (this.has(key)) {\n this._keys.splice(i, 1);\n this._values.splice(i, 1);\n\n this._itp.forEach(function (p) {\n if (i < p[0]) p[0]--;\n });\n }\n\n return -1 < i;\n };\n\n function sharedGet(key) {\n return this.has(key) ? this._values[i] : undefined;\n }\n\n function has(list, key) {\n if (this.objectOnly && key !== Object(key)) throw new TypeError(\"Invalid value used as weak collection key\");\n\n if (key != key || key === 0) for (i = list.length; i-- && !is(list[i], key);) {} else i = list.indexOf(key);\n return -1 < i;\n }\n\n function setHas(value) {\n return has.call(this, this._values, value);\n }\n\n function mapHas(value) {\n return has.call(this, this._keys, value);\n }\n\n function sharedSet(key, value) {\n this.has(key) ? this._values[i] = value : this._values[this._keys.push(key) - 1] = value;\n return this;\n }\n\n function sharedAdd(value) {\n if (!this.has(value)) this._values.push(value);\n return this;\n }\n\n function sharedClear() {\n (this._keys || 0).length = this._values.length = 0;\n }\n\n function sharedKeys() {\n return sharedIterator(this._itp, this._keys);\n }\n\n function sharedValues() {\n return sharedIterator(this._itp, this._values);\n }\n\n function mapEntries() {\n return sharedIterator(this._itp, this._keys, this._values);\n }\n\n function setEntries() {\n return sharedIterator(this._itp, this._values, this._values);\n }\n\n function sharedIterator(itp, array, array2) {\n var _ref;\n\n var p = [0],\n done = false;\n itp.push(p);\n return _ref = {}, _ref[Symbol.iterator] = function () {\n return this;\n }, _ref.next = function next() {\n var v,\n k = p[0];\n if (!done && k < array.length) {\n v = array2 ? [array[k], array2[k]] : array[k];\n p[0]++;\n } else {\n done = true;\n itp.splice(itp.indexOf(p), 1);\n }\n return { done: done, value: v };\n }, _ref;\n }\n\n function sharedSize() {\n return this._values.length;\n }\n\n function sharedForEach(callback, context) {\n var it = this.entries();\n for (;;) {\n var r = it.next();\n if (r.done) break;\n callback.call(context, r.value[1], r.value[0], this);\n }\n }\n })(PLATFORM.global);\n}\n\nif (typeof FEATURE_NO_ES2015 === 'undefined') {\n (function () {\n\n var bind = Function.prototype.bind;\n\n if (typeof PLATFORM.global.Reflect === 'undefined') {\n PLATFORM.global.Reflect = {};\n }\n\n if (typeof Reflect.defineProperty !== 'function') {\n Reflect.defineProperty = function (target, propertyKey, descriptor) {\n if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' ? target === null : typeof target !== 'function') {\n throw new TypeError('Reflect.defineProperty called on non-object');\n }\n try {\n Object.defineProperty(target, propertyKey, descriptor);\n return true;\n } catch (e) {\n return false;\n }\n };\n }\n\n if (typeof Reflect.construct !== 'function') {\n Reflect.construct = function (Target, args) {\n if (args) {\n switch (args.length) {\n case 0:\n return new Target();\n case 1:\n return new Target(args[0]);\n case 2:\n return new Target(args[0], args[1]);\n case 3:\n return new Target(args[0], args[1], args[2]);\n case 4:\n return new Target(args[0], args[1], args[2], args[3]);\n }\n }\n\n var a = [null];\n a.push.apply(a, args);\n return new (bind.apply(Target, a))();\n };\n }\n\n if (typeof Reflect.ownKeys !== 'function') {\n Reflect.ownKeys = function (o) {\n return Object.getOwnPropertyNames(o).concat(Object.getOwnPropertySymbols(o));\n };\n }\n })();\n}\n\nif (typeof FEATURE_NO_ESNEXT === 'undefined') {\n (function () {\n\n var emptyMetadata = Object.freeze({});\n var metadataContainerKey = '__metadata__';\n\n if (typeof Reflect.getOwnMetadata !== 'function') {\n Reflect.getOwnMetadata = function (metadataKey, target, targetKey) {\n if (target.hasOwnProperty(metadataContainerKey)) {\n return (target[metadataContainerKey][targetKey] || emptyMetadata)[metadataKey];\n }\n };\n }\n\n if (typeof Reflect.defineMetadata !== 'function') {\n Reflect.defineMetadata = function (metadataKey, metadataValue, target, targetKey) {\n var metadataContainer = target.hasOwnProperty(metadataContainerKey) ? target[metadataContainerKey] : target[metadataContainerKey] = {};\n var targetContainer = metadataContainer[targetKey] || (metadataContainer[targetKey] = {});\n targetContainer[metadataKey] = metadataValue;\n };\n }\n\n if (typeof Reflect.metadata !== 'function') {\n Reflect.metadata = function (metadataKey, metadataValue) {\n return function (target, targetKey) {\n Reflect.defineMetadata(metadataKey, metadataValue, target, targetKey);\n };\n };\n }\n })();\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-polyfills/dist/native-modules/aurelia-polyfills.js\n// module id = 19\n// module chunks = 0","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _class, _temp, _dec, _class2, _dec2, _class3, _dec3, _class4, _dec4, _class5, _dec5, _class6, _class7, _temp2, _dec6, _class8, _class9, _temp3, _class11, _dec7, _class13, _dec8, _class14, _class15, _temp4, _dec9, _class16, _dec10, _class17, _dec11, _class18;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\nimport * as LogManager from 'aurelia-logging';\nimport { metadata, Origin, protocol } from 'aurelia-metadata';\nimport { DOM, PLATFORM, FEATURE } from 'aurelia-pal';\nimport { relativeToFile } from 'aurelia-path';\nimport { TemplateRegistryEntry, Loader } from 'aurelia-loader';\nimport { inject, Container, resolver } from 'aurelia-dependency-injection';\nimport { Binding, createOverrideContext, ValueConverterResource, BindingBehaviorResource, subscriberCollection, bindingMode, ObserverLocator, EventManager } from 'aurelia-binding';\nimport { TaskQueue } from 'aurelia-task-queue';\n\nexport var animationEvent = {\n enterBegin: 'animation:enter:begin',\n enterActive: 'animation:enter:active',\n enterDone: 'animation:enter:done',\n enterTimeout: 'animation:enter:timeout',\n\n leaveBegin: 'animation:leave:begin',\n leaveActive: 'animation:leave:active',\n leaveDone: 'animation:leave:done',\n leaveTimeout: 'animation:leave:timeout',\n\n staggerNext: 'animation:stagger:next',\n\n removeClassBegin: 'animation:remove-class:begin',\n removeClassActive: 'animation:remove-class:active',\n removeClassDone: 'animation:remove-class:done',\n removeClassTimeout: 'animation:remove-class:timeout',\n\n addClassBegin: 'animation:add-class:begin',\n addClassActive: 'animation:add-class:active',\n addClassDone: 'animation:add-class:done',\n addClassTimeout: 'animation:add-class:timeout',\n\n animateBegin: 'animation:animate:begin',\n animateActive: 'animation:animate:active',\n animateDone: 'animation:animate:done',\n animateTimeout: 'animation:animate:timeout',\n\n sequenceBegin: 'animation:sequence:begin',\n sequenceDone: 'animation:sequence:done'\n};\n\nexport var Animator = function () {\n function Animator() {\n \n }\n\n Animator.prototype.enter = function enter(element) {\n return Promise.resolve(false);\n };\n\n Animator.prototype.leave = function leave(element) {\n return Promise.resolve(false);\n };\n\n Animator.prototype.removeClass = function removeClass(element, className) {\n element.classList.remove(className);\n return Promise.resolve(false);\n };\n\n Animator.prototype.addClass = function addClass(element, className) {\n element.classList.add(className);\n return Promise.resolve(false);\n };\n\n Animator.prototype.animate = function animate(element, className) {\n return Promise.resolve(false);\n };\n\n Animator.prototype.runSequence = function runSequence(animations) {};\n\n Animator.prototype.registerEffect = function registerEffect(effectName, properties) {};\n\n Animator.prototype.unregisterEffect = function unregisterEffect(effectName) {};\n\n return Animator;\n}();\n\nexport var CompositionTransactionNotifier = function () {\n function CompositionTransactionNotifier(owner) {\n \n\n this.owner = owner;\n this.owner._compositionCount++;\n }\n\n CompositionTransactionNotifier.prototype.done = function done() {\n this.owner._compositionCount--;\n this.owner._tryCompleteTransaction();\n };\n\n return CompositionTransactionNotifier;\n}();\n\nexport var CompositionTransactionOwnershipToken = function () {\n function CompositionTransactionOwnershipToken(owner) {\n \n\n this.owner = owner;\n this.owner._ownershipToken = this;\n this.thenable = this._createThenable();\n }\n\n CompositionTransactionOwnershipToken.prototype.waitForCompositionComplete = function waitForCompositionComplete() {\n this.owner._tryCompleteTransaction();\n return this.thenable;\n };\n\n CompositionTransactionOwnershipToken.prototype.resolve = function resolve() {\n this._resolveCallback();\n };\n\n CompositionTransactionOwnershipToken.prototype._createThenable = function _createThenable() {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n _this._resolveCallback = resolve;\n });\n };\n\n return CompositionTransactionOwnershipToken;\n}();\n\nexport var CompositionTransaction = function () {\n function CompositionTransaction() {\n \n\n this._ownershipToken = null;\n this._compositionCount = 0;\n }\n\n CompositionTransaction.prototype.tryCapture = function tryCapture() {\n return this._ownershipToken === null ? new CompositionTransactionOwnershipToken(this) : null;\n };\n\n CompositionTransaction.prototype.enlist = function enlist() {\n return new CompositionTransactionNotifier(this);\n };\n\n CompositionTransaction.prototype._tryCompleteTransaction = function _tryCompleteTransaction() {\n if (this._compositionCount <= 0) {\n this._compositionCount = 0;\n\n if (this._ownershipToken !== null) {\n var token = this._ownershipToken;\n this._ownershipToken = null;\n token.resolve();\n }\n }\n };\n\n return CompositionTransaction;\n}();\n\nvar capitalMatcher = /([A-Z])/g;\n\nfunction addHyphenAndLower(char) {\n return '-' + char.toLowerCase();\n}\n\nexport function _hyphenate(name) {\n return (name.charAt(0).toLowerCase() + name.slice(1)).replace(capitalMatcher, addHyphenAndLower);\n}\n\nexport function _isAllWhitespace(node) {\n return !(node.auInterpolationTarget || /[^\\t\\n\\r ]/.test(node.textContent));\n}\n\nexport var ViewEngineHooksResource = function () {\n function ViewEngineHooksResource() {\n \n }\n\n ViewEngineHooksResource.prototype.initialize = function initialize(container, target) {\n this.instance = container.get(target);\n };\n\n ViewEngineHooksResource.prototype.register = function register(registry, name) {\n registry.registerViewEngineHooks(this.instance);\n };\n\n ViewEngineHooksResource.prototype.load = function load(container, target) {};\n\n ViewEngineHooksResource.convention = function convention(name) {\n if (name.endsWith('ViewEngineHooks')) {\n return new ViewEngineHooksResource();\n }\n };\n\n return ViewEngineHooksResource;\n}();\n\nexport function viewEngineHooks(target) {\n var deco = function deco(t) {\n metadata.define(metadata.resource, new ViewEngineHooksResource(), t);\n };\n\n return target ? deco(target) : deco;\n}\n\nexport var ElementEvents = function () {\n function ElementEvents(element) {\n \n\n this.element = element;\n this.subscriptions = {};\n }\n\n ElementEvents.prototype._enqueueHandler = function _enqueueHandler(handler) {\n this.subscriptions[handler.eventName] = this.subscriptions[handler.eventName] || [];\n this.subscriptions[handler.eventName].push(handler);\n };\n\n ElementEvents.prototype._dequeueHandler = function _dequeueHandler(handler) {\n var index = void 0;\n var subscriptions = this.subscriptions[handler.eventName];\n if (subscriptions) {\n index = subscriptions.indexOf(handler);\n if (index > -1) {\n subscriptions.splice(index, 1);\n }\n }\n return handler;\n };\n\n ElementEvents.prototype.publish = function publish(eventName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var cancelable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n var event = DOM.createCustomEvent(eventName, { cancelable: cancelable, bubbles: bubbles, detail: detail });\n this.element.dispatchEvent(event);\n };\n\n ElementEvents.prototype.subscribe = function subscribe(eventName, handler) {\n var _this2 = this;\n\n var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (handler && typeof handler === 'function') {\n handler.eventName = eventName;\n handler.handler = handler;\n handler.bubbles = bubbles;\n handler.dispose = function () {\n _this2.element.removeEventListener(eventName, handler, bubbles);\n _this2._dequeueHandler(handler);\n };\n this.element.addEventListener(eventName, handler, bubbles);\n this._enqueueHandler(handler);\n return handler;\n }\n\n return undefined;\n };\n\n ElementEvents.prototype.subscribeOnce = function subscribeOnce(eventName, handler) {\n var _this3 = this;\n\n var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (handler && typeof handler === 'function') {\n var _ret = function () {\n var _handler = function _handler(event) {\n handler(event);\n _handler.dispose();\n };\n return {\n v: _this3.subscribe(eventName, _handler, bubbles)\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n\n return undefined;\n };\n\n ElementEvents.prototype.dispose = function dispose(eventName) {\n if (eventName && typeof eventName === 'string') {\n var subscriptions = this.subscriptions[eventName];\n if (subscriptions) {\n while (subscriptions.length) {\n var subscription = subscriptions.pop();\n if (subscription) {\n subscription.dispose();\n }\n }\n }\n } else {\n this.disposeAll();\n }\n };\n\n ElementEvents.prototype.disposeAll = function disposeAll() {\n for (var key in this.subscriptions) {\n this.dispose(key);\n }\n };\n\n return ElementEvents;\n}();\n\nexport var ResourceLoadContext = function () {\n function ResourceLoadContext() {\n \n\n this.dependencies = {};\n }\n\n ResourceLoadContext.prototype.addDependency = function addDependency(url) {\n this.dependencies[url] = true;\n };\n\n ResourceLoadContext.prototype.hasDependency = function hasDependency(url) {\n return url in this.dependencies;\n };\n\n return ResourceLoadContext;\n}();\n\nexport var ViewCompileInstruction = function ViewCompileInstruction() {\n var targetShadowDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var compileSurrogate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n \n\n this.targetShadowDOM = targetShadowDOM;\n this.compileSurrogate = compileSurrogate;\n this.associatedModuleId = null;\n};\n\nViewCompileInstruction.normal = new ViewCompileInstruction();\n\nexport var BehaviorInstruction = function () {\n BehaviorInstruction.enhance = function enhance() {\n var instruction = new BehaviorInstruction();\n instruction.enhance = true;\n return instruction;\n };\n\n BehaviorInstruction.unitTest = function unitTest(type, attributes) {\n var instruction = new BehaviorInstruction();\n instruction.type = type;\n instruction.attributes = attributes || {};\n return instruction;\n };\n\n BehaviorInstruction.element = function element(node, type) {\n var instruction = new BehaviorInstruction();\n instruction.type = type;\n instruction.attributes = {};\n instruction.anchorIsContainer = !(node.hasAttribute('containerless') || type.containerless);\n instruction.initiatedByBehavior = true;\n return instruction;\n };\n\n BehaviorInstruction.attribute = function attribute(attrName, type) {\n var instruction = new BehaviorInstruction();\n instruction.attrName = attrName;\n instruction.type = type || null;\n instruction.attributes = {};\n return instruction;\n };\n\n BehaviorInstruction.dynamic = function dynamic(host, viewModel, viewFactory) {\n var instruction = new BehaviorInstruction();\n instruction.host = host;\n instruction.viewModel = viewModel;\n instruction.viewFactory = viewFactory;\n instruction.inheritBindingContext = true;\n return instruction;\n };\n\n function BehaviorInstruction() {\n \n\n this.initiatedByBehavior = false;\n this.enhance = false;\n this.partReplacements = null;\n this.viewFactory = null;\n this.originalAttrName = null;\n this.skipContentProcessing = false;\n this.contentFactory = null;\n this.viewModel = null;\n this.anchorIsContainer = false;\n this.host = null;\n this.attributes = null;\n this.type = null;\n this.attrName = null;\n this.inheritBindingContext = false;\n }\n\n return BehaviorInstruction;\n}();\n\nBehaviorInstruction.normal = new BehaviorInstruction();\n\nexport var TargetInstruction = (_temp = _class = function () {\n TargetInstruction.shadowSlot = function shadowSlot(parentInjectorId) {\n var instruction = new TargetInstruction();\n instruction.parentInjectorId = parentInjectorId;\n instruction.shadowSlot = true;\n return instruction;\n };\n\n TargetInstruction.contentExpression = function contentExpression(expression) {\n var instruction = new TargetInstruction();\n instruction.contentExpression = expression;\n return instruction;\n };\n\n TargetInstruction.lifting = function lifting(parentInjectorId, liftingInstruction) {\n var instruction = new TargetInstruction();\n instruction.parentInjectorId = parentInjectorId;\n instruction.expressions = TargetInstruction.noExpressions;\n instruction.behaviorInstructions = [liftingInstruction];\n instruction.viewFactory = liftingInstruction.viewFactory;\n instruction.providers = [liftingInstruction.type.target];\n instruction.lifting = true;\n return instruction;\n };\n\n TargetInstruction.normal = function normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction) {\n var instruction = new TargetInstruction();\n instruction.injectorId = injectorId;\n instruction.parentInjectorId = parentInjectorId;\n instruction.providers = providers;\n instruction.behaviorInstructions = behaviorInstructions;\n instruction.expressions = expressions;\n instruction.anchorIsContainer = elementInstruction ? elementInstruction.anchorIsContainer : true;\n instruction.elementInstruction = elementInstruction;\n return instruction;\n };\n\n TargetInstruction.surrogate = function surrogate(providers, behaviorInstructions, expressions, values) {\n var instruction = new TargetInstruction();\n instruction.expressions = expressions;\n instruction.behaviorInstructions = behaviorInstructions;\n instruction.providers = providers;\n instruction.values = values;\n return instruction;\n };\n\n function TargetInstruction() {\n \n\n this.injectorId = null;\n this.parentInjectorId = null;\n\n this.shadowSlot = false;\n this.slotName = null;\n this.slotFallbackFactory = null;\n\n this.contentExpression = null;\n\n this.expressions = null;\n this.behaviorInstructions = null;\n this.providers = null;\n\n this.viewFactory = null;\n\n this.anchorIsContainer = false;\n this.elementInstruction = null;\n this.lifting = false;\n\n this.values = null;\n }\n\n return TargetInstruction;\n}(), _class.noExpressions = Object.freeze([]), _temp);\n\nexport var viewStrategy = protocol.create('aurelia:view-strategy', {\n validate: function validate(target) {\n if (!(typeof target.loadViewFactory === 'function')) {\n return 'View strategies must implement: loadViewFactory(viewEngine: ViewEngine, compileInstruction: ViewCompileInstruction, loadContext?: ResourceLoadContext): Promise<ViewFactory>';\n }\n\n return true;\n },\n compose: function compose(target) {\n if (!(typeof target.makeRelativeTo === 'function')) {\n target.makeRelativeTo = PLATFORM.noop;\n }\n }\n});\n\nexport var RelativeViewStrategy = (_dec = viewStrategy(), _dec(_class2 = function () {\n function RelativeViewStrategy(path) {\n \n\n this.path = path;\n this.absolutePath = null;\n }\n\n RelativeViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n if (this.absolutePath === null && this.moduleId) {\n this.absolutePath = relativeToFile(this.path, this.moduleId);\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(this.absolutePath || this.path, compileInstruction, loadContext, target);\n };\n\n RelativeViewStrategy.prototype.makeRelativeTo = function makeRelativeTo(file) {\n if (this.absolutePath === null) {\n this.absolutePath = relativeToFile(this.path, file);\n }\n };\n\n return RelativeViewStrategy;\n}()) || _class2);\n\nexport var ConventionalViewStrategy = (_dec2 = viewStrategy(), _dec2(_class3 = function () {\n function ConventionalViewStrategy(viewLocator, origin) {\n \n\n this.moduleId = origin.moduleId;\n this.viewUrl = viewLocator.convertOriginToViewUrl(origin);\n }\n\n ConventionalViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(this.viewUrl, compileInstruction, loadContext, target);\n };\n\n return ConventionalViewStrategy;\n}()) || _class3);\n\nexport var NoViewStrategy = (_dec3 = viewStrategy(), _dec3(_class4 = function () {\n function NoViewStrategy(dependencies, dependencyBaseUrl) {\n \n\n this.dependencies = dependencies || null;\n this.dependencyBaseUrl = dependencyBaseUrl || '';\n }\n\n NoViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n var entry = this.entry;\n var dependencies = this.dependencies;\n\n if (entry && entry.factoryIsReady) {\n return Promise.resolve(null);\n }\n\n this.entry = entry = new TemplateRegistryEntry(this.moduleId || this.dependencyBaseUrl);\n\n entry.dependencies = [];\n entry.templateIsLoaded = true;\n\n if (dependencies !== null) {\n for (var i = 0, ii = dependencies.length; i < ii; ++i) {\n var current = dependencies[i];\n\n if (typeof current === 'string' || typeof current === 'function') {\n entry.addDependency(current);\n } else {\n entry.addDependency(current.from, current.as);\n }\n }\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\n };\n\n return NoViewStrategy;\n}()) || _class4);\n\nexport var TemplateRegistryViewStrategy = (_dec4 = viewStrategy(), _dec4(_class5 = function () {\n function TemplateRegistryViewStrategy(moduleId, entry) {\n \n\n this.moduleId = moduleId;\n this.entry = entry;\n }\n\n TemplateRegistryViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n var entry = this.entry;\n\n if (entry.factoryIsReady) {\n return Promise.resolve(entry.factory);\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\n };\n\n return TemplateRegistryViewStrategy;\n}()) || _class5);\n\nexport var InlineViewStrategy = (_dec5 = viewStrategy(), _dec5(_class6 = function () {\n function InlineViewStrategy(markup, dependencies, dependencyBaseUrl) {\n \n\n this.markup = markup;\n this.dependencies = dependencies || null;\n this.dependencyBaseUrl = dependencyBaseUrl || '';\n }\n\n InlineViewStrategy.prototype.loadViewFactory = function loadViewFactory(viewEngine, compileInstruction, loadContext, target) {\n var entry = this.entry;\n var dependencies = this.dependencies;\n\n if (entry && entry.factoryIsReady) {\n return Promise.resolve(entry.factory);\n }\n\n this.entry = entry = new TemplateRegistryEntry(this.moduleId || this.dependencyBaseUrl);\n entry.template = DOM.createTemplateFromMarkup(this.markup);\n\n if (dependencies !== null) {\n for (var i = 0, ii = dependencies.length; i < ii; ++i) {\n var current = dependencies[i];\n\n if (typeof current === 'string' || typeof current === 'function') {\n entry.addDependency(current);\n } else {\n entry.addDependency(current.from, current.as);\n }\n }\n }\n\n compileInstruction.associatedModuleId = this.moduleId;\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\n };\n\n return InlineViewStrategy;\n}()) || _class6);\n\nexport var ViewLocator = (_temp2 = _class7 = function () {\n function ViewLocator() {\n \n }\n\n ViewLocator.prototype.getViewStrategy = function getViewStrategy(value) {\n if (!value) {\n return null;\n }\n\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && 'getViewStrategy' in value) {\n var _origin = Origin.get(value.constructor);\n\n value = value.getViewStrategy();\n\n if (typeof value === 'string') {\n value = new RelativeViewStrategy(value);\n }\n\n viewStrategy.assert(value);\n\n if (_origin.moduleId) {\n value.makeRelativeTo(_origin.moduleId);\n }\n\n return value;\n }\n\n if (typeof value === 'string') {\n value = new RelativeViewStrategy(value);\n }\n\n if (viewStrategy.validate(value)) {\n return value;\n }\n\n if (typeof value !== 'function') {\n value = value.constructor;\n }\n\n var origin = Origin.get(value);\n var strategy = metadata.get(ViewLocator.viewStrategyMetadataKey, value);\n\n if (!strategy) {\n if (!origin.moduleId) {\n throw new Error('Cannot determine default view strategy for object.', value);\n }\n\n strategy = this.createFallbackViewStrategy(origin);\n } else if (origin.moduleId) {\n strategy.moduleId = origin.moduleId;\n }\n\n return strategy;\n };\n\n ViewLocator.prototype.createFallbackViewStrategy = function createFallbackViewStrategy(origin) {\n return new ConventionalViewStrategy(this, origin);\n };\n\n ViewLocator.prototype.convertOriginToViewUrl = function convertOriginToViewUrl(origin) {\n var moduleId = origin.moduleId;\n var id = moduleId.endsWith('.js') || moduleId.endsWith('.ts') ? moduleId.substring(0, moduleId.length - 3) : moduleId;\n return id + '.html';\n };\n\n return ViewLocator;\n}(), _class7.viewStrategyMetadataKey = 'aurelia:view-strategy', _temp2);\n\nfunction mi(name) {\n throw new Error('BindingLanguage must implement ' + name + '().');\n}\n\nexport var BindingLanguage = function () {\n function BindingLanguage() {\n \n }\n\n BindingLanguage.prototype.inspectAttribute = function inspectAttribute(resources, elementName, attrName, attrValue) {\n mi('inspectAttribute');\n };\n\n BindingLanguage.prototype.createAttributeInstruction = function createAttributeInstruction(resources, element, info, existingInstruction) {\n mi('createAttributeInstruction');\n };\n\n BindingLanguage.prototype.inspectTextContent = function inspectTextContent(resources, value) {\n mi('inspectTextContent');\n };\n\n return BindingLanguage;\n}();\n\nvar noNodes = Object.freeze([]);\n\nexport var SlotCustomAttribute = (_dec6 = inject(DOM.Element), _dec6(_class8 = function () {\n function SlotCustomAttribute(element) {\n \n\n this.element = element;\n this.element.auSlotAttribute = this;\n }\n\n SlotCustomAttribute.prototype.valueChanged = function valueChanged(newValue, oldValue) {};\n\n return SlotCustomAttribute;\n}()) || _class8);\n\nexport var PassThroughSlot = function () {\n function PassThroughSlot(anchor, name, destinationName, fallbackFactory) {\n \n\n this.anchor = anchor;\n this.anchor.viewSlot = this;\n this.name = name;\n this.destinationName = destinationName;\n this.fallbackFactory = fallbackFactory;\n this.destinationSlot = null;\n this.projections = 0;\n this.contentView = null;\n\n var attr = new SlotCustomAttribute(this.anchor);\n attr.value = this.destinationName;\n }\n\n PassThroughSlot.prototype.renderFallbackContent = function renderFallbackContent(view, nodes, projectionSource, index) {\n if (this.contentView === null) {\n this.contentView = this.fallbackFactory.create(this.ownerView.container);\n this.contentView.bind(this.ownerView.bindingContext, this.ownerView.overrideContext);\n\n var slots = Object.create(null);\n slots[this.destinationSlot.name] = this.destinationSlot;\n\n ShadowDOM.distributeView(this.contentView, slots, projectionSource, index, this.destinationSlot.name);\n }\n };\n\n PassThroughSlot.prototype.passThroughTo = function passThroughTo(destinationSlot) {\n this.destinationSlot = destinationSlot;\n };\n\n PassThroughSlot.prototype.addNode = function addNode(view, node, projectionSource, index) {\n if (this.contentView !== null) {\n this.contentView.removeNodes();\n this.contentView.detached();\n this.contentView.unbind();\n this.contentView = null;\n }\n\n if (node.viewSlot instanceof PassThroughSlot) {\n node.viewSlot.passThroughTo(this);\n return;\n }\n\n this.projections++;\n this.destinationSlot.addNode(view, node, projectionSource, index);\n };\n\n PassThroughSlot.prototype.removeView = function removeView(view, projectionSource) {\n this.projections--;\n this.destinationSlot.removeView(view, projectionSource);\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(null, noNodes, projectionSource);\n }\n };\n\n PassThroughSlot.prototype.removeAll = function removeAll(projectionSource) {\n this.projections = 0;\n this.destinationSlot.removeAll(projectionSource);\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(null, noNodes, projectionSource);\n }\n };\n\n PassThroughSlot.prototype.projectFrom = function projectFrom(view, projectionSource) {\n this.destinationSlot.projectFrom(view, projectionSource);\n };\n\n PassThroughSlot.prototype.created = function created(ownerView) {\n this.ownerView = ownerView;\n };\n\n PassThroughSlot.prototype.bind = function bind(view) {\n if (this.contentView) {\n this.contentView.bind(view.bindingContext, view.overrideContext);\n }\n };\n\n PassThroughSlot.prototype.attached = function attached() {\n if (this.contentView) {\n this.contentView.attached();\n }\n };\n\n PassThroughSlot.prototype.detached = function detached() {\n if (this.contentView) {\n this.contentView.detached();\n }\n };\n\n PassThroughSlot.prototype.unbind = function unbind() {\n if (this.contentView) {\n this.contentView.unbind();\n }\n };\n\n _createClass(PassThroughSlot, [{\n key: 'needsFallbackRendering',\n get: function get() {\n return this.fallbackFactory && this.projections === 0;\n }\n }]);\n\n return PassThroughSlot;\n}();\n\nexport var ShadowSlot = function () {\n function ShadowSlot(anchor, name, fallbackFactory) {\n \n\n this.anchor = anchor;\n this.anchor.isContentProjectionSource = true;\n this.anchor.viewSlot = this;\n this.name = name;\n this.fallbackFactory = fallbackFactory;\n this.contentView = null;\n this.projections = 0;\n this.children = [];\n this.projectFromAnchors = null;\n this.destinationSlots = null;\n }\n\n ShadowSlot.prototype.addNode = function addNode(view, node, projectionSource, index, destination) {\n if (this.contentView !== null) {\n this.contentView.removeNodes();\n this.contentView.detached();\n this.contentView.unbind();\n this.contentView = null;\n }\n\n if (node.viewSlot instanceof PassThroughSlot) {\n node.viewSlot.passThroughTo(this);\n return;\n }\n\n if (this.destinationSlots !== null) {\n ShadowDOM.distributeNodes(view, [node], this.destinationSlots, this, index);\n } else {\n node.auOwnerView = view;\n node.auProjectionSource = projectionSource;\n node.auAssignedSlot = this;\n\n var anchor = this._findAnchor(view, node, projectionSource, index);\n var parent = anchor.parentNode;\n\n parent.insertBefore(node, anchor);\n this.children.push(node);\n this.projections++;\n }\n };\n\n ShadowSlot.prototype.removeView = function removeView(view, projectionSource) {\n if (this.destinationSlots !== null) {\n ShadowDOM.undistributeView(view, this.destinationSlots, this);\n } else if (this.contentView && this.contentView.hasSlots) {\n ShadowDOM.undistributeView(view, this.contentView.slots, projectionSource);\n } else {\n var found = this.children.find(function (x) {\n return x.auSlotProjectFrom === projectionSource;\n });\n if (found) {\n var _children = found.auProjectionChildren;\n\n for (var i = 0, ii = _children.length; i < ii; ++i) {\n var _child = _children[i];\n\n if (_child.auOwnerView === view) {\n _children.splice(i, 1);\n view.fragment.appendChild(_child);\n i--;ii--;\n this.projections--;\n }\n }\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(view, noNodes, projectionSource);\n }\n }\n }\n };\n\n ShadowSlot.prototype.removeAll = function removeAll(projectionSource) {\n if (this.destinationSlots !== null) {\n ShadowDOM.undistributeAll(this.destinationSlots, this);\n } else if (this.contentView && this.contentView.hasSlots) {\n ShadowDOM.undistributeAll(this.contentView.slots, projectionSource);\n } else {\n var found = this.children.find(function (x) {\n return x.auSlotProjectFrom === projectionSource;\n });\n\n if (found) {\n var _children2 = found.auProjectionChildren;\n for (var i = 0, ii = _children2.length; i < ii; ++i) {\n var _child2 = _children2[i];\n _child2.auOwnerView.fragment.appendChild(_child2);\n this.projections--;\n }\n\n found.auProjectionChildren = [];\n\n if (this.needsFallbackRendering) {\n this.renderFallbackContent(null, noNodes, projectionSource);\n }\n }\n }\n };\n\n ShadowSlot.prototype._findAnchor = function _findAnchor(view, node, projectionSource, index) {\n if (projectionSource) {\n var found = this.children.find(function (x) {\n return x.auSlotProjectFrom === projectionSource;\n });\n if (found) {\n if (index !== undefined) {\n var _children3 = found.auProjectionChildren;\n var viewIndex = -1;\n var lastView = void 0;\n\n for (var i = 0, ii = _children3.length; i < ii; ++i) {\n var current = _children3[i];\n\n if (current.auOwnerView !== lastView) {\n viewIndex++;\n lastView = current.auOwnerView;\n\n if (viewIndex >= index && lastView !== view) {\n _children3.splice(i, 0, node);\n return current;\n }\n }\n }\n }\n\n found.auProjectionChildren.push(node);\n return found;\n }\n }\n\n return this.anchor;\n };\n\n ShadowSlot.prototype.projectTo = function projectTo(slots) {\n this.destinationSlots = slots;\n };\n\n ShadowSlot.prototype.projectFrom = function projectFrom(view, projectionSource) {\n var anchor = DOM.createComment('anchor');\n var parent = this.anchor.parentNode;\n anchor.auSlotProjectFrom = projectionSource;\n anchor.auOwnerView = view;\n anchor.auProjectionChildren = [];\n parent.insertBefore(anchor, this.anchor);\n this.children.push(anchor);\n\n if (this.projectFromAnchors === null) {\n this.projectFromAnchors = [];\n }\n\n this.projectFromAnchors.push(anchor);\n };\n\n ShadowSlot.prototype.renderFallbackContent = function renderFallbackContent(view, nodes, projectionSource, index) {\n if (this.contentView === null) {\n this.contentView = this.fallbackFactory.create(this.ownerView.container);\n this.contentView.bind(this.ownerView.bindingContext, this.ownerView.overrideContext);\n this.contentView.insertNodesBefore(this.anchor);\n }\n\n if (this.contentView.hasSlots) {\n var slots = this.contentView.slots;\n var projectFromAnchors = this.projectFromAnchors;\n\n if (projectFromAnchors !== null) {\n for (var slotName in slots) {\n var slot = slots[slotName];\n\n for (var i = 0, ii = projectFromAnchors.length; i < ii; ++i) {\n var anchor = projectFromAnchors[i];\n slot.projectFrom(anchor.auOwnerView, anchor.auSlotProjectFrom);\n }\n }\n }\n\n this.fallbackSlots = slots;\n ShadowDOM.distributeNodes(view, nodes, slots, projectionSource, index);\n }\n };\n\n ShadowSlot.prototype.created = function created(ownerView) {\n this.ownerView = ownerView;\n };\n\n ShadowSlot.prototype.bind = function bind(view) {\n if (this.contentView) {\n this.contentView.bind(view.bindingContext, view.overrideContext);\n }\n };\n\n ShadowSlot.prototype.attached = function attached() {\n if (this.contentView) {\n this.contentView.attached();\n }\n };\n\n ShadowSlot.prototype.detached = function detached() {\n if (this.contentView) {\n this.contentView.detached();\n }\n };\n\n ShadowSlot.prototype.unbind = function unbind() {\n if (this.contentView) {\n this.contentView.unbind();\n }\n };\n\n _createClass(ShadowSlot, [{\n key: 'needsFallbackRendering',\n get: function get() {\n return this.fallbackFactory && this.projections === 0;\n }\n }]);\n\n return ShadowSlot;\n}();\n\nexport var ShadowDOM = (_temp3 = _class9 = function () {\n function ShadowDOM() {\n \n }\n\n ShadowDOM.getSlotName = function getSlotName(node) {\n if (node.auSlotAttribute === undefined) {\n return ShadowDOM.defaultSlotKey;\n }\n\n return node.auSlotAttribute.value;\n };\n\n ShadowDOM.distributeView = function distributeView(view, slots, projectionSource, index, destinationOverride) {\n var nodes = void 0;\n\n if (view === null) {\n nodes = noNodes;\n } else {\n var childNodes = view.fragment.childNodes;\n var ii = childNodes.length;\n nodes = new Array(ii);\n\n for (var i = 0; i < ii; ++i) {\n nodes[i] = childNodes[i];\n }\n }\n\n ShadowDOM.distributeNodes(view, nodes, slots, projectionSource, index, destinationOverride);\n };\n\n ShadowDOM.undistributeView = function undistributeView(view, slots, projectionSource) {\n for (var slotName in slots) {\n slots[slotName].removeView(view, projectionSource);\n }\n };\n\n ShadowDOM.undistributeAll = function undistributeAll(slots, projectionSource) {\n for (var slotName in slots) {\n slots[slotName].removeAll(projectionSource);\n }\n };\n\n ShadowDOM.distributeNodes = function distributeNodes(view, nodes, slots, projectionSource, index, destinationOverride) {\n for (var i = 0, ii = nodes.length; i < ii; ++i) {\n var currentNode = nodes[i];\n var nodeType = currentNode.nodeType;\n\n if (currentNode.isContentProjectionSource) {\n currentNode.viewSlot.projectTo(slots);\n\n for (var slotName in slots) {\n slots[slotName].projectFrom(view, currentNode.viewSlot);\n }\n\n nodes.splice(i, 1);\n ii--;i--;\n } else if (nodeType === 1 || nodeType === 3 || currentNode.viewSlot instanceof PassThroughSlot) {\n if (nodeType === 3 && _isAllWhitespace(currentNode)) {\n nodes.splice(i, 1);\n ii--;i--;\n } else {\n var found = slots[destinationOverride || ShadowDOM.getSlotName(currentNode)];\n\n if (found) {\n found.addNode(view, currentNode, projectionSource, index);\n nodes.splice(i, 1);\n ii--;i--;\n }\n }\n } else {\n nodes.splice(i, 1);\n ii--;i--;\n }\n }\n\n for (var _slotName in slots) {\n var slot = slots[_slotName];\n\n if (slot.needsFallbackRendering) {\n slot.renderFallbackContent(view, nodes, projectionSource, index);\n }\n }\n };\n\n return ShadowDOM;\n}(), _class9.defaultSlotKey = '__au-default-slot-key__', _temp3);\n\nfunction register(lookup, name, resource, type) {\n if (!name) {\n return;\n }\n\n var existing = lookup[name];\n if (existing) {\n if (existing !== resource) {\n throw new Error('Attempted to register ' + type + ' when one with the same name already exists. Name: ' + name + '.');\n }\n\n return;\n }\n\n lookup[name] = resource;\n}\n\nexport var ViewResources = function () {\n function ViewResources(parent, viewUrl) {\n \n\n this.bindingLanguage = null;\n\n this.parent = parent || null;\n this.hasParent = this.parent !== null;\n this.viewUrl = viewUrl || '';\n this.lookupFunctions = {\n valueConverters: this.getValueConverter.bind(this),\n bindingBehaviors: this.getBindingBehavior.bind(this)\n };\n this.attributes = Object.create(null);\n this.elements = Object.create(null);\n this.valueConverters = Object.create(null);\n this.bindingBehaviors = Object.create(null);\n this.attributeMap = Object.create(null);\n this.values = Object.create(null);\n this.beforeCompile = this.afterCompile = this.beforeCreate = this.afterCreate = this.beforeBind = this.beforeUnbind = false;\n }\n\n ViewResources.prototype._tryAddHook = function _tryAddHook(obj, name) {\n if (typeof obj[name] === 'function') {\n var func = obj[name].bind(obj);\n var counter = 1;\n var callbackName = void 0;\n\n while (this[callbackName = name + counter.toString()] !== undefined) {\n counter++;\n }\n\n this[name] = true;\n this[callbackName] = func;\n }\n };\n\n ViewResources.prototype._invokeHook = function _invokeHook(name, one, two, three, four) {\n if (this.hasParent) {\n this.parent._invokeHook(name, one, two, three, four);\n }\n\n if (this[name]) {\n this[name + '1'](one, two, three, four);\n\n var callbackName = name + '2';\n if (this[callbackName]) {\n this[callbackName](one, two, three, four);\n\n callbackName = name + '3';\n if (this[callbackName]) {\n this[callbackName](one, two, three, four);\n\n var counter = 4;\n\n while (this[callbackName = name + counter.toString()] !== undefined) {\n this[callbackName](one, two, three, four);\n counter++;\n }\n }\n }\n }\n };\n\n ViewResources.prototype.registerViewEngineHooks = function registerViewEngineHooks(hooks) {\n this._tryAddHook(hooks, 'beforeCompile');\n this._tryAddHook(hooks, 'afterCompile');\n this._tryAddHook(hooks, 'beforeCreate');\n this._tryAddHook(hooks, 'afterCreate');\n this._tryAddHook(hooks, 'beforeBind');\n this._tryAddHook(hooks, 'beforeUnbind');\n };\n\n ViewResources.prototype.getBindingLanguage = function getBindingLanguage(bindingLanguageFallback) {\n return this.bindingLanguage || (this.bindingLanguage = bindingLanguageFallback);\n };\n\n ViewResources.prototype.patchInParent = function patchInParent(newParent) {\n var originalParent = this.parent;\n\n this.parent = newParent || null;\n this.hasParent = this.parent !== null;\n\n if (newParent.parent === null) {\n newParent.parent = originalParent;\n newParent.hasParent = originalParent !== null;\n }\n };\n\n ViewResources.prototype.relativeToView = function relativeToView(path) {\n return relativeToFile(path, this.viewUrl);\n };\n\n ViewResources.prototype.registerElement = function registerElement(tagName, behavior) {\n register(this.elements, tagName, behavior, 'an Element');\n };\n\n ViewResources.prototype.getElement = function getElement(tagName) {\n return this.elements[tagName] || (this.hasParent ? this.parent.getElement(tagName) : null);\n };\n\n ViewResources.prototype.mapAttribute = function mapAttribute(attribute) {\n return this.attributeMap[attribute] || (this.hasParent ? this.parent.mapAttribute(attribute) : null);\n };\n\n ViewResources.prototype.registerAttribute = function registerAttribute(attribute, behavior, knownAttribute) {\n this.attributeMap[attribute] = knownAttribute;\n register(this.attributes, attribute, behavior, 'an Attribute');\n };\n\n ViewResources.prototype.getAttribute = function getAttribute(attribute) {\n return this.attributes[attribute] || (this.hasParent ? this.parent.getAttribute(attribute) : null);\n };\n\n ViewResources.prototype.registerValueConverter = function registerValueConverter(name, valueConverter) {\n register(this.valueConverters, name, valueConverter, 'a ValueConverter');\n };\n\n ViewResources.prototype.getValueConverter = function getValueConverter(name) {\n return this.valueConverters[name] || (this.hasParent ? this.parent.getValueConverter(name) : null);\n };\n\n ViewResources.prototype.registerBindingBehavior = function registerBindingBehavior(name, bindingBehavior) {\n register(this.bindingBehaviors, name, bindingBehavior, 'a BindingBehavior');\n };\n\n ViewResources.prototype.getBindingBehavior = function getBindingBehavior(name) {\n return this.bindingBehaviors[name] || (this.hasParent ? this.parent.getBindingBehavior(name) : null);\n };\n\n ViewResources.prototype.registerValue = function registerValue(name, value) {\n register(this.values, name, value, 'a value');\n };\n\n ViewResources.prototype.getValue = function getValue(name) {\n return this.values[name] || (this.hasParent ? this.parent.getValue(name) : null);\n };\n\n return ViewResources;\n}();\n\nexport var View = function () {\n function View(container, viewFactory, fragment, controllers, bindings, children, slots) {\n \n\n this.container = container;\n this.viewFactory = viewFactory;\n this.resources = viewFactory.resources;\n this.fragment = fragment;\n this.firstChild = fragment.firstChild;\n this.lastChild = fragment.lastChild;\n this.controllers = controllers;\n this.bindings = bindings;\n this.children = children;\n this.slots = slots;\n this.hasSlots = false;\n this.fromCache = false;\n this.isBound = false;\n this.isAttached = false;\n this.bindingContext = null;\n this.overrideContext = null;\n this.controller = null;\n this.viewModelScope = null;\n this.animatableElement = undefined;\n this._isUserControlled = false;\n this.contentView = null;\n\n for (var key in slots) {\n this.hasSlots = true;\n break;\n }\n }\n\n View.prototype.returnToCache = function returnToCache() {\n this.viewFactory.returnViewToCache(this);\n };\n\n View.prototype.created = function created() {\n var i = void 0;\n var ii = void 0;\n var controllers = this.controllers;\n\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].created(this);\n }\n };\n\n View.prototype.bind = function bind(bindingContext, overrideContext, _systemUpdate) {\n var controllers = void 0;\n var bindings = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (_systemUpdate && this._isUserControlled) {\n return;\n }\n\n if (this.isBound) {\n if (this.bindingContext === bindingContext) {\n return;\n }\n\n this.unbind();\n }\n\n this.isBound = true;\n this.bindingContext = bindingContext;\n this.overrideContext = overrideContext || createOverrideContext(bindingContext);\n\n this.resources._invokeHook('beforeBind', this);\n\n bindings = this.bindings;\n for (i = 0, ii = bindings.length; i < ii; ++i) {\n bindings[i].bind(this);\n }\n\n if (this.viewModelScope !== null) {\n bindingContext.bind(this.viewModelScope.bindingContext, this.viewModelScope.overrideContext);\n this.viewModelScope = null;\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].bind(this);\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].bind(bindingContext, overrideContext, true);\n }\n\n if (this.hasSlots) {\n ShadowDOM.distributeView(this.contentView, this.slots);\n }\n };\n\n View.prototype.addBinding = function addBinding(binding) {\n this.bindings.push(binding);\n\n if (this.isBound) {\n binding.bind(this);\n }\n };\n\n View.prototype.unbind = function unbind() {\n var controllers = void 0;\n var bindings = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (this.isBound) {\n this.isBound = false;\n this.resources._invokeHook('beforeUnbind', this);\n\n if (this.controller !== null) {\n this.controller.unbind();\n }\n\n bindings = this.bindings;\n for (i = 0, ii = bindings.length; i < ii; ++i) {\n bindings[i].unbind();\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].unbind();\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].unbind();\n }\n\n this.bindingContext = null;\n this.overrideContext = null;\n }\n };\n\n View.prototype.insertNodesBefore = function insertNodesBefore(refNode) {\n refNode.parentNode.insertBefore(this.fragment, refNode);\n };\n\n View.prototype.appendNodesTo = function appendNodesTo(parent) {\n parent.appendChild(this.fragment);\n };\n\n View.prototype.removeNodes = function removeNodes() {\n var fragment = this.fragment;\n var current = this.firstChild;\n var end = this.lastChild;\n var next = void 0;\n\n while (current) {\n next = current.nextSibling;\n fragment.appendChild(current);\n\n if (current === end) {\n break;\n }\n\n current = next;\n }\n };\n\n View.prototype.attached = function attached() {\n var controllers = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (this.isAttached) {\n return;\n }\n\n this.isAttached = true;\n\n if (this.controller !== null) {\n this.controller.attached();\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].attached();\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].attached();\n }\n };\n\n View.prototype.detached = function detached() {\n var controllers = void 0;\n var children = void 0;\n var i = void 0;\n var ii = void 0;\n\n if (this.isAttached) {\n this.isAttached = false;\n\n if (this.controller !== null) {\n this.controller.detached();\n }\n\n controllers = this.controllers;\n for (i = 0, ii = controllers.length; i < ii; ++i) {\n controllers[i].detached();\n }\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].detached();\n }\n }\n };\n\n return View;\n}();\n\nfunction getAnimatableElement(view) {\n if (view.animatableElement !== undefined) {\n return view.animatableElement;\n }\n\n var current = view.firstChild;\n\n while (current && current.nodeType !== 1) {\n current = current.nextSibling;\n }\n\n if (current && current.nodeType === 1) {\n return view.animatableElement = current.classList.contains('au-animate') ? current : null;\n }\n\n return view.animatableElement = null;\n}\n\nexport var ViewSlot = function () {\n function ViewSlot(anchor, anchorIsContainer) {\n var animator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Animator.instance;\n\n \n\n this.anchor = anchor;\n this.anchorIsContainer = anchorIsContainer;\n this.bindingContext = null;\n this.overrideContext = null;\n this.animator = animator;\n this.children = [];\n this.isBound = false;\n this.isAttached = false;\n this.contentSelectors = null;\n anchor.viewSlot = this;\n anchor.isContentProjectionSource = false;\n }\n\n ViewSlot.prototype.animateView = function animateView(view) {\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'enter';\n\n var animatableElement = getAnimatableElement(view);\n\n if (animatableElement !== null) {\n switch (direction) {\n case 'enter':\n return this.animator.enter(animatableElement);\n case 'leave':\n return this.animator.leave(animatableElement);\n default:\n throw new Error('Invalid animation direction: ' + direction);\n }\n }\n };\n\n ViewSlot.prototype.transformChildNodesIntoView = function transformChildNodesIntoView() {\n var parent = this.anchor;\n\n this.children.push({\n fragment: parent,\n firstChild: parent.firstChild,\n lastChild: parent.lastChild,\n returnToCache: function returnToCache() {},\n removeNodes: function removeNodes() {\n var last = void 0;\n\n while (last = parent.lastChild) {\n parent.removeChild(last);\n }\n },\n created: function created() {},\n bind: function bind() {},\n unbind: function unbind() {},\n attached: function attached() {},\n detached: function detached() {}\n });\n };\n\n ViewSlot.prototype.bind = function bind(bindingContext, overrideContext) {\n var i = void 0;\n var ii = void 0;\n var children = void 0;\n\n if (this.isBound) {\n if (this.bindingContext === bindingContext) {\n return;\n }\n\n this.unbind();\n }\n\n this.isBound = true;\n this.bindingContext = bindingContext = bindingContext || this.bindingContext;\n this.overrideContext = overrideContext = overrideContext || this.overrideContext;\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].bind(bindingContext, overrideContext, true);\n }\n };\n\n ViewSlot.prototype.unbind = function unbind() {\n if (this.isBound) {\n var i = void 0;\n var ii = void 0;\n var _children4 = this.children;\n\n this.isBound = false;\n this.bindingContext = null;\n this.overrideContext = null;\n\n for (i = 0, ii = _children4.length; i < ii; ++i) {\n _children4[i].unbind();\n }\n }\n };\n\n ViewSlot.prototype.add = function add(view) {\n if (this.anchorIsContainer) {\n view.appendNodesTo(this.anchor);\n } else {\n view.insertNodesBefore(this.anchor);\n }\n\n this.children.push(view);\n\n if (this.isAttached) {\n view.attached();\n return this.animateView(view, 'enter');\n }\n };\n\n ViewSlot.prototype.insert = function insert(index, view) {\n var children = this.children;\n var length = children.length;\n\n if (index === 0 && length === 0 || index >= length) {\n return this.add(view);\n }\n\n view.insertNodesBefore(children[index].firstChild);\n children.splice(index, 0, view);\n\n if (this.isAttached) {\n view.attached();\n return this.animateView(view, 'enter');\n }\n };\n\n ViewSlot.prototype.move = function move(sourceIndex, targetIndex) {\n if (sourceIndex === targetIndex) {\n return;\n }\n\n var children = this.children;\n var view = children[sourceIndex];\n\n view.removeNodes();\n view.insertNodesBefore(children[targetIndex].firstChild);\n children.splice(sourceIndex, 1);\n children.splice(targetIndex, 0, view);\n };\n\n ViewSlot.prototype.remove = function remove(view, returnToCache, skipAnimation) {\n return this.removeAt(this.children.indexOf(view), returnToCache, skipAnimation);\n };\n\n ViewSlot.prototype.removeMany = function removeMany(viewsToRemove, returnToCache, skipAnimation) {\n var _this4 = this;\n\n var children = this.children;\n var ii = viewsToRemove.length;\n var i = void 0;\n var rmPromises = [];\n\n viewsToRemove.forEach(function (child) {\n if (skipAnimation) {\n child.removeNodes();\n return;\n }\n\n var animation = _this4.animateView(child, 'leave');\n if (animation) {\n rmPromises.push(animation.then(function () {\n return child.removeNodes();\n }));\n } else {\n child.removeNodes();\n }\n });\n\n var removeAction = function removeAction() {\n if (_this4.isAttached) {\n for (i = 0; i < ii; ++i) {\n viewsToRemove[i].detached();\n }\n }\n\n if (returnToCache) {\n for (i = 0; i < ii; ++i) {\n viewsToRemove[i].returnToCache();\n }\n }\n\n for (i = 0; i < ii; ++i) {\n var index = children.indexOf(viewsToRemove[i]);\n if (index >= 0) {\n children.splice(index, 1);\n }\n }\n };\n\n if (rmPromises.length > 0) {\n return Promise.all(rmPromises).then(function () {\n return removeAction();\n });\n }\n\n return removeAction();\n };\n\n ViewSlot.prototype.removeAt = function removeAt(index, returnToCache, skipAnimation) {\n var _this5 = this;\n\n var view = this.children[index];\n\n var removeAction = function removeAction() {\n index = _this5.children.indexOf(view);\n view.removeNodes();\n _this5.children.splice(index, 1);\n\n if (_this5.isAttached) {\n view.detached();\n }\n\n if (returnToCache) {\n view.returnToCache();\n }\n\n return view;\n };\n\n if (!skipAnimation) {\n var animation = this.animateView(view, 'leave');\n if (animation) {\n return animation.then(function () {\n return removeAction();\n });\n }\n }\n\n return removeAction();\n };\n\n ViewSlot.prototype.removeAll = function removeAll(returnToCache, skipAnimation) {\n var _this6 = this;\n\n var children = this.children;\n var ii = children.length;\n var i = void 0;\n var rmPromises = [];\n\n children.forEach(function (child) {\n if (skipAnimation) {\n child.removeNodes();\n return;\n }\n\n var animation = _this6.animateView(child, 'leave');\n if (animation) {\n rmPromises.push(animation.then(function () {\n return child.removeNodes();\n }));\n } else {\n child.removeNodes();\n }\n });\n\n var removeAction = function removeAction() {\n if (_this6.isAttached) {\n for (i = 0; i < ii; ++i) {\n children[i].detached();\n }\n }\n\n if (returnToCache) {\n for (i = 0; i < ii; ++i) {\n var _child3 = children[i];\n\n if (_child3) {\n _child3.returnToCache();\n }\n }\n }\n\n _this6.children = [];\n };\n\n if (rmPromises.length > 0) {\n return Promise.all(rmPromises).then(function () {\n return removeAction();\n });\n }\n\n return removeAction();\n };\n\n ViewSlot.prototype.attached = function attached() {\n var i = void 0;\n var ii = void 0;\n var children = void 0;\n var child = void 0;\n\n if (this.isAttached) {\n return;\n }\n\n this.isAttached = true;\n\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n child = children[i];\n child.attached();\n this.animateView(child, 'enter');\n }\n };\n\n ViewSlot.prototype.detached = function detached() {\n var i = void 0;\n var ii = void 0;\n var children = void 0;\n\n if (this.isAttached) {\n this.isAttached = false;\n children = this.children;\n for (i = 0, ii = children.length; i < ii; ++i) {\n children[i].detached();\n }\n }\n };\n\n ViewSlot.prototype.projectTo = function projectTo(slots) {\n var _this7 = this;\n\n this.projectToSlots = slots;\n this.add = this._projectionAdd;\n this.insert = this._projectionInsert;\n this.move = this._projectionMove;\n this.remove = this._projectionRemove;\n this.removeAt = this._projectionRemoveAt;\n this.removeMany = this._projectionRemoveMany;\n this.removeAll = this._projectionRemoveAll;\n this.children.forEach(function (view) {\n return ShadowDOM.distributeView(view, slots, _this7);\n });\n };\n\n ViewSlot.prototype._projectionAdd = function _projectionAdd(view) {\n ShadowDOM.distributeView(view, this.projectToSlots, this);\n\n this.children.push(view);\n\n if (this.isAttached) {\n view.attached();\n }\n };\n\n ViewSlot.prototype._projectionInsert = function _projectionInsert(index, view) {\n if (index === 0 && !this.children.length || index >= this.children.length) {\n this.add(view);\n } else {\n ShadowDOM.distributeView(view, this.projectToSlots, this, index);\n\n this.children.splice(index, 0, view);\n\n if (this.isAttached) {\n view.attached();\n }\n }\n };\n\n ViewSlot.prototype._projectionMove = function _projectionMove(sourceIndex, targetIndex) {\n if (sourceIndex === targetIndex) {\n return;\n }\n\n var children = this.children;\n var view = children[sourceIndex];\n\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\n ShadowDOM.distributeView(view, this.projectToSlots, this, targetIndex);\n\n children.splice(sourceIndex, 1);\n children.splice(targetIndex, 0, view);\n };\n\n ViewSlot.prototype._projectionRemove = function _projectionRemove(view, returnToCache) {\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\n this.children.splice(this.children.indexOf(view), 1);\n\n if (this.isAttached) {\n view.detached();\n }\n };\n\n ViewSlot.prototype._projectionRemoveAt = function _projectionRemoveAt(index, returnToCache) {\n var view = this.children[index];\n\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\n this.children.splice(index, 1);\n\n if (this.isAttached) {\n view.detached();\n }\n };\n\n ViewSlot.prototype._projectionRemoveMany = function _projectionRemoveMany(viewsToRemove, returnToCache) {\n var _this8 = this;\n\n viewsToRemove.forEach(function (view) {\n return _this8.remove(view, returnToCache);\n });\n };\n\n ViewSlot.prototype._projectionRemoveAll = function _projectionRemoveAll(returnToCache) {\n ShadowDOM.undistributeAll(this.projectToSlots, this);\n\n var children = this.children;\n\n if (this.isAttached) {\n for (var i = 0, ii = children.length; i < ii; ++i) {\n children[i].detached();\n }\n }\n\n this.children = [];\n };\n\n return ViewSlot;\n}();\n\nvar ProviderResolver = resolver(_class11 = function () {\n function ProviderResolver() {\n \n }\n\n ProviderResolver.prototype.get = function get(container, key) {\n var id = key.__providerId__;\n return id in container ? container[id] : container[id] = container.invoke(key);\n };\n\n return ProviderResolver;\n}()) || _class11;\n\nvar providerResolverInstance = new ProviderResolver();\n\nfunction elementContainerGet(key) {\n if (key === DOM.Element) {\n return this.element;\n }\n\n if (key === BoundViewFactory) {\n if (this.boundViewFactory) {\n return this.boundViewFactory;\n }\n\n var factory = this.instruction.viewFactory;\n var _partReplacements = this.partReplacements;\n\n if (_partReplacements) {\n factory = _partReplacements[factory.part] || factory;\n }\n\n this.boundViewFactory = new BoundViewFactory(this, factory, _partReplacements);\n return this.boundViewFactory;\n }\n\n if (key === ViewSlot) {\n if (this.viewSlot === undefined) {\n this.viewSlot = new ViewSlot(this.element, this.instruction.anchorIsContainer);\n this.element.isContentProjectionSource = this.instruction.lifting;\n this.children.push(this.viewSlot);\n }\n\n return this.viewSlot;\n }\n\n if (key === ElementEvents) {\n return this.elementEvents || (this.elementEvents = new ElementEvents(this.element));\n }\n\n if (key === CompositionTransaction) {\n return this.compositionTransaction || (this.compositionTransaction = this.parent.get(key));\n }\n\n if (key === ViewResources) {\n return this.viewResources;\n }\n\n if (key === TargetInstruction) {\n return this.instruction;\n }\n\n return this.superGet(key);\n}\n\nfunction createElementContainer(parent, element, instruction, children, partReplacements, resources) {\n var container = parent.createChild();\n var providers = void 0;\n var i = void 0;\n\n container.element = element;\n container.instruction = instruction;\n container.children = children;\n container.viewResources = resources;\n container.partReplacements = partReplacements;\n\n providers = instruction.providers;\n i = providers.length;\n\n while (i--) {\n container._resolvers.set(providers[i], providerResolverInstance);\n }\n\n container.superGet = container.get;\n container.get = elementContainerGet;\n\n return container;\n}\n\nfunction hasAttribute(name) {\n return this._element.hasAttribute(name);\n}\n\nfunction getAttribute(name) {\n return this._element.getAttribute(name);\n}\n\nfunction setAttribute(name, value) {\n this._element.setAttribute(name, value);\n}\n\nfunction makeElementIntoAnchor(element, elementInstruction) {\n var anchor = DOM.createComment('anchor');\n\n if (elementInstruction) {\n var firstChild = element.firstChild;\n\n if (firstChild && firstChild.tagName === 'AU-CONTENT') {\n anchor.contentElement = firstChild;\n }\n\n anchor._element = element;\n\n anchor.hasAttribute = hasAttribute;\n anchor.getAttribute = getAttribute;\n anchor.setAttribute = setAttribute;\n }\n\n DOM.replaceNode(anchor, element);\n\n return anchor;\n}\n\nfunction applyInstructions(containers, element, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources) {\n var behaviorInstructions = instruction.behaviorInstructions;\n var expressions = instruction.expressions;\n var elementContainer = void 0;\n var i = void 0;\n var ii = void 0;\n var current = void 0;\n var instance = void 0;\n\n if (instruction.contentExpression) {\n bindings.push(instruction.contentExpression.createBinding(element.nextSibling));\n element.nextSibling.auInterpolationTarget = true;\n element.parentNode.removeChild(element);\n return;\n }\n\n if (instruction.shadowSlot) {\n var commentAnchor = DOM.createComment('slot');\n var slot = void 0;\n\n if (instruction.slotDestination) {\n slot = new PassThroughSlot(commentAnchor, instruction.slotName, instruction.slotDestination, instruction.slotFallbackFactory);\n } else {\n slot = new ShadowSlot(commentAnchor, instruction.slotName, instruction.slotFallbackFactory);\n }\n\n DOM.replaceNode(commentAnchor, element);\n shadowSlots[instruction.slotName] = slot;\n controllers.push(slot);\n return;\n }\n\n if (behaviorInstructions.length) {\n if (!instruction.anchorIsContainer) {\n element = makeElementIntoAnchor(element, instruction.elementInstruction);\n }\n\n containers[instruction.injectorId] = elementContainer = createElementContainer(containers[instruction.parentInjectorId], element, instruction, children, partReplacements, resources);\n\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n current = behaviorInstructions[i];\n instance = current.type.create(elementContainer, current, element, bindings);\n controllers.push(instance);\n }\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n bindings.push(expressions[i].createBinding(element));\n }\n}\n\nfunction styleStringToObject(style, target) {\n var attributes = style.split(';');\n var firstIndexOfColon = void 0;\n var i = void 0;\n var current = void 0;\n var key = void 0;\n var value = void 0;\n\n target = target || {};\n\n for (i = 0; i < attributes.length; i++) {\n current = attributes[i];\n firstIndexOfColon = current.indexOf(':');\n key = current.substring(0, firstIndexOfColon).trim();\n value = current.substring(firstIndexOfColon + 1).trim();\n target[key] = value;\n }\n\n return target;\n}\n\nfunction styleObjectToString(obj) {\n var result = '';\n\n for (var key in obj) {\n result += key + ':' + obj[key] + ';';\n }\n\n return result;\n}\n\nfunction applySurrogateInstruction(container, element, instruction, controllers, bindings, children) {\n var behaviorInstructions = instruction.behaviorInstructions;\n var expressions = instruction.expressions;\n var providers = instruction.providers;\n var values = instruction.values;\n var i = void 0;\n var ii = void 0;\n var current = void 0;\n var instance = void 0;\n var currentAttributeValue = void 0;\n\n i = providers.length;\n while (i--) {\n container._resolvers.set(providers[i], providerResolverInstance);\n }\n\n for (var key in values) {\n currentAttributeValue = element.getAttribute(key);\n\n if (currentAttributeValue) {\n if (key === 'class') {\n element.setAttribute('class', currentAttributeValue + ' ' + values[key]);\n } else if (key === 'style') {\n var styleObject = styleStringToObject(values[key]);\n styleStringToObject(currentAttributeValue, styleObject);\n element.setAttribute('style', styleObjectToString(styleObject));\n }\n } else {\n element.setAttribute(key, values[key]);\n }\n }\n\n if (behaviorInstructions.length) {\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n current = behaviorInstructions[i];\n instance = current.type.create(container, current, element, bindings);\n\n if (instance.contentView) {\n children.push(instance.contentView);\n }\n\n controllers.push(instance);\n }\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n bindings.push(expressions[i].createBinding(element));\n }\n}\n\nexport var BoundViewFactory = function () {\n function BoundViewFactory(parentContainer, viewFactory, partReplacements) {\n \n\n this.parentContainer = parentContainer;\n this.viewFactory = viewFactory;\n this.factoryCreateInstruction = { partReplacements: partReplacements };\n }\n\n BoundViewFactory.prototype.create = function create() {\n var view = this.viewFactory.create(this.parentContainer.createChild(), this.factoryCreateInstruction);\n view._isUserControlled = true;\n return view;\n };\n\n BoundViewFactory.prototype.setCacheSize = function setCacheSize(size, doNotOverrideIfAlreadySet) {\n this.viewFactory.setCacheSize(size, doNotOverrideIfAlreadySet);\n };\n\n BoundViewFactory.prototype.getCachedView = function getCachedView() {\n return this.viewFactory.getCachedView();\n };\n\n BoundViewFactory.prototype.returnViewToCache = function returnViewToCache(view) {\n this.viewFactory.returnViewToCache(view);\n };\n\n _createClass(BoundViewFactory, [{\n key: 'isCaching',\n get: function get() {\n return this.viewFactory.isCaching;\n }\n }]);\n\n return BoundViewFactory;\n}();\n\nexport var ViewFactory = function () {\n function ViewFactory(template, instructions, resources) {\n \n\n this.isCaching = false;\n\n this.template = template;\n this.instructions = instructions;\n this.resources = resources;\n this.cacheSize = -1;\n this.cache = null;\n }\n\n ViewFactory.prototype.setCacheSize = function setCacheSize(size, doNotOverrideIfAlreadySet) {\n if (size) {\n if (size === '*') {\n size = Number.MAX_VALUE;\n } else if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n }\n\n if (this.cacheSize === -1 || !doNotOverrideIfAlreadySet) {\n this.cacheSize = size;\n }\n\n if (this.cacheSize > 0) {\n this.cache = [];\n } else {\n this.cache = null;\n }\n\n this.isCaching = this.cacheSize > 0;\n };\n\n ViewFactory.prototype.getCachedView = function getCachedView() {\n return this.cache !== null ? this.cache.pop() || null : null;\n };\n\n ViewFactory.prototype.returnViewToCache = function returnViewToCache(view) {\n if (view.isAttached) {\n view.detached();\n }\n\n if (view.isBound) {\n view.unbind();\n }\n\n if (this.cache !== null && this.cache.length < this.cacheSize) {\n view.fromCache = true;\n this.cache.push(view);\n }\n };\n\n ViewFactory.prototype.create = function create(container, createInstruction, element) {\n createInstruction = createInstruction || BehaviorInstruction.normal;\n\n var cachedView = this.getCachedView();\n if (cachedView !== null) {\n return cachedView;\n }\n\n var fragment = createInstruction.enhance ? this.template : this.template.cloneNode(true);\n var instructables = fragment.querySelectorAll('.au-target');\n var instructions = this.instructions;\n var resources = this.resources;\n var controllers = [];\n var bindings = [];\n var children = [];\n var shadowSlots = Object.create(null);\n var containers = { root: container };\n var partReplacements = createInstruction.partReplacements;\n var i = void 0;\n var ii = void 0;\n var view = void 0;\n var instructable = void 0;\n var instruction = void 0;\n\n this.resources._invokeHook('beforeCreate', this, container, fragment, createInstruction);\n\n if (element && this.surrogateInstruction !== null) {\n applySurrogateInstruction(container, element, this.surrogateInstruction, controllers, bindings, children);\n }\n\n if (createInstruction.enhance && fragment.hasAttribute('au-target-id')) {\n instructable = fragment;\n instruction = instructions[instructable.getAttribute('au-target-id')];\n applyInstructions(containers, instructable, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources);\n }\n\n for (i = 0, ii = instructables.length; i < ii; ++i) {\n instructable = instructables[i];\n instruction = instructions[instructable.getAttribute('au-target-id')];\n applyInstructions(containers, instructable, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources);\n }\n\n view = new View(container, this, fragment, controllers, bindings, children, shadowSlots);\n\n if (!createInstruction.initiatedByBehavior) {\n view.created();\n }\n\n this.resources._invokeHook('afterCreate', view);\n\n return view;\n };\n\n return ViewFactory;\n}();\n\nvar nextInjectorId = 0;\nfunction getNextInjectorId() {\n return ++nextInjectorId;\n}\n\nvar lastAUTargetID = 0;\nfunction getNextAUTargetID() {\n return (++lastAUTargetID).toString();\n}\n\nfunction makeIntoInstructionTarget(element) {\n var value = element.getAttribute('class');\n var auTargetID = getNextAUTargetID();\n\n element.setAttribute('class', value ? value + ' au-target' : 'au-target');\n element.setAttribute('au-target-id', auTargetID);\n\n return auTargetID;\n}\n\nfunction makeShadowSlot(compiler, resources, node, instructions, parentInjectorId) {\n var auShadowSlot = DOM.createElement('au-shadow-slot');\n DOM.replaceNode(auShadowSlot, node);\n\n var auTargetID = makeIntoInstructionTarget(auShadowSlot);\n var instruction = TargetInstruction.shadowSlot(parentInjectorId);\n\n instruction.slotName = node.getAttribute('name') || ShadowDOM.defaultSlotKey;\n instruction.slotDestination = node.getAttribute('slot');\n\n if (node.innerHTML.trim()) {\n var fragment = DOM.createDocumentFragment();\n var _child4 = void 0;\n\n while (_child4 = node.firstChild) {\n fragment.appendChild(_child4);\n }\n\n instruction.slotFallbackFactory = compiler.compile(fragment, resources);\n }\n\n instructions[auTargetID] = instruction;\n\n return auShadowSlot;\n}\n\nexport var ViewCompiler = (_dec7 = inject(BindingLanguage, ViewResources), _dec7(_class13 = function () {\n function ViewCompiler(bindingLanguage, resources) {\n \n\n this.bindingLanguage = bindingLanguage;\n this.resources = resources;\n }\n\n ViewCompiler.prototype.compile = function compile(source, resources, compileInstruction) {\n resources = resources || this.resources;\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\n source = typeof source === 'string' ? DOM.createTemplateFromMarkup(source) : source;\n\n var content = void 0;\n var part = void 0;\n var cacheSize = void 0;\n\n if (source.content) {\n part = source.getAttribute('part');\n cacheSize = source.getAttribute('view-cache');\n content = DOM.adoptNode(source.content);\n } else {\n content = source;\n }\n\n compileInstruction.targetShadowDOM = compileInstruction.targetShadowDOM && FEATURE.shadowDOM;\n resources._invokeHook('beforeCompile', content, resources, compileInstruction);\n\n var instructions = {};\n this._compileNode(content, resources, instructions, source, 'root', !compileInstruction.targetShadowDOM);\n\n var firstChild = content.firstChild;\n if (firstChild && firstChild.nodeType === 1) {\n var targetId = firstChild.getAttribute('au-target-id');\n if (targetId) {\n var ins = instructions[targetId];\n\n if (ins.shadowSlot || ins.lifting || ins.elementInstruction && !ins.elementInstruction.anchorIsContainer) {\n content.insertBefore(DOM.createComment('view'), firstChild);\n }\n }\n }\n\n var factory = new ViewFactory(content, instructions, resources);\n\n factory.surrogateInstruction = compileInstruction.compileSurrogate ? this._compileSurrogate(source, resources) : null;\n factory.part = part;\n\n if (cacheSize) {\n factory.setCacheSize(cacheSize);\n }\n\n resources._invokeHook('afterCompile', factory);\n\n return factory;\n };\n\n ViewCompiler.prototype._compileNode = function _compileNode(node, resources, instructions, parentNode, parentInjectorId, targetLightDOM) {\n switch (node.nodeType) {\n case 1:\n return this._compileElement(node, resources, instructions, parentNode, parentInjectorId, targetLightDOM);\n case 3:\n var expression = resources.getBindingLanguage(this.bindingLanguage).inspectTextContent(resources, node.wholeText);\n if (expression) {\n var marker = DOM.createElement('au-marker');\n var auTargetID = makeIntoInstructionTarget(marker);\n (node.parentNode || parentNode).insertBefore(marker, node);\n node.textContent = ' ';\n instructions[auTargetID] = TargetInstruction.contentExpression(expression);\n\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n (node.parentNode || parentNode).removeChild(node.nextSibling);\n }\n } else {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node = node.nextSibling;\n }\n }\n return node.nextSibling;\n case 11:\n var currentChild = node.firstChild;\n while (currentChild) {\n currentChild = this._compileNode(currentChild, resources, instructions, node, parentInjectorId, targetLightDOM);\n }\n break;\n default:\n break;\n }\n\n return node.nextSibling;\n };\n\n ViewCompiler.prototype._compileSurrogate = function _compileSurrogate(node, resources) {\n var tagName = node.tagName.toLowerCase();\n var attributes = node.attributes;\n var bindingLanguage = resources.getBindingLanguage(this.bindingLanguage);\n var knownAttribute = void 0;\n var property = void 0;\n var instruction = void 0;\n var i = void 0;\n var ii = void 0;\n var attr = void 0;\n var attrName = void 0;\n var attrValue = void 0;\n var info = void 0;\n var type = void 0;\n var expressions = [];\n var expression = void 0;\n var behaviorInstructions = [];\n var values = {};\n var hasValues = false;\n var providers = [];\n\n for (i = 0, ii = attributes.length; i < ii; ++i) {\n attr = attributes[i];\n attrName = attr.name;\n attrValue = attr.value;\n\n info = bindingLanguage.inspectAttribute(resources, tagName, attrName, attrValue);\n type = resources.getAttribute(info.attrName);\n\n if (type) {\n knownAttribute = resources.mapAttribute(info.attrName);\n if (knownAttribute) {\n property = type.attributes[knownAttribute];\n\n if (property) {\n info.defaultBindingMode = property.defaultBindingMode;\n\n if (!info.command && !info.expression) {\n info.command = property.hasOptions ? 'options' : null;\n }\n\n if (info.command && info.command !== 'options' && type.primaryProperty) {\n var primaryProperty = type.primaryProperty;\n attrName = info.attrName = primaryProperty.name;\n\n info.defaultBindingMode = primaryProperty.defaultBindingMode;\n }\n }\n }\n }\n\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, undefined, type);\n\n if (instruction) {\n if (instruction.alteredAttr) {\n type = resources.getAttribute(instruction.attrName);\n }\n\n if (instruction.discrete) {\n expressions.push(instruction);\n } else {\n if (type) {\n instruction.type = type;\n this._configureProperties(instruction, resources);\n\n if (type.liftsContent) {\n throw new Error('You cannot place a template controller on a surrogate element.');\n } else {\n behaviorInstructions.push(instruction);\n }\n } else {\n expressions.push(instruction.attributes[instruction.attrName]);\n }\n }\n } else {\n if (type) {\n instruction = BehaviorInstruction.attribute(attrName, type);\n instruction.attributes[resources.mapAttribute(attrName)] = attrValue;\n\n if (type.liftsContent) {\n throw new Error('You cannot place a template controller on a surrogate element.');\n } else {\n behaviorInstructions.push(instruction);\n }\n } else if (attrName !== 'id' && attrName !== 'part' && attrName !== 'replace-part') {\n hasValues = true;\n values[attrName] = attrValue;\n }\n }\n }\n\n if (expressions.length || behaviorInstructions.length || hasValues) {\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n instruction = behaviorInstructions[i];\n instruction.type.compile(this, resources, node, instruction);\n providers.push(instruction.type.target);\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n expression = expressions[i];\n if (expression.attrToRemove !== undefined) {\n node.removeAttribute(expression.attrToRemove);\n }\n }\n\n return TargetInstruction.surrogate(providers, behaviorInstructions, expressions, values);\n }\n\n return null;\n };\n\n ViewCompiler.prototype._compileElement = function _compileElement(node, resources, instructions, parentNode, parentInjectorId, targetLightDOM) {\n var tagName = node.tagName.toLowerCase();\n var attributes = node.attributes;\n var expressions = [];\n var expression = void 0;\n var behaviorInstructions = [];\n var providers = [];\n var bindingLanguage = resources.getBindingLanguage(this.bindingLanguage);\n var liftingInstruction = void 0;\n var viewFactory = void 0;\n var type = void 0;\n var elementInstruction = void 0;\n var elementProperty = void 0;\n var i = void 0;\n var ii = void 0;\n var attr = void 0;\n var attrName = void 0;\n var attrValue = void 0;\n var instruction = void 0;\n var info = void 0;\n var property = void 0;\n var knownAttribute = void 0;\n var auTargetID = void 0;\n var injectorId = void 0;\n\n if (tagName === 'slot') {\n if (targetLightDOM) {\n node = makeShadowSlot(this, resources, node, instructions, parentInjectorId);\n }\n return node.nextSibling;\n } else if (tagName === 'template') {\n viewFactory = this.compile(node, resources);\n viewFactory.part = node.getAttribute('part');\n } else {\n type = resources.getElement(node.getAttribute('as-element') || tagName);\n if (type) {\n elementInstruction = BehaviorInstruction.element(node, type);\n type.processAttributes(this, resources, node, attributes, elementInstruction);\n behaviorInstructions.push(elementInstruction);\n }\n }\n\n for (i = 0, ii = attributes.length; i < ii; ++i) {\n attr = attributes[i];\n attrName = attr.name;\n attrValue = attr.value;\n info = bindingLanguage.inspectAttribute(resources, tagName, attrName, attrValue);\n\n if (targetLightDOM && info.attrName === 'slot') {\n info.attrName = attrName = 'au-slot';\n }\n\n type = resources.getAttribute(info.attrName);\n elementProperty = null;\n\n if (type) {\n knownAttribute = resources.mapAttribute(info.attrName);\n if (knownAttribute) {\n property = type.attributes[knownAttribute];\n\n if (property) {\n info.defaultBindingMode = property.defaultBindingMode;\n\n if (!info.command && !info.expression) {\n info.command = property.hasOptions ? 'options' : null;\n }\n\n if (info.command && info.command !== 'options' && type.primaryProperty) {\n var primaryProperty = type.primaryProperty;\n attrName = info.attrName = primaryProperty.name;\n\n info.defaultBindingMode = primaryProperty.defaultBindingMode;\n }\n }\n }\n } else if (elementInstruction) {\n elementProperty = elementInstruction.type.attributes[info.attrName];\n if (elementProperty) {\n info.defaultBindingMode = elementProperty.defaultBindingMode;\n }\n }\n\n if (elementProperty) {\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, elementInstruction);\n } else {\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, undefined, type);\n }\n\n if (instruction) {\n if (instruction.alteredAttr) {\n type = resources.getAttribute(instruction.attrName);\n }\n\n if (instruction.discrete) {\n expressions.push(instruction);\n } else {\n if (type) {\n instruction.type = type;\n this._configureProperties(instruction, resources);\n\n if (type.liftsContent) {\n instruction.originalAttrName = attrName;\n liftingInstruction = instruction;\n break;\n } else {\n behaviorInstructions.push(instruction);\n }\n } else if (elementProperty) {\n elementInstruction.attributes[info.attrName].targetProperty = elementProperty.name;\n } else {\n expressions.push(instruction.attributes[instruction.attrName]);\n }\n }\n } else {\n if (type) {\n instruction = BehaviorInstruction.attribute(attrName, type);\n instruction.attributes[resources.mapAttribute(attrName)] = attrValue;\n\n if (type.liftsContent) {\n instruction.originalAttrName = attrName;\n liftingInstruction = instruction;\n break;\n } else {\n behaviorInstructions.push(instruction);\n }\n } else if (elementProperty) {\n elementInstruction.attributes[attrName] = attrValue;\n }\n }\n }\n\n if (liftingInstruction) {\n liftingInstruction.viewFactory = viewFactory;\n node = liftingInstruction.type.compile(this, resources, node, liftingInstruction, parentNode);\n auTargetID = makeIntoInstructionTarget(node);\n instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);\n } else {\n if (expressions.length || behaviorInstructions.length) {\n injectorId = behaviorInstructions.length ? getNextInjectorId() : false;\n\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\n instruction = behaviorInstructions[i];\n instruction.type.compile(this, resources, node, instruction, parentNode);\n providers.push(instruction.type.target);\n }\n\n for (i = 0, ii = expressions.length; i < ii; ++i) {\n expression = expressions[i];\n if (expression.attrToRemove !== undefined) {\n node.removeAttribute(expression.attrToRemove);\n }\n }\n\n auTargetID = makeIntoInstructionTarget(node);\n instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);\n }\n\n if (elementInstruction && elementInstruction.skipContentProcessing) {\n return node.nextSibling;\n }\n\n var currentChild = node.firstChild;\n while (currentChild) {\n currentChild = this._compileNode(currentChild, resources, instructions, node, injectorId || parentInjectorId, targetLightDOM);\n }\n }\n\n return node.nextSibling;\n };\n\n ViewCompiler.prototype._configureProperties = function _configureProperties(instruction, resources) {\n var type = instruction.type;\n var attrName = instruction.attrName;\n var attributes = instruction.attributes;\n var property = void 0;\n var key = void 0;\n var value = void 0;\n\n var knownAttribute = resources.mapAttribute(attrName);\n if (knownAttribute && attrName in attributes && knownAttribute !== attrName) {\n attributes[knownAttribute] = attributes[attrName];\n delete attributes[attrName];\n }\n\n for (key in attributes) {\n value = attributes[key];\n\n if (value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n property = type.attributes[key];\n\n if (property !== undefined) {\n value.targetProperty = property.name;\n } else {\n value.targetProperty = key;\n }\n }\n }\n };\n\n return ViewCompiler;\n}()) || _class13);\n\nexport var ResourceModule = function () {\n function ResourceModule(moduleId) {\n \n\n this.id = moduleId;\n this.moduleInstance = null;\n this.mainResource = null;\n this.resources = null;\n this.viewStrategy = null;\n this.isInitialized = false;\n this.onLoaded = null;\n this.loadContext = null;\n }\n\n ResourceModule.prototype.initialize = function initialize(container) {\n var current = this.mainResource;\n var resources = this.resources;\n var vs = this.viewStrategy;\n\n if (this.isInitialized) {\n return;\n }\n\n this.isInitialized = true;\n\n if (current !== undefined) {\n current.metadata.viewStrategy = vs;\n current.initialize(container);\n }\n\n for (var i = 0, ii = resources.length; i < ii; ++i) {\n current = resources[i];\n current.metadata.viewStrategy = vs;\n current.initialize(container);\n }\n };\n\n ResourceModule.prototype.register = function register(registry, name) {\n var main = this.mainResource;\n var resources = this.resources;\n\n if (main !== undefined) {\n main.register(registry, name);\n name = null;\n }\n\n for (var i = 0, ii = resources.length; i < ii; ++i) {\n resources[i].register(registry, name);\n name = null;\n }\n };\n\n ResourceModule.prototype.load = function load(container, loadContext) {\n if (this.onLoaded !== null) {\n return this.loadContext === loadContext ? Promise.resolve() : this.onLoaded;\n }\n\n var main = this.mainResource;\n var resources = this.resources;\n var loads = void 0;\n\n if (main !== undefined) {\n loads = new Array(resources.length + 1);\n loads[0] = main.load(container, loadContext);\n for (var i = 0, ii = resources.length; i < ii; ++i) {\n loads[i + 1] = resources[i].load(container, loadContext);\n }\n } else {\n loads = new Array(resources.length);\n for (var _i = 0, _ii = resources.length; _i < _ii; ++_i) {\n loads[_i] = resources[_i].load(container, loadContext);\n }\n }\n\n this.loadContext = loadContext;\n this.onLoaded = Promise.all(loads);\n return this.onLoaded;\n };\n\n return ResourceModule;\n}();\n\nexport var ResourceDescription = function () {\n function ResourceDescription(key, exportedValue, resourceTypeMeta) {\n \n\n if (!resourceTypeMeta) {\n resourceTypeMeta = metadata.get(metadata.resource, exportedValue);\n\n if (!resourceTypeMeta) {\n resourceTypeMeta = new HtmlBehaviorResource();\n resourceTypeMeta.elementName = _hyphenate(key);\n metadata.define(metadata.resource, resourceTypeMeta, exportedValue);\n }\n }\n\n if (resourceTypeMeta instanceof HtmlBehaviorResource) {\n if (resourceTypeMeta.elementName === undefined) {\n resourceTypeMeta.elementName = _hyphenate(key);\n } else if (resourceTypeMeta.attributeName === undefined) {\n resourceTypeMeta.attributeName = _hyphenate(key);\n } else if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n HtmlBehaviorResource.convention(key, resourceTypeMeta);\n }\n } else if (!resourceTypeMeta.name) {\n resourceTypeMeta.name = _hyphenate(key);\n }\n\n this.metadata = resourceTypeMeta;\n this.value = exportedValue;\n }\n\n ResourceDescription.prototype.initialize = function initialize(container) {\n this.metadata.initialize(container, this.value);\n };\n\n ResourceDescription.prototype.register = function register(registry, name) {\n this.metadata.register(registry, name);\n };\n\n ResourceDescription.prototype.load = function load(container, loadContext) {\n return this.metadata.load(container, this.value, loadContext);\n };\n\n return ResourceDescription;\n}();\n\nexport var ModuleAnalyzer = function () {\n function ModuleAnalyzer() {\n \n\n this.cache = Object.create(null);\n }\n\n ModuleAnalyzer.prototype.getAnalysis = function getAnalysis(moduleId) {\n return this.cache[moduleId];\n };\n\n ModuleAnalyzer.prototype.analyze = function analyze(moduleId, moduleInstance, mainResourceKey) {\n var mainResource = void 0;\n var fallbackValue = void 0;\n var fallbackKey = void 0;\n var resourceTypeMeta = void 0;\n var key = void 0;\n var exportedValue = void 0;\n var resources = [];\n var conventional = void 0;\n var vs = void 0;\n var resourceModule = void 0;\n\n resourceModule = this.cache[moduleId];\n if (resourceModule) {\n return resourceModule;\n }\n\n resourceModule = new ResourceModule(moduleId);\n this.cache[moduleId] = resourceModule;\n\n if (typeof moduleInstance === 'function') {\n moduleInstance = { 'default': moduleInstance };\n }\n\n if (mainResourceKey) {\n mainResource = new ResourceDescription(mainResourceKey, moduleInstance[mainResourceKey]);\n }\n\n for (key in moduleInstance) {\n exportedValue = moduleInstance[key];\n\n if (key === mainResourceKey || typeof exportedValue !== 'function') {\n continue;\n }\n\n resourceTypeMeta = metadata.get(metadata.resource, exportedValue);\n\n if (resourceTypeMeta) {\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n HtmlBehaviorResource.convention(key, resourceTypeMeta);\n }\n\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\n resourceTypeMeta.elementName = _hyphenate(key);\n }\n\n if (!mainResource && resourceTypeMeta instanceof HtmlBehaviorResource && resourceTypeMeta.elementName !== null) {\n mainResource = new ResourceDescription(key, exportedValue, resourceTypeMeta);\n } else {\n resources.push(new ResourceDescription(key, exportedValue, resourceTypeMeta));\n }\n } else if (viewStrategy.decorates(exportedValue)) {\n vs = exportedValue;\n } else if (exportedValue instanceof TemplateRegistryEntry) {\n vs = new TemplateRegistryViewStrategy(moduleId, exportedValue);\n } else {\n if (conventional = HtmlBehaviorResource.convention(key)) {\n if (conventional.elementName !== null && !mainResource) {\n mainResource = new ResourceDescription(key, exportedValue, conventional);\n } else {\n resources.push(new ResourceDescription(key, exportedValue, conventional));\n }\n\n metadata.define(metadata.resource, conventional, exportedValue);\n } else if (conventional = ValueConverterResource.convention(key) || BindingBehaviorResource.convention(key) || ViewEngineHooksResource.convention(key)) {\n resources.push(new ResourceDescription(key, exportedValue, conventional));\n metadata.define(metadata.resource, conventional, exportedValue);\n } else if (!fallbackValue) {\n fallbackValue = exportedValue;\n fallbackKey = key;\n }\n }\n }\n\n if (!mainResource && fallbackValue) {\n mainResource = new ResourceDescription(fallbackKey, fallbackValue);\n }\n\n resourceModule.moduleInstance = moduleInstance;\n resourceModule.mainResource = mainResource;\n resourceModule.resources = resources;\n resourceModule.viewStrategy = vs;\n\n return resourceModule;\n };\n\n return ModuleAnalyzer;\n}();\n\nvar logger = LogManager.getLogger('templating');\n\nfunction ensureRegistryEntry(loader, urlOrRegistryEntry) {\n if (urlOrRegistryEntry instanceof TemplateRegistryEntry) {\n return Promise.resolve(urlOrRegistryEntry);\n }\n\n return loader.loadTemplate(urlOrRegistryEntry);\n}\n\nvar ProxyViewFactory = function () {\n function ProxyViewFactory(promise) {\n var _this9 = this;\n\n \n\n promise.then(function (x) {\n return _this9.viewFactory = x;\n });\n }\n\n ProxyViewFactory.prototype.create = function create(container, bindingContext, createInstruction, element) {\n return this.viewFactory.create(container, bindingContext, createInstruction, element);\n };\n\n ProxyViewFactory.prototype.setCacheSize = function setCacheSize(size, doNotOverrideIfAlreadySet) {\n this.viewFactory.setCacheSize(size, doNotOverrideIfAlreadySet);\n };\n\n ProxyViewFactory.prototype.getCachedView = function getCachedView() {\n return this.viewFactory.getCachedView();\n };\n\n ProxyViewFactory.prototype.returnViewToCache = function returnViewToCache(view) {\n this.viewFactory.returnViewToCache(view);\n };\n\n _createClass(ProxyViewFactory, [{\n key: 'isCaching',\n get: function get() {\n return this.viewFactory.isCaching;\n }\n }]);\n\n return ProxyViewFactory;\n}();\n\nexport var ViewEngine = (_dec8 = inject(Loader, Container, ViewCompiler, ModuleAnalyzer, ViewResources), _dec8(_class14 = (_temp4 = _class15 = function () {\n function ViewEngine(loader, container, viewCompiler, moduleAnalyzer, appResources) {\n \n\n this.loader = loader;\n this.container = container;\n this.viewCompiler = viewCompiler;\n this.moduleAnalyzer = moduleAnalyzer;\n this.appResources = appResources;\n this._pluginMap = {};\n\n var auSlotBehavior = new HtmlBehaviorResource();\n auSlotBehavior.attributeName = 'au-slot';\n auSlotBehavior.initialize(container, SlotCustomAttribute);\n auSlotBehavior.register(appResources);\n }\n\n ViewEngine.prototype.addResourcePlugin = function addResourcePlugin(extension, implementation) {\n var name = extension.replace('.', '') + '-resource-plugin';\n this._pluginMap[extension] = name;\n this.loader.addPlugin(name, implementation);\n };\n\n ViewEngine.prototype.loadViewFactory = function loadViewFactory(urlOrRegistryEntry, compileInstruction, loadContext, target) {\n var _this10 = this;\n\n loadContext = loadContext || new ResourceLoadContext();\n\n return ensureRegistryEntry(this.loader, urlOrRegistryEntry).then(function (registryEntry) {\n if (registryEntry.onReady) {\n if (!loadContext.hasDependency(urlOrRegistryEntry)) {\n loadContext.addDependency(urlOrRegistryEntry);\n return registryEntry.onReady;\n }\n\n if (registryEntry.template === null) {\n return registryEntry.onReady;\n }\n\n return Promise.resolve(new ProxyViewFactory(registryEntry.onReady));\n }\n\n loadContext.addDependency(urlOrRegistryEntry);\n\n registryEntry.onReady = _this10.loadTemplateResources(registryEntry, compileInstruction, loadContext, target).then(function (resources) {\n registryEntry.resources = resources;\n\n if (registryEntry.template === null) {\n return registryEntry.factory = null;\n }\n\n var viewFactory = _this10.viewCompiler.compile(registryEntry.template, resources, compileInstruction);\n return registryEntry.factory = viewFactory;\n });\n\n return registryEntry.onReady;\n });\n };\n\n ViewEngine.prototype.loadTemplateResources = function loadTemplateResources(registryEntry, compileInstruction, loadContext, target) {\n var resources = new ViewResources(this.appResources, registryEntry.address);\n var dependencies = registryEntry.dependencies;\n var importIds = void 0;\n var names = void 0;\n\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\n\n if (dependencies.length === 0 && !compileInstruction.associatedModuleId) {\n return Promise.resolve(resources);\n }\n\n importIds = dependencies.map(function (x) {\n return x.src;\n });\n names = dependencies.map(function (x) {\n return x.name;\n });\n logger.debug('importing resources for ' + registryEntry.address, importIds);\n\n if (target) {\n var viewModelRequires = metadata.get(ViewEngine.viewModelRequireMetadataKey, target);\n if (viewModelRequires) {\n var templateImportCount = importIds.length;\n for (var i = 0, ii = viewModelRequires.length; i < ii; ++i) {\n var req = viewModelRequires[i];\n var importId = typeof req === 'function' ? Origin.get(req).moduleId : relativeToFile(req.src || req, registryEntry.address);\n\n if (importIds.indexOf(importId) === -1) {\n importIds.push(importId);\n names.push(req.as);\n }\n }\n logger.debug('importing ViewModel resources for ' + compileInstruction.associatedModuleId, importIds.slice(templateImportCount));\n }\n }\n\n return this.importViewResources(importIds, names, resources, compileInstruction, loadContext);\n };\n\n ViewEngine.prototype.importViewModelResource = function importViewModelResource(moduleImport, moduleMember) {\n var _this11 = this;\n\n return this.loader.loadModule(moduleImport).then(function (viewModelModule) {\n var normalizedId = Origin.get(viewModelModule).moduleId;\n var resourceModule = _this11.moduleAnalyzer.analyze(normalizedId, viewModelModule, moduleMember);\n\n if (!resourceModule.mainResource) {\n throw new Error('No view model found in module \"' + moduleImport + '\".');\n }\n\n resourceModule.initialize(_this11.container);\n\n return resourceModule.mainResource;\n });\n };\n\n ViewEngine.prototype.importViewResources = function importViewResources(moduleIds, names, resources, compileInstruction, loadContext) {\n var _this12 = this;\n\n loadContext = loadContext || new ResourceLoadContext();\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\n\n moduleIds = moduleIds.map(function (x) {\n return _this12._applyLoaderPlugin(x);\n });\n\n return this.loader.loadAllModules(moduleIds).then(function (imports) {\n var i = void 0;\n var ii = void 0;\n var analysis = void 0;\n var normalizedId = void 0;\n var current = void 0;\n var associatedModule = void 0;\n var container = _this12.container;\n var moduleAnalyzer = _this12.moduleAnalyzer;\n var allAnalysis = new Array(imports.length);\n\n for (i = 0, ii = imports.length; i < ii; ++i) {\n current = imports[i];\n normalizedId = Origin.get(current).moduleId;\n\n analysis = moduleAnalyzer.analyze(normalizedId, current);\n analysis.initialize(container);\n analysis.register(resources, names[i]);\n\n allAnalysis[i] = analysis;\n }\n\n if (compileInstruction.associatedModuleId) {\n associatedModule = moduleAnalyzer.getAnalysis(compileInstruction.associatedModuleId);\n\n if (associatedModule) {\n associatedModule.register(resources);\n }\n }\n\n for (i = 0, ii = allAnalysis.length; i < ii; ++i) {\n allAnalysis[i] = allAnalysis[i].load(container, loadContext);\n }\n\n return Promise.all(allAnalysis).then(function () {\n return resources;\n });\n });\n };\n\n ViewEngine.prototype._applyLoaderPlugin = function _applyLoaderPlugin(id) {\n var index = id.lastIndexOf('.');\n if (index !== -1) {\n var ext = id.substring(index);\n var pluginName = this._pluginMap[ext];\n\n if (pluginName === undefined) {\n return id;\n }\n\n return this.loader.applyPluginToUrl(id, pluginName);\n }\n\n return id;\n };\n\n return ViewEngine;\n}(), _class15.viewModelRequireMetadataKey = 'aurelia:view-model-require', _temp4)) || _class14);\n\nexport var Controller = function () {\n function Controller(behavior, instruction, viewModel, container) {\n \n\n this.behavior = behavior;\n this.instruction = instruction;\n this.viewModel = viewModel;\n this.isAttached = false;\n this.view = null;\n this.isBound = false;\n this.scope = null;\n this.container = container;\n this.elementEvents = container.elementEvents || null;\n\n var observerLookup = behavior.observerLocator.getOrCreateObserversLookup(viewModel);\n var handlesBind = behavior.handlesBind;\n var attributes = instruction.attributes;\n var boundProperties = this.boundProperties = [];\n var properties = behavior.properties;\n var i = void 0;\n var ii = void 0;\n\n behavior._ensurePropertiesDefined(viewModel, observerLookup);\n\n for (i = 0, ii = properties.length; i < ii; ++i) {\n properties[i]._initialize(viewModel, observerLookup, attributes, handlesBind, boundProperties);\n }\n }\n\n Controller.prototype.created = function created(owningView) {\n if (this.behavior.handlesCreated) {\n this.viewModel.created(owningView, this.view);\n }\n };\n\n Controller.prototype.automate = function automate(overrideContext, owningView) {\n this.view.bindingContext = this.viewModel;\n this.view.overrideContext = overrideContext || createOverrideContext(this.viewModel);\n this.view._isUserControlled = true;\n\n if (this.behavior.handlesCreated) {\n this.viewModel.created(owningView || null, this.view);\n }\n\n this.bind(this.view);\n };\n\n Controller.prototype.bind = function bind(scope) {\n var skipSelfSubscriber = this.behavior.handlesBind;\n var boundProperties = this.boundProperties;\n var i = void 0;\n var ii = void 0;\n var x = void 0;\n var observer = void 0;\n var selfSubscriber = void 0;\n\n if (this.isBound) {\n if (this.scope === scope) {\n return;\n }\n\n this.unbind();\n }\n\n this.isBound = true;\n this.scope = scope;\n\n for (i = 0, ii = boundProperties.length; i < ii; ++i) {\n x = boundProperties[i];\n observer = x.observer;\n selfSubscriber = observer.selfSubscriber;\n observer.publishing = false;\n\n if (skipSelfSubscriber) {\n observer.selfSubscriber = null;\n }\n\n x.binding.bind(scope);\n observer.call();\n\n observer.publishing = true;\n observer.selfSubscriber = selfSubscriber;\n }\n\n var overrideContext = void 0;\n if (this.view !== null) {\n if (skipSelfSubscriber) {\n this.view.viewModelScope = scope;\n }\n\n if (this.viewModel === scope.overrideContext.bindingContext) {\n overrideContext = scope.overrideContext;\n } else if (this.instruction.inheritBindingContext) {\n overrideContext = createOverrideContext(this.viewModel, scope.overrideContext);\n } else {\n overrideContext = createOverrideContext(this.viewModel);\n overrideContext.__parentOverrideContext = scope.overrideContext;\n }\n\n this.view.bind(this.viewModel, overrideContext);\n } else if (skipSelfSubscriber) {\n overrideContext = scope.overrideContext;\n\n if (scope.overrideContext.__parentOverrideContext !== undefined && this.viewModel.viewFactory && this.viewModel.viewFactory.factoryCreateInstruction.partReplacements) {\n overrideContext = Object.assign({}, scope.overrideContext);\n overrideContext.parentOverrideContext = scope.overrideContext.__parentOverrideContext;\n }\n this.viewModel.bind(scope.bindingContext, overrideContext);\n }\n };\n\n Controller.prototype.unbind = function unbind() {\n if (this.isBound) {\n var _boundProperties = this.boundProperties;\n var _i2 = void 0;\n var _ii2 = void 0;\n\n this.isBound = false;\n this.scope = null;\n\n if (this.view !== null) {\n this.view.unbind();\n }\n\n if (this.behavior.handlesUnbind) {\n this.viewModel.unbind();\n }\n\n if (this.elementEvents !== null) {\n this.elementEvents.disposeAll();\n }\n\n for (_i2 = 0, _ii2 = _boundProperties.length; _i2 < _ii2; ++_i2) {\n _boundProperties[_i2].binding.unbind();\n }\n }\n };\n\n Controller.prototype.attached = function attached() {\n if (this.isAttached) {\n return;\n }\n\n this.isAttached = true;\n\n if (this.behavior.handlesAttached) {\n this.viewModel.attached();\n }\n\n if (this.view !== null) {\n this.view.attached();\n }\n };\n\n Controller.prototype.detached = function detached() {\n if (this.isAttached) {\n this.isAttached = false;\n\n if (this.view !== null) {\n this.view.detached();\n }\n\n if (this.behavior.handlesDetached) {\n this.viewModel.detached();\n }\n }\n };\n\n return Controller;\n}();\n\nexport var BehaviorPropertyObserver = (_dec9 = subscriberCollection(), _dec9(_class16 = function () {\n function BehaviorPropertyObserver(taskQueue, obj, propertyName, selfSubscriber, initialValue) {\n \n\n this.taskQueue = taskQueue;\n this.obj = obj;\n this.propertyName = propertyName;\n this.notqueued = true;\n this.publishing = false;\n this.selfSubscriber = selfSubscriber;\n this.currentValue = this.oldValue = initialValue;\n }\n\n BehaviorPropertyObserver.prototype.getValue = function getValue() {\n return this.currentValue;\n };\n\n BehaviorPropertyObserver.prototype.setValue = function setValue(newValue) {\n var oldValue = this.currentValue;\n\n if (oldValue !== newValue) {\n this.oldValue = oldValue;\n this.currentValue = newValue;\n\n if (this.publishing && this.notqueued) {\n if (this.taskQueue.flushing) {\n this.call();\n } else {\n this.notqueued = false;\n this.taskQueue.queueMicroTask(this);\n }\n }\n }\n };\n\n BehaviorPropertyObserver.prototype.call = function call() {\n var oldValue = this.oldValue;\n var newValue = this.currentValue;\n\n this.notqueued = true;\n\n if (newValue === oldValue) {\n return;\n }\n\n if (this.selfSubscriber) {\n this.selfSubscriber(newValue, oldValue);\n }\n\n this.callSubscribers(newValue, oldValue);\n this.oldValue = newValue;\n };\n\n BehaviorPropertyObserver.prototype.subscribe = function subscribe(context, callable) {\n this.addSubscriber(context, callable);\n };\n\n BehaviorPropertyObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n this.removeSubscriber(context, callable);\n };\n\n return BehaviorPropertyObserver;\n}()) || _class16);\n\nfunction getObserver(behavior, instance, name) {\n var lookup = instance.__observers__;\n\n if (lookup === undefined) {\n if (!behavior.isInitialized) {\n behavior.initialize(Container.instance || new Container(), instance.constructor);\n }\n\n lookup = behavior.observerLocator.getOrCreateObserversLookup(instance);\n behavior._ensurePropertiesDefined(instance, lookup);\n }\n\n return lookup[name];\n}\n\nexport var BindableProperty = function () {\n function BindableProperty(nameOrConfig) {\n \n\n if (typeof nameOrConfig === 'string') {\n this.name = nameOrConfig;\n } else {\n Object.assign(this, nameOrConfig);\n }\n\n this.attribute = this.attribute || _hyphenate(this.name);\n if (this.defaultBindingMode === null || this.defaultBindingMode === undefined) {\n this.defaultBindingMode = bindingMode.oneWay;\n }\n this.changeHandler = this.changeHandler || null;\n this.owner = null;\n this.descriptor = null;\n }\n\n BindableProperty.prototype.registerWith = function registerWith(target, behavior, descriptor) {\n behavior.properties.push(this);\n behavior.attributes[this.attribute] = this;\n this.owner = behavior;\n\n if (descriptor) {\n this.descriptor = descriptor;\n return this._configureDescriptor(behavior, descriptor);\n }\n\n return undefined;\n };\n\n BindableProperty.prototype._configureDescriptor = function _configureDescriptor(behavior, descriptor) {\n var name = this.name;\n\n descriptor.configurable = true;\n descriptor.enumerable = true;\n\n if ('initializer' in descriptor) {\n this.defaultValue = descriptor.initializer;\n delete descriptor.initializer;\n delete descriptor.writable;\n }\n\n if ('value' in descriptor) {\n this.defaultValue = descriptor.value;\n delete descriptor.value;\n delete descriptor.writable;\n }\n\n descriptor.get = function () {\n return getObserver(behavior, this, name).getValue();\n };\n\n descriptor.set = function (value) {\n getObserver(behavior, this, name).setValue(value);\n };\n\n descriptor.get.getObserver = function (obj) {\n return getObserver(behavior, obj, name);\n };\n\n return descriptor;\n };\n\n BindableProperty.prototype.defineOn = function defineOn(target, behavior) {\n var name = this.name;\n var handlerName = void 0;\n\n if (this.changeHandler === null) {\n handlerName = name + 'Changed';\n if (handlerName in target.prototype) {\n this.changeHandler = handlerName;\n }\n }\n\n if (this.descriptor === null) {\n Object.defineProperty(target.prototype, name, this._configureDescriptor(behavior, {}));\n }\n };\n\n BindableProperty.prototype.createObserver = function createObserver(viewModel) {\n var selfSubscriber = null;\n var defaultValue = this.defaultValue;\n var changeHandlerName = this.changeHandler;\n var name = this.name;\n var initialValue = void 0;\n\n if (this.hasOptions) {\n return undefined;\n }\n\n if (changeHandlerName in viewModel) {\n if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n viewModel[changeHandlerName](newValue, oldValue);\n viewModel.propertyChanged(name, newValue, oldValue);\n };\n } else {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel[changeHandlerName](newValue, oldValue);\n };\n }\n } else if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel.propertyChanged(name, newValue, oldValue);\n };\n } else if (changeHandlerName !== null) {\n throw new Error('Change handler ' + changeHandlerName + ' was specified but not declared on the class.');\n }\n\n if (defaultValue !== undefined) {\n initialValue = typeof defaultValue === 'function' ? defaultValue.call(viewModel) : defaultValue;\n }\n\n return new BehaviorPropertyObserver(this.owner.taskQueue, viewModel, this.name, selfSubscriber, initialValue);\n };\n\n BindableProperty.prototype._initialize = function _initialize(viewModel, observerLookup, attributes, behaviorHandlesBind, boundProperties) {\n var selfSubscriber = void 0;\n var observer = void 0;\n var attribute = void 0;\n var defaultValue = this.defaultValue;\n\n if (this.isDynamic) {\n for (var key in attributes) {\n this._createDynamicProperty(viewModel, observerLookup, behaviorHandlesBind, key, attributes[key], boundProperties);\n }\n } else if (!this.hasOptions) {\n observer = observerLookup[this.name];\n\n if (attributes !== null) {\n selfSubscriber = observer.selfSubscriber;\n attribute = attributes[this.attribute];\n\n if (behaviorHandlesBind) {\n observer.selfSubscriber = null;\n }\n\n if (typeof attribute === 'string') {\n viewModel[this.name] = attribute;\n observer.call();\n } else if (attribute) {\n boundProperties.push({ observer: observer, binding: attribute.createBinding(viewModel) });\n } else if (defaultValue !== undefined) {\n observer.call();\n }\n\n observer.selfSubscriber = selfSubscriber;\n }\n\n observer.publishing = true;\n }\n };\n\n BindableProperty.prototype._createDynamicProperty = function _createDynamicProperty(viewModel, observerLookup, behaviorHandlesBind, name, attribute, boundProperties) {\n var changeHandlerName = name + 'Changed';\n var selfSubscriber = null;\n var observer = void 0;\n var info = void 0;\n\n if (changeHandlerName in viewModel) {\n if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n viewModel[changeHandlerName](newValue, oldValue);\n viewModel.propertyChanged(name, newValue, oldValue);\n };\n } else {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel[changeHandlerName](newValue, oldValue);\n };\n }\n } else if ('propertyChanged' in viewModel) {\n selfSubscriber = function selfSubscriber(newValue, oldValue) {\n return viewModel.propertyChanged(name, newValue, oldValue);\n };\n }\n\n observer = observerLookup[name] = new BehaviorPropertyObserver(this.owner.taskQueue, viewModel, name, selfSubscriber);\n\n Object.defineProperty(viewModel, name, {\n configurable: true,\n enumerable: true,\n get: observer.getValue.bind(observer),\n set: observer.setValue.bind(observer)\n });\n\n if (behaviorHandlesBind) {\n observer.selfSubscriber = null;\n }\n\n if (typeof attribute === 'string') {\n viewModel[name] = attribute;\n observer.call();\n } else if (attribute) {\n info = { observer: observer, binding: attribute.createBinding(viewModel) };\n boundProperties.push(info);\n }\n\n observer.publishing = true;\n observer.selfSubscriber = selfSubscriber;\n };\n\n return BindableProperty;\n}();\n\nvar lastProviderId = 0;\n\nfunction nextProviderId() {\n return ++lastProviderId;\n}\n\nfunction doProcessContent() {\n return true;\n}\nfunction doProcessAttributes() {}\n\nexport var HtmlBehaviorResource = function () {\n function HtmlBehaviorResource() {\n \n\n this.elementName = null;\n this.attributeName = null;\n this.attributeDefaultBindingMode = undefined;\n this.liftsContent = false;\n this.targetShadowDOM = false;\n this.shadowDOMOptions = null;\n this.processAttributes = doProcessAttributes;\n this.processContent = doProcessContent;\n this.usesShadowDOM = false;\n this.childBindings = null;\n this.hasDynamicOptions = false;\n this.containerless = false;\n this.properties = [];\n this.attributes = {};\n this.isInitialized = false;\n this.primaryProperty = null;\n }\n\n HtmlBehaviorResource.convention = function convention(name, existing) {\n var behavior = void 0;\n\n if (name.endsWith('CustomAttribute')) {\n behavior = existing || new HtmlBehaviorResource();\n behavior.attributeName = _hyphenate(name.substring(0, name.length - 15));\n }\n\n if (name.endsWith('CustomElement')) {\n behavior = existing || new HtmlBehaviorResource();\n behavior.elementName = _hyphenate(name.substring(0, name.length - 13));\n }\n\n return behavior;\n };\n\n HtmlBehaviorResource.prototype.addChildBinding = function addChildBinding(behavior) {\n if (this.childBindings === null) {\n this.childBindings = [];\n }\n\n this.childBindings.push(behavior);\n };\n\n HtmlBehaviorResource.prototype.initialize = function initialize(container, target) {\n var proto = target.prototype;\n var properties = this.properties;\n var attributeName = this.attributeName;\n var attributeDefaultBindingMode = this.attributeDefaultBindingMode;\n var i = void 0;\n var ii = void 0;\n var current = void 0;\n\n if (this.isInitialized) {\n return;\n }\n\n this.isInitialized = true;\n target.__providerId__ = nextProviderId();\n\n this.observerLocator = container.get(ObserverLocator);\n this.taskQueue = container.get(TaskQueue);\n\n this.target = target;\n this.usesShadowDOM = this.targetShadowDOM && FEATURE.shadowDOM;\n this.handlesCreated = 'created' in proto;\n this.handlesBind = 'bind' in proto;\n this.handlesUnbind = 'unbind' in proto;\n this.handlesAttached = 'attached' in proto;\n this.handlesDetached = 'detached' in proto;\n this.htmlName = this.elementName || this.attributeName;\n\n if (attributeName !== null) {\n if (properties.length === 0) {\n new BindableProperty({\n name: 'value',\n changeHandler: 'valueChanged' in proto ? 'valueChanged' : null,\n attribute: attributeName,\n defaultBindingMode: attributeDefaultBindingMode\n }).registerWith(target, this);\n }\n\n current = properties[0];\n\n if (properties.length === 1 && current.name === 'value') {\n current.isDynamic = current.hasOptions = this.hasDynamicOptions;\n current.defineOn(target, this);\n } else {\n for (i = 0, ii = properties.length; i < ii; ++i) {\n properties[i].defineOn(target, this);\n if (properties[i].primaryProperty) {\n if (this.primaryProperty) {\n throw new Error('Only one bindable property on a custom element can be defined as the default');\n }\n this.primaryProperty = properties[i];\n }\n }\n\n current = new BindableProperty({\n name: 'value',\n changeHandler: 'valueChanged' in proto ? 'valueChanged' : null,\n attribute: attributeName,\n defaultBindingMode: attributeDefaultBindingMode\n });\n\n current.hasOptions = true;\n current.registerWith(target, this);\n }\n } else {\n for (i = 0, ii = properties.length; i < ii; ++i) {\n properties[i].defineOn(target, this);\n }\n }\n };\n\n HtmlBehaviorResource.prototype.register = function register(registry, name) {\n var _this13 = this;\n\n if (this.attributeName !== null) {\n registry.registerAttribute(name || this.attributeName, this, this.attributeName);\n\n if (Array.isArray(this.aliases)) {\n this.aliases.forEach(function (alias) {\n registry.registerAttribute(alias, _this13, _this13.attributeName);\n });\n }\n }\n\n if (this.elementName !== null) {\n registry.registerElement(name || this.elementName, this);\n }\n };\n\n HtmlBehaviorResource.prototype.load = function load(container, target, loadContext, viewStrategy, transientView) {\n var _this14 = this;\n\n var options = void 0;\n\n if (this.elementName !== null) {\n viewStrategy = container.get(ViewLocator).getViewStrategy(viewStrategy || this.viewStrategy || target);\n options = new ViewCompileInstruction(this.targetShadowDOM, true);\n\n if (!viewStrategy.moduleId) {\n viewStrategy.moduleId = Origin.get(target).moduleId;\n }\n\n return viewStrategy.loadViewFactory(container.get(ViewEngine), options, loadContext, target).then(function (viewFactory) {\n if (!transientView || !_this14.viewFactory) {\n _this14.viewFactory = viewFactory;\n }\n\n return viewFactory;\n });\n }\n\n return Promise.resolve(this);\n };\n\n HtmlBehaviorResource.prototype.compile = function compile(compiler, resources, node, instruction, parentNode) {\n if (this.liftsContent) {\n if (!instruction.viewFactory) {\n var template = DOM.createElement('template');\n var fragment = DOM.createDocumentFragment();\n var cacheSize = node.getAttribute('view-cache');\n var part = node.getAttribute('part');\n\n node.removeAttribute(instruction.originalAttrName);\n DOM.replaceNode(template, node, parentNode);\n fragment.appendChild(node);\n instruction.viewFactory = compiler.compile(fragment, resources);\n\n if (part) {\n instruction.viewFactory.part = part;\n node.removeAttribute('part');\n }\n\n if (cacheSize) {\n instruction.viewFactory.setCacheSize(cacheSize);\n node.removeAttribute('view-cache');\n }\n\n node = template;\n }\n } else if (this.elementName !== null) {\n var _partReplacements2 = {};\n\n if (this.processContent(compiler, resources, node, instruction) && node.hasChildNodes()) {\n var currentChild = node.firstChild;\n var contentElement = this.usesShadowDOM ? null : DOM.createElement('au-content');\n var nextSibling = void 0;\n var toReplace = void 0;\n\n while (currentChild) {\n nextSibling = currentChild.nextSibling;\n\n if (currentChild.tagName === 'TEMPLATE' && (toReplace = currentChild.getAttribute('replace-part'))) {\n _partReplacements2[toReplace] = compiler.compile(currentChild, resources);\n DOM.removeNode(currentChild, parentNode);\n instruction.partReplacements = _partReplacements2;\n } else if (contentElement !== null) {\n if (currentChild.nodeType === 3 && _isAllWhitespace(currentChild)) {\n DOM.removeNode(currentChild, parentNode);\n } else {\n contentElement.appendChild(currentChild);\n }\n }\n\n currentChild = nextSibling;\n }\n\n if (contentElement !== null && contentElement.hasChildNodes()) {\n node.appendChild(contentElement);\n }\n\n instruction.skipContentProcessing = false;\n } else {\n instruction.skipContentProcessing = true;\n }\n }\n\n return node;\n };\n\n HtmlBehaviorResource.prototype.create = function create(container, instruction, element, bindings) {\n var viewHost = void 0;\n var au = null;\n\n instruction = instruction || BehaviorInstruction.normal;\n element = element || null;\n bindings = bindings || null;\n\n if (this.elementName !== null && element) {\n if (this.usesShadowDOM) {\n viewHost = element.attachShadow(this.shadowDOMOptions);\n container.registerInstance(DOM.boundary, viewHost);\n } else {\n viewHost = element;\n if (this.targetShadowDOM) {\n container.registerInstance(DOM.boundary, viewHost);\n }\n }\n }\n\n if (element !== null) {\n element.au = au = element.au || {};\n }\n\n var viewModel = instruction.viewModel || container.get(this.target);\n var controller = new Controller(this, instruction, viewModel, container);\n var childBindings = this.childBindings;\n var viewFactory = void 0;\n\n if (this.liftsContent) {\n au.controller = controller;\n } else if (this.elementName !== null) {\n viewFactory = instruction.viewFactory || this.viewFactory;\n container.viewModel = viewModel;\n\n if (viewFactory) {\n controller.view = viewFactory.create(container, instruction, element);\n }\n\n if (element !== null) {\n au.controller = controller;\n\n if (controller.view) {\n if (!this.usesShadowDOM && (element.childNodes.length === 1 || element.contentElement)) {\n var contentElement = element.childNodes[0] || element.contentElement;\n controller.view.contentView = { fragment: contentElement };\n contentElement.parentNode && DOM.removeNode(contentElement);\n }\n\n if (instruction.anchorIsContainer) {\n if (childBindings !== null) {\n for (var _i3 = 0, _ii3 = childBindings.length; _i3 < _ii3; ++_i3) {\n controller.view.addBinding(childBindings[_i3].create(element, viewModel, controller));\n }\n }\n\n controller.view.appendNodesTo(viewHost);\n } else {\n controller.view.insertNodesBefore(viewHost);\n }\n } else if (childBindings !== null) {\n for (var _i4 = 0, _ii4 = childBindings.length; _i4 < _ii4; ++_i4) {\n bindings.push(childBindings[_i4].create(element, viewModel, controller));\n }\n }\n } else if (controller.view) {\n controller.view.controller = controller;\n\n if (childBindings !== null) {\n for (var _i5 = 0, _ii5 = childBindings.length; _i5 < _ii5; ++_i5) {\n controller.view.addBinding(childBindings[_i5].create(instruction.host, viewModel, controller));\n }\n }\n } else if (childBindings !== null) {\n for (var _i6 = 0, _ii6 = childBindings.length; _i6 < _ii6; ++_i6) {\n bindings.push(childBindings[_i6].create(instruction.host, viewModel, controller));\n }\n }\n } else if (childBindings !== null) {\n for (var _i7 = 0, _ii7 = childBindings.length; _i7 < _ii7; ++_i7) {\n bindings.push(childBindings[_i7].create(element, viewModel, controller));\n }\n }\n\n if (au !== null) {\n au[this.htmlName] = controller;\n }\n\n if (instruction.initiatedByBehavior && viewFactory) {\n controller.view.created();\n }\n\n return controller;\n };\n\n HtmlBehaviorResource.prototype._ensurePropertiesDefined = function _ensurePropertiesDefined(instance, lookup) {\n var properties = void 0;\n var i = void 0;\n var ii = void 0;\n var observer = void 0;\n\n if ('__propertiesDefined__' in lookup) {\n return;\n }\n\n lookup.__propertiesDefined__ = true;\n properties = this.properties;\n\n for (i = 0, ii = properties.length; i < ii; ++i) {\n observer = properties[i].createObserver(instance);\n\n if (observer !== undefined) {\n lookup[observer.propertyName] = observer;\n }\n }\n };\n\n return HtmlBehaviorResource;\n}();\n\nfunction createChildObserverDecorator(selectorOrConfig, all) {\n return function (target, key, descriptor) {\n var actualTarget = typeof key === 'string' ? target.constructor : target;\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, actualTarget);\n\n if (typeof selectorOrConfig === 'string') {\n selectorOrConfig = {\n selector: selectorOrConfig,\n name: key\n };\n }\n\n if (descriptor) {\n descriptor.writable = true;\n descriptor.configurable = true;\n }\n\n selectorOrConfig.all = all;\n r.addChildBinding(new ChildObserver(selectorOrConfig));\n };\n}\n\nexport function children(selectorOrConfig) {\n return createChildObserverDecorator(selectorOrConfig, true);\n}\n\nexport function child(selectorOrConfig) {\n return createChildObserverDecorator(selectorOrConfig, false);\n}\n\nvar ChildObserver = function () {\n function ChildObserver(config) {\n \n\n this.name = config.name;\n this.changeHandler = config.changeHandler || this.name + 'Changed';\n this.selector = config.selector;\n this.all = config.all;\n }\n\n ChildObserver.prototype.create = function create(viewHost, viewModel, controller) {\n return new ChildObserverBinder(this.selector, viewHost, this.name, viewModel, controller, this.changeHandler, this.all);\n };\n\n return ChildObserver;\n}();\n\nvar noMutations = [];\n\nfunction trackMutation(groupedMutations, binder, record) {\n var mutations = groupedMutations.get(binder);\n\n if (!mutations) {\n mutations = [];\n groupedMutations.set(binder, mutations);\n }\n\n mutations.push(record);\n}\n\nfunction onChildChange(mutations, observer) {\n var binders = observer.binders;\n var bindersLength = binders.length;\n var groupedMutations = new Map();\n\n for (var _i8 = 0, _ii8 = mutations.length; _i8 < _ii8; ++_i8) {\n var record = mutations[_i8];\n var added = record.addedNodes;\n var removed = record.removedNodes;\n\n for (var j = 0, jj = removed.length; j < jj; ++j) {\n var node = removed[j];\n if (node.nodeType === 1) {\n for (var k = 0; k < bindersLength; ++k) {\n var binder = binders[k];\n if (binder.onRemove(node)) {\n trackMutation(groupedMutations, binder, record);\n }\n }\n }\n }\n\n for (var _j = 0, _jj = added.length; _j < _jj; ++_j) {\n var _node = added[_j];\n if (_node.nodeType === 1) {\n for (var _k = 0; _k < bindersLength; ++_k) {\n var _binder = binders[_k];\n if (_binder.onAdd(_node)) {\n trackMutation(groupedMutations, _binder, record);\n }\n }\n }\n }\n }\n\n groupedMutations.forEach(function (value, key) {\n if (key.changeHandler !== null) {\n key.viewModel[key.changeHandler](value);\n }\n });\n}\n\nvar ChildObserverBinder = function () {\n function ChildObserverBinder(selector, viewHost, property, viewModel, controller, changeHandler, all) {\n \n\n this.selector = selector;\n this.viewHost = viewHost;\n this.property = property;\n this.viewModel = viewModel;\n this.controller = controller;\n this.changeHandler = changeHandler in viewModel ? changeHandler : null;\n this.usesShadowDOM = controller.behavior.usesShadowDOM;\n this.all = all;\n\n if (!this.usesShadowDOM && controller.view && controller.view.contentView) {\n this.contentView = controller.view.contentView;\n } else {\n this.contentView = null;\n }\n }\n\n ChildObserverBinder.prototype.matches = function matches(element) {\n if (element.matches(this.selector)) {\n if (this.contentView === null) {\n return true;\n }\n\n var contentView = this.contentView;\n var assignedSlot = element.auAssignedSlot;\n\n if (assignedSlot && assignedSlot.projectFromAnchors) {\n var anchors = assignedSlot.projectFromAnchors;\n\n for (var _i9 = 0, _ii9 = anchors.length; _i9 < _ii9; ++_i9) {\n if (anchors[_i9].auOwnerView === contentView) {\n return true;\n }\n }\n\n return false;\n }\n\n return element.auOwnerView === contentView;\n }\n\n return false;\n };\n\n ChildObserverBinder.prototype.bind = function bind(source) {\n var viewHost = this.viewHost;\n var viewModel = this.viewModel;\n var observer = viewHost.__childObserver__;\n\n if (!observer) {\n observer = viewHost.__childObserver__ = DOM.createMutationObserver(onChildChange);\n\n var options = {\n childList: true,\n subtree: !this.usesShadowDOM\n };\n\n observer.observe(viewHost, options);\n observer.binders = [];\n }\n\n observer.binders.push(this);\n\n if (this.usesShadowDOM) {\n var current = viewHost.firstElementChild;\n\n if (this.all) {\n var items = viewModel[this.property];\n if (!items) {\n items = viewModel[this.property] = [];\n } else {\n items.length = 0;\n }\n\n while (current) {\n if (this.matches(current)) {\n items.push(current.au && current.au.controller ? current.au.controller.viewModel : current);\n }\n\n current = current.nextElementSibling;\n }\n\n if (this.changeHandler !== null) {\n this.viewModel[this.changeHandler](noMutations);\n }\n } else {\n while (current) {\n if (this.matches(current)) {\n var value = current.au && current.au.controller ? current.au.controller.viewModel : current;\n this.viewModel[this.property] = value;\n\n if (this.changeHandler !== null) {\n this.viewModel[this.changeHandler](value);\n }\n\n break;\n }\n\n current = current.nextElementSibling;\n }\n }\n }\n };\n\n ChildObserverBinder.prototype.onRemove = function onRemove(element) {\n if (this.matches(element)) {\n var value = element.au && element.au.controller ? element.au.controller.viewModel : element;\n\n if (this.all) {\n var items = this.viewModel[this.property] || (this.viewModel[this.property] = []);\n var index = items.indexOf(value);\n\n if (index !== -1) {\n items.splice(index, 1);\n }\n\n return true;\n }\n\n return false;\n }\n\n return false;\n };\n\n ChildObserverBinder.prototype.onAdd = function onAdd(element) {\n if (this.matches(element)) {\n var value = element.au && element.au.controller ? element.au.controller.viewModel : element;\n\n if (this.all) {\n var items = this.viewModel[this.property] || (this.viewModel[this.property] = []);\n var index = 0;\n var prev = element.previousElementSibling;\n\n while (prev) {\n if (this.matches(prev)) {\n index++;\n }\n\n prev = prev.previousElementSibling;\n }\n\n items.splice(index, 0, value);\n return true;\n }\n\n this.viewModel[this.property] = value;\n\n if (this.changeHandler !== null) {\n this.viewModel[this.changeHandler](value);\n }\n }\n\n return false;\n };\n\n ChildObserverBinder.prototype.unbind = function unbind() {\n if (this.viewHost.__childObserver__) {\n this.viewHost.__childObserver__.disconnect();\n this.viewHost.__childObserver__ = null;\n }\n };\n\n return ChildObserverBinder;\n}();\n\nfunction remove(viewSlot, previous) {\n return Array.isArray(previous) ? viewSlot.removeMany(previous, true) : viewSlot.remove(previous, true);\n}\n\nexport var SwapStrategies = {\n before: function before(viewSlot, previous, callback) {\n return previous === undefined ? callback() : callback().then(function () {\n return remove(viewSlot, previous);\n });\n },\n with: function _with(viewSlot, previous, callback) {\n return previous === undefined ? callback() : Promise.all([remove(viewSlot, previous), callback()]);\n },\n after: function after(viewSlot, previous, callback) {\n return Promise.resolve(viewSlot.removeAll(true)).then(callback);\n }\n};\n\nfunction tryActivateViewModel(context) {\n if (context.skipActivation || typeof context.viewModel.activate !== 'function') {\n return Promise.resolve();\n }\n\n return context.viewModel.activate(context.model) || Promise.resolve();\n}\n\nexport var CompositionEngine = (_dec10 = inject(ViewEngine, ViewLocator), _dec10(_class17 = function () {\n function CompositionEngine(viewEngine, viewLocator) {\n \n\n this.viewEngine = viewEngine;\n this.viewLocator = viewLocator;\n }\n\n CompositionEngine.prototype._swap = function _swap(context, view) {\n var swapStrategy = SwapStrategies[context.swapOrder] || SwapStrategies.after;\n var previousViews = context.viewSlot.children.slice();\n\n return swapStrategy(context.viewSlot, previousViews, function () {\n return Promise.resolve(context.viewSlot.add(view)).then(function () {\n if (context.currentController) {\n context.currentController.unbind();\n }\n });\n }).then(function () {\n if (context.compositionTransactionNotifier) {\n context.compositionTransactionNotifier.done();\n }\n });\n };\n\n CompositionEngine.prototype._createControllerAndSwap = function _createControllerAndSwap(context) {\n var _this15 = this;\n\n return this.createController(context).then(function (controller) {\n controller.automate(context.overrideContext, context.owningView);\n\n if (context.compositionTransactionOwnershipToken) {\n return context.compositionTransactionOwnershipToken.waitForCompositionComplete().then(function () {\n return _this15._swap(context, controller.view);\n }).then(function () {\n return controller;\n });\n }\n\n return _this15._swap(context, controller.view).then(function () {\n return controller;\n });\n });\n };\n\n CompositionEngine.prototype.createController = function createController(context) {\n var _this16 = this;\n\n var childContainer = void 0;\n var viewModel = void 0;\n var viewModelResource = void 0;\n var m = void 0;\n\n return this.ensureViewModel(context).then(tryActivateViewModel).then(function () {\n childContainer = context.childContainer;\n viewModel = context.viewModel;\n viewModelResource = context.viewModelResource;\n m = viewModelResource.metadata;\n\n var viewStrategy = _this16.viewLocator.getViewStrategy(context.view || viewModel);\n\n if (context.viewResources) {\n viewStrategy.makeRelativeTo(context.viewResources.viewUrl);\n }\n\n return m.load(childContainer, viewModelResource.value, null, viewStrategy, true);\n }).then(function (viewFactory) {\n return m.create(childContainer, BehaviorInstruction.dynamic(context.host, viewModel, viewFactory));\n });\n };\n\n CompositionEngine.prototype.ensureViewModel = function ensureViewModel(context) {\n var childContainer = context.childContainer = context.childContainer || context.container.createChild();\n\n if (typeof context.viewModel === 'string') {\n context.viewModel = context.viewResources ? context.viewResources.relativeToView(context.viewModel) : context.viewModel;\n\n return this.viewEngine.importViewModelResource(context.viewModel).then(function (viewModelResource) {\n childContainer.autoRegister(viewModelResource.value);\n\n if (context.host) {\n childContainer.registerInstance(DOM.Element, context.host);\n }\n\n context.viewModel = childContainer.viewModel = childContainer.get(viewModelResource.value);\n context.viewModelResource = viewModelResource;\n return context;\n });\n }\n\n var m = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, context.viewModel.constructor);\n m.elementName = m.elementName || 'dynamic-element';\n m.initialize(context.container || childContainer, context.viewModel.constructor);\n context.viewModelResource = { metadata: m, value: context.viewModel.constructor };\n childContainer.viewModel = context.viewModel;\n return Promise.resolve(context);\n };\n\n CompositionEngine.prototype.compose = function compose(context) {\n var _this17 = this;\n\n context.childContainer = context.childContainer || context.container.createChild();\n context.view = this.viewLocator.getViewStrategy(context.view);\n\n var transaction = context.childContainer.get(CompositionTransaction);\n var compositionTransactionOwnershipToken = transaction.tryCapture();\n\n if (compositionTransactionOwnershipToken) {\n context.compositionTransactionOwnershipToken = compositionTransactionOwnershipToken;\n } else {\n context.compositionTransactionNotifier = transaction.enlist();\n }\n\n if (context.viewModel) {\n return this._createControllerAndSwap(context);\n } else if (context.view) {\n if (context.viewResources) {\n context.view.makeRelativeTo(context.viewResources.viewUrl);\n }\n\n return context.view.loadViewFactory(this.viewEngine, new ViewCompileInstruction()).then(function (viewFactory) {\n var result = viewFactory.create(context.childContainer);\n result.bind(context.bindingContext, context.overrideContext);\n\n if (context.compositionTransactionOwnershipToken) {\n return context.compositionTransactionOwnershipToken.waitForCompositionComplete().then(function () {\n return _this17._swap(context, result);\n }).then(function () {\n return result;\n });\n }\n\n return _this17._swap(context, result).then(function () {\n return result;\n });\n });\n } else if (context.viewSlot) {\n context.viewSlot.removeAll();\n\n if (context.compositionTransactionNotifier) {\n context.compositionTransactionNotifier.done();\n }\n\n return Promise.resolve(null);\n }\n\n return Promise.resolve(null);\n };\n\n return CompositionEngine;\n}()) || _class17);\n\nexport var ElementConfigResource = function () {\n function ElementConfigResource() {\n \n }\n\n ElementConfigResource.prototype.initialize = function initialize(container, target) {};\n\n ElementConfigResource.prototype.register = function register(registry, name) {};\n\n ElementConfigResource.prototype.load = function load(container, target) {\n var config = new target();\n var eventManager = container.get(EventManager);\n eventManager.registerElementConfig(config);\n };\n\n return ElementConfigResource;\n}();\n\nfunction validateBehaviorName(name, type) {\n if (/[A-Z]/.test(name)) {\n var newName = _hyphenate(name);\n LogManager.getLogger('templating').warn('\\'' + name + '\\' is not a valid ' + type + ' name and has been converted to \\'' + newName + '\\'. Upper-case letters are not allowed because the DOM is not case-sensitive.');\n return newName;\n }\n return name;\n}\n\nexport function resource(instance) {\n return function (target) {\n metadata.define(metadata.resource, instance, target);\n };\n}\n\nexport function behavior(override) {\n return function (target) {\n if (override instanceof HtmlBehaviorResource) {\n metadata.define(metadata.resource, override, target);\n } else {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\n Object.assign(r, override);\n }\n };\n}\n\nexport function customElement(name) {\n return function (target) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\n r.elementName = validateBehaviorName(name, 'custom element');\n };\n}\n\nexport function customAttribute(name, defaultBindingMode, aliases) {\n return function (target) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\n r.attributeName = validateBehaviorName(name, 'custom attribute');\n r.attributeDefaultBindingMode = defaultBindingMode;\n r.aliases = aliases;\n };\n}\n\nexport function templateController(target) {\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.liftsContent = true;\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function bindable(nameOrConfigOrTarget, key, descriptor) {\n var deco = function deco(target, key2, descriptor2) {\n var actualTarget = key2 ? target.constructor : target;\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, actualTarget);\n var prop = void 0;\n\n if (key2) {\n nameOrConfigOrTarget = nameOrConfigOrTarget || {};\n nameOrConfigOrTarget.name = key2;\n }\n\n prop = new BindableProperty(nameOrConfigOrTarget);\n return prop.registerWith(actualTarget, r, descriptor2);\n };\n\n if (!nameOrConfigOrTarget) {\n return deco;\n }\n\n if (key) {\n var _target = nameOrConfigOrTarget;\n nameOrConfigOrTarget = null;\n return deco(_target, key, descriptor);\n }\n\n return deco;\n}\n\nexport function dynamicOptions(target) {\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.hasDynamicOptions = true;\n };\n\n return target ? deco(target) : deco;\n}\n\nvar defaultShadowDOMOptions = { mode: 'open' };\n\nexport function useShadowDOM(targetOrOptions) {\n var options = typeof targetOrOptions === 'function' || !targetOrOptions ? defaultShadowDOMOptions : targetOrOptions;\n\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.targetShadowDOM = true;\n r.shadowDOMOptions = options;\n };\n\n return typeof targetOrOptions === 'function' ? deco(targetOrOptions) : deco;\n}\n\nexport function processAttributes(processor) {\n return function (t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.processAttributes = function (compiler, resources, node, attributes, elementInstruction) {\n try {\n processor(compiler, resources, node, attributes, elementInstruction);\n } catch (error) {\n LogManager.getLogger('templating').error(error);\n }\n };\n };\n}\n\nfunction doNotProcessContent() {\n return false;\n}\n\nexport function processContent(processor) {\n return function (t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.processContent = processor ? function (compiler, resources, node, instruction) {\n try {\n return processor(compiler, resources, node, instruction);\n } catch (error) {\n LogManager.getLogger('templating').error(error);\n return false;\n }\n } : doNotProcessContent;\n };\n}\n\nexport function containerless(target) {\n var deco = function deco(t) {\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\n r.containerless = true;\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function useViewStrategy(strategy) {\n return function (target) {\n metadata.define(ViewLocator.viewStrategyMetadataKey, strategy, target);\n };\n}\n\nexport function useView(path) {\n return useViewStrategy(new RelativeViewStrategy(path));\n}\n\nexport function inlineView(markup, dependencies, dependencyBaseUrl) {\n return useViewStrategy(new InlineViewStrategy(markup, dependencies, dependencyBaseUrl));\n}\n\nexport function noView(targetOrDependencies, dependencyBaseUrl) {\n var target = void 0;\n var dependencies = void 0;\n if (typeof targetOrDependencies === 'function') {\n target = targetOrDependencies;\n } else {\n dependencies = targetOrDependencies;\n target = undefined;\n }\n\n var deco = function deco(t) {\n metadata.define(ViewLocator.viewStrategyMetadataKey, new NoViewStrategy(dependencies, dependencyBaseUrl), t);\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function elementConfig(target) {\n var deco = function deco(t) {\n metadata.define(metadata.resource, new ElementConfigResource(), t);\n };\n\n return target ? deco(target) : deco;\n}\n\nexport function viewResources() {\n for (var _len = arguments.length, resources = Array(_len), _key = 0; _key < _len; _key++) {\n resources[_key] = arguments[_key];\n }\n\n return function (target) {\n metadata.define(ViewEngine.viewModelRequireMetadataKey, resources, target);\n };\n}\n\nexport var TemplatingEngine = (_dec11 = inject(Container, ModuleAnalyzer, ViewCompiler, CompositionEngine), _dec11(_class18 = function () {\n function TemplatingEngine(container, moduleAnalyzer, viewCompiler, compositionEngine) {\n \n\n this._container = container;\n this._moduleAnalyzer = moduleAnalyzer;\n this._viewCompiler = viewCompiler;\n this._compositionEngine = compositionEngine;\n container.registerInstance(Animator, Animator.instance = new Animator());\n }\n\n TemplatingEngine.prototype.configureAnimator = function configureAnimator(animator) {\n this._container.unregister(Animator);\n this._container.registerInstance(Animator, Animator.instance = animator);\n };\n\n TemplatingEngine.prototype.compose = function compose(context) {\n return this._compositionEngine.compose(context);\n };\n\n TemplatingEngine.prototype.enhance = function enhance(instruction) {\n if (instruction instanceof DOM.Element) {\n instruction = { element: instruction };\n }\n\n var compilerInstructions = {};\n var resources = instruction.resources || this._container.get(ViewResources);\n\n this._viewCompiler._compileNode(instruction.element, resources, compilerInstructions, instruction.element.parentNode, 'root', true);\n\n var factory = new ViewFactory(instruction.element, compilerInstructions, resources);\n var container = instruction.container || this._container.createChild();\n var view = factory.create(container, BehaviorInstruction.enhance());\n\n view.bind(instruction.bindingContext || {}, instruction.overrideContext);\n\n view.firstChild = view.lastChild = view.fragment;\n view.fragment = DOM.createDocumentFragment();\n view.attached();\n\n return view;\n };\n\n return TemplatingEngine;\n}()) || _class18);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating/dist/native-modules/aurelia-templating.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Popup = undefined;\n\nvar _dec, _class;\n\nvar _authUtilities = require('./auth-utilities');\n\nvar _baseConfig = require('./base-config');\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Popup = exports.Popup = (_dec = (0, _aureliaDependencyInjection.inject)(_baseConfig.BaseConfig), _dec(_class = function () {\n function Popup(config) {\n _classCallCheck(this, Popup);\n\n this.config = config.current;\n this.popupWindow = null;\n this.polling = null;\n this.url = '';\n }\n\n Popup.prototype.open = function open(url, windowName, options, redirectUri) {\n this.url = url;\n var optionsString = this.stringifyOptions(this.prepareOptions(options || {}));\n this.popupWindow = window.open(url, windowName, optionsString);\n if (this.popupWindow && this.popupWindow.focus) {\n this.popupWindow.focus();\n }\n\n return this;\n };\n\n Popup.prototype.eventListener = function eventListener(redirectUri) {\n var self = this;\n var promise = new Promise(function (resolve, reject) {\n self.popupWindow.addEventListener('loadstart', function (event) {\n if (event.url.indexOf(redirectUri) !== 0) {\n return;\n }\n\n var parser = document.createElement('a');\n parser.href = event.url;\n\n if (parser.search || parser.hash) {\n var queryParams = parser.search.substring(1).replace(/\\/$/, '');\n var hashParams = parser.hash.substring(1).replace(/\\/$/, '');\n var hash = (0, _authUtilities.parseQueryString)(hashParams);\n var qs = (0, _authUtilities.parseQueryString)(queryParams);\n\n (0, _authUtilities.extend)(qs, hash);\n\n if (qs.error) {\n reject({\n error: qs.error\n });\n } else {\n resolve(qs);\n }\n\n self.popupWindow.close();\n }\n });\n\n popupWindow.addEventListener('exit', function () {\n reject({\n data: 'Provider Popup was closed'\n });\n });\n\n popupWindow.addEventListener('loaderror', function () {\n deferred.reject({\n data: 'Authorization Failed'\n });\n });\n });\n return promise;\n };\n\n Popup.prototype.pollPopup = function pollPopup() {\n var _this = this;\n\n var self = this;\n var promise = new Promise(function (resolve, reject) {\n _this.polling = setInterval(function () {\n try {\n var documentOrigin = document.location.host;\n var popupWindowOrigin = self.popupWindow.location.host;\n\n if (popupWindowOrigin === documentOrigin && (self.popupWindow.location.search || self.popupWindow.location.hash)) {\n var queryParams = self.popupWindow.location.search.substring(1).replace(/\\/$/, '');\n var hashParams = self.popupWindow.location.hash.substring(1).replace(/[\\/$]/, '');\n var hash = (0, _authUtilities.parseQueryString)(hashParams);\n var qs = (0, _authUtilities.parseQueryString)(queryParams);\n\n (0, _authUtilities.extend)(qs, hash);\n\n if (qs.error) {\n reject({\n error: qs.error\n });\n } else {\n resolve(qs);\n }\n\n self.popupWindow.close();\n clearInterval(self.polling);\n }\n } catch (error) {}\n\n if (!self.popupWindow) {\n clearInterval(self.polling);\n reject({\n data: 'Provider Popup Blocked'\n });\n } else if (self.popupWindow.closed) {\n clearInterval(self.polling);\n reject({\n data: 'Problem poll popup'\n });\n }\n }, 35);\n });\n return promise;\n };\n\n Popup.prototype.prepareOptions = function prepareOptions(options) {\n var width = options.width || 500;\n var height = options.height || 500;\n return (0, _authUtilities.extend)({\n width: width,\n height: height,\n left: window.screenX + (window.outerWidth - width) / 2,\n top: window.screenY + (window.outerHeight - height) / 2.5\n }, options);\n };\n\n Popup.prototype.stringifyOptions = function stringifyOptions(options) {\n var parts = [];\n (0, _authUtilities.forEach)(options, function (value, key) {\n parts.push(key + '=' + value);\n });\n return parts.join(',');\n };\n\n return Popup;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/popup.js\n// module id = 20\n// module chunks = 0","\n\nfunction mi(name) {\n throw new Error('History must implement ' + name + '().');\n}\n\nexport var History = function () {\n function History() {\n \n }\n\n History.prototype.activate = function activate(options) {\n mi('activate');\n };\n\n History.prototype.deactivate = function deactivate() {\n mi('deactivate');\n };\n\n History.prototype.getAbsoluteRoot = function getAbsoluteRoot() {\n mi('getAbsoluteRoot');\n };\n\n History.prototype.navigate = function navigate(fragment, options) {\n mi('navigate');\n };\n\n History.prototype.navigateBack = function navigateBack() {\n mi('navigateBack');\n };\n\n History.prototype.setTitle = function setTitle(title) {\n mi('setTitle');\n };\n\n return History;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-history/dist/native-modules/aurelia-history.js\n// module id = 21\n// module chunks = 0","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments)).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t;\n return { next: verb(0), \"throw\": verb(1), \"return\": verb(2) };\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { DOM } from 'aurelia-pal';\nimport { Origin } from 'aurelia-metadata';\nimport { ViewEngine, ViewCompileInstruction } from 'aurelia-templating';\nimport { Container } from 'aurelia-dependency-injection';\nimport { _createCSSResource } from './hmr-css-resource';\nimport { traverseController } from './view-model-traverse-controller';\nimport { getElementsToRerender } from './view-traverse-controller';\nimport { rerenderMatchingSlotChildren, rerenderController } from './render-utils';\nvar UndefinedResourceModule = { id: null, mainResource: { metadata: {}, value: undefined } };\nexport function getAuElements() {\n return Array.from(DOM.querySelectorAll('.au-target'));\n}\nexport function getControllersWithClassInstances(oldPrototype) {\n // get visible elements to re-render:\n var auElements = getAuElements();\n /* NOTE: viewless components like blur-image do not have el.au.controller set */\n var controllersLists = auElements.map(function (el) { return el.au && Object.values(el.au) || []; });\n // list of unique controllers\n var controllers = Array.from(new Set((_a = []).concat.apply(_a, controllersLists)));\n var previouslyTraversed = new Set();\n var traversalInfo = (_b = []).concat.apply(_b, controllers.map(function (parentController) {\n return traverseController(oldPrototype, parentController, {\n previouslyTraversed: previouslyTraversed,\n parentController: parentController\n });\n }));\n return traversalInfo;\n var _a, _b;\n}\nvar HmrContext = (function () {\n function HmrContext(loader) {\n var _this = this;\n this.loader = loader;\n this.viewEngine = Container.instance.get(ViewEngine);\n this.moduleAnalyzerCache = this.viewEngine.moduleAnalyzer.cache;\n this.viewEngine.addResourcePlugin('.css', {\n fetch: function (moduleId) {\n return _a = {},\n _a[moduleId] = _createCSSResource(moduleId),\n _a;\n var _a;\n },\n hot: function (moduleId) {\n _this.reloadCss(moduleId);\n }\n });\n }\n /**\n * Handles ViewModel changes\n */\n HmrContext.prototype.handleModuleChange = function (moduleId, hot) {\n return __awaiter(this, void 0, void 0, function () {\n var previousModule, newModule, oldResourceModule, newResourceModule, origin, normalizedId, moduleMember, keys;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n previousModule = this.loader.moduleRegistry[moduleId];\n if (!previousModule) {\n return [2 /*return*/];\n }\n console.log(\"Running default HMR for \" + moduleId);\n // reload fresh module:\n delete this.loader.moduleRegistry[moduleId];\n return [4 /*yield*/, this.loader.loadModule(moduleId)];\n case 1:\n newModule = _a.sent();\n oldResourceModule = this.moduleAnalyzerCache[moduleId];\n if (oldResourceModule) {\n origin = Origin.get(newModule);\n normalizedId = origin.moduleId;\n moduleMember = origin.moduleMember;\n newResourceModule = this.viewEngine.moduleAnalyzer.analyze(normalizedId, newModule, moduleMember);\n if (!newResourceModule.mainResource && !newResourceModule.resources) {\n hot.decline(moduleId);\n return [2 /*return*/];\n }\n if (newResourceModule.mainResource) {\n newResourceModule.initialize(this.viewEngine.container);\n }\n // monkey patch old resource module:\n // would be better to simply replace it everywhere\n Object.assign(oldResourceModule, newResourceModule);\n }\n // TODO: kinda CompositionEngine.ensureViewModel()\n // TODO: to replace - use closest container: childContainer.get(viewModelResource.value);\n if (previousModule instanceof Object) {\n keys = Object.keys(previousModule);\n keys.forEach(function (key) {\n var newExportValue = newModule[key];\n if (!newExportValue) {\n return;\n }\n var previousExportValue = previousModule[key];\n var type = typeof previousExportValue;\n if (type === 'function' || type === 'object') {\n // these are the only exports we can reliably replace (classes, objects and functions)\n console.log(\"Analyzing \" + moduleId + \"->\" + key);\n var traversalInfo = getControllersWithClassInstances(previousExportValue);\n // console.log(traversalInfo);\n traversalInfo.forEach(function (info) {\n if (info.propertyInParent === undefined) {\n return;\n }\n if (info.instance) {\n var entry = info.immediateParent[info.propertyInParent];\n var newPrototype = newExportValue.prototype;\n if (newPrototype) {\n Object.setPrototypeOf(entry, newPrototype);\n }\n else {\n console.warn(\"No new prototype for \" + moduleId + \"->\" + key);\n }\n if (info.relatedView && info.relatedView.isBound) {\n var _a = info.relatedView, bindingContext = _a.bindingContext, overrideContext = _a.overrideContext;\n info.relatedView.unbind();\n info.relatedView.bind(bindingContext, overrideContext);\n }\n }\n else {\n console.log(\"Replacing\", info.immediateParent[info.propertyInParent], \"with\", newExportValue);\n info.immediateParent[info.propertyInParent] = newExportValue;\n }\n });\n }\n });\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Handles Hot Reloading when a View changes\n *\n * TODO: make a queue of changes and handle after few ms multiple TOGETHER\n */\n HmrContext.prototype.handleViewChange = function (moduleId) {\n return __awaiter(this, void 0, void 0, function () {\n var templateModuleId, entry, originalFactory, _a, mainResource, associatedModuleId, htmlBehaviorResource, targetClass, compileInstruction, newViewFactory, elementsToReRender, factoryToRenderWith;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n templateModuleId = this.loader.applyPluginToUrl(moduleId, 'template-registry-entry');\n console.log(\"Handling HMR for \" + moduleId);\n entry = this.loader.getOrCreateTemplateRegistryEntry(moduleId);\n // delete it, and the module from caches:\n delete this.loader.templateRegistry[moduleId];\n delete this.loader.moduleRegistry[moduleId];\n delete this.loader.moduleRegistry[templateModuleId];\n originalFactory = entry.factory;\n // just to be safe, lets patch up the old ViewFactory\n if (!originalFactory) {\n console.error(\"Something's gone wrong, no original ViewFactory?!\");\n return [2 /*return*/];\n }\n _a = this.getResourceModuleByTemplate(originalFactory.template), mainResource = _a.mainResource, associatedModuleId = _a.id;\n htmlBehaviorResource = mainResource.metadata, targetClass = mainResource.value;\n if (entry.factory !== htmlBehaviorResource.viewFactory) {\n console.info(\"Different origin factories\", entry.factory, htmlBehaviorResource.viewFactory);\n }\n compileInstruction = new ViewCompileInstruction(htmlBehaviorResource.targetShadowDOM, true);\n compileInstruction.associatedModuleId = associatedModuleId;\n return [4 /*yield*/, this.viewEngine.loadViewFactory(moduleId, compileInstruction, null, targetClass)];\n case 1:\n newViewFactory = (_b.sent());\n // TODO: keep track of hidden Views, e.g. \n // using beforeBind or mutation-observers https://dev.opera.com/articles/mutation-observers-tutorial/\n // NOTES:\n // the document-fragment in the newViewFactory has different numbers for the same resources:\n // newViewFactory.instructions -- have different numbers than originalFactory\n // newViewFactory.resources.elements -- contains the resources of children but not the SELF HtmlBehaviorResource\n // monkey-patch the template just in case references to it are lying still around somewhere:\n originalFactory.template = newViewFactory.template;\n originalFactory.instructions = newViewFactory.instructions;\n originalFactory.resources = newViewFactory.resources;\n elementsToReRender = getElementsToRerender(originalFactory.template);\n factoryToRenderWith = newViewFactory;\n // const factoryToRenderWith = originalFactory;\n elementsToReRender.slots.forEach(function (slot) { return rerenderMatchingSlotChildren(slot, factoryToRenderWith, originalFactory.template); });\n elementsToReRender.viewControllers.forEach(function (e) { return rerenderController(e, 'view', factoryToRenderWith); });\n elementsToReRender.scopeControllers.forEach(function (e) { return rerenderController(e, 'scope', factoryToRenderWith); });\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * handles hot-reloading CSS modules\n */\n HmrContext.prototype.reloadCss = function (moduleId) {\n if (!(moduleId in this.loader.moduleRegistry)) {\n return; // first load\n }\n var cssPluginModuleId = this.loader.applyPluginToUrl(moduleId, 'css-resource-plugin');\n console.log(\"Handling HMR for \" + moduleId);\n delete this.loader.moduleRegistry[moduleId];\n delete this.loader.moduleRegistry[cssPluginModuleId];\n var analyzedModule = this.moduleAnalyzerCache[\"css-resource-plugin!\" + moduleId];\n if (!analyzedModule.resources || !analyzedModule.resources.length) {\n console.error(\"Something's wrong, no resources for this CSS file \" + moduleId);\n return;\n }\n var mainResource = analyzedModule.resources[0];\n var cssResource = mainResource.metadata;\n if (cssResource._scoped && cssResource._scoped.injectedElements.length) {\n console.error(\"Hot Reloading scopedCSS is not yet supported!\");\n return;\n }\n if (cssResource.injectedElement) {\n cssResource.injectedElement.remove();\n }\n // reload resource\n cssResource.load(Container.instance);\n };\n HmrContext.prototype.getResourceModuleByTemplate = function (template) {\n // find the related ResourceModule (if any)\n var relatedResourceModule = Object.values(this.moduleAnalyzerCache).find(function (resourceModule) {\n return resourceModule.mainResource &&\n resourceModule.mainResource.metadata &&\n resourceModule.mainResource.metadata.viewFactory &&\n resourceModule.mainResource.metadata.viewFactory.template === template;\n });\n return relatedResourceModule || UndefinedResourceModule;\n };\n HmrContext.prototype.getResourceModuleById = function (moduleId) {\n return moduleId in this.moduleAnalyzerCache ? this.moduleAnalyzerCache[moduleId] : UndefinedResourceModule;\n };\n return HmrContext;\n}());\nexport { HmrContext };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-hot-module-reload/dist/native-modules/aurelia-hot-module-reload.js\n// module id = 22\n// module chunks = 0","\n\nexport var AbstractRepeater = function () {\n function AbstractRepeater(options) {\n \n\n Object.assign(this, {\n local: 'items',\n viewsRequireLifecycle: true\n }, options);\n }\n\n AbstractRepeater.prototype.viewCount = function viewCount() {\n throw new Error('subclass must implement `viewCount`');\n };\n\n AbstractRepeater.prototype.views = function views() {\n throw new Error('subclass must implement `views`');\n };\n\n AbstractRepeater.prototype.view = function view(index) {\n throw new Error('subclass must implement `view`');\n };\n\n AbstractRepeater.prototype.matcher = function matcher() {\n throw new Error('subclass must implement `matcher`');\n };\n\n AbstractRepeater.prototype.addView = function addView(bindingContext, overrideContext) {\n throw new Error('subclass must implement `addView`');\n };\n\n AbstractRepeater.prototype.insertView = function insertView(index, bindingContext, overrideContext) {\n throw new Error('subclass must implement `insertView`');\n };\n\n AbstractRepeater.prototype.moveView = function moveView(sourceIndex, targetIndex) {\n throw new Error('subclass must implement `moveView`');\n };\n\n AbstractRepeater.prototype.removeAllViews = function removeAllViews(returnToCache, skipAnimation) {\n throw new Error('subclass must implement `removeAllViews`');\n };\n\n AbstractRepeater.prototype.removeViews = function removeViews(viewsToRemove, returnToCache, skipAnimation) {\n throw new Error('subclass must implement `removeView`');\n };\n\n AbstractRepeater.prototype.removeView = function removeView(index, returnToCache, skipAnimation) {\n throw new Error('subclass must implement `removeView`');\n };\n\n AbstractRepeater.prototype.updateBindings = function updateBindings(view) {\n throw new Error('subclass must implement `updateBindings`');\n };\n\n return AbstractRepeater;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/abstract-repeater.js\n// module id = 23\n// module chunks = 0","\nexport var lifecycleOptionalBehaviors = ['focus', 'if', 'repeat', 'show', 'with'];\n\nfunction behaviorRequiresLifecycle(instruction) {\n var t = instruction.type;\n var name = t.elementName !== null ? t.elementName : t.attributeName;\n return lifecycleOptionalBehaviors.indexOf(name) === -1 && (t.handlesAttached || t.handlesBind || t.handlesCreated || t.handlesDetached || t.handlesUnbind) || t.viewFactory && viewsRequireLifecycle(t.viewFactory) || instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\n}\n\nfunction targetRequiresLifecycle(instruction) {\n var behaviors = instruction.behaviorInstructions;\n if (behaviors) {\n var i = behaviors.length;\n while (i--) {\n if (behaviorRequiresLifecycle(behaviors[i])) {\n return true;\n }\n }\n }\n\n return instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory);\n}\n\nexport function viewsRequireLifecycle(viewFactory) {\n if ('_viewsRequireLifecycle' in viewFactory) {\n return viewFactory._viewsRequireLifecycle;\n }\n\n viewFactory._viewsRequireLifecycle = false;\n\n if (viewFactory.viewFactory) {\n viewFactory._viewsRequireLifecycle = viewsRequireLifecycle(viewFactory.viewFactory);\n return viewFactory._viewsRequireLifecycle;\n }\n\n if (viewFactory.template.querySelector('.au-animate')) {\n viewFactory._viewsRequireLifecycle = true;\n return true;\n }\n\n for (var id in viewFactory.instructions) {\n if (targetRequiresLifecycle(viewFactory.instructions[id])) {\n viewFactory._viewsRequireLifecycle = true;\n return true;\n }\n }\n\n viewFactory._viewsRequireLifecycle = false;\n return false;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/analyze-view-factory.js\n// module id = 24\n// module chunks = 0","\n\nimport { createFullOverrideContext, updateOverrideContexts, updateOverrideContext, indexOf } from './repeat-utilities';\nimport { mergeSplice } from 'aurelia-binding';\n\nexport var ArrayRepeatStrategy = function () {\n function ArrayRepeatStrategy() {\n \n }\n\n ArrayRepeatStrategy.prototype.getCollectionObserver = function getCollectionObserver(observerLocator, items) {\n return observerLocator.getArrayObserver(items);\n };\n\n ArrayRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat, items) {\n var _this = this;\n\n var itemsLength = items.length;\n\n if (!items || itemsLength === 0) {\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n return;\n }\n\n var children = repeat.views();\n var viewsLength = children.length;\n\n if (viewsLength === 0) {\n this._standardProcessInstanceChanged(repeat, items);\n return;\n }\n\n if (repeat.viewsRequireLifecycle) {\n (function () {\n var childrenSnapshot = children.slice(0);\n var itemNameInBindingContext = repeat.local;\n var matcher = repeat.matcher();\n\n var itemsPreviouslyInViews = [];\n var viewsToRemove = [];\n\n for (var index = 0; index < viewsLength; index++) {\n var view = childrenSnapshot[index];\n var oldItem = view.bindingContext[itemNameInBindingContext];\n\n if (indexOf(items, oldItem, matcher) === -1) {\n viewsToRemove.push(view);\n } else {\n itemsPreviouslyInViews.push(oldItem);\n }\n }\n\n var updateViews = void 0;\n var removePromise = void 0;\n\n if (itemsPreviouslyInViews.length > 0) {\n removePromise = repeat.removeViews(viewsToRemove, true, !repeat.viewsRequireLifecycle);\n updateViews = function updateViews() {\n for (var _index = 0; _index < itemsLength; _index++) {\n var item = items[_index];\n var indexOfView = indexOf(itemsPreviouslyInViews, item, matcher, _index);\n var _view = void 0;\n\n if (indexOfView === -1) {\n var overrideContext = createFullOverrideContext(repeat, items[_index], _index, itemsLength);\n repeat.insertView(_index, overrideContext.bindingContext, overrideContext);\n\n itemsPreviouslyInViews.splice(_index, 0, undefined);\n } else if (indexOfView === _index) {\n _view = children[indexOfView];\n itemsPreviouslyInViews[indexOfView] = undefined;\n } else {\n _view = children[indexOfView];\n repeat.moveView(indexOfView, _index);\n itemsPreviouslyInViews.splice(indexOfView, 1);\n itemsPreviouslyInViews.splice(_index, 0, undefined);\n }\n\n if (_view) {\n updateOverrideContext(_view.overrideContext, _index, itemsLength);\n }\n }\n\n _this._inPlaceProcessItems(repeat, items);\n };\n } else {\n removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n updateViews = function updateViews() {\n return _this._standardProcessInstanceChanged(repeat, items);\n };\n }\n\n if (removePromise instanceof Promise) {\n removePromise.then(updateViews);\n } else {\n updateViews();\n }\n })();\n } else {\n this._inPlaceProcessItems(repeat, items);\n }\n };\n\n ArrayRepeatStrategy.prototype._standardProcessInstanceChanged = function _standardProcessInstanceChanged(repeat, items) {\n for (var i = 0, ii = items.length; i < ii; i++) {\n var overrideContext = createFullOverrideContext(repeat, items[i], i, ii);\n repeat.addView(overrideContext.bindingContext, overrideContext);\n }\n };\n\n ArrayRepeatStrategy.prototype._inPlaceProcessItems = function _inPlaceProcessItems(repeat, items) {\n var itemsLength = items.length;\n var viewsLength = repeat.viewCount();\n\n while (viewsLength > itemsLength) {\n viewsLength--;\n repeat.removeView(viewsLength, true, !repeat.viewsRequireLifecycle);\n }\n\n var local = repeat.local;\n\n for (var i = 0; i < viewsLength; i++) {\n var view = repeat.view(i);\n var last = i === itemsLength - 1;\n var middle = i !== 0 && !last;\n\n if (view.bindingContext[local] === items[i] && view.overrideContext.$middle === middle && view.overrideContext.$last === last) {\n continue;\n }\n\n view.bindingContext[local] = items[i];\n view.overrideContext.$middle = middle;\n view.overrideContext.$last = last;\n repeat.updateBindings(view);\n }\n\n for (var _i = viewsLength; _i < itemsLength; _i++) {\n var overrideContext = createFullOverrideContext(repeat, items[_i], _i, itemsLength);\n repeat.addView(overrideContext.bindingContext, overrideContext);\n }\n };\n\n ArrayRepeatStrategy.prototype.instanceMutated = function instanceMutated(repeat, array, splices) {\n var _this2 = this;\n\n if (repeat.__queuedSplices) {\n for (var i = 0, ii = splices.length; i < ii; ++i) {\n var _splices$i = splices[i],\n index = _splices$i.index,\n removed = _splices$i.removed,\n addedCount = _splices$i.addedCount;\n\n mergeSplice(repeat.__queuedSplices, index, removed, addedCount);\n }\n\n repeat.__array = array.slice(0);\n return;\n }\n\n var maybePromise = this._runSplices(repeat, array.slice(0), splices);\n if (maybePromise instanceof Promise) {\n (function () {\n var queuedSplices = repeat.__queuedSplices = [];\n\n var runQueuedSplices = function runQueuedSplices() {\n if (!queuedSplices.length) {\n repeat.__queuedSplices = undefined;\n repeat.__array = undefined;\n return;\n }\n\n var nextPromise = _this2._runSplices(repeat, repeat.__array, queuedSplices) || Promise.resolve();\n queuedSplices = repeat.__queuedSplices = [];\n nextPromise.then(runQueuedSplices);\n };\n\n maybePromise.then(runQueuedSplices);\n })();\n }\n };\n\n ArrayRepeatStrategy.prototype._runSplices = function _runSplices(repeat, array, splices) {\n var _this3 = this;\n\n var removeDelta = 0;\n var rmPromises = [];\n\n for (var i = 0, ii = splices.length; i < ii; ++i) {\n var splice = splices[i];\n var removed = splice.removed;\n\n for (var j = 0, jj = removed.length; j < jj; ++j) {\n var viewOrPromise = repeat.removeView(splice.index + removeDelta + rmPromises.length, true);\n if (viewOrPromise instanceof Promise) {\n rmPromises.push(viewOrPromise);\n }\n }\n removeDelta -= splice.addedCount;\n }\n\n if (rmPromises.length > 0) {\n return Promise.all(rmPromises).then(function () {\n var spliceIndexLow = _this3._handleAddedSplices(repeat, array, splices);\n updateOverrideContexts(repeat.views(), spliceIndexLow);\n });\n }\n\n var spliceIndexLow = this._handleAddedSplices(repeat, array, splices);\n updateOverrideContexts(repeat.views(), spliceIndexLow);\n\n return undefined;\n };\n\n ArrayRepeatStrategy.prototype._handleAddedSplices = function _handleAddedSplices(repeat, array, splices) {\n var spliceIndex = void 0;\n var spliceIndexLow = void 0;\n var arrayLength = array.length;\n for (var i = 0, ii = splices.length; i < ii; ++i) {\n var splice = splices[i];\n var addIndex = spliceIndex = splice.index;\n var end = splice.index + splice.addedCount;\n\n if (typeof spliceIndexLow === 'undefined' || spliceIndexLow === null || spliceIndexLow > splice.index) {\n spliceIndexLow = spliceIndex;\n }\n\n for (; addIndex < end; ++addIndex) {\n var overrideContext = createFullOverrideContext(repeat, array[addIndex], addIndex, arrayLength);\n repeat.insertView(addIndex, overrideContext.bindingContext, overrideContext);\n }\n }\n\n return spliceIndexLow;\n };\n\n return ArrayRepeatStrategy;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/array-repeat-strategy.js\n// module id = 25\n// module chunks = 0","\n\nimport { sourceContext } from 'aurelia-binding';\n\nexport var BindingSignaler = function () {\n function BindingSignaler() {\n \n\n this.signals = {};\n }\n\n BindingSignaler.prototype.signal = function signal(name) {\n var bindings = this.signals[name];\n if (!bindings) {\n return;\n }\n var i = bindings.length;\n while (i--) {\n bindings[i].call(sourceContext);\n }\n };\n\n return BindingSignaler;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/binding-signaler.js\n// module id = 26\n// module chunks = 0","\n\nvar SCRIPT_REGEX = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi;\n\nexport var HTMLSanitizer = function () {\n function HTMLSanitizer() {\n \n }\n\n HTMLSanitizer.prototype.sanitize = function sanitize(input) {\n return input.replace(SCRIPT_REGEX, '');\n };\n\n return HTMLSanitizer;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/html-sanitizer.js\n// module id = 27\n// module chunks = 0","\n\nimport { createFullOverrideContext, updateOverrideContexts } from './repeat-utilities';\n\nexport var MapRepeatStrategy = function () {\n function MapRepeatStrategy() {\n \n }\n\n MapRepeatStrategy.prototype.getCollectionObserver = function getCollectionObserver(observerLocator, items) {\n return observerLocator.getMapObserver(items);\n };\n\n MapRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat, items) {\n var _this = this;\n\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n if (removePromise instanceof Promise) {\n removePromise.then(function () {\n return _this._standardProcessItems(repeat, items);\n });\n return;\n }\n this._standardProcessItems(repeat, items);\n };\n\n MapRepeatStrategy.prototype._standardProcessItems = function _standardProcessItems(repeat, items) {\n var index = 0;\n var overrideContext = void 0;\n\n items.forEach(function (value, key) {\n overrideContext = createFullOverrideContext(repeat, value, index, items.size, key);\n repeat.addView(overrideContext.bindingContext, overrideContext);\n ++index;\n });\n };\n\n MapRepeatStrategy.prototype.instanceMutated = function instanceMutated(repeat, map, records) {\n var key = void 0;\n var i = void 0;\n var ii = void 0;\n var overrideContext = void 0;\n var removeIndex = void 0;\n var record = void 0;\n var rmPromises = [];\n var viewOrPromise = void 0;\n\n for (i = 0, ii = records.length; i < ii; ++i) {\n record = records[i];\n key = record.key;\n switch (record.type) {\n case 'update':\n removeIndex = this._getViewIndexByKey(repeat, key);\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\n if (viewOrPromise instanceof Promise) {\n rmPromises.push(viewOrPromise);\n }\n overrideContext = createFullOverrideContext(repeat, map.get(key), removeIndex, map.size, key);\n repeat.insertView(removeIndex, overrideContext.bindingContext, overrideContext);\n break;\n case 'add':\n overrideContext = createFullOverrideContext(repeat, map.get(key), map.size - 1, map.size, key);\n repeat.insertView(map.size - 1, overrideContext.bindingContext, overrideContext);\n break;\n case 'delete':\n if (record.oldValue === undefined) {\n return;\n }\n removeIndex = this._getViewIndexByKey(repeat, key);\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\n if (viewOrPromise instanceof Promise) {\n rmPromises.push(viewOrPromise);\n }\n break;\n case 'clear':\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n break;\n default:\n continue;\n }\n }\n\n if (rmPromises.length > 0) {\n Promise.all(rmPromises).then(function () {\n updateOverrideContexts(repeat.views(), 0);\n });\n } else {\n updateOverrideContexts(repeat.views(), 0);\n }\n };\n\n MapRepeatStrategy.prototype._getViewIndexByKey = function _getViewIndexByKey(repeat, key) {\n var i = void 0;\n var ii = void 0;\n var child = void 0;\n\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\n child = repeat.view(i);\n if (child.bindingContext[repeat.key] === key) {\n return i;\n }\n }\n\n return undefined;\n };\n\n return MapRepeatStrategy;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/map-repeat-strategy.js\n// module id = 28\n// module chunks = 0","\n\nexport var NullRepeatStrategy = function () {\n function NullRepeatStrategy() {\n \n }\n\n NullRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat, items) {\n repeat.removeAllViews(true);\n };\n\n NullRepeatStrategy.prototype.getCollectionObserver = function getCollectionObserver(observerLocator, items) {};\n\n return NullRepeatStrategy;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/null-repeat-strategy.js\n// module id = 29\n// module chunks = 0","export { _getArrayObserver as getArrayObserver };\nexport { _getMapObserver as getMapObserver };\nexport { _getSetObserver as getSetObserver };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dec, _dec2, _class, _dec3, _class2, _dec4, _class3, _dec5, _class5, _dec6, _class7, _dec7, _class8, _dec8, _class9, _dec9, _class10, _class12, _temp, _dec10, _class13, _class14, _temp2;\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nimport * as LogManager from 'aurelia-logging';\nimport { PLATFORM, DOM } from 'aurelia-pal';\nimport { TaskQueue } from 'aurelia-task-queue';\nimport { metadata } from 'aurelia-metadata';\n\nvar map = Object.create(null);\n\nexport function camelCase(name) {\n if (name in map) {\n return map[name];\n }\n var result = name.charAt(0).toLowerCase() + name.slice(1).replace(/[_.-](\\w|$)/g, function (_, x) {\n return x.toUpperCase();\n });\n map[name] = result;\n return result;\n}\n\nexport function createOverrideContext(bindingContext, parentOverrideContext) {\n return {\n bindingContext: bindingContext,\n parentOverrideContext: parentOverrideContext || null\n };\n}\n\nexport function getContextFor(name, scope, ancestor) {\n var oc = scope.overrideContext;\n\n if (ancestor) {\n while (ancestor && oc) {\n ancestor--;\n oc = oc.parentOverrideContext;\n }\n if (ancestor || !oc) {\n return undefined;\n }\n return name in oc ? oc : oc.bindingContext;\n }\n\n while (oc && !(name in oc) && !(oc.bindingContext && name in oc.bindingContext)) {\n oc = oc.parentOverrideContext;\n }\n if (oc) {\n return name in oc ? oc : oc.bindingContext;\n }\n\n return scope.bindingContext || scope.overrideContext;\n}\n\nexport function createScopeForTest(bindingContext, parentBindingContext) {\n if (parentBindingContext) {\n return {\n bindingContext: bindingContext,\n overrideContext: createOverrideContext(bindingContext, createOverrideContext(parentBindingContext))\n };\n }\n return {\n bindingContext: bindingContext,\n overrideContext: createOverrideContext(bindingContext)\n };\n}\n\nexport var sourceContext = 'Binding:source';\nvar slotNames = [];\nvar versionSlotNames = [];\n\nfor (var i = 0; i < 100; i++) {\n slotNames.push('_observer' + i);\n versionSlotNames.push('_observerVersion' + i);\n}\n\nfunction addObserver(observer) {\n var observerSlots = this._observerSlots === undefined ? 0 : this._observerSlots;\n var i = observerSlots;\n while (i-- && this[slotNames[i]] !== observer) {}\n\n if (i === -1) {\n i = 0;\n while (this[slotNames[i]]) {\n i++;\n }\n this[slotNames[i]] = observer;\n observer.subscribe(sourceContext, this);\n\n if (i === observerSlots) {\n this._observerSlots = i + 1;\n }\n }\n\n if (this._version === undefined) {\n this._version = 0;\n }\n this[versionSlotNames[i]] = this._version;\n}\n\nfunction observeProperty(obj, propertyName) {\n var observer = this.observerLocator.getObserver(obj, propertyName);\n addObserver.call(this, observer);\n}\n\nfunction observeArray(array) {\n var observer = this.observerLocator.getArrayObserver(array);\n addObserver.call(this, observer);\n}\n\nfunction unobserve(all) {\n var i = this._observerSlots;\n while (i--) {\n if (all || this[versionSlotNames[i]] !== this._version) {\n var observer = this[slotNames[i]];\n this[slotNames[i]] = null;\n if (observer) {\n observer.unsubscribe(sourceContext, this);\n }\n }\n }\n}\n\nexport function connectable() {\n return function (target) {\n target.prototype.observeProperty = observeProperty;\n target.prototype.observeArray = observeArray;\n target.prototype.unobserve = unobserve;\n target.prototype.addObserver = addObserver;\n };\n}\n\nvar queue = [];\nvar queued = {};\nvar nextId = 0;\nvar minimumImmediate = 100;\nvar frameBudget = 15;\n\nvar isFlushRequested = false;\nvar immediate = 0;\n\nfunction flush(animationFrameStart) {\n var length = queue.length;\n var i = 0;\n while (i < length) {\n var binding = queue[i];\n queued[binding.__connectQueueId] = false;\n binding.connect(true);\n i++;\n\n if (i % 100 === 0 && PLATFORM.performance.now() - animationFrameStart > frameBudget) {\n break;\n }\n }\n queue.splice(0, i);\n\n if (queue.length) {\n PLATFORM.requestAnimationFrame(flush);\n } else {\n isFlushRequested = false;\n immediate = 0;\n }\n}\n\nexport function enqueueBindingConnect(binding) {\n if (immediate < minimumImmediate) {\n immediate++;\n binding.connect(false);\n } else {\n var id = binding.__connectQueueId;\n if (id === undefined) {\n id = nextId;\n nextId++;\n binding.__connectQueueId = id;\n }\n\n if (!queued[id]) {\n queue.push(binding);\n queued[id] = true;\n }\n }\n if (!isFlushRequested) {\n isFlushRequested = true;\n PLATFORM.requestAnimationFrame(flush);\n }\n}\n\nfunction addSubscriber(context, callable) {\n if (this.hasSubscriber(context, callable)) {\n return false;\n }\n if (!this._context0) {\n this._context0 = context;\n this._callable0 = callable;\n return true;\n }\n if (!this._context1) {\n this._context1 = context;\n this._callable1 = callable;\n return true;\n }\n if (!this._context2) {\n this._context2 = context;\n this._callable2 = callable;\n return true;\n }\n if (!this._contextsRest) {\n this._contextsRest = [context];\n this._callablesRest = [callable];\n return true;\n }\n this._contextsRest.push(context);\n this._callablesRest.push(callable);\n return true;\n}\n\nfunction removeSubscriber(context, callable) {\n if (this._context0 === context && this._callable0 === callable) {\n this._context0 = null;\n this._callable0 = null;\n return true;\n }\n if (this._context1 === context && this._callable1 === callable) {\n this._context1 = null;\n this._callable1 = null;\n return true;\n }\n if (this._context2 === context && this._callable2 === callable) {\n this._context2 = null;\n this._callable2 = null;\n return true;\n }\n var rest = this._contextsRest;\n var index = void 0;\n if (!rest || !rest.length || (index = rest.indexOf(context)) === -1 || this._callablesRest[index] !== callable) {\n return false;\n }\n rest.splice(index, 1);\n this._callablesRest.splice(index, 1);\n return true;\n}\n\nvar arrayPool1 = [];\nvar arrayPool2 = [];\nvar poolUtilization = [];\n\nfunction callSubscribers(newValue, oldValue) {\n var context0 = this._context0;\n var callable0 = this._callable0;\n var context1 = this._context1;\n var callable1 = this._callable1;\n var context2 = this._context2;\n var callable2 = this._callable2;\n var length = this._contextsRest ? this._contextsRest.length : 0;\n var contextsRest = void 0;\n var callablesRest = void 0;\n var poolIndex = void 0;\n var i = void 0;\n if (length) {\n poolIndex = poolUtilization.length;\n while (poolIndex-- && poolUtilization[poolIndex]) {}\n if (poolIndex < 0) {\n poolIndex = poolUtilization.length;\n contextsRest = [];\n callablesRest = [];\n poolUtilization.push(true);\n arrayPool1.push(contextsRest);\n arrayPool2.push(callablesRest);\n } else {\n poolUtilization[poolIndex] = true;\n contextsRest = arrayPool1[poolIndex];\n callablesRest = arrayPool2[poolIndex];\n }\n\n i = length;\n while (i--) {\n contextsRest[i] = this._contextsRest[i];\n callablesRest[i] = this._callablesRest[i];\n }\n }\n\n if (context0) {\n if (callable0) {\n callable0.call(context0, newValue, oldValue);\n } else {\n context0(newValue, oldValue);\n }\n }\n if (context1) {\n if (callable1) {\n callable1.call(context1, newValue, oldValue);\n } else {\n context1(newValue, oldValue);\n }\n }\n if (context2) {\n if (callable2) {\n callable2.call(context2, newValue, oldValue);\n } else {\n context2(newValue, oldValue);\n }\n }\n if (length) {\n for (i = 0; i < length; i++) {\n var callable = callablesRest[i];\n var context = contextsRest[i];\n if (callable) {\n callable.call(context, newValue, oldValue);\n } else {\n context(newValue, oldValue);\n }\n contextsRest[i] = null;\n callablesRest[i] = null;\n }\n poolUtilization[poolIndex] = false;\n }\n}\n\nfunction hasSubscribers() {\n return !!(this._context0 || this._context1 || this._context2 || this._contextsRest && this._contextsRest.length);\n}\n\nfunction hasSubscriber(context, callable) {\n var has = this._context0 === context && this._callable0 === callable || this._context1 === context && this._callable1 === callable || this._context2 === context && this._callable2 === callable;\n if (has) {\n return true;\n }\n var index = void 0;\n var contexts = this._contextsRest;\n if (!contexts || (index = contexts.length) === 0) {\n return false;\n }\n var callables = this._callablesRest;\n while (index--) {\n if (contexts[index] === context && callables[index] === callable) {\n return true;\n }\n }\n return false;\n}\n\nexport function subscriberCollection() {\n return function (target) {\n target.prototype.addSubscriber = addSubscriber;\n target.prototype.removeSubscriber = removeSubscriber;\n target.prototype.callSubscribers = callSubscribers;\n target.prototype.hasSubscribers = hasSubscribers;\n target.prototype.hasSubscriber = hasSubscriber;\n };\n}\n\nexport var ExpressionObserver = (_dec = connectable(), _dec2 = subscriberCollection(), _dec(_class = _dec2(_class = function () {\n function ExpressionObserver(scope, expression, observerLocator, lookupFunctions) {\n \n\n this.scope = scope;\n this.expression = expression;\n this.observerLocator = observerLocator;\n this.lookupFunctions = lookupFunctions;\n }\n\n ExpressionObserver.prototype.getValue = function getValue() {\n return this.expression.evaluate(this.scope, this.lookupFunctions);\n };\n\n ExpressionObserver.prototype.setValue = function setValue(newValue) {\n this.expression.assign(this.scope, newValue);\n };\n\n ExpressionObserver.prototype.subscribe = function subscribe(context, callable) {\n var _this = this;\n\n if (!this.hasSubscribers()) {\n this.oldValue = this.expression.evaluate(this.scope, this.lookupFunctions);\n this.expression.connect(this, this.scope);\n }\n this.addSubscriber(context, callable);\n if (arguments.length === 1 && context instanceof Function) {\n return {\n dispose: function dispose() {\n _this.unsubscribe(context, callable);\n }\n };\n }\n };\n\n ExpressionObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n if (this.removeSubscriber(context, callable) && !this.hasSubscribers()) {\n this.unobserve(true);\n this.oldValue = undefined;\n }\n };\n\n ExpressionObserver.prototype.call = function call() {\n var newValue = this.expression.evaluate(this.scope, this.lookupFunctions);\n var oldValue = this.oldValue;\n if (newValue !== oldValue) {\n this.oldValue = newValue;\n this.callSubscribers(newValue, oldValue);\n }\n this._version++;\n this.expression.connect(this, this.scope);\n this.unobserve(false);\n };\n\n return ExpressionObserver;\n}()) || _class) || _class);\n\nfunction isIndex(s) {\n return +s === s >>> 0;\n}\n\nfunction toNumber(s) {\n return +s;\n}\n\nfunction newSplice(index, removed, addedCount) {\n return {\n index: index,\n removed: removed,\n addedCount: addedCount\n };\n}\n\nvar EDIT_LEAVE = 0;\nvar EDIT_UPDATE = 1;\nvar EDIT_ADD = 2;\nvar EDIT_DELETE = 3;\n\nfunction ArraySplice() {}\n\nArraySplice.prototype = {\n calcEditDistances: function calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd) {\n var rowCount = oldEnd - oldStart + 1;\n var columnCount = currentEnd - currentStart + 1;\n var distances = new Array(rowCount);\n var north = void 0;\n var west = void 0;\n\n for (var _i = 0; _i < rowCount; ++_i) {\n distances[_i] = new Array(columnCount);\n distances[_i][0] = _i;\n }\n\n for (var j = 0; j < columnCount; ++j) {\n distances[0][j] = j;\n }\n\n for (var _i2 = 1; _i2 < rowCount; ++_i2) {\n for (var _j = 1; _j < columnCount; ++_j) {\n if (this.equals(current[currentStart + _j - 1], old[oldStart + _i2 - 1])) {\n distances[_i2][_j] = distances[_i2 - 1][_j - 1];\n } else {\n north = distances[_i2 - 1][_j] + 1;\n west = distances[_i2][_j - 1] + 1;\n distances[_i2][_j] = north < west ? north : west;\n }\n }\n }\n\n return distances;\n },\n\n spliceOperationsFromEditDistances: function spliceOperationsFromEditDistances(distances) {\n var i = distances.length - 1;\n var j = distances[0].length - 1;\n var current = distances[i][j];\n var edits = [];\n while (i > 0 || j > 0) {\n if (i === 0) {\n edits.push(EDIT_ADD);\n j--;\n continue;\n }\n if (j === 0) {\n edits.push(EDIT_DELETE);\n i--;\n continue;\n }\n var northWest = distances[i - 1][j - 1];\n var west = distances[i - 1][j];\n var north = distances[i][j - 1];\n\n var min = void 0;\n if (west < north) {\n min = west < northWest ? west : northWest;\n } else {\n min = north < northWest ? north : northWest;\n }\n\n if (min === northWest) {\n if (northWest === current) {\n edits.push(EDIT_LEAVE);\n } else {\n edits.push(EDIT_UPDATE);\n current = northWest;\n }\n i--;\n j--;\n } else if (min === west) {\n edits.push(EDIT_DELETE);\n i--;\n current = west;\n } else {\n edits.push(EDIT_ADD);\n j--;\n current = north;\n }\n }\n\n edits.reverse();\n return edits;\n },\n\n calcSplices: function calcSplices(current, currentStart, currentEnd, old, oldStart, oldEnd) {\n var prefixCount = 0;\n var suffixCount = 0;\n\n var minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart);\n if (currentStart === 0 && oldStart === 0) {\n prefixCount = this.sharedPrefix(current, old, minLength);\n }\n\n if (currentEnd === current.length && oldEnd === old.length) {\n suffixCount = this.sharedSuffix(current, old, minLength - prefixCount);\n }\n\n currentStart += prefixCount;\n oldStart += prefixCount;\n currentEnd -= suffixCount;\n oldEnd -= suffixCount;\n\n if (currentEnd - currentStart === 0 && oldEnd - oldStart === 0) {\n return [];\n }\n\n if (currentStart === currentEnd) {\n var _splice = newSplice(currentStart, [], 0);\n while (oldStart < oldEnd) {\n _splice.removed.push(old[oldStart++]);\n }\n\n return [_splice];\n } else if (oldStart === oldEnd) {\n return [newSplice(currentStart, [], currentEnd - currentStart)];\n }\n\n var ops = this.spliceOperationsFromEditDistances(this.calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd));\n\n var splice = undefined;\n var splices = [];\n var index = currentStart;\n var oldIndex = oldStart;\n for (var _i3 = 0; _i3 < ops.length; ++_i3) {\n switch (ops[_i3]) {\n case EDIT_LEAVE:\n if (splice) {\n splices.push(splice);\n splice = undefined;\n }\n\n index++;\n oldIndex++;\n break;\n case EDIT_UPDATE:\n if (!splice) {\n splice = newSplice(index, [], 0);\n }\n\n splice.addedCount++;\n index++;\n\n splice.removed.push(old[oldIndex]);\n oldIndex++;\n break;\n case EDIT_ADD:\n if (!splice) {\n splice = newSplice(index, [], 0);\n }\n\n splice.addedCount++;\n index++;\n break;\n case EDIT_DELETE:\n if (!splice) {\n splice = newSplice(index, [], 0);\n }\n\n splice.removed.push(old[oldIndex]);\n oldIndex++;\n break;\n }\n }\n\n if (splice) {\n splices.push(splice);\n }\n return splices;\n },\n\n sharedPrefix: function sharedPrefix(current, old, searchLength) {\n for (var _i4 = 0; _i4 < searchLength; ++_i4) {\n if (!this.equals(current[_i4], old[_i4])) {\n return _i4;\n }\n }\n\n return searchLength;\n },\n\n sharedSuffix: function sharedSuffix(current, old, searchLength) {\n var index1 = current.length;\n var index2 = old.length;\n var count = 0;\n while (count < searchLength && this.equals(current[--index1], old[--index2])) {\n count++;\n }\n\n return count;\n },\n\n calculateSplices: function calculateSplices(current, previous) {\n return this.calcSplices(current, 0, current.length, previous, 0, previous.length);\n },\n\n equals: function equals(currentValue, previousValue) {\n return currentValue === previousValue;\n }\n};\n\nvar arraySplice = new ArraySplice();\n\nexport function calcSplices(current, currentStart, currentEnd, old, oldStart, oldEnd) {\n return arraySplice.calcSplices(current, currentStart, currentEnd, old, oldStart, oldEnd);\n}\n\nfunction intersect(start1, end1, start2, end2) {\n if (end1 < start2 || end2 < start1) {\n return -1;\n }\n\n if (end1 === start2 || end2 === start1) {\n return 0;\n }\n\n if (start1 < start2) {\n if (end1 < end2) {\n return end1 - start2;\n }\n\n return end2 - start2;\n }\n\n if (end2 < end1) {\n return end2 - start1;\n }\n\n return end1 - start1;\n}\n\nexport function mergeSplice(splices, index, removed, addedCount) {\n var splice = newSplice(index, removed, addedCount);\n\n var inserted = false;\n var insertionOffset = 0;\n\n for (var _i5 = 0; _i5 < splices.length; _i5++) {\n var current = splices[_i5];\n current.index += insertionOffset;\n\n if (inserted) {\n continue;\n }\n\n var intersectCount = intersect(splice.index, splice.index + splice.removed.length, current.index, current.index + current.addedCount);\n\n if (intersectCount >= 0) {\n\n splices.splice(_i5, 1);\n _i5--;\n\n insertionOffset -= current.addedCount - current.removed.length;\n\n splice.addedCount += current.addedCount - intersectCount;\n var deleteCount = splice.removed.length + current.removed.length - intersectCount;\n\n if (!splice.addedCount && !deleteCount) {\n inserted = true;\n } else {\n var currentRemoved = current.removed;\n\n if (splice.index < current.index) {\n var prepend = splice.removed.slice(0, current.index - splice.index);\n Array.prototype.push.apply(prepend, currentRemoved);\n currentRemoved = prepend;\n }\n\n if (splice.index + splice.removed.length > current.index + current.addedCount) {\n var append = splice.removed.slice(current.index + current.addedCount - splice.index);\n Array.prototype.push.apply(currentRemoved, append);\n }\n\n splice.removed = currentRemoved;\n if (current.index < splice.index) {\n splice.index = current.index;\n }\n }\n } else if (splice.index < current.index) {\n\n inserted = true;\n\n splices.splice(_i5, 0, splice);\n _i5++;\n\n var offset = splice.addedCount - splice.removed.length;\n current.index += offset;\n insertionOffset += offset;\n }\n }\n\n if (!inserted) {\n splices.push(splice);\n }\n}\n\nfunction createInitialSplices(array, changeRecords) {\n var splices = [];\n\n for (var _i6 = 0; _i6 < changeRecords.length; _i6++) {\n var record = changeRecords[_i6];\n switch (record.type) {\n case 'splice':\n mergeSplice(splices, record.index, record.removed.slice(), record.addedCount);\n break;\n case 'add':\n case 'update':\n case 'delete':\n if (!isIndex(record.name)) {\n continue;\n }\n\n var index = toNumber(record.name);\n if (index < 0) {\n continue;\n }\n\n mergeSplice(splices, index, [record.oldValue], record.type === 'delete' ? 0 : 1);\n break;\n default:\n console.error('Unexpected record type: ' + JSON.stringify(record));\n break;\n }\n }\n\n return splices;\n}\n\nexport function projectArraySplices(array, changeRecords) {\n var splices = [];\n\n createInitialSplices(array, changeRecords).forEach(function (splice) {\n if (splice.addedCount === 1 && splice.removed.length === 1) {\n if (splice.removed[0] !== array[splice.index]) {\n splices.push(splice);\n }\n\n return;\n }\n\n splices = splices.concat(calcSplices(array, splice.index, splice.index + splice.addedCount, splice.removed, 0, splice.removed.length));\n });\n\n return splices;\n}\n\nfunction newRecord(type, object, key, oldValue) {\n return {\n type: type,\n object: object,\n key: key,\n oldValue: oldValue\n };\n}\n\nexport function getChangeRecords(map) {\n var entries = new Array(map.size);\n var keys = map.keys();\n var i = 0;\n var item = void 0;\n\n while (item = keys.next()) {\n if (item.done) {\n break;\n }\n\n entries[i] = newRecord('added', map, item.value);\n i++;\n }\n\n return entries;\n}\n\nexport var ModifyCollectionObserver = (_dec3 = subscriberCollection(), _dec3(_class2 = function () {\n function ModifyCollectionObserver(taskQueue, collection) {\n \n\n this.taskQueue = taskQueue;\n this.queued = false;\n this.changeRecords = null;\n this.oldCollection = null;\n this.collection = collection;\n this.lengthPropertyName = collection instanceof Map || collection instanceof Set ? 'size' : 'length';\n }\n\n ModifyCollectionObserver.prototype.subscribe = function subscribe(context, callable) {\n this.addSubscriber(context, callable);\n };\n\n ModifyCollectionObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n this.removeSubscriber(context, callable);\n };\n\n ModifyCollectionObserver.prototype.addChangeRecord = function addChangeRecord(changeRecord) {\n if (!this.hasSubscribers() && !this.lengthObserver) {\n return;\n }\n\n if (changeRecord.type === 'splice') {\n var index = changeRecord.index;\n var arrayLength = changeRecord.object.length;\n if (index > arrayLength) {\n index = arrayLength - changeRecord.addedCount;\n } else if (index < 0) {\n index = arrayLength + changeRecord.removed.length + index - changeRecord.addedCount;\n }\n if (index < 0) {\n index = 0;\n }\n changeRecord.index = index;\n }\n\n if (this.changeRecords === null) {\n this.changeRecords = [changeRecord];\n } else {\n this.changeRecords.push(changeRecord);\n }\n\n if (!this.queued) {\n this.queued = true;\n this.taskQueue.queueMicroTask(this);\n }\n };\n\n ModifyCollectionObserver.prototype.flushChangeRecords = function flushChangeRecords() {\n if (this.changeRecords && this.changeRecords.length || this.oldCollection) {\n this.call();\n }\n };\n\n ModifyCollectionObserver.prototype.reset = function reset(oldCollection) {\n this.oldCollection = oldCollection;\n\n if (this.hasSubscribers() && !this.queued) {\n this.queued = true;\n this.taskQueue.queueMicroTask(this);\n }\n };\n\n ModifyCollectionObserver.prototype.getLengthObserver = function getLengthObserver() {\n return this.lengthObserver || (this.lengthObserver = new CollectionLengthObserver(this.collection));\n };\n\n ModifyCollectionObserver.prototype.call = function call() {\n var changeRecords = this.changeRecords;\n var oldCollection = this.oldCollection;\n var records = void 0;\n\n this.queued = false;\n this.changeRecords = [];\n this.oldCollection = null;\n\n if (this.hasSubscribers()) {\n if (oldCollection) {\n if (this.collection instanceof Map || this.collection instanceof Set) {\n records = getChangeRecords(oldCollection);\n } else {\n records = calcSplices(this.collection, 0, this.collection.length, oldCollection, 0, oldCollection.length);\n }\n } else {\n if (this.collection instanceof Map || this.collection instanceof Set) {\n records = changeRecords;\n } else {\n records = projectArraySplices(this.collection, changeRecords);\n }\n }\n\n this.callSubscribers(records);\n }\n\n if (this.lengthObserver) {\n this.lengthObserver.call(this.collection[this.lengthPropertyName]);\n }\n };\n\n return ModifyCollectionObserver;\n}()) || _class2);\n\nexport var CollectionLengthObserver = (_dec4 = subscriberCollection(), _dec4(_class3 = function () {\n function CollectionLengthObserver(collection) {\n \n\n this.collection = collection;\n this.lengthPropertyName = collection instanceof Map || collection instanceof Set ? 'size' : 'length';\n this.currentValue = collection[this.lengthPropertyName];\n }\n\n CollectionLengthObserver.prototype.getValue = function getValue() {\n return this.collection[this.lengthPropertyName];\n };\n\n CollectionLengthObserver.prototype.setValue = function setValue(newValue) {\n this.collection[this.lengthPropertyName] = newValue;\n };\n\n CollectionLengthObserver.prototype.subscribe = function subscribe(context, callable) {\n this.addSubscriber(context, callable);\n };\n\n CollectionLengthObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n this.removeSubscriber(context, callable);\n };\n\n CollectionLengthObserver.prototype.call = function call(newValue) {\n var oldValue = this.currentValue;\n this.callSubscribers(newValue, oldValue);\n this.currentValue = newValue;\n };\n\n return CollectionLengthObserver;\n}()) || _class3);\n\nvar pop = Array.prototype.pop;\nvar push = Array.prototype.push;\nvar reverse = Array.prototype.reverse;\nvar shift = Array.prototype.shift;\nvar sort = Array.prototype.sort;\nvar splice = Array.prototype.splice;\nvar unshift = Array.prototype.unshift;\n\nArray.prototype.pop = function () {\n var notEmpty = this.length > 0;\n var methodCallResult = pop.apply(this, arguments);\n if (notEmpty && this.__array_observer__ !== undefined) {\n this.__array_observer__.addChangeRecord({\n type: 'delete',\n object: this,\n name: this.length,\n oldValue: methodCallResult\n });\n }\n return methodCallResult;\n};\n\nArray.prototype.push = function () {\n var methodCallResult = push.apply(this, arguments);\n if (this.__array_observer__ !== undefined) {\n this.__array_observer__.addChangeRecord({\n type: 'splice',\n object: this,\n index: this.length - arguments.length,\n removed: [],\n addedCount: arguments.length\n });\n }\n return methodCallResult;\n};\n\nArray.prototype.reverse = function () {\n var oldArray = void 0;\n if (this.__array_observer__ !== undefined) {\n this.__array_observer__.flushChangeRecords();\n oldArray = this.slice();\n }\n var methodCallResult = reverse.apply(this, arguments);\n if (this.__array_observer__ !== undefined) {\n this.__array_observer__.reset(oldArray);\n }\n return methodCallResult;\n};\n\nArray.prototype.shift = function () {\n var notEmpty = this.length > 0;\n var methodCallResult = shift.apply(this, arguments);\n if (notEmpty && this.__array_observer__ !== undefined) {\n this.__array_observer__.addChangeRecord({\n type: 'delete',\n object: this,\n name: 0,\n oldValue: methodCallResult\n });\n }\n return methodCallResult;\n};\n\nArray.prototype.sort = function () {\n var oldArray = void 0;\n if (this.__array_observer__ !== undefined) {\n this.__array_observer__.flushChangeRecords();\n oldArray = this.slice();\n }\n var methodCallResult = sort.apply(this, arguments);\n if (this.__array_observer__ !== undefined) {\n this.__array_observer__.reset(oldArray);\n }\n return methodCallResult;\n};\n\nArray.prototype.splice = function () {\n var methodCallResult = splice.apply(this, arguments);\n if (this.__array_observer__ !== undefined) {\n this.__array_observer__.addChangeRecord({\n type: 'splice',\n object: this,\n index: +arguments[0],\n removed: methodCallResult,\n addedCount: arguments.length > 2 ? arguments.length - 2 : 0\n });\n }\n return methodCallResult;\n};\n\nArray.prototype.unshift = function () {\n var methodCallResult = unshift.apply(this, arguments);\n if (this.__array_observer__ !== undefined) {\n this.__array_observer__.addChangeRecord({\n type: 'splice',\n object: this,\n index: 0,\n removed: [],\n addedCount: arguments.length\n });\n }\n return methodCallResult;\n};\n\nfunction _getArrayObserver(taskQueue, array) {\n return ModifyArrayObserver.for(taskQueue, array);\n}\n\nvar ModifyArrayObserver = function (_ModifyCollectionObse) {\n _inherits(ModifyArrayObserver, _ModifyCollectionObse);\n\n function ModifyArrayObserver(taskQueue, array) {\n \n\n return _possibleConstructorReturn(this, _ModifyCollectionObse.call(this, taskQueue, array));\n }\n\n ModifyArrayObserver.for = function _for(taskQueue, array) {\n if (!('__array_observer__' in array)) {\n Reflect.defineProperty(array, '__array_observer__', {\n value: ModifyArrayObserver.create(taskQueue, array),\n enumerable: false, configurable: false\n });\n }\n return array.__array_observer__;\n };\n\n ModifyArrayObserver.create = function create(taskQueue, array) {\n return new ModifyArrayObserver(taskQueue, array);\n };\n\n return ModifyArrayObserver;\n}(ModifyCollectionObserver);\n\nexport var Expression = function () {\n function Expression() {\n \n\n this.isChain = false;\n this.isAssignable = false;\n }\n\n Expression.prototype.evaluate = function evaluate(scope, lookupFunctions, args) {\n throw new Error('Binding expression \"' + this + '\" cannot be evaluated.');\n };\n\n Expression.prototype.assign = function assign(scope, value, lookupFunctions) {\n throw new Error('Binding expression \"' + this + '\" cannot be assigned to.');\n };\n\n Expression.prototype.toString = function toString() {\n return typeof FEATURE_NO_UNPARSER === 'undefined' ? _Unparser.unparse(this) : Function.prototype.toString.call(this);\n };\n\n return Expression;\n}();\n\nexport var Chain = function (_Expression) {\n _inherits(Chain, _Expression);\n\n function Chain(expressions) {\n \n\n var _this3 = _possibleConstructorReturn(this, _Expression.call(this));\n\n _this3.expressions = expressions;\n _this3.isChain = true;\n return _this3;\n }\n\n Chain.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var result = void 0;\n var expressions = this.expressions;\n var last = void 0;\n\n for (var _i7 = 0, length = expressions.length; _i7 < length; ++_i7) {\n last = expressions[_i7].evaluate(scope, lookupFunctions);\n\n if (last !== null) {\n result = last;\n }\n }\n\n return result;\n };\n\n Chain.prototype.accept = function accept(visitor) {\n return visitor.visitChain(this);\n };\n\n return Chain;\n}(Expression);\n\nexport var BindingBehavior = function (_Expression2) {\n _inherits(BindingBehavior, _Expression2);\n\n function BindingBehavior(expression, name, args) {\n \n\n var _this4 = _possibleConstructorReturn(this, _Expression2.call(this));\n\n _this4.expression = expression;\n _this4.name = name;\n _this4.args = args;\n return _this4;\n }\n\n BindingBehavior.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n return this.expression.evaluate(scope, lookupFunctions);\n };\n\n BindingBehavior.prototype.assign = function assign(scope, value, lookupFunctions) {\n return this.expression.assign(scope, value, lookupFunctions);\n };\n\n BindingBehavior.prototype.accept = function accept(visitor) {\n return visitor.visitBindingBehavior(this);\n };\n\n BindingBehavior.prototype.connect = function connect(binding, scope) {\n this.expression.connect(binding, scope);\n };\n\n BindingBehavior.prototype.bind = function bind(binding, scope, lookupFunctions) {\n if (this.expression.expression && this.expression.bind) {\n this.expression.bind(binding, scope, lookupFunctions);\n }\n var behavior = lookupFunctions.bindingBehaviors(this.name);\n if (!behavior) {\n throw new Error('No BindingBehavior named \"' + this.name + '\" was found!');\n }\n var behaviorKey = 'behavior-' + this.name;\n if (binding[behaviorKey]) {\n throw new Error('A binding behavior named \"' + this.name + '\" has already been applied to \"' + this.expression + '\"');\n }\n binding[behaviorKey] = behavior;\n behavior.bind.apply(behavior, [binding, scope].concat(evalList(scope, this.args, binding.lookupFunctions)));\n };\n\n BindingBehavior.prototype.unbind = function unbind(binding, scope) {\n var behaviorKey = 'behavior-' + this.name;\n binding[behaviorKey].unbind(binding, scope);\n binding[behaviorKey] = null;\n if (this.expression.expression && this.expression.unbind) {\n this.expression.unbind(binding, scope);\n }\n };\n\n return BindingBehavior;\n}(Expression);\n\nexport var ValueConverter = function (_Expression3) {\n _inherits(ValueConverter, _Expression3);\n\n function ValueConverter(expression, name, args, allArgs) {\n \n\n var _this5 = _possibleConstructorReturn(this, _Expression3.call(this));\n\n _this5.expression = expression;\n _this5.name = name;\n _this5.args = args;\n _this5.allArgs = allArgs;\n return _this5;\n }\n\n ValueConverter.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var converter = lookupFunctions.valueConverters(this.name);\n if (!converter) {\n throw new Error('No ValueConverter named \"' + this.name + '\" was found!');\n }\n\n if ('toView' in converter) {\n return converter.toView.apply(converter, evalList(scope, this.allArgs, lookupFunctions));\n }\n\n return this.allArgs[0].evaluate(scope, lookupFunctions);\n };\n\n ValueConverter.prototype.assign = function assign(scope, value, lookupFunctions) {\n var converter = lookupFunctions.valueConverters(this.name);\n if (!converter) {\n throw new Error('No ValueConverter named \"' + this.name + '\" was found!');\n }\n\n if ('fromView' in converter) {\n value = converter.fromView.apply(converter, [value].concat(evalList(scope, this.args, lookupFunctions)));\n }\n\n return this.allArgs[0].assign(scope, value, lookupFunctions);\n };\n\n ValueConverter.prototype.accept = function accept(visitor) {\n return visitor.visitValueConverter(this);\n };\n\n ValueConverter.prototype.connect = function connect(binding, scope) {\n var expressions = this.allArgs;\n var i = expressions.length;\n while (i--) {\n expressions[i].connect(binding, scope);\n }\n };\n\n return ValueConverter;\n}(Expression);\n\nexport var Assign = function (_Expression4) {\n _inherits(Assign, _Expression4);\n\n function Assign(target, value) {\n \n\n var _this6 = _possibleConstructorReturn(this, _Expression4.call(this));\n\n _this6.target = target;\n _this6.value = value;\n _this6.isAssignable = true;\n return _this6;\n }\n\n Assign.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n return this.target.assign(scope, this.value.evaluate(scope, lookupFunctions));\n };\n\n Assign.prototype.accept = function accept(vistor) {\n vistor.visitAssign(this);\n };\n\n Assign.prototype.connect = function connect(binding, scope) {};\n\n Assign.prototype.assign = function assign(scope, value) {\n this.value.assign(scope, value);\n this.target.assign(scope, value);\n };\n\n return Assign;\n}(Expression);\n\nexport var Conditional = function (_Expression5) {\n _inherits(Conditional, _Expression5);\n\n function Conditional(condition, yes, no) {\n \n\n var _this7 = _possibleConstructorReturn(this, _Expression5.call(this));\n\n _this7.condition = condition;\n _this7.yes = yes;\n _this7.no = no;\n return _this7;\n }\n\n Conditional.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n return !!this.condition.evaluate(scope, lookupFunctions) ? this.yes.evaluate(scope, lookupFunctions) : this.no.evaluate(scope, lookupFunctions);\n };\n\n Conditional.prototype.accept = function accept(visitor) {\n return visitor.visitConditional(this);\n };\n\n Conditional.prototype.connect = function connect(binding, scope) {\n this.condition.connect(binding, scope);\n if (this.condition.evaluate(scope)) {\n this.yes.connect(binding, scope);\n } else {\n this.no.connect(binding, scope);\n }\n };\n\n return Conditional;\n}(Expression);\n\nexport var AccessThis = function (_Expression6) {\n _inherits(AccessThis, _Expression6);\n\n function AccessThis(ancestor) {\n \n\n var _this8 = _possibleConstructorReturn(this, _Expression6.call(this));\n\n _this8.ancestor = ancestor;\n return _this8;\n }\n\n AccessThis.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var oc = scope.overrideContext;\n var i = this.ancestor;\n while (i-- && oc) {\n oc = oc.parentOverrideContext;\n }\n return i < 1 && oc ? oc.bindingContext : undefined;\n };\n\n AccessThis.prototype.accept = function accept(visitor) {\n return visitor.visitAccessThis(this);\n };\n\n AccessThis.prototype.connect = function connect(binding, scope) {};\n\n return AccessThis;\n}(Expression);\n\nexport var AccessScope = function (_Expression7) {\n _inherits(AccessScope, _Expression7);\n\n function AccessScope(name, ancestor) {\n \n\n var _this9 = _possibleConstructorReturn(this, _Expression7.call(this));\n\n _this9.name = name;\n _this9.ancestor = ancestor;\n _this9.isAssignable = true;\n return _this9;\n }\n\n AccessScope.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var context = getContextFor(this.name, scope, this.ancestor);\n return context[this.name];\n };\n\n AccessScope.prototype.assign = function assign(scope, value) {\n var context = getContextFor(this.name, scope, this.ancestor);\n return context ? context[this.name] = value : undefined;\n };\n\n AccessScope.prototype.accept = function accept(visitor) {\n return visitor.visitAccessScope(this);\n };\n\n AccessScope.prototype.connect = function connect(binding, scope) {\n var context = getContextFor(this.name, scope, this.ancestor);\n binding.observeProperty(context, this.name);\n };\n\n return AccessScope;\n}(Expression);\n\nexport var AccessMember = function (_Expression8) {\n _inherits(AccessMember, _Expression8);\n\n function AccessMember(object, name) {\n \n\n var _this10 = _possibleConstructorReturn(this, _Expression8.call(this));\n\n _this10.object = object;\n _this10.name = name;\n _this10.isAssignable = true;\n return _this10;\n }\n\n AccessMember.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var instance = this.object.evaluate(scope, lookupFunctions);\n return instance === null || instance === undefined ? instance : instance[this.name];\n };\n\n AccessMember.prototype.assign = function assign(scope, value) {\n var instance = this.object.evaluate(scope);\n\n if (instance === null || instance === undefined) {\n instance = {};\n this.object.assign(scope, instance);\n }\n\n instance[this.name] = value;\n return value;\n };\n\n AccessMember.prototype.accept = function accept(visitor) {\n return visitor.visitAccessMember(this);\n };\n\n AccessMember.prototype.connect = function connect(binding, scope) {\n this.object.connect(binding, scope);\n var obj = this.object.evaluate(scope);\n if (obj) {\n binding.observeProperty(obj, this.name);\n }\n };\n\n return AccessMember;\n}(Expression);\n\nexport var AccessKeyed = function (_Expression9) {\n _inherits(AccessKeyed, _Expression9);\n\n function AccessKeyed(object, key) {\n \n\n var _this11 = _possibleConstructorReturn(this, _Expression9.call(this));\n\n _this11.object = object;\n _this11.key = key;\n _this11.isAssignable = true;\n return _this11;\n }\n\n AccessKeyed.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var instance = this.object.evaluate(scope, lookupFunctions);\n var lookup = this.key.evaluate(scope, lookupFunctions);\n return getKeyed(instance, lookup);\n };\n\n AccessKeyed.prototype.assign = function assign(scope, value) {\n var instance = this.object.evaluate(scope);\n var lookup = this.key.evaluate(scope);\n return setKeyed(instance, lookup, value);\n };\n\n AccessKeyed.prototype.accept = function accept(visitor) {\n return visitor.visitAccessKeyed(this);\n };\n\n AccessKeyed.prototype.connect = function connect(binding, scope) {\n this.object.connect(binding, scope);\n var obj = this.object.evaluate(scope);\n if (obj instanceof Object) {\n this.key.connect(binding, scope);\n var key = this.key.evaluate(scope);\n\n if (key !== null && key !== undefined && !(Array.isArray(obj) && typeof key === 'number')) {\n binding.observeProperty(obj, key);\n }\n }\n };\n\n return AccessKeyed;\n}(Expression);\n\nexport var CallScope = function (_Expression10) {\n _inherits(CallScope, _Expression10);\n\n function CallScope(name, args, ancestor) {\n \n\n var _this12 = _possibleConstructorReturn(this, _Expression10.call(this));\n\n _this12.name = name;\n _this12.args = args;\n _this12.ancestor = ancestor;\n return _this12;\n }\n\n CallScope.prototype.evaluate = function evaluate(scope, lookupFunctions, mustEvaluate) {\n var args = evalList(scope, this.args, lookupFunctions);\n var context = getContextFor(this.name, scope, this.ancestor);\n var func = getFunction(context, this.name, mustEvaluate);\n if (func) {\n return func.apply(context, args);\n }\n return undefined;\n };\n\n CallScope.prototype.accept = function accept(visitor) {\n return visitor.visitCallScope(this);\n };\n\n CallScope.prototype.connect = function connect(binding, scope) {\n var args = this.args;\n var i = args.length;\n while (i--) {\n args[i].connect(binding, scope);\n }\n };\n\n return CallScope;\n}(Expression);\n\nexport var CallMember = function (_Expression11) {\n _inherits(CallMember, _Expression11);\n\n function CallMember(object, name, args) {\n \n\n var _this13 = _possibleConstructorReturn(this, _Expression11.call(this));\n\n _this13.object = object;\n _this13.name = name;\n _this13.args = args;\n return _this13;\n }\n\n CallMember.prototype.evaluate = function evaluate(scope, lookupFunctions, mustEvaluate) {\n var instance = this.object.evaluate(scope, lookupFunctions);\n var args = evalList(scope, this.args, lookupFunctions);\n var func = getFunction(instance, this.name, mustEvaluate);\n if (func) {\n return func.apply(instance, args);\n }\n return undefined;\n };\n\n CallMember.prototype.accept = function accept(visitor) {\n return visitor.visitCallMember(this);\n };\n\n CallMember.prototype.connect = function connect(binding, scope) {\n this.object.connect(binding, scope);\n var obj = this.object.evaluate(scope);\n if (getFunction(obj, this.name, false)) {\n var args = this.args;\n var _i8 = args.length;\n while (_i8--) {\n args[_i8].connect(binding, scope);\n }\n }\n };\n\n return CallMember;\n}(Expression);\n\nexport var CallFunction = function (_Expression12) {\n _inherits(CallFunction, _Expression12);\n\n function CallFunction(func, args) {\n \n\n var _this14 = _possibleConstructorReturn(this, _Expression12.call(this));\n\n _this14.func = func;\n _this14.args = args;\n return _this14;\n }\n\n CallFunction.prototype.evaluate = function evaluate(scope, lookupFunctions, mustEvaluate) {\n var func = this.func.evaluate(scope, lookupFunctions);\n if (typeof func === 'function') {\n return func.apply(null, evalList(scope, this.args, lookupFunctions));\n }\n if (!mustEvaluate && (func === null || func === undefined)) {\n return undefined;\n }\n throw new Error(this.func + ' is not a function');\n };\n\n CallFunction.prototype.accept = function accept(visitor) {\n return visitor.visitCallFunction(this);\n };\n\n CallFunction.prototype.connect = function connect(binding, scope) {\n this.func.connect(binding, scope);\n var func = this.func.evaluate(scope);\n if (typeof func === 'function') {\n var args = this.args;\n var _i9 = args.length;\n while (_i9--) {\n args[_i9].connect(binding, scope);\n }\n }\n };\n\n return CallFunction;\n}(Expression);\n\nexport var Binary = function (_Expression13) {\n _inherits(Binary, _Expression13);\n\n function Binary(operation, left, right) {\n \n\n var _this15 = _possibleConstructorReturn(this, _Expression13.call(this));\n\n _this15.operation = operation;\n _this15.left = left;\n _this15.right = right;\n return _this15;\n }\n\n Binary.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var left = this.left.evaluate(scope, lookupFunctions);\n\n switch (this.operation) {\n case '&&':\n return left && this.right.evaluate(scope, lookupFunctions);\n case '||':\n return left || this.right.evaluate(scope, lookupFunctions);\n }\n\n var right = this.right.evaluate(scope, lookupFunctions);\n\n switch (this.operation) {\n case '==':\n return left == right;\n case '===':\n return left === right;\n case '!=':\n return left != right;\n case '!==':\n return left !== right;\n }\n\n if (left === null || right === null || left === undefined || right === undefined) {\n switch (this.operation) {\n case '+':\n if (left !== null && left !== undefined) return left;\n if (right !== null && right !== undefined) return right;\n return 0;\n case '-':\n if (left !== null && left !== undefined) return left;\n if (right !== null && right !== undefined) return 0 - right;\n return 0;\n }\n\n return null;\n }\n\n switch (this.operation) {\n case '+':\n return autoConvertAdd(left, right);\n case '-':\n return left - right;\n case '*':\n return left * right;\n case '/':\n return left / right;\n case '%':\n return left % right;\n case '<':\n return left < right;\n case '>':\n return left > right;\n case '<=':\n return left <= right;\n case '>=':\n return left >= right;\n case '^':\n return left ^ right;\n }\n\n throw new Error('Internal error [' + this.operation + '] not handled');\n };\n\n Binary.prototype.accept = function accept(visitor) {\n return visitor.visitBinary(this);\n };\n\n Binary.prototype.connect = function connect(binding, scope) {\n this.left.connect(binding, scope);\n var left = this.left.evaluate(scope);\n if (this.operation === '&&' && !left || this.operation === '||' && left) {\n return;\n }\n this.right.connect(binding, scope);\n };\n\n return Binary;\n}(Expression);\n\nexport var PrefixNot = function (_Expression14) {\n _inherits(PrefixNot, _Expression14);\n\n function PrefixNot(operation, expression) {\n \n\n var _this16 = _possibleConstructorReturn(this, _Expression14.call(this));\n\n _this16.operation = operation;\n _this16.expression = expression;\n return _this16;\n }\n\n PrefixNot.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n return !this.expression.evaluate(scope, lookupFunctions);\n };\n\n PrefixNot.prototype.accept = function accept(visitor) {\n return visitor.visitPrefix(this);\n };\n\n PrefixNot.prototype.connect = function connect(binding, scope) {\n this.expression.connect(binding, scope);\n };\n\n return PrefixNot;\n}(Expression);\n\nexport var LiteralPrimitive = function (_Expression15) {\n _inherits(LiteralPrimitive, _Expression15);\n\n function LiteralPrimitive(value) {\n \n\n var _this17 = _possibleConstructorReturn(this, _Expression15.call(this));\n\n _this17.value = value;\n return _this17;\n }\n\n LiteralPrimitive.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n return this.value;\n };\n\n LiteralPrimitive.prototype.accept = function accept(visitor) {\n return visitor.visitLiteralPrimitive(this);\n };\n\n LiteralPrimitive.prototype.connect = function connect(binding, scope) {};\n\n return LiteralPrimitive;\n}(Expression);\n\nexport var LiteralString = function (_Expression16) {\n _inherits(LiteralString, _Expression16);\n\n function LiteralString(value) {\n \n\n var _this18 = _possibleConstructorReturn(this, _Expression16.call(this));\n\n _this18.value = value;\n return _this18;\n }\n\n LiteralString.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n return this.value;\n };\n\n LiteralString.prototype.accept = function accept(visitor) {\n return visitor.visitLiteralString(this);\n };\n\n LiteralString.prototype.connect = function connect(binding, scope) {};\n\n return LiteralString;\n}(Expression);\n\nexport var LiteralArray = function (_Expression17) {\n _inherits(LiteralArray, _Expression17);\n\n function LiteralArray(elements) {\n \n\n var _this19 = _possibleConstructorReturn(this, _Expression17.call(this));\n\n _this19.elements = elements;\n return _this19;\n }\n\n LiteralArray.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var elements = this.elements;\n var result = [];\n\n for (var _i10 = 0, length = elements.length; _i10 < length; ++_i10) {\n result[_i10] = elements[_i10].evaluate(scope, lookupFunctions);\n }\n\n return result;\n };\n\n LiteralArray.prototype.accept = function accept(visitor) {\n return visitor.visitLiteralArray(this);\n };\n\n LiteralArray.prototype.connect = function connect(binding, scope) {\n var length = this.elements.length;\n for (var _i11 = 0; _i11 < length; _i11++) {\n this.elements[_i11].connect(binding, scope);\n }\n };\n\n return LiteralArray;\n}(Expression);\n\nexport var LiteralObject = function (_Expression18) {\n _inherits(LiteralObject, _Expression18);\n\n function LiteralObject(keys, values) {\n \n\n var _this20 = _possibleConstructorReturn(this, _Expression18.call(this));\n\n _this20.keys = keys;\n _this20.values = values;\n return _this20;\n }\n\n LiteralObject.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n var instance = {};\n var keys = this.keys;\n var values = this.values;\n\n for (var _i12 = 0, length = keys.length; _i12 < length; ++_i12) {\n instance[keys[_i12]] = values[_i12].evaluate(scope, lookupFunctions);\n }\n\n return instance;\n };\n\n LiteralObject.prototype.accept = function accept(visitor) {\n return visitor.visitLiteralObject(this);\n };\n\n LiteralObject.prototype.connect = function connect(binding, scope) {\n var length = this.keys.length;\n for (var _i13 = 0; _i13 < length; _i13++) {\n this.values[_i13].connect(binding, scope);\n }\n };\n\n return LiteralObject;\n}(Expression);\n\nfunction evalList(scope, list, lookupFunctions) {\n var length = list.length;\n var result = [];\n for (var _i14 = 0; _i14 < length; _i14++) {\n result[_i14] = list[_i14].evaluate(scope, lookupFunctions);\n }\n return result;\n}\n\nfunction autoConvertAdd(a, b) {\n if (a !== null && b !== null) {\n if (typeof a === 'string' && typeof b !== 'string') {\n return a + b.toString();\n }\n\n if (typeof a !== 'string' && typeof b === 'string') {\n return a.toString() + b;\n }\n\n return a + b;\n }\n\n if (a !== null) {\n return a;\n }\n\n if (b !== null) {\n return b;\n }\n\n return 0;\n}\n\nfunction getFunction(obj, name, mustExist) {\n var func = obj === null || obj === undefined ? null : obj[name];\n if (typeof func === 'function') {\n return func;\n }\n if (!mustExist && (func === null || func === undefined)) {\n return null;\n }\n throw new Error(name + ' is not a function');\n}\n\nfunction getKeyed(obj, key) {\n if (Array.isArray(obj)) {\n return obj[parseInt(key, 10)];\n } else if (obj) {\n return obj[key];\n } else if (obj === null || obj === undefined) {\n return undefined;\n }\n\n return obj[key];\n}\n\nfunction setKeyed(obj, key, value) {\n if (Array.isArray(obj)) {\n var index = parseInt(key, 10);\n\n if (obj.length <= index) {\n obj.length = index + 1;\n }\n\n obj[index] = value;\n } else {\n obj[key] = value;\n }\n\n return value;\n}\n\nvar _Unparser = null;\n\nexport { _Unparser as Unparser };\nif (typeof FEATURE_NO_UNPARSER === 'undefined') {\n _Unparser = function () {\n function Unparser(buffer) {\n \n\n this.buffer = buffer;\n }\n\n Unparser.unparse = function unparse(expression) {\n var buffer = [];\n var visitor = new _Unparser(buffer);\n\n expression.accept(visitor);\n\n return buffer.join('');\n };\n\n Unparser.prototype.write = function write(text) {\n this.buffer.push(text);\n };\n\n Unparser.prototype.writeArgs = function writeArgs(args) {\n this.write('(');\n\n for (var _i15 = 0, length = args.length; _i15 < length; ++_i15) {\n if (_i15 !== 0) {\n this.write(',');\n }\n\n args[_i15].accept(this);\n }\n\n this.write(')');\n };\n\n Unparser.prototype.visitChain = function visitChain(chain) {\n var expressions = chain.expressions;\n\n for (var _i16 = 0, length = expression.length; _i16 < length; ++_i16) {\n if (_i16 !== 0) {\n this.write(';');\n }\n\n expressions[_i16].accept(this);\n }\n };\n\n Unparser.prototype.visitBindingBehavior = function visitBindingBehavior(behavior) {\n var args = behavior.args;\n\n behavior.expression.accept(this);\n this.write('&' + behavior.name);\n\n for (var _i17 = 0, length = args.length; _i17 < length; ++_i17) {\n this.write(':');\n args[_i17].accept(this);\n }\n };\n\n Unparser.prototype.visitValueConverter = function visitValueConverter(converter) {\n var args = converter.args;\n\n converter.expression.accept(this);\n this.write('|' + converter.name);\n\n for (var _i18 = 0, length = args.length; _i18 < length; ++_i18) {\n this.write(':');\n args[_i18].accept(this);\n }\n };\n\n Unparser.prototype.visitAssign = function visitAssign(assign) {\n assign.target.accept(this);\n this.write('=');\n assign.value.accept(this);\n };\n\n Unparser.prototype.visitConditional = function visitConditional(conditional) {\n conditional.condition.accept(this);\n this.write('?');\n conditional.yes.accept(this);\n this.write(':');\n conditional.no.accept(this);\n };\n\n Unparser.prototype.visitAccessThis = function visitAccessThis(access) {\n if (access.ancestor === 0) {\n this.write('$this');\n return;\n }\n this.write('$parent');\n var i = access.ancestor - 1;\n while (i--) {\n this.write('.$parent');\n }\n };\n\n Unparser.prototype.visitAccessScope = function visitAccessScope(access) {\n var i = access.ancestor;\n while (i--) {\n this.write('$parent.');\n }\n this.write(access.name);\n };\n\n Unparser.prototype.visitAccessMember = function visitAccessMember(access) {\n access.object.accept(this);\n this.write('.' + access.name);\n };\n\n Unparser.prototype.visitAccessKeyed = function visitAccessKeyed(access) {\n access.object.accept(this);\n this.write('[');\n access.key.accept(this);\n this.write(']');\n };\n\n Unparser.prototype.visitCallScope = function visitCallScope(call) {\n var i = call.ancestor;\n while (i--) {\n this.write('$parent.');\n }\n this.write(call.name);\n this.writeArgs(call.args);\n };\n\n Unparser.prototype.visitCallFunction = function visitCallFunction(call) {\n call.func.accept(this);\n this.writeArgs(call.args);\n };\n\n Unparser.prototype.visitCallMember = function visitCallMember(call) {\n call.object.accept(this);\n this.write('.' + call.name);\n this.writeArgs(call.args);\n };\n\n Unparser.prototype.visitPrefix = function visitPrefix(prefix) {\n this.write('(' + prefix.operation);\n prefix.expression.accept(this);\n this.write(')');\n };\n\n Unparser.prototype.visitBinary = function visitBinary(binary) {\n binary.left.accept(this);\n this.write(binary.operation);\n binary.right.accept(this);\n };\n\n Unparser.prototype.visitLiteralPrimitive = function visitLiteralPrimitive(literal) {\n this.write('' + literal.value);\n };\n\n Unparser.prototype.visitLiteralArray = function visitLiteralArray(literal) {\n var elements = literal.elements;\n\n this.write('[');\n\n for (var _i19 = 0, length = elements.length; _i19 < length; ++_i19) {\n if (_i19 !== 0) {\n this.write(',');\n }\n\n elements[_i19].accept(this);\n }\n\n this.write(']');\n };\n\n Unparser.prototype.visitLiteralObject = function visitLiteralObject(literal) {\n var keys = literal.keys;\n var values = literal.values;\n\n this.write('{');\n\n for (var _i20 = 0, length = keys.length; _i20 < length; ++_i20) {\n if (_i20 !== 0) {\n this.write(',');\n }\n\n this.write('\\'' + keys[_i20] + '\\':');\n values[_i20].accept(this);\n }\n\n this.write('}');\n };\n\n Unparser.prototype.visitLiteralString = function visitLiteralString(literal) {\n var escaped = literal.value.replace(/'/g, \"\\'\");\n this.write('\\'' + escaped + '\\'');\n };\n\n return Unparser;\n }();\n}\n\nexport var ExpressionCloner = function () {\n function ExpressionCloner() {\n \n }\n\n ExpressionCloner.prototype.cloneExpressionArray = function cloneExpressionArray(array) {\n var clonedArray = [];\n var i = array.length;\n while (i--) {\n clonedArray[i] = array[i].accept(this);\n }\n return clonedArray;\n };\n\n ExpressionCloner.prototype.visitChain = function visitChain(chain) {\n return new Chain(this.cloneExpressionArray(chain.expressions));\n };\n\n ExpressionCloner.prototype.visitBindingBehavior = function visitBindingBehavior(behavior) {\n return new BindingBehavior(behavior.expression.accept(this), behavior.name, this.cloneExpressionArray(behavior.args));\n };\n\n ExpressionCloner.prototype.visitValueConverter = function visitValueConverter(converter) {\n return new ValueConverter(converter.expression.accept(this), converter.name, this.cloneExpressionArray(converter.args));\n };\n\n ExpressionCloner.prototype.visitAssign = function visitAssign(assign) {\n return new Assign(assign.target.accept(this), assign.value.accept(this));\n };\n\n ExpressionCloner.prototype.visitConditional = function visitConditional(conditional) {\n return new Conditional(conditional.condition.accept(this), conditional.yes.accept(this), conditional.no.accept(this));\n };\n\n ExpressionCloner.prototype.visitAccessThis = function visitAccessThis(access) {\n return new AccessThis(access.ancestor);\n };\n\n ExpressionCloner.prototype.visitAccessScope = function visitAccessScope(access) {\n return new AccessScope(access.name, access.ancestor);\n };\n\n ExpressionCloner.prototype.visitAccessMember = function visitAccessMember(access) {\n return new AccessMember(access.object.accept(this), access.name);\n };\n\n ExpressionCloner.prototype.visitAccessKeyed = function visitAccessKeyed(access) {\n return new AccessKeyed(access.object.accept(this), access.key.accept(this));\n };\n\n ExpressionCloner.prototype.visitCallScope = function visitCallScope(call) {\n return new CallScope(call.name, this.cloneExpressionArray(call.args), call.ancestor);\n };\n\n ExpressionCloner.prototype.visitCallFunction = function visitCallFunction(call) {\n return new CallFunction(call.func.accept(this), this.cloneExpressionArray(call.args));\n };\n\n ExpressionCloner.prototype.visitCallMember = function visitCallMember(call) {\n return new CallMember(call.object.accept(this), call.name, this.cloneExpressionArray(call.args));\n };\n\n ExpressionCloner.prototype.visitPrefix = function visitPrefix(prefix) {\n return new PrefixNot(prefix.operation, prefix.expression.accept(this));\n };\n\n ExpressionCloner.prototype.visitBinary = function visitBinary(binary) {\n return new Binary(binary.operation, binary.left.accept(this), binary.right.accept(this));\n };\n\n ExpressionCloner.prototype.visitLiteralPrimitive = function visitLiteralPrimitive(literal) {\n return new LiteralPrimitive(literal);\n };\n\n ExpressionCloner.prototype.visitLiteralArray = function visitLiteralArray(literal) {\n return new LiteralArray(this.cloneExpressionArray(literal.elements));\n };\n\n ExpressionCloner.prototype.visitLiteralObject = function visitLiteralObject(literal) {\n return new LiteralObject(literal.keys, this.cloneExpressionArray(literal.values));\n };\n\n ExpressionCloner.prototype.visitLiteralString = function visitLiteralString(literal) {\n return new LiteralString(literal.value);\n };\n\n return ExpressionCloner;\n}();\n\nexport function cloneExpression(expression) {\n var visitor = new ExpressionCloner();\n return expression.accept(visitor);\n}\n\nexport var bindingMode = {\n oneTime: 0,\n oneWay: 1,\n twoWay: 2\n};\n\nexport var Token = function () {\n function Token(index, text) {\n \n\n this.index = index;\n this.text = text;\n }\n\n Token.prototype.withOp = function withOp(op) {\n this.opKey = op;\n return this;\n };\n\n Token.prototype.withGetterSetter = function withGetterSetter(key) {\n this.key = key;\n return this;\n };\n\n Token.prototype.withValue = function withValue(value) {\n this.value = value;\n return this;\n };\n\n Token.prototype.toString = function toString() {\n return 'Token(' + this.text + ')';\n };\n\n return Token;\n}();\n\nexport var Lexer = function () {\n function Lexer() {\n \n }\n\n Lexer.prototype.lex = function lex(text) {\n var scanner = new Scanner(text);\n var tokens = [];\n var token = scanner.scanToken();\n\n while (token) {\n tokens.push(token);\n token = scanner.scanToken();\n }\n\n return tokens;\n };\n\n return Lexer;\n}();\n\nexport var Scanner = function () {\n function Scanner(input) {\n \n\n this.input = input;\n this.length = input.length;\n this.peek = 0;\n this.index = -1;\n\n this.advance();\n }\n\n Scanner.prototype.scanToken = function scanToken() {\n while (this.peek <= $SPACE) {\n if (++this.index >= this.length) {\n this.peek = $EOF;\n return null;\n }\n\n this.peek = this.input.charCodeAt(this.index);\n }\n\n if (isIdentifierStart(this.peek)) {\n return this.scanIdentifier();\n }\n\n if (isDigit(this.peek)) {\n return this.scanNumber(this.index);\n }\n\n var start = this.index;\n\n switch (this.peek) {\n case $PERIOD:\n this.advance();\n return isDigit(this.peek) ? this.scanNumber(start) : new Token(start, '.');\n case $LPAREN:\n case $RPAREN:\n case $LBRACE:\n case $RBRACE:\n case $LBRACKET:\n case $RBRACKET:\n case $COMMA:\n case $COLON:\n case $SEMICOLON:\n return this.scanCharacter(start, String.fromCharCode(this.peek));\n case $SQ:\n case $DQ:\n return this.scanString();\n case $PLUS:\n case $MINUS:\n case $STAR:\n case $SLASH:\n case $PERCENT:\n case $CARET:\n case $QUESTION:\n return this.scanOperator(start, String.fromCharCode(this.peek));\n case $LT:\n case $GT:\n case $BANG:\n case $EQ:\n return this.scanComplexOperator(start, $EQ, String.fromCharCode(this.peek), '=');\n case $AMPERSAND:\n return this.scanComplexOperator(start, $AMPERSAND, '&', '&');\n case $BAR:\n return this.scanComplexOperator(start, $BAR, '|', '|');\n case $NBSP:\n while (isWhitespace(this.peek)) {\n this.advance();\n }\n\n return this.scanToken();\n }\n\n var character = String.fromCharCode(this.peek);\n this.error('Unexpected character [' + character + ']');\n return null;\n };\n\n Scanner.prototype.scanCharacter = function scanCharacter(start, text) {\n assert(this.peek === text.charCodeAt(0));\n this.advance();\n return new Token(start, text);\n };\n\n Scanner.prototype.scanOperator = function scanOperator(start, text) {\n assert(this.peek === text.charCodeAt(0));\n assert(OPERATORS.indexOf(text) !== -1);\n this.advance();\n return new Token(start, text).withOp(text);\n };\n\n Scanner.prototype.scanComplexOperator = function scanComplexOperator(start, code, one, two) {\n assert(this.peek === one.charCodeAt(0));\n this.advance();\n\n var text = one;\n\n if (this.peek === code) {\n this.advance();\n text += two;\n }\n\n if (this.peek === code) {\n this.advance();\n text += two;\n }\n\n assert(OPERATORS.indexOf(text) !== -1);\n\n return new Token(start, text).withOp(text);\n };\n\n Scanner.prototype.scanIdentifier = function scanIdentifier() {\n assert(isIdentifierStart(this.peek));\n var start = this.index;\n\n this.advance();\n\n while (isIdentifierPart(this.peek)) {\n this.advance();\n }\n\n var text = this.input.substring(start, this.index);\n var result = new Token(start, text);\n\n if (OPERATORS.indexOf(text) !== -1) {\n result.withOp(text);\n } else {\n result.withGetterSetter(text);\n }\n\n return result;\n };\n\n Scanner.prototype.scanNumber = function scanNumber(start) {\n assert(isDigit(this.peek));\n var simple = this.index === start;\n this.advance();\n\n while (true) {\n if (!isDigit(this.peek)) {\n if (this.peek === $PERIOD) {\n simple = false;\n } else if (isExponentStart(this.peek)) {\n this.advance();\n\n if (isExponentSign(this.peek)) {\n this.advance();\n }\n\n if (!isDigit(this.peek)) {\n this.error('Invalid exponent', -1);\n }\n\n simple = false;\n } else {\n break;\n }\n }\n\n this.advance();\n }\n\n var text = this.input.substring(start, this.index);\n var value = simple ? parseInt(text, 10) : parseFloat(text);\n return new Token(start, text).withValue(value);\n };\n\n Scanner.prototype.scanString = function scanString() {\n assert(this.peek === $SQ || this.peek === $DQ);\n\n var start = this.index;\n var quote = this.peek;\n\n this.advance();\n\n var buffer = void 0;\n var marker = this.index;\n\n while (this.peek !== quote) {\n if (this.peek === $BACKSLASH) {\n if (!buffer) {\n buffer = [];\n }\n\n buffer.push(this.input.substring(marker, this.index));\n this.advance();\n\n var _unescaped = void 0;\n\n if (this.peek === $u) {\n var hex = this.input.substring(this.index + 1, this.index + 5);\n\n if (!/[A-Z0-9]{4}/.test(hex)) {\n this.error('Invalid unicode escape [\\\\u' + hex + ']');\n }\n\n _unescaped = parseInt(hex, 16);\n\n for (var _i21 = 0; _i21 < 5; ++_i21) {\n this.advance();\n }\n } else {\n _unescaped = unescape(this.peek);\n this.advance();\n }\n\n buffer.push(String.fromCharCode(_unescaped));\n marker = this.index;\n } else if (this.peek === $EOF) {\n this.error('Unterminated quote');\n } else {\n this.advance();\n }\n }\n\n var last = this.input.substring(marker, this.index);\n this.advance();\n var text = this.input.substring(start, this.index);\n\n var unescaped = last;\n\n if (buffer !== null && buffer !== undefined) {\n buffer.push(last);\n unescaped = buffer.join('');\n }\n\n return new Token(start, text).withValue(unescaped);\n };\n\n Scanner.prototype.advance = function advance() {\n if (++this.index >= this.length) {\n this.peek = $EOF;\n } else {\n this.peek = this.input.charCodeAt(this.index);\n }\n };\n\n Scanner.prototype.error = function error(message) {\n var offset = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];\n\n var position = this.index + offset;\n throw new Error('Lexer Error: ' + message + ' at column ' + position + ' in expression [' + this.input + ']');\n };\n\n return Scanner;\n}();\n\nvar OPERATORS = ['undefined', 'null', 'true', 'false', '+', '-', '*', '/', '%', '^', '=', '==', '===', '!=', '!==', '<', '>', '<=', '>=', '&&', '||', '&', '|', '!', '?'];\n\nvar $EOF = 0;\nvar $TAB = 9;\nvar $LF = 10;\nvar $VTAB = 11;\nvar $FF = 12;\nvar $CR = 13;\nvar $SPACE = 32;\nvar $BANG = 33;\nvar $DQ = 34;\nvar $$ = 36;\nvar $PERCENT = 37;\nvar $AMPERSAND = 38;\nvar $SQ = 39;\nvar $LPAREN = 40;\nvar $RPAREN = 41;\nvar $STAR = 42;\nvar $PLUS = 43;\nvar $COMMA = 44;\nvar $MINUS = 45;\nvar $PERIOD = 46;\nvar $SLASH = 47;\nvar $COLON = 58;\nvar $SEMICOLON = 59;\nvar $LT = 60;\nvar $EQ = 61;\nvar $GT = 62;\nvar $QUESTION = 63;\n\nvar $0 = 48;\nvar $9 = 57;\n\nvar $A = 65;\nvar $E = 69;\nvar $Z = 90;\n\nvar $LBRACKET = 91;\nvar $BACKSLASH = 92;\nvar $RBRACKET = 93;\nvar $CARET = 94;\nvar $_ = 95;\n\nvar $a = 97;\nvar $e = 101;\nvar $f = 102;\nvar $n = 110;\nvar $r = 114;\nvar $t = 116;\nvar $u = 117;\nvar $v = 118;\nvar $z = 122;\n\nvar $LBRACE = 123;\nvar $BAR = 124;\nvar $RBRACE = 125;\nvar $NBSP = 160;\n\nfunction isWhitespace(code) {\n return code >= $TAB && code <= $SPACE || code === $NBSP;\n}\n\nfunction isIdentifierStart(code) {\n return $a <= code && code <= $z || $A <= code && code <= $Z || code === $_ || code === $$;\n}\n\nfunction isIdentifierPart(code) {\n return $a <= code && code <= $z || $A <= code && code <= $Z || $0 <= code && code <= $9 || code === $_ || code === $$;\n}\n\nfunction isDigit(code) {\n return $0 <= code && code <= $9;\n}\n\nfunction isExponentStart(code) {\n return code === $e || code === $E;\n}\n\nfunction isExponentSign(code) {\n return code === $MINUS || code === $PLUS;\n}\n\nfunction unescape(code) {\n switch (code) {\n case $n:\n return $LF;\n case $f:\n return $FF;\n case $r:\n return $CR;\n case $t:\n return $TAB;\n case $v:\n return $VTAB;\n default:\n return code;\n }\n}\n\nfunction assert(condition, message) {\n if (!condition) {\n throw message || 'Assertion failed';\n }\n}\n\nvar EOF = new Token(-1, null);\n\nexport var Parser = function () {\n function Parser() {\n \n\n this.cache = {};\n this.lexer = new Lexer();\n }\n\n Parser.prototype.parse = function parse(input) {\n input = input || '';\n\n return this.cache[input] || (this.cache[input] = new ParserImplementation(this.lexer, input).parseChain());\n };\n\n return Parser;\n}();\n\nexport var ParserImplementation = function () {\n function ParserImplementation(lexer, input) {\n \n\n this.index = 0;\n this.input = input;\n this.tokens = lexer.lex(input);\n }\n\n ParserImplementation.prototype.parseChain = function parseChain() {\n var isChain = false;\n var expressions = [];\n\n while (this.optional(';')) {\n isChain = true;\n }\n\n while (this.index < this.tokens.length) {\n if (this.peek.text === ')' || this.peek.text === '}' || this.peek.text === ']') {\n this.error('Unconsumed token ' + this.peek.text);\n }\n\n var expr = this.parseBindingBehavior();\n expressions.push(expr);\n\n while (this.optional(';')) {\n isChain = true;\n }\n\n if (isChain) {\n this.error('Multiple expressions are not allowed.');\n }\n }\n\n return expressions.length === 1 ? expressions[0] : new Chain(expressions);\n };\n\n ParserImplementation.prototype.parseBindingBehavior = function parseBindingBehavior() {\n var result = this.parseValueConverter();\n\n while (this.optional('&')) {\n var name = this.peek.text;\n var args = [];\n\n this.advance();\n\n while (this.optional(':')) {\n args.push(this.parseExpression());\n }\n\n result = new BindingBehavior(result, name, args);\n }\n\n return result;\n };\n\n ParserImplementation.prototype.parseValueConverter = function parseValueConverter() {\n var result = this.parseExpression();\n\n while (this.optional('|')) {\n var name = this.peek.text;\n var args = [];\n\n this.advance();\n\n while (this.optional(':')) {\n args.push(this.parseExpression());\n }\n\n result = new ValueConverter(result, name, args, [result].concat(args));\n }\n\n return result;\n };\n\n ParserImplementation.prototype.parseExpression = function parseExpression() {\n var start = this.peek.index;\n var result = this.parseConditional();\n\n while (this.peek.text === '=') {\n if (!result.isAssignable) {\n var end = this.index < this.tokens.length ? this.peek.index : this.input.length;\n var _expression = this.input.substring(start, end);\n\n this.error('Expression ' + _expression + ' is not assignable');\n }\n\n this.expect('=');\n result = new Assign(result, this.parseConditional());\n }\n\n return result;\n };\n\n ParserImplementation.prototype.parseConditional = function parseConditional() {\n var start = this.peek.index;\n var result = this.parseLogicalOr();\n\n if (this.optional('?')) {\n var yes = this.parseExpression();\n\n if (!this.optional(':')) {\n var end = this.index < this.tokens.length ? this.peek.index : this.input.length;\n var _expression2 = this.input.substring(start, end);\n\n this.error('Conditional expression ' + _expression2 + ' requires all 3 expressions');\n }\n\n var no = this.parseExpression();\n result = new Conditional(result, yes, no);\n }\n\n return result;\n };\n\n ParserImplementation.prototype.parseLogicalOr = function parseLogicalOr() {\n var result = this.parseLogicalAnd();\n\n while (this.optional('||')) {\n result = new Binary('||', result, this.parseLogicalAnd());\n }\n\n return result;\n };\n\n ParserImplementation.prototype.parseLogicalAnd = function parseLogicalAnd() {\n var result = this.parseEquality();\n\n while (this.optional('&&')) {\n result = new Binary('&&', result, this.parseEquality());\n }\n\n return result;\n };\n\n ParserImplementation.prototype.parseEquality = function parseEquality() {\n var result = this.parseRelational();\n\n while (true) {\n if (this.optional('==')) {\n result = new Binary('==', result, this.parseRelational());\n } else if (this.optional('!=')) {\n result = new Binary('!=', result, this.parseRelational());\n } else if (this.optional('===')) {\n result = new Binary('===', result, this.parseRelational());\n } else if (this.optional('!==')) {\n result = new Binary('!==', result, this.parseRelational());\n } else {\n return result;\n }\n }\n };\n\n ParserImplementation.prototype.parseRelational = function parseRelational() {\n var result = this.parseAdditive();\n\n while (true) {\n if (this.optional('<')) {\n result = new Binary('<', result, this.parseAdditive());\n } else if (this.optional('>')) {\n result = new Binary('>', result, this.parseAdditive());\n } else if (this.optional('<=')) {\n result = new Binary('<=', result, this.parseAdditive());\n } else if (this.optional('>=')) {\n result = new Binary('>=', result, this.parseAdditive());\n } else {\n return result;\n }\n }\n };\n\n ParserImplementation.prototype.parseAdditive = function parseAdditive() {\n var result = this.parseMultiplicative();\n\n while (true) {\n if (this.optional('+')) {\n result = new Binary('+', result, this.parseMultiplicative());\n } else if (this.optional('-')) {\n result = new Binary('-', result, this.parseMultiplicative());\n } else {\n return result;\n }\n }\n };\n\n ParserImplementation.prototype.parseMultiplicative = function parseMultiplicative() {\n var result = this.parsePrefix();\n\n while (true) {\n if (this.optional('*')) {\n result = new Binary('*', result, this.parsePrefix());\n } else if (this.optional('%')) {\n result = new Binary('%', result, this.parsePrefix());\n } else if (this.optional('/')) {\n result = new Binary('/', result, this.parsePrefix());\n } else {\n return result;\n }\n }\n };\n\n ParserImplementation.prototype.parsePrefix = function parsePrefix() {\n if (this.optional('+')) {\n return this.parsePrefix();\n } else if (this.optional('-')) {\n return new Binary('-', new LiteralPrimitive(0), this.parsePrefix());\n } else if (this.optional('!')) {\n return new PrefixNot('!', this.parsePrefix());\n }\n\n return this.parseAccessOrCallMember();\n };\n\n ParserImplementation.prototype.parseAccessOrCallMember = function parseAccessOrCallMember() {\n var result = this.parsePrimary();\n\n while (true) {\n if (this.optional('.')) {\n var name = this.peek.text;\n\n this.advance();\n\n if (this.optional('(')) {\n var args = this.parseExpressionList(')');\n this.expect(')');\n if (result instanceof AccessThis) {\n result = new CallScope(name, args, result.ancestor);\n } else {\n result = new CallMember(result, name, args);\n }\n } else {\n if (result instanceof AccessThis) {\n result = new AccessScope(name, result.ancestor);\n } else {\n result = new AccessMember(result, name);\n }\n }\n } else if (this.optional('[')) {\n var key = this.parseExpression();\n this.expect(']');\n result = new AccessKeyed(result, key);\n } else if (this.optional('(')) {\n var _args = this.parseExpressionList(')');\n this.expect(')');\n result = new CallFunction(result, _args);\n } else {\n return result;\n }\n }\n };\n\n ParserImplementation.prototype.parsePrimary = function parsePrimary() {\n if (this.optional('(')) {\n var result = this.parseExpression();\n this.expect(')');\n return result;\n } else if (this.optional('null')) {\n return new LiteralPrimitive(null);\n } else if (this.optional('undefined')) {\n return new LiteralPrimitive(undefined);\n } else if (this.optional('true')) {\n return new LiteralPrimitive(true);\n } else if (this.optional('false')) {\n return new LiteralPrimitive(false);\n } else if (this.optional('[')) {\n var elements = this.parseExpressionList(']');\n this.expect(']');\n return new LiteralArray(elements);\n } else if (this.peek.text === '{') {\n return this.parseObject();\n } else if (this.peek.key !== null && this.peek.key !== undefined) {\n return this.parseAccessOrCallScope();\n } else if (this.peek.value !== null && this.peek.value !== undefined) {\n var value = this.peek.value;\n this.advance();\n return value instanceof String || typeof value === 'string' ? new LiteralString(value) : new LiteralPrimitive(value);\n } else if (this.index >= this.tokens.length) {\n throw new Error('Unexpected end of expression: ' + this.input);\n } else {\n this.error('Unexpected token ' + this.peek.text);\n }\n };\n\n ParserImplementation.prototype.parseAccessOrCallScope = function parseAccessOrCallScope() {\n var name = this.peek.key;\n\n this.advance();\n\n if (name === '$this') {\n return new AccessThis(0);\n }\n\n var ancestor = 0;\n while (name === '$parent') {\n ancestor++;\n if (this.optional('.')) {\n name = this.peek.key;\n this.advance();\n } else if (this.peek === EOF || this.peek.text === '(' || this.peek.text === ')' || this.peek.text === '[' || this.peek.text === '}' || this.peek.text === ',') {\n return new AccessThis(ancestor);\n } else {\n this.error('Unexpected token ' + this.peek.text);\n }\n }\n\n if (this.optional('(')) {\n var args = this.parseExpressionList(')');\n this.expect(')');\n return new CallScope(name, args, ancestor);\n }\n\n return new AccessScope(name, ancestor);\n };\n\n ParserImplementation.prototype.parseObject = function parseObject() {\n var keys = [];\n var values = [];\n\n this.expect('{');\n\n if (this.peek.text !== '}') {\n do {\n var peek = this.peek;\n var value = peek.value;\n keys.push(typeof value === 'string' ? value : peek.text);\n\n this.advance();\n if (peek.key && (this.peek.text === ',' || this.peek.text === '}')) {\n --this.index;\n values.push(this.parseAccessOrCallScope());\n } else {\n this.expect(':');\n values.push(this.parseExpression());\n }\n } while (this.optional(','));\n }\n\n this.expect('}');\n\n return new LiteralObject(keys, values);\n };\n\n ParserImplementation.prototype.parseExpressionList = function parseExpressionList(terminator) {\n var result = [];\n\n if (this.peek.text !== terminator) {\n do {\n result.push(this.parseExpression());\n } while (this.optional(','));\n }\n\n return result;\n };\n\n ParserImplementation.prototype.optional = function optional(text) {\n if (this.peek.text === text) {\n this.advance();\n return true;\n }\n\n return false;\n };\n\n ParserImplementation.prototype.expect = function expect(text) {\n if (this.peek.text === text) {\n this.advance();\n } else {\n this.error('Missing expected ' + text);\n }\n };\n\n ParserImplementation.prototype.advance = function advance() {\n this.index++;\n };\n\n ParserImplementation.prototype.error = function error(message) {\n var location = this.index < this.tokens.length ? 'at column ' + (this.tokens[this.index].index + 1) + ' in' : 'at the end of the expression';\n\n throw new Error('Parser Error: ' + message + ' ' + location + ' [' + this.input + ']');\n };\n\n _createClass(ParserImplementation, [{\n key: 'peek',\n get: function get() {\n return this.index < this.tokens.length ? this.tokens[this.index] : EOF;\n }\n }]);\n\n return ParserImplementation;\n}();\n\nvar mapProto = Map.prototype;\n\nfunction _getMapObserver(taskQueue, map) {\n return ModifyMapObserver.for(taskQueue, map);\n}\n\nvar ModifyMapObserver = function (_ModifyCollectionObse2) {\n _inherits(ModifyMapObserver, _ModifyCollectionObse2);\n\n function ModifyMapObserver(taskQueue, map) {\n \n\n return _possibleConstructorReturn(this, _ModifyCollectionObse2.call(this, taskQueue, map));\n }\n\n ModifyMapObserver.for = function _for(taskQueue, map) {\n if (!('__map_observer__' in map)) {\n Reflect.defineProperty(map, '__map_observer__', {\n value: ModifyMapObserver.create(taskQueue, map),\n enumerable: false, configurable: false\n });\n }\n return map.__map_observer__;\n };\n\n ModifyMapObserver.create = function create(taskQueue, map) {\n var observer = new ModifyMapObserver(taskQueue, map);\n\n var proto = mapProto;\n if (proto.set !== map.set || proto.delete !== map.delete || proto.clear !== map.clear) {\n proto = {\n set: map.set,\n delete: map.delete,\n clear: map.clear\n };\n }\n\n map.set = function () {\n var hasValue = map.has(arguments[0]);\n var type = hasValue ? 'update' : 'add';\n var oldValue = map.get(arguments[0]);\n var methodCallResult = proto.set.apply(map, arguments);\n if (!hasValue || oldValue !== map.get(arguments[0])) {\n observer.addChangeRecord({\n type: type,\n object: map,\n key: arguments[0],\n oldValue: oldValue\n });\n }\n return methodCallResult;\n };\n\n map.delete = function () {\n var hasValue = map.has(arguments[0]);\n var oldValue = map.get(arguments[0]);\n var methodCallResult = proto.delete.apply(map, arguments);\n if (hasValue) {\n observer.addChangeRecord({\n type: 'delete',\n object: map,\n key: arguments[0],\n oldValue: oldValue\n });\n }\n return methodCallResult;\n };\n\n map.clear = function () {\n var methodCallResult = proto.clear.apply(map, arguments);\n observer.addChangeRecord({\n type: 'clear',\n object: map\n });\n return methodCallResult;\n };\n\n return observer;\n };\n\n return ModifyMapObserver;\n}(ModifyCollectionObserver);\n\nfunction findOriginalEventTarget(event) {\n return event.path && event.path[0] || event.deepPath && event.deepPath[0] || event.target;\n}\n\nfunction stopPropagation() {\n this.standardStopPropagation();\n this.propagationStopped = true;\n}\n\nfunction interceptStopPropagation(event) {\n event.standardStopPropagation = event.stopPropagation;\n event.stopPropagation = stopPropagation;\n}\n\nfunction handleCapturedEvent(event) {\n var interceptInstalled = false;\n event.propagationStopped = false;\n var target = findOriginalEventTarget(event);\n\n var orderedCallbacks = [];\n\n while (target) {\n if (target.capturedCallbacks) {\n var callback = target.capturedCallbacks[event.type];\n if (callback) {\n if (!interceptInstalled) {\n interceptStopPropagation(event);\n interceptInstalled = true;\n }\n orderedCallbacks.push(callback);\n }\n }\n target = target.parentNode;\n }\n for (var _i22 = orderedCallbacks.length - 1; _i22 >= 0; _i22--) {\n var orderedCallback = orderedCallbacks[_i22];\n orderedCallback(event);\n if (event.propagationStopped) {\n break;\n }\n }\n}\n\nvar CapturedHandlerEntry = function () {\n function CapturedHandlerEntry(eventName) {\n \n\n this.eventName = eventName;\n this.count = 0;\n }\n\n CapturedHandlerEntry.prototype.increment = function increment() {\n this.count++;\n\n if (this.count === 1) {\n DOM.addEventListener(this.eventName, handleCapturedEvent, true);\n }\n };\n\n CapturedHandlerEntry.prototype.decrement = function decrement() {\n this.count--;\n\n if (this.count === 0) {\n DOM.removeEventListener(this.eventName, handleCapturedEvent, true);\n }\n };\n\n return CapturedHandlerEntry;\n}();\n\nfunction handleDelegatedEvent(event) {\n var interceptInstalled = false;\n event.propagationStopped = false;\n var target = findOriginalEventTarget(event);\n\n while (target && !event.propagationStopped) {\n if (target.delegatedCallbacks) {\n var callback = target.delegatedCallbacks[event.type];\n if (callback) {\n if (!interceptInstalled) {\n interceptStopPropagation(event);\n interceptInstalled = true;\n }\n callback(event);\n }\n }\n\n target = target.parentNode;\n }\n}\n\nvar DelegateHandlerEntry = function () {\n function DelegateHandlerEntry(eventName) {\n \n\n this.eventName = eventName;\n this.count = 0;\n }\n\n DelegateHandlerEntry.prototype.increment = function increment() {\n this.count++;\n\n if (this.count === 1) {\n DOM.addEventListener(this.eventName, handleDelegatedEvent, false);\n }\n };\n\n DelegateHandlerEntry.prototype.decrement = function decrement() {\n this.count--;\n\n if (this.count === 0) {\n DOM.removeEventListener(this.eventName, handleDelegatedEvent);\n }\n };\n\n return DelegateHandlerEntry;\n}();\n\nvar DefaultEventStrategy = function () {\n function DefaultEventStrategy() {\n \n\n this.delegatedHandlers = {};\n this.capturedHandlers = {};\n }\n\n DefaultEventStrategy.prototype.subscribe = function subscribe(target, targetEvent, callback, strategy) {\n var _this22 = this;\n\n var delegatedHandlers = void 0;\n var capturedHandlers = void 0;\n var handlerEntry = void 0;\n\n if (strategy === delegationStrategy.bubbling) {\n var _ret = function () {\n delegatedHandlers = _this22.delegatedHandlers;\n handlerEntry = delegatedHandlers[targetEvent] || (delegatedHandlers[targetEvent] = new DelegateHandlerEntry(targetEvent));\n var delegatedCallbacks = target.delegatedCallbacks || (target.delegatedCallbacks = {});\n\n handlerEntry.increment();\n delegatedCallbacks[targetEvent] = callback;\n\n return {\n v: function v() {\n handlerEntry.decrement();\n delegatedCallbacks[targetEvent] = null;\n }\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n if (strategy === delegationStrategy.capturing) {\n var _ret2 = function () {\n capturedHandlers = _this22.capturedHandlers;\n handlerEntry = capturedHandlers[targetEvent] || (capturedHandlers[targetEvent] = new CapturedHandlerEntry(targetEvent));\n var capturedCallbacks = target.capturedCallbacks || (target.capturedCallbacks = {});\n\n handlerEntry.increment();\n capturedCallbacks[targetEvent] = callback;\n\n return {\n v: function v() {\n handlerEntry.decrement();\n capturedCallbacks[targetEvent] = null;\n }\n };\n }();\n\n if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === \"object\") return _ret2.v;\n }\n\n target.addEventListener(targetEvent, callback, false);\n\n return function () {\n target.removeEventListener(targetEvent, callback);\n };\n };\n\n return DefaultEventStrategy;\n}();\n\nexport var delegationStrategy = {\n none: 0,\n capturing: 1,\n bubbling: 2\n};\n\nexport var EventManager = function () {\n function EventManager() {\n \n\n this.elementHandlerLookup = {};\n this.eventStrategyLookup = {};\n\n this.registerElementConfig({\n tagName: 'input',\n properties: {\n value: ['change', 'input'],\n checked: ['change', 'input'],\n files: ['change', 'input']\n }\n });\n\n this.registerElementConfig({\n tagName: 'textarea',\n properties: {\n value: ['change', 'input']\n }\n });\n\n this.registerElementConfig({\n tagName: 'select',\n properties: {\n value: ['change']\n }\n });\n\n this.registerElementConfig({\n tagName: 'content editable',\n properties: {\n value: ['change', 'input', 'blur', 'keyup', 'paste']\n }\n });\n\n this.registerElementConfig({\n tagName: 'scrollable element',\n properties: {\n scrollTop: ['scroll'],\n scrollLeft: ['scroll']\n }\n });\n\n this.defaultEventStrategy = new DefaultEventStrategy();\n }\n\n EventManager.prototype.registerElementConfig = function registerElementConfig(config) {\n var tagName = config.tagName.toLowerCase();\n var properties = config.properties;\n var propertyName = void 0;\n\n this.elementHandlerLookup[tagName] = {};\n\n for (propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this.registerElementPropertyConfig(tagName, propertyName, properties[propertyName]);\n }\n }\n };\n\n EventManager.prototype.registerElementPropertyConfig = function registerElementPropertyConfig(tagName, propertyName, events) {\n this.elementHandlerLookup[tagName][propertyName] = this.createElementHandler(events);\n };\n\n EventManager.prototype.createElementHandler = function createElementHandler(events) {\n return {\n subscribe: function subscribe(target, callback) {\n events.forEach(function (changeEvent) {\n target.addEventListener(changeEvent, callback, false);\n });\n\n return function () {\n events.forEach(function (changeEvent) {\n target.removeEventListener(changeEvent, callback);\n });\n };\n }\n };\n };\n\n EventManager.prototype.registerElementHandler = function registerElementHandler(tagName, handler) {\n this.elementHandlerLookup[tagName.toLowerCase()] = handler;\n };\n\n EventManager.prototype.registerEventStrategy = function registerEventStrategy(eventName, strategy) {\n this.eventStrategyLookup[eventName] = strategy;\n };\n\n EventManager.prototype.getElementHandler = function getElementHandler(target, propertyName) {\n var tagName = void 0;\n var lookup = this.elementHandlerLookup;\n\n if (target.tagName) {\n tagName = target.tagName.toLowerCase();\n\n if (lookup[tagName] && lookup[tagName][propertyName]) {\n return lookup[tagName][propertyName];\n }\n\n if (propertyName === 'textContent' || propertyName === 'innerHTML') {\n return lookup['content editable'].value;\n }\n\n if (propertyName === 'scrollTop' || propertyName === 'scrollLeft') {\n return lookup['scrollable element'][propertyName];\n }\n }\n\n return null;\n };\n\n EventManager.prototype.addEventListener = function addEventListener(target, targetEvent, callback, delegate) {\n return (this.eventStrategyLookup[targetEvent] || this.defaultEventStrategy).subscribe(target, targetEvent, callback, delegate);\n };\n\n return EventManager;\n}();\n\nexport var DirtyChecker = function () {\n function DirtyChecker() {\n \n\n this.tracked = [];\n this.checkDelay = 120;\n }\n\n DirtyChecker.prototype.addProperty = function addProperty(property) {\n var tracked = this.tracked;\n\n tracked.push(property);\n\n if (tracked.length === 1) {\n this.scheduleDirtyCheck();\n }\n };\n\n DirtyChecker.prototype.removeProperty = function removeProperty(property) {\n var tracked = this.tracked;\n tracked.splice(tracked.indexOf(property), 1);\n };\n\n DirtyChecker.prototype.scheduleDirtyCheck = function scheduleDirtyCheck() {\n var _this23 = this;\n\n setTimeout(function () {\n return _this23.check();\n }, this.checkDelay);\n };\n\n DirtyChecker.prototype.check = function check() {\n var tracked = this.tracked;\n var i = tracked.length;\n\n while (i--) {\n var current = tracked[i];\n\n if (current.isDirty()) {\n current.call();\n }\n }\n\n if (tracked.length) {\n this.scheduleDirtyCheck();\n }\n };\n\n return DirtyChecker;\n}();\n\nexport var DirtyCheckProperty = (_dec5 = subscriberCollection(), _dec5(_class5 = function () {\n function DirtyCheckProperty(dirtyChecker, obj, propertyName) {\n \n\n this.dirtyChecker = dirtyChecker;\n this.obj = obj;\n this.propertyName = propertyName;\n }\n\n DirtyCheckProperty.prototype.getValue = function getValue() {\n return this.obj[this.propertyName];\n };\n\n DirtyCheckProperty.prototype.setValue = function setValue(newValue) {\n this.obj[this.propertyName] = newValue;\n };\n\n DirtyCheckProperty.prototype.call = function call() {\n var oldValue = this.oldValue;\n var newValue = this.getValue();\n\n this.callSubscribers(newValue, oldValue);\n\n this.oldValue = newValue;\n };\n\n DirtyCheckProperty.prototype.isDirty = function isDirty() {\n return this.oldValue !== this.obj[this.propertyName];\n };\n\n DirtyCheckProperty.prototype.subscribe = function subscribe(context, callable) {\n if (!this.hasSubscribers()) {\n this.oldValue = this.getValue();\n this.dirtyChecker.addProperty(this);\n }\n this.addSubscriber(context, callable);\n };\n\n DirtyCheckProperty.prototype.unsubscribe = function unsubscribe(context, callable) {\n if (this.removeSubscriber(context, callable) && !this.hasSubscribers()) {\n this.dirtyChecker.removeProperty(this);\n }\n };\n\n return DirtyCheckProperty;\n}()) || _class5);\n\nvar logger = LogManager.getLogger('property-observation');\n\nexport var propertyAccessor = {\n getValue: function getValue(obj, propertyName) {\n return obj[propertyName];\n },\n setValue: function setValue(value, obj, propertyName) {\n obj[propertyName] = value;\n }\n};\n\nexport var PrimitiveObserver = function () {\n function PrimitiveObserver(primitive, propertyName) {\n \n\n this.doNotCache = true;\n\n this.primitive = primitive;\n this.propertyName = propertyName;\n }\n\n PrimitiveObserver.prototype.getValue = function getValue() {\n return this.primitive[this.propertyName];\n };\n\n PrimitiveObserver.prototype.setValue = function setValue() {\n var type = _typeof(this.primitive);\n throw new Error('The ' + this.propertyName + ' property of a ' + type + ' (' + this.primitive + ') cannot be assigned.');\n };\n\n PrimitiveObserver.prototype.subscribe = function subscribe() {};\n\n PrimitiveObserver.prototype.unsubscribe = function unsubscribe() {};\n\n return PrimitiveObserver;\n}();\n\nexport var SetterObserver = (_dec6 = subscriberCollection(), _dec6(_class7 = function () {\n function SetterObserver(taskQueue, obj, propertyName) {\n \n\n this.taskQueue = taskQueue;\n this.obj = obj;\n this.propertyName = propertyName;\n this.queued = false;\n this.observing = false;\n }\n\n SetterObserver.prototype.getValue = function getValue() {\n return this.obj[this.propertyName];\n };\n\n SetterObserver.prototype.setValue = function setValue(newValue) {\n this.obj[this.propertyName] = newValue;\n };\n\n SetterObserver.prototype.getterValue = function getterValue() {\n return this.currentValue;\n };\n\n SetterObserver.prototype.setterValue = function setterValue(newValue) {\n var oldValue = this.currentValue;\n\n if (oldValue !== newValue) {\n if (!this.queued) {\n this.oldValue = oldValue;\n this.queued = true;\n this.taskQueue.queueMicroTask(this);\n }\n\n this.currentValue = newValue;\n }\n };\n\n SetterObserver.prototype.call = function call() {\n var oldValue = this.oldValue;\n var newValue = this.currentValue;\n\n this.queued = false;\n\n this.callSubscribers(newValue, oldValue);\n };\n\n SetterObserver.prototype.subscribe = function subscribe(context, callable) {\n if (!this.observing) {\n this.convertProperty();\n }\n this.addSubscriber(context, callable);\n };\n\n SetterObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n this.removeSubscriber(context, callable);\n };\n\n SetterObserver.prototype.convertProperty = function convertProperty() {\n this.observing = true;\n this.currentValue = this.obj[this.propertyName];\n this.setValue = this.setterValue;\n this.getValue = this.getterValue;\n\n if (!Reflect.defineProperty(this.obj, this.propertyName, {\n configurable: true,\n enumerable: this.propertyName in this.obj ? this.obj.propertyIsEnumerable(this.propertyName) : true,\n get: this.getValue.bind(this),\n set: this.setValue.bind(this)\n })) {\n logger.warn('Cannot observe property \\'' + this.propertyName + '\\' of object', this.obj);\n }\n };\n\n return SetterObserver;\n}()) || _class7);\n\nexport var XLinkAttributeObserver = function () {\n function XLinkAttributeObserver(element, propertyName, attributeName) {\n \n\n this.element = element;\n this.propertyName = propertyName;\n this.attributeName = attributeName;\n }\n\n XLinkAttributeObserver.prototype.getValue = function getValue() {\n return this.element.getAttributeNS('http://www.w3.org/1999/xlink', this.attributeName);\n };\n\n XLinkAttributeObserver.prototype.setValue = function setValue(newValue) {\n return this.element.setAttributeNS('http://www.w3.org/1999/xlink', this.attributeName, newValue);\n };\n\n XLinkAttributeObserver.prototype.subscribe = function subscribe() {\n throw new Error('Observation of a \"' + this.element.nodeName + '\" element\\'s \"' + this.propertyName + '\" property is not supported.');\n };\n\n return XLinkAttributeObserver;\n}();\n\nexport var dataAttributeAccessor = {\n getValue: function getValue(obj, propertyName) {\n return obj.getAttribute(propertyName);\n },\n setValue: function setValue(value, obj, propertyName) {\n return obj.setAttribute(propertyName, value);\n }\n};\n\nexport var DataAttributeObserver = function () {\n function DataAttributeObserver(element, propertyName) {\n \n\n this.element = element;\n this.propertyName = propertyName;\n }\n\n DataAttributeObserver.prototype.getValue = function getValue() {\n return this.element.getAttribute(this.propertyName);\n };\n\n DataAttributeObserver.prototype.setValue = function setValue(newValue) {\n return this.element.setAttribute(this.propertyName, newValue);\n };\n\n DataAttributeObserver.prototype.subscribe = function subscribe() {\n throw new Error('Observation of a \"' + this.element.nodeName + '\" element\\'s \"' + this.propertyName + '\" property is not supported.');\n };\n\n return DataAttributeObserver;\n}();\n\nexport var StyleObserver = function () {\n function StyleObserver(element, propertyName) {\n \n\n this.element = element;\n this.propertyName = propertyName;\n\n this.styles = null;\n this.version = 0;\n }\n\n StyleObserver.prototype.getValue = function getValue() {\n return this.element.style.cssText;\n };\n\n StyleObserver.prototype._setProperty = function _setProperty(style, value) {\n var priority = '';\n\n if (value !== null && value !== undefined && typeof value.indexOf === 'function' && value.indexOf('!important') !== -1) {\n priority = 'important';\n value = value.replace('!important', '');\n }\n this.element.style.setProperty(style, value, priority);\n };\n\n StyleObserver.prototype.setValue = function setValue(newValue) {\n var styles = this.styles || {};\n var style = void 0;\n var version = this.version;\n\n if (newValue !== null && newValue !== undefined) {\n if (newValue instanceof Object) {\n var value = void 0;\n for (style in newValue) {\n if (newValue.hasOwnProperty(style)) {\n value = newValue[style];\n style = style.replace(/([A-Z])/g, function (m) {\n return '-' + m.toLowerCase();\n });\n styles[style] = version;\n this._setProperty(style, value);\n }\n }\n } else if (newValue.length) {\n var rx = /\\s*([\\w\\-]+)\\s*:\\s*((?:(?:[\\w\\-]+\\(\\s*(?:\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[\\w\\-]+\\(\\s*(?:^\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^\\)]*)\\),?|[^\\)]*)\\),?|\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^;]*),?\\s*)+);?/g;\n var pair = void 0;\n while ((pair = rx.exec(newValue)) !== null) {\n style = pair[1];\n if (!style) {\n continue;\n }\n\n styles[style] = version;\n this._setProperty(style, pair[2]);\n }\n }\n }\n\n this.styles = styles;\n this.version += 1;\n\n if (version === 0) {\n return;\n }\n\n version -= 1;\n for (style in styles) {\n if (!styles.hasOwnProperty(style) || styles[style] !== version) {\n continue;\n }\n\n this.element.style.removeProperty(style);\n }\n };\n\n StyleObserver.prototype.subscribe = function subscribe() {\n throw new Error('Observation of a \"' + this.element.nodeName + '\" element\\'s \"' + this.propertyName + '\" property is not supported.');\n };\n\n return StyleObserver;\n}();\n\nexport var ValueAttributeObserver = (_dec7 = subscriberCollection(), _dec7(_class8 = function () {\n function ValueAttributeObserver(element, propertyName, handler) {\n \n\n this.element = element;\n this.propertyName = propertyName;\n this.handler = handler;\n if (propertyName === 'files') {\n this.setValue = function () {};\n }\n }\n\n ValueAttributeObserver.prototype.getValue = function getValue() {\n return this.element[this.propertyName];\n };\n\n ValueAttributeObserver.prototype.setValue = function setValue(newValue) {\n newValue = newValue === undefined || newValue === null ? '' : newValue;\n if (this.element[this.propertyName] !== newValue) {\n this.element[this.propertyName] = newValue;\n this.notify();\n }\n };\n\n ValueAttributeObserver.prototype.notify = function notify() {\n var oldValue = this.oldValue;\n var newValue = this.getValue();\n\n this.callSubscribers(newValue, oldValue);\n\n this.oldValue = newValue;\n };\n\n ValueAttributeObserver.prototype.subscribe = function subscribe(context, callable) {\n if (!this.hasSubscribers()) {\n this.oldValue = this.getValue();\n this.disposeHandler = this.handler.subscribe(this.element, this.notify.bind(this));\n }\n\n this.addSubscriber(context, callable);\n };\n\n ValueAttributeObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n if (this.removeSubscriber(context, callable) && !this.hasSubscribers()) {\n this.disposeHandler();\n this.disposeHandler = null;\n }\n };\n\n return ValueAttributeObserver;\n}()) || _class8);\n\nvar checkedArrayContext = 'CheckedObserver:array';\nvar checkedValueContext = 'CheckedObserver:value';\n\nexport var CheckedObserver = (_dec8 = subscriberCollection(), _dec8(_class9 = function () {\n function CheckedObserver(element, handler, observerLocator) {\n \n\n this.element = element;\n this.handler = handler;\n this.observerLocator = observerLocator;\n }\n\n CheckedObserver.prototype.getValue = function getValue() {\n return this.value;\n };\n\n CheckedObserver.prototype.setValue = function setValue(newValue) {\n if (this.initialSync && this.value === newValue) {\n return;\n }\n\n if (this.arrayObserver) {\n this.arrayObserver.unsubscribe(checkedArrayContext, this);\n this.arrayObserver = null;\n }\n\n if (this.element.type === 'checkbox' && Array.isArray(newValue)) {\n this.arrayObserver = this.observerLocator.getArrayObserver(newValue);\n this.arrayObserver.subscribe(checkedArrayContext, this);\n }\n\n this.oldValue = this.value;\n this.value = newValue;\n this.synchronizeElement();\n this.notify();\n\n if (!this.initialSync) {\n this.initialSync = true;\n this.observerLocator.taskQueue.queueMicroTask(this);\n }\n };\n\n CheckedObserver.prototype.call = function call(context, splices) {\n this.synchronizeElement();\n\n if (!this.valueObserver) {\n this.valueObserver = this.element.__observers__.model || this.element.__observers__.value;\n if (this.valueObserver) {\n this.valueObserver.subscribe(checkedValueContext, this);\n }\n }\n };\n\n CheckedObserver.prototype.synchronizeElement = function synchronizeElement() {\n var value = this.value;\n var element = this.element;\n var elementValue = element.hasOwnProperty('model') ? element.model : element.value;\n var isRadio = element.type === 'radio';\n var matcher = element.matcher || function (a, b) {\n return a === b;\n };\n\n element.checked = isRadio && !!matcher(value, elementValue) || !isRadio && value === true || !isRadio && Array.isArray(value) && value.findIndex(function (item) {\n return !!matcher(item, elementValue);\n }) !== -1;\n };\n\n CheckedObserver.prototype.synchronizeValue = function synchronizeValue() {\n var value = this.value;\n var element = this.element;\n var elementValue = element.hasOwnProperty('model') ? element.model : element.value;\n var index = void 0;\n var matcher = element.matcher || function (a, b) {\n return a === b;\n };\n\n if (element.type === 'checkbox') {\n if (Array.isArray(value)) {\n index = value.findIndex(function (item) {\n return !!matcher(item, elementValue);\n });\n if (element.checked && index === -1) {\n value.push(elementValue);\n } else if (!element.checked && index !== -1) {\n value.splice(index, 1);\n }\n\n return;\n }\n\n value = element.checked;\n } else if (element.checked) {\n value = elementValue;\n } else {\n return;\n }\n\n this.oldValue = this.value;\n this.value = value;\n this.notify();\n };\n\n CheckedObserver.prototype.notify = function notify() {\n var oldValue = this.oldValue;\n var newValue = this.value;\n\n if (newValue === oldValue) {\n return;\n }\n\n this.callSubscribers(newValue, oldValue);\n };\n\n CheckedObserver.prototype.subscribe = function subscribe(context, callable) {\n if (!this.hasSubscribers()) {\n this.disposeHandler = this.handler.subscribe(this.element, this.synchronizeValue.bind(this, false));\n }\n this.addSubscriber(context, callable);\n };\n\n CheckedObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n if (this.removeSubscriber(context, callable) && !this.hasSubscribers()) {\n this.disposeHandler();\n this.disposeHandler = null;\n }\n };\n\n CheckedObserver.prototype.unbind = function unbind() {\n if (this.arrayObserver) {\n this.arrayObserver.unsubscribe(checkedArrayContext, this);\n this.arrayObserver = null;\n }\n if (this.valueObserver) {\n this.valueObserver.unsubscribe(checkedValueContext, this);\n }\n };\n\n return CheckedObserver;\n}()) || _class9);\n\nvar selectArrayContext = 'SelectValueObserver:array';\n\nexport var SelectValueObserver = (_dec9 = subscriberCollection(), _dec9(_class10 = function () {\n function SelectValueObserver(element, handler, observerLocator) {\n \n\n this.element = element;\n this.handler = handler;\n this.observerLocator = observerLocator;\n }\n\n SelectValueObserver.prototype.getValue = function getValue() {\n return this.value;\n };\n\n SelectValueObserver.prototype.setValue = function setValue(newValue) {\n if (newValue !== null && newValue !== undefined && this.element.multiple && !Array.isArray(newValue)) {\n throw new Error('Only null or Array instances can be bound to a multi-select.');\n }\n if (this.value === newValue) {\n return;\n }\n\n if (this.arrayObserver) {\n this.arrayObserver.unsubscribe(selectArrayContext, this);\n this.arrayObserver = null;\n }\n\n if (Array.isArray(newValue)) {\n this.arrayObserver = this.observerLocator.getArrayObserver(newValue);\n this.arrayObserver.subscribe(selectArrayContext, this);\n }\n\n this.oldValue = this.value;\n this.value = newValue;\n this.synchronizeOptions();\n this.notify();\n\n if (!this.initialSync) {\n this.initialSync = true;\n this.observerLocator.taskQueue.queueMicroTask(this);\n }\n };\n\n SelectValueObserver.prototype.call = function call(context, splices) {\n this.synchronizeOptions();\n };\n\n SelectValueObserver.prototype.synchronizeOptions = function synchronizeOptions() {\n var value = this.value;\n var isArray = void 0;\n\n if (Array.isArray(value)) {\n isArray = true;\n }\n\n var options = this.element.options;\n var i = options.length;\n var matcher = this.element.matcher || function (a, b) {\n return a === b;\n };\n\n var _loop = function _loop() {\n var option = options.item(i);\n var optionValue = option.hasOwnProperty('model') ? option.model : option.value;\n if (isArray) {\n option.selected = value.findIndex(function (item) {\n return !!matcher(optionValue, item);\n }) !== -1;\n return 'continue';\n }\n option.selected = !!matcher(optionValue, value);\n };\n\n while (i--) {\n var _ret3 = _loop();\n\n if (_ret3 === 'continue') continue;\n }\n };\n\n SelectValueObserver.prototype.synchronizeValue = function synchronizeValue() {\n var _this24 = this;\n\n var options = this.element.options;\n var count = 0;\n var value = [];\n\n for (var _i23 = 0, ii = options.length; _i23 < ii; _i23++) {\n var _option = options.item(_i23);\n if (!_option.selected) {\n continue;\n }\n value.push(_option.hasOwnProperty('model') ? _option.model : _option.value);\n count++;\n }\n\n if (this.element.multiple) {\n if (Array.isArray(this.value)) {\n var _ret4 = function () {\n var matcher = _this24.element.matcher || function (a, b) {\n return a === b;\n };\n\n var i = 0;\n\n var _loop2 = function _loop2() {\n var a = _this24.value[i];\n if (value.findIndex(function (b) {\n return matcher(a, b);\n }) === -1) {\n _this24.value.splice(i, 1);\n } else {\n i++;\n }\n };\n\n while (i < _this24.value.length) {\n _loop2();\n }\n\n i = 0;\n\n var _loop3 = function _loop3() {\n var a = value[i];\n if (_this24.value.findIndex(function (b) {\n return matcher(a, b);\n }) === -1) {\n _this24.value.push(a);\n }\n i++;\n };\n\n while (i < value.length) {\n _loop3();\n }\n return {\n v: void 0\n };\n }();\n\n if ((typeof _ret4 === 'undefined' ? 'undefined' : _typeof(_ret4)) === \"object\") return _ret4.v;\n }\n } else {\n if (count === 0) {\n value = null;\n } else {\n value = value[0];\n }\n }\n\n if (value !== this.value) {\n this.oldValue = this.value;\n this.value = value;\n this.notify();\n }\n };\n\n SelectValueObserver.prototype.notify = function notify() {\n var oldValue = this.oldValue;\n var newValue = this.value;\n\n this.callSubscribers(newValue, oldValue);\n };\n\n SelectValueObserver.prototype.subscribe = function subscribe(context, callable) {\n if (!this.hasSubscribers()) {\n this.disposeHandler = this.handler.subscribe(this.element, this.synchronizeValue.bind(this, false));\n }\n this.addSubscriber(context, callable);\n };\n\n SelectValueObserver.prototype.unsubscribe = function unsubscribe(context, callable) {\n if (this.removeSubscriber(context, callable) && !this.hasSubscribers()) {\n this.disposeHandler();\n this.disposeHandler = null;\n }\n };\n\n SelectValueObserver.prototype.bind = function bind() {\n var _this25 = this;\n\n this.domObserver = DOM.createMutationObserver(function () {\n _this25.synchronizeOptions();\n _this25.synchronizeValue();\n });\n this.domObserver.observe(this.element, { childList: true, subtree: true });\n };\n\n SelectValueObserver.prototype.unbind = function unbind() {\n this.domObserver.disconnect();\n this.domObserver = null;\n\n if (this.arrayObserver) {\n this.arrayObserver.unsubscribe(selectArrayContext, this);\n this.arrayObserver = null;\n }\n };\n\n return SelectValueObserver;\n}()) || _class10);\n\nexport var ClassObserver = function () {\n function ClassObserver(element) {\n \n\n this.element = element;\n this.doNotCache = true;\n this.value = '';\n this.version = 0;\n }\n\n ClassObserver.prototype.getValue = function getValue() {\n return this.value;\n };\n\n ClassObserver.prototype.setValue = function setValue(newValue) {\n var nameIndex = this.nameIndex || {};\n var version = this.version;\n var names = void 0;\n var name = void 0;\n\n if (newValue !== null && newValue !== undefined && newValue.length) {\n names = newValue.split(/\\s+/);\n for (var _i24 = 0, length = names.length; _i24 < length; _i24++) {\n name = names[_i24];\n if (name === '') {\n continue;\n }\n nameIndex[name] = version;\n this.element.classList.add(name);\n }\n }\n\n this.value = newValue;\n this.nameIndex = nameIndex;\n this.version += 1;\n\n if (version === 0) {\n return;\n }\n\n version -= 1;\n for (name in nameIndex) {\n if (!nameIndex.hasOwnProperty(name) || nameIndex[name] !== version) {\n continue;\n }\n this.element.classList.remove(name);\n }\n };\n\n ClassObserver.prototype.subscribe = function subscribe() {\n throw new Error('Observation of a \"' + this.element.nodeName + '\" element\\'s \"class\" property is not supported.');\n };\n\n return ClassObserver;\n}();\n\nexport function hasDeclaredDependencies(descriptor) {\n return !!(descriptor && descriptor.get && descriptor.get.dependencies);\n}\n\nexport function declarePropertyDependencies(ctor, propertyName, dependencies) {\n var descriptor = Object.getOwnPropertyDescriptor(ctor.prototype, propertyName);\n descriptor.get.dependencies = dependencies;\n}\n\nexport function computedFrom() {\n for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n return function (target, key, descriptor) {\n descriptor.get.dependencies = rest;\n return descriptor;\n };\n}\n\nexport var ComputedExpression = function (_Expression19) {\n _inherits(ComputedExpression, _Expression19);\n\n function ComputedExpression(name, dependencies) {\n \n\n var _this26 = _possibleConstructorReturn(this, _Expression19.call(this));\n\n _this26.name = name;\n _this26.dependencies = dependencies;\n _this26.isAssignable = true;\n return _this26;\n }\n\n ComputedExpression.prototype.evaluate = function evaluate(scope, lookupFunctions) {\n return scope.bindingContext[this.name];\n };\n\n ComputedExpression.prototype.assign = function assign(scope, value) {\n scope.bindingContext[this.name] = value;\n };\n\n ComputedExpression.prototype.accept = function accept(visitor) {\n throw new Error('not implemented');\n };\n\n ComputedExpression.prototype.connect = function connect(binding, scope) {\n var dependencies = this.dependencies;\n var i = dependencies.length;\n while (i--) {\n dependencies[i].connect(binding, scope);\n }\n };\n\n return ComputedExpression;\n}(Expression);\n\nexport function createComputedObserver(obj, propertyName, descriptor, observerLocator) {\n var dependencies = descriptor.get.dependencies;\n if (!(dependencies instanceof ComputedExpression)) {\n var _i25 = dependencies.length;\n while (_i25--) {\n dependencies[_i25] = observerLocator.parser.parse(dependencies[_i25]);\n }\n dependencies = descriptor.get.dependencies = new ComputedExpression(propertyName, dependencies);\n }\n\n var scope = { bindingContext: obj, overrideContext: createOverrideContext(obj) };\n return new ExpressionObserver(scope, dependencies, observerLocator);\n}\n\nvar svgElements = void 0;\nvar svgPresentationElements = void 0;\nvar svgPresentationAttributes = void 0;\nvar svgAnalyzer = void 0;\n\nif (typeof FEATURE_NO_SVG === 'undefined') {\n (function () {\n svgElements = {\n a: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'target', 'transform', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n altGlyph: ['class', 'dx', 'dy', 'externalResourcesRequired', 'format', 'glyphRef', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'rotate', 'style', 'systemLanguage', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n altGlyphDef: ['id', 'xml:base', 'xml:lang', 'xml:space'],\n altGlyphItem: ['id', 'xml:base', 'xml:lang', 'xml:space'],\n animate: ['accumulate', 'additive', 'attributeName', 'attributeType', 'begin', 'by', 'calcMode', 'dur', 'end', 'externalResourcesRequired', 'fill', 'from', 'id', 'keySplines', 'keyTimes', 'max', 'min', 'onbegin', 'onend', 'onload', 'onrepeat', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'systemLanguage', 'to', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n animateColor: ['accumulate', 'additive', 'attributeName', 'attributeType', 'begin', 'by', 'calcMode', 'dur', 'end', 'externalResourcesRequired', 'fill', 'from', 'id', 'keySplines', 'keyTimes', 'max', 'min', 'onbegin', 'onend', 'onload', 'onrepeat', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'systemLanguage', 'to', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n animateMotion: ['accumulate', 'additive', 'begin', 'by', 'calcMode', 'dur', 'end', 'externalResourcesRequired', 'fill', 'from', 'id', 'keyPoints', 'keySplines', 'keyTimes', 'max', 'min', 'onbegin', 'onend', 'onload', 'onrepeat', 'origin', 'path', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'rotate', 'systemLanguage', 'to', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n animateTransform: ['accumulate', 'additive', 'attributeName', 'attributeType', 'begin', 'by', 'calcMode', 'dur', 'end', 'externalResourcesRequired', 'fill', 'from', 'id', 'keySplines', 'keyTimes', 'max', 'min', 'onbegin', 'onend', 'onload', 'onrepeat', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'systemLanguage', 'to', 'type', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n circle: ['class', 'cx', 'cy', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'r', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n clipPath: ['class', 'clipPathUnits', 'externalResourcesRequired', 'id', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n 'color-profile': ['id', 'local', 'name', 'rendering-intent', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n cursor: ['externalResourcesRequired', 'id', 'requiredExtensions', 'requiredFeatures', 'systemLanguage', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n defs: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n desc: ['class', 'id', 'style', 'xml:base', 'xml:lang', 'xml:space'],\n ellipse: ['class', 'cx', 'cy', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'rx', 'ry', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n feBlend: ['class', 'height', 'id', 'in', 'in2', 'mode', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feColorMatrix: ['class', 'height', 'id', 'in', 'result', 'style', 'type', 'values', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feComponentTransfer: ['class', 'height', 'id', 'in', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feComposite: ['class', 'height', 'id', 'in', 'in2', 'k1', 'k2', 'k3', 'k4', 'operator', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feConvolveMatrix: ['bias', 'class', 'divisor', 'edgeMode', 'height', 'id', 'in', 'kernelMatrix', 'kernelUnitLength', 'order', 'preserveAlpha', 'result', 'style', 'targetX', 'targetY', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feDiffuseLighting: ['class', 'diffuseConstant', 'height', 'id', 'in', 'kernelUnitLength', 'result', 'style', 'surfaceScale', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feDisplacementMap: ['class', 'height', 'id', 'in', 'in2', 'result', 'scale', 'style', 'width', 'x', 'xChannelSelector', 'xml:base', 'xml:lang', 'xml:space', 'y', 'yChannelSelector'],\n feDistantLight: ['azimuth', 'elevation', 'id', 'xml:base', 'xml:lang', 'xml:space'],\n feFlood: ['class', 'height', 'id', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feFuncA: ['amplitude', 'exponent', 'id', 'intercept', 'offset', 'slope', 'tableValues', 'type', 'xml:base', 'xml:lang', 'xml:space'],\n feFuncB: ['amplitude', 'exponent', 'id', 'intercept', 'offset', 'slope', 'tableValues', 'type', 'xml:base', 'xml:lang', 'xml:space'],\n feFuncG: ['amplitude', 'exponent', 'id', 'intercept', 'offset', 'slope', 'tableValues', 'type', 'xml:base', 'xml:lang', 'xml:space'],\n feFuncR: ['amplitude', 'exponent', 'id', 'intercept', 'offset', 'slope', 'tableValues', 'type', 'xml:base', 'xml:lang', 'xml:space'],\n feGaussianBlur: ['class', 'height', 'id', 'in', 'result', 'stdDeviation', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feImage: ['class', 'externalResourcesRequired', 'height', 'id', 'preserveAspectRatio', 'result', 'style', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feMerge: ['class', 'height', 'id', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feMergeNode: ['id', 'xml:base', 'xml:lang', 'xml:space'],\n feMorphology: ['class', 'height', 'id', 'in', 'operator', 'radius', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feOffset: ['class', 'dx', 'dy', 'height', 'id', 'in', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n fePointLight: ['id', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y', 'z'],\n feSpecularLighting: ['class', 'height', 'id', 'in', 'kernelUnitLength', 'result', 'specularConstant', 'specularExponent', 'style', 'surfaceScale', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feSpotLight: ['id', 'limitingConeAngle', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'specularExponent', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y', 'z'],\n feTile: ['class', 'height', 'id', 'in', 'result', 'style', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n feTurbulence: ['baseFrequency', 'class', 'height', 'id', 'numOctaves', 'result', 'seed', 'stitchTiles', 'style', 'type', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n filter: ['class', 'externalResourcesRequired', 'filterRes', 'filterUnits', 'height', 'id', 'primitiveUnits', 'style', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n font: ['class', 'externalResourcesRequired', 'horiz-adv-x', 'horiz-origin-x', 'horiz-origin-y', 'id', 'style', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'xml:base', 'xml:lang', 'xml:space'],\n 'font-face': ['accent-height', 'alphabetic', 'ascent', 'bbox', 'cap-height', 'descent', 'font-family', 'font-size', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'hanging', 'id', 'ideographic', 'mathematical', 'overline-position', 'overline-thickness', 'panose-1', 'slope', 'stemh', 'stemv', 'strikethrough-position', 'strikethrough-thickness', 'underline-position', 'underline-thickness', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'widths', 'x-height', 'xml:base', 'xml:lang', 'xml:space'],\n 'font-face-format': ['id', 'string', 'xml:base', 'xml:lang', 'xml:space'],\n 'font-face-name': ['id', 'name', 'xml:base', 'xml:lang', 'xml:space'],\n 'font-face-src': ['id', 'xml:base', 'xml:lang', 'xml:space'],\n 'font-face-uri': ['id', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n foreignObject: ['class', 'externalResourcesRequired', 'height', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n g: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n glyph: ['arabic-form', 'class', 'd', 'glyph-name', 'horiz-adv-x', 'id', 'lang', 'orientation', 'style', 'unicode', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'xml:base', 'xml:lang', 'xml:space'],\n glyphRef: ['class', 'dx', 'dy', 'format', 'glyphRef', 'id', 'style', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n hkern: ['g1', 'g2', 'id', 'k', 'u1', 'u2', 'xml:base', 'xml:lang', 'xml:space'],\n image: ['class', 'externalResourcesRequired', 'height', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'preserveAspectRatio', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n line: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'x1', 'x2', 'xml:base', 'xml:lang', 'xml:space', 'y1', 'y2'],\n linearGradient: ['class', 'externalResourcesRequired', 'gradientTransform', 'gradientUnits', 'id', 'spreadMethod', 'style', 'x1', 'x2', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y1', 'y2'],\n marker: ['class', 'externalResourcesRequired', 'id', 'markerHeight', 'markerUnits', 'markerWidth', 'orient', 'preserveAspectRatio', 'refX', 'refY', 'style', 'viewBox', 'xml:base', 'xml:lang', 'xml:space'],\n mask: ['class', 'externalResourcesRequired', 'height', 'id', 'maskContentUnits', 'maskUnits', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n metadata: ['id', 'xml:base', 'xml:lang', 'xml:space'],\n 'missing-glyph': ['class', 'd', 'horiz-adv-x', 'id', 'style', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'xml:base', 'xml:lang', 'xml:space'],\n mpath: ['externalResourcesRequired', 'id', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n path: ['class', 'd', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'pathLength', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n pattern: ['class', 'externalResourcesRequired', 'height', 'id', 'patternContentUnits', 'patternTransform', 'patternUnits', 'preserveAspectRatio', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'viewBox', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n polygon: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'points', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n polyline: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'points', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n radialGradient: ['class', 'cx', 'cy', 'externalResourcesRequired', 'fx', 'fy', 'gradientTransform', 'gradientUnits', 'id', 'r', 'spreadMethod', 'style', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n rect: ['class', 'externalResourcesRequired', 'height', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'rx', 'ry', 'style', 'systemLanguage', 'transform', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n script: ['externalResourcesRequired', 'id', 'type', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n set: ['attributeName', 'attributeType', 'begin', 'dur', 'end', 'externalResourcesRequired', 'fill', 'id', 'max', 'min', 'onbegin', 'onend', 'onload', 'onrepeat', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'systemLanguage', 'to', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n stop: ['class', 'id', 'offset', 'style', 'xml:base', 'xml:lang', 'xml:space'],\n style: ['id', 'media', 'title', 'type', 'xml:base', 'xml:lang', 'xml:space'],\n svg: ['baseProfile', 'class', 'contentScriptType', 'contentStyleType', 'externalResourcesRequired', 'height', 'id', 'onabort', 'onactivate', 'onclick', 'onerror', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onresize', 'onscroll', 'onunload', 'onzoom', 'preserveAspectRatio', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'version', 'viewBox', 'width', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y', 'zoomAndPan'],\n switch: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'xml:base', 'xml:lang', 'xml:space'],\n symbol: ['class', 'externalResourcesRequired', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'preserveAspectRatio', 'style', 'viewBox', 'xml:base', 'xml:lang', 'xml:space'],\n text: ['class', 'dx', 'dy', 'externalResourcesRequired', 'id', 'lengthAdjust', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'rotate', 'style', 'systemLanguage', 'textLength', 'transform', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n textPath: ['class', 'externalResourcesRequired', 'id', 'lengthAdjust', 'method', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'spacing', 'startOffset', 'style', 'systemLanguage', 'textLength', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space'],\n title: ['class', 'id', 'style', 'xml:base', 'xml:lang', 'xml:space'],\n tref: ['class', 'dx', 'dy', 'externalResourcesRequired', 'id', 'lengthAdjust', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'rotate', 'style', 'systemLanguage', 'textLength', 'x', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n tspan: ['class', 'dx', 'dy', 'externalResourcesRequired', 'id', 'lengthAdjust', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'rotate', 'style', 'systemLanguage', 'textLength', 'x', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n use: ['class', 'externalResourcesRequired', 'height', 'id', 'onactivate', 'onclick', 'onfocusin', 'onfocusout', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'requiredExtensions', 'requiredFeatures', 'style', 'systemLanguage', 'transform', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'y'],\n view: ['externalResourcesRequired', 'id', 'preserveAspectRatio', 'viewBox', 'viewTarget', 'xml:base', 'xml:lang', 'xml:space', 'zoomAndPan'],\n vkern: ['g1', 'g2', 'id', 'k', 'u1', 'u2', 'xml:base', 'xml:lang', 'xml:space']\n };\n\n\n svgPresentationElements = {\n 'a': true,\n 'altGlyph': true,\n 'animate': true,\n 'animateColor': true,\n 'circle': true,\n 'clipPath': true,\n 'defs': true,\n 'ellipse': true,\n 'feBlend': true,\n 'feColorMatrix': true,\n 'feComponentTransfer': true,\n 'feComposite': true,\n 'feConvolveMatrix': true,\n 'feDiffuseLighting': true,\n 'feDisplacementMap': true,\n 'feFlood': true,\n 'feGaussianBlur': true,\n 'feImage': true,\n 'feMerge': true,\n 'feMorphology': true,\n 'feOffset': true,\n 'feSpecularLighting': true,\n 'feTile': true,\n 'feTurbulence': true,\n 'filter': true,\n 'font': true,\n 'foreignObject': true,\n 'g': true,\n 'glyph': true,\n 'glyphRef': true,\n 'image': true,\n 'line': true,\n 'linearGradient': true,\n 'marker': true,\n 'mask': true,\n 'missing-glyph': true,\n 'path': true,\n 'pattern': true,\n 'polygon': true,\n 'polyline': true,\n 'radialGradient': true,\n 'rect': true,\n 'stop': true,\n 'svg': true,\n 'switch': true,\n 'symbol': true,\n 'text': true,\n 'textPath': true,\n 'tref': true,\n 'tspan': true,\n 'use': true\n };\n\n svgPresentationAttributes = {\n 'alignment-baseline': true,\n 'baseline-shift': true,\n 'clip-path': true,\n 'clip-rule': true,\n 'clip': true,\n 'color-interpolation-filters': true,\n 'color-interpolation': true,\n 'color-profile': true,\n 'color-rendering': true,\n 'color': true,\n 'cursor': true,\n 'direction': true,\n 'display': true,\n 'dominant-baseline': true,\n 'enable-background': true,\n 'fill-opacity': true,\n 'fill-rule': true,\n 'fill': true,\n 'filter': true,\n 'flood-color': true,\n 'flood-opacity': true,\n 'font-family': true,\n 'font-size-adjust': true,\n 'font-size': true,\n 'font-stretch': true,\n 'font-style': true,\n 'font-variant': true,\n 'font-weight': true,\n 'glyph-orientation-horizontal': true,\n 'glyph-orientation-vertical': true,\n 'image-rendering': true,\n 'kerning': true,\n 'letter-spacing': true,\n 'lighting-color': true,\n 'marker-end': true,\n 'marker-mid': true,\n 'marker-start': true,\n 'mask': true,\n 'opacity': true,\n 'overflow': true,\n 'pointer-events': true,\n 'shape-rendering': true,\n 'stop-color': true,\n 'stop-opacity': true,\n 'stroke-dasharray': true,\n 'stroke-dashoffset': true,\n 'stroke-linecap': true,\n 'stroke-linejoin': true,\n 'stroke-miterlimit': true,\n 'stroke-opacity': true,\n 'stroke-width': true,\n 'stroke': true,\n 'text-anchor': true,\n 'text-decoration': true,\n 'text-rendering': true,\n 'unicode-bidi': true,\n 'visibility': true,\n 'word-spacing': true,\n 'writing-mode': true\n };\n\n var createElement = function createElement(html) {\n var div = DOM.createElement('div');\n div.innerHTML = html;\n return div.firstChild;\n };\n\n svgAnalyzer = function () {\n function SVGAnalyzer() {\n \n\n if (createElement('<svg><altGlyph /></svg>').firstElementChild.nodeName === 'altglyph' && elements.altGlyph) {\n elements.altglyph = elements.altGlyph;\n delete elements.altGlyph;\n elements.altglyphdef = elements.altGlyphDef;\n delete elements.altGlyphDef;\n elements.altglyphitem = elements.altGlyphItem;\n delete elements.altGlyphItem;\n elements.glyphref = elements.glyphRef;\n delete elements.glyphRef;\n }\n }\n\n SVGAnalyzer.prototype.isStandardSvgAttribute = function isStandardSvgAttribute(nodeName, attributeName) {\n return presentationElements[nodeName] && presentationAttributes[attributeName] || elements[nodeName] && elements[nodeName].indexOf(attributeName) !== -1;\n };\n\n return SVGAnalyzer;\n }();\n })();\n}\n\nexport var elements = svgElements;\nexport var presentationElements = svgPresentationElements;\nexport var presentationAttributes = svgPresentationAttributes;\nexport var SVGAnalyzer = svgAnalyzer || function () {\n function _class11() {\n \n }\n\n _class11.prototype.isStandardSvgAttribute = function isStandardSvgAttribute() {\n return false;\n };\n\n return _class11;\n}();\n\nexport var ObserverLocator = (_temp = _class12 = function () {\n function ObserverLocator(taskQueue, eventManager, dirtyChecker, svgAnalyzer, parser) {\n \n\n this.taskQueue = taskQueue;\n this.eventManager = eventManager;\n this.dirtyChecker = dirtyChecker;\n this.svgAnalyzer = svgAnalyzer;\n this.parser = parser;\n this.adapters = [];\n this.logger = LogManager.getLogger('observer-locator');\n }\n\n ObserverLocator.prototype.getObserver = function getObserver(obj, propertyName) {\n var observersLookup = obj.__observers__;\n var observer = void 0;\n\n if (observersLookup && propertyName in observersLookup) {\n return observersLookup[propertyName];\n }\n\n observer = this.createPropertyObserver(obj, propertyName);\n\n if (!observer.doNotCache) {\n if (observersLookup === undefined) {\n observersLookup = this.getOrCreateObserversLookup(obj);\n }\n\n observersLookup[propertyName] = observer;\n }\n\n return observer;\n };\n\n ObserverLocator.prototype.getOrCreateObserversLookup = function getOrCreateObserversLookup(obj) {\n return obj.__observers__ || this.createObserversLookup(obj);\n };\n\n ObserverLocator.prototype.createObserversLookup = function createObserversLookup(obj) {\n var value = {};\n\n if (!Reflect.defineProperty(obj, '__observers__', {\n enumerable: false,\n configurable: false,\n writable: false,\n value: value\n })) {\n this.logger.warn('Cannot add observers to object', obj);\n }\n\n return value;\n };\n\n ObserverLocator.prototype.addAdapter = function addAdapter(adapter) {\n this.adapters.push(adapter);\n };\n\n ObserverLocator.prototype.getAdapterObserver = function getAdapterObserver(obj, propertyName, descriptor) {\n for (var _i26 = 0, ii = this.adapters.length; _i26 < ii; _i26++) {\n var adapter = this.adapters[_i26];\n var observer = adapter.getObserver(obj, propertyName, descriptor);\n if (observer) {\n return observer;\n }\n }\n return null;\n };\n\n ObserverLocator.prototype.createPropertyObserver = function createPropertyObserver(obj, propertyName) {\n var descriptor = void 0;\n var handler = void 0;\n var xlinkResult = void 0;\n\n if (!(obj instanceof Object)) {\n return new PrimitiveObserver(obj, propertyName);\n }\n\n if (obj instanceof DOM.Element) {\n if (propertyName === 'class') {\n return new ClassObserver(obj);\n }\n if (propertyName === 'style' || propertyName === 'css') {\n return new StyleObserver(obj, propertyName);\n }\n handler = this.eventManager.getElementHandler(obj, propertyName);\n if (propertyName === 'value' && obj.tagName.toLowerCase() === 'select') {\n return new SelectValueObserver(obj, handler, this);\n }\n if (propertyName === 'checked' && obj.tagName.toLowerCase() === 'input') {\n return new CheckedObserver(obj, handler, this);\n }\n if (handler) {\n return new ValueAttributeObserver(obj, propertyName, handler);\n }\n xlinkResult = /^xlink:(.+)$/.exec(propertyName);\n if (xlinkResult) {\n return new XLinkAttributeObserver(obj, propertyName, xlinkResult[1]);\n }\n if (propertyName === 'role' && (obj instanceof DOM.Element || obj instanceof DOM.SVGElement) || /^\\w+:|^data-|^aria-/.test(propertyName) || obj instanceof DOM.SVGElement && this.svgAnalyzer.isStandardSvgAttribute(obj.nodeName, propertyName)) {\n return new DataAttributeObserver(obj, propertyName);\n }\n }\n\n descriptor = Object.getPropertyDescriptor(obj, propertyName);\n\n if (hasDeclaredDependencies(descriptor)) {\n return createComputedObserver(obj, propertyName, descriptor, this);\n }\n\n if (descriptor) {\n var existingGetterOrSetter = descriptor.get || descriptor.set;\n if (existingGetterOrSetter) {\n if (existingGetterOrSetter.getObserver) {\n return existingGetterOrSetter.getObserver(obj);\n }\n\n var adapterObserver = this.getAdapterObserver(obj, propertyName, descriptor);\n if (adapterObserver) {\n return adapterObserver;\n }\n return new DirtyCheckProperty(this.dirtyChecker, obj, propertyName);\n }\n }\n\n if (obj instanceof Array) {\n if (propertyName === 'length') {\n return this.getArrayObserver(obj).getLengthObserver();\n }\n\n return new DirtyCheckProperty(this.dirtyChecker, obj, propertyName);\n } else if (obj instanceof Map) {\n if (propertyName === 'size') {\n return this.getMapObserver(obj).getLengthObserver();\n }\n\n return new DirtyCheckProperty(this.dirtyChecker, obj, propertyName);\n } else if (obj instanceof Set) {\n if (propertyName === 'size') {\n return this.getSetObserver(obj).getLengthObserver();\n }\n\n return new DirtyCheckProperty(this.dirtyChecker, obj, propertyName);\n }\n\n return new SetterObserver(this.taskQueue, obj, propertyName);\n };\n\n ObserverLocator.prototype.getAccessor = function getAccessor(obj, propertyName) {\n if (obj instanceof DOM.Element) {\n if (propertyName === 'class' || propertyName === 'style' || propertyName === 'css' || propertyName === 'value' && (obj.tagName.toLowerCase() === 'input' || obj.tagName.toLowerCase() === 'select') || propertyName === 'checked' && obj.tagName.toLowerCase() === 'input' || propertyName === 'model' && obj.tagName.toLowerCase() === 'input' || /^xlink:.+$/.exec(propertyName)) {\n return this.getObserver(obj, propertyName);\n }\n if (/^\\w+:|^data-|^aria-/.test(propertyName) || obj instanceof DOM.SVGElement && this.svgAnalyzer.isStandardSvgAttribute(obj.nodeName, propertyName)) {\n return dataAttributeAccessor;\n }\n }\n return propertyAccessor;\n };\n\n ObserverLocator.prototype.getArrayObserver = function getArrayObserver(array) {\n return _getArrayObserver(this.taskQueue, array);\n };\n\n ObserverLocator.prototype.getMapObserver = function getMapObserver(map) {\n return _getMapObserver(this.taskQueue, map);\n };\n\n ObserverLocator.prototype.getSetObserver = function getSetObserver(set) {\n return _getSetObserver(this.taskQueue, set);\n };\n\n return ObserverLocator;\n}(), _class12.inject = [TaskQueue, EventManager, DirtyChecker, SVGAnalyzer, Parser], _temp);\n\nexport var ObjectObservationAdapter = function () {\n function ObjectObservationAdapter() {\n \n }\n\n ObjectObservationAdapter.prototype.getObserver = function getObserver(object, propertyName, descriptor) {\n throw new Error('BindingAdapters must implement getObserver(object, propertyName).');\n };\n\n return ObjectObservationAdapter;\n}();\n\nexport var BindingExpression = function () {\n function BindingExpression(observerLocator, targetProperty, sourceExpression, mode, lookupFunctions, attribute) {\n \n\n this.observerLocator = observerLocator;\n this.targetProperty = targetProperty;\n this.sourceExpression = sourceExpression;\n this.mode = mode;\n this.lookupFunctions = lookupFunctions;\n this.attribute = attribute;\n this.discrete = false;\n }\n\n BindingExpression.prototype.createBinding = function createBinding(target) {\n return new Binding(this.observerLocator, this.sourceExpression, target, this.targetProperty, this.mode, this.lookupFunctions);\n };\n\n return BindingExpression;\n}();\n\nvar targetContext = 'Binding:target';\n\nexport var Binding = (_dec10 = connectable(), _dec10(_class13 = function () {\n function Binding(observerLocator, sourceExpression, target, targetProperty, mode, lookupFunctions) {\n \n\n this.observerLocator = observerLocator;\n this.sourceExpression = sourceExpression;\n this.target = target;\n this.targetProperty = targetProperty;\n this.mode = mode;\n this.lookupFunctions = lookupFunctions;\n }\n\n Binding.prototype.updateTarget = function updateTarget(value) {\n this.targetObserver.setValue(value, this.target, this.targetProperty);\n };\n\n Binding.prototype.updateSource = function updateSource(value) {\n this.sourceExpression.assign(this.source, value, this.lookupFunctions);\n };\n\n Binding.prototype.call = function call(context, newValue, oldValue) {\n if (!this.isBound) {\n return;\n }\n if (context === sourceContext) {\n oldValue = this.targetObserver.getValue(this.target, this.targetProperty);\n newValue = this.sourceExpression.evaluate(this.source, this.lookupFunctions);\n if (newValue !== oldValue) {\n this.updateTarget(newValue);\n }\n if (this.mode !== bindingMode.oneTime) {\n this._version++;\n this.sourceExpression.connect(this, this.source);\n this.unobserve(false);\n }\n return;\n }\n if (context === targetContext) {\n if (newValue !== this.sourceExpression.evaluate(this.source, this.lookupFunctions)) {\n this.updateSource(newValue);\n }\n return;\n }\n throw new Error('Unexpected call context ' + context);\n };\n\n Binding.prototype.bind = function bind(source) {\n if (this.isBound) {\n if (this.source === source) {\n return;\n }\n this.unbind();\n }\n this.isBound = true;\n this.source = source;\n\n if (this.sourceExpression.bind) {\n this.sourceExpression.bind(this, source, this.lookupFunctions);\n }\n\n var mode = this.mode;\n if (!this.targetObserver) {\n var method = mode === bindingMode.twoWay ? 'getObserver' : 'getAccessor';\n this.targetObserver = this.observerLocator[method](this.target, this.targetProperty);\n }\n\n if ('bind' in this.targetObserver) {\n this.targetObserver.bind();\n }\n var value = this.sourceExpression.evaluate(source, this.lookupFunctions);\n this.updateTarget(value);\n\n if (mode === bindingMode.oneWay) {\n enqueueBindingConnect(this);\n } else if (mode === bindingMode.twoWay) {\n this.sourceExpression.connect(this, source);\n this.targetObserver.subscribe(targetContext, this);\n }\n };\n\n Binding.prototype.unbind = function unbind() {\n if (!this.isBound) {\n return;\n }\n this.isBound = false;\n if (this.sourceExpression.unbind) {\n this.sourceExpression.unbind(this, this.source);\n }\n this.source = null;\n if ('unbind' in this.targetObserver) {\n this.targetObserver.unbind();\n }\n if (this.targetObserver.unsubscribe) {\n this.targetObserver.unsubscribe(targetContext, this);\n }\n this.unobserve(true);\n };\n\n Binding.prototype.connect = function connect(evaluate) {\n if (!this.isBound) {\n return;\n }\n if (evaluate) {\n var value = this.sourceExpression.evaluate(this.source, this.lookupFunctions);\n this.updateTarget(value);\n }\n this.sourceExpression.connect(this, this.source);\n };\n\n return Binding;\n}()) || _class13);\n\nexport var CallExpression = function () {\n function CallExpression(observerLocator, targetProperty, sourceExpression, lookupFunctions) {\n \n\n this.observerLocator = observerLocator;\n this.targetProperty = targetProperty;\n this.sourceExpression = sourceExpression;\n this.lookupFunctions = lookupFunctions;\n }\n\n CallExpression.prototype.createBinding = function createBinding(target) {\n return new Call(this.observerLocator, this.sourceExpression, target, this.targetProperty, this.lookupFunctions);\n };\n\n return CallExpression;\n}();\n\nexport var Call = function () {\n function Call(observerLocator, sourceExpression, target, targetProperty, lookupFunctions) {\n \n\n this.sourceExpression = sourceExpression;\n this.target = target;\n this.targetProperty = observerLocator.getObserver(target, targetProperty);\n this.lookupFunctions = lookupFunctions;\n }\n\n Call.prototype.callSource = function callSource($event) {\n var overrideContext = this.source.overrideContext;\n Object.assign(overrideContext, $event);\n overrideContext.$event = $event;\n var mustEvaluate = true;\n var result = this.sourceExpression.evaluate(this.source, this.lookupFunctions, mustEvaluate);\n delete overrideContext.$event;\n for (var prop in $event) {\n delete overrideContext[prop];\n }\n return result;\n };\n\n Call.prototype.bind = function bind(source) {\n var _this27 = this;\n\n if (this.isBound) {\n if (this.source === source) {\n return;\n }\n this.unbind();\n }\n this.isBound = true;\n this.source = source;\n\n if (this.sourceExpression.bind) {\n this.sourceExpression.bind(this, source, this.lookupFunctions);\n }\n this.targetProperty.setValue(function ($event) {\n return _this27.callSource($event);\n });\n };\n\n Call.prototype.unbind = function unbind() {\n if (!this.isBound) {\n return;\n }\n this.isBound = false;\n if (this.sourceExpression.unbind) {\n this.sourceExpression.unbind(this, this.source);\n }\n this.source = null;\n this.targetProperty.setValue(null);\n };\n\n return Call;\n}();\n\nexport var ValueConverterResource = function () {\n function ValueConverterResource(name) {\n \n\n this.name = name;\n }\n\n ValueConverterResource.convention = function convention(name) {\n if (name.endsWith('ValueConverter')) {\n return new ValueConverterResource(camelCase(name.substring(0, name.length - 14)));\n }\n };\n\n ValueConverterResource.prototype.initialize = function initialize(container, target) {\n this.instance = container.get(target);\n };\n\n ValueConverterResource.prototype.register = function register(registry, name) {\n registry.registerValueConverter(name || this.name, this.instance);\n };\n\n ValueConverterResource.prototype.load = function load(container, target) {};\n\n return ValueConverterResource;\n}();\n\nexport function valueConverter(nameOrTarget) {\n if (nameOrTarget === undefined || typeof nameOrTarget === 'string') {\n return function (target) {\n metadata.define(metadata.resource, new ValueConverterResource(nameOrTarget), target);\n };\n }\n\n metadata.define(metadata.resource, new ValueConverterResource(), nameOrTarget);\n}\n\nexport var BindingBehaviorResource = function () {\n function BindingBehaviorResource(name) {\n \n\n this.name = name;\n }\n\n BindingBehaviorResource.convention = function convention(name) {\n if (name.endsWith('BindingBehavior')) {\n return new BindingBehaviorResource(camelCase(name.substring(0, name.length - 15)));\n }\n };\n\n BindingBehaviorResource.prototype.initialize = function initialize(container, target) {\n this.instance = container.get(target);\n };\n\n BindingBehaviorResource.prototype.register = function register(registry, name) {\n registry.registerBindingBehavior(name || this.name, this.instance);\n };\n\n BindingBehaviorResource.prototype.load = function load(container, target) {};\n\n return BindingBehaviorResource;\n}();\n\nexport function bindingBehavior(nameOrTarget) {\n if (nameOrTarget === undefined || typeof nameOrTarget === 'string') {\n return function (target) {\n metadata.define(metadata.resource, new BindingBehaviorResource(nameOrTarget), target);\n };\n }\n\n metadata.define(metadata.resource, new BindingBehaviorResource(), nameOrTarget);\n}\n\nexport var ListenerExpression = function () {\n function ListenerExpression(eventManager, targetEvent, sourceExpression, delegationStrategy, preventDefault, lookupFunctions) {\n \n\n this.eventManager = eventManager;\n this.targetEvent = targetEvent;\n this.sourceExpression = sourceExpression;\n this.delegationStrategy = delegationStrategy;\n this.discrete = true;\n this.preventDefault = preventDefault;\n this.lookupFunctions = lookupFunctions;\n }\n\n ListenerExpression.prototype.createBinding = function createBinding(target) {\n return new Listener(this.eventManager, this.targetEvent, this.delegationStrategy, this.sourceExpression, target, this.preventDefault, this.lookupFunctions);\n };\n\n return ListenerExpression;\n}();\n\nexport var Listener = function () {\n function Listener(eventManager, targetEvent, delegationStrategy, sourceExpression, target, preventDefault, lookupFunctions) {\n \n\n this.eventManager = eventManager;\n this.targetEvent = targetEvent;\n this.delegationStrategy = delegationStrategy;\n this.sourceExpression = sourceExpression;\n this.target = target;\n this.preventDefault = preventDefault;\n this.lookupFunctions = lookupFunctions;\n }\n\n Listener.prototype.callSource = function callSource(event) {\n var overrideContext = this.source.overrideContext;\n overrideContext.$event = event;\n var mustEvaluate = true;\n var result = this.sourceExpression.evaluate(this.source, this.lookupFunctions, mustEvaluate);\n delete overrideContext.$event;\n if (result !== true && this.preventDefault) {\n event.preventDefault();\n }\n return result;\n };\n\n Listener.prototype.bind = function bind(source) {\n var _this28 = this;\n\n if (this.isBound) {\n if (this.source === source) {\n return;\n }\n this.unbind();\n }\n this.isBound = true;\n this.source = source;\n\n if (this.sourceExpression.bind) {\n this.sourceExpression.bind(this, source, this.lookupFunctions);\n }\n this._disposeListener = this.eventManager.addEventListener(this.target, this.targetEvent, function (event) {\n return _this28.callSource(event);\n }, this.delegationStrategy);\n };\n\n Listener.prototype.unbind = function unbind() {\n if (!this.isBound) {\n return;\n }\n this.isBound = false;\n if (this.sourceExpression.unbind) {\n this.sourceExpression.unbind(this, this.source);\n }\n this.source = null;\n this._disposeListener();\n this._disposeListener = null;\n };\n\n return Listener;\n}();\n\nfunction getAU(element) {\n var au = element.au;\n\n if (au === undefined) {\n throw new Error('No Aurelia APIs are defined for the element: \"' + element.tagName + '\".');\n }\n\n return au;\n}\n\nexport var NameExpression = function () {\n function NameExpression(sourceExpression, apiName, lookupFunctions) {\n \n\n this.sourceExpression = sourceExpression;\n this.apiName = apiName;\n this.lookupFunctions = lookupFunctions;\n this.discrete = true;\n }\n\n NameExpression.prototype.createBinding = function createBinding(target) {\n return new NameBinder(this.sourceExpression, NameExpression.locateAPI(target, this.apiName), this.lookupFunctions);\n };\n\n NameExpression.locateAPI = function locateAPI(element, apiName) {\n switch (apiName) {\n case 'element':\n return element;\n case 'controller':\n return getAU(element).controller;\n case 'view-model':\n return getAU(element).controller.viewModel;\n case 'view':\n return getAU(element).controller.view;\n default:\n var target = getAU(element)[apiName];\n\n if (target === undefined) {\n throw new Error('Attempted to reference \"' + apiName + '\", but it was not found amongst the target\\'s API.');\n }\n\n return target.viewModel;\n }\n };\n\n return NameExpression;\n}();\n\nvar NameBinder = function () {\n function NameBinder(sourceExpression, target, lookupFunctions) {\n \n\n this.sourceExpression = sourceExpression;\n this.target = target;\n this.lookupFunctions = lookupFunctions;\n }\n\n NameBinder.prototype.bind = function bind(source) {\n if (this.isBound) {\n if (this.source === source) {\n return;\n }\n this.unbind();\n }\n this.isBound = true;\n this.source = source;\n if (this.sourceExpression.bind) {\n this.sourceExpression.bind(this, source, this.lookupFunctions);\n }\n this.sourceExpression.assign(this.source, this.target, this.lookupFunctions);\n };\n\n NameBinder.prototype.unbind = function unbind() {\n if (!this.isBound) {\n return;\n }\n this.isBound = false;\n if (this.sourceExpression.evaluate(this.source, this.lookupFunctions) === this.target) {\n this.sourceExpression.assign(this.source, null, this.lookupFunctions);\n }\n if (this.sourceExpression.unbind) {\n this.sourceExpression.unbind(this, this.source);\n }\n this.source = null;\n };\n\n return NameBinder;\n}();\n\nvar LookupFunctions = {\n bindingBehaviors: function bindingBehaviors(name) {\n return null;\n },\n valueConverters: function valueConverters(name) {\n return null;\n }\n};\n\nexport var BindingEngine = (_temp2 = _class14 = function () {\n function BindingEngine(observerLocator, parser) {\n \n\n this.observerLocator = observerLocator;\n this.parser = parser;\n }\n\n BindingEngine.prototype.createBindingExpression = function createBindingExpression(targetProperty, sourceExpression) {\n var mode = arguments.length <= 2 || arguments[2] === undefined ? bindingMode.oneWay : arguments[2];\n var lookupFunctions = arguments.length <= 3 || arguments[3] === undefined ? LookupFunctions : arguments[3];\n\n return new BindingExpression(this.observerLocator, targetProperty, this.parser.parse(sourceExpression), mode, lookupFunctions);\n };\n\n BindingEngine.prototype.propertyObserver = function propertyObserver(obj, propertyName) {\n var _this29 = this;\n\n return {\n subscribe: function subscribe(callback) {\n var observer = _this29.observerLocator.getObserver(obj, propertyName);\n observer.subscribe(callback);\n return {\n dispose: function dispose() {\n return observer.unsubscribe(callback);\n }\n };\n }\n };\n };\n\n BindingEngine.prototype.collectionObserver = function collectionObserver(collection) {\n var _this30 = this;\n\n return {\n subscribe: function subscribe(callback) {\n var observer = void 0;\n if (collection instanceof Array) {\n observer = _this30.observerLocator.getArrayObserver(collection);\n } else if (collection instanceof Map) {\n observer = _this30.observerLocator.getMapObserver(collection);\n } else if (collection instanceof Set) {\n observer = _this30.observerLocator.getSetObserver(collection);\n } else {\n throw new Error('collection must be an instance of Array, Map or Set.');\n }\n observer.subscribe(callback);\n return {\n dispose: function dispose() {\n return observer.unsubscribe(callback);\n }\n };\n }\n };\n };\n\n BindingEngine.prototype.expressionObserver = function expressionObserver(bindingContext, expression) {\n var scope = { bindingContext: bindingContext, overrideContext: createOverrideContext(bindingContext) };\n return new ExpressionObserver(scope, this.parser.parse(expression), this.observerLocator, LookupFunctions);\n };\n\n BindingEngine.prototype.parseExpression = function parseExpression(expression) {\n return this.parser.parse(expression);\n };\n\n BindingEngine.prototype.registerAdapter = function registerAdapter(adapter) {\n this.observerLocator.addAdapter(adapter);\n };\n\n return BindingEngine;\n}(), _class14.inject = [ObserverLocator, Parser], _temp2);\n\nvar setProto = Set.prototype;\n\nfunction _getSetObserver(taskQueue, set) {\n return ModifySetObserver.for(taskQueue, set);\n}\n\nvar ModifySetObserver = function (_ModifyCollectionObse3) {\n _inherits(ModifySetObserver, _ModifyCollectionObse3);\n\n function ModifySetObserver(taskQueue, set) {\n \n\n return _possibleConstructorReturn(this, _ModifyCollectionObse3.call(this, taskQueue, set));\n }\n\n ModifySetObserver.for = function _for(taskQueue, set) {\n if (!('__set_observer__' in set)) {\n Reflect.defineProperty(set, '__set_observer__', {\n value: ModifySetObserver.create(taskQueue, set),\n enumerable: false, configurable: false\n });\n }\n return set.__set_observer__;\n };\n\n ModifySetObserver.create = function create(taskQueue, set) {\n var observer = new ModifySetObserver(taskQueue, set);\n\n var proto = setProto;\n if (proto.add !== set.add || proto.delete !== set.delete || proto.clear !== set.clear) {\n proto = {\n add: set.add,\n delete: set.delete,\n clear: set.clear\n };\n }\n\n set.add = function () {\n var type = 'add';\n var oldSize = set.size;\n var methodCallResult = proto.add.apply(set, arguments);\n var hasValue = set.size === oldSize;\n if (!hasValue) {\n observer.addChangeRecord({\n type: type,\n object: set,\n value: Array.from(set).pop()\n });\n }\n return methodCallResult;\n };\n\n set.delete = function () {\n var hasValue = set.has(arguments[0]);\n var methodCallResult = proto.delete.apply(set, arguments);\n if (hasValue) {\n observer.addChangeRecord({\n type: 'delete',\n object: set,\n value: arguments[0]\n });\n }\n return methodCallResult;\n };\n\n set.clear = function () {\n var methodCallResult = proto.clear.apply(set, arguments);\n observer.addChangeRecord({\n type: 'clear',\n object: set\n });\n return methodCallResult;\n };\n\n return observer;\n };\n\n return ModifySetObserver;\n}(ModifyCollectionObserver);\n\nexport function observable(targetOrConfig, key, descriptor) {\n function deco(target, key, descriptor, config) {\n var isClassDecorator = key === undefined;\n if (isClassDecorator) {\n target = target.prototype;\n key = typeof config === 'string' ? config : config.name;\n }\n\n var innerPropertyName = '_' + key;\n var innerPropertyDescriptor = {\n configurable: true,\n enumerable: false,\n writable: true\n };\n\n var callbackName = config && config.changeHandler || key + 'Changed';\n\n if (descriptor) {\n if (typeof descriptor.initializer === 'function') {\n innerPropertyDescriptor.value = descriptor.initializer();\n }\n } else {\n descriptor = {};\n }\n\n if (!('enumerable' in descriptor)) {\n descriptor.enumerable = true;\n }\n\n delete descriptor.value;\n delete descriptor.writable;\n delete descriptor.initializer;\n\n Reflect.defineProperty(target, innerPropertyName, innerPropertyDescriptor);\n\n descriptor.get = function () {\n return this[innerPropertyName];\n };\n descriptor.set = function (newValue) {\n var oldValue = this[innerPropertyName];\n if (newValue === oldValue) {\n return;\n }\n\n this[innerPropertyName] = newValue;\n Reflect.defineProperty(this, innerPropertyName, { enumerable: false });\n\n if (this[callbackName]) {\n this[callbackName](newValue, oldValue, key);\n }\n };\n\n descriptor.get.dependencies = [innerPropertyName];\n\n if (isClassDecorator) {\n Reflect.defineProperty(target, key, descriptor);\n } else {\n return descriptor;\n }\n }\n\n if (key === undefined) {\n return function (t, k, d) {\n return deco(t, k, d, targetOrConfig);\n };\n }\n return deco(targetOrConfig, key, descriptor);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-binding/dist/native-modules/aurelia-binding.js\n// module id = 3\n// module chunks = 0","\n\nimport { createFullOverrideContext, updateOverrideContexts } from './repeat-utilities';\n\nexport var NumberRepeatStrategy = function () {\n function NumberRepeatStrategy() {\n \n }\n\n NumberRepeatStrategy.prototype.getCollectionObserver = function getCollectionObserver() {\n return null;\n };\n\n NumberRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat, value) {\n var _this = this;\n\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n if (removePromise instanceof Promise) {\n removePromise.then(function () {\n return _this._standardProcessItems(repeat, value);\n });\n return;\n }\n this._standardProcessItems(repeat, value);\n };\n\n NumberRepeatStrategy.prototype._standardProcessItems = function _standardProcessItems(repeat, value) {\n var childrenLength = repeat.viewCount();\n var i = void 0;\n var ii = void 0;\n var overrideContext = void 0;\n var viewsToRemove = void 0;\n\n value = Math.floor(value);\n viewsToRemove = childrenLength - value;\n\n if (viewsToRemove > 0) {\n if (viewsToRemove > childrenLength) {\n viewsToRemove = childrenLength;\n }\n\n for (i = 0, ii = viewsToRemove; i < ii; ++i) {\n repeat.removeView(childrenLength - (i + 1), true, !repeat.viewsRequireLifecycle);\n }\n\n return;\n }\n\n for (i = childrenLength, ii = value; i < ii; ++i) {\n overrideContext = createFullOverrideContext(repeat, i, i, ii);\n repeat.addView(overrideContext.bindingContext, overrideContext);\n }\n\n updateOverrideContexts(repeat.views(), 0);\n };\n\n return NumberRepeatStrategy;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/number-repeat-strategy.js\n// module id = 30\n// module chunks = 0","\n\nimport { NullRepeatStrategy } from './null-repeat-strategy';\nimport { ArrayRepeatStrategy } from './array-repeat-strategy';\nimport { MapRepeatStrategy } from './map-repeat-strategy';\nimport { SetRepeatStrategy } from './set-repeat-strategy';\nimport { NumberRepeatStrategy } from './number-repeat-strategy';\n\nexport var RepeatStrategyLocator = function () {\n function RepeatStrategyLocator() {\n \n\n this.matchers = [];\n this.strategies = [];\n\n this.addStrategy(function (items) {\n return items === null || items === undefined;\n }, new NullRepeatStrategy());\n this.addStrategy(function (items) {\n return items instanceof Array;\n }, new ArrayRepeatStrategy());\n this.addStrategy(function (items) {\n return items instanceof Map;\n }, new MapRepeatStrategy());\n this.addStrategy(function (items) {\n return items instanceof Set;\n }, new SetRepeatStrategy());\n this.addStrategy(function (items) {\n return typeof items === 'number';\n }, new NumberRepeatStrategy());\n }\n\n RepeatStrategyLocator.prototype.addStrategy = function addStrategy(matcher, strategy) {\n this.matchers.push(matcher);\n this.strategies.push(strategy);\n };\n\n RepeatStrategyLocator.prototype.getStrategy = function getStrategy(items) {\n var matchers = this.matchers;\n\n for (var i = 0, ii = matchers.length; i < ii; ++i) {\n if (matchers[i](items)) {\n return this.strategies[i];\n }\n }\n\n return null;\n };\n\n return RepeatStrategyLocator;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/repeat-strategy-locator.js\n// module id = 31\n// module chunks = 0","\n\nimport { createFullOverrideContext, updateOverrideContexts } from './repeat-utilities';\n\nexport var SetRepeatStrategy = function () {\n function SetRepeatStrategy() {\n \n }\n\n SetRepeatStrategy.prototype.getCollectionObserver = function getCollectionObserver(observerLocator, items) {\n return observerLocator.getSetObserver(items);\n };\n\n SetRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat, items) {\n var _this = this;\n\n var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n if (removePromise instanceof Promise) {\n removePromise.then(function () {\n return _this._standardProcessItems(repeat, items);\n });\n return;\n }\n this._standardProcessItems(repeat, items);\n };\n\n SetRepeatStrategy.prototype._standardProcessItems = function _standardProcessItems(repeat, items) {\n var index = 0;\n var overrideContext = void 0;\n\n items.forEach(function (value) {\n overrideContext = createFullOverrideContext(repeat, value, index, items.size);\n repeat.addView(overrideContext.bindingContext, overrideContext);\n ++index;\n });\n };\n\n SetRepeatStrategy.prototype.instanceMutated = function instanceMutated(repeat, set, records) {\n var value = void 0;\n var i = void 0;\n var ii = void 0;\n var overrideContext = void 0;\n var removeIndex = void 0;\n var record = void 0;\n var rmPromises = [];\n var viewOrPromise = void 0;\n\n for (i = 0, ii = records.length; i < ii; ++i) {\n record = records[i];\n value = record.value;\n switch (record.type) {\n case 'add':\n overrideContext = createFullOverrideContext(repeat, value, set.size - 1, set.size);\n repeat.insertView(set.size - 1, overrideContext.bindingContext, overrideContext);\n break;\n case 'delete':\n removeIndex = this._getViewIndexByValue(repeat, value);\n viewOrPromise = repeat.removeView(removeIndex, true, !repeat.viewsRequireLifecycle);\n if (viewOrPromise instanceof Promise) {\n rmPromises.push(viewOrPromise);\n }\n break;\n case 'clear':\n repeat.removeAllViews(true, !repeat.viewsRequireLifecycle);\n break;\n default:\n continue;\n }\n }\n\n if (rmPromises.length > 0) {\n Promise.all(rmPromises).then(function () {\n updateOverrideContexts(repeat.views(), 0);\n });\n } else {\n updateOverrideContexts(repeat.views(), 0);\n }\n };\n\n SetRepeatStrategy.prototype._getViewIndexByValue = function _getViewIndexByValue(repeat, value) {\n var i = void 0;\n var ii = void 0;\n var child = void 0;\n\n for (i = 0, ii = repeat.viewCount(); i < ii; ++i) {\n child = repeat.view(i);\n if (child.bindingContext[repeat.local] === value) {\n return i;\n }\n }\n\n return undefined;\n };\n\n return SetRepeatStrategy;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/set-repeat-strategy.js\n// module id = 32\n// module chunks = 0","module.exports = __webpack_public_path__ + \"f4769f9bdb7466be65088239c12046d1.eot\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/dist/fonts/glyphicons-halflings-regular.eot\n// module id = 33\n// module chunks = 0","var ENTITIES = [['Aacute', [193]], ['aacute', [225]], ['Abreve', [258]], ['abreve', [259]], ['ac', [8766]], ['acd', [8767]], ['acE', [8766, 819]], ['Acirc', [194]], ['acirc', [226]], ['acute', [180]], ['Acy', [1040]], ['acy', [1072]], ['AElig', [198]], ['aelig', [230]], ['af', [8289]], ['Afr', [120068]], ['afr', [120094]], ['Agrave', [192]], ['agrave', [224]], ['alefsym', [8501]], ['aleph', [8501]], ['Alpha', [913]], ['alpha', [945]], ['Amacr', [256]], ['amacr', [257]], ['amalg', [10815]], ['amp', [38]], ['AMP', [38]], ['andand', [10837]], ['And', [10835]], ['and', [8743]], ['andd', [10844]], ['andslope', [10840]], ['andv', [10842]], ['ang', [8736]], ['ange', [10660]], ['angle', [8736]], ['angmsdaa', [10664]], ['angmsdab', [10665]], ['angmsdac', [10666]], ['angmsdad', [10667]], ['angmsdae', [10668]], ['angmsdaf', [10669]], ['angmsdag', [10670]], ['angmsdah', [10671]], ['angmsd', [8737]], ['angrt', [8735]], ['angrtvb', [8894]], ['angrtvbd', [10653]], ['angsph', [8738]], ['angst', [197]], ['angzarr', [9084]], ['Aogon', [260]], ['aogon', [261]], ['Aopf', [120120]], ['aopf', [120146]], ['apacir', [10863]], ['ap', [8776]], ['apE', [10864]], ['ape', [8778]], ['apid', [8779]], ['apos', [39]], ['ApplyFunction', [8289]], ['approx', [8776]], ['approxeq', [8778]], ['Aring', [197]], ['aring', [229]], ['Ascr', [119964]], ['ascr', [119990]], ['Assign', [8788]], ['ast', [42]], ['asymp', [8776]], ['asympeq', [8781]], ['Atilde', [195]], ['atilde', [227]], ['Auml', [196]], ['auml', [228]], ['awconint', [8755]], ['awint', [10769]], ['backcong', [8780]], ['backepsilon', [1014]], ['backprime', [8245]], ['backsim', [8765]], ['backsimeq', [8909]], ['Backslash', [8726]], ['Barv', [10983]], ['barvee', [8893]], ['barwed', [8965]], ['Barwed', [8966]], ['barwedge', [8965]], ['bbrk', [9141]], ['bbrktbrk', [9142]], ['bcong', [8780]], ['Bcy', [1041]], ['bcy', [1073]], ['bdquo', [8222]], ['becaus', [8757]], ['because', [8757]], ['Because', [8757]], ['bemptyv', [10672]], ['bepsi', [1014]], ['bernou', [8492]], ['Bernoullis', [8492]], ['Beta', [914]], ['beta', [946]], ['beth', [8502]], ['between', [8812]], ['Bfr', [120069]], ['bfr', [120095]], ['bigcap', [8898]], ['bigcirc', [9711]], ['bigcup', [8899]], ['bigodot', [10752]], ['bigoplus', [10753]], ['bigotimes', [10754]], ['bigsqcup', [10758]], ['bigstar', [9733]], ['bigtriangledown', [9661]], ['bigtriangleup', [9651]], ['biguplus', [10756]], ['bigvee', [8897]], ['bigwedge', [8896]], ['bkarow', [10509]], ['blacklozenge', [10731]], ['blacksquare', [9642]], ['blacktriangle', [9652]], ['blacktriangledown', [9662]], ['blacktriangleleft', [9666]], ['blacktriangleright', [9656]], ['blank', [9251]], ['blk12', [9618]], ['blk14', [9617]], ['blk34', [9619]], ['block', [9608]], ['bne', [61, 8421]], ['bnequiv', [8801, 8421]], ['bNot', [10989]], ['bnot', [8976]], ['Bopf', [120121]], ['bopf', [120147]], ['bot', [8869]], ['bottom', [8869]], ['bowtie', [8904]], ['boxbox', [10697]], ['boxdl', [9488]], ['boxdL', [9557]], ['boxDl', [9558]], ['boxDL', [9559]], ['boxdr', [9484]], ['boxdR', [9554]], ['boxDr', [9555]], ['boxDR', [9556]], ['boxh', [9472]], ['boxH', [9552]], ['boxhd', [9516]], ['boxHd', [9572]], ['boxhD', [9573]], ['boxHD', [9574]], ['boxhu', [9524]], ['boxHu', [9575]], ['boxhU', [9576]], ['boxHU', [9577]], ['boxminus', [8863]], ['boxplus', [8862]], ['boxtimes', [8864]], ['boxul', [9496]], ['boxuL', [9563]], ['boxUl', [9564]], ['boxUL', [9565]], ['boxur', [9492]], ['boxuR', [9560]], ['boxUr', [9561]], ['boxUR', [9562]], ['boxv', [9474]], ['boxV', [9553]], ['boxvh', [9532]], ['boxvH', [9578]], ['boxVh', [9579]], ['boxVH', [9580]], ['boxvl', [9508]], ['boxvL', [9569]], ['boxVl', [9570]], ['boxVL', [9571]], ['boxvr', [9500]], ['boxvR', [9566]], ['boxVr', [9567]], ['boxVR', [9568]], ['bprime', [8245]], ['breve', [728]], ['Breve', [728]], ['brvbar', [166]], ['bscr', [119991]], ['Bscr', [8492]], ['bsemi', [8271]], ['bsim', [8765]], ['bsime', [8909]], ['bsolb', [10693]], ['bsol', [92]], ['bsolhsub', [10184]], ['bull', [8226]], ['bullet', [8226]], ['bump', [8782]], ['bumpE', [10926]], ['bumpe', [8783]], ['Bumpeq', [8782]], ['bumpeq', [8783]], ['Cacute', [262]], ['cacute', [263]], ['capand', [10820]], ['capbrcup', [10825]], ['capcap', [10827]], ['cap', [8745]], ['Cap', [8914]], ['capcup', [10823]], ['capdot', [10816]], ['CapitalDifferentialD', [8517]], ['caps', [8745, 65024]], ['caret', [8257]], ['caron', [711]], ['Cayleys', [8493]], ['ccaps', [10829]], ['Ccaron', [268]], ['ccaron', [269]], ['Ccedil', [199]], ['ccedil', [231]], ['Ccirc', [264]], ['ccirc', [265]], ['Cconint', [8752]], ['ccups', [10828]], ['ccupssm', [10832]], ['Cdot', [266]], ['cdot', [267]], ['cedil', [184]], ['Cedilla', [184]], ['cemptyv', [10674]], ['cent', [162]], ['centerdot', [183]], ['CenterDot', [183]], ['cfr', [120096]], ['Cfr', [8493]], ['CHcy', [1063]], ['chcy', [1095]], ['check', [10003]], ['checkmark', [10003]], ['Chi', [935]], ['chi', [967]], ['circ', [710]], ['circeq', [8791]], ['circlearrowleft', [8634]], ['circlearrowright', [8635]], ['circledast', [8859]], ['circledcirc', [8858]], ['circleddash', [8861]], ['CircleDot', [8857]], ['circledR', [174]], ['circledS', [9416]], ['CircleMinus', [8854]], ['CirclePlus', [8853]], ['CircleTimes', [8855]], ['cir', [9675]], ['cirE', [10691]], ['cire', [8791]], ['cirfnint', [10768]], ['cirmid', [10991]], ['cirscir', [10690]], ['ClockwiseContourIntegral', [8754]], ['clubs', [9827]], ['clubsuit', [9827]], ['colon', [58]], ['Colon', [8759]], ['Colone', [10868]], ['colone', [8788]], ['coloneq', [8788]], ['comma', [44]], ['commat', [64]], ['comp', [8705]], ['compfn', [8728]], ['complement', [8705]], ['complexes', [8450]], ['cong', [8773]], ['congdot', [10861]], ['Congruent', [8801]], ['conint', [8750]], ['Conint', [8751]], ['ContourIntegral', [8750]], ['copf', [120148]], ['Copf', [8450]], ['coprod', [8720]], ['Coproduct', [8720]], ['copy', [169]], ['COPY', [169]], ['copysr', [8471]], ['CounterClockwiseContourIntegral', [8755]], ['crarr', [8629]], ['cross', [10007]], ['Cross', [10799]], ['Cscr', [119966]], ['cscr', [119992]], ['csub', [10959]], ['csube', [10961]], ['csup', [10960]], ['csupe', [10962]], ['ctdot', [8943]], ['cudarrl', [10552]], ['cudarrr', [10549]], ['cuepr', [8926]], ['cuesc', [8927]], ['cularr', [8630]], ['cularrp', [10557]], ['cupbrcap', [10824]], ['cupcap', [10822]], ['CupCap', [8781]], ['cup', [8746]], ['Cup', [8915]], ['cupcup', [10826]], ['cupdot', [8845]], ['cupor', [10821]], ['cups', [8746, 65024]], ['curarr', [8631]], ['curarrm', [10556]], ['curlyeqprec', [8926]], ['curlyeqsucc', [8927]], ['curlyvee', [8910]], ['curlywedge', [8911]], ['curren', [164]], ['curvearrowleft', [8630]], ['curvearrowright', [8631]], ['cuvee', [8910]], ['cuwed', [8911]], ['cwconint', [8754]], ['cwint', [8753]], ['cylcty', [9005]], ['dagger', [8224]], ['Dagger', [8225]], ['daleth', [8504]], ['darr', [8595]], ['Darr', [8609]], ['dArr', [8659]], ['dash', [8208]], ['Dashv', [10980]], ['dashv', [8867]], ['dbkarow', [10511]], ['dblac', [733]], ['Dcaron', [270]], ['dcaron', [271]], ['Dcy', [1044]], ['dcy', [1076]], ['ddagger', [8225]], ['ddarr', [8650]], ['DD', [8517]], ['dd', [8518]], ['DDotrahd', [10513]], ['ddotseq', [10871]], ['deg', [176]], ['Del', [8711]], ['Delta', [916]], ['delta', [948]], ['demptyv', [10673]], ['dfisht', [10623]], ['Dfr', [120071]], ['dfr', [120097]], ['dHar', [10597]], ['dharl', [8643]], ['dharr', [8642]], ['DiacriticalAcute', [180]], ['DiacriticalDot', [729]], ['DiacriticalDoubleAcute', [733]], ['DiacriticalGrave', [96]], ['DiacriticalTilde', [732]], ['diam', [8900]], ['diamond', [8900]], ['Diamond', [8900]], ['diamondsuit', [9830]], ['diams', [9830]], ['die', [168]], ['DifferentialD', [8518]], ['digamma', [989]], ['disin', [8946]], ['div', [247]], ['divide', [247]], ['divideontimes', [8903]], ['divonx', [8903]], ['DJcy', [1026]], ['djcy', [1106]], ['dlcorn', [8990]], ['dlcrop', [8973]], ['dollar', [36]], ['Dopf', [120123]], ['dopf', [120149]], ['Dot', [168]], ['dot', [729]], ['DotDot', [8412]], ['doteq', [8784]], ['doteqdot', [8785]], ['DotEqual', [8784]], ['dotminus', [8760]], ['dotplus', [8724]], ['dotsquare', [8865]], ['doublebarwedge', [8966]], ['DoubleContourIntegral', [8751]], ['DoubleDot', [168]], ['DoubleDownArrow', [8659]], ['DoubleLeftArrow', [8656]], ['DoubleLeftRightArrow', [8660]], ['DoubleLeftTee', [10980]], ['DoubleLongLeftArrow', [10232]], ['DoubleLongLeftRightArrow', [10234]], ['DoubleLongRightArrow', [10233]], ['DoubleRightArrow', [8658]], ['DoubleRightTee', [8872]], ['DoubleUpArrow', [8657]], ['DoubleUpDownArrow', [8661]], ['DoubleVerticalBar', [8741]], ['DownArrowBar', [10515]], ['downarrow', [8595]], ['DownArrow', [8595]], ['Downarrow', [8659]], ['DownArrowUpArrow', [8693]], ['DownBreve', [785]], ['downdownarrows', [8650]], ['downharpoonleft', [8643]], ['downharpoonright', [8642]], ['DownLeftRightVector', [10576]], ['DownLeftTeeVector', [10590]], ['DownLeftVectorBar', [10582]], ['DownLeftVector', [8637]], ['DownRightTeeVector', [10591]], ['DownRightVectorBar', [10583]], ['DownRightVector', [8641]], ['DownTeeArrow', [8615]], ['DownTee', [8868]], ['drbkarow', [10512]], ['drcorn', [8991]], ['drcrop', [8972]], ['Dscr', [119967]], ['dscr', [119993]], ['DScy', [1029]], ['dscy', [1109]], ['dsol', [10742]], ['Dstrok', [272]], ['dstrok', [273]], ['dtdot', [8945]], ['dtri', [9663]], ['dtrif', [9662]], ['duarr', [8693]], ['duhar', [10607]], ['dwangle', [10662]], ['DZcy', [1039]], ['dzcy', [1119]], ['dzigrarr', [10239]], ['Eacute', [201]], ['eacute', [233]], ['easter', [10862]], ['Ecaron', [282]], ['ecaron', [283]], ['Ecirc', [202]], ['ecirc', [234]], ['ecir', [8790]], ['ecolon', [8789]], ['Ecy', [1069]], ['ecy', [1101]], ['eDDot', [10871]], ['Edot', [278]], ['edot', [279]], ['eDot', [8785]], ['ee', [8519]], ['efDot', [8786]], ['Efr', [120072]], ['efr', [120098]], ['eg', [10906]], ['Egrave', [200]], ['egrave', [232]], ['egs', [10902]], ['egsdot', [10904]], ['el', [10905]], ['Element', [8712]], ['elinters', [9191]], ['ell', [8467]], ['els', [10901]], ['elsdot', [10903]], ['Emacr', [274]], ['emacr', [275]], ['empty', [8709]], ['emptyset', [8709]], ['EmptySmallSquare', [9723]], ['emptyv', [8709]], ['EmptyVerySmallSquare', [9643]], ['emsp13', [8196]], ['emsp14', [8197]], ['emsp', [8195]], ['ENG', [330]], ['eng', [331]], ['ensp', [8194]], ['Eogon', [280]], ['eogon', [281]], ['Eopf', [120124]], ['eopf', [120150]], ['epar', [8917]], ['eparsl', [10723]], ['eplus', [10865]], ['epsi', [949]], ['Epsilon', [917]], ['epsilon', [949]], ['epsiv', [1013]], ['eqcirc', [8790]], ['eqcolon', [8789]], ['eqsim', [8770]], ['eqslantgtr', [10902]], ['eqslantless', [10901]], ['Equal', [10869]], ['equals', [61]], ['EqualTilde', [8770]], ['equest', [8799]], ['Equilibrium', [8652]], ['equiv', [8801]], ['equivDD', [10872]], ['eqvparsl', [10725]], ['erarr', [10609]], ['erDot', [8787]], ['escr', [8495]], ['Escr', [8496]], ['esdot', [8784]], ['Esim', [10867]], ['esim', [8770]], ['Eta', [919]], ['eta', [951]], ['ETH', [208]], ['eth', [240]], ['Euml', [203]], ['euml', [235]], ['euro', [8364]], ['excl', [33]], ['exist', [8707]], ['Exists', [8707]], ['expectation', [8496]], ['exponentiale', [8519]], ['ExponentialE', [8519]], ['fallingdotseq', [8786]], ['Fcy', [1060]], ['fcy', [1092]], ['female', [9792]], ['ffilig', [64259]], ['fflig', [64256]], ['ffllig', [64260]], ['Ffr', [120073]], ['ffr', [120099]], ['filig', [64257]], ['FilledSmallSquare', [9724]], ['FilledVerySmallSquare', [9642]], ['fjlig', [102, 106]], ['flat', [9837]], ['fllig', [64258]], ['fltns', [9649]], ['fnof', [402]], ['Fopf', [120125]], ['fopf', [120151]], ['forall', [8704]], ['ForAll', [8704]], ['fork', [8916]], ['forkv', [10969]], ['Fouriertrf', [8497]], ['fpartint', [10765]], ['frac12', [189]], ['frac13', [8531]], ['frac14', [188]], ['frac15', [8533]], ['frac16', [8537]], ['frac18', [8539]], ['frac23', [8532]], ['frac25', [8534]], ['frac34', [190]], ['frac35', [8535]], ['frac38', [8540]], ['frac45', [8536]], ['frac56', [8538]], ['frac58', [8541]], ['frac78', [8542]], ['frasl', [8260]], ['frown', [8994]], ['fscr', [119995]], ['Fscr', [8497]], ['gacute', [501]], ['Gamma', [915]], ['gamma', [947]], ['Gammad', [988]], ['gammad', [989]], ['gap', [10886]], ['Gbreve', [286]], ['gbreve', [287]], ['Gcedil', [290]], ['Gcirc', [284]], ['gcirc', [285]], ['Gcy', [1043]], ['gcy', [1075]], ['Gdot', [288]], ['gdot', [289]], ['ge', [8805]], ['gE', [8807]], ['gEl', [10892]], ['gel', [8923]], ['geq', [8805]], ['geqq', [8807]], ['geqslant', [10878]], ['gescc', [10921]], ['ges', [10878]], ['gesdot', [10880]], ['gesdoto', [10882]], ['gesdotol', [10884]], ['gesl', [8923, 65024]], ['gesles', [10900]], ['Gfr', [120074]], ['gfr', [120100]], ['gg', [8811]], ['Gg', [8921]], ['ggg', [8921]], ['gimel', [8503]], ['GJcy', [1027]], ['gjcy', [1107]], ['gla', [10917]], ['gl', [8823]], ['glE', [10898]], ['glj', [10916]], ['gnap', [10890]], ['gnapprox', [10890]], ['gne', [10888]], ['gnE', [8809]], ['gneq', [10888]], ['gneqq', [8809]], ['gnsim', [8935]], ['Gopf', [120126]], ['gopf', [120152]], ['grave', [96]], ['GreaterEqual', [8805]], ['GreaterEqualLess', [8923]], ['GreaterFullEqual', [8807]], ['GreaterGreater', [10914]], ['GreaterLess', [8823]], ['GreaterSlantEqual', [10878]], ['GreaterTilde', [8819]], ['Gscr', [119970]], ['gscr', [8458]], ['gsim', [8819]], ['gsime', [10894]], ['gsiml', [10896]], ['gtcc', [10919]], ['gtcir', [10874]], ['gt', [62]], ['GT', [62]], ['Gt', [8811]], ['gtdot', [8919]], ['gtlPar', [10645]], ['gtquest', [10876]], ['gtrapprox', [10886]], ['gtrarr', [10616]], ['gtrdot', [8919]], ['gtreqless', [8923]], ['gtreqqless', [10892]], ['gtrless', [8823]], ['gtrsim', [8819]], ['gvertneqq', [8809, 65024]], ['gvnE', [8809, 65024]], ['Hacek', [711]], ['hairsp', [8202]], ['half', [189]], ['hamilt', [8459]], ['HARDcy', [1066]], ['hardcy', [1098]], ['harrcir', [10568]], ['harr', [8596]], ['hArr', [8660]], ['harrw', [8621]], ['Hat', [94]], ['hbar', [8463]], ['Hcirc', [292]], ['hcirc', [293]], ['hearts', [9829]], ['heartsuit', [9829]], ['hellip', [8230]], ['hercon', [8889]], ['hfr', [120101]], ['Hfr', [8460]], ['HilbertSpace', [8459]], ['hksearow', [10533]], ['hkswarow', [10534]], ['hoarr', [8703]], ['homtht', [8763]], ['hookleftarrow', [8617]], ['hookrightarrow', [8618]], ['hopf', [120153]], ['Hopf', [8461]], ['horbar', [8213]], ['HorizontalLine', [9472]], ['hscr', [119997]], ['Hscr', [8459]], ['hslash', [8463]], ['Hstrok', [294]], ['hstrok', [295]], ['HumpDownHump', [8782]], ['HumpEqual', [8783]], ['hybull', [8259]], ['hyphen', [8208]], ['Iacute', [205]], ['iacute', [237]], ['ic', [8291]], ['Icirc', [206]], ['icirc', [238]], ['Icy', [1048]], ['icy', [1080]], ['Idot', [304]], ['IEcy', [1045]], ['iecy', [1077]], ['iexcl', [161]], ['iff', [8660]], ['ifr', [120102]], ['Ifr', [8465]], ['Igrave', [204]], ['igrave', [236]], ['ii', [8520]], ['iiiint', [10764]], ['iiint', [8749]], ['iinfin', [10716]], ['iiota', [8489]], ['IJlig', [306]], ['ijlig', [307]], ['Imacr', [298]], ['imacr', [299]], ['image', [8465]], ['ImaginaryI', [8520]], ['imagline', [8464]], ['imagpart', [8465]], ['imath', [305]], ['Im', [8465]], ['imof', [8887]], ['imped', [437]], ['Implies', [8658]], ['incare', [8453]], ['in', [8712]], ['infin', [8734]], ['infintie', [10717]], ['inodot', [305]], ['intcal', [8890]], ['int', [8747]], ['Int', [8748]], ['integers', [8484]], ['Integral', [8747]], ['intercal', [8890]], ['Intersection', [8898]], ['intlarhk', [10775]], ['intprod', [10812]], ['InvisibleComma', [8291]], ['InvisibleTimes', [8290]], ['IOcy', [1025]], ['iocy', [1105]], ['Iogon', [302]], ['iogon', [303]], ['Iopf', [120128]], ['iopf', [120154]], ['Iota', [921]], ['iota', [953]], ['iprod', [10812]], ['iquest', [191]], ['iscr', [119998]], ['Iscr', [8464]], ['isin', [8712]], ['isindot', [8949]], ['isinE', [8953]], ['isins', [8948]], ['isinsv', [8947]], ['isinv', [8712]], ['it', [8290]], ['Itilde', [296]], ['itilde', [297]], ['Iukcy', [1030]], ['iukcy', [1110]], ['Iuml', [207]], ['iuml', [239]], ['Jcirc', [308]], ['jcirc', [309]], ['Jcy', [1049]], ['jcy', [1081]], ['Jfr', [120077]], ['jfr', [120103]], ['jmath', [567]], ['Jopf', [120129]], ['jopf', [120155]], ['Jscr', [119973]], ['jscr', [119999]], ['Jsercy', [1032]], ['jsercy', [1112]], ['Jukcy', [1028]], ['jukcy', [1108]], ['Kappa', [922]], ['kappa', [954]], ['kappav', [1008]], ['Kcedil', [310]], ['kcedil', [311]], ['Kcy', [1050]], ['kcy', [1082]], ['Kfr', [120078]], ['kfr', [120104]], ['kgreen', [312]], ['KHcy', [1061]], ['khcy', [1093]], ['KJcy', [1036]], ['kjcy', [1116]], ['Kopf', [120130]], ['kopf', [120156]], ['Kscr', [119974]], ['kscr', [120000]], ['lAarr', [8666]], ['Lacute', [313]], ['lacute', [314]], ['laemptyv', [10676]], ['lagran', [8466]], ['Lambda', [923]], ['lambda', [955]], ['lang', [10216]], ['Lang', [10218]], ['langd', [10641]], ['langle', [10216]], ['lap', [10885]], ['Laplacetrf', [8466]], ['laquo', [171]], ['larrb', [8676]], ['larrbfs', [10527]], ['larr', [8592]], ['Larr', [8606]], ['lArr', [8656]], ['larrfs', [10525]], ['larrhk', [8617]], ['larrlp', [8619]], ['larrpl', [10553]], ['larrsim', [10611]], ['larrtl', [8610]], ['latail', [10521]], ['lAtail', [10523]], ['lat', [10923]], ['late', [10925]], ['lates', [10925, 65024]], ['lbarr', [10508]], ['lBarr', [10510]], ['lbbrk', [10098]], ['lbrace', [123]], ['lbrack', [91]], ['lbrke', [10635]], ['lbrksld', [10639]], ['lbrkslu', [10637]], ['Lcaron', [317]], ['lcaron', [318]], ['Lcedil', [315]], ['lcedil', [316]], ['lceil', [8968]], ['lcub', [123]], ['Lcy', [1051]], ['lcy', [1083]], ['ldca', [10550]], ['ldquo', [8220]], ['ldquor', [8222]], ['ldrdhar', [10599]], ['ldrushar', [10571]], ['ldsh', [8626]], ['le', [8804]], ['lE', [8806]], ['LeftAngleBracket', [10216]], ['LeftArrowBar', [8676]], ['leftarrow', [8592]], ['LeftArrow', [8592]], ['Leftarrow', [8656]], ['LeftArrowRightArrow', [8646]], ['leftarrowtail', [8610]], ['LeftCeiling', [8968]], ['LeftDoubleBracket', [10214]], ['LeftDownTeeVector', [10593]], ['LeftDownVectorBar', [10585]], ['LeftDownVector', [8643]], ['LeftFloor', [8970]], ['leftharpoondown', [8637]], ['leftharpoonup', [8636]], ['leftleftarrows', [8647]], ['leftrightarrow', [8596]], ['LeftRightArrow', [8596]], ['Leftrightarrow', [8660]], ['leftrightarrows', [8646]], ['leftrightharpoons', [8651]], ['leftrightsquigarrow', [8621]], ['LeftRightVector', [10574]], ['LeftTeeArrow', [8612]], ['LeftTee', [8867]], ['LeftTeeVector', [10586]], ['leftthreetimes', [8907]], ['LeftTriangleBar', [10703]], ['LeftTriangle', [8882]], ['LeftTriangleEqual', [8884]], ['LeftUpDownVector', [10577]], ['LeftUpTeeVector', [10592]], ['LeftUpVectorBar', [10584]], ['LeftUpVector', [8639]], ['LeftVectorBar', [10578]], ['LeftVector', [8636]], ['lEg', [10891]], ['leg', [8922]], ['leq', [8804]], ['leqq', [8806]], ['leqslant', [10877]], ['lescc', [10920]], ['les', [10877]], ['lesdot', [10879]], ['lesdoto', [10881]], ['lesdotor', [10883]], ['lesg', [8922, 65024]], ['lesges', [10899]], ['lessapprox', [10885]], ['lessdot', [8918]], ['lesseqgtr', [8922]], ['lesseqqgtr', [10891]], ['LessEqualGreater', [8922]], ['LessFullEqual', [8806]], ['LessGreater', [8822]], ['lessgtr', [8822]], ['LessLess', [10913]], ['lesssim', [8818]], ['LessSlantEqual', [10877]], ['LessTilde', [8818]], ['lfisht', [10620]], ['lfloor', [8970]], ['Lfr', [120079]], ['lfr', [120105]], ['lg', [8822]], ['lgE', [10897]], ['lHar', [10594]], ['lhard', [8637]], ['lharu', [8636]], ['lharul', [10602]], ['lhblk', [9604]], ['LJcy', [1033]], ['ljcy', [1113]], ['llarr', [8647]], ['ll', [8810]], ['Ll', [8920]], ['llcorner', [8990]], ['Lleftarrow', [8666]], ['llhard', [10603]], ['lltri', [9722]], ['Lmidot', [319]], ['lmidot', [320]], ['lmoustache', [9136]], ['lmoust', [9136]], ['lnap', [10889]], ['lnapprox', [10889]], ['lne', [10887]], ['lnE', [8808]], ['lneq', [10887]], ['lneqq', [8808]], ['lnsim', [8934]], ['loang', [10220]], ['loarr', [8701]], ['lobrk', [10214]], ['longleftarrow', [10229]], ['LongLeftArrow', [10229]], ['Longleftarrow', [10232]], ['longleftrightarrow', [10231]], ['LongLeftRightArrow', [10231]], ['Longleftrightarrow', [10234]], ['longmapsto', [10236]], ['longrightarrow', [10230]], ['LongRightArrow', [10230]], ['Longrightarrow', [10233]], ['looparrowleft', [8619]], ['looparrowright', [8620]], ['lopar', [10629]], ['Lopf', [120131]], ['lopf', [120157]], ['loplus', [10797]], ['lotimes', [10804]], ['lowast', [8727]], ['lowbar', [95]], ['LowerLeftArrow', [8601]], ['LowerRightArrow', [8600]], ['loz', [9674]], ['lozenge', [9674]], ['lozf', [10731]], ['lpar', [40]], ['lparlt', [10643]], ['lrarr', [8646]], ['lrcorner', [8991]], ['lrhar', [8651]], ['lrhard', [10605]], ['lrm', [8206]], ['lrtri', [8895]], ['lsaquo', [8249]], ['lscr', [120001]], ['Lscr', [8466]], ['lsh', [8624]], ['Lsh', [8624]], ['lsim', [8818]], ['lsime', [10893]], ['lsimg', [10895]], ['lsqb', [91]], ['lsquo', [8216]], ['lsquor', [8218]], ['Lstrok', [321]], ['lstrok', [322]], ['ltcc', [10918]], ['ltcir', [10873]], ['lt', [60]], ['LT', [60]], ['Lt', [8810]], ['ltdot', [8918]], ['lthree', [8907]], ['ltimes', [8905]], ['ltlarr', [10614]], ['ltquest', [10875]], ['ltri', [9667]], ['ltrie', [8884]], ['ltrif', [9666]], ['ltrPar', [10646]], ['lurdshar', [10570]], ['luruhar', [10598]], ['lvertneqq', [8808, 65024]], ['lvnE', [8808, 65024]], ['macr', [175]], ['male', [9794]], ['malt', [10016]], ['maltese', [10016]], ['Map', [10501]], ['map', [8614]], ['mapsto', [8614]], ['mapstodown', [8615]], ['mapstoleft', [8612]], ['mapstoup', [8613]], ['marker', [9646]], ['mcomma', [10793]], ['Mcy', [1052]], ['mcy', [1084]], ['mdash', [8212]], ['mDDot', [8762]], ['measuredangle', [8737]], ['MediumSpace', [8287]], ['Mellintrf', [8499]], ['Mfr', [120080]], ['mfr', [120106]], ['mho', [8487]], ['micro', [181]], ['midast', [42]], ['midcir', [10992]], ['mid', [8739]], ['middot', [183]], ['minusb', [8863]], ['minus', [8722]], ['minusd', [8760]], ['minusdu', [10794]], ['MinusPlus', [8723]], ['mlcp', [10971]], ['mldr', [8230]], ['mnplus', [8723]], ['models', [8871]], ['Mopf', [120132]], ['mopf', [120158]], ['mp', [8723]], ['mscr', [120002]], ['Mscr', [8499]], ['mstpos', [8766]], ['Mu', [924]], ['mu', [956]], ['multimap', [8888]], ['mumap', [8888]], ['nabla', [8711]], ['Nacute', [323]], ['nacute', [324]], ['nang', [8736, 8402]], ['nap', [8777]], ['napE', [10864, 824]], ['napid', [8779, 824]], ['napos', [329]], ['napprox', [8777]], ['natural', [9838]], ['naturals', [8469]], ['natur', [9838]], ['nbsp', [160]], ['nbump', [8782, 824]], ['nbumpe', [8783, 824]], ['ncap', [10819]], ['Ncaron', [327]], ['ncaron', [328]], ['Ncedil', [325]], ['ncedil', [326]], ['ncong', [8775]], ['ncongdot', [10861, 824]], ['ncup', [10818]], ['Ncy', [1053]], ['ncy', [1085]], ['ndash', [8211]], ['nearhk', [10532]], ['nearr', [8599]], ['neArr', [8663]], ['nearrow', [8599]], ['ne', [8800]], ['nedot', [8784, 824]], ['NegativeMediumSpace', [8203]], ['NegativeThickSpace', [8203]], ['NegativeThinSpace', [8203]], ['NegativeVeryThinSpace', [8203]], ['nequiv', [8802]], ['nesear', [10536]], ['nesim', [8770, 824]], ['NestedGreaterGreater', [8811]], ['NestedLessLess', [8810]], ['nexist', [8708]], ['nexists', [8708]], ['Nfr', [120081]], ['nfr', [120107]], ['ngE', [8807, 824]], ['nge', [8817]], ['ngeq', [8817]], ['ngeqq', [8807, 824]], ['ngeqslant', [10878, 824]], ['nges', [10878, 824]], ['nGg', [8921, 824]], ['ngsim', [8821]], ['nGt', [8811, 8402]], ['ngt', [8815]], ['ngtr', [8815]], ['nGtv', [8811, 824]], ['nharr', [8622]], ['nhArr', [8654]], ['nhpar', [10994]], ['ni', [8715]], ['nis', [8956]], ['nisd', [8954]], ['niv', [8715]], ['NJcy', [1034]], ['njcy', [1114]], ['nlarr', [8602]], ['nlArr', [8653]], ['nldr', [8229]], ['nlE', [8806, 824]], ['nle', [8816]], ['nleftarrow', [8602]], ['nLeftarrow', [8653]], ['nleftrightarrow', [8622]], ['nLeftrightarrow', [8654]], ['nleq', [8816]], ['nleqq', [8806, 824]], ['nleqslant', [10877, 824]], ['nles', [10877, 824]], ['nless', [8814]], ['nLl', [8920, 824]], ['nlsim', [8820]], ['nLt', [8810, 8402]], ['nlt', [8814]], ['nltri', [8938]], ['nltrie', [8940]], ['nLtv', [8810, 824]], ['nmid', [8740]], ['NoBreak', [8288]], ['NonBreakingSpace', [160]], ['nopf', [120159]], ['Nopf', [8469]], ['Not', [10988]], ['not', [172]], ['NotCongruent', [8802]], ['NotCupCap', [8813]], ['NotDoubleVerticalBar', [8742]], ['NotElement', [8713]], ['NotEqual', [8800]], ['NotEqualTilde', [8770, 824]], ['NotExists', [8708]], ['NotGreater', [8815]], ['NotGreaterEqual', [8817]], ['NotGreaterFullEqual', [8807, 824]], ['NotGreaterGreater', [8811, 824]], ['NotGreaterLess', [8825]], ['NotGreaterSlantEqual', [10878, 824]], ['NotGreaterTilde', [8821]], ['NotHumpDownHump', [8782, 824]], ['NotHumpEqual', [8783, 824]], ['notin', [8713]], ['notindot', [8949, 824]], ['notinE', [8953, 824]], ['notinva', [8713]], ['notinvb', [8951]], ['notinvc', [8950]], ['NotLeftTriangleBar', [10703, 824]], ['NotLeftTriangle', [8938]], ['NotLeftTriangleEqual', [8940]], ['NotLess', [8814]], ['NotLessEqual', [8816]], ['NotLessGreater', [8824]], ['NotLessLess', [8810, 824]], ['NotLessSlantEqual', [10877, 824]], ['NotLessTilde', [8820]], ['NotNestedGreaterGreater', [10914, 824]], ['NotNestedLessLess', [10913, 824]], ['notni', [8716]], ['notniva', [8716]], ['notnivb', [8958]], ['notnivc', [8957]], ['NotPrecedes', [8832]], ['NotPrecedesEqual', [10927, 824]], ['NotPrecedesSlantEqual', [8928]], ['NotReverseElement', [8716]], ['NotRightTriangleBar', [10704, 824]], ['NotRightTriangle', [8939]], ['NotRightTriangleEqual', [8941]], ['NotSquareSubset', [8847, 824]], ['NotSquareSubsetEqual', [8930]], ['NotSquareSuperset', [8848, 824]], ['NotSquareSupersetEqual', [8931]], ['NotSubset', [8834, 8402]], ['NotSubsetEqual', [8840]], ['NotSucceeds', [8833]], ['NotSucceedsEqual', [10928, 824]], ['NotSucceedsSlantEqual', [8929]], ['NotSucceedsTilde', [8831, 824]], ['NotSuperset', [8835, 8402]], ['NotSupersetEqual', [8841]], ['NotTilde', [8769]], ['NotTildeEqual', [8772]], ['NotTildeFullEqual', [8775]], ['NotTildeTilde', [8777]], ['NotVerticalBar', [8740]], ['nparallel', [8742]], ['npar', [8742]], ['nparsl', [11005, 8421]], ['npart', [8706, 824]], ['npolint', [10772]], ['npr', [8832]], ['nprcue', [8928]], ['nprec', [8832]], ['npreceq', [10927, 824]], ['npre', [10927, 824]], ['nrarrc', [10547, 824]], ['nrarr', [8603]], ['nrArr', [8655]], ['nrarrw', [8605, 824]], ['nrightarrow', [8603]], ['nRightarrow', [8655]], ['nrtri', [8939]], ['nrtrie', [8941]], ['nsc', [8833]], ['nsccue', [8929]], ['nsce', [10928, 824]], ['Nscr', [119977]], ['nscr', [120003]], ['nshortmid', [8740]], ['nshortparallel', [8742]], ['nsim', [8769]], ['nsime', [8772]], ['nsimeq', [8772]], ['nsmid', [8740]], ['nspar', [8742]], ['nsqsube', [8930]], ['nsqsupe', [8931]], ['nsub', [8836]], ['nsubE', [10949, 824]], ['nsube', [8840]], ['nsubset', [8834, 8402]], ['nsubseteq', [8840]], ['nsubseteqq', [10949, 824]], ['nsucc', [8833]], ['nsucceq', [10928, 824]], ['nsup', [8837]], ['nsupE', [10950, 824]], ['nsupe', [8841]], ['nsupset', [8835, 8402]], ['nsupseteq', [8841]], ['nsupseteqq', [10950, 824]], ['ntgl', [8825]], ['Ntilde', [209]], ['ntilde', [241]], ['ntlg', [8824]], ['ntriangleleft', [8938]], ['ntrianglelefteq', [8940]], ['ntriangleright', [8939]], ['ntrianglerighteq', [8941]], ['Nu', [925]], ['nu', [957]], ['num', [35]], ['numero', [8470]], ['numsp', [8199]], ['nvap', [8781, 8402]], ['nvdash', [8876]], ['nvDash', [8877]], ['nVdash', [8878]], ['nVDash', [8879]], ['nvge', [8805, 8402]], ['nvgt', [62, 8402]], ['nvHarr', [10500]], ['nvinfin', [10718]], ['nvlArr', [10498]], ['nvle', [8804, 8402]], ['nvlt', [60, 8402]], ['nvltrie', [8884, 8402]], ['nvrArr', [10499]], ['nvrtrie', [8885, 8402]], ['nvsim', [8764, 8402]], ['nwarhk', [10531]], ['nwarr', [8598]], ['nwArr', [8662]], ['nwarrow', [8598]], ['nwnear', [10535]], ['Oacute', [211]], ['oacute', [243]], ['oast', [8859]], ['Ocirc', [212]], ['ocirc', [244]], ['ocir', [8858]], ['Ocy', [1054]], ['ocy', [1086]], ['odash', [8861]], ['Odblac', [336]], ['odblac', [337]], ['odiv', [10808]], ['odot', [8857]], ['odsold', [10684]], ['OElig', [338]], ['oelig', [339]], ['ofcir', [10687]], ['Ofr', [120082]], ['ofr', [120108]], ['ogon', [731]], ['Ograve', [210]], ['ograve', [242]], ['ogt', [10689]], ['ohbar', [10677]], ['ohm', [937]], ['oint', [8750]], ['olarr', [8634]], ['olcir', [10686]], ['olcross', [10683]], ['oline', [8254]], ['olt', [10688]], ['Omacr', [332]], ['omacr', [333]], ['Omega', [937]], ['omega', [969]], ['Omicron', [927]], ['omicron', [959]], ['omid', [10678]], ['ominus', [8854]], ['Oopf', [120134]], ['oopf', [120160]], ['opar', [10679]], ['OpenCurlyDoubleQuote', [8220]], ['OpenCurlyQuote', [8216]], ['operp', [10681]], ['oplus', [8853]], ['orarr', [8635]], ['Or', [10836]], ['or', [8744]], ['ord', [10845]], ['order', [8500]], ['orderof', [8500]], ['ordf', [170]], ['ordm', [186]], ['origof', [8886]], ['oror', [10838]], ['orslope', [10839]], ['orv', [10843]], ['oS', [9416]], ['Oscr', [119978]], ['oscr', [8500]], ['Oslash', [216]], ['oslash', [248]], ['osol', [8856]], ['Otilde', [213]], ['otilde', [245]], ['otimesas', [10806]], ['Otimes', [10807]], ['otimes', [8855]], ['Ouml', [214]], ['ouml', [246]], ['ovbar', [9021]], ['OverBar', [8254]], ['OverBrace', [9182]], ['OverBracket', [9140]], ['OverParenthesis', [9180]], ['para', [182]], ['parallel', [8741]], ['par', [8741]], ['parsim', [10995]], ['parsl', [11005]], ['part', [8706]], ['PartialD', [8706]], ['Pcy', [1055]], ['pcy', [1087]], ['percnt', [37]], ['period', [46]], ['permil', [8240]], ['perp', [8869]], ['pertenk', [8241]], ['Pfr', [120083]], ['pfr', [120109]], ['Phi', [934]], ['phi', [966]], ['phiv', [981]], ['phmmat', [8499]], ['phone', [9742]], ['Pi', [928]], ['pi', [960]], ['pitchfork', [8916]], ['piv', [982]], ['planck', [8463]], ['planckh', [8462]], ['plankv', [8463]], ['plusacir', [10787]], ['plusb', [8862]], ['pluscir', [10786]], ['plus', [43]], ['plusdo', [8724]], ['plusdu', [10789]], ['pluse', [10866]], ['PlusMinus', [177]], ['plusmn', [177]], ['plussim', [10790]], ['plustwo', [10791]], ['pm', [177]], ['Poincareplane', [8460]], ['pointint', [10773]], ['popf', [120161]], ['Popf', [8473]], ['pound', [163]], ['prap', [10935]], ['Pr', [10939]], ['pr', [8826]], ['prcue', [8828]], ['precapprox', [10935]], ['prec', [8826]], ['preccurlyeq', [8828]], ['Precedes', [8826]], ['PrecedesEqual', [10927]], ['PrecedesSlantEqual', [8828]], ['PrecedesTilde', [8830]], ['preceq', [10927]], ['precnapprox', [10937]], ['precneqq', [10933]], ['precnsim', [8936]], ['pre', [10927]], ['prE', [10931]], ['precsim', [8830]], ['prime', [8242]], ['Prime', [8243]], ['primes', [8473]], ['prnap', [10937]], ['prnE', [10933]], ['prnsim', [8936]], ['prod', [8719]], ['Product', [8719]], ['profalar', [9006]], ['profline', [8978]], ['profsurf', [8979]], ['prop', [8733]], ['Proportional', [8733]], ['Proportion', [8759]], ['propto', [8733]], ['prsim', [8830]], ['prurel', [8880]], ['Pscr', [119979]], ['pscr', [120005]], ['Psi', [936]], ['psi', [968]], ['puncsp', [8200]], ['Qfr', [120084]], ['qfr', [120110]], ['qint', [10764]], ['qopf', [120162]], ['Qopf', [8474]], ['qprime', [8279]], ['Qscr', [119980]], ['qscr', [120006]], ['quaternions', [8461]], ['quatint', [10774]], ['quest', [63]], ['questeq', [8799]], ['quot', [34]], ['QUOT', [34]], ['rAarr', [8667]], ['race', [8765, 817]], ['Racute', [340]], ['racute', [341]], ['radic', [8730]], ['raemptyv', [10675]], ['rang', [10217]], ['Rang', [10219]], ['rangd', [10642]], ['range', [10661]], ['rangle', [10217]], ['raquo', [187]], ['rarrap', [10613]], ['rarrb', [8677]], ['rarrbfs', [10528]], ['rarrc', [10547]], ['rarr', [8594]], ['Rarr', [8608]], ['rArr', [8658]], ['rarrfs', [10526]], ['rarrhk', [8618]], ['rarrlp', [8620]], ['rarrpl', [10565]], ['rarrsim', [10612]], ['Rarrtl', [10518]], ['rarrtl', [8611]], ['rarrw', [8605]], ['ratail', [10522]], ['rAtail', [10524]], ['ratio', [8758]], ['rationals', [8474]], ['rbarr', [10509]], ['rBarr', [10511]], ['RBarr', [10512]], ['rbbrk', [10099]], ['rbrace', [125]], ['rbrack', [93]], ['rbrke', [10636]], ['rbrksld', [10638]], ['rbrkslu', [10640]], ['Rcaron', [344]], ['rcaron', [345]], ['Rcedil', [342]], ['rcedil', [343]], ['rceil', [8969]], ['rcub', [125]], ['Rcy', [1056]], ['rcy', [1088]], ['rdca', [10551]], ['rdldhar', [10601]], ['rdquo', [8221]], ['rdquor', [8221]], ['CloseCurlyDoubleQuote', [8221]], ['rdsh', [8627]], ['real', [8476]], ['realine', [8475]], ['realpart', [8476]], ['reals', [8477]], ['Re', [8476]], ['rect', [9645]], ['reg', [174]], ['REG', [174]], ['ReverseElement', [8715]], ['ReverseEquilibrium', [8651]], ['ReverseUpEquilibrium', [10607]], ['rfisht', [10621]], ['rfloor', [8971]], ['rfr', [120111]], ['Rfr', [8476]], ['rHar', [10596]], ['rhard', [8641]], ['rharu', [8640]], ['rharul', [10604]], ['Rho', [929]], ['rho', [961]], ['rhov', [1009]], ['RightAngleBracket', [10217]], ['RightArrowBar', [8677]], ['rightarrow', [8594]], ['RightArrow', [8594]], ['Rightarrow', [8658]], ['RightArrowLeftArrow', [8644]], ['rightarrowtail', [8611]], ['RightCeiling', [8969]], ['RightDoubleBracket', [10215]], ['RightDownTeeVector', [10589]], ['RightDownVectorBar', [10581]], ['RightDownVector', [8642]], ['RightFloor', [8971]], ['rightharpoondown', [8641]], ['rightharpoonup', [8640]], ['rightleftarrows', [8644]], ['rightleftharpoons', [8652]], ['rightrightarrows', [8649]], ['rightsquigarrow', [8605]], ['RightTeeArrow', [8614]], ['RightTee', [8866]], ['RightTeeVector', [10587]], ['rightthreetimes', [8908]], ['RightTriangleBar', [10704]], ['RightTriangle', [8883]], ['RightTriangleEqual', [8885]], ['RightUpDownVector', [10575]], ['RightUpTeeVector', [10588]], ['RightUpVectorBar', [10580]], ['RightUpVector', [8638]], ['RightVectorBar', [10579]], ['RightVector', [8640]], ['ring', [730]], ['risingdotseq', [8787]], ['rlarr', [8644]], ['rlhar', [8652]], ['rlm', [8207]], ['rmoustache', [9137]], ['rmoust', [9137]], ['rnmid', [10990]], ['roang', [10221]], ['roarr', [8702]], ['robrk', [10215]], ['ropar', [10630]], ['ropf', [120163]], ['Ropf', [8477]], ['roplus', [10798]], ['rotimes', [10805]], ['RoundImplies', [10608]], ['rpar', [41]], ['rpargt', [10644]], ['rppolint', [10770]], ['rrarr', [8649]], ['Rrightarrow', [8667]], ['rsaquo', [8250]], ['rscr', [120007]], ['Rscr', [8475]], ['rsh', [8625]], ['Rsh', [8625]], ['rsqb', [93]], ['rsquo', [8217]], ['rsquor', [8217]], ['CloseCurlyQuote', [8217]], ['rthree', [8908]], ['rtimes', [8906]], ['rtri', [9657]], ['rtrie', [8885]], ['rtrif', [9656]], ['rtriltri', [10702]], ['RuleDelayed', [10740]], ['ruluhar', [10600]], ['rx', [8478]], ['Sacute', [346]], ['sacute', [347]], ['sbquo', [8218]], ['scap', [10936]], ['Scaron', [352]], ['scaron', [353]], ['Sc', [10940]], ['sc', [8827]], ['sccue', [8829]], ['sce', [10928]], ['scE', [10932]], ['Scedil', [350]], ['scedil', [351]], ['Scirc', [348]], ['scirc', [349]], ['scnap', [10938]], ['scnE', [10934]], ['scnsim', [8937]], ['scpolint', [10771]], ['scsim', [8831]], ['Scy', [1057]], ['scy', [1089]], ['sdotb', [8865]], ['sdot', [8901]], ['sdote', [10854]], ['searhk', [10533]], ['searr', [8600]], ['seArr', [8664]], ['searrow', [8600]], ['sect', [167]], ['semi', [59]], ['seswar', [10537]], ['setminus', [8726]], ['setmn', [8726]], ['sext', [10038]], ['Sfr', [120086]], ['sfr', [120112]], ['sfrown', [8994]], ['sharp', [9839]], ['SHCHcy', [1065]], ['shchcy', [1097]], ['SHcy', [1064]], ['shcy', [1096]], ['ShortDownArrow', [8595]], ['ShortLeftArrow', [8592]], ['shortmid', [8739]], ['shortparallel', [8741]], ['ShortRightArrow', [8594]], ['ShortUpArrow', [8593]], ['shy', [173]], ['Sigma', [931]], ['sigma', [963]], ['sigmaf', [962]], ['sigmav', [962]], ['sim', [8764]], ['simdot', [10858]], ['sime', [8771]], ['simeq', [8771]], ['simg', [10910]], ['simgE', [10912]], ['siml', [10909]], ['simlE', [10911]], ['simne', [8774]], ['simplus', [10788]], ['simrarr', [10610]], ['slarr', [8592]], ['SmallCircle', [8728]], ['smallsetminus', [8726]], ['smashp', [10803]], ['smeparsl', [10724]], ['smid', [8739]], ['smile', [8995]], ['smt', [10922]], ['smte', [10924]], ['smtes', [10924, 65024]], ['SOFTcy', [1068]], ['softcy', [1100]], ['solbar', [9023]], ['solb', [10692]], ['sol', [47]], ['Sopf', [120138]], ['sopf', [120164]], ['spades', [9824]], ['spadesuit', [9824]], ['spar', [8741]], ['sqcap', [8851]], ['sqcaps', [8851, 65024]], ['sqcup', [8852]], ['sqcups', [8852, 65024]], ['Sqrt', [8730]], ['sqsub', [8847]], ['sqsube', [8849]], ['sqsubset', [8847]], ['sqsubseteq', [8849]], ['sqsup', [8848]], ['sqsupe', [8850]], ['sqsupset', [8848]], ['sqsupseteq', [8850]], ['square', [9633]], ['Square', [9633]], ['SquareIntersection', [8851]], ['SquareSubset', [8847]], ['SquareSubsetEqual', [8849]], ['SquareSuperset', [8848]], ['SquareSupersetEqual', [8850]], ['SquareUnion', [8852]], ['squarf', [9642]], ['squ', [9633]], ['squf', [9642]], ['srarr', [8594]], ['Sscr', [119982]], ['sscr', [120008]], ['ssetmn', [8726]], ['ssmile', [8995]], ['sstarf', [8902]], ['Star', [8902]], ['star', [9734]], ['starf', [9733]], ['straightepsilon', [1013]], ['straightphi', [981]], ['strns', [175]], ['sub', [8834]], ['Sub', [8912]], ['subdot', [10941]], ['subE', [10949]], ['sube', [8838]], ['subedot', [10947]], ['submult', [10945]], ['subnE', [10955]], ['subne', [8842]], ['subplus', [10943]], ['subrarr', [10617]], ['subset', [8834]], ['Subset', [8912]], ['subseteq', [8838]], ['subseteqq', [10949]], ['SubsetEqual', [8838]], ['subsetneq', [8842]], ['subsetneqq', [10955]], ['subsim', [10951]], ['subsub', [10965]], ['subsup', [10963]], ['succapprox', [10936]], ['succ', [8827]], ['succcurlyeq', [8829]], ['Succeeds', [8827]], ['SucceedsEqual', [10928]], ['SucceedsSlantEqual', [8829]], ['SucceedsTilde', [8831]], ['succeq', [10928]], ['succnapprox', [10938]], ['succneqq', [10934]], ['succnsim', [8937]], ['succsim', [8831]], ['SuchThat', [8715]], ['sum', [8721]], ['Sum', [8721]], ['sung', [9834]], ['sup1', [185]], ['sup2', [178]], ['sup3', [179]], ['sup', [8835]], ['Sup', [8913]], ['supdot', [10942]], ['supdsub', [10968]], ['supE', [10950]], ['supe', [8839]], ['supedot', [10948]], ['Superset', [8835]], ['SupersetEqual', [8839]], ['suphsol', [10185]], ['suphsub', [10967]], ['suplarr', [10619]], ['supmult', [10946]], ['supnE', [10956]], ['supne', [8843]], ['supplus', [10944]], ['supset', [8835]], ['Supset', [8913]], ['supseteq', [8839]], ['supseteqq', [10950]], ['supsetneq', [8843]], ['supsetneqq', [10956]], ['supsim', [10952]], ['supsub', [10964]], ['supsup', [10966]], ['swarhk', [10534]], ['swarr', [8601]], ['swArr', [8665]], ['swarrow', [8601]], ['swnwar', [10538]], ['szlig', [223]], ['Tab', [9]], ['target', [8982]], ['Tau', [932]], ['tau', [964]], ['tbrk', [9140]], ['Tcaron', [356]], ['tcaron', [357]], ['Tcedil', [354]], ['tcedil', [355]], ['Tcy', [1058]], ['tcy', [1090]], ['tdot', [8411]], ['telrec', [8981]], ['Tfr', [120087]], ['tfr', [120113]], ['there4', [8756]], ['therefore', [8756]], ['Therefore', [8756]], ['Theta', [920]], ['theta', [952]], ['thetasym', [977]], ['thetav', [977]], ['thickapprox', [8776]], ['thicksim', [8764]], ['ThickSpace', [8287, 8202]], ['ThinSpace', [8201]], ['thinsp', [8201]], ['thkap', [8776]], ['thksim', [8764]], ['THORN', [222]], ['thorn', [254]], ['tilde', [732]], ['Tilde', [8764]], ['TildeEqual', [8771]], ['TildeFullEqual', [8773]], ['TildeTilde', [8776]], ['timesbar', [10801]], ['timesb', [8864]], ['times', [215]], ['timesd', [10800]], ['tint', [8749]], ['toea', [10536]], ['topbot', [9014]], ['topcir', [10993]], ['top', [8868]], ['Topf', [120139]], ['topf', [120165]], ['topfork', [10970]], ['tosa', [10537]], ['tprime', [8244]], ['trade', [8482]], ['TRADE', [8482]], ['triangle', [9653]], ['triangledown', [9663]], ['triangleleft', [9667]], ['trianglelefteq', [8884]], ['triangleq', [8796]], ['triangleright', [9657]], ['trianglerighteq', [8885]], ['tridot', [9708]], ['trie', [8796]], ['triminus', [10810]], ['TripleDot', [8411]], ['triplus', [10809]], ['trisb', [10701]], ['tritime', [10811]], ['trpezium', [9186]], ['Tscr', [119983]], ['tscr', [120009]], ['TScy', [1062]], ['tscy', [1094]], ['TSHcy', [1035]], ['tshcy', [1115]], ['Tstrok', [358]], ['tstrok', [359]], ['twixt', [8812]], ['twoheadleftarrow', [8606]], ['twoheadrightarrow', [8608]], ['Uacute', [218]], ['uacute', [250]], ['uarr', [8593]], ['Uarr', [8607]], ['uArr', [8657]], ['Uarrocir', [10569]], ['Ubrcy', [1038]], ['ubrcy', [1118]], ['Ubreve', [364]], ['ubreve', [365]], ['Ucirc', [219]], ['ucirc', [251]], ['Ucy', [1059]], ['ucy', [1091]], ['udarr', [8645]], ['Udblac', [368]], ['udblac', [369]], ['udhar', [10606]], ['ufisht', [10622]], ['Ufr', [120088]], ['ufr', [120114]], ['Ugrave', [217]], ['ugrave', [249]], ['uHar', [10595]], ['uharl', [8639]], ['uharr', [8638]], ['uhblk', [9600]], ['ulcorn', [8988]], ['ulcorner', [8988]], ['ulcrop', [8975]], ['ultri', [9720]], ['Umacr', [362]], ['umacr', [363]], ['uml', [168]], ['UnderBar', [95]], ['UnderBrace', [9183]], ['UnderBracket', [9141]], ['UnderParenthesis', [9181]], ['Union', [8899]], ['UnionPlus', [8846]], ['Uogon', [370]], ['uogon', [371]], ['Uopf', [120140]], ['uopf', [120166]], ['UpArrowBar', [10514]], ['uparrow', [8593]], ['UpArrow', [8593]], ['Uparrow', [8657]], ['UpArrowDownArrow', [8645]], ['updownarrow', [8597]], ['UpDownArrow', [8597]], ['Updownarrow', [8661]], ['UpEquilibrium', [10606]], ['upharpoonleft', [8639]], ['upharpoonright', [8638]], ['uplus', [8846]], ['UpperLeftArrow', [8598]], ['UpperRightArrow', [8599]], ['upsi', [965]], ['Upsi', [978]], ['upsih', [978]], ['Upsilon', [933]], ['upsilon', [965]], ['UpTeeArrow', [8613]], ['UpTee', [8869]], ['upuparrows', [8648]], ['urcorn', [8989]], ['urcorner', [8989]], ['urcrop', [8974]], ['Uring', [366]], ['uring', [367]], ['urtri', [9721]], ['Uscr', [119984]], ['uscr', [120010]], ['utdot', [8944]], ['Utilde', [360]], ['utilde', [361]], ['utri', [9653]], ['utrif', [9652]], ['uuarr', [8648]], ['Uuml', [220]], ['uuml', [252]], ['uwangle', [10663]], ['vangrt', [10652]], ['varepsilon', [1013]], ['varkappa', [1008]], ['varnothing', [8709]], ['varphi', [981]], ['varpi', [982]], ['varpropto', [8733]], ['varr', [8597]], ['vArr', [8661]], ['varrho', [1009]], ['varsigma', [962]], ['varsubsetneq', [8842, 65024]], ['varsubsetneqq', [10955, 65024]], ['varsupsetneq', [8843, 65024]], ['varsupsetneqq', [10956, 65024]], ['vartheta', [977]], ['vartriangleleft', [8882]], ['vartriangleright', [8883]], ['vBar', [10984]], ['Vbar', [10987]], ['vBarv', [10985]], ['Vcy', [1042]], ['vcy', [1074]], ['vdash', [8866]], ['vDash', [8872]], ['Vdash', [8873]], ['VDash', [8875]], ['Vdashl', [10982]], ['veebar', [8891]], ['vee', [8744]], ['Vee', [8897]], ['veeeq', [8794]], ['vellip', [8942]], ['verbar', [124]], ['Verbar', [8214]], ['vert', [124]], ['Vert', [8214]], ['VerticalBar', [8739]], ['VerticalLine', [124]], ['VerticalSeparator', [10072]], ['VerticalTilde', [8768]], ['VeryThinSpace', [8202]], ['Vfr', [120089]], ['vfr', [120115]], ['vltri', [8882]], ['vnsub', [8834, 8402]], ['vnsup', [8835, 8402]], ['Vopf', [120141]], ['vopf', [120167]], ['vprop', [8733]], ['vrtri', [8883]], ['Vscr', [119985]], ['vscr', [120011]], ['vsubnE', [10955, 65024]], ['vsubne', [8842, 65024]], ['vsupnE', [10956, 65024]], ['vsupne', [8843, 65024]], ['Vvdash', [8874]], ['vzigzag', [10650]], ['Wcirc', [372]], ['wcirc', [373]], ['wedbar', [10847]], ['wedge', [8743]], ['Wedge', [8896]], ['wedgeq', [8793]], ['weierp', [8472]], ['Wfr', [120090]], ['wfr', [120116]], ['Wopf', [120142]], ['wopf', [120168]], ['wp', [8472]], ['wr', [8768]], ['wreath', [8768]], ['Wscr', [119986]], ['wscr', [120012]], ['xcap', [8898]], ['xcirc', [9711]], ['xcup', [8899]], ['xdtri', [9661]], ['Xfr', [120091]], ['xfr', [120117]], ['xharr', [10231]], ['xhArr', [10234]], ['Xi', [926]], ['xi', [958]], ['xlarr', [10229]], ['xlArr', [10232]], ['xmap', [10236]], ['xnis', [8955]], ['xodot', [10752]], ['Xopf', [120143]], ['xopf', [120169]], ['xoplus', [10753]], ['xotime', [10754]], ['xrarr', [10230]], ['xrArr', [10233]], ['Xscr', [119987]], ['xscr', [120013]], ['xsqcup', [10758]], ['xuplus', [10756]], ['xutri', [9651]], ['xvee', [8897]], ['xwedge', [8896]], ['Yacute', [221]], ['yacute', [253]], ['YAcy', [1071]], ['yacy', [1103]], ['Ycirc', [374]], ['ycirc', [375]], ['Ycy', [1067]], ['ycy', [1099]], ['yen', [165]], ['Yfr', [120092]], ['yfr', [120118]], ['YIcy', [1031]], ['yicy', [1111]], ['Yopf', [120144]], ['yopf', [120170]], ['Yscr', [119988]], ['yscr', [120014]], ['YUcy', [1070]], ['yucy', [1102]], ['yuml', [255]], ['Yuml', [376]], ['Zacute', [377]], ['zacute', [378]], ['Zcaron', [381]], ['zcaron', [382]], ['Zcy', [1047]], ['zcy', [1079]], ['Zdot', [379]], ['zdot', [380]], ['zeetrf', [8488]], ['ZeroWidthSpace', [8203]], ['Zeta', [918]], ['zeta', [950]], ['zfr', [120119]], ['Zfr', [8488]], ['ZHcy', [1046]], ['zhcy', [1078]], ['zigrarr', [8669]], ['zopf', [120171]], ['Zopf', [8484]], ['Zscr', [119989]], ['zscr', [120015]], ['zwj', [8205]], ['zwnj', [8204]]];\n\nvar alphaIndex = {};\nvar charIndex = {};\n\ncreateIndexes(alphaIndex, charIndex);\n\n/**\n * @constructor\n */\nfunction Html5Entities() {}\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.decode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/&(#?[\\w\\d]+);?/g, function(s, entity) {\n var chr;\n if (entity.charAt(0) === \"#\") {\n var code = entity.charAt(1) === 'x' ?\n parseInt(entity.substr(2).toLowerCase(), 16) :\n parseInt(entity.substr(1));\n\n if (!(isNaN(code) || code < -32768 || code > 65535)) {\n chr = String.fromCharCode(code);\n }\n } else {\n chr = alphaIndex[entity];\n }\n return chr || s;\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.decode = function(str) {\n return new Html5Entities().decode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.encode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var charInfo = charIndex[str.charCodeAt(i)];\n if (charInfo) {\n var alpha = charInfo[str.charCodeAt(i + 1)];\n if (alpha) {\n i++;\n } else {\n alpha = charInfo[''];\n }\n if (alpha) {\n result += \"&\" + alpha + \";\";\n i++;\n continue;\n }\n }\n result += str.charAt(i);\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.encode = function(str) {\n return new Html5Entities().encode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.encodeNonUTF = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n var charInfo = charIndex[c];\n if (charInfo) {\n var alpha = charInfo[str.charCodeAt(i + 1)];\n if (alpha) {\n i++;\n } else {\n alpha = charInfo[''];\n }\n if (alpha) {\n result += \"&\" + alpha + \";\";\n i++;\n continue;\n }\n }\n if (c < 32 || c > 126) {\n result += '&#' + c + ';';\n } else {\n result += str.charAt(i);\n }\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.encodeNonUTF = function(str) {\n return new Html5Entities().encodeNonUTF(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.encodeNonASCII = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n if (c <= 255) {\n result += str[i++];\n continue;\n }\n result += '&#' + c + ';';\n i++\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.encodeNonASCII = function(str) {\n return new Html5Entities().encodeNonASCII(str);\n };\n\n/**\n * @param {Object} alphaIndex Passed by reference.\n * @param {Object} charIndex Passed by reference.\n */\nfunction createIndexes(alphaIndex, charIndex) {\n var i = ENTITIES.length;\n var _results = [];\n while (i--) {\n var e = ENTITIES[i];\n var alpha = e[0];\n var chars = e[1];\n var chr = chars[0];\n var addChar = (chr < 32 || chr > 126) || chr === 62 || chr === 60 || chr === 38 || chr === 34 || chr === 39;\n var charInfo;\n if (addChar) {\n charInfo = charIndex[chr] = charIndex[chr] || {};\n }\n if (chars[1]) {\n var chr2 = chars[1];\n alphaIndex[alpha] = String.fromCharCode(chr) + String.fromCharCode(chr2);\n _results.push(addChar && (charInfo[chr2] = alpha));\n } else {\n alphaIndex[alpha] = String.fromCharCode(chr);\n _results.push(addChar && (charInfo[''] = alpha));\n }\n }\n}\n\nmodule.exports = Html5Entities;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/html-entities/lib/html5-entities.js\n// module id = 34\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 35\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 36\n// module chunks = 0","import 'aurelia-polyfills';\nimport { PLATFORM, isInitialized } from 'aurelia-pal';\n\nvar bootstrapPromises = [];\nvar startResolve = void 0;\n\nvar startPromise = new Promise(function (resolve) {\n return startResolve = resolve;\n});\nvar host = PLATFORM.global;\nvar isNodeLike = typeof process !== 'undefined' && !process.browser;\n\nfunction ready() {\n if (!host.document || host.document.readyState === 'complete') {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve) {\n host.document.addEventListener('DOMContentLoaded', completed);\n host.addEventListener('load', completed);\n\n function completed() {\n host.document.removeEventListener('DOMContentLoaded', completed);\n host.removeEventListener('load', completed);\n resolve();\n }\n });\n}\n\nfunction createLoader() {\n if (PLATFORM.Loader) {\n return Promise.resolve(new PLATFORM.Loader());\n }\n\n if (typeof AURELIA_WEBPACK_2_0 === 'undefined') {\n if (typeof __webpack_require__ !== 'undefined') {\n var m = __webpack_require__(require.resolve('aurelia-loader-webpack'));\n return Promise.resolve(new m.WebpackLoader());\n }\n\n if (host.System && typeof host.System.config === 'function') {\n return host.System.normalize('aurelia-bootstrapper').then(function (bsn) {\n return host.System.normalize('aurelia-loader-default', bsn);\n }).then(function (loaderName) {\n return host.System.import(loaderName).then(function (m) {\n return new m.DefaultLoader();\n });\n });\n }\n\n if (typeof host.require === 'function' && typeof host.require.version === 'string') {\n return new Promise(function (resolve, reject) {\n return host.require(['aurelia-loader-default'], function (m) {\n return resolve(new m.DefaultLoader());\n }, reject);\n });\n }\n\n if (isNodeLike && typeof module !== 'undefined' && typeof module.require !== 'undefined') {\n var _m = module.require('aurelia-loader-nodejs');\n return Promise.resolve(new _m.NodeJsLoader());\n }\n }\n\n return Promise.reject('No PLATFORM.Loader is defined and there is neither a System API (ES6) or a Require API (AMD) globally available to load your app.');\n}\n\nfunction initializePal(loader) {\n var type = void 0;\n\n var isRenderer = isNodeLike && (process.type === 'renderer' || process.versions['node-webkit']);\n\n if (isNodeLike && !isRenderer) {\n type = 'nodejs';\n } else if (typeof window !== 'undefined') {\n type = 'browser';\n } else if (typeof self !== 'undefined') {\n type = 'worker';\n } else {\n throw new Error('Could not determine platform implementation to load.');\n }\n\n return loader.loadModule('aurelia-pal-' + type).then(function (palModule) {\n return type === 'nodejs' && !isInitialized && palModule.globalize() || palModule.initialize();\n });\n}\n\nfunction preparePlatform(loader) {\n var map = function map(moduleId, relativeTo) {\n return loader.normalize(moduleId, relativeTo).then(function (normalized) {\n loader.map(moduleId, normalized);\n return normalized;\n });\n };\n\n return initializePal(loader).then(function () {\n return loader.normalize('aurelia-bootstrapper');\n }).then(function (bootstrapperName) {\n var frameworkPromise = map(PLATFORM.moduleName('aurelia-framework', { exports: ['Aurelia'] }), bootstrapperName);\n\n return Promise.all([frameworkPromise, frameworkPromise.then(function (frameworkName) {\n return map('aurelia-dependency-injection', frameworkName);\n }), map('aurelia-router', bootstrapperName), map('aurelia-logging-console', bootstrapperName)]);\n }).then(function (_ref) {\n var frameworkName = _ref[0];\n return loader.loadModule(frameworkName);\n }).then(function (fx) {\n return startResolve(function () {\n return new fx.Aurelia(loader);\n });\n });\n}\n\nfunction config(appHost, configModuleId, aurelia) {\n aurelia.host = appHost;\n aurelia.configModuleId = configModuleId || null;\n\n if (configModuleId) {\n return aurelia.loader.loadModule(configModuleId).then(function (customConfig) {\n if (!customConfig.configure) {\n throw new Error('Cannot initialize module \\'' + configModuleId + '\\' without a configure function.');\n }\n\n return customConfig.configure(aurelia);\n });\n }\n\n aurelia.use.standardConfiguration().developmentLogging();\n\n return aurelia.start().then(function () {\n return aurelia.setRoot();\n });\n}\n\nfunction run() {\n return ready().then(createLoader).then(preparePlatform).then(function () {\n var appHosts = host.document.querySelectorAll('[aurelia-app],[data-aurelia-app]');\n for (var i = 0, ii = appHosts.length; i < ii; ++i) {\n var appHost = appHosts[i];\n var moduleId = appHost.getAttribute('aurelia-app') || appHost.getAttribute('data-aurelia-app');\n bootstrap(config.bind(null, appHost, moduleId));\n }\n\n var toConsole = console.error.bind(console);\n var bootstraps = bootstrapPromises.map(function (p) {\n return p.catch(toConsole);\n });\n bootstrapPromises = null;\n return Promise.all(bootstraps);\n });\n}\n\nexport function bootstrap(configure) {\n var p = startPromise.then(function (factory) {\n return configure(factory());\n });\n if (bootstrapPromises) bootstrapPromises.push(p);\n return p;\n}\n\nexport var starting = run();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-bootstrapper/dist/native-modules/aurelia-bootstrapper.js\n// module id = 37\n// module chunks = 0","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t;\n return { next: verb(0), \"throw\": verb(1), \"return\": verb(2) };\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Origin } from 'aurelia-metadata';\nimport { Loader } from 'aurelia-loader';\nimport { DOM, PLATFORM } from 'aurelia-pal';\n/**\n* An implementation of the TemplateLoader interface implemented with text-based loading.\n*/\nvar TextTemplateLoader = (function () {\n function TextTemplateLoader() {\n }\n /**\n * Loads a template.\n * @param loader The loader that is requesting the template load.\n * @param entry The TemplateRegistryEntry to load and populate with a template.\n * @return A promise which resolves when the TemplateRegistryEntry is loaded with a template.\n */\n TextTemplateLoader.prototype.loadTemplate = function (loader, entry) {\n return __awaiter(this, void 0, void 0, function () {\n var text;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, loader.loadText(entry.address)];\n case 1:\n text = _a.sent();\n entry.template = DOM.createTemplateFromMarkup(text);\n return [2 /*return*/];\n }\n });\n });\n };\n return TextTemplateLoader;\n}());\nexport { TextTemplateLoader };\nexport function ensureOriginOnExports(moduleExports, moduleId) {\n var target = moduleExports;\n var key;\n var exportedValue;\n if (target.__useDefault) {\n target = target.default;\n }\n Origin.set(target, new Origin(moduleId, 'default'));\n if (typeof target === 'object') {\n for (key in target) {\n exportedValue = target[key];\n if (typeof exportedValue === 'function') {\n Origin.set(exportedValue, new Origin(moduleId, key));\n }\n }\n }\n return moduleExports;\n}\n/**\n* A default implementation of the Loader abstraction which works with webpack (extended common-js style).\n*/\nvar WebpackLoader = (function (_super) {\n __extends(WebpackLoader, _super);\n function WebpackLoader() {\n var _this = _super.call(this) || this;\n _this.moduleRegistry = Object.create(null);\n _this.loaderPlugins = Object.create(null);\n _this.modulesBeingLoaded = new Map();\n _this.useTemplateLoader(new TextTemplateLoader());\n _this.addPlugin('template-registry-entry', {\n fetch: function (moduleId) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n var HmrContext, entry;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // HMR:\n if (module.hot) {\n if (!this.hmrContext) {\n HmrContext = require('aurelia-hot-module-reload').HmrContext;\n this.hmrContext = new HmrContext(this);\n }\n module.hot.accept(moduleId, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.hmrContext.handleViewChange(moduleId)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); });\n }\n entry = this.getOrCreateTemplateRegistryEntry(moduleId);\n if (!!entry.templateIsLoaded) return [3 /*break*/, 2];\n return [4 /*yield*/, this.templateLoader.loadTemplate(this, entry)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, entry];\n }\n });\n }); }\n });\n PLATFORM.eachModule = function (callback) {\n var registry = __webpack_require__.c;\n var cachedModuleIds = Object.getOwnPropertyNames(registry);\n cachedModuleIds\n .forEach(function (moduleId) {\n var moduleExports = registry[moduleId].exports;\n if (typeof moduleExports === 'object') {\n callback(moduleId, moduleExports);\n }\n });\n };\n return _this;\n }\n WebpackLoader.prototype._import = function (address, defaultHMR) {\n if (defaultHMR === void 0) { defaultHMR = true; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n var addressParts, moduleId, loaderPlugin, plugin_1, asyncModuleId, callback;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n addressParts = address.split('!');\n moduleId = addressParts.splice(addressParts.length - 1, 1)[0];\n loaderPlugin = addressParts.length === 1 ? addressParts[0] : null;\n if (!loaderPlugin) return [3 /*break*/, 2];\n plugin_1 = this.loaderPlugins[loaderPlugin];\n if (!plugin_1) {\n throw new Error(\"Plugin \" + loaderPlugin + \" is not registered in the loader.\");\n }\n if (module.hot && plugin_1.hot) {\n module.hot.accept(moduleId, function () { return plugin_1.hot(moduleId); });\n }\n return [4 /*yield*/, plugin_1.fetch(moduleId)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n if (__webpack_require__.m[moduleId]) {\n if (defaultHMR && module.hot && this.hmrContext) {\n module.hot.accept(moduleId, function () { return _this.hmrContext.handleModuleChange(moduleId, module.hot); });\n }\n return [2 /*return*/, __webpack_require__(moduleId)];\n }\n asyncModuleId = \"async!\" + moduleId;\n if (!__webpack_require__.m[asyncModuleId]) return [3 /*break*/, 4];\n if (defaultHMR && module.hot && this.hmrContext) {\n module.hot.accept(moduleId, function () { return _this.hmrContext.handleModuleChange(moduleId, module.hot); });\n module.hot.accept(asyncModuleId, function () { });\n }\n callback = __webpack_require__(asyncModuleId);\n return [4 /*yield*/, new Promise(callback)];\n case 3: return [2 /*return*/, _a.sent()];\n case 4: throw new Error(\"Unable to find module with ID: \" + moduleId);\n }\n });\n });\n };\n /**\n * Maps a module id to a source.\n * @param id The module id.\n * @param source The source to map the module to.\n */\n WebpackLoader.prototype.map = function (id, source) { };\n /**\n * Normalizes a module id.\n * @param moduleId The module id to normalize.\n * @param relativeTo What the module id should be normalized relative to.\n * @return The normalized module id.\n */\n WebpackLoader.prototype.normalizeSync = function (moduleId, relativeTo) {\n return moduleId;\n };\n /**\n * Normalizes a module id.\n * @param moduleId The module id to normalize.\n * @param relativeTo What the module id should be normalized relative to.\n * @return The normalized module id.\n */\n WebpackLoader.prototype.normalize = function (moduleId, relativeTo) {\n return Promise.resolve(moduleId);\n };\n /**\n * Instructs the loader to use a specific TemplateLoader instance for loading templates\n * @param templateLoader The instance of TemplateLoader to use for loading templates.\n */\n WebpackLoader.prototype.useTemplateLoader = function (templateLoader) {\n this.templateLoader = templateLoader;\n };\n /**\n * Loads a collection of modules.\n * @param ids The set of module ids to load.\n * @return A Promise for an array of loaded modules.\n */\n WebpackLoader.prototype.loadAllModules = function (ids) {\n var _this = this;\n return Promise.all(ids.map(function (id) { return _this.loadModule(id); }));\n };\n /**\n * Loads a module.\n * @param moduleId The module ID to load.\n * @return A Promise for the loaded module.\n */\n WebpackLoader.prototype.loadModule = function (moduleId, defaultHMR) {\n if (defaultHMR === void 0) { defaultHMR = true; }\n return __awaiter(this, void 0, void 0, function () {\n var existing, beingLoaded, moduleExports;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n existing = this.moduleRegistry[moduleId];\n if (existing) {\n return [2 /*return*/, existing];\n }\n beingLoaded = this.modulesBeingLoaded.get(moduleId);\n if (beingLoaded) {\n return [2 /*return*/, beingLoaded];\n }\n beingLoaded = this._import(moduleId, defaultHMR);\n this.modulesBeingLoaded.set(moduleId, beingLoaded);\n return [4 /*yield*/, beingLoaded];\n case 1:\n moduleExports = _a.sent();\n this.moduleRegistry[moduleId] = ensureOriginOnExports(moduleExports, moduleId);\n this.modulesBeingLoaded.delete(moduleId);\n return [2 /*return*/, moduleExports];\n }\n });\n });\n };\n /**\n * Loads a template.\n * @param url The url of the template to load.\n * @return A Promise for a TemplateRegistryEntry containing the template.\n */\n WebpackLoader.prototype.loadTemplate = function (url) {\n return this.loadModule(this.applyPluginToUrl(url, 'template-registry-entry'), false);\n };\n /**\n * Loads a text-based resource.\n * @param url The url of the text file to load.\n * @return A Promise for text content.\n */\n WebpackLoader.prototype.loadText = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.loadModule(url, false)];\n case 1:\n result = _a.sent();\n if (result instanceof Array && result[0] instanceof Array && result.hasOwnProperty('toString')) {\n // we're dealing with a file loaded using the css-loader:\n return [2 /*return*/, result.toString()];\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n /**\n * Alters a module id so that it includes a plugin loader.\n * @param url The url of the module to load.\n * @param pluginName The plugin to apply to the module id.\n * @return The plugin-based module id.\n */\n WebpackLoader.prototype.applyPluginToUrl = function (url, pluginName) {\n return pluginName + \"!\" + url;\n };\n /**\n * Registers a plugin with the loader.\n * @param pluginName The name of the plugin.\n * @param implementation The plugin implementation.\n */\n WebpackLoader.prototype.addPlugin = function (pluginName, implementation) {\n this.loaderPlugins[pluginName] = implementation;\n };\n return WebpackLoader;\n}(Loader));\nexport { WebpackLoader };\nPLATFORM.Loader = WebpackLoader;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-loader-webpack/dist/native-modules/aurelia-loader-webpack.js\n// module id = 38\n// module chunks = 0","// This file contains an empty module that does nothing.\n// It's meant to be added as an entry point to the main bundle\n// and helps reliably adding some Aurelia dependencies that are attached \n// to no module in particular, such as `includeAll` results or `aureliaApp`.\n//\n// Trying to attach those dependencies to, for example, 'aurelia-bootstrapper' \n// is unreliable if 'aurelia-bootstrapper' is in a DLL outside the bundle.\n//\n// Trying to attach to 'aurelia-loader-webpack' works well, unless a user\n// configures a customized loader instead (unlikely, but in theory supported).\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-webpack-plugin/dist/aurelia-entry.js\n// module id = 39\n// module chunks = 0","/*!\n * jQuery JavaScript Library v3.3.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2018-01-20T17:24Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, doc, node ) {\n\t\tdoc = doc || document;\n\n\t\tvar i,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\t\t\t\tif ( node[ i ] ) {\n\t\t\t\t\tscript[ i ] = node[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.3.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tDOMEval( code );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n if ( nodeName( elem, \"iframe\" ) ) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if ( nodeName( elem, \"template\" ) ) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\nvar documentElement = document.documentElement;\n\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 only\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), doc, node );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = div.offsetWidth === 36 || \"absolute\";\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a property mapped along what jQuery.cssProps suggests or to\n// a vendor prefixed property.\nfunction finalPropName( name ) {\n\tvar ret = jQuery.cssProps[ name ];\n\tif ( !ret ) {\n\t\tret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;\n\t}\n\treturn ret;\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\t\t) );\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\t\tval = curCSS( elem, dimension, styles ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox;\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\t// Check for style in case a browser which returns unreliable values\n\t// for getComputedStyle silently falls back to the reliable elem.style\n\tvalueIsBorderBox = valueIsBorderBox &&\n\t\t( support.boxSizingReliable() || val === elem.style[ dimension ] );\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\tif ( val === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) {\n\n\t\tval = elem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];\n\n\t\t// offsetWidth/offsetHeight provide border-box values\n\t\tvalueIsBorderBox = true;\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\t\t\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra && boxModelAdjustment(\n\t\t\t\t\telem,\n\t\t\t\t\tdimension,\n\t\t\t\t\textra,\n\t\t\t\t\tisBorderBox,\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && support.scrollboxSize() === styles.position ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" ).prop( {\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t} ).on(\n\t\t\t\t\t\"load error\",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t}\n} );\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/jquery/dist/jquery.js\n// module id = 4\n// module chunks = 0","/*eslint-env browser*/\n/*global __resourceQuery __webpack_public_path__*/\n\nvar options = {\n path: \"/__webpack_hmr\",\n timeout: 20 * 1000,\n overlay: true,\n reload: false,\n log: true,\n warn: true,\n name: ''\n};\nif (__resourceQuery) {\n var querystring = require('querystring');\n var overrides = querystring.parse(__resourceQuery.slice(1));\n if (overrides.path) options.path = overrides.path;\n if (overrides.timeout) options.timeout = overrides.timeout;\n if (overrides.overlay) options.overlay = overrides.overlay !== 'false';\n if (overrides.reload) options.reload = overrides.reload !== 'false';\n if (overrides.noInfo && overrides.noInfo !== 'false') {\n options.log = false;\n }\n if (overrides.name) {\n options.name = overrides.name;\n }\n if (overrides.quiet && overrides.quiet !== 'false') {\n options.log = false;\n options.warn = false;\n }\n if (overrides.dynamicPublicPath) {\n options.path = __webpack_public_path__ + options.path;\n }\n}\n\nif (typeof window === 'undefined') {\n // do nothing\n} else if (typeof window.EventSource === 'undefined') {\n console.warn(\n \"webpack-hot-middleware's client requires EventSource to work. \" +\n \"You should include a polyfill if you want to support this browser: \" +\n \"https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events#Tools\"\n );\n} else {\n connect();\n}\n\nfunction EventSourceWrapper() {\n var source;\n var lastActivity = new Date();\n var listeners = [];\n\n init();\n var timer = setInterval(function() {\n if ((new Date() - lastActivity) > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n\n function init() {\n source = new window.EventSource(options.path);\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n\n function handleOnline() {\n if (options.log) console.log(\"[HMR] connected\");\n lastActivity = new Date();\n }\n\n function handleMessage(event) {\n lastActivity = new Date();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](event);\n }\n }\n\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n\n return {\n addMessageListener: function(fn) {\n listeners.push(fn);\n }\n };\n}\n\nfunction getEventSourceWrapper() {\n if (!window.__whmEventSourceWrapper) {\n window.__whmEventSourceWrapper = {};\n }\n if (!window.__whmEventSourceWrapper[options.path]) {\n // cache the wrapper for other entries loaded on\n // the same page with the same options.path\n window.__whmEventSourceWrapper[options.path] = EventSourceWrapper();\n }\n return window.__whmEventSourceWrapper[options.path];\n}\n\nfunction connect() {\n getEventSourceWrapper().addMessageListener(handleMessage);\n\n function handleMessage(event) {\n if (event.data == \"\\uD83D\\uDC93\") {\n return;\n }\n try {\n processMessage(JSON.parse(event.data));\n } catch (ex) {\n if (options.warn) {\n console.warn(\"Invalid HMR message: \" + event.data + \"\\n\" + ex);\n }\n }\n }\n}\n\n// the reporter needs to be a singleton on the page\n// in case the client is being used by multiple bundles\n// we only want to report once.\n// all the errors will go to all clients\nvar singletonKey = '__webpack_hot_middleware_reporter__';\nvar reporter;\nif (typeof window !== 'undefined') {\n if (!window[singletonKey]) {\n window[singletonKey] = createReporter();\n }\n reporter = window[singletonKey];\n}\n\nfunction createReporter() {\n var strip = require('strip-ansi');\n\n var overlay;\n if (typeof document !== 'undefined' && options.overlay) {\n overlay = require('./client-overlay');\n }\n\n var styles = {\n errors: \"color: #ff0000;\",\n warnings: \"color: #999933;\"\n };\n var previousProblems = null;\n function log(type, obj) {\n var newProblems = obj[type].map(function(msg) { return strip(msg); }).join('\\n');\n if (previousProblems == newProblems) {\n return;\n } else {\n previousProblems = newProblems;\n }\n\n var style = styles[type];\n var name = obj.name ? \"'\" + obj.name + \"' \" : \"\";\n var title = \"[HMR] bundle \" + name + \"has \" + obj[type].length + \" \" + type;\n // NOTE: console.warn or console.error will print the stack trace\n // which isn't helpful here, so using console.log to escape it.\n if (console.group && console.groupEnd) {\n console.group(\"%c\" + title, style);\n console.log(\"%c\" + newProblems, style);\n console.groupEnd();\n } else {\n console.log(\n \"%c\" + title + \"\\n\\t%c\" + newProblems.replace(/\\n/g, \"\\n\\t\"),\n style + \"font-weight: bold;\",\n style + \"font-weight: normal;\"\n );\n }\n }\n\n return {\n cleanProblemsCache: function () {\n previousProblems = null;\n },\n problems: function(type, obj) {\n if (options.warn) {\n log(type, obj);\n }\n if (overlay && type !== 'warnings') overlay.showProblems(type, obj[type]);\n },\n success: function() {\n if (overlay) overlay.clear();\n },\n useCustomOverlay: function(customOverlay) {\n overlay = customOverlay;\n }\n };\n}\n\nvar processUpdate = require('./process-update');\n\nvar customHandler;\nvar subscribeAllHandler;\nfunction processMessage(obj) {\n switch(obj.action) {\n case \"building\":\n if (options.log) {\n console.log(\n \"[HMR] bundle \" + (obj.name ? \"'\" + obj.name + \"' \" : \"\") +\n \"rebuilding\"\n );\n }\n break;\n case \"built\":\n if (options.log) {\n console.log(\n \"[HMR] bundle \" + (obj.name ? \"'\" + obj.name + \"' \" : \"\") +\n \"rebuilt in \" + obj.time + \"ms\"\n );\n }\n // fall through\n case \"sync\":\n if (obj.name && options.name && obj.name !== options.name) {\n return;\n }\n if (obj.errors.length > 0) {\n if (reporter) reporter.problems('errors', obj);\n } else {\n if (reporter) {\n if (obj.warnings.length > 0) {\n reporter.problems('warnings', obj);\n } else {\n reporter.cleanProblemsCache();\n }\n reporter.success();\n }\n processUpdate(obj.hash, obj.modules, options);\n }\n break;\n default:\n if (customHandler) {\n customHandler(obj);\n }\n }\n\n if (subscribeAllHandler) {\n subscribeAllHandler(obj);\n }\n}\n\nif (module) {\n module.exports = {\n subscribeAll: function subscribeAll(handler) {\n subscribeAllHandler = handler;\n },\n subscribe: function subscribe(handler) {\n customHandler = handler;\n },\n useCustomOverlay: function useCustomOverlay(customOverlay) {\n if (reporter) reporter.useCustomOverlay(customOverlay);\n }\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)-hot-middleware/client.js?path=__webpack_hmr&dynamicPublicPath=true\n// module id = 40\n// module chunks = 0","'use strict'\n\nmodule.exports = ansiHTML\n\n// Reference to https://github.com/sindresorhus/ansi-regex\nvar _regANSI = /(?:(?:\\u001b\\[)|\\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\\u001b[A-M]/\n\nvar _defColors = {\n reset: ['fff', '000'], // [FOREGROUD_COLOR, BACKGROUND_COLOR]\n black: '000',\n red: 'ff0000',\n green: '209805',\n yellow: 'e8bf03',\n blue: '0000ff',\n magenta: 'ff00ff',\n cyan: '00ffee',\n lightgrey: 'f0f0f0',\n darkgrey: '888'\n}\nvar _styles = {\n 30: 'black',\n 31: 'red',\n 32: 'green',\n 33: 'yellow',\n 34: 'blue',\n 35: 'magenta',\n 36: 'cyan',\n 37: 'lightgrey'\n}\nvar _openTags = {\n '1': 'font-weight:bold', // bold\n '2': 'opacity:0.5', // dim\n '3': '<i>', // italic\n '4': '<u>', // underscore\n '8': 'display:none', // hidden\n '9': '<del>' // delete\n}\nvar _closeTags = {\n '23': '</i>', // reset italic\n '24': '</u>', // reset underscore\n '29': '</del>' // reset delete\n}\n\n;[0, 21, 22, 27, 28, 39, 49].forEach(function (n) {\n _closeTags[n] = '</span>'\n})\n\n/**\n * Converts text with ANSI color codes to HTML markup.\n * @param {String} text\n * @returns {*}\n */\nfunction ansiHTML (text) {\n // Returns the text if the string has no ANSI escape code.\n if (!_regANSI.test(text)) {\n return text\n }\n\n // Cache opened sequence.\n var ansiCodes = []\n // Replace with markup.\n var ret = text.replace(/\\033\\[(\\d+)*m/g, function (match, seq) {\n var ot = _openTags[seq]\n if (ot) {\n // If current sequence has been opened, close it.\n if (!!~ansiCodes.indexOf(seq)) { // eslint-disable-line no-extra-boolean-cast\n ansiCodes.pop()\n return '</span>'\n }\n // Open tag.\n ansiCodes.push(seq)\n return ot[0] === '<' ? ot : '<span style=\"' + ot + ';\">'\n }\n\n var ct = _closeTags[seq]\n if (ct) {\n // Pop sequence\n ansiCodes.pop()\n return ct\n }\n return ''\n })\n\n // Make sure tags are closed.\n var l = ansiCodes.length\n ;(l > 0) && (ret += Array(l + 1).join('</span>'))\n\n return ret\n}\n\n/**\n * Customize colors.\n * @param {Object} colors reference to _defColors\n */\nansiHTML.setColors = function (colors) {\n if (typeof colors !== 'object') {\n throw new Error('`colors` parameter must be an Object.')\n }\n\n var _finalColors = {}\n for (var key in _defColors) {\n var hex = colors.hasOwnProperty(key) ? colors[key] : null\n if (!hex) {\n _finalColors[key] = _defColors[key]\n continue\n }\n if ('reset' === key) {\n if (typeof hex === 'string') {\n hex = [hex]\n }\n if (!Array.isArray(hex) || hex.length === 0 || hex.some(function (h) {\n return typeof h !== 'string'\n })) {\n throw new Error('The value of `' + key + '` property must be an Array and each item could only be a hex string, e.g.: FF0000')\n }\n var defHexColor = _defColors[key]\n if (!hex[0]) {\n hex[0] = defHexColor[0]\n }\n if (hex.length === 1 || !hex[1]) {\n hex = [hex[0]]\n hex.push(defHexColor[1])\n }\n\n hex = hex.slice(0, 2)\n } else if (typeof hex !== 'string') {\n throw new Error('The value of `' + key + '` property must be a hex string, e.g.: FF0000')\n }\n _finalColors[key] = hex\n }\n _setTags(_finalColors)\n}\n\n/**\n * Reset colors.\n */\nansiHTML.reset = function () {\n _setTags(_defColors)\n}\n\n/**\n * Expose tags, including open and close.\n * @type {Object}\n */\nansiHTML.tags = {}\n\nif (Object.defineProperty) {\n Object.defineProperty(ansiHTML.tags, 'open', {\n get: function () { return _openTags }\n })\n Object.defineProperty(ansiHTML.tags, 'close', {\n get: function () { return _closeTags }\n })\n} else {\n ansiHTML.tags.open = _openTags\n ansiHTML.tags.close = _closeTags\n}\n\nfunction _setTags (colors) {\n // reset all\n _openTags['0'] = 'font-weight:normal;opacity:1;color:#' + colors.reset[0] + ';background:#' + colors.reset[1]\n // inverse\n _openTags['7'] = 'color:#' + colors.reset[1] + ';background:#' + colors.reset[0]\n // dark grey\n _openTags['90'] = 'color:#' + colors.darkgrey\n\n for (var code in _styles) {\n var color = _styles[code]\n var oriColor = colors[color] || '000'\n _openTags[code] = 'color:#' + oriColor\n code = parseInt(code)\n _openTags[(code + 10).toString()] = 'background:#' + oriColor\n }\n}\n\nansiHTML.reset()\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ansi-html/index.js\n// module id = 41\n// module chunks = 0","'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ansi-regex/index.js\n// module id = 42\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FetchConfig = undefined;\n\nvar _dec, _class;\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nvar _aureliaFetchClient = require('aurelia-fetch-client');\n\nvar _authentication = require('./authentication');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FetchConfig = exports.FetchConfig = (_dec = (0, _aureliaDependencyInjection.inject)(_aureliaFetchClient.HttpClient, _authentication.Authentication), _dec(_class = function () {\n function FetchConfig(httpClient, authService) {\n _classCallCheck(this, FetchConfig);\n\n this.httpClient = httpClient;\n this.auth = authService;\n }\n\n FetchConfig.prototype.configure = function configure() {\n var _this = this;\n\n this.httpClient.configure(function (httpConfig) {\n httpConfig.withDefaults({\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n }).withInterceptor(_this.auth.tokenInterceptor);\n });\n };\n\n return FetchConfig;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/auth-fetch-config.js\n// module id = 43\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AuthService = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _dec, _class;\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nvar _aureliaFetchClient = require('aurelia-fetch-client');\n\nvar _aureliaEventAggregator = require('aurelia-event-aggregator');\n\nvar _authentication = require('./authentication');\n\nvar _baseConfig = require('./base-config');\n\nvar _oAuth = require('./oAuth1');\n\nvar _oAuth2 = require('./oAuth2');\n\nvar _authUtilities = require('./auth-utilities');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AuthService = exports.AuthService = (_dec = (0, _aureliaDependencyInjection.inject)(_aureliaFetchClient.HttpClient, _authentication.Authentication, _oAuth.OAuth1, _oAuth2.OAuth2, _baseConfig.BaseConfig, _aureliaEventAggregator.EventAggregator), _dec(_class = function () {\n function AuthService(http, auth, oAuth1, oAuth2, config, eventAggregator) {\n _classCallCheck(this, AuthService);\n\n this.http = http;\n this.auth = auth;\n this.oAuth1 = oAuth1;\n this.oAuth2 = oAuth2;\n this.config = config.current;\n this.tokenInterceptor = auth.tokenInterceptor;\n this.eventAggregator = eventAggregator;\n }\n\n AuthService.prototype.getMe = function getMe() {\n var profileUrl = this.auth.getProfileUrl();\n return this.http.fetch(profileUrl).then(_authUtilities.status);\n };\n\n AuthService.prototype.isAuthenticated = function isAuthenticated() {\n return this.auth.isAuthenticated();\n };\n\n AuthService.prototype.getTokenPayload = function getTokenPayload() {\n return this.auth.getPayload();\n };\n\n AuthService.prototype.setToken = function setToken(token) {\n this.auth.setToken(Object.defineProperty({}, this.config.tokenName, { value: token }));\n };\n\n AuthService.prototype.signup = function signup(displayName, email, password) {\n var _this = this;\n\n var signupUrl = this.auth.getSignupUrl();\n var content = void 0;\n if (_typeof(arguments[0]) === 'object') {\n content = arguments[0];\n } else {\n content = {\n 'displayName': displayName,\n 'email': email,\n 'password': password\n };\n }\n\n return this.http.fetch(signupUrl, {\n method: 'post',\n body: (0, _aureliaFetchClient.json)(content)\n }).then(_authUtilities.status).then(function (response) {\n if (_this.config.loginOnSignup) {\n _this.auth.setToken(response);\n } else if (_this.config.signupRedirect) {\n window.location.href = _this.config.signupRedirect;\n }\n _this.eventAggregator.publish('auth:signup', response);\n return response;\n });\n };\n\n AuthService.prototype.login = function login(email, password) {\n var _this2 = this;\n\n var loginUrl = this.auth.getLoginUrl();\n var content = void 0;\n if (typeof arguments[1] !== 'string') {\n content = arguments[0];\n } else {\n content = {\n 'email': email,\n 'password': password\n };\n }\n\n return this.http.fetch(loginUrl, {\n method: 'post',\n headers: typeof content === 'string' ? { 'Content-Type': 'application/x-www-form-urlencoded' } : {},\n body: typeof content === 'string' ? content : (0, _aureliaFetchClient.json)(content)\n }).then(_authUtilities.status).then(function (response) {\n _this2.auth.setToken(response);\n _this2.eventAggregator.publish('auth:login', response);\n return response;\n });\n };\n\n AuthService.prototype.logout = function logout(redirectUri) {\n var _this3 = this;\n\n return this.auth.logout(redirectUri).then(function () {\n _this3.eventAggregator.publish('auth:logout');\n });\n };\n\n AuthService.prototype.authenticate = function authenticate(name, redirect, userData) {\n var _this4 = this;\n\n var provider = this.oAuth2;\n if (this.config.providers[name].type === '1.0') {\n provider = this.oAuth1;\n }\n\n return provider.open(this.config.providers[name], userData || {}).then(function (response) {\n _this4.auth.setToken(response, redirect);\n _this4.eventAggregator.publish('auth:authenticate', response);\n return response;\n });\n };\n\n AuthService.prototype.unlink = function unlink(provider) {\n var _this5 = this;\n\n var unlinkUrl = this.config.baseUrl ? (0, _authUtilities.joinUrl)(this.config.baseUrl, this.config.unlinkUrl) : this.config.unlinkUrl;\n\n if (this.config.unlinkMethod === 'get') {\n return this.http.fetch(unlinkUrl + provider).then(_authUtilities.status).then(function (response) {\n _this5.eventAggregator.publish('auth:unlink', response);\n return response;\n });\n } else if (this.config.unlinkMethod === 'post') {\n return this.http.fetch(unlinkUrl, {\n method: 'post',\n body: (0, _aureliaFetchClient.json)(provider)\n }).then(_authUtilities.status).then(function (response) {\n _this5.eventAggregator.publish('auth:unlink', response);\n return response;\n });\n }\n };\n\n return AuthService;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/auth-service.js\n// module id = 44\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AuthorizeStep = undefined;\n\nvar _dec, _class;\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nvar _aureliaRouter = require('aurelia-router');\n\nvar _authentication = require('./authentication');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AuthorizeStep = exports.AuthorizeStep = (_dec = (0, _aureliaDependencyInjection.inject)(_authentication.Authentication), _dec(_class = function () {\n function AuthorizeStep(auth) {\n _classCallCheck(this, AuthorizeStep);\n\n this.auth = auth;\n }\n\n AuthorizeStep.prototype.run = function run(routingContext, next) {\n var isLoggedIn = this.auth.isAuthenticated();\n var loginRoute = this.auth.getLoginRoute();\n\n if (routingContext.getAllInstructions().some(function (i) {\n return i.config.auth;\n })) {\n if (!isLoggedIn) {\n this.auth.setInitialUrl(window.location.href);\n return next.cancel(new _aureliaRouter.Redirect(loginRoute));\n }\n } else if (isLoggedIn && routingContext.getAllInstructions().some(function (i) {\n return i.fragment === loginRoute;\n })) {\n var loginRedirect = this.auth.getLoginRedirect();\n return next.cancel(new _aureliaRouter.Redirect(loginRedirect));\n }\n\n return next();\n };\n\n return AuthorizeStep;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/authorize-step.js\n// module id = 45\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OAuth1 = undefined;\n\nvar _dec, _class;\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nvar _authUtilities = require('./auth-utilities');\n\nvar _storage = require('./storage');\n\nvar _popup = require('./popup');\n\nvar _baseConfig = require('./base-config');\n\nvar _aureliaFetchClient = require('aurelia-fetch-client');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OAuth1 = exports.OAuth1 = (_dec = (0, _aureliaDependencyInjection.inject)(_storage.Storage, _popup.Popup, _aureliaFetchClient.HttpClient, _baseConfig.BaseConfig), _dec(_class = function () {\n function OAuth1(storage, popup, http, config) {\n _classCallCheck(this, OAuth1);\n\n this.storage = storage;\n this.config = config.current;\n this.popup = popup;\n this.http = http;\n this.defaults = {\n url: null,\n name: null,\n popupOptions: null,\n redirectUri: null,\n authorizationEndpoint: null\n };\n }\n\n OAuth1.prototype.open = function open(options, userData) {\n var _this = this;\n\n var current = (0, _authUtilities.extend)({}, this.defaults, options);\n var serverUrl = this.config.baseUrl ? (0, _authUtilities.joinUrl)(this.config.baseUrl, current.url) : current.url;\n\n if (this.config.platform !== 'mobile') {\n this.popup = this.popup.open('', current.name, current.popupOptions, current.redirectUri);\n }\n return this.http.fetch(serverUrl, {\n method: 'post'\n }).then(_authUtilities.status).then(function (response) {\n if (_this.config.platform === 'mobile') {\n _this.popup = _this.popup.open([current.authorizationEndpoint, _this.buildQueryString(response)].join('?'), current.name, current.popupOptions, current.redirectUri);\n } else {\n _this.popup.popupWindow.location = [current.authorizationEndpoint, _this.buildQueryString(response)].join('?');\n }\n\n var popupListener = _this.config.platform === 'mobile' ? _this.popup.eventListener(current.redirectUri) : _this.popup.pollPopup();\n return popupListener.then(function (result) {\n return _this.exchangeForToken(result, userData, current);\n });\n });\n };\n\n OAuth1.prototype.exchangeForToken = function exchangeForToken(oauthData, userData, current) {\n var data = (0, _authUtilities.extend)({}, userData, oauthData);\n var exchangeForTokenUrl = this.config.baseUrl ? (0, _authUtilities.joinUrl)(this.config.baseUrl, current.url) : current.url;\n var credentials = this.config.withCredentials ? 'include' : 'same-origin';\n\n return this.http.fetch(exchangeForTokenUrl, {\n method: 'post',\n body: (0, _aureliaFetchClient.json)(data),\n credentials: credentials\n }).then(_authUtilities.status);\n };\n\n OAuth1.prototype.buildQueryString = function buildQueryString(obj) {\n var str = [];\n (0, _authUtilities.forEach)(obj, function (value, key) {\n return str.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n });\n return str.join('&');\n };\n\n return OAuth1;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/oAuth1.js\n// module id = 46\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OAuth2 = undefined;\n\nvar _dec, _class;\n\nvar _aureliaDependencyInjection = require('aurelia-dependency-injection');\n\nvar _authUtilities = require('./auth-utilities');\n\nvar _storage = require('./storage');\n\nvar _popup = require('./popup');\n\nvar _baseConfig = require('./base-config');\n\nvar _authentication = require('./authentication');\n\nvar _aureliaFetchClient = require('aurelia-fetch-client');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OAuth2 = exports.OAuth2 = (_dec = (0, _aureliaDependencyInjection.inject)(_storage.Storage, _popup.Popup, _aureliaFetchClient.HttpClient, _baseConfig.BaseConfig, _authentication.Authentication), _dec(_class = function () {\n function OAuth2(storage, popup, http, config, auth) {\n _classCallCheck(this, OAuth2);\n\n this.storage = storage;\n this.config = config.current;\n this.popup = popup;\n this.http = http;\n this.auth = auth;\n this.defaults = {\n url: null,\n name: null,\n state: null,\n scope: null,\n scopeDelimiter: null,\n redirectUri: null,\n popupOptions: null,\n authorizationEndpoint: null,\n responseParams: null,\n requiredUrlParams: null,\n optionalUrlParams: null,\n defaultUrlParams: ['response_type', 'client_id', 'redirect_uri'],\n responseType: 'code'\n };\n }\n\n OAuth2.prototype.open = function open(options, userData) {\n var _this = this;\n\n var current = (0, _authUtilities.extend)({}, this.defaults, options);\n\n var stateName = current.name + '_state';\n\n if ((0, _authUtilities.isFunction)(current.state)) {\n this.storage.set(stateName, current.state());\n } else if ((0, _authUtilities.isString)(current.state)) {\n this.storage.set(stateName, current.state);\n }\n\n var nonceName = current.name + '_nonce';\n\n if ((0, _authUtilities.isFunction)(current.nonce)) {\n this.storage.set(nonceName, current.nonce());\n } else if ((0, _authUtilities.isString)(current.nonce)) {\n this.storage.set(nonceName, current.nonce);\n }\n\n var url = current.authorizationEndpoint + '?' + this.buildQueryString(current);\n\n var openPopup = void 0;\n if (this.config.platform === 'mobile') {\n openPopup = this.popup.open(url, current.name, current.popupOptions, current.redirectUri).eventListener(current.redirectUri);\n } else {\n openPopup = this.popup.open(url, current.name, current.popupOptions, current.redirectUri).pollPopup();\n }\n\n return openPopup.then(function (oauthData) {\n if (oauthData.state && oauthData.state !== _this.storage.get(stateName)) {\n return Promise.reject('OAuth 2.0 state parameter mismatch.');\n }\n\n if (current.responseType.toUpperCase().indexOf('TOKEN') !== -1) {\n if (!_this.verifyIdToken(oauthData, current.name)) {\n return Promise.reject('OAuth 2.0 Nonce parameter mismatch.');\n }\n\n return oauthData;\n }\n\n return _this.exchangeForToken(oauthData, userData, current);\n });\n };\n\n OAuth2.prototype.verifyIdToken = function verifyIdToken(oauthData, providerName) {\n var idToken = oauthData && oauthData[this.config.responseIdTokenProp];\n if (!idToken) return true;\n var idTokenObject = this.auth.decomposeToken(idToken);\n if (!idTokenObject) return true;\n var nonceFromToken = idTokenObject.nonce;\n if (!nonceFromToken) return true;\n var nonceInStorage = this.storage.get(providerName + '_nonce');\n if (nonceFromToken !== nonceInStorage) {\n return false;\n }\n return true;\n };\n\n OAuth2.prototype.exchangeForToken = function exchangeForToken(oauthData, userData, current) {\n var data = (0, _authUtilities.extend)({}, userData, {\n code: oauthData.code,\n clientId: current.clientId,\n redirectUri: current.redirectUri\n });\n\n if (oauthData.state) {\n data.state = oauthData.state;\n }\n\n (0, _authUtilities.forEach)(current.responseParams, function (param) {\n return data[param] = oauthData[param];\n });\n\n var exchangeForTokenUrl = this.config.baseUrl ? (0, _authUtilities.joinUrl)(this.config.baseUrl, current.url) : current.url;\n var credentials = this.config.withCredentials ? 'include' : 'same-origin';\n\n return this.http.fetch(exchangeForTokenUrl, {\n method: 'post',\n body: (0, _aureliaFetchClient.json)(data),\n credentials: credentials\n }).then(_authUtilities.status);\n };\n\n OAuth2.prototype.buildQueryString = function buildQueryString(current) {\n var _this2 = this;\n\n var keyValuePairs = [];\n var urlParams = ['defaultUrlParams', 'requiredUrlParams', 'optionalUrlParams'];\n\n (0, _authUtilities.forEach)(urlParams, function (params) {\n (0, _authUtilities.forEach)(current[params], function (paramName) {\n var camelizedName = (0, _authUtilities.camelCase)(paramName);\n var paramValue = (0, _authUtilities.isFunction)(current[paramName]) ? current[paramName]() : current[camelizedName];\n\n if (paramName === 'state') {\n var stateName = current.name + '_state';\n paramValue = encodeURIComponent(_this2.storage.get(stateName));\n }\n\n if (paramName === 'nonce') {\n var nonceName = current.name + '_nonce';\n paramValue = encodeURIComponent(_this2.storage.get(nonceName));\n }\n\n if (paramName === 'scope' && Array.isArray(paramValue)) {\n paramValue = paramValue.join(current.scopeDelimiter);\n\n if (current.scopePrefix) {\n paramValue = [current.scopePrefix, paramValue].join(current.scopeDelimiter);\n }\n }\n\n keyValuePairs.push([paramName, paramValue]);\n });\n });\n\n return keyValuePairs.map(function (pair) {\n return pair.join('=');\n }).join('&');\n };\n\n return OAuth2;\n}()) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/oAuth2.js\n// module id = 47\n// module chunks = 0","var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/*eslint new-cap:0, padded-blocks:0*/\nimport { resource } from 'aurelia-templating';\nimport { Loader } from 'aurelia-loader';\nimport { relativeToFile } from 'aurelia-path';\nimport { DOM, FEATURE } from 'aurelia-pal';\n// this is almost the same as aurelia-templating-resources/css-resource\n// with the exception that it keeps track of the HTMLStyleElement that is being added\nexport var cssUrlMatcher = /url\\((?!['\"]data)([^)]+)\\)/gi;\nexport function fixupCSSUrls(address, css) {\n if (typeof css !== 'string') {\n throw new Error(\"Failed loading required CSS file: \" + address);\n }\n return css.replace(cssUrlMatcher, function (match, p1) {\n var quote = p1.charAt(0);\n if (quote === '\\'' || quote === '\"') {\n p1 = p1.substr(1, p1.length - 2);\n }\n return 'url(\\'' + relativeToFile(p1, address) + '\\')';\n });\n}\nvar CSSResource = (function () {\n function CSSResource(address) {\n this.injectedElement = null;\n this.address = address;\n this._scoped = null;\n this._global = false;\n this._alreadyGloballyInjected = false;\n }\n CSSResource.prototype.initialize = function (container, target) {\n this._scoped = new target(this);\n };\n CSSResource.prototype.register = function (registry, name) {\n if (name === 'scoped') {\n registry.registerViewEngineHooks(this._scoped);\n }\n else {\n this._global = true;\n }\n };\n CSSResource.prototype.load = function (container) {\n var _this = this;\n return container.get(Loader)\n .loadText(this.address)\n .catch(function (err) { return null; })\n .then(function (text) {\n if (!text) {\n return;\n }\n text = fixupCSSUrls(_this.address, text);\n if (_this._scoped) {\n _this._scoped.css = text;\n }\n if (_this._global) {\n _this._alreadyGloballyInjected = true;\n _this.injectedElement = DOM.injectStyles(text);\n }\n });\n };\n return CSSResource;\n}());\nexport { CSSResource };\nvar CSSViewEngineHooks = (function () {\n function CSSViewEngineHooks(owner) {\n this.injectedElements = [];\n this.owner = owner;\n this.css = null;\n }\n CSSViewEngineHooks.prototype.beforeCompile = function (content, resources, instruction) {\n if (instruction.targetShadowDOM) {\n this.injectedElements.push(DOM.injectStyles(this.css, content, true));\n }\n else if (FEATURE.scopedCSS) {\n var styleNode = DOM.injectStyles(this.css, content, true);\n styleNode.setAttribute('scoped', 'scoped');\n }\n else if (!this.owner._alreadyGloballyInjected) {\n this.owner.injectedElement = DOM.injectStyles(this.css);\n this.owner._alreadyGloballyInjected = true;\n }\n };\n return CSSViewEngineHooks;\n}());\nexport { CSSViewEngineHooks };\nexport function _createCSSResource(address) {\n var ViewCSS = (function (_super) {\n __extends(ViewCSS, _super);\n function ViewCSS() {\n return _super.apply(this, arguments) || this;\n }\n return ViewCSS;\n }(CSSViewEngineHooks));\n ViewCSS = __decorate([\n resource(new CSSResource(address))\n ], ViewCSS);\n return ViewCSS;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-hot-module-reload/dist/native-modules/hmr-css-resource.js\n// module id = 48\n// module chunks = 0","import { TargetInstruction } from 'aurelia-templating';\nexport function recreateView(viewFactory, oldViewContainer) {\n var parentContainer = oldViewContainer.parent || oldViewContainer;\n var targetInstruction = oldViewContainer.get(TargetInstruction);\n // const targetInstruction = container.get(TargetInstruction) as TargetInstruction;\n var factoryCreateInstruction = targetInstruction.elementInstruction || { partReplacements: null };\n // let factoryCreateInstruction = ({partReplacements: null} as BehaviorInstruction);\n // console.log(`new element instruction`, targetInstruction, factoryCreateInstruction);\n var newContainer = parentContainer.createChild();\n // const newContainer = oldViewContainer;\n var newView = viewFactory.create(newContainer, factoryCreateInstruction);\n newView._isUserControlled = true;\n return newView;\n}\nexport function cleanupView(view) {\n var firstChild = view.firstChild;\n var lastChild = view.lastChild;\n var nextSibling = lastChild.nextSibling;\n var parent = firstChild.parentElement;\n var bindingContext = view.bindingContext, overrideContext = view.overrideContext, container = view.container;\n view.removeNodes();\n var wasAttached = view.isAttached;\n if (wasAttached) {\n view.detached();\n }\n var wasBound = view.isBound;\n if (wasBound) {\n view.unbind();\n }\n view._invalidView = true;\n return { nextSibling: nextSibling, parent: parent, wasBound: wasBound, wasAttached: wasAttached, bindingContext: bindingContext, overrideContext: overrideContext, container: container };\n}\nexport function rerenderController(e, type, newViewFactory) {\n var oldView = e[type];\n if (!oldView) {\n // view was removed from the controller in a previous run, ignore\n return;\n }\n if (oldView._invalidView) {\n // previously re-rendered, ensure controller is set and skip\n if (oldView._replacementView) {\n e[type] = oldView._replacementView;\n }\n return;\n }\n var _a = cleanupView(oldView), nextSibling = _a.nextSibling, parent = _a.parent, wasBound = _a.wasBound, wasAttached = _a.wasAttached, bindingContext = _a.bindingContext, overrideContext = _a.overrideContext, oldViewContainer = _a.container;\n // create & add view:\n var newView = oldView._replacementView = e[type] = recreateView(newViewFactory || oldView.viewFactory, oldViewContainer);\n if (!newView.isBound && wasBound) {\n newView.bind(bindingContext, overrideContext);\n }\n if (nextSibling) {\n newView.insertNodesBefore(nextSibling);\n }\n else {\n newView.appendNodesTo(parent);\n }\n if (!newView.isAttached && wasAttached) {\n newView.attached();\n }\n}\nexport function rerenderMatchingSlotChildren(slot, newViewFactory, originalFactoryTemplate, onlyViews) {\n var previousChildren = slot.children.slice();\n var viewsToReplace = previousChildren.filter(function (view) { return (onlyViews && onlyViews.indexOf(view) >= 0) || (view.viewFactory && view.viewFactory.template === originalFactoryTemplate); });\n var bindingContexts = new Map();\n var overrideContexts = new Map();\n var controllers = new Map();\n viewsToReplace.forEach(function (oldView) {\n // store contexts because they'll be removed when unbound:\n bindingContexts.set(oldView, oldView.bindingContext);\n overrideContexts.set(oldView, oldView.overrideContext);\n controllers.set(oldView, oldView.controller);\n if (oldView.isBound) {\n oldView.unbind();\n }\n oldView._invalidView = true;\n });\n slot.removeMany(viewsToReplace, false, true);\n // recreate removed Views in the same place:\n previousChildren.forEach(function (oldView, index) {\n if (!oldView._invalidView) {\n // don't do anything to non-matching Views\n return;\n }\n var bindingContext = bindingContexts.get(oldView);\n var overrideContext = overrideContexts.get(oldView);\n var controller = controllers.get(oldView);\n var view = recreateView(newViewFactory || oldView.viewFactory, oldView.container);\n // setup _replacementView in case the same view is looped over again\n oldView._replacementView = view;\n if (controller) {\n controller.view = view;\n }\n if (!view.isBound) {\n view.bind(bindingContext, overrideContext);\n }\n // indicies should match up and grow as we iterate up\n slot.insert(index, view);\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-hot-module-reload/dist/native-modules/render-utils.js\n// module id = 49\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n\n\nexport function json(body) {\n return new Blob([JSON.stringify(body !== undefined ? body : {})], { type: 'application/json' });\n}\n\nexport var HttpClientConfiguration = function () {\n function HttpClientConfiguration() {\n \n\n this.baseUrl = '';\n this.defaults = {};\n this.interceptors = [];\n }\n\n HttpClientConfiguration.prototype.withBaseUrl = function withBaseUrl(baseUrl) {\n this.baseUrl = baseUrl;\n return this;\n };\n\n HttpClientConfiguration.prototype.withDefaults = function withDefaults(defaults) {\n this.defaults = defaults;\n return this;\n };\n\n HttpClientConfiguration.prototype.withInterceptor = function withInterceptor(interceptor) {\n this.interceptors.push(interceptor);\n return this;\n };\n\n HttpClientConfiguration.prototype.useStandardConfiguration = function useStandardConfiguration() {\n var standardConfig = { credentials: 'same-origin' };\n Object.assign(this.defaults, standardConfig, this.defaults);\n return this.rejectErrorResponses();\n };\n\n HttpClientConfiguration.prototype.rejectErrorResponses = function rejectErrorResponses() {\n return this.withInterceptor({ response: rejectOnError });\n };\n\n return HttpClientConfiguration;\n}();\n\nfunction rejectOnError(response) {\n if (!response.ok) {\n throw response;\n }\n\n return response;\n}\n\nexport var HttpClient = function () {\n function HttpClient() {\n \n\n this.activeRequestCount = 0;\n this.isRequesting = false;\n this.isConfigured = false;\n this.baseUrl = '';\n this.defaults = null;\n this.interceptors = [];\n\n if (typeof fetch === 'undefined') {\n throw new Error('HttpClient requires a Fetch API implementation, but the current environment doesn\\'t support it. You may need to load a polyfill such as https://github.com/github/fetch.');\n }\n }\n\n HttpClient.prototype.configure = function configure(config) {\n var normalizedConfig = void 0;\n\n if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') {\n normalizedConfig = { defaults: config };\n } else if (typeof config === 'function') {\n normalizedConfig = new HttpClientConfiguration();\n normalizedConfig.baseUrl = this.baseUrl;\n normalizedConfig.defaults = Object.assign({}, this.defaults);\n normalizedConfig.interceptors = this.interceptors;\n\n var c = config(normalizedConfig);\n if (HttpClientConfiguration.prototype.isPrototypeOf(c)) {\n normalizedConfig = c;\n }\n } else {\n throw new Error('invalid config');\n }\n\n var defaults = normalizedConfig.defaults;\n if (defaults && Headers.prototype.isPrototypeOf(defaults.headers)) {\n throw new Error('Default headers must be a plain object.');\n }\n\n this.baseUrl = normalizedConfig.baseUrl;\n this.defaults = defaults;\n this.interceptors = normalizedConfig.interceptors || [];\n this.isConfigured = true;\n\n return this;\n };\n\n HttpClient.prototype.fetch = function (_fetch) {\n function fetch(_x, _x2) {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(function (input, init) {\n var _this = this;\n\n trackRequestStart.call(this);\n\n var request = Promise.resolve().then(function () {\n return buildRequest.call(_this, input, init, _this.defaults);\n });\n var promise = processRequest(request, this.interceptors).then(function (result) {\n var response = null;\n\n if (Response.prototype.isPrototypeOf(result)) {\n response = result;\n } else if (Request.prototype.isPrototypeOf(result)) {\n request = Promise.resolve(result);\n response = fetch(result);\n } else {\n throw new Error('An invalid result was returned by the interceptor chain. Expected a Request or Response instance, but got [' + result + ']');\n }\n\n return request.then(function (_request) {\n return processResponse(response, _this.interceptors, _request);\n });\n });\n\n return trackRequestEndWith.call(this, promise);\n });\n\n return HttpClient;\n}();\n\nvar absoluteUrlRegexp = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\n\nfunction trackRequestStart() {\n this.isRequesting = !! ++this.activeRequestCount;\n}\n\nfunction trackRequestEnd() {\n this.isRequesting = !! --this.activeRequestCount;\n}\n\nfunction trackRequestEndWith(promise) {\n var handle = trackRequestEnd.bind(this);\n promise.then(handle, handle);\n return promise;\n}\n\nfunction parseHeaderValues(headers) {\n var parsedHeaders = {};\n for (var name in headers || {}) {\n if (headers.hasOwnProperty(name)) {\n parsedHeaders[name] = typeof headers[name] === 'function' ? headers[name]() : headers[name];\n }\n }\n return parsedHeaders;\n}\n\nfunction buildRequest(input, init) {\n var defaults = this.defaults || {};\n var request = void 0;\n var body = void 0;\n var requestContentType = void 0;\n\n var parsedDefaultHeaders = parseHeaderValues(defaults.headers);\n if (Request.prototype.isPrototypeOf(input)) {\n request = input;\n requestContentType = new Headers(request.headers).get('Content-Type');\n } else {\n init || (init = {});\n body = init.body;\n var bodyObj = body ? { body: body } : null;\n var requestInit = Object.assign({}, defaults, { headers: {} }, init, bodyObj);\n requestContentType = new Headers(requestInit.headers).get('Content-Type');\n request = new Request(getRequestUrl(this.baseUrl, input), requestInit);\n }\n if (!requestContentType && new Headers(parsedDefaultHeaders).has('content-type')) {\n request.headers.set('Content-Type', new Headers(parsedDefaultHeaders).get('content-type'));\n }\n setDefaultHeaders(request.headers, parsedDefaultHeaders);\n if (body && Blob.prototype.isPrototypeOf(body) && body.type) {\n request.headers.set('Content-Type', body.type);\n }\n return request;\n}\n\nfunction getRequestUrl(baseUrl, url) {\n if (absoluteUrlRegexp.test(url)) {\n return url;\n }\n\n return (baseUrl || '') + url;\n}\n\nfunction setDefaultHeaders(headers, defaultHeaders) {\n for (var name in defaultHeaders || {}) {\n if (defaultHeaders.hasOwnProperty(name) && !headers.has(name)) {\n headers.set(name, defaultHeaders[name]);\n }\n }\n}\n\nfunction processRequest(request, interceptors) {\n return applyInterceptors(request, interceptors, 'request', 'requestError');\n}\n\nfunction processResponse(response, interceptors, request) {\n return applyInterceptors(response, interceptors, 'response', 'responseError', request);\n}\n\nfunction applyInterceptors(input, interceptors, successName, errorName) {\n for (var _len = arguments.length, interceptorArgs = Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) {\n interceptorArgs[_key - 4] = arguments[_key];\n }\n\n return (interceptors || []).reduce(function (chain, interceptor) {\n var successHandler = interceptor[successName];\n var errorHandler = interceptor[errorName];\n\n return chain.then(successHandler && function (value) {\n return successHandler.call.apply(successHandler, [interceptor, value].concat(interceptorArgs));\n } || identity, errorHandler && function (reason) {\n return errorHandler.call.apply(errorHandler, [interceptor, reason].concat(interceptorArgs));\n } || thrower);\n }, Promise.resolve(input));\n}\n\nfunction identity(x) {\n return x;\n}\n\nfunction thrower(x) {\n throw x;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-fetch-client/dist/native-modules/aurelia-fetch-client.js\n// module id = 5\n// module chunks = 0","var __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n/**\n * traverse interesting places in Controller:\n * - behavior.target (class of ViewModel)\n * - behavior.viewFactory (traverse ViewFactory)\n * - behavior.attributes[array] (?)\n *\n * - viewFactory.instructions[ALL-obj].providers[ALL-arr] (original functions/classes, not instances, things like If)\n * - viewFactory.instructions[ALL-obj].viewFactory\n *\n * - viewFactory.resources (ViewResources)\n * .bindingBehaviors[name] (instances, can fix up .constructor is class)\n * .valueConverters[name] (instances, can fix up .constructor is class)\n *\n * - boundProperties[array] ??\n * - container //how can we replace instances in container?\n * - container.children[array<ViewSlot>]?\n * - container\n * .viewModel? (instance)\n * .viewResources (ViewResources)\n *\n * - instruction (BehaviorInstruction)\n * .viewFactory\n * .viewModel (instance)\n *\n * - scope (View)\n * .bindingContext (instance)\n * .children[array<ViewSlot>]\n * .controller (Controller)\n * .controllers[array<Controller>]\n * .overrideContext\n * .bindingContext? (Instance)\n * .parentOverrideContext\n * .bindingContext? (and so on...)\n * .resources (ViewResources)\n * .viewFactory (ViewFactory)\n * - view (View)\n * - viewModel (instance or RouterView:)\n * .overrideContext\n * .router.viewPorts[ALL-obj]. (RouterView)\n * .overrideContext\n * .owningView (View)\n * .view (View)\n * .viewSlot (ViewSlot)\n * .children[array<View>]\n * .bindingContext (instance)\n * .overrideContext\n **/\nexport function traverseController(classOrFunction, controller, info) {\n var matches = [];\n if (!controller || info.previouslyTraversed.has(controller))\n return matches;\n info.previouslyTraversed.add(controller);\n matches.push.apply(matches, traverseBehaviorResource(classOrFunction, controller.behavior, __assign({}, info, { parentController: controller, immediateParent: controller, propertyInParent: 'behavior' })).concat(traverseBehaviorInstruction(classOrFunction, controller.instruction, __assign({}, info, { parentController: controller, immediateParent: controller, propertyInParent: 'instruction' })), traverseView(classOrFunction, controller.scope, __assign({}, info, { parentController: controller, immediateParent: controller, propertyInParent: 'scope' })), traverseView(classOrFunction, controller.view, __assign({}, info, { parentController: controller, immediateParent: controller, propertyInParent: 'view' })), traverseViewModel(classOrFunction, controller.viewModel, __assign({}, info, { parentController: controller, immediateParent: controller, propertyInParent: 'viewModel' }))));\n return matches;\n}\nexport function traverseBehaviorResource(classOrFunction, behavior, info) {\n var matches = [];\n if (!behavior || info.previouslyTraversed.has(behavior))\n return matches;\n info.previouslyTraversed.add(behavior);\n if (behavior.target === classOrFunction) {\n matches.push(__assign({}, info, { immediateParent: behavior, propertyInParent: 'target' }));\n }\n matches.push.apply(matches, traverseViewFactory(classOrFunction, behavior.viewFactory, __assign({}, info, { immediateParent: behavior, propertyInParent: 'viewFactory' })));\n return matches;\n}\nexport function traverseViewFactory(classOrFunction, viewFactory, info) {\n var matches = [];\n if (!viewFactory || info.previouslyTraversed.has(viewFactory))\n return matches;\n info.previouslyTraversed.add(viewFactory);\n if (viewFactory.instructions) {\n Object.keys(viewFactory.instructions).forEach(function (instructionKey) {\n var instruction = viewFactory.instructions[instructionKey];\n matches.push.apply(matches, traverseViewFactory(classOrFunction, instruction.viewFactory, __assign({}, info, { immediateParent: instruction, propertyInParent: 'viewFactory' })));\n if (instruction.providers && instruction.providers.length) {\n instruction.providers.forEach(function (providerKey, index) {\n if (providerKey === classOrFunction) {\n matches.push(__assign({}, info, { immediateParent: instruction.providers, propertyInParent: index }));\n }\n });\n }\n });\n }\n if (viewFactory.resources) {\n matches.push.apply(matches, traverseViewResources(classOrFunction, viewFactory.resources, __assign({}, info, { immediateParent: viewFactory, propertyInParent: 'resources' })));\n }\n return matches;\n}\nexport function traverseViewResources(classOrFunction, viewResources, info) {\n var matches = [];\n if (!viewResources || info.previouslyTraversed.has(viewResources))\n return matches;\n info.previouslyTraversed.add(viewResources);\n ['bindingBehaviors', 'valueConverters'].forEach(function (type) {\n var viewResourceInstances = viewResources[type];\n if (viewResourceInstances) {\n Object.keys(viewResourceInstances).forEach(function (key) {\n var instance = viewResourceInstances[key];\n if (instance && instance.constructor === classOrFunction) {\n matches.push(__assign({}, info, { immediateParent: viewResourceInstances, propertyInParent: key, instance: true }));\n }\n });\n }\n });\n matches.push.apply(matches, traverseViewResources(classOrFunction, viewResources.parent, __assign({}, info, { immediateParent: viewResources, propertyInParent: 'parent' })));\n return matches;\n}\nexport function traverseBehaviorInstruction(classOrFunction, behaviorInstruction, info) {\n var matches = [];\n if (!behaviorInstruction || info.previouslyTraversed.has(behaviorInstruction))\n return matches;\n info.previouslyTraversed.add(behaviorInstruction);\n matches.push.apply(matches, traverseViewFactory(classOrFunction, behaviorInstruction.viewFactory, __assign({}, info, { immediateParent: behaviorInstruction, propertyInParent: 'viewFactory' })).concat(traverseViewModel(classOrFunction, behaviorInstruction.viewModel, __assign({}, info, { immediateParent: behaviorInstruction, propertyInParent: 'viewModel' }))));\n return matches;\n}\nexport function traverseViewModel(classOrFunction, viewModel, info) {\n var matches = [];\n if (!viewModel)\n return matches;\n var duplicate = info.previouslyTraversed.has(viewModel);\n info.previouslyTraversed.add(viewModel);\n if (viewModel.constructor === classOrFunction) {\n matches.push(__assign({}, info, { instance: true, duplicate: duplicate }));\n if (duplicate) {\n return matches;\n }\n }\n matches.push.apply(matches, traverseOverrideContext(classOrFunction, viewModel.overrideContext, __assign({}, info, { immediateParent: viewModel, propertyInParent: 'overrideContext' })).concat(traverseRouter(classOrFunction, viewModel.router, __assign({}, info, { immediateParent: viewModel, propertyInParent: 'router' }))));\n return matches;\n}\nexport function traverseRouter(classOrFunction, router, info) {\n var matches = [];\n if (!router || info.previouslyTraversed.has(router))\n return matches;\n info.previouslyTraversed.add(router);\n if (router.viewPorts) {\n Object.keys(router.viewPorts).forEach(function (key) {\n var viewPort = router.viewPorts[key]; // as RouterView;\n matches.push.apply(// as RouterView;\n matches, traverseRouterView(classOrFunction, viewPort, __assign({}, info, { immediateParent: router.viewPorts, propertyInParent: key })));\n });\n }\n return matches;\n}\nexport function traverseRouterView(classOrFunction, routerView, info) {\n var matches = [];\n if (!routerView || info.previouslyTraversed.has(routerView))\n return matches;\n info.previouslyTraversed.add(routerView);\n matches.push.apply(matches, traverseOverrideContext(classOrFunction, routerView.overrideContext, __assign({}, info, { immediateParent: routerView, propertyInParent: 'overrideContext' })).concat(traverseView(classOrFunction, routerView.owningView, __assign({}, info, { immediateParent: routerView, propertyInParent: 'owningView' })), traverseView(classOrFunction, routerView.view, __assign({}, info, { immediateParent: routerView, propertyInParent: 'view' })), traverseViewSlot(classOrFunction, routerView.viewSlot, __assign({}, info, { immediateParent: routerView, propertyInParent: 'viewSlot' }))));\n return matches;\n}\nexport function traverseView(classOrFunction, view, info) {\n var matches = [];\n if (!view || info.previouslyTraversed.has(view))\n return matches;\n info.previouslyTraversed.add(view);\n matches.push.apply(matches, traverseViewModel(classOrFunction, view.bindingContext, __assign({}, info, { relatedView: view, immediateParent: view, propertyInParent: 'bindingContext' })).concat(traverseController(classOrFunction, view.controller, __assign({}, info, { relatedView: view, immediateParent: view, propertyInParent: 'controller' })), traverseOverrideContext(classOrFunction, view.overrideContext, __assign({}, info, { relatedView: view, immediateParent: view, propertyInParent: 'overrideContext' })), traverseViewResources(classOrFunction, view.resources, __assign({}, info, { relatedView: view, immediateParent: view, propertyInParent: 'resources' })), traverseViewFactory(classOrFunction, view.viewFactory, __assign({}, info, { relatedView: view, immediateParent: view, propertyInParent: 'viewFactory' }))));\n if (view.controllers && view.controllers.length) {\n view.controllers.forEach(function (controller, index) {\n matches.push.apply(matches, traverseController(classOrFunction, controller, __assign({}, info, { relatedView: view, immediateParent: view.controllers, propertyInParent: index })));\n });\n }\n if (view.children && view.children.length) {\n view.children.forEach(function (viewSlot, index) {\n matches.push.apply(matches, traverseViewSlot(classOrFunction, viewSlot, __assign({}, info, { childOfViewSlot: viewSlot, relatedView: view, immediateParent: view.children, propertyInParent: index })));\n });\n }\n return matches;\n}\nexport function traverseOverrideContext(classOrFunction, overrideContext, info) {\n var matches = [];\n if (!overrideContext || info.previouslyTraversed.has(overrideContext))\n return matches;\n info.previouslyTraversed.add(overrideContext);\n matches.push.apply(matches, traverseViewModel(classOrFunction, overrideContext.bindingContext, __assign({}, info, { immediateParent: overrideContext, propertyInParent: 'bindingContext' })).concat(traverseOverrideContext(classOrFunction, overrideContext.parentOverrideContext, __assign({}, info, { immediateParent: overrideContext, propertyInParent: 'parentOverrideContext' }))));\n return matches;\n}\nexport function traverseViewSlot(classOrFunction, viewSlot, info) {\n var matches = [];\n if (!viewSlot || info.previouslyTraversed.has(viewSlot))\n return matches;\n info.previouslyTraversed.add(viewSlot);\n matches.push.apply(matches, traverseViewModel(classOrFunction, viewSlot.bindingContext, __assign({}, info, { immediateParent: viewSlot, propertyInParent: 'bindingContext' })).concat(traverseOverrideContext(classOrFunction, viewSlot.overrideContext, __assign({}, info, { immediateParent: viewSlot, propertyInParent: 'overrideContext' }))));\n if (viewSlot.children && viewSlot.children.length) {\n viewSlot.children.forEach(function (child, index) {\n matches.push.apply(matches, traverseView(classOrFunction, child, __assign({}, info, { childOfViewSlot: viewSlot, relatedView: child, immediateParent: viewSlot.children, propertyInParent: index })));\n });\n }\n return matches;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-hot-module-reload/dist/native-modules/view-model-traverse-controller.js\n// module id = 50\n// module chunks = 0","import { ViewSlot } from 'aurelia-templating';\nimport { getAuElements } from './aurelia-hot-module-reload';\nexport function getViewSlots(view) {\n if (view.children && view.children.length) {\n return view.children.filter(function (viewSlot) {\n return viewSlot instanceof ViewSlot && viewSlot.children && viewSlot.children.length;\n });\n }\n return [];\n}\nexport function anyMatchingChildren(viewSlot, matchingTemplate) {\n return !!viewSlot.children.find(function (view) { return view.viewFactory && view.viewFactory.template === matchingTemplate; });\n}\nexport function traverseControllerForTemplates(auController, matchingTemplate) {\n var matchingViewControllers = [];\n var matchingScopeControllers = [];\n var view = (auController.view);\n var scope = (auController.scope);\n var slotsWithMatchingViews = [];\n if (view && view.viewFactory && view.viewFactory.template === matchingTemplate) {\n matchingViewControllers = [auController]; // [view.controller] // whole View and all of its children will be rendered\n }\n else if (scope && scope.controller && scope.viewFactory && scope.viewFactory.template === matchingTemplate) {\n matchingScopeControllers = [scope.controller];\n }\n else {\n var viewViewSlots = view ? getViewSlots(view) : [];\n var scopeViewSlots = scope ? getViewSlots(scope) : [];\n slotsWithMatchingViews = Array.from(new Set(viewViewSlots.concat(scopeViewSlots))).filter(function (slot) { return anyMatchingChildren(slot, matchingTemplate); });\n }\n return {\n matchingViewControllers: matchingViewControllers,\n matchingScopeControllers: matchingScopeControllers,\n slotsWithMatchingViews: slotsWithMatchingViews\n };\n}\nexport function getElementsToRerender(template) {\n // get visible elements to re-render:\n var auElements = getAuElements();\n var controllers = auElements.filter(function (el) {\n /* NOTE: viewless components like blur-image do not have el.au.controller set */\n return el.au && el.au.controller && (el.au.controller.view || el.au.controller.scope);\n }).map(function (el) { return el.au.controller; });\n var viewControllers = new Set();\n var scopeControllers = new Set();\n var slots = new Set();\n controllers\n .forEach(function (controller) {\n var _a = traverseControllerForTemplates(controller, template), matchingViewControllers = _a.matchingViewControllers, matchingScopeControllers = _a.matchingScopeControllers, slotsWithMatchingViews = _a.slotsWithMatchingViews;\n matchingViewControllers.forEach(function (controller) { return viewControllers.add(controller); });\n matchingScopeControllers.forEach(function (controller) { return scopeControllers.add(controller); });\n slotsWithMatchingViews.forEach(function (slot) { return slots.add(slot); });\n });\n var toRender = { viewControllers: viewControllers, scopeControllers: scopeControllers, slots: slots };\n return toRender;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-hot-module-reload/dist/native-modules/view-traverse-controller.js\n// module id = 51\n// module chunks = 0","\n\nimport { buildQueryString, parseQueryString } from 'aurelia-path';\n\nexport var State = function () {\n function State(charSpec) {\n \n\n this.charSpec = charSpec;\n this.nextStates = [];\n }\n\n State.prototype.get = function get(charSpec) {\n for (var _iterator = this.nextStates, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var child = _ref;\n\n var isEqual = child.charSpec.validChars === charSpec.validChars && child.charSpec.invalidChars === charSpec.invalidChars;\n\n if (isEqual) {\n return child;\n }\n }\n\n return undefined;\n };\n\n State.prototype.put = function put(charSpec) {\n var state = this.get(charSpec);\n\n if (state) {\n return state;\n }\n\n state = new State(charSpec);\n\n this.nextStates.push(state);\n\n if (charSpec.repeat) {\n state.nextStates.push(state);\n }\n\n return state;\n };\n\n State.prototype.match = function match(ch) {\n var nextStates = this.nextStates;\n var results = [];\n\n for (var i = 0, l = nextStates.length; i < l; i++) {\n var child = nextStates[i];\n var charSpec = child.charSpec;\n\n if (charSpec.validChars !== undefined) {\n if (charSpec.validChars.indexOf(ch) !== -1) {\n results.push(child);\n }\n } else if (charSpec.invalidChars !== undefined) {\n if (charSpec.invalidChars.indexOf(ch) === -1) {\n results.push(child);\n }\n }\n }\n\n return results;\n };\n\n return State;\n}();\n\nvar specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\\\'];\n\nvar escapeRegex = new RegExp('(\\\\' + specials.join('|\\\\') + ')', 'g');\n\nexport var StaticSegment = function () {\n function StaticSegment(string, caseSensitive) {\n \n\n this.string = string;\n this.caseSensitive = caseSensitive;\n }\n\n StaticSegment.prototype.eachChar = function eachChar(callback) {\n var s = this.string;\n for (var i = 0, ii = s.length; i < ii; ++i) {\n var ch = s[i];\n callback({ validChars: this.caseSensitive ? ch : ch.toUpperCase() + ch.toLowerCase() });\n }\n };\n\n StaticSegment.prototype.regex = function regex() {\n return this.string.replace(escapeRegex, '\\\\$1');\n };\n\n StaticSegment.prototype.generate = function generate() {\n return this.string;\n };\n\n return StaticSegment;\n}();\n\nexport var DynamicSegment = function () {\n function DynamicSegment(name, optional) {\n \n\n this.name = name;\n this.optional = optional;\n }\n\n DynamicSegment.prototype.eachChar = function eachChar(callback) {\n callback({ invalidChars: '/', repeat: true });\n };\n\n DynamicSegment.prototype.regex = function regex() {\n return this.optional ? '([^/]+)?' : '([^/]+)';\n };\n\n DynamicSegment.prototype.generate = function generate(params, consumed) {\n consumed[this.name] = true;\n return params[this.name];\n };\n\n return DynamicSegment;\n}();\n\nexport var StarSegment = function () {\n function StarSegment(name) {\n \n\n this.name = name;\n }\n\n StarSegment.prototype.eachChar = function eachChar(callback) {\n callback({ invalidChars: '', repeat: true });\n };\n\n StarSegment.prototype.regex = function regex() {\n return '(.+)';\n };\n\n StarSegment.prototype.generate = function generate(params, consumed) {\n consumed[this.name] = true;\n return params[this.name];\n };\n\n return StarSegment;\n}();\n\nexport var EpsilonSegment = function () {\n function EpsilonSegment() {\n \n }\n\n EpsilonSegment.prototype.eachChar = function eachChar() {};\n\n EpsilonSegment.prototype.regex = function regex() {\n return '';\n };\n\n EpsilonSegment.prototype.generate = function generate() {\n return '';\n };\n\n return EpsilonSegment;\n}();\n\nexport var RouteRecognizer = function () {\n function RouteRecognizer() {\n \n\n this.rootState = new State();\n this.names = {};\n }\n\n RouteRecognizer.prototype.add = function add(route) {\n var _this = this;\n\n if (Array.isArray(route)) {\n route.forEach(function (r) {\n return _this.add(r);\n });\n return undefined;\n }\n\n var currentState = this.rootState;\n var regex = '^';\n var types = { statics: 0, dynamics: 0, stars: 0 };\n var names = [];\n var routeName = route.handler.name;\n var isEmpty = true;\n var isAllOptional = true;\n var segments = parse(route.path, names, types, route.caseSensitive);\n\n for (var i = 0, ii = segments.length; i < ii; i++) {\n var segment = segments[i];\n if (segment instanceof EpsilonSegment) {\n continue;\n }\n\n isEmpty = false;\n isAllOptional = isAllOptional && segment.optional;\n\n currentState = addSegment(currentState, segment);\n regex += segment.optional ? '/?' : '/';\n regex += segment.regex();\n }\n\n if (isAllOptional) {\n if (isEmpty) {\n currentState = currentState.put({ validChars: '/' });\n regex += '/';\n } else {\n var finalState = this.rootState.put({ validChars: '/' });\n currentState.epsilon = [finalState];\n currentState = finalState;\n }\n }\n\n var handlers = [{ handler: route.handler, names: names }];\n\n if (routeName) {\n var routeNames = Array.isArray(routeName) ? routeName : [routeName];\n for (var _i2 = 0; _i2 < routeNames.length; _i2++) {\n this.names[routeNames[_i2]] = {\n segments: segments,\n handlers: handlers\n };\n }\n }\n\n currentState.handlers = handlers;\n currentState.regex = new RegExp(regex + '$', route.caseSensitive ? '' : 'i');\n currentState.types = types;\n\n return currentState;\n };\n\n RouteRecognizer.prototype.handlersFor = function handlersFor(name) {\n var route = this.names[name];\n if (!route) {\n throw new Error('There is no route named ' + name);\n }\n\n return [].concat(route.handlers);\n };\n\n RouteRecognizer.prototype.hasRoute = function hasRoute(name) {\n return !!this.names[name];\n };\n\n RouteRecognizer.prototype.generate = function generate(name, params) {\n var route = this.names[name];\n if (!route) {\n throw new Error('There is no route named ' + name);\n }\n\n var handler = route.handlers[0].handler;\n if (handler.generationUsesHref) {\n return handler.href;\n }\n\n var routeParams = Object.assign({}, params);\n var segments = route.segments;\n var consumed = {};\n var output = '';\n\n for (var i = 0, l = segments.length; i < l; i++) {\n var segment = segments[i];\n\n if (segment instanceof EpsilonSegment) {\n continue;\n }\n\n var segmentValue = segment.generate(routeParams, consumed);\n if (segmentValue === null || segmentValue === undefined) {\n if (!segment.optional) {\n throw new Error('A value is required for route parameter \\'' + segment.name + '\\' in route \\'' + name + '\\'.');\n }\n } else {\n output += '/';\n output += segmentValue;\n }\n }\n\n if (output.charAt(0) !== '/') {\n output = '/' + output;\n }\n\n for (var param in consumed) {\n delete routeParams[param];\n }\n\n var queryString = buildQueryString(routeParams);\n output += queryString ? '?' + queryString : '';\n\n return output;\n };\n\n RouteRecognizer.prototype.recognize = function recognize(path) {\n var states = [this.rootState];\n var queryParams = {};\n var isSlashDropped = false;\n var normalizedPath = path;\n\n var queryStart = normalizedPath.indexOf('?');\n if (queryStart !== -1) {\n var queryString = normalizedPath.substr(queryStart + 1, normalizedPath.length);\n normalizedPath = normalizedPath.substr(0, queryStart);\n queryParams = parseQueryString(queryString);\n }\n\n normalizedPath = decodeURI(normalizedPath);\n\n if (normalizedPath.charAt(0) !== '/') {\n normalizedPath = '/' + normalizedPath;\n }\n\n var pathLen = normalizedPath.length;\n if (pathLen > 1 && normalizedPath.charAt(pathLen - 1) === '/') {\n normalizedPath = normalizedPath.substr(0, pathLen - 1);\n isSlashDropped = true;\n }\n\n for (var i = 0, l = normalizedPath.length; i < l; i++) {\n states = recognizeChar(states, normalizedPath.charAt(i));\n if (!states.length) {\n break;\n }\n }\n\n var solutions = [];\n for (var _i3 = 0, _l = states.length; _i3 < _l; _i3++) {\n if (states[_i3].handlers) {\n solutions.push(states[_i3]);\n }\n }\n\n states = sortSolutions(solutions);\n\n var state = solutions[0];\n if (state && state.handlers) {\n if (isSlashDropped && state.regex.source.slice(-5) === '(.+)$') {\n normalizedPath = normalizedPath + '/';\n }\n\n return findHandler(state, normalizedPath, queryParams);\n }\n\n return undefined;\n };\n\n return RouteRecognizer;\n}();\n\nvar RecognizeResults = function RecognizeResults(queryParams) {\n \n\n this.splice = Array.prototype.splice;\n this.slice = Array.prototype.slice;\n this.push = Array.prototype.push;\n this.length = 0;\n this.queryParams = queryParams || {};\n};\n\nfunction parse(route, names, types, caseSensitive) {\n var normalizedRoute = route;\n if (route.charAt(0) === '/') {\n normalizedRoute = route.substr(1);\n }\n\n var results = [];\n\n var splitRoute = normalizedRoute.split('/');\n for (var i = 0, ii = splitRoute.length; i < ii; ++i) {\n var segment = splitRoute[i];\n\n var match = segment.match(/^:([^?]+)(\\?)?$/);\n if (match) {\n var _match = match;\n var _name = _match[1];\n var optional = _match[2];\n\n if (_name.indexOf('=') !== -1) {\n throw new Error('Parameter ' + _name + ' in route ' + route + ' has a default value, which is not supported.');\n }\n results.push(new DynamicSegment(_name, !!optional));\n names.push(_name);\n types.dynamics++;\n continue;\n }\n\n match = segment.match(/^\\*(.+)$/);\n if (match) {\n results.push(new StarSegment(match[1]));\n names.push(match[1]);\n types.stars++;\n } else if (segment === '') {\n results.push(new EpsilonSegment());\n } else {\n results.push(new StaticSegment(segment, caseSensitive));\n types.statics++;\n }\n }\n\n return results;\n}\n\nfunction sortSolutions(states) {\n return states.sort(function (a, b) {\n if (a.types.stars !== b.types.stars) {\n return a.types.stars - b.types.stars;\n }\n\n if (a.types.stars) {\n if (a.types.statics !== b.types.statics) {\n return b.types.statics - a.types.statics;\n }\n if (a.types.dynamics !== b.types.dynamics) {\n return b.types.dynamics - a.types.dynamics;\n }\n }\n\n if (a.types.dynamics !== b.types.dynamics) {\n return a.types.dynamics - b.types.dynamics;\n }\n\n if (a.types.statics !== b.types.statics) {\n return b.types.statics - a.types.statics;\n }\n\n return 0;\n });\n}\n\nfunction recognizeChar(states, ch) {\n var nextStates = [];\n\n for (var i = 0, l = states.length; i < l; i++) {\n var state = states[i];\n nextStates.push.apply(nextStates, state.match(ch));\n }\n\n var skippableStates = nextStates.filter(function (s) {\n return s.epsilon;\n });\n\n var _loop = function _loop() {\n var newStates = [];\n skippableStates.forEach(function (s) {\n nextStates.push.apply(nextStates, s.epsilon);\n newStates.push.apply(newStates, s.epsilon);\n });\n skippableStates = newStates.filter(function (s) {\n return s.epsilon;\n });\n };\n\n while (skippableStates.length > 0) {\n _loop();\n }\n\n return nextStates;\n}\n\nfunction findHandler(state, path, queryParams) {\n var handlers = state.handlers;\n var regex = state.regex;\n var captures = path.match(regex);\n var currentCapture = 1;\n var result = new RecognizeResults(queryParams);\n\n for (var i = 0, l = handlers.length; i < l; i++) {\n var _handler = handlers[i];\n var _names = _handler.names;\n var _params = {};\n\n for (var j = 0, m = _names.length; j < m; j++) {\n _params[_names[j]] = captures[currentCapture++];\n }\n\n result.push({ handler: _handler.handler, params: _params, isDynamic: !!_names.length });\n }\n\n return result;\n}\n\nfunction addSegment(currentState, segment) {\n var state = currentState.put({ validChars: '/' });\n segment.eachChar(function (ch) {\n state = state.put(ch);\n });\n\n if (segment.optional) {\n currentState.epsilon = currentState.epsilon || [];\n currentState.epsilon.push(state);\n }\n\n return state;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-route-recognizer/dist/native-modules/aurelia-route-recognizer.js\n// module id = 52\n// module chunks = 0","function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nimport { ViewResources, resource, ViewCompileInstruction } from 'aurelia-templating';\nimport { Loader } from 'aurelia-loader';\nimport { Container } from 'aurelia-dependency-injection';\nimport { relativeToFile } from 'aurelia-path';\nimport { DOM, FEATURE } from 'aurelia-pal';\n\nvar cssUrlMatcher = /url\\((?!['\"]data)([^)]+)\\)/gi;\n\nfunction fixupCSSUrls(address, css) {\n if (typeof css !== 'string') {\n throw new Error('Failed loading required CSS file: ' + address);\n }\n return css.replace(cssUrlMatcher, function (match, p1) {\n var quote = p1.charAt(0);\n if (quote === '\\'' || quote === '\"') {\n p1 = p1.substr(1, p1.length - 2);\n }\n return 'url(\\'' + relativeToFile(p1, address) + '\\')';\n });\n}\n\nvar CSSResource = function () {\n function CSSResource(address) {\n \n\n this.address = address;\n this._scoped = null;\n this._global = false;\n this._alreadyGloballyInjected = false;\n }\n\n CSSResource.prototype.initialize = function initialize(container, target) {\n this._scoped = new target(this);\n };\n\n CSSResource.prototype.register = function register(registry, name) {\n if (name === 'scoped') {\n registry.registerViewEngineHooks(this._scoped);\n } else {\n this._global = true;\n }\n };\n\n CSSResource.prototype.load = function load(container) {\n var _this = this;\n\n return container.get(Loader).loadText(this.address).catch(function (err) {\n return null;\n }).then(function (text) {\n text = fixupCSSUrls(_this.address, text);\n _this._scoped.css = text;\n if (_this._global) {\n _this._alreadyGloballyInjected = true;\n DOM.injectStyles(text);\n }\n });\n };\n\n return CSSResource;\n}();\n\nvar CSSViewEngineHooks = function () {\n function CSSViewEngineHooks(owner) {\n \n\n this.owner = owner;\n this.css = null;\n }\n\n CSSViewEngineHooks.prototype.beforeCompile = function beforeCompile(content, resources, instruction) {\n if (instruction.targetShadowDOM) {\n DOM.injectStyles(this.css, content, true);\n } else if (FEATURE.scopedCSS) {\n var styleNode = DOM.injectStyles(this.css, content, true);\n styleNode.setAttribute('scoped', 'scoped');\n } else if (!this.owner._alreadyGloballyInjected) {\n DOM.injectStyles(this.css);\n this.owner._alreadyGloballyInjected = true;\n }\n };\n\n return CSSViewEngineHooks;\n}();\n\nexport function _createCSSResource(address) {\n var _dec, _class;\n\n var ViewCSS = (_dec = resource(new CSSResource(address)), _dec(_class = function (_CSSViewEngineHooks) {\n _inherits(ViewCSS, _CSSViewEngineHooks);\n\n function ViewCSS() {\n \n\n return _possibleConstructorReturn(this, _CSSViewEngineHooks.apply(this, arguments));\n }\n\n return ViewCSS;\n }(CSSViewEngineHooks)) || _class);\n\n return ViewCSS;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/css-resource.js\n// module id = 53\n// module chunks = 0","\n\nimport { useView, customElement, bindable } from 'aurelia-templating';\nexport function _createDynamicElement(name, viewUrl, bindableNames) {\n var _dec, _dec2, _class;\n\n var DynamicElement = (_dec = customElement(name), _dec2 = useView(viewUrl), _dec(_class = _dec2(_class = function () {\n function DynamicElement() {\n \n }\n\n DynamicElement.prototype.bind = function bind(bindingContext) {\n this.$parent = bindingContext;\n };\n\n return DynamicElement;\n }()) || _class) || _class);\n\n for (var i = 0, ii = bindableNames.length; i < ii; ++i) {\n bindable(bindableNames[i])(DynamicElement);\n }\n return DynamicElement;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/dynamic-element.js\n// module id = 54\n// module chunks = 0","import { ViewEngine } from 'aurelia-templating';\nimport { _createDynamicElement } from './dynamic-element';\n\nexport function getElementName(address) {\n return (/([^\\/^\\?]+)\\.html/i.exec(address)[1].toLowerCase()\n );\n}\n\nexport function configure(config) {\n var viewEngine = config.container.get(ViewEngine);\n var loader = config.aurelia.loader;\n\n viewEngine.addResourcePlugin('.html', {\n 'fetch': function fetch(address) {\n return loader.loadTemplate(address).then(function (registryEntry) {\n var _ref;\n\n var bindable = registryEntry.template.getAttribute('bindable');\n var elementName = getElementName(address);\n\n if (bindable) {\n bindable = bindable.split(',').map(function (x) {\n return x.trim();\n });\n registryEntry.template.removeAttribute('bindable');\n } else {\n bindable = [];\n }\n\n return _ref = {}, _ref[elementName] = _createDynamicElement(elementName, address, bindable), _ref;\n });\n }\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/html-resource-plugin.js\n// module id = 55\n// module chunks = 0","var _dec, _class;\n\n\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport { inject } from 'aurelia-dependency-injection';\nimport { CompositionEngine, useView, customElement } from 'aurelia-templating';\nimport { RouteLoader, Router } from 'aurelia-router';\nimport { relativeToFile } from 'aurelia-path';\nimport { Origin } from 'aurelia-metadata';\nimport { RouterViewLocator } from './router-view';\n\nexport var TemplatingRouteLoader = (_dec = inject(CompositionEngine), _dec(_class = function (_RouteLoader) {\n _inherits(TemplatingRouteLoader, _RouteLoader);\n\n function TemplatingRouteLoader(compositionEngine) {\n \n\n var _this = _possibleConstructorReturn(this, _RouteLoader.call(this));\n\n _this.compositionEngine = compositionEngine;\n return _this;\n }\n\n TemplatingRouteLoader.prototype.loadRoute = function loadRoute(router, config) {\n var childContainer = router.container.createChild();\n\n var viewModel = /\\.html/.test(config.moduleId) ? createDynamicClass(config.moduleId) : relativeToFile(config.moduleId, Origin.get(router.container.viewModel.constructor).moduleId);\n\n var instruction = {\n viewModel: viewModel,\n childContainer: childContainer,\n view: config.view || config.viewStrategy,\n router: router\n };\n\n childContainer.registerSingleton(RouterViewLocator);\n\n childContainer.getChildRouter = function () {\n var childRouter = void 0;\n\n childContainer.registerHandler(Router, function (c) {\n return childRouter || (childRouter = router.createChild(childContainer));\n });\n\n return childContainer.get(Router);\n };\n\n return this.compositionEngine.ensureViewModel(instruction);\n };\n\n return TemplatingRouteLoader;\n}(RouteLoader)) || _class);\n\nfunction createDynamicClass(moduleId) {\n var _dec2, _dec3, _class2;\n\n var name = /([^\\/^\\?]+)\\.html/i.exec(moduleId)[1];\n\n var DynamicClass = (_dec2 = customElement(name), _dec3 = useView(moduleId), _dec2(_class2 = _dec3(_class2 = function () {\n function DynamicClass() {\n \n }\n\n DynamicClass.prototype.bind = function bind(bindingContext) {\n this.$parent = bindingContext;\n };\n\n return DynamicClass;\n }()) || _class2) || _class2);\n\n\n return DynamicClass;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-router/dist/native-modules/route-loader.js\n// module id = 56\n// module chunks = 0","// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequire('../../js/transition.js')\nrequire('../../js/alert.js')\nrequire('../../js/button.js')\nrequire('../../js/carousel.js')\nrequire('../../js/collapse.js')\nrequire('../../js/dropdown.js')\nrequire('../../js/modal.js')\nrequire('../../js/tooltip.js')\nrequire('../../js/popover.js')\nrequire('../../js/scrollspy.js')\nrequire('../../js/tab.js')\nrequire('../../js/affix.js')\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/dist/js/npm.js\n// module id = 57\n// module chunks = 0","/* ========================================================================\n * Bootstrap: affix.js v3.3.7\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.7'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/affix.js\n// module id = 58\n// module chunks = 0","/* ========================================================================\n * Bootstrap: alert.js v3.3.7\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.7'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector === '#' ? [] : selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/alert.js\n// module id = 59\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 6\n// module chunks = 0","/* ========================================================================\n * Bootstrap: button.js v3.3.7\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.7'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/button.js\n// module id = 60\n// module chunks = 0","/* ========================================================================\n * Bootstrap: carousel.js v3.3.7\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.7'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/carousel.js\n// module id = 61\n// module chunks = 0","/* ========================================================================\n * Bootstrap: collapse.js v3.3.7\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.7'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/collapse.js\n// module id = 62\n// module chunks = 0","/* ========================================================================\n * Bootstrap: dropdown.js v3.3.7\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.7'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/dropdown.js\n// module id = 63\n// module chunks = 0","/* ========================================================================\n * Bootstrap: modal.js v3.3.7\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.7'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/modal.js\n// module id = 64\n// module chunks = 0","/* ========================================================================\n * Bootstrap: popover.js v3.3.7\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.7'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/popover.js\n// module id = 65\n// module chunks = 0","/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.7\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.7'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/scrollspy.js\n// module id = 66\n// module chunks = 0","/* ========================================================================\n * Bootstrap: tab.js v3.3.7\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.7'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/tab.js\n// module id = 67\n// module chunks = 0","/* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.7'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/tooltip.js\n// module id = 68\n// module chunks = 0","/* ========================================================================\n * Bootstrap: transition.js v3.3.7\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/js/transition.js\n// module id = 69\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n\n\nimport { PLATFORM } from 'aurelia-pal';\n\nfunction isObject(val) {\n return val && (typeof val === 'function' || (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object');\n}\n\nexport var metadata = {\n resource: 'aurelia:resource',\n paramTypes: 'design:paramtypes',\n propertyType: 'design:type',\n properties: 'design:properties',\n get: function get(metadataKey, target, targetKey) {\n if (!isObject(target)) {\n return undefined;\n }\n var result = metadata.getOwn(metadataKey, target, targetKey);\n return result === undefined ? metadata.get(metadataKey, Object.getPrototypeOf(target), targetKey) : result;\n },\n getOwn: function getOwn(metadataKey, target, targetKey) {\n if (!isObject(target)) {\n return undefined;\n }\n return Reflect.getOwnMetadata(metadataKey, target, targetKey);\n },\n define: function define(metadataKey, metadataValue, target, targetKey) {\n Reflect.defineMetadata(metadataKey, metadataValue, target, targetKey);\n },\n getOrCreateOwn: function getOrCreateOwn(metadataKey, Type, target, targetKey) {\n var result = metadata.getOwn(metadataKey, target, targetKey);\n\n if (result === undefined) {\n result = new Type();\n Reflect.defineMetadata(metadataKey, result, target, targetKey);\n }\n\n return result;\n }\n};\n\nvar originStorage = new Map();\nvar unknownOrigin = Object.freeze({ moduleId: undefined, moduleMember: undefined });\n\nexport var Origin = function () {\n function Origin(moduleId, moduleMember) {\n \n\n this.moduleId = moduleId;\n this.moduleMember = moduleMember;\n }\n\n Origin.get = function get(fn) {\n var origin = originStorage.get(fn);\n\n if (origin === undefined) {\n PLATFORM.eachModule(function (key, value) {\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n for (var name in value) {\n var exp = value[name];\n if (exp === fn) {\n originStorage.set(fn, origin = new Origin(key, name));\n return true;\n }\n }\n }\n\n if (value === fn) {\n originStorage.set(fn, origin = new Origin(key, 'default'));\n return true;\n }\n\n return false;\n });\n }\n\n return origin || unknownOrigin;\n };\n\n Origin.set = function set(fn, origin) {\n originStorage.set(fn, origin);\n };\n\n return Origin;\n}();\n\nexport function decorators() {\n for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n var applicator = function applicator(target, key, descriptor) {\n var i = rest.length;\n\n if (key) {\n descriptor = descriptor || {\n value: target[key],\n writable: true,\n configurable: true,\n enumerable: true\n };\n\n while (i--) {\n descriptor = rest[i](target, key, descriptor) || descriptor;\n }\n\n Object.defineProperty(target, key, descriptor);\n } else {\n while (i--) {\n target = rest[i](target) || target;\n }\n }\n\n return target;\n };\n\n applicator.on = applicator;\n return applicator;\n}\n\nexport function deprecated(optionsOrTarget, maybeKey, maybeDescriptor) {\n function decorator(target, key, descriptor) {\n var methodSignature = target.constructor.name + '#' + key;\n var options = maybeKey ? {} : optionsOrTarget || {};\n var message = 'DEPRECATION - ' + methodSignature;\n\n if (typeof descriptor.value !== 'function') {\n throw new SyntaxError('Only methods can be marked as deprecated.');\n }\n\n if (options.message) {\n message += ' - ' + options.message;\n }\n\n return _extends({}, descriptor, {\n value: function deprecationWrapper() {\n if (options.error) {\n throw new Error(message);\n } else {\n console.warn(message);\n }\n\n return descriptor.value.apply(this, arguments);\n }\n });\n }\n\n return maybeKey ? decorator(optionsOrTarget, maybeKey, maybeDescriptor) : decorator;\n}\n\nexport function mixin(behavior) {\n var instanceKeys = Object.keys(behavior);\n\n function _mixin(possible) {\n var decorator = function decorator(target) {\n var resolvedTarget = typeof target === 'function' ? target.prototype : target;\n\n var i = instanceKeys.length;\n while (i--) {\n var property = instanceKeys[i];\n Object.defineProperty(resolvedTarget, property, {\n value: behavior[property],\n writable: true\n });\n }\n };\n\n return possible ? decorator(possible) : decorator;\n }\n\n return _mixin;\n}\n\nfunction alwaysValid() {\n return true;\n}\nfunction noCompose() {}\n\nfunction ensureProtocolOptions(options) {\n if (options === undefined) {\n options = {};\n } else if (typeof options === 'function') {\n options = {\n validate: options\n };\n }\n\n if (!options.validate) {\n options.validate = alwaysValid;\n }\n\n if (!options.compose) {\n options.compose = noCompose;\n }\n\n return options;\n}\n\nfunction createProtocolValidator(validate) {\n return function (target) {\n var result = validate(target);\n return result === true;\n };\n}\n\nfunction createProtocolAsserter(name, validate) {\n return function (target) {\n var result = validate(target);\n if (result !== true) {\n throw new Error(result || name + ' was not correctly implemented.');\n }\n };\n}\n\nexport function protocol(name, options) {\n options = ensureProtocolOptions(options);\n\n var result = function result(target) {\n var resolvedTarget = typeof target === 'function' ? target.prototype : target;\n\n options.compose(resolvedTarget);\n result.assert(resolvedTarget);\n\n Object.defineProperty(resolvedTarget, 'protocol:' + name, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: true\n });\n };\n\n result.validate = createProtocolValidator(options.validate);\n result.assert = createProtocolAsserter(name, options.validate);\n\n return result;\n}\n\nprotocol.create = function (name, options) {\n options = ensureProtocolOptions(options);\n var hidden = 'protocol:' + name;\n var result = function result(target) {\n var decorator = protocol(name, options);\n return target ? decorator(target) : decorator;\n };\n\n result.decorates = function (obj) {\n return obj[hidden] === true;\n };\n result.validate = createProtocolValidator(options.validate);\n result.assert = createProtocolAsserter(name, options.validate);\n\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-metadata/dist/native-modules/aurelia-metadata.js\n// module id = 7\n// module chunks = 0","module.exports = __webpack_public_path__ + \"e18bbf611f2a2e43afc071aa2f4e1512.ttf\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf\n// module id = 70\n// module chunks = 0","module.exports = __webpack_public_path__ + \"fa2772327f55d8198301fdb8bcfc8158.woff\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/dist/fonts/glyphicons-halflings-regular.woff\n// module id = 71\n// module chunks = 0","module.exports = __webpack_public_path__ + \"448c34a56d699c29117adc64c43affeb.woff2\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2\n// module id = 72\n// module chunks = 0","module.exports = {\n XmlEntities: require('./lib/xml-entities.js'),\n Html4Entities: require('./lib/html4-entities.js'),\n Html5Entities: require('./lib/html5-entities.js'),\n AllHtmlEntities: require('./lib/html5-entities.js')\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/html-entities/index.js\n// module id = 73\n// module chunks = 0","var HTML_ALPHA = ['apos', 'nbsp', 'iexcl', 'cent', 'pound', 'curren', 'yen', 'brvbar', 'sect', 'uml', 'copy', 'ordf', 'laquo', 'not', 'shy', 'reg', 'macr', 'deg', 'plusmn', 'sup2', 'sup3', 'acute', 'micro', 'para', 'middot', 'cedil', 'sup1', 'ordm', 'raquo', 'frac14', 'frac12', 'frac34', 'iquest', 'Agrave', 'Aacute', 'Acirc', 'Atilde', 'Auml', 'Aring', 'Aelig', 'Ccedil', 'Egrave', 'Eacute', 'Ecirc', 'Euml', 'Igrave', 'Iacute', 'Icirc', 'Iuml', 'ETH', 'Ntilde', 'Ograve', 'Oacute', 'Ocirc', 'Otilde', 'Ouml', 'times', 'Oslash', 'Ugrave', 'Uacute', 'Ucirc', 'Uuml', 'Yacute', 'THORN', 'szlig', 'agrave', 'aacute', 'acirc', 'atilde', 'auml', 'aring', 'aelig', 'ccedil', 'egrave', 'eacute', 'ecirc', 'euml', 'igrave', 'iacute', 'icirc', 'iuml', 'eth', 'ntilde', 'ograve', 'oacute', 'ocirc', 'otilde', 'ouml', 'divide', 'oslash', 'ugrave', 'uacute', 'ucirc', 'uuml', 'yacute', 'thorn', 'yuml', 'quot', 'amp', 'lt', 'gt', 'OElig', 'oelig', 'Scaron', 'scaron', 'Yuml', 'circ', 'tilde', 'ensp', 'emsp', 'thinsp', 'zwnj', 'zwj', 'lrm', 'rlm', 'ndash', 'mdash', 'lsquo', 'rsquo', 'sbquo', 'ldquo', 'rdquo', 'bdquo', 'dagger', 'Dagger', 'permil', 'lsaquo', 'rsaquo', 'euro', 'fnof', 'Alpha', 'Beta', 'Gamma', 'Delta', 'Epsilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'Omicron', 'Pi', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'Phi', 'Chi', 'Psi', 'Omega', 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi', 'rho', 'sigmaf', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi', 'omega', 'thetasym', 'upsih', 'piv', 'bull', 'hellip', 'prime', 'Prime', 'oline', 'frasl', 'weierp', 'image', 'real', 'trade', 'alefsym', 'larr', 'uarr', 'rarr', 'darr', 'harr', 'crarr', 'lArr', 'uArr', 'rArr', 'dArr', 'hArr', 'forall', 'part', 'exist', 'empty', 'nabla', 'isin', 'notin', 'ni', 'prod', 'sum', 'minus', 'lowast', 'radic', 'prop', 'infin', 'ang', 'and', 'or', 'cap', 'cup', 'int', 'there4', 'sim', 'cong', 'asymp', 'ne', 'equiv', 'le', 'ge', 'sub', 'sup', 'nsub', 'sube', 'supe', 'oplus', 'otimes', 'perp', 'sdot', 'lceil', 'rceil', 'lfloor', 'rfloor', 'lang', 'rang', 'loz', 'spades', 'clubs', 'hearts', 'diams'];\nvar HTML_CODES = [39, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 38, 60, 62, 338, 339, 352, 353, 376, 710, 732, 8194, 8195, 8201, 8204, 8205, 8206, 8207, 8211, 8212, 8216, 8217, 8218, 8220, 8221, 8222, 8224, 8225, 8240, 8249, 8250, 8364, 402, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 977, 978, 982, 8226, 8230, 8242, 8243, 8254, 8260, 8472, 8465, 8476, 8482, 8501, 8592, 8593, 8594, 8595, 8596, 8629, 8656, 8657, 8658, 8659, 8660, 8704, 8706, 8707, 8709, 8711, 8712, 8713, 8715, 8719, 8721, 8722, 8727, 8730, 8733, 8734, 8736, 8743, 8744, 8745, 8746, 8747, 8756, 8764, 8773, 8776, 8800, 8801, 8804, 8805, 8834, 8835, 8836, 8838, 8839, 8853, 8855, 8869, 8901, 8968, 8969, 8970, 8971, 9001, 9002, 9674, 9824, 9827, 9829, 9830];\n\nvar alphaIndex = {};\nvar numIndex = {};\n\nvar i = 0;\nvar length = HTML_ALPHA.length;\nwhile (i < length) {\n var a = HTML_ALPHA[i];\n var c = HTML_CODES[i];\n alphaIndex[a] = String.fromCharCode(c);\n numIndex[c] = a;\n i++;\n}\n\n/**\n * @constructor\n */\nfunction Html4Entities() {}\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.decode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/&(#?[\\w\\d]+);?/g, function(s, entity) {\n var chr;\n if (entity.charAt(0) === \"#\") {\n var code = entity.charAt(1).toLowerCase() === 'x' ?\n parseInt(entity.substr(2), 16) :\n parseInt(entity.substr(1));\n\n if (!(isNaN(code) || code < -32768 || code > 65535)) {\n chr = String.fromCharCode(code);\n }\n } else {\n chr = alphaIndex[entity];\n }\n return chr || s;\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.decode = function(str) {\n return new Html4Entities().decode(str);\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.encode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var alpha = numIndex[str.charCodeAt(i)];\n result += alpha ? \"&\" + alpha + \";\" : str.charAt(i);\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.encode = function(str) {\n return new Html4Entities().encode(str);\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.encodeNonUTF = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var cc = str.charCodeAt(i);\n var alpha = numIndex[cc];\n if (alpha) {\n result += \"&\" + alpha + \";\";\n } else if (cc < 32 || cc > 126) {\n result += \"&#\" + cc + \";\";\n } else {\n result += str.charAt(i);\n }\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.encodeNonUTF = function(str) {\n return new Html4Entities().encodeNonUTF(str);\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.encodeNonASCII = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n if (c <= 255) {\n result += str[i++];\n continue;\n }\n result += '&#' + c + ';';\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.encodeNonASCII = function(str) {\n return new Html4Entities().encodeNonASCII(str);\n};\n\nmodule.exports = Html4Entities;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/html-entities/lib/html4-entities.js\n// module id = 74\n// module chunks = 0","var ALPHA_INDEX = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&apos': '\\'',\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': '\\'',\n '&': '&'\n};\n\nvar CHAR_INDEX = {\n 60: 'lt',\n 62: 'gt',\n 34: 'quot',\n 39: 'apos',\n 38: 'amp'\n};\n\nvar CHAR_S_INDEX = {\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '&': '&'\n};\n\n/**\n * @constructor\n */\nfunction XmlEntities() {}\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.encode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/<|>|\"|'|&/g, function(s) {\n return CHAR_S_INDEX[s];\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.encode = function(str) {\n return new XmlEntities().encode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.decode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/&#?[0-9a-zA-Z]+;?/g, function(s) {\n if (s.charAt(1) === '#') {\n var code = s.charAt(2).toLowerCase() === 'x' ?\n parseInt(s.substr(3), 16) :\n parseInt(s.substr(2));\n\n if (isNaN(code) || code < -32768 || code > 65535) {\n return '';\n }\n return String.fromCharCode(code);\n }\n return ALPHA_INDEX[s] || s;\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.decode = function(str) {\n return new XmlEntities().decode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.encodeNonUTF = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n var alpha = CHAR_INDEX[c];\n if (alpha) {\n result += \"&\" + alpha + \";\";\n i++;\n continue;\n }\n if (c < 32 || c > 126) {\n result += '&#' + c + ';';\n } else {\n result += str.charAt(i);\n }\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.encodeNonUTF = function(str) {\n return new XmlEntities().encodeNonUTF(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.encodeNonASCII = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLenght = str.length;\n var result = '';\n var i = 0;\n while (i < strLenght) {\n var c = str.charCodeAt(i);\n if (c <= 255) {\n result += str[i++];\n continue;\n }\n result += '&#' + c + ';';\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.encodeNonASCII = function(str) {\n return new XmlEntities().encodeNonASCII(str);\n };\n\nmodule.exports = XmlEntities;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/html-entities/lib/xml-entities.js\n// module id = 75\n// module chunks = 0","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/isomorphic-fetch/fetch-npm-browserify.js\n// module id = 76\n// module chunks = 0","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/querystring-es3/decode.js\n// module id = 77\n// module chunks = 0","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/querystring-es3/encode.js\n// module id = 78\n// module chunks = 0","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/querystring-es3/index.js\n// module id = 79\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nimport * as LogManager from 'aurelia-logging';\nimport { RouteRecognizer } from 'aurelia-route-recognizer';\nimport { Container } from 'aurelia-dependency-injection';\nimport { History } from 'aurelia-history';\nimport { EventAggregator } from 'aurelia-event-aggregator';\n\nexport function _normalizeAbsolutePath(path, hasPushState) {\n var absolute = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\n\n if (!hasPushState && path[0] !== '#') {\n path = '#' + path;\n }\n\n if (hasPushState && absolute) {\n path = path.substring(1, path.length);\n }\n\n return path;\n}\n\nexport function _createRootedPath(fragment, baseUrl, hasPushState, absolute) {\n if (isAbsoluteUrl.test(fragment)) {\n return fragment;\n }\n\n var path = '';\n\n if (baseUrl.length && baseUrl[0] !== '/') {\n path += '/';\n }\n\n path += baseUrl;\n\n if ((!path.length || path[path.length - 1] !== '/') && fragment[0] !== '/') {\n path += '/';\n }\n\n if (path.length && path[path.length - 1] === '/' && fragment[0] === '/') {\n path = path.substring(0, path.length - 1);\n }\n\n return _normalizeAbsolutePath(path + fragment, hasPushState, absolute);\n}\n\nexport function _resolveUrl(fragment, baseUrl, hasPushState) {\n if (isRootedPath.test(fragment)) {\n return _normalizeAbsolutePath(fragment, hasPushState);\n }\n\n return _createRootedPath(fragment, baseUrl, hasPushState);\n}\n\nvar isRootedPath = /^#?\\//;\nvar isAbsoluteUrl = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\n\nexport var pipelineStatus = {\n completed: 'completed',\n canceled: 'canceled',\n rejected: 'rejected',\n running: 'running'\n};\n\nexport var Pipeline = function () {\n function Pipeline() {\n \n\n this.steps = [];\n }\n\n Pipeline.prototype.addStep = function addStep(step) {\n var run = void 0;\n\n if (typeof step === 'function') {\n run = step;\n } else if (typeof step.getSteps === 'function') {\n var steps = step.getSteps();\n for (var i = 0, l = steps.length; i < l; i++) {\n this.addStep(steps[i]);\n }\n\n return this;\n } else {\n run = step.run.bind(step);\n }\n\n this.steps.push(run);\n\n return this;\n };\n\n Pipeline.prototype.run = function run(instruction) {\n var index = -1;\n var steps = this.steps;\n\n function next() {\n index++;\n\n if (index < steps.length) {\n var currentStep = steps[index];\n\n try {\n return currentStep(instruction, next);\n } catch (e) {\n return next.reject(e);\n }\n } else {\n return next.complete();\n }\n }\n\n next.complete = createCompletionHandler(next, pipelineStatus.completed);\n next.cancel = createCompletionHandler(next, pipelineStatus.canceled);\n next.reject = createCompletionHandler(next, pipelineStatus.rejected);\n\n return next();\n };\n\n return Pipeline;\n}();\n\nfunction createCompletionHandler(next, status) {\n return function (output) {\n return Promise.resolve({ status: status, output: output, completed: status === pipelineStatus.completed });\n };\n}\n\nexport var CommitChangesStep = function () {\n function CommitChangesStep() {\n \n }\n\n CommitChangesStep.prototype.run = function run(navigationInstruction, next) {\n return navigationInstruction._commitChanges(true).then(function () {\n navigationInstruction._updateTitle();\n return next();\n });\n };\n\n return CommitChangesStep;\n}();\n\nexport var NavigationInstruction = function () {\n function NavigationInstruction(init) {\n \n\n this.plan = null;\n this.options = {};\n\n Object.assign(this, init);\n\n this.params = this.params || {};\n this.viewPortInstructions = {};\n\n var ancestorParams = [];\n var current = this;\n do {\n var currentParams = Object.assign({}, current.params);\n if (current.config && current.config.hasChildRouter) {\n delete currentParams[current.getWildCardName()];\n }\n\n ancestorParams.unshift(currentParams);\n current = current.parentInstruction;\n } while (current);\n\n var allParams = Object.assign.apply(Object, [{}, this.queryParams].concat(ancestorParams));\n this.lifecycleArgs = [allParams, this.config, this];\n }\n\n NavigationInstruction.prototype.getAllInstructions = function getAllInstructions() {\n var instructions = [this];\n for (var key in this.viewPortInstructions) {\n var childInstruction = this.viewPortInstructions[key].childNavigationInstruction;\n if (childInstruction) {\n instructions.push.apply(instructions, childInstruction.getAllInstructions());\n }\n }\n\n return instructions;\n };\n\n NavigationInstruction.prototype.getAllPreviousInstructions = function getAllPreviousInstructions() {\n return this.getAllInstructions().map(function (c) {\n return c.previousInstruction;\n }).filter(function (c) {\n return c;\n });\n };\n\n NavigationInstruction.prototype.addViewPortInstruction = function addViewPortInstruction(viewPortName, strategy, moduleId, component) {\n var config = Object.assign({}, this.lifecycleArgs[1], { currentViewPort: viewPortName });\n var viewportInstruction = this.viewPortInstructions[viewPortName] = {\n name: viewPortName,\n strategy: strategy,\n moduleId: moduleId,\n component: component,\n childRouter: component.childRouter,\n lifecycleArgs: [].concat(this.lifecycleArgs[0], config, this.lifecycleArgs[2])\n };\n\n return viewportInstruction;\n };\n\n NavigationInstruction.prototype.getWildCardName = function getWildCardName() {\n var wildcardIndex = this.config.route.lastIndexOf('*');\n return this.config.route.substr(wildcardIndex + 1);\n };\n\n NavigationInstruction.prototype.getWildcardPath = function getWildcardPath() {\n var wildcardName = this.getWildCardName();\n var path = this.params[wildcardName] || '';\n\n if (this.queryString) {\n path += '?' + this.queryString;\n }\n\n return path;\n };\n\n NavigationInstruction.prototype.getBaseUrl = function getBaseUrl() {\n var _this = this;\n\n var fragment = this.fragment;\n\n if (fragment === '') {\n var nonEmptyRoute = this.router.routes.find(function (route) {\n return route.name === _this.config.name && route.route !== '';\n });\n if (nonEmptyRoute) {\n fragment = nonEmptyRoute.route;\n }\n }\n\n if (!this.params) {\n return fragment;\n }\n\n var wildcardName = this.getWildCardName();\n var path = this.params[wildcardName] || '';\n\n if (!path) {\n return fragment;\n }\n\n path = encodeURI(path);\n return fragment.substr(0, fragment.lastIndexOf(path));\n };\n\n NavigationInstruction.prototype._commitChanges = function _commitChanges(waitToSwap) {\n var _this2 = this;\n\n var router = this.router;\n router.currentInstruction = this;\n\n if (this.previousInstruction) {\n this.previousInstruction.config.navModel.isActive = false;\n }\n\n this.config.navModel.isActive = true;\n\n router._refreshBaseUrl();\n router.refreshNavigation();\n\n var loads = [];\n var delaySwaps = [];\n\n var _loop = function _loop(viewPortName) {\n var viewPortInstruction = _this2.viewPortInstructions[viewPortName];\n var viewPort = router.viewPorts[viewPortName];\n\n if (!viewPort) {\n throw new Error('There was no router-view found in the view for ' + viewPortInstruction.moduleId + '.');\n }\n\n if (viewPortInstruction.strategy === activationStrategy.replace) {\n if (waitToSwap) {\n delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction });\n }\n\n loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) {\n if (viewPortInstruction.childNavigationInstruction) {\n return viewPortInstruction.childNavigationInstruction._commitChanges();\n }\n\n return undefined;\n }));\n } else {\n if (viewPortInstruction.childNavigationInstruction) {\n loads.push(viewPortInstruction.childNavigationInstruction._commitChanges(waitToSwap));\n }\n }\n };\n\n for (var viewPortName in this.viewPortInstructions) {\n _loop(viewPortName);\n }\n\n return Promise.all(loads).then(function () {\n delaySwaps.forEach(function (x) {\n return x.viewPort.swap(x.viewPortInstruction);\n });\n return null;\n }).then(function () {\n return prune(_this2);\n });\n };\n\n NavigationInstruction.prototype._updateTitle = function _updateTitle() {\n var title = this._buildTitle();\n if (title) {\n this.router.history.setTitle(title);\n }\n };\n\n NavigationInstruction.prototype._buildTitle = function _buildTitle() {\n var separator = arguments.length <= 0 || arguments[0] === undefined ? ' | ' : arguments[0];\n\n var title = '';\n var childTitles = [];\n\n if (this.config.navModel.title) {\n title = this.router.transformTitle(this.config.navModel.title);\n }\n\n for (var viewPortName in this.viewPortInstructions) {\n var _viewPortInstruction = this.viewPortInstructions[viewPortName];\n\n if (_viewPortInstruction.childNavigationInstruction) {\n var childTitle = _viewPortInstruction.childNavigationInstruction._buildTitle(separator);\n if (childTitle) {\n childTitles.push(childTitle);\n }\n }\n }\n\n if (childTitles.length) {\n title = childTitles.join(separator) + (title ? separator : '') + title;\n }\n\n if (this.router.title) {\n title += (title ? separator : '') + this.router.transformTitle(this.router.title);\n }\n\n return title;\n };\n\n return NavigationInstruction;\n}();\n\nfunction prune(instruction) {\n instruction.previousInstruction = null;\n instruction.plan = null;\n}\n\nexport var NavModel = function () {\n function NavModel(router, relativeHref) {\n \n\n this.isActive = false;\n this.title = null;\n this.href = null;\n this.relativeHref = null;\n this.settings = {};\n this.config = null;\n\n this.router = router;\n this.relativeHref = relativeHref;\n }\n\n NavModel.prototype.setTitle = function setTitle(title) {\n this.title = title;\n\n if (this.isActive) {\n this.router.updateTitle();\n }\n };\n\n return NavModel;\n}();\n\nexport function isNavigationCommand(obj) {\n return obj && typeof obj.navigate === 'function';\n}\n\nexport var Redirect = function () {\n function Redirect(url) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n \n\n this.url = url;\n this.options = Object.assign({ trigger: true, replace: true }, options);\n this.shouldContinueProcessing = false;\n }\n\n Redirect.prototype.setRouter = function setRouter(router) {\n this.router = router;\n };\n\n Redirect.prototype.navigate = function navigate(appRouter) {\n var navigatingRouter = this.options.useAppRouter ? appRouter : this.router || appRouter;\n navigatingRouter.navigate(this.url, this.options);\n };\n\n return Redirect;\n}();\n\nexport var RedirectToRoute = function () {\n function RedirectToRoute(route) {\n var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n \n\n this.route = route;\n this.params = params;\n this.options = Object.assign({ trigger: true, replace: true }, options);\n this.shouldContinueProcessing = false;\n }\n\n RedirectToRoute.prototype.setRouter = function setRouter(router) {\n this.router = router;\n };\n\n RedirectToRoute.prototype.navigate = function navigate(appRouter) {\n var navigatingRouter = this.options.useAppRouter ? appRouter : this.router || appRouter;\n navigatingRouter.navigateToRoute(this.route, this.params, this.options);\n };\n\n return RedirectToRoute;\n}();\n\nexport var RouterConfiguration = function () {\n function RouterConfiguration() {\n \n\n this.instructions = [];\n this.options = {};\n this.pipelineSteps = [];\n }\n\n RouterConfiguration.prototype.addPipelineStep = function addPipelineStep(name, step) {\n this.pipelineSteps.push({ name: name, step: step });\n return this;\n };\n\n RouterConfiguration.prototype.addAuthorizeStep = function addAuthorizeStep(step) {\n return this.addPipelineStep('authorize', step);\n };\n\n RouterConfiguration.prototype.addPreActivateStep = function addPreActivateStep(step) {\n return this.addPipelineStep('preActivate', step);\n };\n\n RouterConfiguration.prototype.addPreRenderStep = function addPreRenderStep(step) {\n return this.addPipelineStep('preRender', step);\n };\n\n RouterConfiguration.prototype.addPostRenderStep = function addPostRenderStep(step) {\n return this.addPipelineStep('postRender', step);\n };\n\n RouterConfiguration.prototype.fallbackRoute = function fallbackRoute(fragment) {\n this._fallbackRoute = fragment;\n return this;\n };\n\n RouterConfiguration.prototype.map = function map(route) {\n if (Array.isArray(route)) {\n route.forEach(this.map.bind(this));\n return this;\n }\n\n return this.mapRoute(route);\n };\n\n RouterConfiguration.prototype.mapRoute = function mapRoute(config) {\n this.instructions.push(function (router) {\n var routeConfigs = [];\n\n if (Array.isArray(config.route)) {\n for (var i = 0, ii = config.route.length; i < ii; ++i) {\n var current = Object.assign({}, config);\n current.route = config.route[i];\n routeConfigs.push(current);\n }\n } else {\n routeConfigs.push(Object.assign({}, config));\n }\n\n var navModel = void 0;\n for (var _i = 0, _ii = routeConfigs.length; _i < _ii; ++_i) {\n var _routeConfig = routeConfigs[_i];\n _routeConfig.settings = _routeConfig.settings || {};\n if (!navModel) {\n navModel = router.createNavModel(_routeConfig);\n }\n\n router.addRoute(_routeConfig, navModel);\n }\n });\n\n return this;\n };\n\n RouterConfiguration.prototype.mapUnknownRoutes = function mapUnknownRoutes(config) {\n this.unknownRouteConfig = config;\n return this;\n };\n\n RouterConfiguration.prototype.exportToRouter = function exportToRouter(router) {\n var instructions = this.instructions;\n for (var i = 0, ii = instructions.length; i < ii; ++i) {\n instructions[i](router);\n }\n\n if (this.title) {\n router.title = this.title;\n }\n\n if (this.unknownRouteConfig) {\n router.handleUnknownRoutes(this.unknownRouteConfig);\n }\n\n if (this._fallbackRoute) {\n router.fallbackRoute = this._fallbackRoute;\n }\n\n router.options = this.options;\n\n var pipelineSteps = this.pipelineSteps;\n if (pipelineSteps.length) {\n if (!router.isRoot) {\n throw new Error('Pipeline steps can only be added to the root router');\n }\n\n var pipelineProvider = router.pipelineProvider;\n for (var _i2 = 0, _ii2 = pipelineSteps.length; _i2 < _ii2; ++_i2) {\n var _pipelineSteps$_i = pipelineSteps[_i2];\n var _name = _pipelineSteps$_i.name;\n var step = _pipelineSteps$_i.step;\n\n pipelineProvider.addStep(_name, step);\n }\n }\n };\n\n return RouterConfiguration;\n}();\n\nexport var activationStrategy = {\n noChange: 'no-change',\n invokeLifecycle: 'invoke-lifecycle',\n replace: 'replace'\n};\n\nexport var BuildNavigationPlanStep = function () {\n function BuildNavigationPlanStep() {\n \n }\n\n BuildNavigationPlanStep.prototype.run = function run(navigationInstruction, next) {\n return _buildNavigationPlan(navigationInstruction).then(function (plan) {\n navigationInstruction.plan = plan;\n return next();\n }).catch(next.cancel);\n };\n\n return BuildNavigationPlanStep;\n}();\n\nexport function _buildNavigationPlan(instruction, forceLifecycleMinimum) {\n var prev = instruction.previousInstruction;\n var config = instruction.config;\n var plan = {};\n\n if ('redirect' in config) {\n var redirectLocation = _resolveUrl(config.redirect, getInstructionBaseUrl(instruction));\n if (instruction.queryString) {\n redirectLocation += '?' + instruction.queryString;\n }\n\n return Promise.reject(new Redirect(redirectLocation));\n }\n\n if (prev) {\n var newParams = hasDifferentParameterValues(prev, instruction);\n var pending = [];\n\n var _loop2 = function _loop2(viewPortName) {\n var prevViewPortInstruction = prev.viewPortInstructions[viewPortName];\n var nextViewPortConfig = config.viewPorts[viewPortName];\n\n if (!nextViewPortConfig) throw new Error('Invalid Route Config: Configuration for viewPort \"' + viewPortName + '\" was not found for route: \"' + instruction.config.route + '.\"');\n\n var viewPortPlan = plan[viewPortName] = {\n name: viewPortName,\n config: nextViewPortConfig,\n prevComponent: prevViewPortInstruction.component,\n prevModuleId: prevViewPortInstruction.moduleId\n };\n\n if (prevViewPortInstruction.moduleId !== nextViewPortConfig.moduleId) {\n viewPortPlan.strategy = activationStrategy.replace;\n } else if ('determineActivationStrategy' in prevViewPortInstruction.component.viewModel) {\n var _prevViewPortInstruct;\n\n viewPortPlan.strategy = (_prevViewPortInstruct = prevViewPortInstruction.component.viewModel).determineActivationStrategy.apply(_prevViewPortInstruct, instruction.lifecycleArgs);\n } else if (config.activationStrategy) {\n viewPortPlan.strategy = config.activationStrategy;\n } else if (newParams || forceLifecycleMinimum) {\n viewPortPlan.strategy = activationStrategy.invokeLifecycle;\n } else {\n viewPortPlan.strategy = activationStrategy.noChange;\n }\n\n if (viewPortPlan.strategy !== activationStrategy.replace && prevViewPortInstruction.childRouter) {\n var path = instruction.getWildcardPath();\n var task = prevViewPortInstruction.childRouter._createNavigationInstruction(path, instruction).then(function (childInstruction) {\n viewPortPlan.childNavigationInstruction = childInstruction;\n\n return _buildNavigationPlan(childInstruction, viewPortPlan.strategy === activationStrategy.invokeLifecycle).then(function (childPlan) {\n childInstruction.plan = childPlan;\n });\n });\n\n pending.push(task);\n }\n };\n\n for (var viewPortName in prev.viewPortInstructions) {\n _loop2(viewPortName);\n }\n\n return Promise.all(pending).then(function () {\n return plan;\n });\n }\n\n for (var _viewPortName in config.viewPorts) {\n plan[_viewPortName] = {\n name: _viewPortName,\n strategy: activationStrategy.replace,\n config: instruction.config.viewPorts[_viewPortName]\n };\n }\n\n return Promise.resolve(plan);\n}\n\nfunction hasDifferentParameterValues(prev, next) {\n var prevParams = prev.params;\n var nextParams = next.params;\n var nextWildCardName = next.config.hasChildRouter ? next.getWildCardName() : null;\n\n for (var key in nextParams) {\n if (key === nextWildCardName) {\n continue;\n }\n\n if (prevParams[key] !== nextParams[key]) {\n return true;\n }\n }\n\n for (var _key in prevParams) {\n if (_key === nextWildCardName) {\n continue;\n }\n\n if (prevParams[_key] !== nextParams[_key]) {\n return true;\n }\n }\n\n if (!next.options.compareQueryParams) {\n return false;\n }\n\n var prevQueryParams = prev.queryParams;\n var nextQueryParams = next.queryParams;\n for (var _key2 in nextQueryParams) {\n if (prevQueryParams[_key2] !== nextQueryParams[_key2]) {\n return true;\n }\n }\n\n for (var _key3 in prevQueryParams) {\n if (prevQueryParams[_key3] !== nextQueryParams[_key3]) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getInstructionBaseUrl(instruction) {\n var instructionBaseUrlParts = [];\n instruction = instruction.parentInstruction;\n\n while (instruction) {\n instructionBaseUrlParts.unshift(instruction.getBaseUrl());\n instruction = instruction.parentInstruction;\n }\n\n instructionBaseUrlParts.unshift('/');\n return instructionBaseUrlParts.join('');\n}\n\nexport var Router = function () {\n function Router(container, history) {\n var _this3 = this;\n\n \n\n this.parent = null;\n this.options = {};\n\n this.transformTitle = function (title) {\n if (_this3.parent) {\n return _this3.parent.transformTitle(title);\n }\n return title;\n };\n\n this.container = container;\n this.history = history;\n this.reset();\n }\n\n Router.prototype.reset = function reset() {\n var _this4 = this;\n\n this.viewPorts = {};\n this.routes = [];\n this.baseUrl = '';\n this.isConfigured = false;\n this.isNavigating = false;\n this.isExplicitNavigation = false;\n this.isExplicitNavigationBack = false;\n this.navigation = [];\n this.currentInstruction = null;\n this._fallbackOrder = 100;\n this._recognizer = new RouteRecognizer();\n this._childRecognizer = new RouteRecognizer();\n this._configuredPromise = new Promise(function (resolve) {\n _this4._resolveConfiguredPromise = resolve;\n });\n };\n\n Router.prototype.registerViewPort = function registerViewPort(viewPort, name) {\n name = name || 'default';\n this.viewPorts[name] = viewPort;\n };\n\n Router.prototype.ensureConfigured = function ensureConfigured() {\n return this._configuredPromise;\n };\n\n Router.prototype.configure = function configure(callbackOrConfig) {\n var _this5 = this;\n\n this.isConfigured = true;\n\n var result = callbackOrConfig;\n var config = void 0;\n if (typeof callbackOrConfig === 'function') {\n config = new RouterConfiguration();\n result = callbackOrConfig(config);\n }\n\n return Promise.resolve(result).then(function (c) {\n if (c && c.exportToRouter) {\n config = c;\n }\n\n config.exportToRouter(_this5);\n _this5.isConfigured = true;\n _this5._resolveConfiguredPromise();\n });\n };\n\n Router.prototype.navigate = function navigate(fragment, options) {\n if (!this.isConfigured && this.parent) {\n return this.parent.navigate(fragment, options);\n }\n\n this.isExplicitNavigation = true;\n return this.history.navigate(_resolveUrl(fragment, this.baseUrl, this.history._hasPushState), options);\n };\n\n Router.prototype.navigateToRoute = function navigateToRoute(route, params, options) {\n var path = this.generate(route, params);\n return this.navigate(path, options);\n };\n\n Router.prototype.navigateBack = function navigateBack() {\n this.isExplicitNavigationBack = true;\n this.history.navigateBack();\n };\n\n Router.prototype.createChild = function createChild(container) {\n var childRouter = new Router(container || this.container.createChild(), this.history);\n childRouter.parent = this;\n return childRouter;\n };\n\n Router.prototype.generate = function generate(name, params) {\n var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n var hasRoute = this._recognizer.hasRoute(name);\n if ((!this.isConfigured || !hasRoute) && this.parent) {\n return this.parent.generate(name, params);\n }\n\n if (!hasRoute) {\n throw new Error('A route with name \\'' + name + '\\' could not be found. Check that `name: \\'' + name + '\\'` was specified in the route\\'s config.');\n }\n\n var path = this._recognizer.generate(name, params);\n var rootedPath = _createRootedPath(path, this.baseUrl, this.history._hasPushState, options.absolute);\n return options.absolute ? '' + this.history.getAbsoluteRoot() + rootedPath : rootedPath;\n };\n\n Router.prototype.createNavModel = function createNavModel(config) {\n var navModel = new NavModel(this, 'href' in config ? config.href : config.route);\n navModel.title = config.title;\n navModel.order = config.nav;\n navModel.href = config.href;\n navModel.settings = config.settings;\n navModel.config = config;\n\n return navModel;\n };\n\n Router.prototype.addRoute = function addRoute(config, navModel) {\n validateRouteConfig(config, this.routes);\n\n if (!('viewPorts' in config) && !config.navigationStrategy) {\n config.viewPorts = {\n 'default': {\n moduleId: config.moduleId,\n view: config.view\n }\n };\n }\n\n if (!navModel) {\n navModel = this.createNavModel(config);\n }\n\n this.routes.push(config);\n\n var path = config.route;\n if (path.charAt(0) === '/') {\n path = path.substr(1);\n }\n var caseSensitive = config.caseSensitive === true;\n var state = this._recognizer.add({ path: path, handler: config, caseSensitive: caseSensitive });\n\n if (path) {\n var _settings = config.settings;\n delete config.settings;\n var withChild = JSON.parse(JSON.stringify(config));\n config.settings = _settings;\n withChild.route = path + '/*childRoute';\n withChild.hasChildRouter = true;\n this._childRecognizer.add({\n path: withChild.route,\n handler: withChild,\n caseSensitive: caseSensitive\n });\n\n withChild.navModel = navModel;\n withChild.settings = config.settings;\n withChild.navigationStrategy = config.navigationStrategy;\n }\n\n config.navModel = navModel;\n\n if ((navModel.order || navModel.order === 0) && this.navigation.indexOf(navModel) === -1) {\n if (!navModel.href && navModel.href !== '' && (state.types.dynamics || state.types.stars)) {\n throw new Error('Invalid route config for \"' + config.route + '\" : dynamic routes must specify an \"href:\" to be included in the navigation model.');\n }\n\n if (typeof navModel.order !== 'number') {\n navModel.order = ++this._fallbackOrder;\n }\n\n this.navigation.push(navModel);\n this.navigation = this.navigation.sort(function (a, b) {\n return a.order - b.order;\n });\n }\n };\n\n Router.prototype.hasRoute = function hasRoute(name) {\n return !!(this._recognizer.hasRoute(name) || this.parent && this.parent.hasRoute(name));\n };\n\n Router.prototype.hasOwnRoute = function hasOwnRoute(name) {\n return this._recognizer.hasRoute(name);\n };\n\n Router.prototype.handleUnknownRoutes = function handleUnknownRoutes(config) {\n var _this6 = this;\n\n if (!config) {\n throw new Error('Invalid unknown route handler');\n }\n\n this.catchAllHandler = function (instruction) {\n return _this6._createRouteConfig(config, instruction).then(function (c) {\n instruction.config = c;\n return instruction;\n });\n };\n };\n\n Router.prototype.updateTitle = function updateTitle() {\n if (this.parent) {\n return this.parent.updateTitle();\n }\n\n if (this.currentInstruction) {\n this.currentInstruction._updateTitle();\n }\n return undefined;\n };\n\n Router.prototype.refreshNavigation = function refreshNavigation() {\n var nav = this.navigation;\n\n for (var i = 0, length = nav.length; i < length; i++) {\n var current = nav[i];\n if (!current.config.href) {\n current.href = _createRootedPath(current.relativeHref, this.baseUrl, this.history._hasPushState);\n } else {\n current.href = _normalizeAbsolutePath(current.config.href, this.history._hasPushState);\n }\n }\n };\n\n Router.prototype._refreshBaseUrl = function _refreshBaseUrl() {\n if (this.parent) {\n var baseUrl = this.parent.currentInstruction.getBaseUrl();\n this.baseUrl = this.parent.baseUrl + baseUrl;\n }\n };\n\n Router.prototype._createNavigationInstruction = function _createNavigationInstruction() {\n var url = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\n var parentInstruction = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n var fragment = url;\n var queryString = '';\n\n var queryIndex = url.indexOf('?');\n if (queryIndex !== -1) {\n fragment = url.substr(0, queryIndex);\n queryString = url.substr(queryIndex + 1);\n }\n\n var results = this._recognizer.recognize(url);\n if (!results || !results.length) {\n results = this._childRecognizer.recognize(url);\n }\n\n var instructionInit = {\n fragment: fragment,\n queryString: queryString,\n config: null,\n parentInstruction: parentInstruction,\n previousInstruction: this.currentInstruction,\n router: this,\n options: {\n compareQueryParams: this.options.compareQueryParams\n }\n };\n\n if (results && results.length) {\n var first = results[0];\n var _instruction = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: first.params,\n queryParams: first.queryParams || results.queryParams,\n config: first.config || first.handler\n }));\n\n if (typeof first.handler === 'function') {\n return evaluateNavigationStrategy(_instruction, first.handler, first);\n } else if (first.handler && typeof first.handler.navigationStrategy === 'function') {\n return evaluateNavigationStrategy(_instruction, first.handler.navigationStrategy, first.handler);\n }\n\n return Promise.resolve(_instruction);\n } else if (this.catchAllHandler) {\n var _instruction2 = new NavigationInstruction(Object.assign({}, instructionInit, {\n params: { path: fragment },\n queryParams: results && results.queryParams,\n config: null }));\n\n return evaluateNavigationStrategy(_instruction2, this.catchAllHandler);\n }\n\n return Promise.reject(new Error('Route not found: ' + url));\n };\n\n Router.prototype._createRouteConfig = function _createRouteConfig(config, instruction) {\n var _this7 = this;\n\n return Promise.resolve(config).then(function (c) {\n if (typeof c === 'string') {\n return { moduleId: c };\n } else if (typeof c === 'function') {\n return c(instruction);\n }\n\n return c;\n }).then(function (c) {\n return typeof c === 'string' ? { moduleId: c } : c;\n }).then(function (c) {\n c.route = instruction.params.path;\n validateRouteConfig(c, _this7.routes);\n\n if (!c.navModel) {\n c.navModel = _this7.createNavModel(c);\n }\n\n return c;\n });\n };\n\n _createClass(Router, [{\n key: 'isRoot',\n get: function get() {\n return !this.parent;\n }\n }]);\n\n return Router;\n}();\n\nfunction validateRouteConfig(config, routes) {\n if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) !== 'object') {\n throw new Error('Invalid Route Config');\n }\n\n if (typeof config.route !== 'string') {\n var _name2 = config.name || '(no name)';\n throw new Error('Invalid Route Config for \"' + _name2 + '\": You must specify a \"route:\" pattern.');\n }\n\n if (!('redirect' in config || config.moduleId || config.navigationStrategy || config.viewPorts)) {\n throw new Error('Invalid Route Config for \"' + config.route + '\": You must specify a \"moduleId:\", \"redirect:\", \"navigationStrategy:\", or \"viewPorts:\".');\n }\n}\n\nfunction evaluateNavigationStrategy(instruction, evaluator, context) {\n return Promise.resolve(evaluator.call(context, instruction)).then(function () {\n if (!('viewPorts' in instruction.config)) {\n instruction.config.viewPorts = {\n 'default': {\n moduleId: instruction.config.moduleId\n }\n };\n }\n\n return instruction;\n });\n}\n\nexport var CanDeactivatePreviousStep = function () {\n function CanDeactivatePreviousStep() {\n \n }\n\n CanDeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) {\n return processDeactivatable(navigationInstruction.plan, 'canDeactivate', next);\n };\n\n return CanDeactivatePreviousStep;\n}();\n\nexport var CanActivateNextStep = function () {\n function CanActivateNextStep() {\n \n }\n\n CanActivateNextStep.prototype.run = function run(navigationInstruction, next) {\n return processActivatable(navigationInstruction, 'canActivate', next);\n };\n\n return CanActivateNextStep;\n}();\n\nexport var DeactivatePreviousStep = function () {\n function DeactivatePreviousStep() {\n \n }\n\n DeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) {\n return processDeactivatable(navigationInstruction.plan, 'deactivate', next, true);\n };\n\n return DeactivatePreviousStep;\n}();\n\nexport var ActivateNextStep = function () {\n function ActivateNextStep() {\n \n }\n\n ActivateNextStep.prototype.run = function run(navigationInstruction, next) {\n return processActivatable(navigationInstruction, 'activate', next, true);\n };\n\n return ActivateNextStep;\n}();\n\nfunction processDeactivatable(plan, callbackName, next, ignoreResult) {\n var infos = findDeactivatable(plan, callbackName);\n var i = infos.length;\n\n function inspect(val) {\n if (ignoreResult || shouldContinue(val)) {\n return iterate();\n }\n\n return next.cancel(val);\n }\n\n function iterate() {\n if (i--) {\n try {\n var viewModel = infos[i];\n var _result = viewModel[callbackName]();\n return processPotential(_result, inspect, next.cancel);\n } catch (error) {\n return next.cancel(error);\n }\n }\n\n return next();\n }\n\n return iterate();\n}\n\nfunction findDeactivatable(plan, callbackName) {\n var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2];\n\n for (var viewPortName in plan) {\n var _viewPortPlan = plan[viewPortName];\n var prevComponent = _viewPortPlan.prevComponent;\n\n if ((_viewPortPlan.strategy === activationStrategy.invokeLifecycle || _viewPortPlan.strategy === activationStrategy.replace) && prevComponent) {\n var viewModel = prevComponent.viewModel;\n\n if (callbackName in viewModel) {\n list.push(viewModel);\n }\n }\n\n if (_viewPortPlan.childNavigationInstruction) {\n findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list);\n } else if (prevComponent) {\n addPreviousDeactivatable(prevComponent, callbackName, list);\n }\n }\n\n return list;\n}\n\nfunction addPreviousDeactivatable(component, callbackName, list) {\n var childRouter = component.childRouter;\n\n if (childRouter && childRouter.currentInstruction) {\n var viewPortInstructions = childRouter.currentInstruction.viewPortInstructions;\n\n for (var viewPortName in viewPortInstructions) {\n var _viewPortInstruction2 = viewPortInstructions[viewPortName];\n var prevComponent = _viewPortInstruction2.component;\n var prevViewModel = prevComponent.viewModel;\n\n if (callbackName in prevViewModel) {\n list.push(prevViewModel);\n }\n\n addPreviousDeactivatable(prevComponent, callbackName, list);\n }\n }\n}\n\nfunction processActivatable(navigationInstruction, callbackName, next, ignoreResult) {\n var infos = findActivatable(navigationInstruction, callbackName);\n var length = infos.length;\n var i = -1;\n\n function inspect(val, router) {\n if (ignoreResult || shouldContinue(val, router)) {\n return iterate();\n }\n\n return next.cancel(val);\n }\n\n function iterate() {\n i++;\n\n if (i < length) {\n try {\n var _ret3 = function () {\n var _current$viewModel;\n\n var current = infos[i];\n var result = (_current$viewModel = current.viewModel)[callbackName].apply(_current$viewModel, current.lifecycleArgs);\n return {\n v: processPotential(result, function (val) {\n return inspect(val, current.router);\n }, next.cancel)\n };\n }();\n\n if ((typeof _ret3 === 'undefined' ? 'undefined' : _typeof(_ret3)) === \"object\") return _ret3.v;\n } catch (error) {\n return next.cancel(error);\n }\n }\n\n return next();\n }\n\n return iterate();\n}\n\nfunction findActivatable(navigationInstruction, callbackName) {\n var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2];\n var router = arguments[3];\n\n var plan = navigationInstruction.plan;\n\n Object.keys(plan).filter(function (viewPortName) {\n var viewPortPlan = plan[viewPortName];\n var viewPortInstruction = navigationInstruction.viewPortInstructions[viewPortName];\n var viewModel = viewPortInstruction.component.viewModel;\n\n if ((viewPortPlan.strategy === activationStrategy.invokeLifecycle || viewPortPlan.strategy === activationStrategy.replace) && callbackName in viewModel) {\n list.push({\n viewModel: viewModel,\n lifecycleArgs: viewPortInstruction.lifecycleArgs,\n router: router\n });\n }\n\n if (viewPortPlan.childNavigationInstruction) {\n findActivatable(viewPortPlan.childNavigationInstruction, callbackName, list, viewPortInstruction.component.childRouter || router);\n }\n });\n\n return list;\n}\n\nfunction shouldContinue(output, router) {\n if (output instanceof Error) {\n return false;\n }\n\n if (isNavigationCommand(output)) {\n if (typeof output.setRouter === 'function') {\n output.setRouter(router);\n }\n\n return !!output.shouldContinueProcessing;\n }\n\n if (output === undefined) {\n return true;\n }\n\n return output;\n}\n\nvar SafeSubscription = function () {\n function SafeSubscription(subscriptionFunc) {\n \n\n this._subscribed = true;\n this._subscription = subscriptionFunc(this);\n\n if (!this._subscribed) this.unsubscribe();\n }\n\n SafeSubscription.prototype.unsubscribe = function unsubscribe() {\n if (this._subscribed && this._subscription) this._subscription.unsubscribe();\n\n this._subscribed = false;\n };\n\n _createClass(SafeSubscription, [{\n key: 'subscribed',\n get: function get() {\n return this._subscribed;\n }\n }]);\n\n return SafeSubscription;\n}();\n\nfunction processPotential(obj, resolve, reject) {\n if (obj && typeof obj.then === 'function') {\n return Promise.resolve(obj).then(resolve).catch(reject);\n }\n\n if (obj && typeof obj.subscribe === 'function') {\n var _ret4 = function () {\n var obs = obj;\n return {\n v: new SafeSubscription(function (sub) {\n return obs.subscribe({\n next: function next() {\n if (sub.subscribed) {\n sub.unsubscribe();\n resolve(obj);\n }\n },\n error: function error(_error) {\n if (sub.subscribed) {\n sub.unsubscribe();\n reject(_error);\n }\n },\n complete: function complete() {\n if (sub.subscribed) {\n sub.unsubscribe();\n resolve(obj);\n }\n }\n });\n })\n };\n }();\n\n if ((typeof _ret4 === 'undefined' ? 'undefined' : _typeof(_ret4)) === \"object\") return _ret4.v;\n }\n\n try {\n return resolve(obj);\n } catch (error) {\n return reject(error);\n }\n}\n\nexport var RouteLoader = function () {\n function RouteLoader() {\n \n }\n\n RouteLoader.prototype.loadRoute = function loadRoute(router, config, navigationInstruction) {\n throw Error('Route loaders must implement \"loadRoute(router, config, navigationInstruction)\".');\n };\n\n return RouteLoader;\n}();\n\nexport var LoadRouteStep = function () {\n LoadRouteStep.inject = function inject() {\n return [RouteLoader];\n };\n\n function LoadRouteStep(routeLoader) {\n \n\n this.routeLoader = routeLoader;\n }\n\n LoadRouteStep.prototype.run = function run(navigationInstruction, next) {\n return loadNewRoute(this.routeLoader, navigationInstruction).then(next).catch(next.cancel);\n };\n\n return LoadRouteStep;\n}();\n\nfunction loadNewRoute(routeLoader, navigationInstruction) {\n var toLoad = determineWhatToLoad(navigationInstruction);\n var loadPromises = toLoad.map(function (current) {\n return loadRoute(routeLoader, current.navigationInstruction, current.viewPortPlan);\n });\n\n return Promise.all(loadPromises);\n}\n\nfunction determineWhatToLoad(navigationInstruction) {\n var toLoad = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];\n\n var plan = navigationInstruction.plan;\n\n for (var viewPortName in plan) {\n var _viewPortPlan2 = plan[viewPortName];\n\n if (_viewPortPlan2.strategy === activationStrategy.replace) {\n toLoad.push({ viewPortPlan: _viewPortPlan2, navigationInstruction: navigationInstruction });\n\n if (_viewPortPlan2.childNavigationInstruction) {\n determineWhatToLoad(_viewPortPlan2.childNavigationInstruction, toLoad);\n }\n } else {\n var _viewPortInstruction3 = navigationInstruction.addViewPortInstruction(viewPortName, _viewPortPlan2.strategy, _viewPortPlan2.prevModuleId, _viewPortPlan2.prevComponent);\n\n if (_viewPortPlan2.childNavigationInstruction) {\n _viewPortInstruction3.childNavigationInstruction = _viewPortPlan2.childNavigationInstruction;\n determineWhatToLoad(_viewPortPlan2.childNavigationInstruction, toLoad);\n }\n }\n }\n\n return toLoad;\n}\n\nfunction loadRoute(routeLoader, navigationInstruction, viewPortPlan) {\n var moduleId = viewPortPlan.config.moduleId;\n\n return loadComponent(routeLoader, navigationInstruction, viewPortPlan.config).then(function (component) {\n var viewPortInstruction = navigationInstruction.addViewPortInstruction(viewPortPlan.name, viewPortPlan.strategy, moduleId, component);\n\n var childRouter = component.childRouter;\n if (childRouter) {\n var path = navigationInstruction.getWildcardPath();\n\n return childRouter._createNavigationInstruction(path, navigationInstruction).then(function (childInstruction) {\n viewPortPlan.childNavigationInstruction = childInstruction;\n\n return _buildNavigationPlan(childInstruction).then(function (childPlan) {\n childInstruction.plan = childPlan;\n viewPortInstruction.childNavigationInstruction = childInstruction;\n\n return loadNewRoute(routeLoader, childInstruction);\n });\n });\n }\n\n return undefined;\n });\n}\n\nfunction loadComponent(routeLoader, navigationInstruction, config) {\n var router = navigationInstruction.router;\n var lifecycleArgs = navigationInstruction.lifecycleArgs;\n\n return routeLoader.loadRoute(router, config, navigationInstruction).then(function (component) {\n var viewModel = component.viewModel;\n var childContainer = component.childContainer;\n\n component.router = router;\n component.config = config;\n\n if ('configureRouter' in viewModel) {\n var _ret5 = function () {\n var childRouter = childContainer.getChildRouter();\n component.childRouter = childRouter;\n\n return {\n v: childRouter.configure(function (c) {\n return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs));\n }).then(function () {\n return component;\n })\n };\n }();\n\n if ((typeof _ret5 === 'undefined' ? 'undefined' : _typeof(_ret5)) === \"object\") return _ret5.v;\n }\n\n return component;\n });\n}\n\nvar PipelineSlot = function () {\n function PipelineSlot(container, name, alias) {\n \n\n this.steps = [];\n\n this.container = container;\n this.slotName = name;\n this.slotAlias = alias;\n }\n\n PipelineSlot.prototype.getSteps = function getSteps() {\n var _this8 = this;\n\n return this.steps.map(function (x) {\n return _this8.container.get(x);\n });\n };\n\n return PipelineSlot;\n}();\n\nexport var PipelineProvider = function () {\n PipelineProvider.inject = function inject() {\n return [Container];\n };\n\n function PipelineProvider(container) {\n \n\n this.container = container;\n this.steps = [BuildNavigationPlanStep, CanDeactivatePreviousStep, LoadRouteStep, this._createPipelineSlot('authorize'), CanActivateNextStep, this._createPipelineSlot('preActivate', 'modelbind'), DeactivatePreviousStep, ActivateNextStep, this._createPipelineSlot('preRender', 'precommit'), CommitChangesStep, this._createPipelineSlot('postRender', 'postcomplete')];\n }\n\n PipelineProvider.prototype.createPipeline = function createPipeline() {\n var _this9 = this;\n\n var pipeline = new Pipeline();\n this.steps.forEach(function (step) {\n return pipeline.addStep(_this9.container.get(step));\n });\n return pipeline;\n };\n\n PipelineProvider.prototype._findStep = function _findStep(name) {\n return this.steps.find(function (x) {\n return x.slotName === name || x.slotAlias === name;\n });\n };\n\n PipelineProvider.prototype.addStep = function addStep(name, step) {\n var found = this._findStep(name);\n if (found) {\n if (!found.steps.includes(step)) {\n found.steps.push(step);\n }\n } else {\n throw new Error('Invalid pipeline slot name: ' + name + '.');\n }\n };\n\n PipelineProvider.prototype.removeStep = function removeStep(name, step) {\n var slot = this._findStep(name);\n if (slot) {\n slot.steps.splice(slot.steps.indexOf(step), 1);\n }\n };\n\n PipelineProvider.prototype._clearSteps = function _clearSteps() {\n var name = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\n\n var slot = this._findStep(name);\n if (slot) {\n slot.steps = [];\n }\n };\n\n PipelineProvider.prototype.reset = function reset() {\n this._clearSteps('authorize');\n this._clearSteps('preActivate');\n this._clearSteps('preRender');\n this._clearSteps('postRender');\n };\n\n PipelineProvider.prototype._createPipelineSlot = function _createPipelineSlot(name, alias) {\n return new PipelineSlot(this.container, name, alias);\n };\n\n return PipelineProvider;\n}();\n\nvar logger = LogManager.getLogger('app-router');\n\nexport var AppRouter = function (_Router) {\n _inherits(AppRouter, _Router);\n\n AppRouter.inject = function inject() {\n return [Container, History, PipelineProvider, EventAggregator];\n };\n\n function AppRouter(container, history, pipelineProvider, events) {\n \n\n var _this10 = _possibleConstructorReturn(this, _Router.call(this, container, history));\n\n _this10.pipelineProvider = pipelineProvider;\n _this10.events = events;\n return _this10;\n }\n\n AppRouter.prototype.reset = function reset() {\n _Router.prototype.reset.call(this);\n this.maxInstructionCount = 10;\n if (!this._queue) {\n this._queue = [];\n } else {\n this._queue.length = 0;\n }\n };\n\n AppRouter.prototype.loadUrl = function loadUrl(url) {\n var _this11 = this;\n\n return this._createNavigationInstruction(url).then(function (instruction) {\n return _this11._queueInstruction(instruction);\n }).catch(function (error) {\n logger.error(error);\n restorePreviousLocation(_this11);\n });\n };\n\n AppRouter.prototype.registerViewPort = function registerViewPort(viewPort, name) {\n var _this12 = this;\n\n _Router.prototype.registerViewPort.call(this, viewPort, name);\n\n if (!this.isActive) {\n var _ret6 = function () {\n var viewModel = _this12._findViewModel(viewPort);\n if ('configureRouter' in viewModel) {\n if (!_this12.isConfigured) {\n var _ret7 = function () {\n var resolveConfiguredPromise = _this12._resolveConfiguredPromise;\n _this12._resolveConfiguredPromise = function () {};\n return {\n v: {\n v: _this12.configure(function (config) {\n return viewModel.configureRouter(config, _this12);\n }).then(function () {\n _this12.activate();\n resolveConfiguredPromise();\n })\n }\n };\n }();\n\n if ((typeof _ret7 === 'undefined' ? 'undefined' : _typeof(_ret7)) === \"object\") return _ret7.v;\n }\n } else {\n _this12.activate();\n }\n }();\n\n if ((typeof _ret6 === 'undefined' ? 'undefined' : _typeof(_ret6)) === \"object\") return _ret6.v;\n } else {\n this._dequeueInstruction();\n }\n\n return Promise.resolve();\n };\n\n AppRouter.prototype.activate = function activate(options) {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n this.options = Object.assign({ routeHandler: this.loadUrl.bind(this) }, this.options, options);\n this.history.activate(this.options);\n this._dequeueInstruction();\n };\n\n AppRouter.prototype.deactivate = function deactivate() {\n this.isActive = false;\n this.history.deactivate();\n };\n\n AppRouter.prototype._queueInstruction = function _queueInstruction(instruction) {\n var _this13 = this;\n\n return new Promise(function (resolve) {\n instruction.resolve = resolve;\n _this13._queue.unshift(instruction);\n _this13._dequeueInstruction();\n });\n };\n\n AppRouter.prototype._dequeueInstruction = function _dequeueInstruction() {\n var _this14 = this;\n\n var instructionCount = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\n\n return Promise.resolve().then(function () {\n if (_this14.isNavigating && !instructionCount) {\n return undefined;\n }\n\n var instruction = _this14._queue.shift();\n _this14._queue.length = 0;\n\n if (!instruction) {\n return undefined;\n }\n\n _this14.isNavigating = true;\n instruction.previousInstruction = _this14.currentInstruction;\n\n if (!instructionCount) {\n _this14.events.publish('router:navigation:processing', { instruction: instruction });\n } else if (instructionCount === _this14.maxInstructionCount - 1) {\n logger.error(instructionCount + 1 + ' navigation instructions have been attempted without success. Restoring last known good location.');\n restorePreviousLocation(_this14);\n return _this14._dequeueInstruction(instructionCount + 1);\n } else if (instructionCount > _this14.maxInstructionCount) {\n throw new Error('Maximum navigation attempts exceeded. Giving up.');\n }\n\n var pipeline = _this14.pipelineProvider.createPipeline();\n\n return pipeline.run(instruction).then(function (result) {\n return processResult(instruction, result, instructionCount, _this14);\n }).catch(function (error) {\n return { output: error instanceof Error ? error : new Error(error) };\n }).then(function (result) {\n return resolveInstruction(instruction, result, !!instructionCount, _this14);\n });\n });\n };\n\n AppRouter.prototype._findViewModel = function _findViewModel(viewPort) {\n if (this.container.viewModel) {\n return this.container.viewModel;\n }\n\n if (viewPort.container) {\n var container = viewPort.container;\n\n while (container) {\n if (container.viewModel) {\n this.container.viewModel = container.viewModel;\n return container.viewModel;\n }\n\n container = container.parent;\n }\n }\n\n return undefined;\n };\n\n return AppRouter;\n}(Router);\n\nfunction processResult(instruction, result, instructionCount, router) {\n if (!(result && 'completed' in result && 'output' in result)) {\n result = result || {};\n result.output = new Error('Expected router pipeline to return a navigation result, but got [' + JSON.stringify(result) + '] instead.');\n }\n\n var finalResult = null;\n if (isNavigationCommand(result.output)) {\n result.output.navigate(router);\n } else {\n finalResult = result;\n\n if (!result.completed) {\n if (result.output instanceof Error) {\n logger.error(result.output);\n }\n\n restorePreviousLocation(router);\n }\n }\n\n return router._dequeueInstruction(instructionCount + 1).then(function (innerResult) {\n return finalResult || innerResult || result;\n });\n}\n\nfunction resolveInstruction(instruction, result, isInnerInstruction, router) {\n instruction.resolve(result);\n\n var eventArgs = { instruction: instruction, result: result };\n if (!isInnerInstruction) {\n router.isNavigating = false;\n router.isExplicitNavigation = false;\n router.isExplicitNavigationBack = false;\n\n var eventName = void 0;\n\n if (result.output instanceof Error) {\n eventName = 'error';\n } else if (!result.completed) {\n eventName = 'canceled';\n } else {\n var _queryString = instruction.queryString ? '?' + instruction.queryString : '';\n router.history.previousLocation = instruction.fragment + _queryString;\n eventName = 'success';\n }\n\n router.events.publish('router:navigation:' + eventName, eventArgs);\n router.events.publish('router:navigation:complete', eventArgs);\n } else {\n router.events.publish('router:navigation:child:complete', eventArgs);\n }\n\n return result;\n}\n\nfunction restorePreviousLocation(router) {\n var previousLocation = router.history.previousLocation;\n if (previousLocation) {\n router.navigate(router.history.previousLocation, { trigger: false, replace: true });\n } else if (router.fallbackRoute) {\n router.navigate(router.fallbackRoute, { trigger: true, replace: true });\n } else {\n logger.error('Router navigation failed, and no previous location or fallbackRoute could be restored.');\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-router/dist/native-modules/aurelia-router.js\n// module id = 8\n// module chunks = 0","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/setimmediate/setImmediate.js\n// module id = 80\n// module chunks = 0","'use strict';\nvar ansiRegex = require('ansi-regex')();\n\nmodule.exports = function (str) {\n\treturn typeof str === 'string' ? str.replace(ansiRegex, '') : str;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/strip-ansi/index.js\n// module id = 81\n// module chunks = 0","var apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/timers-browserify/main.js\n// module id = 82\n// module chunks = 0","var config = {\r\n baseUrl: '/api',\r\n loginUrl: '/auth/login',\r\n logoutRedirect: false\r\n};\r\n\r\nexport default config;\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/auth-config.ts","module.exports = \"data:image/jpeg;base64,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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/login/img/logo.jpg\n// module id = 84\n// module chunks = 0","module.exports = __webpack_public_path__ + \"fffa9cda351ba7a5cd50a5254b814b42.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/navmenu/img/navbar.jpg\n// module id = 85\n// module chunks = 0","module.exports = __webpack_public_path__ + \"5cf1f70c17a177933487ce85a0981b49.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/schedule/img/hoofdgerecht-gray.png\n// module id = 86\n// module chunks = 0","module.exports = __webpack_public_path__ + \"c14678c78f18cb103a736b54c9013466.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/schedule/img/nagerecht-gray.png\n// module id = 87\n// module chunks = 0","module.exports = __webpack_public_path__ + \"6b39d10b3eb262eb57ddb63e4f148015.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/schedule/img/voorgerecht-gray.png\n// module id = 88\n// module chunks = 0","module.exports = \"data:image/svg+xml;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICI4OTg4OTY4ODE0N2JkNzU3NWQ2MzI3MTYwZDY0ZTc2MC5zdmciOw==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/dist/fonts/glyphicons-halflings-regular.svg\n// module id = 89\n// module chunks = 0","\n\nexport var logLevel = {\n none: 0,\n error: 1,\n warn: 2,\n info: 3,\n debug: 4\n};\n\nvar loggers = {};\nvar appenders = [];\nvar globalDefaultLevel = logLevel.none;\n\nfunction appendArgs() {\n return [this].concat(Array.prototype.slice.call(arguments));\n}\n\nfunction logFactory(level) {\n var threshold = logLevel[level];\n return function () {\n if (this.level < threshold) {\n return;\n }\n\n var args = appendArgs.apply(this, arguments);\n var i = appenders.length;\n while (i--) {\n var _appenders$i;\n\n (_appenders$i = appenders[i])[level].apply(_appenders$i, args);\n }\n };\n}\n\nfunction connectLoggers() {\n var proto = Logger.prototype;\n proto.debug = logFactory('debug');\n proto.info = logFactory('info');\n proto.warn = logFactory('warn');\n proto.error = logFactory('error');\n}\n\nexport function getLogger(id) {\n return loggers[id] || new Logger(id);\n}\n\nexport function addAppender(appender) {\n if (appenders.push(appender) === 1) {\n connectLoggers();\n }\n}\n\nexport function removeAppender(appender) {\n appenders = appenders.filter(function (a) {\n return a !== appender;\n });\n}\n\nexport function setLevel(level) {\n globalDefaultLevel = level;\n for (var key in loggers) {\n loggers[key].setLevel(level);\n }\n}\n\nexport function getLevel() {\n return globalDefaultLevel;\n}\n\nexport var Logger = function () {\n function Logger(id) {\n \n\n var cached = loggers[id];\n if (cached) {\n return cached;\n }\n\n loggers[id] = this;\n this.id = id;\n this.level = globalDefaultLevel;\n }\n\n Logger.prototype.debug = function debug(message) {};\n\n Logger.prototype.info = function info(message) {};\n\n Logger.prototype.warn = function warn(message) {};\n\n Logger.prototype.error = function error(message) {};\n\n Logger.prototype.setLevel = function setLevel(level) {\n this.level = level;\n };\n\n return Logger;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-logging/dist/native-modules/aurelia-logging.js\n// module id = 9\n// module chunks = 0","/*eslint-env browser*/\n\nvar clientOverlay = document.createElement('div');\nclientOverlay.id = 'webpack-hot-middleware-clientOverlay';\nvar styles = {\n background: 'rgba(0,0,0,0.85)',\n color: '#E8E8E8',\n lineHeight: '1.2',\n whiteSpace: 'pre',\n fontFamily: 'Menlo, Consolas, monospace',\n fontSize: '13px',\n position: 'fixed',\n zIndex: 9999,\n padding: '10px',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n overflow: 'auto',\n dir: 'ltr',\n textAlign: 'left'\n};\nfor (var key in styles) {\n clientOverlay.style[key] = styles[key];\n}\n\nvar ansiHTML = require('ansi-html');\nvar colors = {\n reset: ['transparent', 'transparent'],\n black: '181818',\n red: 'E36049',\n green: 'B3CB74',\n yellow: 'FFD080',\n blue: '7CAFC2',\n magenta: '7FACCA',\n cyan: 'C3C2EF',\n lightgrey: 'EBE7E3',\n darkgrey: '6D7891'\n};\nansiHTML.setColors(colors);\n\nvar Entities = require('html-entities').AllHtmlEntities;\nvar entities = new Entities();\n\nexports.showProblems =\nfunction showProblems(type, lines) {\n clientOverlay.innerHTML = '';\n lines.forEach(function(msg) {\n msg = ansiHTML(entities.encode(msg));\n var div = document.createElement('div');\n div.style.marginBottom = '26px';\n div.innerHTML = problemType(type) + ' in ' + msg;\n clientOverlay.appendChild(div);\n });\n if (document.body) {\n document.body.appendChild(clientOverlay);\n }\n};\n\nexports.clear =\nfunction clear() {\n if (document.body && clientOverlay.parentNode) {\n document.body.removeChild(clientOverlay);\n }\n};\n\nvar problemColors = {\n errors: colors.red,\n warnings: colors.yellow\n};\n\nfunction problemType (type) {\n var color = problemColors[type] || colors.red;\n return (\n '<span style=\"background-color:#' + color + '; color:#fff; padding:2px 4px; border-radius: 2px\">' +\n type.slice(0, -1).toUpperCase() +\n '</span>'\n );\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)-hot-middleware/client-overlay.js\n// module id = 90\n// module chunks = 0","/**\n * Based heavily on https://github.com/webpack/webpack/blob/\n * c0afdf9c6abc1dd70707c594e473802a566f7b6e/hot/only-dev-server.js\n * Original copyright Tobias Koppers @sokra (MIT license)\n */\n\n/* global window __webpack_hash__ */\n\nif (!module.hot) {\n throw new Error(\"[HMR] Hot Module Replacement is disabled.\");\n}\n\nvar hmrDocsUrl = \"http://webpack.github.io/docs/hot-module-replacement-with-webpack.html\"; // eslint-disable-line max-len\n\nvar lastHash;\nvar failureStatuses = { abort: 1, fail: 1 };\nvar applyOptions = { ignoreUnaccepted: true };\n\nfunction upToDate(hash) {\n if (hash) lastHash = hash;\n return lastHash == __webpack_hash__;\n}\n\nmodule.exports = function(hash, moduleMap, options) {\n var reload = options.reload;\n if (!upToDate(hash) && module.hot.status() == \"idle\") {\n if (options.log) console.log(\"[HMR] Checking for updates on the server...\");\n check();\n }\n\n function check() {\n var cb = function(err, updatedModules) {\n if (err) return handleError(err);\n\n if(!updatedModules) {\n if (options.warn) {\n console.warn(\"[HMR] Cannot find update (Full reload needed)\");\n console.warn(\"[HMR] (Probably because of restarting the server)\");\n }\n performReload();\n return null;\n }\n\n var applyCallback = function(applyErr, renewedModules) {\n if (applyErr) return handleError(applyErr);\n\n if (!upToDate()) check();\n\n logUpdates(updatedModules, renewedModules);\n };\n\n var applyResult = module.hot.apply(applyOptions, applyCallback);\n // webpack 2 promise\n if (applyResult && applyResult.then) {\n // HotModuleReplacement.runtime.js refers to the result as `outdatedModules`\n applyResult.then(function(outdatedModules) {\n applyCallback(null, outdatedModules);\n });\n applyResult.catch(applyCallback);\n }\n\n };\n\n var result = module.hot.check(false, cb);\n // webpack 2 promise\n if (result && result.then) {\n result.then(function(updatedModules) {\n cb(null, updatedModules);\n });\n result.catch(cb);\n }\n }\n\n function logUpdates(updatedModules, renewedModules) {\n var unacceptedModules = updatedModules.filter(function(moduleId) {\n return renewedModules && renewedModules.indexOf(moduleId) < 0;\n });\n\n if(unacceptedModules.length > 0) {\n if (options.warn) {\n console.warn(\n \"[HMR] The following modules couldn't be hot updated: \" +\n \"(Full reload needed)\\n\" +\n \"This is usually because the modules which have changed \" +\n \"(and their parents) do not know how to hot reload themselves. \" +\n \"See \" + hmrDocsUrl + \" for more details.\"\n );\n unacceptedModules.forEach(function(moduleId) {\n console.warn(\"[HMR] - \" + moduleMap[moduleId]);\n });\n }\n performReload();\n return;\n }\n\n if (options.log) {\n if(!renewedModules || renewedModules.length === 0) {\n console.log(\"[HMR] Nothing hot updated.\");\n } else {\n console.log(\"[HMR] Updated modules:\");\n renewedModules.forEach(function(moduleId) {\n console.log(\"[HMR] - \" + moduleMap[moduleId]);\n });\n }\n\n if (upToDate()) {\n console.log(\"[HMR] App is up to date.\");\n }\n }\n }\n\n function handleError(err) {\n if (module.hot.status() in failureStatuses) {\n if (options.warn) {\n console.warn(\"[HMR] Cannot check for update (Full reload needed)\");\n console.warn(\"[HMR] \" + err.stack || err.message);\n }\n performReload();\n return;\n }\n if (options.warn) {\n console.warn(\"[HMR] Update check failed: \" + err.stack || err.message);\n }\n }\n\n function performReload() {\n if (reload) {\n if (options.warn) console.warn(\"[HMR] Reloading page\");\n window.location.reload();\n }\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)-hot-middleware/process-update.js\n// module id = 91\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 92\n// module chunks = 0","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/whatwg-fetch/fetch.js\n// module id = 93\n// module chunks = 0","import { Aurelia, PLATFORM, autoinject } from 'aurelia-framework';\r\nimport { Router, RouterConfiguration } from 'aurelia-router';\r\nimport { FetchConfig, AuthorizeStep } from 'aurelia-auth';\r\n\r\n@autoinject\r\nexport class App {\r\n router: Router;\r\n\r\n constructor(private FetchConfig: FetchConfig) {\r\n\r\n }\r\n\r\n activate() {\r\n this.FetchConfig.configure();\r\n }\r\n\r\n configureRouter(config: RouterConfiguration, router: Router) {\r\n config.title = 'budelaandekook';\r\n config.addPipelineStep('authorize', AuthorizeStep);\r\n config.map([{\r\n route: 'login',\r\n name: 'login',\r\n settings: { icon: 'education' },\r\n moduleId: PLATFORM.moduleName('../login/login'),\r\n nav: false,\r\n auth: false,\r\n title: 'Login'\r\n }, {\r\n route: ['', 'home'],\r\n name: 'home',\r\n settings: { icon: 'th-list' },\r\n moduleId: PLATFORM.moduleName('../home/home'),\r\n nav: true,\r\n auth: true,\r\n title: 'Deelnemers'\r\n }, {\r\n route: 'users/:id',\r\n name: 'userDetail',\r\n moduleId: PLATFORM.moduleName('../user/user'),\r\n href: '#/users/:id',\r\n nav: false,\r\n auth: true,\r\n title: 'userDetail'\r\n }, {\r\n route: 'schedules',\r\n name: 'schedules',\r\n settings: { icon: 'th-list' },\r\n moduleId: PLATFORM.moduleName('../schedules/schedules'),\r\n nav: true,\r\n auth: true,\r\n title: 'Indelingen'\r\n }, {\r\n route: 'schedules/:id',\r\n name: 'scheduleDetail',\r\n moduleId: PLATFORM.moduleName('../schedule/schedule'),\r\n href: '#/schedules/:id',\r\n nav: false,\r\n auth: true,\r\n title: 'scheduleDetail'\r\n }, {\r\n route: 'schedule/create',\r\n name: 'Preferences',\r\n moduleId: PLATFORM.moduleName('../preferences/preferences'),\r\n nav: false,\r\n auth: true,\r\n title: 'Preferences'\r\n }, {\r\n route: 'letter/:id',\r\n name: 'letterDetail',\r\n moduleId: PLATFORM.moduleName('../letters/letters'),\r\n href: '#/letter/:id',\r\n nav: false,\r\n auth: true,\r\n title: 'letterDetail'\r\n }]);\r\n\r\n\r\n this.router = router;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/app/app.ts","module.exports = \"<template>\\r\\n <require from=\\\"../navmenu/navmenu\\\"></require>\\r\\n <require from=\\\"./app.scss\\\"></require>\\r\\n <require from=\\\"bootstrap/dist/css/bootstrap.css\\\"></require>\\r\\n <require from=\\\"./custom-bootstrap.scss\\\"></require>\\r\\n <div class=\\\"container-fluid\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-3\\\">\\r\\n <navmenu router.bind=\\\"router\\\"></navmenu>\\r\\n </div>\\r\\n <div class=\\\"col-sm-9 body-content\\\">\\r\\n <router-view></router-view>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/app/app.html\n// module id = app/components/app/app.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".fixed-action-btn {\\n position: fixed;\\n right: 23px;\\n bottom: 23px;\\n padding-top: 15px;\\n margin-bottom: 0;\\n z-index: 997; }\\n .fixed-action-btn .btn-floating {\\n display: inline-block;\\n position: relative;\\n overflow: hidden;\\n z-index: 1;\\n padding: 0;\\n border-radius: 50%;\\n vertical-align: middle; }\\n .fixed-action-btn .btn-floating.btn-large {\\n text-decoration: none;\\n background-color: #bc313b;\\n letter-spacing: .5px;\\n -webkit-transition: .2s ease-out;\\n -o-transition: .2s ease-out;\\n transition: .2s ease-out;\\n cursor: pointer;\\n width: 56px;\\n height: 56px; }\\n .fixed-action-btn .btn-floating.btn-large i {\\n line-height: 56px;\\n font-size: 1.6rem;\\n width: inherit;\\n display: inline-block;\\n text-align: center;\\n color: #fff; }\\n .fixed-action-btn .btn-floating:hover {\\n background-color: #761e24;\\n box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); }\\n .fixed-action-btn .waves-effect {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n -webkit-tap-highlight-color: transparent; }\\n .fixed-action-btn .material-icons {\\n vertical-align: middle; }\\n\\n.trans-delay {\\n -webkit-transition: all 0.5s ease-in-out;\\n /* Safari */\\n transition: all 0.5s ease-in-out; }\\n\\n.table thead tr {\\n background-color: #bc313b;\\n color: white; }\\n .table thead tr th:first-child {\\n border-top-left-radius: 5px; }\\n .table thead tr th:last-child {\\n border-top-right-radius: 5px; }\\n\\n/* width */\\n::-webkit-scrollbar {\\n width: 6px; }\\n\\n/* Track */\\n::-webkit-scrollbar-track {\\n background: #ebebeb;\\n border-radius: 5px; }\\n\\n/* Handle */\\n::-webkit-scrollbar-thumb {\\n background: #bc313b;\\n border-radius: 5px; }\\n\\n@media (max-width: 767px) {\\n /* On small screens, the nav menu spans the full width of the screen. Leave a space for it. */\\n .body-content {\\n padding-top: 50px; } }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/app/app.scss\n// module id = app/components/app/app.scss\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"a {\\n color: #bc313b; }\\n\\na:hover {\\n color: #761e24; }\\n\\na:focus {\\n color: #761e24; }\\n\\na.text-primary:hover,\\na.text-primary:focus {\\n color: #761e24; }\\n\\n.form-control:focus {\\n border-color: #761e24;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(188, 49, 59, 0.5); }\\n\\n.btn:focus {\\n border-color: #761e24;\\n box-shadow: 0 0 0 0.2rem rgba(188, 49, 59, 0.5); }\\n\\n.btn-primary:focus,\\n.btn-primary.focus {\\n box-shadow: 0 0 0 0.2rem rgba(188, 49, 59, 0.5);\\n background-color: #761e24;\\n border-color: #761e24; }\\n\\n.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus {\\n background-color: #bc313b;\\n border-color: #bc313b; }\\n\\n.pagination > li > a, .pagination > li > span {\\n color: #bc313b; }\\n\\n.btn-outline-primary {\\n color: #bc313b;\\n background-color: transparent;\\n background-image: none;\\n border-color: #bc313b; }\\n\\n.btn-outline-primary:hover {\\n color: #fff;\\n background-color: #bc313b;\\n border-color: #bc313b; }\\n\\n.btn-outline-primary:focus, .btn-outline-primary.focus {\\n box-shadow: 0 0 0 0.2rem rgba(188, 49, 59, 0.5); }\\n\\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\\n color: #bc313b;\\n background-color: transparent; }\\n\\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-primary.dropdown-toggle {\\n color: #fff;\\n background-color: #bc313b;\\n border-color: #bc313b; }\\n\\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-primary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(188, 49, 59, 0.5); }\\n\\n.btn-outline-secondary {\\n color: #6c757d;\\n background-color: transparent;\\n background-image: none;\\n border-color: #6c757d; }\\n\\n.btn-outline-secondary:hover {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n\\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\\n color: #6c757d;\\n background-color: transparent; }\\n\\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-secondary.dropdown-toggle {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-secondary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n\\n.btn-outline-success {\\n color: #28a745;\\n background-color: transparent;\\n background-image: none;\\n border-color: #28a745; }\\n\\n.btn-outline-success:hover {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n\\n.btn-outline-success:focus, .btn-outline-success.focus {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n\\n.btn-outline-success.disabled, .btn-outline-success:disabled {\\n color: #28a745;\\n background-color: transparent; }\\n\\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-success.dropdown-toggle {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n\\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-success.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n\\n.btn-outline-info {\\n color: #17a2b8;\\n background-color: transparent;\\n background-image: none;\\n border-color: #17a2b8; }\\n\\n.btn-outline-info:hover {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n\\n.btn-outline-info:focus, .btn-outline-info.focus {\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n\\n.btn-outline-info.disabled, .btn-outline-info:disabled {\\n color: #17a2b8;\\n background-color: transparent; }\\n\\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-info.dropdown-toggle {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n\\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-info.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n\\n.btn-outline-warning {\\n color: #ffc107;\\n background-color: transparent;\\n background-image: none;\\n border-color: #ffc107; }\\n\\n.btn-outline-warning:hover {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n\\n.btn-outline-warning:focus, .btn-outline-warning.focus {\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n\\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\\n color: #ffc107;\\n background-color: transparent; }\\n\\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-warning.dropdown-toggle {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n\\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-warning.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n\\n.btn-outline-danger {\\n color: #dc3545;\\n background-color: transparent;\\n background-image: none;\\n border-color: #dc3545; }\\n\\n.btn-outline-danger:hover {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n\\n.btn-outline-danger:focus, .btn-outline-danger.focus {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n\\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\\n color: #dc3545;\\n background-color: transparent; }\\n\\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-danger.dropdown-toggle {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n\\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-danger.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n\\n.btn-outline-light {\\n color: #f8f9fa;\\n background-color: transparent;\\n background-image: none;\\n border-color: #f8f9fa; }\\n\\n.btn-outline-light:hover {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n\\n.btn-outline-light:focus, .btn-outline-light.focus {\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n\\n.btn-outline-light.disabled, .btn-outline-light:disabled {\\n color: #f8f9fa;\\n background-color: transparent; }\\n\\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-light.dropdown-toggle {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n\\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-light.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n\\n.btn-outline-dark {\\n color: #343a40;\\n background-color: transparent;\\n background-image: none;\\n border-color: #343a40; }\\n\\n.btn-outline-dark:hover {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n\\n.btn-outline-dark:focus, .btn-outline-dark.focus {\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n\\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\\n color: #343a40;\\n background-color: transparent; }\\n\\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\\n.show > .btn-outline-dark.dropdown-toggle {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n\\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\\n.show > .btn-outline-dark.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n\\n.table-striped > tbody > tr:nth-of-type(odd) {\\n background-color: #fff1f1; }\\n\\n.table td, .table th {\\n padding: 11px !important; }\\n\\n.table.table-hover tbody tr:hover {\\n background-color: #fff1f1; }\\n\\n.row {\\n margin-bottom: 20px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/app/custom-bootstrap.scss\n// module id = app/components/app/custom-bootstrap.scss\n// module chunks = 0","import { HttpClient, json } from 'aurelia-fetch-client';\r\nimport { Router, activationStrategy } from 'aurelia-router';\r\nimport { autoinject } from \"aurelia-framework\";\r\n\r\n@autoinject\r\nexport class Home {\r\n couples: Couple[] = [];\r\n deleted: boolean = false;\r\n empty: boolean = false;\r\n id: number;\r\n name: string;\r\n firstname: string;\r\n adres: string;\r\n postcode: string;\r\n city: string;\r\n tel: string;\r\n mobile: string;\r\n email: string;\r\n dieet1: string;\r\n dieet2: string;\r\n message: string;\r\n\r\n\r\n pageSize = 10;\r\n filters = [\r\n { value: '', keys: ['name', 'firstname', 'email'] }\r\n ];\r\n\r\n\r\n constructor(private http: HttpClient, private router: Router) {\r\n \r\n }\r\n activate(params: any) {\r\n if (params.action == \"deleted\") {\r\n this.http.fetch('api/user/GetDeleted')\r\n .then(result => result.json() as Promise<Couple[]>)\r\n .then(data => {\r\n this.couples = data;\r\n if (!this.couples[0]) this.empty = true;\r\n });\r\n this.deleted = true;\r\n }\r\n else {\r\n this.http.fetch('api/user')\r\n .then(result => result.json() as Promise<Couple[]>)\r\n .then(data => {\r\n this.couples = data;\r\n if (!this.couples[0]) this.empty = true;\r\n });\r\n this.deleted = false;\r\n }\r\n }\r\n\r\n\r\n determineActivationStrategy() {\r\n return activationStrategy.replace;\r\n }\r\n\r\n addCouple() {\r\n if (this.name && this.firstname && this.adres && this.postcode && this.city && this.email) {\r\n const couple = new Couple(this.id, this.name, this.firstname, this.adres, this.postcode, this.city, this.tel, this.mobile, this.email, this.dieet1, this.dieet2, \"\");\r\n this.http.fetch('api/user/add', {\r\n method: 'post',\r\n body: json(couple)\r\n }).then(response => response.json())\r\n .then(data => data ? this.Refresh() : this.message = \"Helaas er is iets fout gegaan\");\r\n this.id = 0;\r\n this.name = \"\";\r\n this.firstname = \"\";\r\n this.adres = \"\";\r\n this.postcode = \"\";\r\n this.city = \"\";\r\n this.tel = \"\";\r\n this.mobile = \"\";\r\n this.email = \"\";\r\n this.dieet1 = \"\";\r\n this.dieet2 = \"\";\r\n }\r\n }\r\n\r\n Refresh() {\r\n if (this.deleted) {\r\n this.http.fetch('api/user/GetDeleted')\r\n .then(result => result.json() as Promise<Couple[]>)\r\n .then(data => {\r\n this.couples = data;\r\n if (!this.couples[0]) this.empty = true;\r\n });\r\n }\r\n else {\r\n this.http.fetch('api/user')\r\n .then(result => result.json() as Promise<Couple[]>)\r\n .then(data => {\r\n this.couples = data;\r\n if (!this.couples[0]) this.empty = true;\r\n });\r\n }\r\n }\r\n\r\n rowSelected($event: any) {\r\n this.router.navigate('users/' + $event.detail.row.id);\r\n }\r\n\r\n}\r\n\r\nclass Couple {\r\n constructor(\r\n public id: number,\r\n public name: string,\r\n public firstname: string,\r\n public adres: string,\r\n public postcode: string,\r\n public city: string,\r\n public tel: string,\r\n public mobile: string,\r\n public email: string,\r\n public dieet1: string,\r\n public dieet2: string,\r\n public on_delete: string\r\n ) { }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/home/home.ts","module.exports = \"<template>\\r\\n <require from=\\\"./home.scss\\\"></require>\\r\\n <!-- Modal -->\\r\\n <div class=\\\"modal fade\\\" id=\\\"myModal\\\" role=\\\"dialog\\\">\\r\\n <div class=\\\"modal-dialog\\\">\\r\\n\\r\\n <!-- Modal content-->\\r\\n <div class=\\\"modal-content\\\">\\r\\n <form submit.trigger=\\\"addCouple()\\\">\\r\\n <div class=\\\"modal-header\\\">\\r\\n <button type=\\\"button\\\" class=\\\"close\\\" data-dismiss=\\\"modal\\\">×</button>\\r\\n <h4 class=\\\"modal-title\\\">Deelnemer toevoegen</h4>\\r\\n </div>\\r\\n <div class=\\\"modal-body\\\">\\r\\n <div class=\\\"container-fluid\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <label>Naam</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"name\\\" class=\\\"form-control\\\" placeholder=\\\"Janssen\\\" required>\\r\\n </div>\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <label>Voornamen</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"firstname\\\" class=\\\"form-control\\\" placeholder=\\\"jan en jan\\\" required>\\r\\n </div>\\r\\n </div>\\r\\n <hr />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <label>Adres</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"adres\\\" class=\\\"form-control\\\" placeholder=\\\"Straatnaam 1\\\" required>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Postcode</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"postcode\\\" class=\\\"form-control\\\" placeholder=\\\"1234 AB\\\" required>\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Plaats</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"city\\\" class=\\\"form-control\\\" placeholder=\\\"Stad\\\" required>\\r\\n </div>\\r\\n </div>\\r\\n <hr />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Telefoon</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"tel\\\" class=\\\"form-control\\\" placeholder=\\\"0495-111111\\\">\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Mobiel</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"mobile\\\" class=\\\"form-control\\\" placeholder=\\\"06-12345678\\\">\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-12\\\">\\r\\n <label>Email</label>\\r\\n <input type=\\\"email\\\" value.bind=\\\"email\\\" class=\\\"form-control\\\" placeholder=\\\"Example@example.nl\\\" required>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <label>Dieet voorschriften 1</label>\\r\\n <textarea type=\\\"text\\\" value.bind=\\\"dieet1\\\" class=\\\"form-control\\\"></textarea>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <label>Dieet voorschriften 2</label>\\r\\n <textarea type=\\\"text\\\" value.bind=\\\"dieet2\\\" class=\\\"form-control\\\"></textarea>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"modal-footer\\\">\\r\\n <button type=\\\"submit\\\" class=\\\"btn btn-primary\\\">Opslaan</button>\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-default\\\" data-dismiss=\\\"modal\\\">Close</button>\\r\\n </div>\\r\\n </form>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <h1>Deelnemers</h1>\\r\\n <div if.bind=\\\"message\\\" class=\\\"alert alert-info\\\" role=\\\"alert\\\">${message}</div>\\r\\n\\r\\n <hr>\\r\\n <ul class=\\\"nav nav-tabs\\\">\\r\\n <li role=\\\"presentation\\\" class=\\\"${ deleted ? '' : 'active' }\\\"><a href=\\\"#/\\\">Actief</a></li>\\r\\n <li role=\\\"presentation\\\" class=\\\"${ deleted ? 'active' : '' }\\\"><a href=\\\"#/?action=deleted\\\">Verwijderd</a></li>\\r\\n </ul>\\r\\n <br />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <div class=\\\"form-inline\\\">\\r\\n <div class=\\\"form-group\\\">\\r\\n <label for=\\\"pageSize\\\">Page Size: </label>\\r\\n <select value.bind=\\\"pageSize\\\" id=\\\"pageSize\\\" class=\\\"form-control\\\">\\r\\n <option model.bind=\\\"5\\\">5</option>\\r\\n <option model.bind=\\\"10\\\">10</option>\\r\\n <option model.bind=\\\"20\\\">20</option>\\r\\n <option model.bind=\\\"50\\\">50</option>\\r\\n </select>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <div class=\\\"input-group\\\">\\r\\n <span class=\\\"input-group-addon glyphicon glyphicon-search\\\" id=\\\"search-addon1\\\"></span>\\r\\n <input type=\\\"text\\\" class=\\\"form-control\\\" value.bind=\\\"filters[0].value\\\" placeholder=\\\"Search\\\" aria-describedby=\\\"search-addon1\\\">\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div if.bind=\\\"!couples[0] && empty == false\\\" style=\\\"color: #bc313b; margin-top: 50px;\\\" class=\\\"la-ball-spin la-2x\\\">\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n </div>\\r\\n\\r\\n <div if.bind=\\\"!couples[0] && empty == true\\\">\\r\\n Er zijn geen deelnemers gevonden.\\r\\n </div>\\r\\n\\r\\n <table if.bind=\\\"couples[0]\\\" class=\\\"table table-hover\\\" aurelia-table=\\\"data.bind: couples; display-data.bind: $displayData;\\r\\n current-page.bind: currentPage; page-size.bind: pageSize; total-items.bind: totalItems; filters.bind: filters;\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Naam</th>\\r\\n <th>Voornamen</th>\\r\\n <th>Telefoon</th>\\r\\n <th>E-mail</th>\\r\\n <th>adres</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr repeat.for=\\\"couple of $displayData\\\" aut-select=\\\"row.bind: couple; selected-class: info\\\" select.delegate=\\\"rowSelected($event)\\\">\\r\\n <td>${couple.name}</td>\\r\\n <td>${couple.firstname}</td>\\r\\n <td>${couple.tel}<span if.bind=\\\"couple.tel && couple.mobile\\\">,</span> ${couple.mobile}</td>\\r\\n <td>\\r\\n <a href=\\\"mailto:${couple.email}\\\">${couple.email}</a>\\r\\n </td>\\r\\n <td>${couple.adres}, ${couple.city}</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n\\r\\n <div class=\\\"row\\\" if.bind=\\\"couples[0]\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <aut-pagination current-page.bind=\\\"currentPage\\\" page-size.bind=\\\"pageSize\\\" total-items.bind=\\\"totalItems\\\" pagination-size.bind=\\\"5\\\"\\r\\n boundary-links.bind=\\\"true\\\"></aut-pagination>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"fixed-action-btn\\\">\\r\\n <a href=\\\"#\\\" class=\\\"btn-floating btn-large waves-effect waves-light modal-trigger\\\" data-toggle=\\\"modal\\\" data-target=\\\"#myModal\\\">\\r\\n <i class=\\\"material-icons\\\">+</i>\\r\\n </a>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/home/home.html\n// module id = app/components/home/home.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".input-group-addon {\\n top: 0; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/home/home.scss\n// module id = app/components/home/home.scss\n// module chunks = 0","import { autoinject, inject } from \"aurelia-framework\";\r\nimport { HttpClient, json } from 'aurelia-fetch-client';\r\n\r\n@autoinject\r\nexport class firstLetter {\r\n letter: letter;\r\n confirm: boolean = false;\r\n message: string;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n activate(params: any) {\r\n this.http.fetch('api/letter/' + params.id)\r\n .then(response => response.json() as Promise<letter>)\r\n .then(data => this.letter = data);\r\n } \r\n\r\n saveLetter() {\r\n this.http.fetch('api/letter/' + this.letter.id + '/save', {\r\n method: 'post',\r\n body: json(this.letter)\r\n }).then(response => response.json())\r\n .then(data => this.message = data);\r\n }\r\n\r\n sendMails() {\r\n if (this.confirm) {\r\n this.http.fetch('api/letter/sendMails/0/' + this.letter.id)\r\n .then(response => response.json() as Promise<string>)\r\n .then(data => this.message = data);\r\n this.confirm = false;\r\n }\r\n if (!this.confirm) this.confirm = true;\r\n }\r\n}\r\n\r\nclass letter {\r\n constructor(\r\n public id: number,\r\n public name: string,\r\n public content: string\r\n ) { }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/letters/letters.ts","module.exports = \"<template>\\r\\n <require from=\\\"./letters.scss\\\"></require>\\r\\n <div if.bind=\\\"!letter\\\" class=\\\"load-aurelia\\\">\\r\\n <div style=\\\"color: #bc313b; margin-top: 50px;\\\" class=\\\"la-ball-spin la-2x\\\">\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n </div>\\r\\n </div>\\r\\n <div if.bind=\\\"letter\\\">\\r\\n <h1>${letter.name}</h1>\\r\\n <div if.bind=\\\"message\\\" class=\\\"alert alert-info\\\" role=\\\"alert\\\">${message}</div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <textarea class=\\\"form-control letter\\\" value.bind=\\\"letter.content\\\"></textarea>\\r\\n </div>\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <p>\\r\\n <label>Te gebruiken in tekst:</label>\\r\\n <br> &VOORNAAM& voor de voornaam van de geadresseerde\\r\\n <br> &ACHTERNAAM& voor de achternaam van de geadresseerde\\r\\n <br> &STRAAT& voor de straat en huisnummer van de geadresseerde\\r\\n <br> &POSTCODE& voor de postcode van de geadresseerde\\r\\n <br> &PLAATS& voor de woonplaats van de geadresseerde\\r\\n <br> &TELEFOON& voor de telefoon van de geadresseerde\\r\\n <br />\\r\\n <br> &GERECHT& voor het te maken gerecht\\r\\n <br> &AANTAL& voor aantal personen dat op bezoek komt\\r\\n <br> &VOORSCHRIFT& voor voorschrift tijdens gerecht\\r\\n <br />\\r\\n <br> &BIJ_VOORNAAM& voor de voornaam van de volgende gang\\r\\n <br> &BIJ_ACHTERNAAM& voor de achternaam van de volgende gang\\r\\n <br> &BIJ_STRAAT& voor de straat en huisnummer van de volgende gang\\r\\n <br> &BIJ_POSTCODE& voor de postcode van de volgende gang\\r\\n <br> &BIJ_PLAATS& voor de woonplaats van de volgende gang\\r\\n <br> &BIJ_TELEFOON& voor de telefoon van de volgende gang\\r\\n <br />\\r\\n <br> &VOLGEND_ADRES& voor een lijst van adressen voor alle tafel genoten\\r\\n <br>\\r\\n </p>\\r\\n <button click.delegate=\\\"saveLetter()\\\" class=\\\"btn btn-outline-primary\\\">Opslaan</button>\\r\\n <button if.bind=\\\"letter.id == 6\\\" class=\\\"trans-delay pull-right btn ${ confirm == false ? 'btn-outline-primary' : 'btn-outline-warning' }\\\" click.delegate=\\\"sendMails()\\\">${ confirm == false ? 'Verzenden via email' : 'Bevestigen' }</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/letters/letters.html\n// module id = app/components/letters/letters.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".letter {\\n height: 43vw !important;\\n margin-bottom: 20px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/letters/letters.scss\n// module id = app/components/letters/letters.scss\n// module chunks = 0","import { AuthService } from \"aurelia-auth\";\r\nimport { autoinject } from \"aurelia-framework\";\r\n\r\n@autoinject\r\nexport class login {\r\n username: string;\r\n userpass: string;\r\n message: string;\r\n isLoading: boolean;\r\n\r\n constructor(private authService: AuthService) {\r\n\r\n }\r\n\r\n public login() {\r\n this.isLoading = true;\r\n this.authService.login(this.username, this.userpass);\r\n //this.message = this.authService.\r\n }\r\n\r\n public logout() {\r\n this.authService.logout('#/login');\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/login/login.ts","module.exports = \"<template>\\r\\n <require from=\\\"./login.scss\\\"></require>\\r\\n\\r\\n <div class=\\\"load-aurelia\\\">\\r\\n <div class=\\\"inner\\\">\\r\\n <img id=\\\"profile-img\\\" class=\\\"profile-img-card\\\" src=\\\"\" + require(\"./img/logo.jpg\") + \"\\\" />\\r\\n <div class=\\\"alert alert-danger\\\" if.bind=\\\"error\\\">\\r\\n ${error}\\r\\n </div>\\r\\n <form class=\\\"form-signin\\\" submit.trigger=\\\"login()\\\">\\r\\n <input type=\\\"text\\\" id=\\\"inputUsername\\\" class=\\\"form-control\\\" placeholder=\\\"Username\\\" value.bind=\\\"username\\\" required autofocus>\\r\\n <input type=\\\"password\\\" id=\\\"inputPassword\\\" class=\\\"form-control\\\" placeholder=\\\"Password\\\" value.bind=\\\"userpass\\\" required>\\r\\n <button if.bind=\\\"!isLoading\\\" class=\\\"btn btn-lg btn-outline-primary btn-block\\\" type=\\\"submit\\\">Sign in</button>\\r\\n <button if.bind=\\\"isLoading\\\" class=\\\"btn btn-lg btn-outline-primary btn-block\\\" type=\\\"submit\\\">\\r\\n <div style=\\\"color: #bc313b;\\\" class=\\\"la-ball-spin la-1x hover\\\">\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n </div>\\r\\n </button>\\r\\n </form>\\r\\n </div>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/login/login.html\n// module id = app/components/login/login.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".card {\\n background-color: #F7F7F7;\\n padding: 20px 25px 30px;\\n margin: 0 auto 25px;\\n margin-top: 50px;\\n border-radius: 2px;\\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); }\\n\\n.inner {\\n margin: 0 auto;\\n width: 100%;\\n max-width: 500px; }\\n\\n.profile-img-card {\\n margin: 0 auto 10px;\\n display: block; }\\n\\n.profile-name-card {\\n margin: 0 auto 10px;\\n width: 120px; }\\n\\n.form-signin {\\n margin-bottom: 10px; }\\n .form-signin input {\\n margin-bottom: 10px; }\\n .form-signin button {\\n max-width: 50%;\\n margin: 20px auto 0 auto; }\\n .form-signin button:hover .la-ball-spin.hover {\\n color: #fff !important; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/login/login.scss\n// module id = app/components/login/login.scss\n// module chunks = 0","\r\nimport { Subscription, EventAggregator } from \"aurelia-event-aggregator\";\r\nimport { AuthService } from \"aurelia-auth\";\r\nimport { Router } from 'aurelia-router';\r\nimport { autoinject, bindable, bindingMode } from \"aurelia-framework\";\r\n\r\n\r\n@autoinject\r\nexport class navmenu {\r\n private subscription: Subscription;\r\n private isAuthenticated: boolean;\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) router: any;\r\n\r\n public constructor(private authService: AuthService, private eventAggregator: EventAggregator) {\r\n\r\n }\r\n\r\n attached() {\r\n this.subscription = this.eventAggregator.subscribe(\"auth:login\", (arg0: any, arg1: any) => this.login(arg0, arg1));\r\n this.isAuthenticated = this.authService.isAuthenticated();\r\n }\r\n\r\n detached() {\r\n this.subscription.dispose();\r\n }\r\n\r\n public login(arg0: any, arg1: any) {\r\n this.isAuthenticated = this.authService.isAuthenticated();\r\n }\r\n\r\n public logout() {\r\n this.authService.logout('');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/navmenu/navmenu.ts","module.exports = \"<template>\\r\\n <require from=\\\"./navmenu.scss\\\"></require>\\r\\n <div class=\\\"main-nav\\\">\\r\\n <div class=\\\"navbar navbar-inverse\\\">\\r\\n <div class=\\\"navbar-header\\\">\\r\\n <button type=\\\"button\\\" class=\\\"navbar-toggle\\\" data-toggle=\\\"collapse\\\" data-target=\\\".navbar-collapse\\\">\\r\\n <span class=\\\"sr-only\\\">Toggle navigation</span>\\r\\n <span class=\\\"icon-bar\\\"></span>\\r\\n <span class=\\\"icon-bar\\\"></span>\\r\\n <span class=\\\"icon-bar\\\"></span>\\r\\n </button>\\r\\n <a class=\\\"navbar-brand\\\" href=\\\"#/\\\">budelaandekook</a>\\r\\n </div>\\r\\n <div class=\\\"clearfix\\\"></div>\\r\\n <div class=\\\"navbar-collapse collapse\\\">\\r\\n <ul if.bind=\\\"isAuthenticated\\\" class=\\\"nav navbar-nav\\\">\\r\\n <li class=\\\"nav-item\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"right\\\" title=\\\"User\\\">\\r\\n <a class=\\\"nav-link nav-link-collapse collapsed\\\" data-toggle=\\\"collapse\\\" href=\\\"#collapseUser\\\" data-parent=\\\"#exampleAccordion\\\">\\r\\n <span class=\\\"glyphicon glyphicon-user\\\" aria-hidden=\\\"true\\\"></span>\\r\\n <span class=\\\"nav-link-text\\\">Roel Geelen</span>\\r\\n <span class=\\\"glyphicon glyphicon-menu-down pull-right\\\"></span>\\r\\n </a>\\r\\n <ul class=\\\"nav navbar-nav collapse\\\" id=\\\"collapseUser\\\">\\r\\n <!--<li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"/#/profile\\\">Profile</a>\\r\\n </li>-->\\r\\n <li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"#\\\" click.delegate=\\\"logout()\\\">Logout</a>\\r\\n </li>\\r\\n </ul>\\r\\n </li>\\r\\n </ul>\\r\\n\\r\\n <ul class=\\\"nav navbar-nav\\\" if.bind=\\\"isAuthenticated\\\">\\r\\n <li repeat.for=\\\"row of router.navigation\\\" class=\\\"${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href.bind=\\\"row.href\\\">\\r\\n <span class=\\\"glyphicon glyphicon-${ row.settings.icon }\\\"></span> ${ row.title }\\r\\n </a>\\r\\n </li>\\r\\n </ul>\\r\\n\\r\\n <ul if.bind=\\\"isAuthenticated\\\" class=\\\"nav navbar-nav\\\">\\r\\n <li class=\\\"nav-item\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"right\\\" title=\\\"Letters\\\">\\r\\n <a class=\\\"nav-link nav-link-collapse collapsed\\\" data-toggle=\\\"collapse\\\" href=\\\"#collapseLetters\\\" data-parent=\\\"#exampleAccordion\\\">\\r\\n <span class=\\\"glyphicon glyphicon-envelope\\\" aria-hidden=\\\"true\\\"></span>\\r\\n <span class=\\\"nav-link-text\\\">Brieven</span>\\r\\n <span class=\\\"glyphicon glyphicon-menu-down pull-right\\\"></span>\\r\\n </a>\\r\\n <ul class=\\\"nav navbar-nav collapse\\\" id=\\\"collapseLetters\\\">\\r\\n <li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"#/letter/6\\\">Uitnodiging</a>\\r\\n </li>\\r\\n <li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"#/letter/1\\\">2 weken vooraf</a>\\r\\n </li>\\r\\n <li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"#/letter/2\\\">Net van te voren</a>\\r\\n </li>\\r\\n <li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"#/letter/3\\\">Voorgerecht</a>\\r\\n </li>\\r\\n <li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"#/letter/4\\\">Hoofdgerecht</a>\\r\\n </li>\\r\\n <li class=\\\"colpsNav ${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"#/letter/5\\\">Nagerecht</a>\\r\\n </li>\\r\\n </ul>\\r\\n </li>\\r\\n </ul>\\r\\n\\r\\n <ul if.bind=\\\"!isAuthenticated\\\" class=\\\"nav navbar-nav \\\">\\r\\n <li class=\\\"${ row.isActive ? 'link-active' : '' }\\\">\\r\\n <a href=\\\"/#/login\\\">Login</a>\\r\\n </li>\\r\\n </ul>\\r\\n\\r\\n <ul class=\\\"nav navbar-nav navbar-right\\\">\\r\\n <li class=\\\"loader\\\" if.bind=\\\"router.isNavigating\\\">\\r\\n <i class=\\\"fa fa-spinner fa-spin fa-2x\\\"></i>\\r\\n </li>\\r\\n </ul>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/navmenu/navmenu.html\n// module id = app/components/navmenu/navmenu.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li .glyphicon {\\n margin-right: 10px; }\\n\\n/* Highlighting rules for nav menu items */\\nli.au-target.link-active a,\\nli.au-target.link-active a:hover,\\nli.au-target.link-active a:focus {\\n background-color: #4189C7;\\n color: white; }\\n\\n/* Keep the nav menu independent of scrolling and on top of other items */\\n.main-nav {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n z-index: 1;\\n background: url(\" + require(\"./img/navbar.jpg\") + \") no-repeat right;\\n background-size: auto 100%; }\\n .main-nav .navbar-inverse {\\n background: #222222e0; }\\n .main-nav .navbar-inverse .navbar-header {\\n background: #222; }\\n .main-nav .navbar-inverse li.au-target.link-active a {\\n color: #bc313b;\\n background-color: transparent;\\n border: solid; }\\n\\n.nav-item {\\n border-bottom: 1px solid #9d9d9d; }\\n .nav-item .nav-link {\\n border-bottom: 1px solid; }\\n\\n@media (min-width: 768px) {\\n /* On small screens, convert the nav menu to a vertical sidebar */\\n .main-nav {\\n height: 100%;\\n width: calc(25% - 20px); }\\n .navbar {\\n border-radius: 0px;\\n border-width: 0px;\\n height: 100%; }\\n .navbar-header {\\n float: none; }\\n .navbar-collapse {\\n border-top: 1px solid #444;\\n padding: 0px; }\\n .navbar ul {\\n float: none; }\\n .navbar li {\\n float: none;\\n font-size: 15px;\\n margin: 6px; }\\n .navbar li a {\\n padding: 10px 16px;\\n border-radius: 4px; }\\n .navbar a {\\n /* If a menu item's text is too long, truncate it */\\n width: 100%;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n li.colpsNav a {\\n padding-left: 39px; } }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/navmenu/navmenu.scss\n// module id = app/components/navmenu/navmenu.scss\n// module chunks = 0","import { Router } from 'aurelia-router';\r\nimport { HttpClient, json } from 'aurelia-fetch-client';\r\nimport { autoinject } from \"aurelia-framework\";\r\n\r\n@autoinject\r\nexport class Preferences {\r\n preferences: Preference[] = [];\r\n prefSchedule: Schedule;\r\n empty: boolean = false;\r\n reserves: number = 0;\r\n confirmed: number = 0;\r\n scheduleId: number;\r\n message: string;\r\n pageSize = 10;\r\n filters = [\r\n { value: '', keys: ['name', 'firstname'] }\r\n ];\r\n\r\n\r\n constructor(private router: Router, private http: HttpClient) {\r\n http.fetch('api/preference')\r\n .then(response => response.json() as Promise<Preference[]>)\r\n .then(data => {\r\n this.preferences = data;\r\n if (!this.preferences[0]) this.empty = true;\r\n });\r\n\r\n http.fetch('api/preference/GetSchedule')\r\n .then(response => response.json() as Promise<Schedule>)\r\n .then(data => this.prefSchedule = data);\r\n }\r\n\r\n nameLength(row: any) {\r\n return row.name.length;\r\n }\r\n\r\n savePreference($event: any) {\r\n this.http.fetch('api/preference/save', {\r\n method: 'post',\r\n body: json($event)\r\n });\r\n }\r\n savePrefSchedule($event: any) {\r\n this.prefSchedule = {\r\n id: 1,\r\n date: $event.date,\r\n name: $event.name\r\n }\r\n\r\n this.http.fetch('api/preference/saveSchedule', {\r\n method: 'post',\r\n body: json(this.prefSchedule)\r\n });\r\n }\r\n\r\n checkPreferences() {\r\n for (var i = 0; i < this.preferences.length; i++) {\r\n if (this.preferences[i].reserve == true && this.preferences[i].confirmed == true)\r\n this.reserves++; \r\n if (this.preferences[i].confirmed == true)\r\n this.confirmed++; \r\n }\r\n\r\n if ((this.confirmed % 3) == this.reserves) {\r\n this.http.fetch('api/schedule/make')\r\n .then(response => response.json() as Promise<string>)\r\n .then(data => this.router.navigate(\"schedules/\" + data));\r\n \r\n } else {\r\n this.message = \"Het aantal reserves komen niet overeen met het aantal deelnemers!\";\r\n }\r\n this.reserves = 0;\r\n this.confirmed = 0;\r\n }\r\n\r\n downloadExcel() {\r\n this.http.fetch('api/preference/downloadExcel')\r\n .then(response => response.json() as Promise<string>)\r\n .then(function (name) {\r\n window.open(\"/\" + name);\r\n });\r\n }\r\n}\r\n\r\nclass Preference {\r\n constructor(\r\n public id: number,\r\n public userId: number,\r\n public name: string,\r\n public fisrtname: string,\r\n public confirmed: boolean,\r\n public reserve: boolean,\r\n public voorgerecht: boolean,\r\n public hoofdgerecht: boolean,\r\n public nagerecht: boolean\r\n ) { }\r\n}\r\n\r\nclass Schedule {\r\n constructor(\r\n public id: number,\r\n public date: string,\r\n public name: string \r\n ) { }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/preferences/preferences.ts","module.exports = \"<template>\\r\\n <require from=\\\"./preferences.scss\\\"></require>\\r\\n <div if.bind=\\\"!preferences[0] && empty == false\\\" class=\\\"load-aurelia\\\">\\r\\n <div style=\\\"color: #bc313b; margin-top: 50px;\\\" class=\\\"la-ball-spin la-2x\\\">\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div if.bind=\\\"!preferences[0] && empty == true\\\" class=\\\"load-aurelia center\\\">\\r\\n U moet eerst deelnemers toevoegen voordat u een planning kan maken!\\r\\n </div>\\r\\n\\r\\n <div if.bind=\\\"preferences[0]\\\">\\r\\n <h1>Nieuwe indeling</h1>\\r\\n <div if.bind=\\\"message\\\" class=\\\"alert alert-info\\\" role=\\\"alert\\\">${message}</div>\\r\\n <hr />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-3\\\">\\r\\n <label>Datum</label>\\r\\n <input type=\\\"date\\\" value.bind=\\\"prefSchedule.date\\\" class=\\\"form-control\\\" change.delegate=\\\"savePrefSchedule(prefSchedule)\\\">\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-3\\\">\\r\\n <label>Naam</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"prefSchedule.name\\\" class=\\\"form-control\\\" placeholder=\\\"voorjaar 2018\\\" change.delegate=\\\"savePrefSchedule(prefSchedule)\\\">\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-3 pull-right\\\">\\r\\n <a click.delegate=\\\"downloadExcel()\\\" class=\\\"pull-right btn btn-outline-primary\\\">Download</a>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <hr />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <div class=\\\"form-inline\\\">\\r\\n <div class=\\\"form-group\\\">\\r\\n <label for=\\\"pageSize\\\">Page Size: </label>\\r\\n <select value.bind=\\\"pageSize\\\" id=\\\"pageSize\\\" class=\\\"form-control\\\">\\r\\n <option model.bind=\\\"5\\\">5</option>\\r\\n <option model.bind=\\\"10\\\">10</option>\\r\\n <option model.bind=\\\"20\\\">20</option>\\r\\n <option model.bind=\\\"50\\\">50</option>\\r\\n </select>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <div class=\\\"input-group\\\">\\r\\n <span class=\\\"input-group-addon glyphicon glyphicon-search\\\" id=\\\"search-addon1\\\"></span>\\r\\n <input type=\\\"text\\\" class=\\\"form-control\\\" value.bind=\\\"filters[0].value\\\" placeholder=\\\"Search\\\" aria-describedby=\\\"search-addon1\\\">\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n <table class=\\\"table table-striped\\\" aurelia-table=\\\"data.bind: preferences; display-data.bind: $displayData; current-page.bind: currentPage; page-size.bind: pageSize; total-items.bind: totalItems; filters.bind: filters;\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th aut-sort=\\\"key.bind: nameLength\\\">Deelnemer</th>\\r\\n <th aut-sort=\\\"key: confirmed\\\">Bevestigd</th>\\r\\n <th aut-sort=\\\"key: reserve\\\">reserve</th>\\r\\n <th aut-sort=\\\"key: voorgerecht\\\">voorgerecht</th>\\r\\n <th aut-sort=\\\"key: hoofdgerecht\\\">hoofdgerecht</th>\\r\\n <th aut-sort=\\\"key: nagerecht\\\">nagerecht</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr repeat.for=\\\"preference of $displayData\\\" change.delegate=\\\"savePreference(preference)\\\">\\r\\n <td>${preference.name}, ${preference.firstname}</td>\\r\\n <td>\\r\\n <input type=\\\"checkbox\\\" checked.bind=\\\"preference.confirmed\\\">\\r\\n </td>\\r\\n <td>\\r\\n <input type=\\\"checkbox\\\" checked.bind=\\\"preference.reserve\\\">\\r\\n </td>\\r\\n <td>\\r\\n <input type=\\\"checkbox\\\" checked.bind=\\\"preference.voorgerecht\\\">\\r\\n </td>\\r\\n <td>\\r\\n <input type=\\\"checkbox\\\" checked.bind=\\\"preference.hoofdgerecht\\\">\\r\\n </td>\\r\\n <td>\\r\\n <input type=\\\"checkbox\\\" checked.bind=\\\"preference.nagerecht\\\">\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <aut-pagination current-page.bind=\\\"currentPage\\\" page-size.bind=\\\"pageSize\\\" total-items.bind=\\\"totalItems\\\" pagination-size.bind=\\\"5\\\"\\r\\n boundary-links.bind=\\\"true\\\"></aut-pagination>\\r\\n <a click.delegate=\\\"checkPreferences()\\\" class=\\\"pull-right btn btn-outline-primary\\\">Maak planning</a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/preferences/preferences.html\n// module id = app/components/preferences/preferences.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".input-group-addon {\\n top: 0; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/preferences/preferences.scss\n// module id = app/components/preferences/preferences.scss\n// module chunks = 0","import { HttpClient, json } from 'aurelia-fetch-client';\r\nimport { autoinject } from \"aurelia-framework\";\r\nimport { activationStrategy } from 'aurelia-router';\r\nimport { Router } from 'aurelia-router';\r\n\r\n@autoinject\r\nexport class Schedule {\r\n schedules: VisitorSchedule[] = [];\r\n users: ComboboxUsers[] = [];\r\n scheduleInfo: ScheduleInfo;\r\n message: string;\r\n confirm: boolean = false;\r\n editName: boolean = false;\r\n editDate: boolean = false;\r\n letterIsGenerated: boolean = false;\r\n\r\n constructor(private router: Router, private http: HttpClient) { }\r\n\r\n activate(params: any) {\r\n this.http.fetch('api/schedule/' + params.id)\r\n .then(response => response.json() as Promise<ScheduleInfo>)\r\n .then(data => this.scheduleInfo = data);\r\n\r\n this.http.fetch('api/userSchedule/' + params.id)\r\n .then(response => response.json() as Promise<VisitorSchedule[]>)\r\n .then(data => {\r\n console.log(data);\r\n this.schedules = data\r\n });\r\n\r\n this.http.fetch('api/user/GetComboUsers')\r\n .then(response => response.json() as Promise<ComboboxUsers[]>)\r\n .then(data => this.users = data);\r\n }\r\n\r\n downloadLetterPDF(letterId: number) {\r\n this.http.fetch('api/letter/' + this.scheduleInfo.id + \"/\" + letterId)\r\n .then(response => response.json() as Promise<string>)\r\n .then(function (name) {\r\n window.open(\"/\" + name);\r\n });\r\n }\r\n\r\n downloadExcel() {\r\n this.http.fetch('api/schedule/downloadExcel/' + this.scheduleInfo.id)\r\n .then(response => response.json() as Promise<string>)\r\n .then(function (name) {\r\n window.open(\"/\" + name);\r\n });\r\n }\r\n\r\n delete() {\r\n if (this.confirm) {\r\n this.http.fetch('api/schedule/delete/' + this.scheduleInfo.id)\r\n .then(response => response.json())\r\n .then(data => this.router.navigate('schedules'));\r\n this.confirm = false;\r\n\r\n }\r\n if (!this.confirm) this.confirm = true;\r\n }\r\n\r\n updateSchedule($event: any) {\r\n this.http.fetch('api/schedule/update', {\r\n method: 'post',\r\n body: json($event)\r\n });\r\n this.editName = false;\r\n this.editDate = false;\r\n }\r\n\r\n saveUserSchedule() {\r\n this.schedules.forEach(function (value) {\r\n value.visitor3Id = +value.visitor3Id;\r\n });\r\n console.log(this.schedules);\r\n this.http.fetch('api/userSchedule/'+ this.scheduleInfo.id +'/update', {\r\n method: 'post',\r\n body: json(this.schedules)\r\n }).then(response => response.json())\r\n .then(data => this.message = data);\r\n \r\n }\r\n\r\n editNameField() {\r\n if (!this.editName)this.editName = true;\r\n }\r\n editDateField() {\r\n if (!this.editDate) this.editDate = true;\r\n }\r\n}\r\n\r\nclass VisitorSchedule {\r\n constructor(\r\n public cookUserId: number,\r\n public cookUserName: string,\r\n public courseId: number,\r\n public scheduleId: number,\r\n public visitor1Id: number,\r\n public visitor1Name: string,\r\n public visitor2Id: number,\r\n public visitor2Name: string,\r\n public visitor3Id: number,\r\n public visitor3Name: string\r\n ) { }\r\n}\r\n\r\nclass ScheduleInfo {\r\n constructor(\r\n public id: number,\r\n public date: string,\r\n public name: string,\r\n public on_delete: string\r\n ) { }\r\n}\r\n\r\nclass ComboboxUsers {\r\n constructor(\r\n public id: number,\r\n public name: string,\r\n ) { }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/schedule/schedule.ts","module.exports = \"<template>\\r\\n <require from=\\\"./schedule.scss\\\"></require>\\r\\n <div if.bind=\\\"!schedules[0]\\\" class=\\\"load-aurelia\\\">\\r\\n <div style=\\\"color: #bc313b; margin-top: 50px;\\\" class=\\\"la-ball-spin la-2x\\\">\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n </div>\\r\\n </div>\\r\\n <div if.bind=\\\"schedules[0]\\\">\\r\\n <div class=\\\"input-group input-group-lg\\\" if.bind=\\\"editName\\\">\\r\\n <br />\\r\\n <input type=\\\"text\\\" value.bind=\\\"scheduleInfo.name\\\" class=\\\"form-control\\\" placeholder=\\\"voorjaar 2018\\\" change.delegate=\\\"updateSchedule(scheduleInfo)\\\">\\r\\n </div>\\r\\n <h1 if.bind=\\\"!editName\\\">${scheduleInfo.name} <a class=\\\"glyphicon glyphicon-pencil\\\" click.trigger=\\\"editNameField()\\\"></a></h1>\\r\\n <input if.bind=\\\"editDate\\\" type=\\\"text\\\" value.bind=\\\"scheduleInfo.date\\\" class=\\\"form-control\\\" placeholder=\\\"2018-01-01\\\" change.delegate=\\\"updateSchedule(scheduleInfo)\\\">\\r\\n <label if.bind=\\\"!editDate\\\">${scheduleInfo.date} <a class=\\\"glyphicon glyphicon-pencil\\\" click.trigger=\\\"editDateField()\\\"></a></label>\\r\\n <a click.delegate=\\\"downloadExcel()\\\" class=\\\"pull-right btn btn-outline-primary\\\">Download</a>\\r\\n <div if.bind=\\\"message\\\" class=\\\"alert alert-info\\\" role=\\\"alert\\\">${message}</div>\\r\\n <hr>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <h3>Brieven downloaden</h3>\\r\\n </div>\\r\\n <div class=\\\"col-md-2\\\">\\r\\n <button click.delegate=\\\"downloadLetterPDF(1)\\\" class=\\\"btn btn-outline-primary\\\">2 weken vooraf</button>\\r\\n </div>\\r\\n <div class=\\\"col-md-2\\\">\\r\\n <button click.delegate=\\\"downloadLetterPDF(2)\\\" class=\\\"btn btn-outline-primary\\\">Net van te voren</button>\\r\\n </div>\\r\\n <div class=\\\"col-md-2\\\">\\r\\n <button click.delegate=\\\"downloadLetterPDF(3)\\\" class=\\\"btn btn-outline-primary\\\">Voorgerecht</button>\\r\\n </div>\\r\\n <div class=\\\"col-md-2\\\">\\r\\n <button click.delegate=\\\"downloadLetterPDF(4)\\\" class=\\\"btn btn-outline-primary\\\">Hoofdgerecht</button>\\r\\n </div>\\r\\n <div class=\\\"col-md-2\\\">\\r\\n <button click.delegate=\\\"downloadLetterPDF(5)\\\" class=\\\"btn btn-outline-primary\\\">Nagerecht</button>\\r\\n </div>\\r\\n </div>\\r\\n <hr />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <h3>Voorgerecht</h3>\\r\\n <div class=\\\"background-img voorgerecht\\\"></div>\\r\\n <table class=\\\"table table-striped\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Thuis</th>\\r\\n <th>Bezoeker 1</th>\\r\\n <th>Bezoeker 2</th>\\r\\n <th>Reserve</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr repeat.for=\\\"schedule of schedules\\\" if.bind=\\\"schedule.courseId == 1\\\">\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.cookUserId\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.cookUserId == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.cookUserId\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.cookUserId\\\" value.bind=\\\"user.id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor1Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor1Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor1Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor1Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor2Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor2Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor2Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor2Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor3Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor3Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor3Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor3Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <h3>Hoofdgerecht</h3>\\r\\n <div class=\\\"background-img hoofdgerecht\\\"></div>\\r\\n <table class=\\\"table table-striped\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Thuis</th>\\r\\n <th>Bezoeker 1</th>\\r\\n <th>Bezoeker 2</th>\\r\\n <th>Reserve</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr repeat.for=\\\"schedule of schedules\\\" if.bind=\\\"schedule.courseId == 2\\\">\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.cookUserId\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.cookUserId == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.cookUserId\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.cookUserId\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor1Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor1Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor1Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor1Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor2Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor2Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor2Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor2Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor3Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor3Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor3Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor3Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <h3>Nagerecht</h3>\\r\\n <div class=\\\"background-img nagerecht\\\"></div>\\r\\n <table class=\\\"table table-striped\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Thuis</th>\\r\\n <th>Bezoeker 1</th>\\r\\n <th>Bezoeker 2</th>\\r\\n <th>Reserve</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr repeat.for=\\\"schedule of schedules\\\" if.bind=\\\"schedule.courseId == 3\\\">\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.cookUserId\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.cookUserId == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.cookUserId\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.cookUserId\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor1Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor1Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor1Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor1Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor2Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor2Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor2Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor2Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n <td class=\\\"col-md-3\\\">\\r\\n <select value.bind=\\\"schedule.visitor3Id\\\" class=\\\"form-control\\\">\\r\\n <option if.bind=\\\"schedule.visitor3Id == 0\\\" selected></option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id == schedule.visitor3Id\\\" selected>${user.name}</option>\\r\\n <option repeat.for=\\\"user of users\\\" value=\\\"${user.id}\\\" if.bind=\\\"user.id != schedule.visitor3Id\\\">${user.name}</option>\\r\\n </select>\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-lg-12\\\">\\r\\n <button class=\\\"btn btn-outline-primary\\\" click.delegate=\\\"saveUserSchedule()\\\">Opslaan</button>\\r\\n <a if.bind=\\\"!couple.on_delete\\\" href=\\\"#\\\" class=\\\"trans-delay pull-right btn ${ confirm == false ? 'btn-outline-danger' : 'btn-outline-warning' }\\\" click.delegate=\\\"delete()\\\">${ confirm == false ? 'Verwijder' : 'Bevestigen' }</a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/schedule/schedule.html\n// module id = app/components/schedule/schedule.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".background-img {\\n height: 150px;\\n width: 100%;\\n margin-bottom: 5px;\\n border-radius: 5px; }\\n .background-img.voorgerecht {\\n background: url(\" + require(\"./img/voorgerecht-gray.png\") + \") no-repeat;\\n background-size: 100% auto; }\\n .background-img.hoofdgerecht {\\n background: url(\" + require(\"./img/hoofdgerecht-gray.png\") + \") no-repeat;\\n background-size: 100% auto; }\\n .background-img.nagerecht {\\n background: url(\" + require(\"./img/nagerecht-gray.png\") + \") no-repeat;\\n background-size: 100% auto; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/schedule/schedule.scss\n// module id = app/components/schedule/schedule.scss\n// module chunks = 0","import { Router } from 'aurelia-router';\r\nimport { autoinject } from \"aurelia-framework\";\r\nimport { HttpClient, json } from 'aurelia-fetch-client';\r\n\r\n@autoinject\r\nexport class Schedules {\r\n title = \"Couples\";\r\n schedules: Schedule[] = [];\r\n empty: boolean = false;\r\n date: string;\r\n\r\n pageSize = 10;\r\n\r\n constructor(private router: Router, http: HttpClient) {\r\n http.fetch('api/schedule')\r\n .then(response => response.json() as Promise<Schedule[]>)\r\n .then(data => {\r\n this.schedules = data\r\n if (!this.schedules[0]) this.empty = true;\r\n });\r\n }\r\n\r\n rowSelected($event: any) {\r\n //console.log($event.detail.row);\r\n this.router.navigate('schedules/' + $event.detail.row.id);\r\n }\r\n\r\n}\r\n\r\nclass Schedule {\r\n constructor(\r\n public id: number,\r\n public date: string,\r\n public name: string,\r\n public on_delete: string\r\n ) { }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/schedules/schedules.ts","module.exports = \"<template>\\r\\n <require from=\\\"./schedules.scss\\\"></require>\\r\\n\\r\\n <h1>Indelingen</h1>\\r\\n <div if.bind=\\\"message\\\" class=\\\"alert alert-info\\\" role=\\\"alert\\\">${message}</div>\\r\\n <hr>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <div class=\\\"form-inline\\\">\\r\\n <div class=\\\"form-group\\\">\\r\\n <label for=\\\"pageSize\\\">Page Size: </label>\\r\\n <select value.bind=\\\"pageSize\\\" id=\\\"pageSize\\\" class=\\\"form-control\\\">\\r\\n <option model.bind=\\\"5\\\">5</option>\\r\\n <option model.bind=\\\"10\\\">10</option>\\r\\n <option model.bind=\\\"20\\\">20</option>\\r\\n <option model.bind=\\\"50\\\">50</option>\\r\\n </select>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div if.bind=\\\"!schedules[0] && empty == false\\\" style=\\\"color: #bc313b; margin-top: 50px;;\\\" class=\\\"la-ball-spin la-2x\\\">\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n </div>\\r\\n\\r\\n <div if.bind=\\\"!schedules[0] && empty == true\\\">\\r\\n Er zijn geen planningen gevonden.\\r\\n </div>\\r\\n\\r\\n <table if.bind=\\\"schedules[0]\\\" class=\\\"table table-hover\\\" aurelia-table=\\\"data.bind: schedules; display-data.bind: $displayData;\\r\\n current-page.bind: currentPage; page-size.bind: pageSize; total-items.bind: totalItems;\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Naam</th>\\r\\n <th>Datum</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr repeat.for=\\\"schedule of $displayData\\\" aut-select=\\\"row.bind: schedule; selected-class: info\\\" select.delegate=\\\"rowSelected($event)\\\">\\r\\n <td>${schedule.name}</td>\\r\\n <td>${schedule.date}</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n\\r\\n <div if.bind=\\\"schedules[0]\\\" class=\\\"row\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <aut-pagination current-page.bind=\\\"currentPage\\\" page-size.bind=\\\"pageSize\\\" total-items.bind=\\\"totalItems\\\" pagination-size.bind=\\\"5\\\"\\r\\n boundary-links.bind=\\\"true\\\"></aut-pagination>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"fixed-action-btn\\\">\\r\\n <a href=\\\"#/schedule/create\\\" class=\\\"btn-floating btn-large\\\">\\r\\n <i class=\\\"material-icons\\\">+</i>\\r\\n </a>\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/schedules/schedules.html\n// module id = app/components/schedules/schedules.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/schedules/schedules.scss\n// module id = app/components/schedules/schedules.scss\n// module chunks = 0","import { HttpClient, json } from 'aurelia-fetch-client';\r\nimport { inject } from \"aurelia-framework\";\r\nimport { activationStrategy } from 'aurelia-router';\r\n\r\n@inject(HttpClient)\r\nexport class User {\r\n couple: Couple;\r\n coupleCourseStats: CoupleStats;\r\n coupleVisitStats: CoupleStats;\r\n coupleVisitedStats: CoupleStats;\r\n confirm: boolean = false;\r\n succes: boolean;\r\n message: string;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n activate(params: any) {\r\n this.http.fetch('api/user/' + params.id, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n\r\n })\r\n .then(response => response.json())\r\n .then(data => this.couple = data);\r\n this.http.fetch('api/user/GetCourseStats/' + params.id, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n\r\n })\r\n .then(response => response.json())\r\n .then(data => this.coupleCourseStats = data);\r\n this.http.fetch('api/user/GetVisitStats/' + params.id, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n\r\n })\r\n .then(response => response.json())\r\n .then(data => this.coupleVisitStats = data);\r\n this.http.fetch('api/user/GetVisitedStats/' + params.id, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n\r\n })\r\n .then(response => response.json())\r\n .then(data => this.coupleVisitedStats = data);\r\n } \r\n\r\n delete() {\r\n if (this.confirm) {\r\n this.http.fetch('api/user/' + this.couple.id + '/Delete')\r\n .then(response => response.json())\r\n .then(data => this.message = data);\r\n this.confirm = false;\r\n }\r\n if (!this.confirm) this.confirm = true;\r\n }\r\n\r\n recover() {\r\n if (this.confirm) {\r\n this.http.fetch('api/user/' + this.couple.id + '/Recover')\r\n .then(response => response.json())\r\n .then(data => this.message = data);\r\n this.confirm = false;\r\n }\r\n if (!this.confirm) this.confirm = true;\r\n }\r\n\r\n saveCouple() {\r\n this.http.fetch('api/user/save', {\r\n method: 'post',\r\n body: json(this.couple)\r\n }).then(response => response.json())\r\n .then(data => this.message = data);\r\n }\r\n}\r\n\r\nclass Couple {\r\n constructor(\r\n public id: number,\r\n public Name: string,\r\n public Firstname: string,\r\n public Adres: string,\r\n public Postcode: string,\r\n public city: string,\r\n public tel: string,\r\n public mobile: string,\r\n public email: string,\r\n public dieet1: string,\r\n public dieet2: string,\r\n public on_delete: string\r\n ) { }\r\n}\r\n\r\nclass CoupleStats {\r\n constructor(\r\n public Total: string,\r\n public Date: string,\r\n public Name: string\r\n ) { }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/app/components/user/user.ts","module.exports = \"<template>\\r\\n <require from=\\\"./user.scss\\\"></require>\\r\\n <div if.bind=\\\"!couple\\\" class=\\\"load-aurelia\\\">\\r\\n <div style=\\\"color: #bc313b; margin-top: 50px;\\\" class=\\\"la-ball-spin la-2x\\\">\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n <div></div>\\r\\n </div>\\r\\n </div>\\r\\n <div if.bind=\\\"couple\\\">\\r\\n <h1 if.bind=\\\"couple.name\\\">${couple.firstname} ${couple.name}</h1>\\r\\n <div if.bind=\\\"message\\\" class=\\\"alert alert-info\\\" role=\\\"alert\\\">${message}</div>\\r\\n <hr>\\r\\n <form submit.trigger=\\\"saveCouple()\\\" class=\\\"col-md-7\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <label>Naam</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"couple.name\\\" class=\\\"form-control\\\" placeholder=\\\"Janssen\\\">\\r\\n </div>\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <label>Voornamen</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"couple.firstname\\\" class=\\\"form-control\\\" placeholder=\\\"jan en jan\\\">\\r\\n </div>\\r\\n </div>\\r\\n <hr />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-6\\\">\\r\\n <label>Adres</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"couple.adres\\\" class=\\\"form-control\\\" placeholder=\\\"Straatnaam 1\\\">\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Postcode</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"couple.postcode\\\" class=\\\"form-control\\\" placeholder=\\\"1234 AB\\\">\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Plaats</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"couple.city\\\" class=\\\"form-control\\\" placeholder=\\\"Stad\\\">\\r\\n </div>\\r\\n </div>\\r\\n <hr />\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Telefoon</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"couple.tel\\\" class=\\\"form-control\\\" placeholder=\\\"0495-111111\\\">\\r\\n </div>\\r\\n <div class=\\\"col-sm-12 col-md-6\\\">\\r\\n <label>Mobiel</label>\\r\\n <input type=\\\"text\\\" value.bind=\\\"couple.mobile\\\" class=\\\"form-control\\\" placeholder=\\\"06-12345678\\\">\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 col-md-12\\\">\\r\\n <label>Email</label>\\r\\n <input type=\\\"email\\\" value.bind=\\\"couple.email\\\" class=\\\"form-control\\\" placeholder=\\\"Example@example.nl\\\">\\r\\n </div>\\r\\n </div>\\r\\n <hr>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <label>Dieet voorschriften 1</label>\\r\\n <textarea type=\\\"text\\\" value.bind=\\\"couple.dieet1\\\" class=\\\"form-control\\\"></textarea>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-12\\\">\\r\\n <label>Dieet voorschriften 2</label>\\r\\n <textarea type=\\\"text\\\" value.bind=\\\"couple.dieet2\\\" class=\\\"form-control\\\"></textarea>\\r\\n </div>\\r\\n </div>\\r\\n <hr>\\r\\n <button type=\\\"submit\\\" class=\\\"btn btn-outline-primary\\\">Opslaan</button>\\r\\n <a if.bind=\\\"!couple.on_delete\\\" href=\\\"#\\\" class=\\\"trans-delay pull-right btn ${ confirm == false ? 'btn-outline-danger' : 'btn-outline-warning' }\\\" click.delegate=\\\"delete()\\\">${ confirm == false ? 'Verwijder' : 'Bevestigen' }</a>\\r\\n <a if.bind=\\\"couple.on_delete\\\" href=\\\"#\\\" class=\\\"trans-delay pull-right btn ${ confirm == false ? 'btn-outline-danger' : 'btn-outline-warning' }\\\" click.delegate=\\\"recover()\\\">${ confirm == false ? 'Herstellen' : 'Bevestigen' }</a>\\r\\n </form>\\r\\n <div class=\\\"col-md-5\\\">\\r\\n <h3>Statistieken</h3>\\r\\n <table class=\\\"table\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Gerecht</th>\\r\\n <th>Aantal</th>\\r\\n <th>Laatst gekookt</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr if.bind=\\\"coupleCourseStats[0]\\\" repeat.for=\\\"stats of coupleCourseStats\\\">\\r\\n <td>${stats.name}</td>\\r\\n <td>${stats.total}</td>\\r\\n <td>${stats.date}</td>\\r\\n </tr>\\r\\n <tr if.bind=\\\"!coupleCourseStats[0]\\\">\\r\\n <td colspan=\\\"3\\\">Geen gegevens beschikbaar</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n <h3>Thuis op bezoek gekregen</h3>\\r\\n <div class=\\\"scroll\\\">\\r\\n <table class=\\\"table\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Naam</th>\\r\\n <th>Aantal</th>\\r\\n <th>Laatste keer</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr if.bind=\\\"coupleVisitStats[0]\\\" repeat.for=\\\"stats of coupleVisitStats\\\">\\r\\n <td>${stats.name}</td>\\r\\n <td>${stats.total}</td>\\r\\n <td>${stats.date}</td>\\r\\n </tr>\\r\\n <tr if.bind=\\\"!coupleVisitStats[0]\\\">\\r\\n <td colspan=\\\"3\\\">Geen gegevens beschikbaar</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n <h3>Op bezoek geweest bij</h3>\\r\\n <div class=\\\"scroll\\\">\\r\\n <table class=\\\"table\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>Naam</th>\\r\\n <th>Aantal</th>\\r\\n <th>Laatste keer</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr if.bind=\\\"coupleVisitedStats[0]\\\" repeat.for=\\\"stats of coupleVisitedStats\\\">\\r\\n <td>${stats.name}</td>\\r\\n <td>${stats.total}</td>\\r\\n <td>${stats.date}</td>\\r\\n </tr>\\r\\n <tr if.bind=\\\"!coupleVisitedStats[0]\\\">\\r\\n <td colspan=\\\"3\\\">Geen gegevens beschikbaar</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n </div>\\r\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/user/user.html\n// module id = app/components/user/user.html\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".table {\\n margin-bottom: 40px; }\\n\\n.scroll {\\n display: block;\\n max-height: 166px;\\n overflow-y: auto;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n padding-right: 5px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./ClientApp/app/components/user/user.scss\n// module id = app/components/user/user.scss\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AutSortCustomAttribute = exports.AutSelectCustomAttribute = exports.AutPaginationCustomElement = exports.AureliaTableCustomAttribute = undefined;\nexports.configure = configure;\n\nvar _aureliaPal = require('aurelia-pal');\n\nvar _auTable = require('./au-table');\n\nvar _auTablePagination = require('./au-table-pagination');\n\nvar _auTableSelect = require('./au-table-select');\n\nvar _auTableSort = require('./au-table-sort');\n\nfunction configure(config) {\n config.globalResources(_aureliaPal.PLATFORM.moduleName('./au-table'));\n config.globalResources(_aureliaPal.PLATFORM.moduleName('./au-table-pagination'));\n config.globalResources(_aureliaPal.PLATFORM.moduleName('./au-table-select'));\n config.globalResources(_aureliaPal.PLATFORM.moduleName('./au-table-sort'));\n}\n\nexports.AureliaTableCustomAttribute = _auTable.AureliaTableCustomAttribute;\nexports.AutPaginationCustomElement = _auTablePagination.AutPaginationCustomElement;\nexports.AutSelectCustomAttribute = _auTableSelect.AutSelectCustomAttribute;\nexports.AutSortCustomAttribute = _auTableSort.AutSortCustomAttribute;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/au-table/dist/commonjs/index.js\n// module id = au-table\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AureliaTableCustomAttribute = undefined;\n\nvar _dec, _dec2, _dec3, _dec4, _dec5, _class, _desc, _value, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;\n\nvar _aureliaFramework = require('aurelia-framework');\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nvar AureliaTableCustomAttribute = exports.AureliaTableCustomAttribute = (_dec = (0, _aureliaFramework.inject)(_aureliaFramework.BindingEngine), _dec2 = (0, _aureliaFramework.bindable)({ defaultBindingMode: _aureliaFramework.bindingMode.twoWay }), _dec3 = (0, _aureliaFramework.bindable)({ defaultBindingMode: _aureliaFramework.bindingMode.twoWay }), _dec4 = (0, _aureliaFramework.bindable)({ defaultBindingMode: _aureliaFramework.bindingMode.twoWay }), _dec5 = (0, _aureliaFramework.bindable)({ defaultBindingMode: _aureliaFramework.bindingMode.twoWay }), _dec(_class = (_class2 = function () {\n function AureliaTableCustomAttribute(bindingEngine) {\n _classCallCheck(this, AureliaTableCustomAttribute);\n\n _initDefineProp(this, 'data', _descriptor, this);\n\n _initDefineProp(this, 'displayData', _descriptor2, this);\n\n _initDefineProp(this, 'filters', _descriptor3, this);\n\n _initDefineProp(this, 'currentPage', _descriptor4, this);\n\n _initDefineProp(this, 'pageSize', _descriptor5, this);\n\n _initDefineProp(this, 'totalItems', _descriptor6, this);\n\n _initDefineProp(this, 'api', _descriptor7, this);\n\n this.isAttached = false;\n this.sortChangedListeners = [];\n this.beforePagination = [];\n this.filterObservers = [];\n\n this.bindingEngine = bindingEngine;\n }\n\n AureliaTableCustomAttribute.prototype.bind = function bind() {\n var _this = this;\n\n if (Array.isArray(this.data)) {\n this.dataObserver = this.bindingEngine.collectionObserver(this.data).subscribe(function () {\n return _this.applyPlugins();\n });\n }\n\n if (Array.isArray(this.filters)) {\n for (var _iterator = this.filters, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var filter = _ref;\n\n var observer = this.bindingEngine.propertyObserver(filter, 'value').subscribe(function () {\n return _this.filterChanged();\n });\n this.filterObservers.push(observer);\n }\n }\n\n this.api = {\n revealItem: function revealItem(item) {\n return _this.revealItem(item);\n }\n };\n };\n\n AureliaTableCustomAttribute.prototype.attached = function attached() {\n this.isAttached = true;\n this.applyPlugins();\n };\n\n AureliaTableCustomAttribute.prototype.detached = function detached() {\n if (this.dataObserver) {\n this.dataObserver.dispose();\n }\n\n for (var _iterator2 = this.filterObservers, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref2;\n\n if (_isArray2) {\n if (_i2 >= _iterator2.length) break;\n _ref2 = _iterator2[_i2++];\n } else {\n _i2 = _iterator2.next();\n if (_i2.done) break;\n _ref2 = _i2.value;\n }\n\n var observer = _ref2;\n\n observer.dispose();\n }\n };\n\n AureliaTableCustomAttribute.prototype.filterChanged = function filterChanged() {\n if (this.hasPagination()) {\n this.currentPage = 1;\n }\n this.applyPlugins();\n };\n\n AureliaTableCustomAttribute.prototype.currentPageChanged = function currentPageChanged() {\n this.applyPlugins();\n };\n\n AureliaTableCustomAttribute.prototype.pageSizeChanged = function pageSizeChanged() {\n this.applyPlugins();\n };\n\n AureliaTableCustomAttribute.prototype.getDataCopy = function getDataCopy() {\n return [].concat(this.data);\n };\n\n AureliaTableCustomAttribute.prototype.applyPlugins = function applyPlugins() {\n if (!this.isAttached || !this.data) {\n return;\n }\n\n var localData = this.getDataCopy();\n\n if (this.hasFilter()) {\n localData = this.doFilter(localData);\n }\n\n if ((this.sortKey || this.customSort) && this.sortOrder !== 0) {\n this.doSort(localData);\n }\n\n this.totalItems = localData.length;\n\n if (this.hasPagination()) {\n this.beforePagination = [].concat(localData);\n localData = this.doPaginate(localData);\n }\n\n this.displayData = localData;\n };\n\n AureliaTableCustomAttribute.prototype.doFilter = function doFilter(toFilter) {\n var filteredData = [];\n\n for (var _iterator3 = toFilter, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {\n var _ref3;\n\n if (_isArray3) {\n if (_i3 >= _iterator3.length) break;\n _ref3 = _iterator3[_i3++];\n } else {\n _i3 = _iterator3.next();\n if (_i3.done) break;\n _ref3 = _i3.value;\n }\n\n var item = _ref3;\n\n var passed = true;\n\n for (var _iterator4 = this.filters, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {\n var _ref4;\n\n if (_isArray4) {\n if (_i4 >= _iterator4.length) break;\n _ref4 = _iterator4[_i4++];\n } else {\n _i4 = _iterator4.next();\n if (_i4.done) break;\n _ref4 = _i4.value;\n }\n\n var filter = _ref4;\n\n if (!this.passFilter(item, filter)) {\n passed = false;\n break;\n }\n }\n\n if (passed) {\n filteredData.push(item);\n }\n }\n\n return filteredData;\n };\n\n AureliaTableCustomAttribute.prototype.passFilter = function passFilter(item, filter) {\n if (typeof filter.custom === 'function' && !filter.custom(filter.value, item)) {\n return false;\n }\n\n if (filter.value === null || filter.value === undefined || !Array.isArray(filter.keys)) {\n return true;\n }\n\n for (var _iterator5 = filter.keys, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {\n var _ref5;\n\n if (_isArray5) {\n if (_i5 >= _iterator5.length) break;\n _ref5 = _iterator5[_i5++];\n } else {\n _i5 = _iterator5.next();\n if (_i5.done) break;\n _ref5 = _i5.value;\n }\n\n var key = _ref5;\n\n var value = this.getPropertyValue(item, key);\n\n if (value !== null && value !== undefined) {\n value = value.toString().toLowerCase();\n\n if (value.indexOf(filter.value.toString().toLowerCase()) > -1) {\n return true;\n }\n }\n }\n return false;\n };\n\n AureliaTableCustomAttribute.prototype.doSort = function doSort(toSort) {\n var _this2 = this;\n\n toSort.sort(function (a, b) {\n if (typeof _this2.customSort === 'function') {\n return _this2.customSort(a, b, _this2.sortOrder);\n }\n\n var val1 = void 0;\n var val2 = void 0;\n\n if (typeof _this2.sortKey === 'function') {\n val1 = _this2.sortKey(a, _this2.sortOrder);\n val2 = _this2.sortKey(b, _this2.sortOrder);\n } else {\n val1 = _this2.getPropertyValue(a, _this2.sortKey);\n val2 = _this2.getPropertyValue(b, _this2.sortKey);\n }\n\n if (val1 === null || val1 === undefined) val1 = '';\n if (val2 === null || val2 === undefined) val2 = '';\n\n if (_this2.isNumeric(val1) && _this2.isNumeric(val2)) {\n return (val1 - val2) * _this2.sortOrder;\n }\n\n var str1 = val1.toString();\n var str2 = val2.toString();\n\n return str1.localeCompare(str2) * _this2.sortOrder;\n });\n };\n\n AureliaTableCustomAttribute.prototype.getPropertyValue = function getPropertyValue(object, keyPath) {\n keyPath = keyPath.replace(/\\[(\\w+)\\]/g, '.$1');\n keyPath = keyPath.replace(/^\\./, '');\n var a = keyPath.split('.');\n for (var i = 0, n = a.length; i < n; ++i) {\n var k = a[i];\n if (k in object) {\n object = object[k];\n } else {\n return;\n }\n }\n return object;\n };\n\n AureliaTableCustomAttribute.prototype.isNumeric = function isNumeric(toCheck) {\n return !isNaN(parseFloat(toCheck)) && isFinite(toCheck);\n };\n\n AureliaTableCustomAttribute.prototype.doPaginate = function doPaginate(toPaginate) {\n if (toPaginate.length <= this.pageSize) {\n return toPaginate;\n }\n\n var start = (this.currentPage - 1) * this.pageSize;\n\n var end = start + this.pageSize;\n\n return toPaginate.slice(start, end);\n };\n\n AureliaTableCustomAttribute.prototype.hasFilter = function hasFilter() {\n return Array.isArray(this.filters) && this.filters.length > 0;\n };\n\n AureliaTableCustomAttribute.prototype.hasPagination = function hasPagination() {\n return this.currentPage > 0 && this.pageSize > 0;\n };\n\n AureliaTableCustomAttribute.prototype.dataChanged = function dataChanged() {\n var _this3 = this;\n\n if (this.dataObserver) {\n this.dataObserver.dispose();\n }\n\n this.dataObserver = this.bindingEngine.collectionObserver(this.data).subscribe(function () {\n return _this3.applyPlugins();\n });\n\n this.applyPlugins();\n };\n\n AureliaTableCustomAttribute.prototype.sortChanged = function sortChanged(key, custom, order) {\n this.sortKey = key;\n this.customSort = custom;\n this.sortOrder = order;\n this.applyPlugins();\n this.emitSortChanged();\n };\n\n AureliaTableCustomAttribute.prototype.addSortChangedListener = function addSortChangedListener(callback) {\n this.sortChangedListeners.push(callback);\n };\n\n AureliaTableCustomAttribute.prototype.removeSortChangedListener = function removeSortChangedListener(callback) {\n this.removeListener(callback, this.sortChangedListeners);\n };\n\n AureliaTableCustomAttribute.prototype.emitSortChanged = function emitSortChanged() {\n for (var _iterator6 = this.sortChangedListeners, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {\n var _ref6;\n\n if (_isArray6) {\n if (_i6 >= _iterator6.length) break;\n _ref6 = _iterator6[_i6++];\n } else {\n _i6 = _iterator6.next();\n if (_i6.done) break;\n _ref6 = _i6.value;\n }\n\n var listener = _ref6;\n\n listener();\n }\n };\n\n AureliaTableCustomAttribute.prototype.removeListener = function removeListener(callback, listeners) {\n var index = listeners.indexOf(callback);\n\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n\n AureliaTableCustomAttribute.prototype.revealItem = function revealItem(item) {\n if (!this.hasPagination()) {\n return true;\n }\n\n var index = this.beforePagination.indexOf(item);\n\n if (index === -1) {\n return false;\n }\n\n this.currentPage = Math.ceil((index + 1) / this.pageSize);\n\n return true;\n };\n\n return AureliaTableCustomAttribute;\n}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'data', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'displayData', [_dec2], {\n enumerable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'filters', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, 'currentPage', [_dec3], {\n enumerable: true,\n initializer: null\n}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, 'pageSize', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, 'totalItems', [_dec4], {\n enumerable: true,\n initializer: null\n}), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, 'api', [_dec5], {\n enumerable: true,\n initializer: null\n})), _class2)) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/au-table/dist/commonjs/au-table.js\n// module id = au-table/au-table\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AutPaginationCustomElement = undefined;\n\nvar _dec, _desc, _value, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;\n\nvar _aureliaFramework = require('aurelia-framework');\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nvar AutPaginationCustomElement = exports.AutPaginationCustomElement = (_dec = (0, _aureliaFramework.bindable)({ defaultBindingMode: _aureliaFramework.bindingMode.twoWay }), (_class = function () {\n function AutPaginationCustomElement() {\n _classCallCheck(this, AutPaginationCustomElement);\n\n _initDefineProp(this, 'currentPage', _descriptor, this);\n\n _initDefineProp(this, 'pageSize', _descriptor2, this);\n\n _initDefineProp(this, 'totalItems', _descriptor3, this);\n\n _initDefineProp(this, 'hideSinglePage', _descriptor4, this);\n\n _initDefineProp(this, 'paginationSize', _descriptor5, this);\n\n _initDefineProp(this, 'boundaryLinks', _descriptor6, this);\n\n _initDefineProp(this, 'firstText', _descriptor7, this);\n\n _initDefineProp(this, 'lastText', _descriptor8, this);\n\n _initDefineProp(this, 'directionLinks', _descriptor9, this);\n\n _initDefineProp(this, 'previousText', _descriptor10, this);\n\n _initDefineProp(this, 'nextText', _descriptor11, this);\n\n this.totalPages = 1;\n this.displayPages = [];\n }\n\n AutPaginationCustomElement.prototype.bind = function bind() {\n if (this.currentPage === undefined || this.currentPage === null || this.currentPage < 1) {\n this.currentPage = 1;\n }\n\n if (this.pageSize === undefined || this.pageSize === null || this.pageSize < 1) {\n this.pageSize = 5;\n }\n };\n\n AutPaginationCustomElement.prototype.totalItemsChanged = function totalItemsChanged() {\n this.currentPage = 1;\n this.calculatePages();\n };\n\n AutPaginationCustomElement.prototype.pageSizeChanged = function pageSizeChanged() {\n this.currentPage = 1;\n this.calculatePages();\n };\n\n AutPaginationCustomElement.prototype.currentPageChanged = function currentPageChanged() {\n this.calculatePages();\n };\n\n AutPaginationCustomElement.prototype.calculatePages = function calculatePages() {\n if (this.pageSize === 0) {\n this.totalPages = 1;\n } else {\n this.totalPages = this.totalItems <= this.pageSize ? 1 : Math.ceil(this.totalItems / this.pageSize);\n }\n\n if (isNaN(this.paginationSize) || this.paginationSize <= 0) {\n this.displayAllPages();\n } else {\n this.limitVisiblePages();\n }\n };\n\n AutPaginationCustomElement.prototype.displayAllPages = function displayAllPages() {\n var displayPages = [];\n\n for (var i = 1; i <= this.totalPages; i++) {\n displayPages.push({\n title: i.toString(),\n value: i\n });\n }\n this.displayPages = displayPages;\n };\n\n AutPaginationCustomElement.prototype.limitVisiblePages = function limitVisiblePages() {\n var displayPages = [];\n\n var totalTiers = Math.ceil(this.totalPages / this.paginationSize);\n\n var activeTier = Math.ceil(this.currentPage / this.paginationSize);\n\n var start = (activeTier - 1) * this.paginationSize + 1;\n var end = start + this.paginationSize;\n\n if (activeTier > 1) {\n displayPages.push({\n title: '...',\n value: start - 1\n });\n }\n\n for (var i = start; i < end; i++) {\n if (i > this.totalPages) {\n break;\n }\n\n displayPages.push({\n title: i.toString(),\n value: i\n });\n }\n\n if (activeTier < totalTiers) {\n displayPages.push({\n title: '...',\n value: end\n });\n }\n\n this.displayPages = displayPages;\n };\n\n AutPaginationCustomElement.prototype.selectPage = function selectPage(page) {\n if (page < 1 || page > this.totalPages || page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n };\n\n AutPaginationCustomElement.prototype.nextPage = function nextPage() {\n if (this.currentPage < this.totalPages) {\n this.currentPage++;\n }\n };\n\n AutPaginationCustomElement.prototype.previousPage = function previousPage() {\n if (this.currentPage > 1) {\n this.currentPage--;\n }\n };\n\n AutPaginationCustomElement.prototype.firstPage = function firstPage() {\n this.currentPage = 1;\n };\n\n AutPaginationCustomElement.prototype.lastPage = function lastPage() {\n this.currentPage = this.totalPages;\n };\n\n return AutPaginationCustomElement;\n}(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'currentPage', [_dec], {\n enumerable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'pageSize', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, 'totalItems', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, 'hideSinglePage', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return true;\n }\n}), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, 'paginationSize', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, 'boundaryLinks', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return false;\n }\n}), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, 'firstText', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return 'First';\n }\n}), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, 'lastText', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return 'Last';\n }\n}), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, 'directionLinks', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return true;\n }\n}), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, 'previousText', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return '<';\n }\n}), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, 'nextText', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return '>';\n }\n})), _class));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/au-table/dist/commonjs/au-table-pagination.js\n// module id = au-table/au-table-pagination\n// module chunks = 0","module.exports = \"<template>\\n <template replaceable part=\\\"pagination\\\">\\n <nav hide.bind=\\\"hideSinglePage && totalPages === 1\\\">\\n <ul class=\\\"pagination\\\">\\n\\n <li class-name.bind=\\\"currentPage === 1 ? 'disabled' : ''\\\" if.bind=\\\"boundaryLinks\\\">\\n <a aria-label=\\\"Previous\\\" click.delegate=\\\"firstPage()\\\">\\n <span aria-hidden=\\\"true\\\" innerhtml.bind=\\\"firstText\\\"></span>\\n </a>\\n </li>\\n\\n <li class-name.bind=\\\"currentPage === 1 ? 'disabled' : ''\\\" if.bind=\\\"directionLinks\\\">\\n <a aria-label=\\\"Previous\\\" click.delegate=\\\"previousPage()\\\">\\n <span aria-hidden=\\\"true\\\" innerhtml.bind=\\\"previousText\\\"></span>\\n </a>\\n </li>\\n\\n <li repeat.for=\\\"page of displayPages\\\" class-name.bind=\\\"currentPage === page.value ? 'active' : ''\\\">\\n <a click.delegate=\\\"selectPage(page.value)\\\">${page.title}</a>\\n </li>\\n\\n <li class-name.bind=\\\"currentPage === totalPages ? 'disabled' : ''\\\" if.bind=\\\"directionLinks\\\">\\n <a aria-label=\\\"Next\\\" click.delegate=\\\"nextPage()\\\">\\n <span aria-hidden=\\\"true\\\" innerhtml.bind=\\\"nextText\\\"></span>\\n </a>\\n </li>\\n\\n <li class-name.bind=\\\"currentPage === totalPages ? 'disabled' : ''\\\" if.bind=\\\"boundaryLinks\\\">\\n <a aria-label=\\\"Previous\\\" click.delegate=\\\"lastPage()\\\">\\n <span aria-hidden=\\\"true\\\" innerhtml.bind=\\\"lastText\\\"></span>\\n </a>\\n </li>\\n </ul>\\n </nav>\\n </template>\\n</template>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/au-table/dist/commonjs/au-table-pagination.html\n// module id = au-table/au-table-pagination.html\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AutSelectCustomAttribute = undefined;\n\nvar _dec, _dec2, _class, _desc, _value, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;\n\nvar _aureliaFramework = require('aurelia-framework');\n\nvar _auTable = require('./au-table');\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nvar AutSelectCustomAttribute = exports.AutSelectCustomAttribute = (_dec = (0, _aureliaFramework.inject)(_auTable.AureliaTableCustomAttribute, Element, _aureliaFramework.BindingEngine), _dec2 = (0, _aureliaFramework.bindable)({ defaultBindingMode: _aureliaFramework.bindingMode.twoWay }), _dec(_class = (_class2 = function () {\n function AutSelectCustomAttribute(auTable, element, bindingEngine) {\n var _this = this;\n\n _classCallCheck(this, AutSelectCustomAttribute);\n\n _initDefineProp(this, 'row', _descriptor, this);\n\n _initDefineProp(this, 'mode', _descriptor2, this);\n\n _initDefineProp(this, 'selectedClass', _descriptor3, this);\n\n _initDefineProp(this, 'custom', _descriptor4, this);\n\n this.auTable = auTable;\n this.element = element;\n this.bindingEngine = bindingEngine;\n\n this.rowSelectedListener = function (event) {\n _this.handleRowSelected(event);\n };\n }\n\n AutSelectCustomAttribute.prototype.attached = function attached() {\n var _this2 = this;\n\n if (!this.custom) {\n this.element.style.cursor = 'pointer';\n this.element.addEventListener('click', this.rowSelectedListener);\n }\n\n this.selectedSubscription = this.bindingEngine.propertyObserver(this.row, '$isSelected').subscribe(function () {\n return _this2.isSelectedChanged();\n });\n\n this.setClass();\n };\n\n AutSelectCustomAttribute.prototype.detached = function detached() {\n if (!this.custom) {\n this.element.removeEventListener('click', this.rowSelectedListener);\n }\n\n this.selectedSubscription.dispose();\n };\n\n AutSelectCustomAttribute.prototype.setClass = function setClass() {\n if (this.row.$isSelected) {\n this.element.classList.add(this.selectedClass);\n } else {\n this.element.classList.remove(this.selectedClass);\n }\n };\n\n AutSelectCustomAttribute.prototype.handleRowSelected = function handleRowSelected(event) {\n var source = event.target || event.srcElement;\n if (source.tagName.toLowerCase() !== 'td') {\n return;\n }\n this.row.$isSelected = this.row.$isSelected ? false : true;\n };\n\n AutSelectCustomAttribute.prototype.dispatchSelectedEvent = function dispatchSelectedEvent() {\n var selectedEvent = void 0;\n if (window.CustomEvent) {\n selectedEvent = new CustomEvent('select', {\n detail: { row: this.row },\n bubbles: true\n });\n } else {\n selectedEvent = document.createEvent('CustomEvent');\n selectedEvent.initCustomEvent('select', true, true, {\n detail: { row: this.row }\n });\n }\n this.element.dispatchEvent(selectedEvent);\n };\n\n AutSelectCustomAttribute.prototype.isSelectedChanged = function isSelectedChanged() {\n this.setClass();\n\n if (this.row.$isSelected) {\n if (this.mode === 'single') {\n this.deselectAll();\n }\n\n this.dispatchSelectedEvent();\n }\n };\n\n AutSelectCustomAttribute.prototype.deselectAll = function deselectAll() {\n var _this3 = this;\n\n this.auTable.data.forEach(function (item) {\n if (item !== _this3.row) {\n item.$isSelected = false;\n }\n });\n };\n\n return AutSelectCustomAttribute;\n}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'row', [_dec2], {\n enumerable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'mode', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return 'single';\n }\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'selectedClass', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return 'aut-row-selected';\n }\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, 'custom', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: function initializer() {\n return false;\n }\n})), _class2)) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/au-table/dist/commonjs/au-table-select.js\n// module id = au-table/au-table-select\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AutSortCustomAttribute = undefined;\n\nvar _dec, _class, _desc, _value, _class2, _descriptor, _descriptor2, _descriptor3;\n\nvar _aureliaFramework = require('aurelia-framework');\n\nvar _auTable = require('./au-table');\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nvar AutSortCustomAttribute = exports.AutSortCustomAttribute = (_dec = (0, _aureliaFramework.inject)(_auTable.AureliaTableCustomAttribute, Element), _dec(_class = (_class2 = function () {\n function AutSortCustomAttribute(auTable, element) {\n var _this = this;\n\n _classCallCheck(this, AutSortCustomAttribute);\n\n _initDefineProp(this, 'key', _descriptor, this);\n\n _initDefineProp(this, 'custom', _descriptor2, this);\n\n _initDefineProp(this, 'default', _descriptor3, this);\n\n this.order = 0;\n this.orderClasses = ['aut-desc', 'aut-sortable', 'aut-asc'];\n this.ignoreEvent = false;\n\n this.auTable = auTable;\n this.element = element;\n\n this.rowSelectedListener = function () {\n _this.handleHeaderClicked();\n };\n\n this.sortChangedListener = function () {\n _this.handleSortChanged();\n };\n }\n\n AutSortCustomAttribute.prototype.handleSortChanged = function handleSortChanged() {\n if (!this.ignoreEvent) {\n this.order = 0;\n this.setClass();\n } else {\n this.ignoreEvent = false;\n }\n };\n\n AutSortCustomAttribute.prototype.attached = function attached() {\n if (this.key || this.custom) {\n this.element.style.cursor = 'pointer';\n this.element.classList.add('aut-sort');\n\n this.element.addEventListener('click', this.rowSelectedListener);\n this.auTable.addSortChangedListener(this.sortChangedListener);\n\n this.handleDefault();\n this.setClass();\n }\n };\n\n AutSortCustomAttribute.prototype.detached = function detached() {\n this.element.removeEventListener('click', this.rowSelectedListener);\n this.auTable.removeSortChangedListener(this.sortChangedListener);\n };\n\n AutSortCustomAttribute.prototype.handleDefault = function handleDefault() {\n if (this.default) {\n this.order = this.default === 'desc' ? -1 : 1;\n this.doSort();\n }\n };\n\n AutSortCustomAttribute.prototype.doSort = function doSort() {\n this.ignoreEvent = true;\n this.auTable.sortChanged(this.key, this.custom, this.order);\n };\n\n AutSortCustomAttribute.prototype.setClass = function setClass() {\n var _this2 = this;\n\n this.orderClasses.forEach(function (next) {\n return _this2.element.classList.remove(next);\n });\n this.element.classList.add(this.orderClasses[this.order + 1]);\n };\n\n AutSortCustomAttribute.prototype.handleHeaderClicked = function handleHeaderClicked() {\n this.order = this.order === 0 || this.order === -1 ? this.order + 1 : -1;\n this.setClass();\n this.doSort();\n };\n\n return AutSortCustomAttribute;\n}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'key', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'custom', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'default', [_aureliaFramework.bindable], {\n enumerable: true,\n initializer: null\n})), _class2)) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/au-table/dist/commonjs/au-table-sort.js\n// module id = au-table/au-table-sort\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FetchConfig = exports.BaseConfig = exports.AuthorizeStep = exports.AuthService = exports.AuthFilterValueConverter = undefined;\nexports.configure = configure;\n\nvar _authService = require('./auth-service');\n\nvar _authorizeStep = require('./authorize-step');\n\nvar _authFetchConfig = require('./auth-fetch-config');\n\nvar _baseConfig = require('./base-config');\n\nvar _authFilter = require('./auth-filter');\n\nfunction configure(aurelia, configCallback) {\n aurelia.globalResources('./auth-filter');\n\n var baseConfig = aurelia.container.get(_baseConfig.BaseConfig);\n if (configCallback !== undefined && typeof configCallback === 'function') {\n configCallback(baseConfig);\n }\n}\n\nexports.AuthFilterValueConverter = _authFilter.AuthFilterValueConverter;\nexports.AuthService = _authService.AuthService;\nexports.AuthorizeStep = _authorizeStep.AuthorizeStep;\nexports.BaseConfig = _baseConfig.BaseConfig;\nexports.FetchConfig = _authFetchConfig.FetchConfig;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/aurelia-auth.js\n// module id = aurelia-auth\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AuthFilterValueConverter = exports.AuthFilterValueConverter = function () {\n function AuthFilterValueConverter() {\n _classCallCheck(this, AuthFilterValueConverter);\n }\n\n AuthFilterValueConverter.prototype.toView = function toView(routes, isAuthenticated) {\n return routes.filter(function (r) {\n return r.config.auth === undefined || r.config.auth === isAuthenticated;\n });\n };\n\n return AuthFilterValueConverter;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-auth/dist/commonjs/auth-filter.js\n// module id = aurelia-auth/auth-filter\n// module chunks = 0","\n\nimport * as LogManager from 'aurelia-logging';\n\nvar logger = LogManager.getLogger('event-aggregator');\n\nvar Handler = function () {\n function Handler(messageType, callback) {\n \n\n this.messageType = messageType;\n this.callback = callback;\n }\n\n Handler.prototype.handle = function handle(message) {\n if (message instanceof this.messageType) {\n this.callback.call(null, message);\n }\n };\n\n return Handler;\n}();\n\nfunction invokeCallback(callback, data, event) {\n try {\n callback(data, event);\n } catch (e) {\n logger.error(e);\n }\n}\n\nfunction invokeHandler(handler, data) {\n try {\n handler.handle(data);\n } catch (e) {\n logger.error(e);\n }\n}\n\nexport var EventAggregator = function () {\n function EventAggregator() {\n \n\n this.eventLookup = {};\n this.messageHandlers = [];\n }\n\n EventAggregator.prototype.publish = function publish(event, data) {\n var subscribers = void 0;\n var i = void 0;\n\n if (!event) {\n throw new Error('Event was invalid.');\n }\n\n if (typeof event === 'string') {\n subscribers = this.eventLookup[event];\n if (subscribers) {\n subscribers = subscribers.slice();\n i = subscribers.length;\n\n while (i--) {\n invokeCallback(subscribers[i], data, event);\n }\n }\n } else {\n subscribers = this.messageHandlers.slice();\n i = subscribers.length;\n\n while (i--) {\n invokeHandler(subscribers[i], event);\n }\n }\n };\n\n EventAggregator.prototype.subscribe = function subscribe(event, callback) {\n var handler = void 0;\n var subscribers = void 0;\n\n if (!event) {\n throw new Error('Event channel/type was invalid.');\n }\n\n if (typeof event === 'string') {\n handler = callback;\n subscribers = this.eventLookup[event] || (this.eventLookup[event] = []);\n } else {\n handler = new Handler(event, callback);\n subscribers = this.messageHandlers;\n }\n\n subscribers.push(handler);\n\n return {\n dispose: function dispose() {\n var idx = subscribers.indexOf(handler);\n if (idx !== -1) {\n subscribers.splice(idx, 1);\n }\n }\n };\n };\n\n EventAggregator.prototype.subscribeOnce = function subscribeOnce(event, callback) {\n var sub = this.subscribe(event, function (a, b) {\n sub.dispose();\n return callback(a, b);\n });\n\n return sub;\n };\n\n return EventAggregator;\n}();\n\nexport function includeEventsIn(obj) {\n var ea = new EventAggregator();\n\n obj.subscribeOnce = function (event, callback) {\n return ea.subscribeOnce(event, callback);\n };\n\n obj.subscribe = function (event, callback) {\n return ea.subscribe(event, callback);\n };\n\n obj.publish = function (event, data) {\n ea.publish(event, data);\n };\n\n return ea;\n}\n\nexport function configure(config) {\n config.instance(EventAggregator, includeEventsIn(config.aurelia));\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-event-aggregator/dist/native-modules/aurelia-event-aggregator.js\n// module id = aurelia-event-aggregator\n// module chunks = 0","\n\nimport * as TheLogManager from 'aurelia-logging';\nimport { Container } from 'aurelia-dependency-injection';\nimport { Loader } from 'aurelia-loader';\nimport { BindingLanguage, ViewSlot, ViewResources, TemplatingEngine, CompositionTransaction, ViewEngine } from 'aurelia-templating';\nimport { DOM, PLATFORM } from 'aurelia-pal';\nimport { relativeToFile, join } from 'aurelia-path';\n\nfunction preventActionlessFormSubmit() {\n DOM.addEventListener('submit', function (evt) {\n var target = evt.target;\n var action = target.action;\n\n if (target.tagName.toLowerCase() === 'form' && !action) {\n evt.preventDefault();\n }\n });\n}\n\nexport var Aurelia = function () {\n function Aurelia(loader, container, resources) {\n \n\n this.loader = loader || new PLATFORM.Loader();\n this.container = container || new Container().makeGlobal();\n this.resources = resources || new ViewResources();\n this.use = new FrameworkConfiguration(this);\n this.logger = TheLogManager.getLogger('aurelia');\n this.hostConfigured = false;\n this.host = null;\n\n this.use.instance(Aurelia, this);\n this.use.instance(Loader, this.loader);\n this.use.instance(ViewResources, this.resources);\n }\n\n Aurelia.prototype.start = function start() {\n var _this = this;\n\n if (this._started) {\n return this._started;\n }\n\n this.logger.info('Aurelia Starting');\n return this._started = this.use.apply().then(function () {\n preventActionlessFormSubmit();\n\n if (!_this.container.hasResolver(BindingLanguage)) {\n var message = 'You must configure Aurelia with a BindingLanguage implementation.';\n _this.logger.error(message);\n throw new Error(message);\n }\n\n _this.logger.info('Aurelia Started');\n var evt = DOM.createCustomEvent('aurelia-started', { bubbles: true, cancelable: true });\n DOM.dispatchEvent(evt);\n return _this;\n });\n };\n\n Aurelia.prototype.enhance = function enhance() {\n var _this2 = this;\n\n var bindingContext = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var applicationHost = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n this._configureHost(applicationHost || DOM.querySelectorAll('body')[0]);\n\n return new Promise(function (resolve) {\n var engine = _this2.container.get(TemplatingEngine);\n _this2.root = engine.enhance({ container: _this2.container, element: _this2.host, resources: _this2.resources, bindingContext: bindingContext });\n _this2.root.attached();\n _this2._onAureliaComposed();\n resolve(_this2);\n });\n };\n\n Aurelia.prototype.setRoot = function setRoot() {\n var _this3 = this;\n\n var root = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0];\n var applicationHost = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n var instruction = {};\n\n if (this.root && this.root.viewModel && this.root.viewModel.router) {\n this.root.viewModel.router.deactivate();\n this.root.viewModel.router.reset();\n }\n\n this._configureHost(applicationHost);\n\n var engine = this.container.get(TemplatingEngine);\n var transaction = this.container.get(CompositionTransaction);\n delete transaction.initialComposition;\n\n if (!root) {\n if (this.configModuleId) {\n root = relativeToFile('./app', this.configModuleId);\n } else {\n root = 'app';\n }\n }\n\n instruction.viewModel = root;\n instruction.container = instruction.childContainer = this.container;\n instruction.viewSlot = this.hostSlot;\n instruction.host = this.host;\n\n return engine.compose(instruction).then(function (r) {\n _this3.root = r;\n instruction.viewSlot.attached();\n _this3._onAureliaComposed();\n return _this3;\n });\n };\n\n Aurelia.prototype._configureHost = function _configureHost(applicationHost) {\n if (this.hostConfigured) {\n return;\n }\n applicationHost = applicationHost || this.host;\n\n if (!applicationHost || typeof applicationHost === 'string') {\n this.host = DOM.getElementById(applicationHost || 'applicationHost');\n } else {\n this.host = applicationHost;\n }\n\n if (!this.host) {\n throw new Error('No applicationHost was specified.');\n }\n\n this.hostConfigured = true;\n this.host.aurelia = this;\n this.hostSlot = new ViewSlot(this.host, true);\n this.hostSlot.transformChildNodesIntoView();\n this.container.registerInstance(DOM.boundary, this.host);\n };\n\n Aurelia.prototype._onAureliaComposed = function _onAureliaComposed() {\n var evt = DOM.createCustomEvent('aurelia-composed', { bubbles: true, cancelable: true });\n setTimeout(function () {\n return DOM.dispatchEvent(evt);\n }, 1);\n };\n\n return Aurelia;\n}();\n\nvar logger = TheLogManager.getLogger('aurelia');\nvar extPattern = /\\.[^/.]+$/;\n\nfunction runTasks(config, tasks) {\n var current = void 0;\n var next = function next() {\n current = tasks.shift();\n if (current) {\n return Promise.resolve(current(config)).then(next);\n }\n\n return Promise.resolve();\n };\n\n return next();\n}\n\nfunction loadPlugin(config, loader, info) {\n logger.debug('Loading plugin ' + info.moduleId + '.');\n config.resourcesRelativeTo = info.resourcesRelativeTo;\n\n var id = info.moduleId;\n\n if (info.resourcesRelativeTo.length > 1) {\n return loader.normalize(info.moduleId, info.resourcesRelativeTo[1]).then(function (normalizedId) {\n return _loadPlugin(normalizedId);\n });\n }\n\n return _loadPlugin(id);\n\n function _loadPlugin(moduleId) {\n return loader.loadModule(moduleId).then(function (m) {\n if ('configure' in m) {\n return Promise.resolve(m.configure(config, info.config || {})).then(function () {\n config.resourcesRelativeTo = null;\n logger.debug('Configured plugin ' + info.moduleId + '.');\n });\n }\n\n config.resourcesRelativeTo = null;\n logger.debug('Loaded plugin ' + info.moduleId + '.');\n });\n }\n}\n\nfunction loadResources(aurelia, resourcesToLoad, appResources) {\n var viewEngine = aurelia.container.get(ViewEngine);\n\n return Promise.all(Object.keys(resourcesToLoad).map(function (n) {\n return _normalize(resourcesToLoad[n]);\n })).then(function (loads) {\n var names = [];\n var importIds = [];\n\n loads.forEach(function (l) {\n names.push(undefined);\n importIds.push(l.importId);\n });\n\n return viewEngine.importViewResources(importIds, names, appResources);\n });\n\n function _normalize(load) {\n var moduleId = load.moduleId;\n var ext = getExt(moduleId);\n\n if (isOtherResource(moduleId)) {\n moduleId = removeExt(moduleId);\n }\n\n return aurelia.loader.normalize(moduleId, load.relativeTo).then(function (normalized) {\n return {\n name: load.moduleId,\n importId: isOtherResource(load.moduleId) ? addOriginalExt(normalized, ext) : normalized\n };\n });\n }\n\n function isOtherResource(name) {\n var ext = getExt(name);\n if (!ext) return false;\n if (ext === '') return false;\n if (ext === '.js' || ext === '.ts') return false;\n return true;\n }\n\n function removeExt(name) {\n return name.replace(extPattern, '');\n }\n\n function addOriginalExt(normalized, ext) {\n return removeExt(normalized) + '.' + ext;\n }\n}\n\nfunction getExt(name) {\n var match = name.match(extPattern);\n if (match && match.length > 0) {\n return match[0].split('.')[1];\n }\n}\n\nfunction assertProcessed(plugins) {\n if (plugins.processed) {\n throw new Error('This config instance has already been applied. To load more plugins or global resources, create a new FrameworkConfiguration instance.');\n }\n}\n\nvar FrameworkConfiguration = function () {\n function FrameworkConfiguration(aurelia) {\n var _this4 = this;\n\n \n\n this.aurelia = aurelia;\n this.container = aurelia.container;\n this.info = [];\n this.processed = false;\n this.preTasks = [];\n this.postTasks = [];\n this.resourcesToLoad = {};\n this.preTask(function () {\n return aurelia.loader.normalize('aurelia-bootstrapper').then(function (name) {\n return _this4.bootstrapperName = name;\n });\n });\n this.postTask(function () {\n return loadResources(aurelia, _this4.resourcesToLoad, aurelia.resources);\n });\n }\n\n FrameworkConfiguration.prototype.instance = function instance(type, _instance) {\n this.container.registerInstance(type, _instance);\n return this;\n };\n\n FrameworkConfiguration.prototype.singleton = function singleton(type, implementation) {\n this.container.registerSingleton(type, implementation);\n return this;\n };\n\n FrameworkConfiguration.prototype.transient = function transient(type, implementation) {\n this.container.registerTransient(type, implementation);\n return this;\n };\n\n FrameworkConfiguration.prototype.preTask = function preTask(task) {\n assertProcessed(this);\n this.preTasks.push(task);\n return this;\n };\n\n FrameworkConfiguration.prototype.postTask = function postTask(task) {\n assertProcessed(this);\n this.postTasks.push(task);\n return this;\n };\n\n FrameworkConfiguration.prototype.feature = function feature(plugin) {\n var config = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var hasIndex = /\\/index$/i.test(plugin);\n var moduleId = hasIndex || getExt(plugin) ? plugin : plugin + '/index';\n var root = hasIndex ? plugin.substr(0, plugin.length - 6) : plugin;\n return this.plugin({ moduleId: moduleId, resourcesRelativeTo: [root, ''], config: config });\n };\n\n FrameworkConfiguration.prototype.globalResources = function globalResources(resources) {\n assertProcessed(this);\n\n var toAdd = Array.isArray(resources) ? resources : arguments;\n var resource = void 0;\n var resourcesRelativeTo = this.resourcesRelativeTo || ['', ''];\n\n for (var i = 0, ii = toAdd.length; i < ii; ++i) {\n resource = toAdd[i];\n if (typeof resource !== 'string') {\n throw new Error('Invalid resource path [' + resource + ']. Resources must be specified as relative module IDs.');\n }\n\n var parent = resourcesRelativeTo[0];\n var grandParent = resourcesRelativeTo[1];\n var name = resource;\n\n if ((resource.startsWith('./') || resource.startsWith('../')) && parent !== '') {\n name = join(parent, resource);\n }\n\n this.resourcesToLoad[name] = { moduleId: name, relativeTo: grandParent };\n }\n\n return this;\n };\n\n FrameworkConfiguration.prototype.globalName = function globalName(resourcePath, newName) {\n assertProcessed(this);\n this.resourcesToLoad[resourcePath] = { moduleId: newName, relativeTo: '' };\n return this;\n };\n\n FrameworkConfiguration.prototype.plugin = function plugin(_plugin, config) {\n assertProcessed(this);\n\n if (typeof _plugin === 'string') {\n return this.plugin({ moduleId: _plugin, resourcesRelativeTo: [_plugin, ''], config: config || {} });\n }\n\n this.info.push(_plugin);\n return this;\n };\n\n FrameworkConfiguration.prototype._addNormalizedPlugin = function _addNormalizedPlugin(name, config) {\n var _this5 = this;\n\n var plugin = { moduleId: name, resourcesRelativeTo: [name, ''], config: config || {} };\n this.plugin(plugin);\n\n this.preTask(function () {\n var relativeTo = [name, _this5.bootstrapperName];\n plugin.moduleId = name;\n plugin.resourcesRelativeTo = relativeTo;\n return Promise.resolve();\n });\n\n return this;\n };\n\n FrameworkConfiguration.prototype.defaultBindingLanguage = function defaultBindingLanguage() {\n return this._addNormalizedPlugin('aurelia-templating-binding');\n };\n\n FrameworkConfiguration.prototype.router = function router() {\n return this._addNormalizedPlugin('aurelia-templating-router');\n };\n\n FrameworkConfiguration.prototype.history = function history() {\n return this._addNormalizedPlugin('aurelia-history-browser');\n };\n\n FrameworkConfiguration.prototype.defaultResources = function defaultResources() {\n return this._addNormalizedPlugin('aurelia-templating-resources');\n };\n\n FrameworkConfiguration.prototype.eventAggregator = function eventAggregator() {\n return this._addNormalizedPlugin('aurelia-event-aggregator');\n };\n\n FrameworkConfiguration.prototype.basicConfiguration = function basicConfiguration() {\n return this.defaultBindingLanguage().defaultResources().eventAggregator();\n };\n\n FrameworkConfiguration.prototype.standardConfiguration = function standardConfiguration() {\n return this.basicConfiguration().history().router();\n };\n\n FrameworkConfiguration.prototype.developmentLogging = function developmentLogging() {\n var _this6 = this;\n\n this.preTask(function () {\n return _this6.aurelia.loader.normalize('aurelia-logging-console', _this6.bootstrapperName).then(function (name) {\n return _this6.aurelia.loader.loadModule(name).then(function (m) {\n TheLogManager.addAppender(new m.ConsoleAppender());\n TheLogManager.setLevel(TheLogManager.logLevel.debug);\n });\n });\n });\n\n return this;\n };\n\n FrameworkConfiguration.prototype.apply = function apply() {\n var _this7 = this;\n\n if (this.processed) {\n return Promise.resolve();\n }\n\n return runTasks(this, this.preTasks).then(function () {\n var loader = _this7.aurelia.loader;\n var info = _this7.info;\n var current = void 0;\n\n var next = function next() {\n current = info.shift();\n if (current) {\n return loadPlugin(_this7, loader, current).then(next);\n }\n\n _this7.processed = true;\n return Promise.resolve();\n };\n\n return next().then(function () {\n return runTasks(_this7, _this7.postTasks);\n });\n });\n };\n\n return FrameworkConfiguration;\n}();\n\nexport { FrameworkConfiguration };\n\n\nexport * from 'aurelia-dependency-injection';\nexport * from 'aurelia-binding';\nexport * from 'aurelia-metadata';\nexport * from 'aurelia-templating';\nexport * from 'aurelia-loader';\nexport * from 'aurelia-task-queue';\nexport * from 'aurelia-path';\nexport * from 'aurelia-pal';\n\nexport var LogManager = TheLogManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-framework/dist/native-modules/aurelia-framework.js\n// module id = aurelia-framework\n// module chunks = 0","var _class, _temp;\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nimport { DOM, PLATFORM } from 'aurelia-pal';\nimport { History } from 'aurelia-history';\n\nexport var LinkHandler = function () {\n function LinkHandler() {\n \n }\n\n LinkHandler.prototype.activate = function activate(history) {};\n\n LinkHandler.prototype.deactivate = function deactivate() {};\n\n return LinkHandler;\n}();\n\nexport var DefaultLinkHandler = function (_LinkHandler) {\n _inherits(DefaultLinkHandler, _LinkHandler);\n\n function DefaultLinkHandler() {\n \n\n var _this = _possibleConstructorReturn(this, _LinkHandler.call(this));\n\n _this.handler = function (e) {\n var _DefaultLinkHandler$g = DefaultLinkHandler.getEventInfo(e);\n\n var shouldHandleEvent = _DefaultLinkHandler$g.shouldHandleEvent;\n var href = _DefaultLinkHandler$g.href;\n\n\n if (shouldHandleEvent) {\n e.preventDefault();\n _this.history.navigate(href);\n }\n };\n return _this;\n }\n\n DefaultLinkHandler.prototype.activate = function activate(history) {\n if (history._hasPushState) {\n this.history = history;\n DOM.addEventListener('click', this.handler, true);\n }\n };\n\n DefaultLinkHandler.prototype.deactivate = function deactivate() {\n DOM.removeEventListener('click', this.handler);\n };\n\n DefaultLinkHandler.getEventInfo = function getEventInfo(event) {\n var info = {\n shouldHandleEvent: false,\n href: null,\n anchor: null\n };\n\n var target = DefaultLinkHandler.findClosestAnchor(event.target);\n if (!target || !DefaultLinkHandler.targetIsThisWindow(target)) {\n return info;\n }\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {\n return info;\n }\n\n var href = target.getAttribute('href');\n info.anchor = target;\n info.href = href;\n\n var leftButtonClicked = event.which === 1;\n var isRelative = href && !(href.charAt(0) === '#' || /^[a-z]+:/i.test(href));\n\n info.shouldHandleEvent = leftButtonClicked && isRelative;\n return info;\n };\n\n DefaultLinkHandler.findClosestAnchor = function findClosestAnchor(el) {\n while (el) {\n if (el.tagName === 'A') {\n return el;\n }\n\n el = el.parentNode;\n }\n };\n\n DefaultLinkHandler.targetIsThisWindow = function targetIsThisWindow(target) {\n var targetWindow = target.getAttribute('target');\n var win = PLATFORM.global;\n\n return !targetWindow || targetWindow === win.name || targetWindow === '_self' || targetWindow === 'top' && win === win.top;\n };\n\n return DefaultLinkHandler;\n}(LinkHandler);\n\nexport function configure(config) {\n config.singleton(History, BrowserHistory);\n config.transient(LinkHandler, DefaultLinkHandler);\n}\n\nexport var BrowserHistory = (_temp = _class = function (_History) {\n _inherits(BrowserHistory, _History);\n\n function BrowserHistory(linkHandler) {\n \n\n var _this2 = _possibleConstructorReturn(this, _History.call(this));\n\n _this2._isActive = false;\n _this2._checkUrlCallback = _this2._checkUrl.bind(_this2);\n\n _this2.location = PLATFORM.location;\n _this2.history = PLATFORM.history;\n _this2.linkHandler = linkHandler;\n return _this2;\n }\n\n BrowserHistory.prototype.activate = function activate(options) {\n if (this._isActive) {\n throw new Error('History has already been activated.');\n }\n\n var wantsPushState = !!options.pushState;\n\n this._isActive = true;\n this.options = Object.assign({}, { root: '/' }, this.options, options);\n\n this.root = ('/' + this.options.root + '/').replace(rootStripper, '/');\n\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState);\n\n var eventName = void 0;\n if (this._hasPushState) {\n eventName = 'popstate';\n } else if (this._wantsHashChange) {\n eventName = 'hashchange';\n }\n\n PLATFORM.addEventListener(eventName, this._checkUrlCallback);\n\n if (this._wantsHashChange && wantsPushState) {\n var loc = this.location;\n var atRoot = loc.pathname.replace(/[^\\/]$/, '$&/') === this.root;\n\n if (!this._hasPushState && !atRoot) {\n this.fragment = this._getFragment(null, true);\n this.location.replace(this.root + this.location.search + '#' + this.fragment);\n\n return true;\n } else if (this._hasPushState && atRoot && loc.hash) {\n this.fragment = this._getHash().replace(routeStripper, '');\n this.history.replaceState({}, DOM.title, this.root + this.fragment + loc.search);\n }\n }\n\n if (!this.fragment) {\n this.fragment = this._getFragment();\n }\n\n this.linkHandler.activate(this);\n\n if (!this.options.silent) {\n return this._loadUrl();\n }\n };\n\n BrowserHistory.prototype.deactivate = function deactivate() {\n PLATFORM.removeEventListener('popstate', this._checkUrlCallback);\n PLATFORM.removeEventListener('hashchange', this._checkUrlCallback);\n this._isActive = false;\n this.linkHandler.deactivate();\n };\n\n BrowserHistory.prototype.getAbsoluteRoot = function getAbsoluteRoot() {\n var origin = createOrigin(this.location.protocol, this.location.hostname, this.location.port);\n return '' + origin + this.root;\n };\n\n BrowserHistory.prototype.navigate = function navigate(fragment) {\n var _ref = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var _ref$trigger = _ref.trigger;\n var trigger = _ref$trigger === undefined ? true : _ref$trigger;\n var _ref$replace = _ref.replace;\n var replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (fragment && absoluteUrl.test(fragment)) {\n this.location.href = fragment;\n return true;\n }\n\n if (!this._isActive) {\n return false;\n }\n\n fragment = this._getFragment(fragment || '');\n\n if (this.fragment === fragment && !replace) {\n return false;\n }\n\n this.fragment = fragment;\n\n var url = this.root + fragment;\n\n if (fragment === '' && url !== '/') {\n url = url.slice(0, -1);\n }\n\n if (this._hasPushState) {\n url = url.replace('//', '/');\n this.history[replace ? 'replaceState' : 'pushState']({}, DOM.title, url);\n } else if (this._wantsHashChange) {\n updateHash(this.location, fragment, replace);\n } else {\n return this.location.assign(url);\n }\n\n if (trigger) {\n return this._loadUrl(fragment);\n }\n };\n\n BrowserHistory.prototype.navigateBack = function navigateBack() {\n this.history.back();\n };\n\n BrowserHistory.prototype.setTitle = function setTitle(title) {\n DOM.title = title;\n };\n\n BrowserHistory.prototype._getHash = function _getHash() {\n return this.location.hash.substr(1);\n };\n\n BrowserHistory.prototype._getFragment = function _getFragment(fragment, forcePushState) {\n var root = void 0;\n\n if (!fragment) {\n if (this._hasPushState || !this._wantsHashChange || forcePushState) {\n fragment = this.location.pathname + this.location.search;\n root = this.root.replace(trailingSlash, '');\n if (!fragment.indexOf(root)) {\n fragment = fragment.substr(root.length);\n }\n } else {\n fragment = this._getHash();\n }\n }\n\n return '/' + fragment.replace(routeStripper, '');\n };\n\n BrowserHistory.prototype._checkUrl = function _checkUrl() {\n var current = this._getFragment();\n if (current !== this.fragment) {\n this._loadUrl();\n }\n };\n\n BrowserHistory.prototype._loadUrl = function _loadUrl(fragmentOverride) {\n var fragment = this.fragment = this._getFragment(fragmentOverride);\n\n return this.options.routeHandler ? this.options.routeHandler(fragment) : false;\n };\n\n return BrowserHistory;\n}(History), _class.inject = [LinkHandler], _temp);\n\nvar routeStripper = /^#?\\/*|\\s+$/g;\n\nvar rootStripper = /^\\/+|\\/+$/g;\n\nvar trailingSlash = /\\/$/;\n\nvar absoluteUrl = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\n\nfunction updateHash(location, fragment, replace) {\n if (replace) {\n var _href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(_href + '#' + fragment);\n } else {\n location.hash = '#' + fragment;\n }\n}\n\nfunction createOrigin(protocol, hostname, port) {\n return protocol + '//' + hostname + (port ? ':' + port : '');\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-history-browser/dist/native-modules/aurelia-history-browser.js\n// module id = aurelia-history-browser\n// module chunks = 0","\n\nimport { Logger } from 'aurelia-logging';\n\nexport var ConsoleAppender = function () {\n function ConsoleAppender() {\n \n }\n\n ConsoleAppender.prototype.debug = function debug(logger) {\n var _console;\n\n for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n (_console = console).debug.apply(_console, ['DEBUG [' + logger.id + ']'].concat(rest));\n };\n\n ConsoleAppender.prototype.info = function info(logger) {\n var _console2;\n\n for (var _len2 = arguments.length, rest = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n\n (_console2 = console).info.apply(_console2, ['INFO [' + logger.id + ']'].concat(rest));\n };\n\n ConsoleAppender.prototype.warn = function warn(logger) {\n var _console3;\n\n for (var _len3 = arguments.length, rest = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n rest[_key3 - 1] = arguments[_key3];\n }\n\n (_console3 = console).warn.apply(_console3, ['WARN [' + logger.id + ']'].concat(rest));\n };\n\n ConsoleAppender.prototype.error = function error(logger) {\n var _console4;\n\n for (var _len4 = arguments.length, rest = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n\n (_console4 = console).error.apply(_console4, ['ERROR [' + logger.id + ']'].concat(rest));\n };\n\n return ConsoleAppender;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-logging-console/dist/native-modules/aurelia-logging-console.js\n// module id = aurelia-logging-console\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { initializePAL, isInitialized } from 'aurelia-pal';\n\nexport var _PLATFORM = {\n location: window.location,\n history: window.history,\n addEventListener: function addEventListener(eventName, callback, capture) {\n this.global.addEventListener(eventName, callback, capture);\n },\n removeEventListener: function removeEventListener(eventName, callback, capture) {\n this.global.removeEventListener(eventName, callback, capture);\n },\n\n performance: window.performance,\n requestAnimationFrame: function requestAnimationFrame(callback) {\n return this.global.requestAnimationFrame(callback);\n }\n};\n\nif (typeof FEATURE_NO_IE === 'undefined') {\n var test = function test() {};\n\n if (test.name === undefined) {\n Object.defineProperty(Function.prototype, 'name', {\n get: function get() {\n var name = this.toString().match(/^\\s*function\\s*(\\S*)\\s*\\(/)[1];\n\n Object.defineProperty(this, 'name', { value: name });\n return name;\n }\n });\n }\n}\n\nif (typeof FEATURE_NO_IE === 'undefined') {\n if (!('classList' in document.createElement('_')) || document.createElementNS && !('classList' in document.createElementNS('http://www.w3.org/2000/svg', 'g'))) {\n (function () {\n var protoProp = 'prototype';\n var strTrim = String.prototype.trim;\n var arrIndexOf = Array.prototype.indexOf;\n var emptyArray = [];\n\n var DOMEx = function DOMEx(type, message) {\n this.name = type;\n this.code = DOMException[type];\n this.message = message;\n };\n\n var checkTokenAndGetIndex = function checkTokenAndGetIndex(classList, token) {\n if (token === '') {\n throw new DOMEx('SYNTAX_ERR', 'An invalid or illegal string was specified');\n }\n\n if (/\\s/.test(token)) {\n throw new DOMEx('INVALID_CHARACTER_ERR', 'String contains an invalid character');\n }\n\n return arrIndexOf.call(classList, token);\n };\n\n var ClassList = function ClassList(elem) {\n var trimmedClasses = strTrim.call(elem.getAttribute('class') || '');\n var classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : emptyArray;\n\n for (var i = 0, ii = classes.length; i < ii; ++i) {\n this.push(classes[i]);\n }\n\n this._updateClassName = function () {\n elem.setAttribute('class', this.toString());\n };\n };\n\n var classListProto = ClassList[protoProp] = [];\n\n DOMEx[protoProp] = Error[protoProp];\n\n classListProto.item = function (i) {\n return this[i] || null;\n };\n\n classListProto.contains = function (token) {\n token += '';\n return checkTokenAndGetIndex(this, token) !== -1;\n };\n\n classListProto.add = function () {\n var tokens = arguments;\n var i = 0;\n var ii = tokens.length;\n var token = void 0;\n var updated = false;\n\n do {\n token = tokens[i] + '';\n if (checkTokenAndGetIndex(this, token) === -1) {\n this.push(token);\n updated = true;\n }\n } while (++i < ii);\n\n if (updated) {\n this._updateClassName();\n }\n };\n\n classListProto.remove = function () {\n var tokens = arguments;\n var i = 0;\n var ii = tokens.length;\n var token = void 0;\n var updated = false;\n var index = void 0;\n\n do {\n token = tokens[i] + '';\n index = checkTokenAndGetIndex(this, token);\n while (index !== -1) {\n this.splice(index, 1);\n updated = true;\n index = checkTokenAndGetIndex(this, token);\n }\n } while (++i < ii);\n\n if (updated) {\n this._updateClassName();\n }\n };\n\n classListProto.toggle = function (token, force) {\n token += '';\n\n var result = this.contains(token);\n var method = result ? force !== true && 'remove' : force !== false && 'add';\n\n if (method) {\n this[method](token);\n }\n\n if (force === true || force === false) {\n return force;\n }\n\n return !result;\n };\n\n classListProto.toString = function () {\n return this.join(' ');\n };\n\n Object.defineProperty(Element.prototype, 'classList', {\n get: function get() {\n return new ClassList(this);\n },\n enumerable: true,\n configurable: true\n });\n })();\n } else {\n var testElement = document.createElement('_');\n testElement.classList.add('c1', 'c2');\n\n if (!testElement.classList.contains('c2')) {\n var createMethod = function createMethod(method) {\n var original = DOMTokenList.prototype[method];\n\n DOMTokenList.prototype[method] = function (token) {\n for (var i = 0, ii = arguments.length; i < ii; ++i) {\n token = arguments[i];\n original.call(this, token);\n }\n };\n };\n\n createMethod('add');\n createMethod('remove');\n }\n\n testElement.classList.toggle('c3', false);\n\n if (testElement.classList.contains('c3')) {\n (function () {\n var _toggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function (token, force) {\n if (1 in arguments && !this.contains(token) === !force) {\n return force;\n }\n\n return _toggle.call(this, token);\n };\n })();\n }\n\n testElement = null;\n }\n}\n\nif (typeof FEATURE_NO_IE === 'undefined') {\n // @license http://opensource.org/licenses/MIT\n if ('performance' in window === false) {\n window.performance = {};\n }\n\n if ('now' in window.performance === false) {\n (function () {\n var nowOffset = Date.now();\n\n if (performance.timing && performance.timing.navigationStart) {\n nowOffset = performance.timing.navigationStart;\n }\n\n window.performance.now = function now() {\n return Date.now() - nowOffset;\n };\n })();\n }\n\n _PLATFORM.performance = window.performance;\n}\n\nif (typeof FEATURE_NO_IE === 'undefined') {\n (function () {\n var con = window.console = window.console || {};\n var nop = function nop() {};\n\n if (!con.memory) con.memory = {};\n ('assert,clear,count,debug,dir,dirxml,error,exception,group,' + 'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' + 'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(',').forEach(function (m) {\n if (!con[m]) con[m] = nop;\n });\n\n if (_typeof(con.log) === 'object') {\n 'log,info,warn,error,assert,dir,clear,profile,profileEnd'.split(',').forEach(function (method) {\n console[method] = this.bind(console[method], console);\n }, Function.prototype.call);\n }\n })();\n}\n\nif (typeof FEATURE_NO_IE === 'undefined') {\n if (!window.CustomEvent || typeof window.CustomEvent !== 'function') {\n var _CustomEvent = function _CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n _CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = _CustomEvent;\n }\n}\n\nif (Element && !Element.prototype.matches) {\n var proto = Element.prototype;\n proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector;\n}\n\nexport var _FEATURE = {\n shadowDOM: !!HTMLElement.prototype.attachShadow,\n scopedCSS: 'scoped' in document.createElement('style'),\n htmlTemplateElement: 'content' in document.createElement('template'),\n mutationObserver: !!(window.MutationObserver || window.WebKitMutationObserver),\n ensureHTMLTemplateElement: function ensureHTMLTemplateElement(t) {\n return t;\n }\n};\n\nif (typeof FEATURE_NO_IE === 'undefined') {\n (function () {\n var isSVGTemplate = function isSVGTemplate(el) {\n return el.tagName === 'template' && el.namespaceURI === 'http://www.w3.org/2000/svg';\n };\n\n var fixSVGTemplateElement = function fixSVGTemplateElement(el) {\n var template = el.ownerDocument.createElement('template');\n var attrs = el.attributes;\n var length = attrs.length;\n var attr = void 0;\n\n el.parentNode.insertBefore(template, el);\n\n while (length-- > 0) {\n attr = attrs[length];\n template.setAttribute(attr.name, attr.value);\n el.removeAttribute(attr.name);\n }\n\n el.parentNode.removeChild(el);\n\n return fixHTMLTemplateElement(template);\n };\n\n var fixHTMLTemplateElement = function fixHTMLTemplateElement(template) {\n var content = template.content = document.createDocumentFragment();\n var child = void 0;\n\n while (child = template.firstChild) {\n content.appendChild(child);\n }\n\n return template;\n };\n\n var fixHTMLTemplateElementRoot = function fixHTMLTemplateElementRoot(template) {\n var content = fixHTMLTemplateElement(template).content;\n var childTemplates = content.querySelectorAll('template');\n\n for (var i = 0, ii = childTemplates.length; i < ii; ++i) {\n var child = childTemplates[i];\n\n if (isSVGTemplate(child)) {\n fixSVGTemplateElement(child);\n } else {\n fixHTMLTemplateElement(child);\n }\n }\n\n return template;\n };\n\n if (!_FEATURE.htmlTemplateElement) {\n _FEATURE.ensureHTMLTemplateElement = fixHTMLTemplateElementRoot;\n }\n })();\n}\n\nvar shadowPoly = window.ShadowDOMPolyfill || null;\n\nexport var _DOM = {\n Element: Element,\n SVGElement: SVGElement,\n boundary: 'aurelia-dom-boundary',\n addEventListener: function addEventListener(eventName, callback, capture) {\n document.addEventListener(eventName, callback, capture);\n },\n removeEventListener: function removeEventListener(eventName, callback, capture) {\n document.removeEventListener(eventName, callback, capture);\n },\n adoptNode: function adoptNode(node) {\n return document.adoptNode(node, true);\n },\n createElement: function createElement(tagName) {\n return document.createElement(tagName);\n },\n createTextNode: function createTextNode(text) {\n return document.createTextNode(text);\n },\n createComment: function createComment(text) {\n return document.createComment(text);\n },\n createDocumentFragment: function createDocumentFragment() {\n return document.createDocumentFragment();\n },\n createMutationObserver: function createMutationObserver(callback) {\n return new (window.MutationObserver || window.WebKitMutationObserver)(callback);\n },\n createCustomEvent: function createCustomEvent(eventType, options) {\n return new window.CustomEvent(eventType, options);\n },\n dispatchEvent: function dispatchEvent(evt) {\n document.dispatchEvent(evt);\n },\n getComputedStyle: function getComputedStyle(element) {\n return window.getComputedStyle(element);\n },\n getElementById: function getElementById(id) {\n return document.getElementById(id);\n },\n querySelectorAll: function querySelectorAll(query) {\n return document.querySelectorAll(query);\n },\n nextElementSibling: function nextElementSibling(element) {\n if (element.nextElementSibling) {\n return element.nextElementSibling;\n }\n do {\n element = element.nextSibling;\n } while (element && element.nodeType !== 1);\n return element;\n },\n createTemplateFromMarkup: function createTemplateFromMarkup(markup) {\n var parser = document.createElement('div');\n parser.innerHTML = markup;\n\n var temp = parser.firstElementChild;\n if (!temp || temp.nodeName !== 'TEMPLATE') {\n throw new Error('Template markup must be wrapped in a <template> element e.g. <template> <!-- markup here --> </template>');\n }\n\n return _FEATURE.ensureHTMLTemplateElement(temp);\n },\n appendNode: function appendNode(newNode, parentNode) {\n (parentNode || document.body).appendChild(newNode);\n },\n replaceNode: function replaceNode(newNode, node, parentNode) {\n if (node.parentNode) {\n node.parentNode.replaceChild(newNode, node);\n } else if (shadowPoly !== null) {\n shadowPoly.unwrap(parentNode).replaceChild(shadowPoly.unwrap(newNode), shadowPoly.unwrap(node));\n } else {\n parentNode.replaceChild(newNode, node);\n }\n },\n removeNode: function removeNode(node, parentNode) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n } else if (parentNode) {\n if (shadowPoly !== null) {\n shadowPoly.unwrap(parentNode).removeChild(shadowPoly.unwrap(node));\n } else {\n parentNode.removeChild(node);\n }\n }\n },\n injectStyles: function injectStyles(styles, destination, prepend) {\n var node = document.createElement('style');\n node.innerHTML = styles;\n node.type = 'text/css';\n\n destination = destination || document.head;\n\n if (prepend && destination.childNodes.length > 0) {\n destination.insertBefore(node, destination.childNodes[0]);\n } else {\n destination.appendChild(node);\n }\n\n return node;\n }\n};\n\nexport function initialize() {\n if (isInitialized) {\n return;\n }\n\n initializePAL(function (platform, feature, dom) {\n Object.assign(platform, _PLATFORM);\n Object.assign(feature, _FEATURE);\n Object.assign(dom, _DOM);\n\n Object.defineProperty(dom, 'title', {\n get: function get() {\n return document.title;\n },\n set: function set(value) {\n document.title = value;\n }\n });\n\n Object.defineProperty(dom, 'activeElement', {\n get: function get() {\n return document.activeElement;\n }\n });\n\n Object.defineProperty(platform, 'XMLHttpRequest', {\n get: function get() {\n return platform.global.XMLHttpRequest;\n }\n });\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-pal-browser/dist/native-modules/aurelia-pal-browser.js\n// module id = aurelia-pal-browser\n// module chunks = 0","var _class, _temp, _dec, _class2, _class3, _temp2, _class4, _temp3;\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\nimport * as LogManager from 'aurelia-logging';\nimport { camelCase, SVGAnalyzer, bindingMode, connectable, enqueueBindingConnect, Parser, ObserverLocator, EventManager, ListenerExpression, BindingExpression, CallExpression, delegationStrategy, NameExpression } from 'aurelia-binding';\nimport { BehaviorInstruction, BindingLanguage } from 'aurelia-templating';\n\nexport var AttributeMap = (_temp = _class = function () {\n function AttributeMap(svg) {\n \n\n this.elements = Object.create(null);\n this.allElements = Object.create(null);\n\n this.svg = svg;\n\n this.registerUniversal('accesskey', 'accessKey');\n this.registerUniversal('contenteditable', 'contentEditable');\n this.registerUniversal('tabindex', 'tabIndex');\n this.registerUniversal('textcontent', 'textContent');\n this.registerUniversal('innerhtml', 'innerHTML');\n this.registerUniversal('scrolltop', 'scrollTop');\n this.registerUniversal('scrollleft', 'scrollLeft');\n this.registerUniversal('readonly', 'readOnly');\n\n this.register('label', 'for', 'htmlFor');\n\n this.register('img', 'usemap', 'useMap');\n\n this.register('input', 'maxlength', 'maxLength');\n this.register('input', 'minlength', 'minLength');\n this.register('input', 'formaction', 'formAction');\n this.register('input', 'formenctype', 'formEncType');\n this.register('input', 'formmethod', 'formMethod');\n this.register('input', 'formnovalidate', 'formNoValidate');\n this.register('input', 'formtarget', 'formTarget');\n\n this.register('textarea', 'maxlength', 'maxLength');\n\n this.register('td', 'rowspan', 'rowSpan');\n this.register('td', 'colspan', 'colSpan');\n this.register('th', 'rowspan', 'rowSpan');\n this.register('th', 'colspan', 'colSpan');\n }\n\n AttributeMap.prototype.register = function register(elementName, attributeName, propertyName) {\n elementName = elementName.toLowerCase();\n attributeName = attributeName.toLowerCase();\n var element = this.elements[elementName] = this.elements[elementName] || Object.create(null);\n element[attributeName] = propertyName;\n };\n\n AttributeMap.prototype.registerUniversal = function registerUniversal(attributeName, propertyName) {\n attributeName = attributeName.toLowerCase();\n this.allElements[attributeName] = propertyName;\n };\n\n AttributeMap.prototype.map = function map(elementName, attributeName) {\n if (this.svg.isStandardSvgAttribute(elementName, attributeName)) {\n return attributeName;\n }\n elementName = elementName.toLowerCase();\n attributeName = attributeName.toLowerCase();\n var element = this.elements[elementName];\n if (element !== undefined && attributeName in element) {\n return element[attributeName];\n }\n if (attributeName in this.allElements) {\n return this.allElements[attributeName];\n }\n\n if (/(?:^data-)|(?:^aria-)|:/.test(attributeName)) {\n return attributeName;\n }\n return camelCase(attributeName);\n };\n\n return AttributeMap;\n}(), _class.inject = [SVGAnalyzer], _temp);\n\nexport var InterpolationBindingExpression = function () {\n function InterpolationBindingExpression(observerLocator, targetProperty, parts, mode, lookupFunctions, attribute) {\n \n\n this.observerLocator = observerLocator;\n this.targetProperty = targetProperty;\n this.parts = parts;\n this.mode = mode;\n this.lookupFunctions = lookupFunctions;\n this.attribute = this.attrToRemove = attribute;\n this.discrete = false;\n }\n\n InterpolationBindingExpression.prototype.createBinding = function createBinding(target) {\n if (this.parts.length === 3) {\n return new ChildInterpolationBinding(target, this.observerLocator, this.parts[1], this.mode, this.lookupFunctions, this.targetProperty, this.parts[0], this.parts[2]);\n }\n return new InterpolationBinding(this.observerLocator, this.parts, target, this.targetProperty, this.mode, this.lookupFunctions);\n };\n\n return InterpolationBindingExpression;\n}();\n\nfunction validateTarget(target, propertyName) {\n if (propertyName === 'style') {\n LogManager.getLogger('templating-binding').info('Internet Explorer does not support interpolation in \"style\" attributes. Use the style attribute\\'s alias, \"css\" instead.');\n } else if (target.parentElement && target.parentElement.nodeName === 'TEXTAREA' && propertyName === 'textContent') {\n throw new Error('Interpolation binding cannot be used in the content of a textarea element. Use <textarea value.bind=\"expression\"></textarea> instead.');\n }\n}\n\nexport var InterpolationBinding = function () {\n function InterpolationBinding(observerLocator, parts, target, targetProperty, mode, lookupFunctions) {\n \n\n validateTarget(target, targetProperty);\n this.observerLocator = observerLocator;\n this.parts = parts;\n this.target = target;\n this.targetProperty = targetProperty;\n this.targetAccessor = observerLocator.getAccessor(target, targetProperty);\n this.mode = mode;\n this.lookupFunctions = lookupFunctions;\n }\n\n InterpolationBinding.prototype.interpolate = function interpolate() {\n if (this.isBound) {\n var value = '';\n var parts = this.parts;\n for (var i = 0, ii = parts.length; i < ii; i++) {\n value += i % 2 === 0 ? parts[i] : this['childBinding' + i].value;\n }\n this.targetAccessor.setValue(value, this.target, this.targetProperty);\n }\n };\n\n InterpolationBinding.prototype.updateOneTimeBindings = function updateOneTimeBindings() {\n for (var i = 1, ii = this.parts.length; i < ii; i += 2) {\n var child = this['childBinding' + i];\n if (child.mode === bindingMode.oneTime) {\n child.call();\n }\n }\n };\n\n InterpolationBinding.prototype.bind = function bind(source) {\n if (this.isBound) {\n if (this.source === source) {\n return;\n }\n this.unbind();\n }\n this.source = source;\n\n var parts = this.parts;\n for (var i = 1, ii = parts.length; i < ii; i += 2) {\n var binding = new ChildInterpolationBinding(this, this.observerLocator, parts[i], this.mode, this.lookupFunctions);\n binding.bind(source);\n this['childBinding' + i] = binding;\n }\n\n this.isBound = true;\n this.interpolate();\n };\n\n InterpolationBinding.prototype.unbind = function unbind() {\n if (!this.isBound) {\n return;\n }\n this.isBound = false;\n this.source = null;\n var parts = this.parts;\n for (var i = 1, ii = parts.length; i < ii; i += 2) {\n var name = 'childBinding' + i;\n this[name].unbind();\n }\n };\n\n return InterpolationBinding;\n}();\n\nexport var ChildInterpolationBinding = (_dec = connectable(), _dec(_class2 = function () {\n function ChildInterpolationBinding(target, observerLocator, sourceExpression, mode, lookupFunctions, targetProperty, left, right) {\n \n\n if (target instanceof InterpolationBinding) {\n this.parent = target;\n } else {\n validateTarget(target, targetProperty);\n this.target = target;\n this.targetProperty = targetProperty;\n this.targetAccessor = observerLocator.getAccessor(target, targetProperty);\n }\n this.observerLocator = observerLocator;\n this.sourceExpression = sourceExpression;\n this.mode = mode;\n this.lookupFunctions = lookupFunctions;\n this.left = left;\n this.right = right;\n }\n\n ChildInterpolationBinding.prototype.updateTarget = function updateTarget(value) {\n value = value === null || value === undefined ? '' : value.toString();\n if (value !== this.value) {\n this.value = value;\n if (this.parent) {\n this.parent.interpolate();\n } else {\n this.targetAccessor.setValue(this.left + value + this.right, this.target, this.targetProperty);\n }\n }\n };\n\n ChildInterpolationBinding.prototype.call = function call() {\n if (!this.isBound) {\n return;\n }\n\n this.rawValue = this.sourceExpression.evaluate(this.source, this.lookupFunctions);\n this.updateTarget(this.rawValue);\n\n if (this.mode !== bindingMode.oneTime) {\n this._version++;\n this.sourceExpression.connect(this, this.source);\n if (this.rawValue instanceof Array) {\n this.observeArray(this.rawValue);\n }\n this.unobserve(false);\n }\n };\n\n ChildInterpolationBinding.prototype.bind = function bind(source) {\n if (this.isBound) {\n if (this.source === source) {\n return;\n }\n this.unbind();\n }\n this.isBound = true;\n this.source = source;\n\n var sourceExpression = this.sourceExpression;\n if (sourceExpression.bind) {\n sourceExpression.bind(this, source, this.lookupFunctions);\n }\n\n this.rawValue = sourceExpression.evaluate(source, this.lookupFunctions);\n this.updateTarget(this.rawValue);\n\n if (this.mode === bindingMode.oneWay) {\n enqueueBindingConnect(this);\n }\n };\n\n ChildInterpolationBinding.prototype.unbind = function unbind() {\n if (!this.isBound) {\n return;\n }\n this.isBound = false;\n var sourceExpression = this.sourceExpression;\n if (sourceExpression.unbind) {\n sourceExpression.unbind(this, this.source);\n }\n this.source = null;\n this.value = null;\n this.rawValue = null;\n this.unobserve(true);\n };\n\n ChildInterpolationBinding.prototype.connect = function connect(evaluate) {\n if (!this.isBound) {\n return;\n }\n if (evaluate) {\n this.rawValue = this.sourceExpression.evaluate(this.source, this.lookupFunctions);\n this.updateTarget(this.rawValue);\n }\n this.sourceExpression.connect(this, this.source);\n if (this.rawValue instanceof Array) {\n this.observeArray(this.rawValue);\n }\n };\n\n return ChildInterpolationBinding;\n}()) || _class2);\n\nexport var SyntaxInterpreter = (_temp2 = _class3 = function () {\n function SyntaxInterpreter(parser, observerLocator, eventManager, attributeMap) {\n \n\n this.parser = parser;\n this.observerLocator = observerLocator;\n this.eventManager = eventManager;\n this.attributeMap = attributeMap;\n }\n\n SyntaxInterpreter.prototype.interpret = function interpret(resources, element, info, existingInstruction, context) {\n if (info.command in this) {\n return this[info.command](resources, element, info, existingInstruction, context);\n }\n\n return this.handleUnknownCommand(resources, element, info, existingInstruction, context);\n };\n\n SyntaxInterpreter.prototype.handleUnknownCommand = function handleUnknownCommand(resources, element, info, existingInstruction, context) {\n LogManager.getLogger('templating-binding').warn('Unknown binding command.', info);\n return existingInstruction;\n };\n\n SyntaxInterpreter.prototype.determineDefaultBindingMode = function determineDefaultBindingMode(element, attrName, context) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName === 'input' && (attrName === 'value' || attrName === 'files') && element.type !== 'checkbox' && element.type !== 'radio' || tagName === 'input' && attrName === 'checked' && (element.type === 'checkbox' || element.type === 'radio') || (tagName === 'textarea' || tagName === 'select') && attrName === 'value' || (attrName === 'textcontent' || attrName === 'innerhtml') && element.contentEditable === 'true' || attrName === 'scrolltop' || attrName === 'scrollleft') {\n return bindingMode.twoWay;\n }\n\n if (context && attrName in context.attributes && context.attributes[attrName] && context.attributes[attrName].defaultBindingMode >= bindingMode.oneTime) {\n return context.attributes[attrName].defaultBindingMode;\n }\n\n return bindingMode.oneWay;\n };\n\n SyntaxInterpreter.prototype.bind = function bind(resources, element, info, existingInstruction, context) {\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\n\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), info.defaultBindingMode || this.determineDefaultBindingMode(element, info.attrName, context), resources.lookupFunctions);\n\n return instruction;\n };\n\n SyntaxInterpreter.prototype.trigger = function trigger(resources, element, info) {\n return new ListenerExpression(this.eventManager, info.attrName, this.parser.parse(info.attrValue), delegationStrategy.none, true, resources.lookupFunctions);\n };\n\n SyntaxInterpreter.prototype.capture = function capture(resources, element, info) {\n return new ListenerExpression(this.eventManager, info.attrName, this.parser.parse(info.attrValue), delegationStrategy.capturing, true, resources.lookupFunctions);\n };\n\n SyntaxInterpreter.prototype.delegate = function delegate(resources, element, info) {\n return new ListenerExpression(this.eventManager, info.attrName, this.parser.parse(info.attrValue), delegationStrategy.bubbling, true, resources.lookupFunctions);\n };\n\n SyntaxInterpreter.prototype.call = function call(resources, element, info, existingInstruction) {\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\n\n instruction.attributes[info.attrName] = new CallExpression(this.observerLocator, info.attrName, this.parser.parse(info.attrValue), resources.lookupFunctions);\n\n return instruction;\n };\n\n SyntaxInterpreter.prototype.options = function options(resources, element, info, existingInstruction, context) {\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\n var attrValue = info.attrValue;\n var language = this.language;\n var name = null;\n var target = '';\n var current = void 0;\n var i = void 0;\n var ii = void 0;\n var inString = false;\n var inEscape = false;\n var foundName = false;\n\n for (i = 0, ii = attrValue.length; i < ii; ++i) {\n current = attrValue[i];\n\n if (current === ';' && !inString) {\n if (!foundName) {\n name = this._getPrimaryPropertyName(resources, context);\n }\n info = language.inspectAttribute(resources, '?', name, target.trim());\n language.createAttributeInstruction(resources, element, info, instruction, context);\n\n if (!instruction.attributes[info.attrName]) {\n instruction.attributes[info.attrName] = info.attrValue;\n }\n\n target = '';\n name = null;\n } else if (current === ':' && name === null) {\n foundName = true;\n name = target.trim();\n target = '';\n } else if (current === '\\\\') {\n target += current;\n inEscape = true;\n continue;\n } else {\n target += current;\n\n if (name !== null && inEscape === false && current === '\\'') {\n inString = !inString;\n }\n }\n\n inEscape = false;\n }\n\n if (!foundName) {\n name = this._getPrimaryPropertyName(resources, context);\n }\n\n if (name !== null) {\n info = language.inspectAttribute(resources, '?', name, target.trim());\n language.createAttributeInstruction(resources, element, info, instruction, context);\n\n if (!instruction.attributes[info.attrName]) {\n instruction.attributes[info.attrName] = info.attrValue;\n }\n }\n\n return instruction;\n };\n\n SyntaxInterpreter.prototype._getPrimaryPropertyName = function _getPrimaryPropertyName(resources, context) {\n var type = resources.getAttribute(context.attributeName);\n if (type && type.primaryProperty) {\n return type.primaryProperty.name;\n }\n return null;\n };\n\n SyntaxInterpreter.prototype['for'] = function _for(resources, element, info, existingInstruction) {\n var parts = void 0;\n var keyValue = void 0;\n var instruction = void 0;\n var attrValue = void 0;\n var isDestructuring = void 0;\n\n attrValue = info.attrValue;\n isDestructuring = attrValue.match(/^ *[[].+[\\]]/);\n parts = isDestructuring ? attrValue.split('of ') : attrValue.split(' of ');\n\n if (parts.length !== 2) {\n throw new Error('Incorrect syntax for \"for\". The form is: \"$local of $items\" or \"[$key, $value] of $items\".');\n }\n\n instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\n\n if (isDestructuring) {\n keyValue = parts[0].replace(/[[\\]]/g, '').replace(/,/g, ' ').replace(/\\s+/g, ' ').trim().split(' ');\n instruction.attributes.key = keyValue[0];\n instruction.attributes.value = keyValue[1];\n } else {\n instruction.attributes.local = parts[0];\n }\n\n instruction.attributes.items = new BindingExpression(this.observerLocator, 'items', this.parser.parse(parts[1]), bindingMode.oneWay, resources.lookupFunctions);\n\n return instruction;\n };\n\n SyntaxInterpreter.prototype['two-way'] = function twoWay(resources, element, info, existingInstruction) {\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\n\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), bindingMode.twoWay, resources.lookupFunctions);\n\n return instruction;\n };\n\n SyntaxInterpreter.prototype['one-way'] = function oneWay(resources, element, info, existingInstruction) {\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\n\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), bindingMode.oneWay, resources.lookupFunctions);\n\n return instruction;\n };\n\n SyntaxInterpreter.prototype['one-time'] = function oneTime(resources, element, info, existingInstruction) {\n var instruction = existingInstruction || BehaviorInstruction.attribute(info.attrName);\n\n instruction.attributes[info.attrName] = new BindingExpression(this.observerLocator, this.attributeMap.map(element.tagName, info.attrName), this.parser.parse(info.attrValue), bindingMode.oneTime, resources.lookupFunctions);\n\n return instruction;\n };\n\n return SyntaxInterpreter;\n}(), _class3.inject = [Parser, ObserverLocator, EventManager, AttributeMap], _temp2);\n\nvar info = {};\n\nexport var TemplatingBindingLanguage = (_temp3 = _class4 = function (_BindingLanguage) {\n _inherits(TemplatingBindingLanguage, _BindingLanguage);\n\n function TemplatingBindingLanguage(parser, observerLocator, syntaxInterpreter, attributeMap) {\n \n\n var _this = _possibleConstructorReturn(this, _BindingLanguage.call(this));\n\n _this.parser = parser;\n _this.observerLocator = observerLocator;\n _this.syntaxInterpreter = syntaxInterpreter;\n _this.emptyStringExpression = _this.parser.parse('\\'\\'');\n syntaxInterpreter.language = _this;\n _this.attributeMap = attributeMap;\n return _this;\n }\n\n TemplatingBindingLanguage.prototype.inspectAttribute = function inspectAttribute(resources, elementName, attrName, attrValue) {\n var parts = attrName.split('.');\n\n info.defaultBindingMode = null;\n\n if (parts.length === 2) {\n info.attrName = parts[0].trim();\n info.attrValue = attrValue;\n info.command = parts[1].trim();\n\n if (info.command === 'ref') {\n info.expression = new NameExpression(this.parser.parse(attrValue), info.attrName, resources.lookupFunctions);\n info.command = null;\n info.attrName = 'ref';\n } else {\n info.expression = null;\n }\n } else if (attrName === 'ref') {\n info.attrName = attrName;\n info.attrValue = attrValue;\n info.command = null;\n info.expression = new NameExpression(this.parser.parse(attrValue), 'element', resources.lookupFunctions);\n } else {\n info.attrName = attrName;\n info.attrValue = attrValue;\n info.command = null;\n var interpolationParts = this.parseInterpolation(resources, attrValue);\n if (interpolationParts === null) {\n info.expression = null;\n } else {\n info.expression = new InterpolationBindingExpression(this.observerLocator, this.attributeMap.map(elementName, attrName), interpolationParts, bindingMode.oneWay, resources.lookupFunctions, attrName);\n }\n }\n\n return info;\n };\n\n TemplatingBindingLanguage.prototype.createAttributeInstruction = function createAttributeInstruction(resources, element, theInfo, existingInstruction, context) {\n var instruction = void 0;\n\n if (theInfo.expression) {\n if (theInfo.attrName === 'ref') {\n return theInfo.expression;\n }\n\n instruction = existingInstruction || BehaviorInstruction.attribute(theInfo.attrName);\n instruction.attributes[theInfo.attrName] = theInfo.expression;\n } else if (theInfo.command) {\n instruction = this.syntaxInterpreter.interpret(resources, element, theInfo, existingInstruction, context);\n }\n\n return instruction;\n };\n\n TemplatingBindingLanguage.prototype.inspectTextContent = function inspectTextContent(resources, value) {\n var parts = this.parseInterpolation(resources, value);\n if (parts === null) {\n return null;\n }\n return new InterpolationBindingExpression(this.observerLocator, 'textContent', parts, bindingMode.oneWay, resources.lookupFunctions, 'textContent');\n };\n\n TemplatingBindingLanguage.prototype.parseInterpolation = function parseInterpolation(resources, value) {\n var i = value.indexOf('${', 0);\n var ii = value.length;\n var char = void 0;\n var pos = 0;\n var open = 0;\n var quote = null;\n var interpolationStart = void 0;\n var parts = void 0;\n var partIndex = 0;\n\n while (i >= 0 && i < ii - 2) {\n open = 1;\n interpolationStart = i;\n i += 2;\n\n do {\n char = value[i];\n i++;\n\n if (char === \"'\" || char === '\"') {\n if (quote === null) {\n quote = char;\n } else if (quote === char) {\n quote = null;\n }\n continue;\n }\n\n if (char === '\\\\') {\n i++;\n continue;\n }\n\n if (quote !== null) {\n continue;\n }\n\n if (char === '{') {\n open++;\n } else if (char === '}') {\n open--;\n }\n } while (open > 0 && i < ii);\n\n if (open === 0) {\n parts = parts || [];\n if (value[interpolationStart - 1] === '\\\\' && value[interpolationStart - 2] !== '\\\\') {\n parts[partIndex] = value.substring(pos, interpolationStart - 1) + value.substring(interpolationStart, i);\n partIndex++;\n parts[partIndex] = this.emptyStringExpression;\n partIndex++;\n } else {\n parts[partIndex] = value.substring(pos, interpolationStart);\n partIndex++;\n parts[partIndex] = this.parser.parse(value.substring(interpolationStart + 2, i - 1));\n partIndex++;\n }\n pos = i;\n i = value.indexOf('${', i);\n } else {\n break;\n }\n }\n\n if (partIndex === 0) {\n return null;\n }\n\n parts[partIndex] = value.substr(pos);\n return parts;\n };\n\n return TemplatingBindingLanguage;\n}(BindingLanguage), _class4.inject = [Parser, ObserverLocator, SyntaxInterpreter, AttributeMap], _temp3);\n\nexport function configure(config) {\n config.container.registerSingleton(BindingLanguage, TemplatingBindingLanguage);\n config.container.registerAlias(BindingLanguage, TemplatingBindingLanguage);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-binding/dist/native-modules/aurelia-templating-binding.js\n// module id = aurelia-templating-binding\n// module chunks = 0","import { PLATFORM } from 'aurelia-pal';\nimport { Compose } from './compose';\nimport { If } from './if';\nimport { With } from './with';\nimport { Repeat } from './repeat';\nimport { Show } from './show';\nimport { Hide } from './hide';\nimport { SanitizeHTMLValueConverter } from './sanitize-html';\nimport { Replaceable } from './replaceable';\nimport { Focus } from './focus';\nimport { ViewEngine } from 'aurelia-templating';\nimport { _createCSSResource } from './css-resource';\nimport { HTMLSanitizer } from './html-sanitizer';\nimport { AttrBindingBehavior } from './attr-binding-behavior';\nimport { OneTimeBindingBehavior, OneWayBindingBehavior, TwoWayBindingBehavior } from './binding-mode-behaviors';\nimport { ThrottleBindingBehavior } from './throttle-binding-behavior';\nimport { DebounceBindingBehavior } from './debounce-binding-behavior';\nimport { SelfBindingBehavior } from './self-binding-behavior';\nimport { SignalBindingBehavior } from './signal-binding-behavior';\nimport { BindingSignaler } from './binding-signaler';\nimport { UpdateTriggerBindingBehavior } from './update-trigger-binding-behavior';\nimport { AbstractRepeater } from './abstract-repeater';\nimport { RepeatStrategyLocator } from './repeat-strategy-locator';\nimport { configure as configureHtmlResourcePlugin } from './html-resource-plugin';\nimport { NullRepeatStrategy } from './null-repeat-strategy';\nimport { ArrayRepeatStrategy } from './array-repeat-strategy';\nimport { MapRepeatStrategy } from './map-repeat-strategy';\nimport { SetRepeatStrategy } from './set-repeat-strategy';\nimport { NumberRepeatStrategy } from './number-repeat-strategy';\nimport { createFullOverrideContext, updateOverrideContext, getItemsSourceExpression, isOneTime, updateOneTimeBinding, unwrapExpression } from './repeat-utilities';\nimport { viewsRequireLifecycle } from './analyze-view-factory';\nimport { injectAureliaHideStyleAtHead } from './aurelia-hide-style';\n\nfunction configure(config) {\n injectAureliaHideStyleAtHead();\n\n config.globalResources(PLATFORM.moduleName('./compose'), PLATFORM.moduleName('./if'), PLATFORM.moduleName('./with'), PLATFORM.moduleName('./repeat'), PLATFORM.moduleName('./show'), PLATFORM.moduleName('./hide'), PLATFORM.moduleName('./replaceable'), PLATFORM.moduleName('./sanitize-html'), PLATFORM.moduleName('./focus'), PLATFORM.moduleName('./binding-mode-behaviors'), PLATFORM.moduleName('./self-binding-behavior'), PLATFORM.moduleName('./throttle-binding-behavior'), PLATFORM.moduleName('./debounce-binding-behavior'), PLATFORM.moduleName('./signal-binding-behavior'), PLATFORM.moduleName('./update-trigger-binding-behavior'), PLATFORM.moduleName('./attr-binding-behavior'));\n\n configureHtmlResourcePlugin(config);\n\n var viewEngine = config.container.get(ViewEngine);\n var styleResourcePlugin = {\n fetch: function fetch(address) {\n var _ref;\n\n return _ref = {}, _ref[address] = _createCSSResource(address), _ref;\n }\n };\n ['.css', '.less', '.sass', '.scss', '.styl'].forEach(function (ext) {\n return viewEngine.addResourcePlugin(ext, styleResourcePlugin);\n });\n}\n\nexport { Compose, If, With, Repeat, Show, Hide, HTMLSanitizer, SanitizeHTMLValueConverter, Replaceable, Focus, configure, AttrBindingBehavior, OneTimeBindingBehavior, OneWayBindingBehavior, TwoWayBindingBehavior, ThrottleBindingBehavior, DebounceBindingBehavior, SelfBindingBehavior, SignalBindingBehavior, BindingSignaler, UpdateTriggerBindingBehavior, AbstractRepeater, RepeatStrategyLocator, NullRepeatStrategy, ArrayRepeatStrategy, MapRepeatStrategy, SetRepeatStrategy, NumberRepeatStrategy, createFullOverrideContext, updateOverrideContext, getItemsSourceExpression, isOneTime, updateOneTimeBinding, unwrapExpression, viewsRequireLifecycle };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/aurelia-templating-resources.js\n// module id = aurelia-templating-resources\n// module chunks = 0","\n\nimport { DataAttributeObserver } from 'aurelia-binding';\n\nexport var AttrBindingBehavior = function () {\n function AttrBindingBehavior() {\n \n }\n\n AttrBindingBehavior.prototype.bind = function bind(binding, source) {\n binding.targetObserver = new DataAttributeObserver(binding.target, binding.targetProperty);\n };\n\n AttrBindingBehavior.prototype.unbind = function unbind(binding, source) {};\n\n return AttrBindingBehavior;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/attr-binding-behavior.js\n// module id = aurelia-templating-resources/attr-binding-behavior\n// module chunks = 0","var _dec, _class, _dec2, _class2, _dec3, _class3;\n\n\n\nimport { bindingMode } from 'aurelia-binding';\nimport { mixin } from 'aurelia-metadata';\n\nvar modeBindingBehavior = {\n bind: function bind(binding, source, lookupFunctions) {\n binding.originalMode = binding.mode;\n binding.mode = this.mode;\n },\n unbind: function unbind(binding, source) {\n binding.mode = binding.originalMode;\n binding.originalMode = null;\n }\n};\n\nexport var OneTimeBindingBehavior = (_dec = mixin(modeBindingBehavior), _dec(_class = function OneTimeBindingBehavior() {\n \n\n this.mode = bindingMode.oneTime;\n}) || _class);\n\nexport var OneWayBindingBehavior = (_dec2 = mixin(modeBindingBehavior), _dec2(_class2 = function OneWayBindingBehavior() {\n \n\n this.mode = bindingMode.oneWay;\n}) || _class2);\n\nexport var TwoWayBindingBehavior = (_dec3 = mixin(modeBindingBehavior), _dec3(_class3 = function TwoWayBindingBehavior() {\n \n\n this.mode = bindingMode.twoWay;\n}) || _class3);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/binding-mode-behaviors.js\n// module id = aurelia-templating-resources/binding-mode-behaviors\n// module chunks = 0","var _dec, _dec2, _class, _desc, _value, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\n\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nimport { Container, inject } from 'aurelia-dependency-injection';\nimport { TaskQueue } from 'aurelia-task-queue';\nimport { CompositionEngine, ViewSlot, ViewResources, customElement, bindable, noView, View } from 'aurelia-templating';\nimport { DOM } from 'aurelia-pal';\n\nexport var Compose = (_dec = customElement('compose'), _dec2 = inject(DOM.Element, Container, CompositionEngine, ViewSlot, ViewResources, TaskQueue), _dec(_class = noView(_class = _dec2(_class = (_class2 = function () {\n function Compose(element, container, compositionEngine, viewSlot, viewResources, taskQueue) {\n \n\n _initDefineProp(this, 'model', _descriptor, this);\n\n _initDefineProp(this, 'view', _descriptor2, this);\n\n _initDefineProp(this, 'viewModel', _descriptor3, this);\n\n _initDefineProp(this, 'swapOrder', _descriptor4, this);\n\n this.element = element;\n this.container = container;\n this.compositionEngine = compositionEngine;\n this.viewSlot = viewSlot;\n this.viewResources = viewResources;\n this.taskQueue = taskQueue;\n this.currentController = null;\n this.currentViewModel = null;\n }\n\n Compose.prototype.created = function created(owningView) {\n this.owningView = owningView;\n };\n\n Compose.prototype.bind = function bind(bindingContext, overrideContext) {\n this.bindingContext = bindingContext;\n this.overrideContext = overrideContext;\n processInstruction(this, createInstruction(this, {\n view: this.view,\n viewModel: this.viewModel,\n model: this.model\n }));\n };\n\n Compose.prototype.unbind = function unbind(bindingContext, overrideContext) {\n this.bindingContext = null;\n this.overrideContext = null;\n var returnToCache = true;\n var skipAnimation = true;\n this.viewSlot.removeAll(returnToCache, skipAnimation);\n };\n\n Compose.prototype.modelChanged = function modelChanged(newValue, oldValue) {\n var _this = this;\n\n if (this.currentInstruction) {\n this.currentInstruction.model = newValue;\n return;\n }\n\n this.taskQueue.queueMicroTask(function () {\n if (_this.currentInstruction) {\n _this.currentInstruction.model = newValue;\n return;\n }\n\n var vm = _this.currentViewModel;\n\n if (vm && typeof vm.activate === 'function') {\n vm.activate(newValue);\n }\n });\n };\n\n Compose.prototype.viewChanged = function viewChanged(newValue, oldValue) {\n var _this2 = this;\n\n var instruction = createInstruction(this, {\n view: newValue,\n viewModel: this.currentViewModel || this.viewModel,\n model: this.model\n });\n\n if (this.currentInstruction) {\n this.currentInstruction = instruction;\n return;\n }\n\n this.currentInstruction = instruction;\n this.taskQueue.queueMicroTask(function () {\n return processInstruction(_this2, _this2.currentInstruction);\n });\n };\n\n Compose.prototype.viewModelChanged = function viewModelChanged(newValue, oldValue) {\n var _this3 = this;\n\n var instruction = createInstruction(this, {\n viewModel: newValue,\n view: this.view,\n model: this.model\n });\n\n if (this.currentInstruction) {\n this.currentInstruction = instruction;\n return;\n }\n\n this.currentInstruction = instruction;\n this.taskQueue.queueMicroTask(function () {\n return processInstruction(_this3, _this3.currentInstruction);\n });\n };\n\n return Compose;\n}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'model', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'view', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'viewModel', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, 'swapOrder', [bindable], {\n enumerable: true,\n initializer: null\n})), _class2)) || _class) || _class) || _class);\n\nfunction createInstruction(composer, instruction) {\n return Object.assign(instruction, {\n bindingContext: composer.bindingContext,\n overrideContext: composer.overrideContext,\n owningView: composer.owningView,\n container: composer.container,\n viewSlot: composer.viewSlot,\n viewResources: composer.viewResources,\n currentController: composer.currentController,\n host: composer.element,\n swapOrder: composer.swapOrder\n });\n}\n\nfunction processInstruction(composer, instruction) {\n composer.currentInstruction = null;\n composer.compositionEngine.compose(instruction).then(function (controller) {\n composer.currentController = controller;\n composer.currentViewModel = controller ? controller.viewModel : null;\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/compose.js\n// module id = aurelia-templating-resources/compose\n// module chunks = 0","\n\nimport { bindingMode } from 'aurelia-binding';\n\nfunction debounce(newValue) {\n var _this = this;\n\n var state = this.debounceState;\n if (state.immediate) {\n state.immediate = false;\n this.debouncedMethod(newValue);\n return;\n }\n clearTimeout(state.timeoutId);\n state.timeoutId = setTimeout(function () {\n return _this.debouncedMethod(newValue);\n }, state.delay);\n}\n\nexport var DebounceBindingBehavior = function () {\n function DebounceBindingBehavior() {\n \n }\n\n DebounceBindingBehavior.prototype.bind = function bind(binding, source) {\n var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n\n var methodToDebounce = 'updateTarget';\n if (binding.callSource) {\n methodToDebounce = 'callSource';\n } else if (binding.updateSource && binding.mode === bindingMode.twoWay) {\n methodToDebounce = 'updateSource';\n }\n\n binding.debouncedMethod = binding[methodToDebounce];\n binding.debouncedMethod.originalName = methodToDebounce;\n\n binding[methodToDebounce] = debounce;\n\n binding.debounceState = {\n delay: delay,\n timeoutId: null,\n immediate: methodToDebounce === 'updateTarget' };\n };\n\n DebounceBindingBehavior.prototype.unbind = function unbind(binding, source) {\n var methodToRestore = binding.debouncedMethod.originalName;\n binding[methodToRestore] = binding.debouncedMethod;\n binding.debouncedMethod = null;\n clearTimeout(binding.debounceState.timeoutId);\n binding.debounceState = null;\n };\n\n return DebounceBindingBehavior;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/debounce-binding-behavior.js\n// module id = aurelia-templating-resources/debounce-binding-behavior\n// module chunks = 0","var _dec, _dec2, _class;\n\n\n\nimport { customAttribute } from 'aurelia-templating';\nimport { bindingMode } from 'aurelia-binding';\nimport { inject } from 'aurelia-dependency-injection';\nimport { TaskQueue } from 'aurelia-task-queue';\nimport { DOM } from 'aurelia-pal';\n\nexport var Focus = (_dec = customAttribute('focus', bindingMode.twoWay), _dec2 = inject(DOM.Element, TaskQueue), _dec(_class = _dec2(_class = function () {\n function Focus(element, taskQueue) {\n var _this = this;\n\n \n\n this.element = element;\n this.taskQueue = taskQueue;\n this.isAttached = false;\n this.needsApply = false;\n\n this.focusListener = function (e) {\n _this.value = true;\n };\n this.blurListener = function (e) {\n if (DOM.activeElement !== _this.element) {\n _this.value = false;\n }\n };\n }\n\n Focus.prototype.valueChanged = function valueChanged(newValue) {\n if (this.isAttached) {\n this._apply();\n } else {\n this.needsApply = true;\n }\n };\n\n Focus.prototype._apply = function _apply() {\n var _this2 = this;\n\n if (this.value) {\n this.taskQueue.queueMicroTask(function () {\n if (_this2.value) {\n _this2.element.focus();\n }\n });\n } else {\n this.element.blur();\n }\n };\n\n Focus.prototype.attached = function attached() {\n this.isAttached = true;\n if (this.needsApply) {\n this.needsApply = false;\n this._apply();\n }\n this.element.addEventListener('focus', this.focusListener);\n this.element.addEventListener('blur', this.blurListener);\n };\n\n Focus.prototype.detached = function detached() {\n this.isAttached = false;\n this.element.removeEventListener('focus', this.focusListener);\n this.element.removeEventListener('blur', this.blurListener);\n };\n\n return Focus;\n}()) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/focus.js\n// module id = aurelia-templating-resources/focus\n// module chunks = 0","var _dec, _dec2, _class;\n\n\n\nimport { inject, Optional } from 'aurelia-dependency-injection';\nimport { customAttribute, Animator } from 'aurelia-templating';\nimport { DOM } from 'aurelia-pal';\nimport { injectAureliaHideStyleAtBoundary, aureliaHideClassName } from './aurelia-hide-style';\n\nexport var Hide = (_dec = customAttribute('hide'), _dec2 = inject(DOM.Element, Animator, Optional.of(DOM.boundary, true)), _dec(_class = _dec2(_class = function () {\n function Hide(element, animator, domBoundary) {\n \n\n this.element = element;\n this.animator = animator;\n this.domBoundary = domBoundary;\n }\n\n Hide.prototype.created = function created() {\n injectAureliaHideStyleAtBoundary(this.domBoundary);\n };\n\n Hide.prototype.valueChanged = function valueChanged(newValue) {\n if (newValue) {\n this.animator.addClass(this.element, aureliaHideClassName);\n } else {\n this.animator.removeClass(this.element, aureliaHideClassName);\n }\n };\n\n Hide.prototype.bind = function bind(bindingContext) {\n this.valueChanged(this.value);\n };\n\n return Hide;\n}()) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/hide.js\n// module id = aurelia-templating-resources/hide\n// module chunks = 0","var _dec, _dec2, _class;\n\n\n\nimport { BoundViewFactory, ViewSlot, customAttribute, templateController } from 'aurelia-templating';\nimport { inject } from 'aurelia-dependency-injection';\n\nexport var If = (_dec = customAttribute('if'), _dec2 = inject(BoundViewFactory, ViewSlot), _dec(_class = templateController(_class = _dec2(_class = function () {\n function If(viewFactory, viewSlot) {\n \n\n this.viewFactory = viewFactory;\n this.viewSlot = viewSlot;\n this.showing = false;\n this.view = null;\n this.bindingContext = null;\n this.overrideContext = null;\n }\n\n If.prototype.bind = function bind(bindingContext, overrideContext) {\n this.bindingContext = bindingContext;\n this.overrideContext = overrideContext;\n this.valueChanged(this.value);\n };\n\n If.prototype.valueChanged = function valueChanged(newValue) {\n var _this = this;\n\n if (this.__queuedChanges) {\n this.__queuedChanges.push(newValue);\n return;\n }\n\n var maybePromise = this._runValueChanged(newValue);\n if (maybePromise instanceof Promise) {\n (function () {\n var queuedChanges = _this.__queuedChanges = [];\n\n var runQueuedChanges = function runQueuedChanges() {\n if (!queuedChanges.length) {\n _this.__queuedChanges = undefined;\n return;\n }\n\n var nextPromise = _this._runValueChanged(queuedChanges.shift()) || Promise.resolve();\n nextPromise.then(runQueuedChanges);\n };\n\n maybePromise.then(runQueuedChanges);\n })();\n }\n };\n\n If.prototype._runValueChanged = function _runValueChanged(newValue) {\n var _this2 = this;\n\n if (!newValue) {\n var viewOrPromise = void 0;\n if (this.view !== null && this.showing) {\n viewOrPromise = this.viewSlot.remove(this.view);\n if (viewOrPromise instanceof Promise) {\n viewOrPromise.then(function () {\n return _this2.view.unbind();\n });\n } else {\n this.view.unbind();\n }\n }\n\n this.showing = false;\n return viewOrPromise;\n }\n\n if (this.view === null) {\n this.view = this.viewFactory.create();\n }\n\n if (!this.view.isBound) {\n this.view.bind(this.bindingContext, this.overrideContext);\n }\n\n if (!this.showing) {\n this.showing = true;\n return this.viewSlot.add(this.view);\n }\n\n return undefined;\n };\n\n If.prototype.unbind = function unbind() {\n if (this.view === null) {\n return;\n }\n\n this.view.unbind();\n\n if (!this.viewFactory.isCaching) {\n return;\n }\n\n if (this.showing) {\n this.showing = false;\n this.viewSlot.remove(this.view, true, true);\n }\n this.view.returnToCache();\n this.view = null;\n };\n\n return If;\n}()) || _class) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/if.js\n// module id = aurelia-templating-resources/if\n// module chunks = 0","var _dec, _dec2, _class, _desc, _value, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\n\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nimport { inject } from 'aurelia-dependency-injection';\nimport { ObserverLocator } from 'aurelia-binding';\nimport { BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, customAttribute, bindable, templateController } from 'aurelia-templating';\nimport { RepeatStrategyLocator } from './repeat-strategy-locator';\nimport { getItemsSourceExpression, unwrapExpression, isOneTime, updateOneTimeBinding } from './repeat-utilities';\nimport { viewsRequireLifecycle } from './analyze-view-factory';\nimport { AbstractRepeater } from './abstract-repeater';\n\nexport var Repeat = (_dec = customAttribute('repeat'), _dec2 = inject(BoundViewFactory, TargetInstruction, ViewSlot, ViewResources, ObserverLocator, RepeatStrategyLocator), _dec(_class = templateController(_class = _dec2(_class = (_class2 = function (_AbstractRepeater) {\n _inherits(Repeat, _AbstractRepeater);\n\n function Repeat(viewFactory, instruction, viewSlot, viewResources, observerLocator, strategyLocator) {\n \n\n var _this = _possibleConstructorReturn(this, _AbstractRepeater.call(this, {\n local: 'item',\n viewsRequireLifecycle: viewsRequireLifecycle(viewFactory)\n }));\n\n _initDefineProp(_this, 'items', _descriptor, _this);\n\n _initDefineProp(_this, 'local', _descriptor2, _this);\n\n _initDefineProp(_this, 'key', _descriptor3, _this);\n\n _initDefineProp(_this, 'value', _descriptor4, _this);\n\n _this.viewFactory = viewFactory;\n _this.instruction = instruction;\n _this.viewSlot = viewSlot;\n _this.lookupFunctions = viewResources.lookupFunctions;\n _this.observerLocator = observerLocator;\n _this.key = 'key';\n _this.value = 'value';\n _this.strategyLocator = strategyLocator;\n _this.ignoreMutation = false;\n _this.sourceExpression = getItemsSourceExpression(_this.instruction, 'repeat.for');\n _this.isOneTime = isOneTime(_this.sourceExpression);\n _this.viewsRequireLifecycle = viewsRequireLifecycle(viewFactory);\n return _this;\n }\n\n Repeat.prototype.call = function call(context, changes) {\n this[context](this.items, changes);\n };\n\n Repeat.prototype.bind = function bind(bindingContext, overrideContext) {\n this.scope = { bindingContext: bindingContext, overrideContext: overrideContext };\n this.matcherBinding = this._captureAndRemoveMatcherBinding();\n this.itemsChanged();\n };\n\n Repeat.prototype.unbind = function unbind() {\n this.scope = null;\n this.items = null;\n this.matcherBinding = null;\n this.viewSlot.removeAll(true);\n this._unsubscribeCollection();\n };\n\n Repeat.prototype._unsubscribeCollection = function _unsubscribeCollection() {\n if (this.collectionObserver) {\n this.collectionObserver.unsubscribe(this.callContext, this);\n this.collectionObserver = null;\n this.callContext = null;\n }\n };\n\n Repeat.prototype.itemsChanged = function itemsChanged() {\n this._unsubscribeCollection();\n\n if (!this.scope) {\n return;\n }\n\n var items = this.items;\n this.strategy = this.strategyLocator.getStrategy(items);\n if (!this.strategy) {\n throw new Error('Value for \\'' + this.sourceExpression + '\\' is non-repeatable');\n }\n\n if (!this.isOneTime && !this._observeInnerCollection()) {\n this._observeCollection();\n }\n this.strategy.instanceChanged(this, items);\n };\n\n Repeat.prototype._getInnerCollection = function _getInnerCollection() {\n var expression = unwrapExpression(this.sourceExpression);\n if (!expression) {\n return null;\n }\n return expression.evaluate(this.scope, null);\n };\n\n Repeat.prototype.handleCollectionMutated = function handleCollectionMutated(collection, changes) {\n if (!this.collectionObserver) {\n return;\n }\n this.strategy.instanceMutated(this, collection, changes);\n };\n\n Repeat.prototype.handleInnerCollectionMutated = function handleInnerCollectionMutated(collection, changes) {\n var _this2 = this;\n\n if (!this.collectionObserver) {\n return;\n }\n\n if (this.ignoreMutation) {\n return;\n }\n this.ignoreMutation = true;\n var newItems = this.sourceExpression.evaluate(this.scope, this.lookupFunctions);\n this.observerLocator.taskQueue.queueMicroTask(function () {\n return _this2.ignoreMutation = false;\n });\n\n if (newItems === this.items) {\n this.itemsChanged();\n } else {\n this.items = newItems;\n }\n };\n\n Repeat.prototype._observeInnerCollection = function _observeInnerCollection() {\n var items = this._getInnerCollection();\n var strategy = this.strategyLocator.getStrategy(items);\n if (!strategy) {\n return false;\n }\n this.collectionObserver = strategy.getCollectionObserver(this.observerLocator, items);\n if (!this.collectionObserver) {\n return false;\n }\n this.callContext = 'handleInnerCollectionMutated';\n this.collectionObserver.subscribe(this.callContext, this);\n return true;\n };\n\n Repeat.prototype._observeCollection = function _observeCollection() {\n var items = this.items;\n this.collectionObserver = this.strategy.getCollectionObserver(this.observerLocator, items);\n if (this.collectionObserver) {\n this.callContext = 'handleCollectionMutated';\n this.collectionObserver.subscribe(this.callContext, this);\n }\n };\n\n Repeat.prototype._captureAndRemoveMatcherBinding = function _captureAndRemoveMatcherBinding() {\n if (this.viewFactory.viewFactory) {\n var instructions = this.viewFactory.viewFactory.instructions;\n var instructionIds = Object.keys(instructions);\n for (var i = 0; i < instructionIds.length; i++) {\n var expressions = instructions[instructionIds[i]].expressions;\n if (expressions) {\n for (var ii = 0; i < expressions.length; i++) {\n if (expressions[ii].targetProperty === 'matcher') {\n var matcherBinding = expressions[ii];\n expressions.splice(ii, 1);\n return matcherBinding;\n }\n }\n }\n }\n }\n\n return undefined;\n };\n\n Repeat.prototype.viewCount = function viewCount() {\n return this.viewSlot.children.length;\n };\n\n Repeat.prototype.views = function views() {\n return this.viewSlot.children;\n };\n\n Repeat.prototype.view = function view(index) {\n return this.viewSlot.children[index];\n };\n\n Repeat.prototype.matcher = function matcher() {\n return this.matcherBinding ? this.matcherBinding.sourceExpression.evaluate(this.scope, this.matcherBinding.lookupFunctions) : null;\n };\n\n Repeat.prototype.addView = function addView(bindingContext, overrideContext) {\n var view = this.viewFactory.create();\n view.bind(bindingContext, overrideContext);\n this.viewSlot.add(view);\n };\n\n Repeat.prototype.insertView = function insertView(index, bindingContext, overrideContext) {\n var view = this.viewFactory.create();\n view.bind(bindingContext, overrideContext);\n this.viewSlot.insert(index, view);\n };\n\n Repeat.prototype.moveView = function moveView(sourceIndex, targetIndex) {\n this.viewSlot.move(sourceIndex, targetIndex);\n };\n\n Repeat.prototype.removeAllViews = function removeAllViews(returnToCache, skipAnimation) {\n return this.viewSlot.removeAll(returnToCache, skipAnimation);\n };\n\n Repeat.prototype.removeViews = function removeViews(viewsToRemove, returnToCache, skipAnimation) {\n return this.viewSlot.removeMany(viewsToRemove, returnToCache, skipAnimation);\n };\n\n Repeat.prototype.removeView = function removeView(index, returnToCache, skipAnimation) {\n return this.viewSlot.removeAt(index, returnToCache, skipAnimation);\n };\n\n Repeat.prototype.updateBindings = function updateBindings(view) {\n var j = view.bindings.length;\n while (j--) {\n updateOneTimeBinding(view.bindings[j]);\n }\n j = view.controllers.length;\n while (j--) {\n var k = view.controllers[j].boundProperties.length;\n while (k--) {\n var binding = view.controllers[j].boundProperties[k].binding;\n updateOneTimeBinding(binding);\n }\n }\n };\n\n return Repeat;\n}(AbstractRepeater), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'items', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'local', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'key', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, 'value', [bindable], {\n enumerable: true,\n initializer: null\n})), _class2)) || _class) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/repeat.js\n// module id = aurelia-templating-resources/repeat\n// module chunks = 0","var _dec, _dec2, _class;\n\n\n\nimport { inject } from 'aurelia-dependency-injection';\nimport { BoundViewFactory, ViewSlot, customAttribute, templateController } from 'aurelia-templating';\n\nexport var Replaceable = (_dec = customAttribute('replaceable'), _dec2 = inject(BoundViewFactory, ViewSlot), _dec(_class = templateController(_class = _dec2(_class = function () {\n function Replaceable(viewFactory, viewSlot) {\n \n\n this.viewFactory = viewFactory;\n this.viewSlot = viewSlot;\n this.view = null;\n }\n\n Replaceable.prototype.bind = function bind(bindingContext, overrideContext) {\n if (this.view === null) {\n this.view = this.viewFactory.create();\n this.viewSlot.add(this.view);\n }\n\n this.view.bind(bindingContext, overrideContext);\n };\n\n Replaceable.prototype.unbind = function unbind() {\n this.view.unbind();\n };\n\n return Replaceable;\n}()) || _class) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/replaceable.js\n// module id = aurelia-templating-resources/replaceable\n// module chunks = 0","var _dec, _dec2, _class;\n\n\n\nimport { valueConverter } from 'aurelia-binding';\nimport { inject } from 'aurelia-dependency-injection';\nimport { HTMLSanitizer } from './html-sanitizer';\n\nexport var SanitizeHTMLValueConverter = (_dec = valueConverter('sanitizeHTML'), _dec2 = inject(HTMLSanitizer), _dec(_class = _dec2(_class = function () {\n function SanitizeHTMLValueConverter(sanitizer) {\n \n\n this.sanitizer = sanitizer;\n }\n\n SanitizeHTMLValueConverter.prototype.toView = function toView(untrustedMarkup) {\n if (untrustedMarkup === null || untrustedMarkup === undefined) {\n return null;\n }\n\n return this.sanitizer.sanitize(untrustedMarkup);\n };\n\n return SanitizeHTMLValueConverter;\n}()) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/sanitize-html.js\n// module id = aurelia-templating-resources/sanitize-html\n// module chunks = 0","\n\nfunction findOriginalEventTarget(event) {\n return event.path && event.path[0] || event.deepPath && event.deepPath[0] || event.target;\n}\n\nfunction handleSelfEvent(event) {\n var target = findOriginalEventTarget(event);\n if (this.target !== target) return;\n this.selfEventCallSource(event);\n}\n\nexport var SelfBindingBehavior = function () {\n function SelfBindingBehavior() {\n \n }\n\n SelfBindingBehavior.prototype.bind = function bind(binding, source) {\n if (!binding.callSource || !binding.targetEvent) throw new Error('Self binding behavior only supports event.');\n binding.selfEventCallSource = binding.callSource;\n binding.callSource = handleSelfEvent;\n };\n\n SelfBindingBehavior.prototype.unbind = function unbind(binding, source) {\n binding.callSource = binding.selfEventCallSource;\n binding.selfEventCallSource = null;\n };\n\n return SelfBindingBehavior;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/self-binding-behavior.js\n// module id = aurelia-templating-resources/self-binding-behavior\n// module chunks = 0","var _dec, _dec2, _class;\n\n\n\nimport { inject, Optional } from 'aurelia-dependency-injection';\nimport { customAttribute, Animator } from 'aurelia-templating';\nimport { DOM } from 'aurelia-pal';\nimport { injectAureliaHideStyleAtBoundary, aureliaHideClassName } from './aurelia-hide-style';\n\nexport var Show = (_dec = customAttribute('show'), _dec2 = inject(DOM.Element, Animator, Optional.of(DOM.boundary, true)), _dec(_class = _dec2(_class = function () {\n function Show(element, animator, domBoundary) {\n \n\n this.element = element;\n this.animator = animator;\n this.domBoundary = domBoundary;\n }\n\n Show.prototype.created = function created() {\n injectAureliaHideStyleAtBoundary(this.domBoundary);\n };\n\n Show.prototype.valueChanged = function valueChanged(newValue) {\n if (newValue) {\n this.animator.removeClass(this.element, aureliaHideClassName);\n } else {\n this.animator.addClass(this.element, aureliaHideClassName);\n }\n };\n\n Show.prototype.bind = function bind(bindingContext) {\n this.valueChanged(this.value);\n };\n\n return Show;\n}()) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/show.js\n// module id = aurelia-templating-resources/show\n// module chunks = 0","\n\nimport { BindingSignaler } from './binding-signaler';\n\nexport var SignalBindingBehavior = function () {\n SignalBindingBehavior.inject = function inject() {\n return [BindingSignaler];\n };\n\n function SignalBindingBehavior(bindingSignaler) {\n \n\n this.signals = bindingSignaler.signals;\n }\n\n SignalBindingBehavior.prototype.bind = function bind(binding, source) {\n if (!binding.updateTarget) {\n throw new Error('Only property bindings and string interpolation bindings can be signaled. Trigger, delegate and call bindings cannot be signaled.');\n }\n if (arguments.length === 3) {\n var name = arguments[2];\n var bindings = this.signals[name] || (this.signals[name] = []);\n bindings.push(binding);\n binding.signalName = name;\n } else if (arguments.length > 3) {\n var names = Array.prototype.slice.call(arguments, 2);\n var i = names.length;\n while (i--) {\n var _name = names[i];\n var _bindings = this.signals[_name] || (this.signals[_name] = []);\n _bindings.push(binding);\n }\n binding.signalName = names;\n } else {\n throw new Error('Signal name is required.');\n }\n };\n\n SignalBindingBehavior.prototype.unbind = function unbind(binding, source) {\n var name = binding.signalName;\n binding.signalName = null;\n if (Array.isArray(name)) {\n var names = name;\n var i = names.length;\n while (i--) {\n var n = names[i];\n var bindings = this.signals[n];\n bindings.splice(bindings.indexOf(binding), 1);\n }\n } else {\n var _bindings2 = this.signals[name];\n _bindings2.splice(_bindings2.indexOf(binding), 1);\n }\n };\n\n return SignalBindingBehavior;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/signal-binding-behavior.js\n// module id = aurelia-templating-resources/signal-binding-behavior\n// module chunks = 0","\n\nimport { bindingMode } from 'aurelia-binding';\n\nfunction throttle(newValue) {\n var _this = this;\n\n var state = this.throttleState;\n var elapsed = +new Date() - state.last;\n if (elapsed >= state.delay) {\n clearTimeout(state.timeoutId);\n state.timeoutId = null;\n state.last = +new Date();\n this.throttledMethod(newValue);\n return;\n }\n state.newValue = newValue;\n if (state.timeoutId === null) {\n state.timeoutId = setTimeout(function () {\n state.timeoutId = null;\n state.last = +new Date();\n _this.throttledMethod(state.newValue);\n }, state.delay - elapsed);\n }\n}\n\nexport var ThrottleBindingBehavior = function () {\n function ThrottleBindingBehavior() {\n \n }\n\n ThrottleBindingBehavior.prototype.bind = function bind(binding, source) {\n var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n\n var methodToThrottle = 'updateTarget';\n if (binding.callSource) {\n methodToThrottle = 'callSource';\n } else if (binding.updateSource && binding.mode === bindingMode.twoWay) {\n methodToThrottle = 'updateSource';\n }\n\n binding.throttledMethod = binding[methodToThrottle];\n binding.throttledMethod.originalName = methodToThrottle;\n\n binding[methodToThrottle] = throttle;\n\n binding.throttleState = {\n delay: delay,\n last: 0,\n timeoutId: null\n };\n };\n\n ThrottleBindingBehavior.prototype.unbind = function unbind(binding, source) {\n var methodToRestore = binding.throttledMethod.originalName;\n binding[methodToRestore] = binding.throttledMethod;\n binding.throttledMethod = null;\n clearTimeout(binding.throttleState.timeoutId);\n binding.throttleState = null;\n };\n\n return ThrottleBindingBehavior;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/throttle-binding-behavior.js\n// module id = aurelia-templating-resources/throttle-binding-behavior\n// module chunks = 0","var _class, _temp;\n\n\n\nimport { bindingMode, EventManager } from 'aurelia-binding';\n\nvar eventNamesRequired = 'The updateTrigger binding behavior requires at least one event name argument: eg <input value.bind=\"firstName & updateTrigger:\\'blur\\'\">';\nvar notApplicableMessage = 'The updateTrigger binding behavior can only be applied to two-way bindings on input/select elements.';\n\nexport var UpdateTriggerBindingBehavior = (_temp = _class = function () {\n function UpdateTriggerBindingBehavior(eventManager) {\n \n\n this.eventManager = eventManager;\n }\n\n UpdateTriggerBindingBehavior.prototype.bind = function bind(binding, source) {\n for (var _len = arguments.length, events = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n events[_key - 2] = arguments[_key];\n }\n\n if (events.length === 0) {\n throw new Error(eventNamesRequired);\n }\n if (binding.mode !== bindingMode.twoWay) {\n throw new Error(notApplicableMessage);\n }\n\n var targetObserver = binding.observerLocator.getObserver(binding.target, binding.targetProperty);\n if (!targetObserver.handler) {\n throw new Error(notApplicableMessage);\n }\n binding.targetObserver = targetObserver;\n\n targetObserver.originalHandler = binding.targetObserver.handler;\n\n var handler = this.eventManager.createElementHandler(events);\n targetObserver.handler = handler;\n };\n\n UpdateTriggerBindingBehavior.prototype.unbind = function unbind(binding, source) {\n binding.targetObserver.handler = binding.targetObserver.originalHandler;\n binding.targetObserver.originalHandler = null;\n };\n\n return UpdateTriggerBindingBehavior;\n}(), _class.inject = [EventManager], _temp);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/update-trigger-binding-behavior.js\n// module id = aurelia-templating-resources/update-trigger-binding-behavior\n// module chunks = 0","var _dec, _dec2, _class;\n\n\n\nimport { inject } from 'aurelia-dependency-injection';\nimport { BoundViewFactory, ViewSlot, customAttribute, templateController } from 'aurelia-templating';\nimport { createOverrideContext } from 'aurelia-binding';\n\nexport var With = (_dec = customAttribute('with'), _dec2 = inject(BoundViewFactory, ViewSlot), _dec(_class = templateController(_class = _dec2(_class = function () {\n function With(viewFactory, viewSlot) {\n \n\n this.viewFactory = viewFactory;\n this.viewSlot = viewSlot;\n this.parentOverrideContext = null;\n this.view = null;\n }\n\n With.prototype.bind = function bind(bindingContext, overrideContext) {\n this.parentOverrideContext = overrideContext;\n this.valueChanged(this.value);\n };\n\n With.prototype.valueChanged = function valueChanged(newValue) {\n var overrideContext = createOverrideContext(newValue, this.parentOverrideContext);\n if (!this.view) {\n this.view = this.viewFactory.create();\n this.view.bind(newValue, overrideContext);\n this.viewSlot.add(this.view);\n } else {\n this.view.bind(newValue, overrideContext);\n }\n };\n\n With.prototype.unbind = function unbind() {\n this.parentOverrideContext = null;\n\n if (this.view) {\n this.view.unbind();\n }\n };\n\n return With;\n}()) || _class) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-resources/dist/native-modules/with.js\n// module id = aurelia-templating-resources/with\n// module chunks = 0","import { PLATFORM } from 'aurelia-pal';\nimport { Router, AppRouter, RouteLoader } from 'aurelia-router';\nimport { TemplatingRouteLoader } from './route-loader';\nimport { RouterView } from './router-view';\nimport { RouteHref } from './route-href';\n\nfunction configure(config) {\n config.singleton(RouteLoader, TemplatingRouteLoader).singleton(Router, AppRouter).globalResources(PLATFORM.moduleName('./router-view'), PLATFORM.moduleName('./route-href'));\n\n config.container.registerAlias(Router, AppRouter);\n}\n\nexport { TemplatingRouteLoader, RouterView, RouteHref, configure };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-router/dist/native-modules/aurelia-templating-router.js\n// module id = aurelia-templating-router\n// module chunks = 0","var _dec, _dec2, _dec3, _dec4, _dec5, _class;\n\n\n\nimport { customAttribute, bindable } from 'aurelia-templating';\nimport { inject } from 'aurelia-dependency-injection';\nimport { Router } from 'aurelia-router';\nimport { DOM } from 'aurelia-pal';\nimport * as LogManager from 'aurelia-logging';\n\nvar logger = LogManager.getLogger('route-href');\n\nexport var RouteHref = (_dec = customAttribute('route-href'), _dec2 = bindable({ name: 'route', changeHandler: 'processChange' }), _dec3 = bindable({ name: 'params', changeHandler: 'processChange' }), _dec4 = bindable({ name: 'attribute', defaultValue: 'href' }), _dec5 = inject(Router, DOM.Element), _dec(_class = _dec2(_class = _dec3(_class = _dec4(_class = _dec5(_class = function () {\n function RouteHref(router, element) {\n \n\n this.router = router;\n this.element = element;\n }\n\n RouteHref.prototype.bind = function bind() {\n this.isActive = true;\n this.processChange();\n };\n\n RouteHref.prototype.unbind = function unbind() {\n this.isActive = false;\n };\n\n RouteHref.prototype.attributeChanged = function attributeChanged(value, previous) {\n if (previous) {\n this.element.removeAttribute(previous);\n }\n\n this.processChange();\n };\n\n RouteHref.prototype.processChange = function processChange() {\n var _this = this;\n\n return this.router.ensureConfigured().then(function () {\n if (!_this.isActive) {\n return null;\n }\n\n var href = _this.router.generate(_this.route, _this.params);\n\n if (_this.element.au.controller) {\n _this.element.au.controller.viewModel[_this.attribute] = href;\n } else {\n _this.element.setAttribute(_this.attribute, href);\n }\n\n return null;\n }).catch(function (reason) {\n logger.error(reason);\n });\n };\n\n return RouteHref;\n}()) || _class) || _class) || _class) || _class) || _class);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-router/dist/native-modules/route-href.js\n// module id = aurelia-templating-router/route-href\n// module chunks = 0","var _dec, _dec2, _class, _desc, _value, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;\n\nfunction _initDefineProp(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0\n });\n}\n\n\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n\nfunction _initializerWarningHelper(descriptor, context) {\n throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n}\n\nimport { Container, inject } from 'aurelia-dependency-injection';\nimport { createOverrideContext } from 'aurelia-binding';\nimport { ViewSlot, ViewLocator, customElement, noView, BehaviorInstruction, bindable, CompositionTransaction, CompositionEngine, ShadowDOM, SwapStrategies } from 'aurelia-templating';\nimport { Router } from 'aurelia-router';\nimport { Origin } from 'aurelia-metadata';\nimport { DOM } from 'aurelia-pal';\n\nexport var RouterView = (_dec = customElement('router-view'), _dec2 = inject(DOM.Element, Container, ViewSlot, Router, ViewLocator, CompositionTransaction, CompositionEngine), _dec(_class = noView(_class = _dec2(_class = (_class2 = function () {\n function RouterView(element, container, viewSlot, router, viewLocator, compositionTransaction, compositionEngine) {\n \n\n _initDefineProp(this, 'swapOrder', _descriptor, this);\n\n _initDefineProp(this, 'layoutView', _descriptor2, this);\n\n _initDefineProp(this, 'layoutViewModel', _descriptor3, this);\n\n _initDefineProp(this, 'layoutModel', _descriptor4, this);\n\n this.element = element;\n this.container = container;\n this.viewSlot = viewSlot;\n this.router = router;\n this.viewLocator = viewLocator;\n this.compositionTransaction = compositionTransaction;\n this.compositionEngine = compositionEngine;\n this.router.registerViewPort(this, this.element.getAttribute('name'));\n\n if (!('initialComposition' in compositionTransaction)) {\n compositionTransaction.initialComposition = true;\n this.compositionTransactionNotifier = compositionTransaction.enlist();\n }\n }\n\n RouterView.prototype.created = function created(owningView) {\n this.owningView = owningView;\n };\n\n RouterView.prototype.bind = function bind(bindingContext, overrideContext) {\n this.container.viewModel = bindingContext;\n this.overrideContext = overrideContext;\n };\n\n RouterView.prototype.process = function process(viewPortInstruction, waitToSwap) {\n var _this = this;\n\n var component = viewPortInstruction.component;\n var childContainer = component.childContainer;\n var viewModel = component.viewModel;\n var viewModelResource = component.viewModelResource;\n var metadata = viewModelResource.metadata;\n var config = component.router.currentInstruction.config;\n var viewPort = config.viewPorts ? config.viewPorts[viewPortInstruction.name] : {};\n\n childContainer.get(RouterViewLocator)._notify(this);\n\n var layoutInstruction = {\n viewModel: viewPort.layoutViewModel || config.layoutViewModel || this.layoutViewModel,\n view: viewPort.layoutView || config.layoutView || this.layoutView,\n model: viewPort.layoutModel || config.layoutModel || this.layoutModel,\n router: viewPortInstruction.component.router,\n childContainer: childContainer,\n viewSlot: this.viewSlot\n };\n\n var viewStrategy = this.viewLocator.getViewStrategy(component.view || viewModel);\n if (viewStrategy && component.view) {\n viewStrategy.makeRelativeTo(Origin.get(component.router.container.viewModel.constructor).moduleId);\n }\n\n return metadata.load(childContainer, viewModelResource.value, null, viewStrategy, true).then(function (viewFactory) {\n if (!_this.compositionTransactionNotifier) {\n _this.compositionTransactionOwnershipToken = _this.compositionTransaction.tryCapture();\n }\n\n if (layoutInstruction.viewModel || layoutInstruction.view) {\n viewPortInstruction.layoutInstruction = layoutInstruction;\n }\n\n viewPortInstruction.controller = metadata.create(childContainer, BehaviorInstruction.dynamic(_this.element, viewModel, viewFactory));\n\n if (waitToSwap) {\n return;\n }\n\n _this.swap(viewPortInstruction);\n });\n };\n\n RouterView.prototype.swap = function swap(viewPortInstruction) {\n var _this2 = this;\n\n var layoutInstruction = viewPortInstruction.layoutInstruction;\n var previousView = this.view;\n\n var work = function work() {\n var swapStrategy = SwapStrategies[_this2.swapOrder] || SwapStrategies.after;\n var viewSlot = _this2.viewSlot;\n\n swapStrategy(viewSlot, previousView, function () {\n return Promise.resolve(viewSlot.add(_this2.view));\n }).then(function () {\n _this2._notify();\n });\n };\n\n var ready = function ready(owningView) {\n viewPortInstruction.controller.automate(_this2.overrideContext, owningView);\n if (_this2.compositionTransactionOwnershipToken) {\n return _this2.compositionTransactionOwnershipToken.waitForCompositionComplete().then(function () {\n _this2.compositionTransactionOwnershipToken = null;\n return work();\n });\n }\n\n return work();\n };\n\n if (layoutInstruction) {\n if (!layoutInstruction.viewModel) {\n layoutInstruction.viewModel = {};\n }\n\n return this.compositionEngine.createController(layoutInstruction).then(function (controller) {\n ShadowDOM.distributeView(viewPortInstruction.controller.view, controller.slots || controller.view.slots);\n controller.automate(createOverrideContext(layoutInstruction.viewModel), _this2.owningView);\n controller.view.children.push(viewPortInstruction.controller.view);\n return controller.view || controller;\n }).then(function (newView) {\n _this2.view = newView;\n return ready(newView);\n });\n }\n\n this.view = viewPortInstruction.controller.view;\n\n return ready(this.owningView);\n };\n\n RouterView.prototype._notify = function _notify() {\n if (this.compositionTransactionNotifier) {\n this.compositionTransactionNotifier.done();\n this.compositionTransactionNotifier = null;\n }\n };\n\n return RouterView;\n}(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'swapOrder', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'layoutView', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'layoutViewModel', [bindable], {\n enumerable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, 'layoutModel', [bindable], {\n enumerable: true,\n initializer: null\n})), _class2)) || _class) || _class) || _class);\n\nexport var RouterViewLocator = function () {\n function RouterViewLocator() {\n var _this3 = this;\n\n \n\n this.promise = new Promise(function (resolve) {\n return _this3.resolve = resolve;\n });\n }\n\n RouterViewLocator.prototype.findNearest = function findNearest() {\n return this.promise;\n };\n\n RouterViewLocator.prototype._notify = function _notify(routerView) {\n this.resolve(routerView);\n };\n\n return RouterViewLocator;\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/aurelia-templating-router/dist/native-modules/router-view.js\n// module id = aurelia-templating-router/router-view\n// module chunks = 0","import 'isomorphic-fetch';\r\nimport { Aurelia, PLATFORM } from 'aurelia-framework';\r\nimport { HttpClient } from 'aurelia-fetch-client';\r\nimport 'bootstrap';\r\nimport authConfig from './auth-config';\r\ndeclare const IS_DEV_BUILD: boolean; // The value is supplied by Webpack during the build\r\n\r\nexport function configure(aurelia: Aurelia) {\r\n aurelia.use.standardConfiguration();\r\n\r\n if (IS_DEV_BUILD) {\r\n aurelia.use.developmentLogging();\r\n }\r\n\r\n aurelia.use.plugin(PLATFORM.moduleName('aurelia-auth'), (baseConfig: any) => {\r\n baseConfig.configure(authConfig);\r\n })\r\n \r\n aurelia.use.plugin(PLATFORM.moduleName('au-table'));\r\n\r\n new HttpClient().configure(config => {\r\n const baseUrl = document.getElementsByTagName('base')[0].href;\r\n config.withBaseUrl(baseUrl);\r\n });\r\n\r\n aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app/components/app/app')));\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./ClientApp/boot.ts","exports = module.exports = require(\"../../../css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"/*!\\n * Bootstrap v3.3.7 (http://getbootstrap.com)\\n * Copyright 2011-2016 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n */\\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\nhtml {\\n font-family: sans-serif;\\n -webkit-text-size-adjust: 100%;\\n -ms-text-size-adjust: 100%;\\n}\\nbody {\\n margin: 0;\\n}\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n display: block;\\n}\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n display: inline-block;\\n vertical-align: baseline;\\n}\\naudio:not([controls]) {\\n display: none;\\n height: 0;\\n}\\n[hidden],\\ntemplate {\\n display: none;\\n}\\na {\\n background-color: transparent;\\n}\\na:active,\\na:hover {\\n outline: 0;\\n}\\nabbr[title] {\\n border-bottom: 1px dotted;\\n}\\nb,\\nstrong {\\n font-weight: bold;\\n}\\ndfn {\\n font-style: italic;\\n}\\nh1 {\\n margin: .67em 0;\\n font-size: 2em;\\n}\\nmark {\\n color: #000;\\n background: #ff0;\\n}\\nsmall {\\n font-size: 80%;\\n}\\nsub,\\nsup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n}\\nsup {\\n top: -.5em;\\n}\\nsub {\\n bottom: -.25em;\\n}\\nimg {\\n border: 0;\\n}\\nsvg:not(:root) {\\n overflow: hidden;\\n}\\nfigure {\\n margin: 1em 40px;\\n}\\nhr {\\n height: 0;\\n -webkit-box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n box-sizing: content-box;\\n}\\npre {\\n overflow: auto;\\n}\\ncode,\\nkbd,\\npre,\\nsamp {\\n font-family: monospace, monospace;\\n font-size: 1em;\\n}\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n margin: 0;\\n font: inherit;\\n color: inherit;\\n}\\nbutton {\\n overflow: visible;\\n}\\nbutton,\\nselect {\\n text-transform: none;\\n}\\nbutton,\\nhtml input[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n -webkit-appearance: button;\\n cursor: pointer;\\n}\\nbutton[disabled],\\nhtml input[disabled] {\\n cursor: default;\\n}\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n padding: 0;\\n border: 0;\\n}\\ninput {\\n line-height: normal;\\n}\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n padding: 0;\\n}\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n height: auto;\\n}\\ninput[type=\\\"search\\\"] {\\n -webkit-box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n box-sizing: content-box;\\n -webkit-appearance: textfield;\\n}\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\nfieldset {\\n padding: .35em .625em .75em;\\n margin: 0 2px;\\n border: 1px solid #c0c0c0;\\n}\\nlegend {\\n padding: 0;\\n border: 0;\\n}\\ntextarea {\\n overflow: auto;\\n}\\noptgroup {\\n font-weight: bold;\\n}\\ntable {\\n border-spacing: 0;\\n border-collapse: collapse;\\n}\\ntd,\\nth {\\n padding: 0;\\n}\\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\\n@media print {\\n *,\\n *:before,\\n *:after {\\n color: #000 !important;\\n text-shadow: none !important;\\n background: transparent !important;\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n }\\n a,\\n a:visited {\\n text-decoration: underline;\\n }\\n a[href]:after {\\n content: \\\" (\\\" attr(href) \\\")\\\";\\n }\\n abbr[title]:after {\\n content: \\\" (\\\" attr(title) \\\")\\\";\\n }\\n a[href^=\\\"#\\\"]:after,\\n a[href^=\\\"javascript:\\\"]:after {\\n content: \\\"\\\";\\n }\\n pre,\\n blockquote {\\n border: 1px solid #999;\\n\\n page-break-inside: avoid;\\n }\\n thead {\\n display: table-header-group;\\n }\\n tr,\\n img {\\n page-break-inside: avoid;\\n }\\n img {\\n max-width: 100% !important;\\n }\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3;\\n }\\n h2,\\n h3 {\\n page-break-after: avoid;\\n }\\n .navbar {\\n display: none;\\n }\\n .btn > .caret,\\n .dropup > .btn > .caret {\\n border-top-color: #000 !important;\\n }\\n .label {\\n border: 1px solid #000;\\n }\\n .table {\\n border-collapse: collapse !important;\\n }\\n .table td,\\n .table th {\\n background-color: #fff !important;\\n }\\n .table-bordered th,\\n .table-bordered td {\\n border: 1px solid #ddd !important;\\n }\\n}\\n@font-face {\\n font-family: 'Glyphicons Halflings';\\n\\n src: url(\" + require(\"../fonts/glyphicons-halflings-regular.eot\") + \");\\n src: url(\" + require(\"../fonts/glyphicons-halflings-regular.eot\") + \"?#iefix) format('embedded-opentype'), url(\" + require(\"../fonts/glyphicons-halflings-regular.woff2\") + \") format('woff2'), url(\" + require(\"../fonts/glyphicons-halflings-regular.woff\") + \") format('woff'), url(\" + require(\"../fonts/glyphicons-halflings-regular.ttf\") + \") format('truetype'), url(\" + require(\"../fonts/glyphicons-halflings-regular.svg\") + \"#glyphicons_halflingsregular) format('svg');\\n}\\n.glyphicon {\\n position: relative;\\n top: 1px;\\n display: inline-block;\\n font-family: 'Glyphicons Halflings';\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1;\\n\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.glyphicon-asterisk:before {\\n content: \\\"*\\\";\\n}\\n.glyphicon-plus:before {\\n content: \\\"+\\\";\\n}\\n.glyphicon-euro:before,\\n.glyphicon-eur:before {\\n content: \\\"\\\\20AC\\\";\\n}\\n.glyphicon-minus:before {\\n content: \\\"\\\\2212\\\";\\n}\\n.glyphicon-cloud:before {\\n content: \\\"\\\\2601\\\";\\n}\\n.glyphicon-envelope:before {\\n content: \\\"\\\\2709\\\";\\n}\\n.glyphicon-pencil:before {\\n content: \\\"\\\\270F\\\";\\n}\\n.glyphicon-glass:before {\\n content: \\\"\\\\E001\\\";\\n}\\n.glyphicon-music:before {\\n content: \\\"\\\\E002\\\";\\n}\\n.glyphicon-search:before {\\n content: \\\"\\\\E003\\\";\\n}\\n.glyphicon-heart:before {\\n content: \\\"\\\\E005\\\";\\n}\\n.glyphicon-star:before {\\n content: \\\"\\\\E006\\\";\\n}\\n.glyphicon-star-empty:before {\\n content: \\\"\\\\E007\\\";\\n}\\n.glyphicon-user:before {\\n content: \\\"\\\\E008\\\";\\n}\\n.glyphicon-film:before {\\n content: \\\"\\\\E009\\\";\\n}\\n.glyphicon-th-large:before {\\n content: \\\"\\\\E010\\\";\\n}\\n.glyphicon-th:before {\\n content: \\\"\\\\E011\\\";\\n}\\n.glyphicon-th-list:before {\\n content: \\\"\\\\E012\\\";\\n}\\n.glyphicon-ok:before {\\n content: \\\"\\\\E013\\\";\\n}\\n.glyphicon-remove:before {\\n content: \\\"\\\\E014\\\";\\n}\\n.glyphicon-zoom-in:before {\\n content: \\\"\\\\E015\\\";\\n}\\n.glyphicon-zoom-out:before {\\n content: \\\"\\\\E016\\\";\\n}\\n.glyphicon-off:before {\\n content: \\\"\\\\E017\\\";\\n}\\n.glyphicon-signal:before {\\n content: \\\"\\\\E018\\\";\\n}\\n.glyphicon-cog:before {\\n content: \\\"\\\\E019\\\";\\n}\\n.glyphicon-trash:before {\\n content: \\\"\\\\E020\\\";\\n}\\n.glyphicon-home:before {\\n content: \\\"\\\\E021\\\";\\n}\\n.glyphicon-file:before {\\n content: \\\"\\\\E022\\\";\\n}\\n.glyphicon-time:before {\\n content: \\\"\\\\E023\\\";\\n}\\n.glyphicon-road:before {\\n content: \\\"\\\\E024\\\";\\n}\\n.glyphicon-download-alt:before {\\n content: \\\"\\\\E025\\\";\\n}\\n.glyphicon-download:before {\\n content: \\\"\\\\E026\\\";\\n}\\n.glyphicon-upload:before {\\n content: \\\"\\\\E027\\\";\\n}\\n.glyphicon-inbox:before {\\n content: \\\"\\\\E028\\\";\\n}\\n.glyphicon-play-circle:before {\\n content: \\\"\\\\E029\\\";\\n}\\n.glyphicon-repeat:before {\\n content: \\\"\\\\E030\\\";\\n}\\n.glyphicon-refresh:before {\\n content: \\\"\\\\E031\\\";\\n}\\n.glyphicon-list-alt:before {\\n content: \\\"\\\\E032\\\";\\n}\\n.glyphicon-lock:before {\\n content: \\\"\\\\E033\\\";\\n}\\n.glyphicon-flag:before {\\n content: \\\"\\\\E034\\\";\\n}\\n.glyphicon-headphones:before {\\n content: \\\"\\\\E035\\\";\\n}\\n.glyphicon-volume-off:before {\\n content: \\\"\\\\E036\\\";\\n}\\n.glyphicon-volume-down:before {\\n content: \\\"\\\\E037\\\";\\n}\\n.glyphicon-volume-up:before {\\n content: \\\"\\\\E038\\\";\\n}\\n.glyphicon-qrcode:before {\\n content: \\\"\\\\E039\\\";\\n}\\n.glyphicon-barcode:before {\\n content: \\\"\\\\E040\\\";\\n}\\n.glyphicon-tag:before {\\n content: \\\"\\\\E041\\\";\\n}\\n.glyphicon-tags:before {\\n content: \\\"\\\\E042\\\";\\n}\\n.glyphicon-book:before {\\n content: \\\"\\\\E043\\\";\\n}\\n.glyphicon-bookmark:before {\\n content: \\\"\\\\E044\\\";\\n}\\n.glyphicon-print:before {\\n content: \\\"\\\\E045\\\";\\n}\\n.glyphicon-camera:before {\\n content: \\\"\\\\E046\\\";\\n}\\n.glyphicon-font:before {\\n content: \\\"\\\\E047\\\";\\n}\\n.glyphicon-bold:before {\\n content: \\\"\\\\E048\\\";\\n}\\n.glyphicon-italic:before {\\n content: \\\"\\\\E049\\\";\\n}\\n.glyphicon-text-height:before {\\n content: \\\"\\\\E050\\\";\\n}\\n.glyphicon-text-width:before {\\n content: \\\"\\\\E051\\\";\\n}\\n.glyphicon-align-left:before {\\n content: \\\"\\\\E052\\\";\\n}\\n.glyphicon-align-center:before {\\n content: \\\"\\\\E053\\\";\\n}\\n.glyphicon-align-right:before {\\n content: \\\"\\\\E054\\\";\\n}\\n.glyphicon-align-justify:before {\\n content: \\\"\\\\E055\\\";\\n}\\n.glyphicon-list:before {\\n content: \\\"\\\\E056\\\";\\n}\\n.glyphicon-indent-left:before {\\n content: \\\"\\\\E057\\\";\\n}\\n.glyphicon-indent-right:before {\\n content: \\\"\\\\E058\\\";\\n}\\n.glyphicon-facetime-video:before {\\n content: \\\"\\\\E059\\\";\\n}\\n.glyphicon-picture:before {\\n content: \\\"\\\\E060\\\";\\n}\\n.glyphicon-map-marker:before {\\n content: \\\"\\\\E062\\\";\\n}\\n.glyphicon-adjust:before {\\n content: \\\"\\\\E063\\\";\\n}\\n.glyphicon-tint:before {\\n content: \\\"\\\\E064\\\";\\n}\\n.glyphicon-edit:before {\\n content: \\\"\\\\E065\\\";\\n}\\n.glyphicon-share:before {\\n content: \\\"\\\\E066\\\";\\n}\\n.glyphicon-check:before {\\n content: \\\"\\\\E067\\\";\\n}\\n.glyphicon-move:before {\\n content: \\\"\\\\E068\\\";\\n}\\n.glyphicon-step-backward:before {\\n content: \\\"\\\\E069\\\";\\n}\\n.glyphicon-fast-backward:before {\\n content: \\\"\\\\E070\\\";\\n}\\n.glyphicon-backward:before {\\n content: \\\"\\\\E071\\\";\\n}\\n.glyphicon-play:before {\\n content: \\\"\\\\E072\\\";\\n}\\n.glyphicon-pause:before {\\n content: \\\"\\\\E073\\\";\\n}\\n.glyphicon-stop:before {\\n content: \\\"\\\\E074\\\";\\n}\\n.glyphicon-forward:before {\\n content: \\\"\\\\E075\\\";\\n}\\n.glyphicon-fast-forward:before {\\n content: \\\"\\\\E076\\\";\\n}\\n.glyphicon-step-forward:before {\\n content: \\\"\\\\E077\\\";\\n}\\n.glyphicon-eject:before {\\n content: \\\"\\\\E078\\\";\\n}\\n.glyphicon-chevron-left:before {\\n content: \\\"\\\\E079\\\";\\n}\\n.glyphicon-chevron-right:before {\\n content: \\\"\\\\E080\\\";\\n}\\n.glyphicon-plus-sign:before {\\n content: \\\"\\\\E081\\\";\\n}\\n.glyphicon-minus-sign:before {\\n content: \\\"\\\\E082\\\";\\n}\\n.glyphicon-remove-sign:before {\\n content: \\\"\\\\E083\\\";\\n}\\n.glyphicon-ok-sign:before {\\n content: \\\"\\\\E084\\\";\\n}\\n.glyphicon-question-sign:before {\\n content: \\\"\\\\E085\\\";\\n}\\n.glyphicon-info-sign:before {\\n content: \\\"\\\\E086\\\";\\n}\\n.glyphicon-screenshot:before {\\n content: \\\"\\\\E087\\\";\\n}\\n.glyphicon-remove-circle:before {\\n content: \\\"\\\\E088\\\";\\n}\\n.glyphicon-ok-circle:before {\\n content: \\\"\\\\E089\\\";\\n}\\n.glyphicon-ban-circle:before {\\n content: \\\"\\\\E090\\\";\\n}\\n.glyphicon-arrow-left:before {\\n content: \\\"\\\\E091\\\";\\n}\\n.glyphicon-arrow-right:before {\\n content: \\\"\\\\E092\\\";\\n}\\n.glyphicon-arrow-up:before {\\n content: \\\"\\\\E093\\\";\\n}\\n.glyphicon-arrow-down:before {\\n content: \\\"\\\\E094\\\";\\n}\\n.glyphicon-share-alt:before {\\n content: \\\"\\\\E095\\\";\\n}\\n.glyphicon-resize-full:before {\\n content: \\\"\\\\E096\\\";\\n}\\n.glyphicon-resize-small:before {\\n content: \\\"\\\\E097\\\";\\n}\\n.glyphicon-exclamation-sign:before {\\n content: \\\"\\\\E101\\\";\\n}\\n.glyphicon-gift:before {\\n content: \\\"\\\\E102\\\";\\n}\\n.glyphicon-leaf:before {\\n content: \\\"\\\\E103\\\";\\n}\\n.glyphicon-fire:before {\\n content: \\\"\\\\E104\\\";\\n}\\n.glyphicon-eye-open:before {\\n content: \\\"\\\\E105\\\";\\n}\\n.glyphicon-eye-close:before {\\n content: \\\"\\\\E106\\\";\\n}\\n.glyphicon-warning-sign:before {\\n content: \\\"\\\\E107\\\";\\n}\\n.glyphicon-plane:before {\\n content: \\\"\\\\E108\\\";\\n}\\n.glyphicon-calendar:before {\\n content: \\\"\\\\E109\\\";\\n}\\n.glyphicon-random:before {\\n content: \\\"\\\\E110\\\";\\n}\\n.glyphicon-comment:before {\\n content: \\\"\\\\E111\\\";\\n}\\n.glyphicon-magnet:before {\\n content: \\\"\\\\E112\\\";\\n}\\n.glyphicon-chevron-up:before {\\n content: \\\"\\\\E113\\\";\\n}\\n.glyphicon-chevron-down:before {\\n content: \\\"\\\\E114\\\";\\n}\\n.glyphicon-retweet:before {\\n content: \\\"\\\\E115\\\";\\n}\\n.glyphicon-shopping-cart:before {\\n content: \\\"\\\\E116\\\";\\n}\\n.glyphicon-folder-close:before {\\n content: \\\"\\\\E117\\\";\\n}\\n.glyphicon-folder-open:before {\\n content: \\\"\\\\E118\\\";\\n}\\n.glyphicon-resize-vertical:before {\\n content: \\\"\\\\E119\\\";\\n}\\n.glyphicon-resize-horizontal:before {\\n content: \\\"\\\\E120\\\";\\n}\\n.glyphicon-hdd:before {\\n content: \\\"\\\\E121\\\";\\n}\\n.glyphicon-bullhorn:before {\\n content: \\\"\\\\E122\\\";\\n}\\n.glyphicon-bell:before {\\n content: \\\"\\\\E123\\\";\\n}\\n.glyphicon-certificate:before {\\n content: \\\"\\\\E124\\\";\\n}\\n.glyphicon-thumbs-up:before {\\n content: \\\"\\\\E125\\\";\\n}\\n.glyphicon-thumbs-down:before {\\n content: \\\"\\\\E126\\\";\\n}\\n.glyphicon-hand-right:before {\\n content: \\\"\\\\E127\\\";\\n}\\n.glyphicon-hand-left:before {\\n content: \\\"\\\\E128\\\";\\n}\\n.glyphicon-hand-up:before {\\n content: \\\"\\\\E129\\\";\\n}\\n.glyphicon-hand-down:before {\\n content: \\\"\\\\E130\\\";\\n}\\n.glyphicon-circle-arrow-right:before {\\n content: \\\"\\\\E131\\\";\\n}\\n.glyphicon-circle-arrow-left:before {\\n content: \\\"\\\\E132\\\";\\n}\\n.glyphicon-circle-arrow-up:before {\\n content: \\\"\\\\E133\\\";\\n}\\n.glyphicon-circle-arrow-down:before {\\n content: \\\"\\\\E134\\\";\\n}\\n.glyphicon-globe:before {\\n content: \\\"\\\\E135\\\";\\n}\\n.glyphicon-wrench:before {\\n content: \\\"\\\\E136\\\";\\n}\\n.glyphicon-tasks:before {\\n content: \\\"\\\\E137\\\";\\n}\\n.glyphicon-filter:before {\\n content: \\\"\\\\E138\\\";\\n}\\n.glyphicon-briefcase:before {\\n content: \\\"\\\\E139\\\";\\n}\\n.glyphicon-fullscreen:before {\\n content: \\\"\\\\E140\\\";\\n}\\n.glyphicon-dashboard:before {\\n content: \\\"\\\\E141\\\";\\n}\\n.glyphicon-paperclip:before {\\n content: \\\"\\\\E142\\\";\\n}\\n.glyphicon-heart-empty:before {\\n content: \\\"\\\\E143\\\";\\n}\\n.glyphicon-link:before {\\n content: \\\"\\\\E144\\\";\\n}\\n.glyphicon-phone:before {\\n content: \\\"\\\\E145\\\";\\n}\\n.glyphicon-pushpin:before {\\n content: \\\"\\\\E146\\\";\\n}\\n.glyphicon-usd:before {\\n content: \\\"\\\\E148\\\";\\n}\\n.glyphicon-gbp:before {\\n content: \\\"\\\\E149\\\";\\n}\\n.glyphicon-sort:before {\\n content: \\\"\\\\E150\\\";\\n}\\n.glyphicon-sort-by-alphabet:before {\\n content: \\\"\\\\E151\\\";\\n}\\n.glyphicon-sort-by-alphabet-alt:before {\\n content: \\\"\\\\E152\\\";\\n}\\n.glyphicon-sort-by-order:before {\\n content: \\\"\\\\E153\\\";\\n}\\n.glyphicon-sort-by-order-alt:before {\\n content: \\\"\\\\E154\\\";\\n}\\n.glyphicon-sort-by-attributes:before {\\n content: \\\"\\\\E155\\\";\\n}\\n.glyphicon-sort-by-attributes-alt:before {\\n content: \\\"\\\\E156\\\";\\n}\\n.glyphicon-unchecked:before {\\n content: \\\"\\\\E157\\\";\\n}\\n.glyphicon-expand:before {\\n content: \\\"\\\\E158\\\";\\n}\\n.glyphicon-collapse-down:before {\\n content: \\\"\\\\E159\\\";\\n}\\n.glyphicon-collapse-up:before {\\n content: \\\"\\\\E160\\\";\\n}\\n.glyphicon-log-in:before {\\n content: \\\"\\\\E161\\\";\\n}\\n.glyphicon-flash:before {\\n content: \\\"\\\\E162\\\";\\n}\\n.glyphicon-log-out:before {\\n content: \\\"\\\\E163\\\";\\n}\\n.glyphicon-new-window:before {\\n content: \\\"\\\\E164\\\";\\n}\\n.glyphicon-record:before {\\n content: \\\"\\\\E165\\\";\\n}\\n.glyphicon-save:before {\\n content: \\\"\\\\E166\\\";\\n}\\n.glyphicon-open:before {\\n content: \\\"\\\\E167\\\";\\n}\\n.glyphicon-saved:before {\\n content: \\\"\\\\E168\\\";\\n}\\n.glyphicon-import:before {\\n content: \\\"\\\\E169\\\";\\n}\\n.glyphicon-export:before {\\n content: \\\"\\\\E170\\\";\\n}\\n.glyphicon-send:before {\\n content: \\\"\\\\E171\\\";\\n}\\n.glyphicon-floppy-disk:before {\\n content: \\\"\\\\E172\\\";\\n}\\n.glyphicon-floppy-saved:before {\\n content: \\\"\\\\E173\\\";\\n}\\n.glyphicon-floppy-remove:before {\\n content: \\\"\\\\E174\\\";\\n}\\n.glyphicon-floppy-save:before {\\n content: \\\"\\\\E175\\\";\\n}\\n.glyphicon-floppy-open:before {\\n content: \\\"\\\\E176\\\";\\n}\\n.glyphicon-credit-card:before {\\n content: \\\"\\\\E177\\\";\\n}\\n.glyphicon-transfer:before {\\n content: \\\"\\\\E178\\\";\\n}\\n.glyphicon-cutlery:before {\\n content: \\\"\\\\E179\\\";\\n}\\n.glyphicon-header:before {\\n content: \\\"\\\\E180\\\";\\n}\\n.glyphicon-compressed:before {\\n content: \\\"\\\\E181\\\";\\n}\\n.glyphicon-earphone:before {\\n content: \\\"\\\\E182\\\";\\n}\\n.glyphicon-phone-alt:before {\\n content: \\\"\\\\E183\\\";\\n}\\n.glyphicon-tower:before {\\n content: \\\"\\\\E184\\\";\\n}\\n.glyphicon-stats:before {\\n content: \\\"\\\\E185\\\";\\n}\\n.glyphicon-sd-video:before {\\n content: \\\"\\\\E186\\\";\\n}\\n.glyphicon-hd-video:before {\\n content: \\\"\\\\E187\\\";\\n}\\n.glyphicon-subtitles:before {\\n content: \\\"\\\\E188\\\";\\n}\\n.glyphicon-sound-stereo:before {\\n content: \\\"\\\\E189\\\";\\n}\\n.glyphicon-sound-dolby:before {\\n content: \\\"\\\\E190\\\";\\n}\\n.glyphicon-sound-5-1:before {\\n content: \\\"\\\\E191\\\";\\n}\\n.glyphicon-sound-6-1:before {\\n content: \\\"\\\\E192\\\";\\n}\\n.glyphicon-sound-7-1:before {\\n content: \\\"\\\\E193\\\";\\n}\\n.glyphicon-copyright-mark:before {\\n content: \\\"\\\\E194\\\";\\n}\\n.glyphicon-registration-mark:before {\\n content: \\\"\\\\E195\\\";\\n}\\n.glyphicon-cloud-download:before {\\n content: \\\"\\\\E197\\\";\\n}\\n.glyphicon-cloud-upload:before {\\n content: \\\"\\\\E198\\\";\\n}\\n.glyphicon-tree-conifer:before {\\n content: \\\"\\\\E199\\\";\\n}\\n.glyphicon-tree-deciduous:before {\\n content: \\\"\\\\E200\\\";\\n}\\n.glyphicon-cd:before {\\n content: \\\"\\\\E201\\\";\\n}\\n.glyphicon-save-file:before {\\n content: \\\"\\\\E202\\\";\\n}\\n.glyphicon-open-file:before {\\n content: \\\"\\\\E203\\\";\\n}\\n.glyphicon-level-up:before {\\n content: \\\"\\\\E204\\\";\\n}\\n.glyphicon-copy:before {\\n content: \\\"\\\\E205\\\";\\n}\\n.glyphicon-paste:before {\\n content: \\\"\\\\E206\\\";\\n}\\n.glyphicon-alert:before {\\n content: \\\"\\\\E209\\\";\\n}\\n.glyphicon-equalizer:before {\\n content: \\\"\\\\E210\\\";\\n}\\n.glyphicon-king:before {\\n content: \\\"\\\\E211\\\";\\n}\\n.glyphicon-queen:before {\\n content: \\\"\\\\E212\\\";\\n}\\n.glyphicon-pawn:before {\\n content: \\\"\\\\E213\\\";\\n}\\n.glyphicon-bishop:before {\\n content: \\\"\\\\E214\\\";\\n}\\n.glyphicon-knight:before {\\n content: \\\"\\\\E215\\\";\\n}\\n.glyphicon-baby-formula:before {\\n content: \\\"\\\\E216\\\";\\n}\\n.glyphicon-tent:before {\\n content: \\\"\\\\26FA\\\";\\n}\\n.glyphicon-blackboard:before {\\n content: \\\"\\\\E218\\\";\\n}\\n.glyphicon-bed:before {\\n content: \\\"\\\\E219\\\";\\n}\\n.glyphicon-apple:before {\\n content: \\\"\\\\F8FF\\\";\\n}\\n.glyphicon-erase:before {\\n content: \\\"\\\\E221\\\";\\n}\\n.glyphicon-hourglass:before {\\n content: \\\"\\\\231B\\\";\\n}\\n.glyphicon-lamp:before {\\n content: \\\"\\\\E223\\\";\\n}\\n.glyphicon-duplicate:before {\\n content: \\\"\\\\E224\\\";\\n}\\n.glyphicon-piggy-bank:before {\\n content: \\\"\\\\E225\\\";\\n}\\n.glyphicon-scissors:before {\\n content: \\\"\\\\E226\\\";\\n}\\n.glyphicon-bitcoin:before {\\n content: \\\"\\\\E227\\\";\\n}\\n.glyphicon-btc:before {\\n content: \\\"\\\\E227\\\";\\n}\\n.glyphicon-xbt:before {\\n content: \\\"\\\\E227\\\";\\n}\\n.glyphicon-yen:before {\\n content: \\\"\\\\A5\\\";\\n}\\n.glyphicon-jpy:before {\\n content: \\\"\\\\A5\\\";\\n}\\n.glyphicon-ruble:before {\\n content: \\\"\\\\20BD\\\";\\n}\\n.glyphicon-rub:before {\\n content: \\\"\\\\20BD\\\";\\n}\\n.glyphicon-scale:before {\\n content: \\\"\\\\E230\\\";\\n}\\n.glyphicon-ice-lolly:before {\\n content: \\\"\\\\E231\\\";\\n}\\n.glyphicon-ice-lolly-tasted:before {\\n content: \\\"\\\\E232\\\";\\n}\\n.glyphicon-education:before {\\n content: \\\"\\\\E233\\\";\\n}\\n.glyphicon-option-horizontal:before {\\n content: \\\"\\\\E234\\\";\\n}\\n.glyphicon-option-vertical:before {\\n content: \\\"\\\\E235\\\";\\n}\\n.glyphicon-menu-hamburger:before {\\n content: \\\"\\\\E236\\\";\\n}\\n.glyphicon-modal-window:before {\\n content: \\\"\\\\E237\\\";\\n}\\n.glyphicon-oil:before {\\n content: \\\"\\\\E238\\\";\\n}\\n.glyphicon-grain:before {\\n content: \\\"\\\\E239\\\";\\n}\\n.glyphicon-sunglasses:before {\\n content: \\\"\\\\E240\\\";\\n}\\n.glyphicon-text-size:before {\\n content: \\\"\\\\E241\\\";\\n}\\n.glyphicon-text-color:before {\\n content: \\\"\\\\E242\\\";\\n}\\n.glyphicon-text-background:before {\\n content: \\\"\\\\E243\\\";\\n}\\n.glyphicon-object-align-top:before {\\n content: \\\"\\\\E244\\\";\\n}\\n.glyphicon-object-align-bottom:before {\\n content: \\\"\\\\E245\\\";\\n}\\n.glyphicon-object-align-horizontal:before {\\n content: \\\"\\\\E246\\\";\\n}\\n.glyphicon-object-align-left:before {\\n content: \\\"\\\\E247\\\";\\n}\\n.glyphicon-object-align-vertical:before {\\n content: \\\"\\\\E248\\\";\\n}\\n.glyphicon-object-align-right:before {\\n content: \\\"\\\\E249\\\";\\n}\\n.glyphicon-triangle-right:before {\\n content: \\\"\\\\E250\\\";\\n}\\n.glyphicon-triangle-left:before {\\n content: \\\"\\\\E251\\\";\\n}\\n.glyphicon-triangle-bottom:before {\\n content: \\\"\\\\E252\\\";\\n}\\n.glyphicon-triangle-top:before {\\n content: \\\"\\\\E253\\\";\\n}\\n.glyphicon-console:before {\\n content: \\\"\\\\E254\\\";\\n}\\n.glyphicon-superscript:before {\\n content: \\\"\\\\E255\\\";\\n}\\n.glyphicon-subscript:before {\\n content: \\\"\\\\E256\\\";\\n}\\n.glyphicon-menu-left:before {\\n content: \\\"\\\\E257\\\";\\n}\\n.glyphicon-menu-right:before {\\n content: \\\"\\\\E258\\\";\\n}\\n.glyphicon-menu-down:before {\\n content: \\\"\\\\E259\\\";\\n}\\n.glyphicon-menu-up:before {\\n content: \\\"\\\\E260\\\";\\n}\\n* {\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n*:before,\\n*:after {\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\nhtml {\\n font-size: 10px;\\n\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\nbody {\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n line-height: 1.42857143;\\n color: #333;\\n background-color: #fff;\\n}\\ninput,\\nbutton,\\nselect,\\ntextarea {\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n}\\na {\\n color: #337ab7;\\n text-decoration: none;\\n}\\na:hover,\\na:focus {\\n color: #23527c;\\n text-decoration: underline;\\n}\\na:focus {\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: -2px;\\n}\\nfigure {\\n margin: 0;\\n}\\nimg {\\n vertical-align: middle;\\n}\\n.img-responsive,\\n.thumbnail > img,\\n.thumbnail a > img,\\n.carousel-inner > .item > img,\\n.carousel-inner > .item > a > img {\\n display: block;\\n max-width: 100%;\\n height: auto;\\n}\\n.img-rounded {\\n border-radius: 6px;\\n}\\n.img-thumbnail {\\n display: inline-block;\\n max-width: 100%;\\n height: auto;\\n padding: 4px;\\n line-height: 1.42857143;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-radius: 4px;\\n -webkit-transition: all .2s ease-in-out;\\n -o-transition: all .2s ease-in-out;\\n transition: all .2s ease-in-out;\\n}\\n.img-circle {\\n border-radius: 50%;\\n}\\nhr {\\n margin-top: 20px;\\n margin-bottom: 20px;\\n border: 0;\\n border-top: 1px solid #eee;\\n}\\n.sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n border: 0;\\n}\\n.sr-only-focusable:active,\\n.sr-only-focusable:focus {\\n position: static;\\n width: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n clip: auto;\\n}\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\n.h1,\\n.h2,\\n.h3,\\n.h4,\\n.h5,\\n.h6 {\\n font-family: inherit;\\n font-weight: 500;\\n line-height: 1.1;\\n color: inherit;\\n}\\nh1 small,\\nh2 small,\\nh3 small,\\nh4 small,\\nh5 small,\\nh6 small,\\n.h1 small,\\n.h2 small,\\n.h3 small,\\n.h4 small,\\n.h5 small,\\n.h6 small,\\nh1 .small,\\nh2 .small,\\nh3 .small,\\nh4 .small,\\nh5 .small,\\nh6 .small,\\n.h1 .small,\\n.h2 .small,\\n.h3 .small,\\n.h4 .small,\\n.h5 .small,\\n.h6 .small {\\n font-weight: normal;\\n line-height: 1;\\n color: #777;\\n}\\nh1,\\n.h1,\\nh2,\\n.h2,\\nh3,\\n.h3 {\\n margin-top: 20px;\\n margin-bottom: 10px;\\n}\\nh1 small,\\n.h1 small,\\nh2 small,\\n.h2 small,\\nh3 small,\\n.h3 small,\\nh1 .small,\\n.h1 .small,\\nh2 .small,\\n.h2 .small,\\nh3 .small,\\n.h3 .small {\\n font-size: 65%;\\n}\\nh4,\\n.h4,\\nh5,\\n.h5,\\nh6,\\n.h6 {\\n margin-top: 10px;\\n margin-bottom: 10px;\\n}\\nh4 small,\\n.h4 small,\\nh5 small,\\n.h5 small,\\nh6 small,\\n.h6 small,\\nh4 .small,\\n.h4 .small,\\nh5 .small,\\n.h5 .small,\\nh6 .small,\\n.h6 .small {\\n font-size: 75%;\\n}\\nh1,\\n.h1 {\\n font-size: 36px;\\n}\\nh2,\\n.h2 {\\n font-size: 30px;\\n}\\nh3,\\n.h3 {\\n font-size: 24px;\\n}\\nh4,\\n.h4 {\\n font-size: 18px;\\n}\\nh5,\\n.h5 {\\n font-size: 14px;\\n}\\nh6,\\n.h6 {\\n font-size: 12px;\\n}\\np {\\n margin: 0 0 10px;\\n}\\n.lead {\\n margin-bottom: 20px;\\n font-size: 16px;\\n font-weight: 300;\\n line-height: 1.4;\\n}\\n@media (min-width: 768px) {\\n .lead {\\n font-size: 21px;\\n }\\n}\\nsmall,\\n.small {\\n font-size: 85%;\\n}\\nmark,\\n.mark {\\n padding: .2em;\\n background-color: #fcf8e3;\\n}\\n.text-left {\\n text-align: left;\\n}\\n.text-right {\\n text-align: right;\\n}\\n.text-center {\\n text-align: center;\\n}\\n.text-justify {\\n text-align: justify;\\n}\\n.text-nowrap {\\n white-space: nowrap;\\n}\\n.text-lowercase {\\n text-transform: lowercase;\\n}\\n.text-uppercase {\\n text-transform: uppercase;\\n}\\n.text-capitalize {\\n text-transform: capitalize;\\n}\\n.text-muted {\\n color: #777;\\n}\\n.text-primary {\\n color: #337ab7;\\n}\\na.text-primary:hover,\\na.text-primary:focus {\\n color: #286090;\\n}\\n.text-success {\\n color: #3c763d;\\n}\\na.text-success:hover,\\na.text-success:focus {\\n color: #2b542c;\\n}\\n.text-info {\\n color: #31708f;\\n}\\na.text-info:hover,\\na.text-info:focus {\\n color: #245269;\\n}\\n.text-warning {\\n color: #8a6d3b;\\n}\\na.text-warning:hover,\\na.text-warning:focus {\\n color: #66512c;\\n}\\n.text-danger {\\n color: #a94442;\\n}\\na.text-danger:hover,\\na.text-danger:focus {\\n color: #843534;\\n}\\n.bg-primary {\\n color: #fff;\\n background-color: #337ab7;\\n}\\na.bg-primary:hover,\\na.bg-primary:focus {\\n background-color: #286090;\\n}\\n.bg-success {\\n background-color: #dff0d8;\\n}\\na.bg-success:hover,\\na.bg-success:focus {\\n background-color: #c1e2b3;\\n}\\n.bg-info {\\n background-color: #d9edf7;\\n}\\na.bg-info:hover,\\na.bg-info:focus {\\n background-color: #afd9ee;\\n}\\n.bg-warning {\\n background-color: #fcf8e3;\\n}\\na.bg-warning:hover,\\na.bg-warning:focus {\\n background-color: #f7ecb5;\\n}\\n.bg-danger {\\n background-color: #f2dede;\\n}\\na.bg-danger:hover,\\na.bg-danger:focus {\\n background-color: #e4b9b9;\\n}\\n.page-header {\\n padding-bottom: 9px;\\n margin: 40px 0 20px;\\n border-bottom: 1px solid #eee;\\n}\\nul,\\nol {\\n margin-top: 0;\\n margin-bottom: 10px;\\n}\\nul ul,\\nol ul,\\nul ol,\\nol ol {\\n margin-bottom: 0;\\n}\\n.list-unstyled {\\n padding-left: 0;\\n list-style: none;\\n}\\n.list-inline {\\n padding-left: 0;\\n margin-left: -5px;\\n list-style: none;\\n}\\n.list-inline > li {\\n display: inline-block;\\n padding-right: 5px;\\n padding-left: 5px;\\n}\\ndl {\\n margin-top: 0;\\n margin-bottom: 20px;\\n}\\ndt,\\ndd {\\n line-height: 1.42857143;\\n}\\ndt {\\n font-weight: bold;\\n}\\ndd {\\n margin-left: 0;\\n}\\n@media (min-width: 768px) {\\n .dl-horizontal dt {\\n float: left;\\n width: 160px;\\n overflow: hidden;\\n clear: left;\\n text-align: right;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n .dl-horizontal dd {\\n margin-left: 180px;\\n }\\n}\\nabbr[title],\\nabbr[data-original-title] {\\n cursor: help;\\n border-bottom: 1px dotted #777;\\n}\\n.initialism {\\n font-size: 90%;\\n text-transform: uppercase;\\n}\\nblockquote {\\n padding: 10px 20px;\\n margin: 0 0 20px;\\n font-size: 17.5px;\\n border-left: 5px solid #eee;\\n}\\nblockquote p:last-child,\\nblockquote ul:last-child,\\nblockquote ol:last-child {\\n margin-bottom: 0;\\n}\\nblockquote footer,\\nblockquote small,\\nblockquote .small {\\n display: block;\\n font-size: 80%;\\n line-height: 1.42857143;\\n color: #777;\\n}\\nblockquote footer:before,\\nblockquote small:before,\\nblockquote .small:before {\\n content: '\\\\2014 \\\\A0';\\n}\\n.blockquote-reverse,\\nblockquote.pull-right {\\n padding-right: 15px;\\n padding-left: 0;\\n text-align: right;\\n border-right: 5px solid #eee;\\n border-left: 0;\\n}\\n.blockquote-reverse footer:before,\\nblockquote.pull-right footer:before,\\n.blockquote-reverse small:before,\\nblockquote.pull-right small:before,\\n.blockquote-reverse .small:before,\\nblockquote.pull-right .small:before {\\n content: '';\\n}\\n.blockquote-reverse footer:after,\\nblockquote.pull-right footer:after,\\n.blockquote-reverse small:after,\\nblockquote.pull-right small:after,\\n.blockquote-reverse .small:after,\\nblockquote.pull-right .small:after {\\n content: '\\\\A0 \\\\2014';\\n}\\naddress {\\n margin-bottom: 20px;\\n font-style: normal;\\n line-height: 1.42857143;\\n}\\ncode,\\nkbd,\\npre,\\nsamp {\\n font-family: Menlo, Monaco, Consolas, \\\"Courier New\\\", monospace;\\n}\\ncode {\\n padding: 2px 4px;\\n font-size: 90%;\\n color: #c7254e;\\n background-color: #f9f2f4;\\n border-radius: 4px;\\n}\\nkbd {\\n padding: 2px 4px;\\n font-size: 90%;\\n color: #fff;\\n background-color: #333;\\n border-radius: 3px;\\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\\n}\\nkbd kbd {\\n padding: 0;\\n font-size: 100%;\\n font-weight: bold;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\npre {\\n display: block;\\n padding: 9.5px;\\n margin: 0 0 10px;\\n font-size: 13px;\\n line-height: 1.42857143;\\n color: #333;\\n word-break: break-all;\\n word-wrap: break-word;\\n background-color: #f5f5f5;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n}\\npre code {\\n padding: 0;\\n font-size: inherit;\\n color: inherit;\\n white-space: pre-wrap;\\n background-color: transparent;\\n border-radius: 0;\\n}\\n.pre-scrollable {\\n max-height: 340px;\\n overflow-y: scroll;\\n}\\n.container {\\n padding-right: 15px;\\n padding-left: 15px;\\n margin-right: auto;\\n margin-left: auto;\\n}\\n@media (min-width: 768px) {\\n .container {\\n width: 750px;\\n }\\n}\\n@media (min-width: 992px) {\\n .container {\\n width: 970px;\\n }\\n}\\n@media (min-width: 1200px) {\\n .container {\\n width: 1170px;\\n }\\n}\\n.container-fluid {\\n padding-right: 15px;\\n padding-left: 15px;\\n margin-right: auto;\\n margin-left: auto;\\n}\\n.row {\\n margin-right: -15px;\\n margin-left: -15px;\\n}\\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\\n position: relative;\\n min-height: 1px;\\n padding-right: 15px;\\n padding-left: 15px;\\n}\\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\\n float: left;\\n}\\n.col-xs-12 {\\n width: 100%;\\n}\\n.col-xs-11 {\\n width: 91.66666667%;\\n}\\n.col-xs-10 {\\n width: 83.33333333%;\\n}\\n.col-xs-9 {\\n width: 75%;\\n}\\n.col-xs-8 {\\n width: 66.66666667%;\\n}\\n.col-xs-7 {\\n width: 58.33333333%;\\n}\\n.col-xs-6 {\\n width: 50%;\\n}\\n.col-xs-5 {\\n width: 41.66666667%;\\n}\\n.col-xs-4 {\\n width: 33.33333333%;\\n}\\n.col-xs-3 {\\n width: 25%;\\n}\\n.col-xs-2 {\\n width: 16.66666667%;\\n}\\n.col-xs-1 {\\n width: 8.33333333%;\\n}\\n.col-xs-pull-12 {\\n right: 100%;\\n}\\n.col-xs-pull-11 {\\n right: 91.66666667%;\\n}\\n.col-xs-pull-10 {\\n right: 83.33333333%;\\n}\\n.col-xs-pull-9 {\\n right: 75%;\\n}\\n.col-xs-pull-8 {\\n right: 66.66666667%;\\n}\\n.col-xs-pull-7 {\\n right: 58.33333333%;\\n}\\n.col-xs-pull-6 {\\n right: 50%;\\n}\\n.col-xs-pull-5 {\\n right: 41.66666667%;\\n}\\n.col-xs-pull-4 {\\n right: 33.33333333%;\\n}\\n.col-xs-pull-3 {\\n right: 25%;\\n}\\n.col-xs-pull-2 {\\n right: 16.66666667%;\\n}\\n.col-xs-pull-1 {\\n right: 8.33333333%;\\n}\\n.col-xs-pull-0 {\\n right: auto;\\n}\\n.col-xs-push-12 {\\n left: 100%;\\n}\\n.col-xs-push-11 {\\n left: 91.66666667%;\\n}\\n.col-xs-push-10 {\\n left: 83.33333333%;\\n}\\n.col-xs-push-9 {\\n left: 75%;\\n}\\n.col-xs-push-8 {\\n left: 66.66666667%;\\n}\\n.col-xs-push-7 {\\n left: 58.33333333%;\\n}\\n.col-xs-push-6 {\\n left: 50%;\\n}\\n.col-xs-push-5 {\\n left: 41.66666667%;\\n}\\n.col-xs-push-4 {\\n left: 33.33333333%;\\n}\\n.col-xs-push-3 {\\n left: 25%;\\n}\\n.col-xs-push-2 {\\n left: 16.66666667%;\\n}\\n.col-xs-push-1 {\\n left: 8.33333333%;\\n}\\n.col-xs-push-0 {\\n left: auto;\\n}\\n.col-xs-offset-12 {\\n margin-left: 100%;\\n}\\n.col-xs-offset-11 {\\n margin-left: 91.66666667%;\\n}\\n.col-xs-offset-10 {\\n margin-left: 83.33333333%;\\n}\\n.col-xs-offset-9 {\\n margin-left: 75%;\\n}\\n.col-xs-offset-8 {\\n margin-left: 66.66666667%;\\n}\\n.col-xs-offset-7 {\\n margin-left: 58.33333333%;\\n}\\n.col-xs-offset-6 {\\n margin-left: 50%;\\n}\\n.col-xs-offset-5 {\\n margin-left: 41.66666667%;\\n}\\n.col-xs-offset-4 {\\n margin-left: 33.33333333%;\\n}\\n.col-xs-offset-3 {\\n margin-left: 25%;\\n}\\n.col-xs-offset-2 {\\n margin-left: 16.66666667%;\\n}\\n.col-xs-offset-1 {\\n margin-left: 8.33333333%;\\n}\\n.col-xs-offset-0 {\\n margin-left: 0;\\n}\\n@media (min-width: 768px) {\\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\\n float: left;\\n }\\n .col-sm-12 {\\n width: 100%;\\n }\\n .col-sm-11 {\\n width: 91.66666667%;\\n }\\n .col-sm-10 {\\n width: 83.33333333%;\\n }\\n .col-sm-9 {\\n width: 75%;\\n }\\n .col-sm-8 {\\n width: 66.66666667%;\\n }\\n .col-sm-7 {\\n width: 58.33333333%;\\n }\\n .col-sm-6 {\\n width: 50%;\\n }\\n .col-sm-5 {\\n width: 41.66666667%;\\n }\\n .col-sm-4 {\\n width: 33.33333333%;\\n }\\n .col-sm-3 {\\n width: 25%;\\n }\\n .col-sm-2 {\\n width: 16.66666667%;\\n }\\n .col-sm-1 {\\n width: 8.33333333%;\\n }\\n .col-sm-pull-12 {\\n right: 100%;\\n }\\n .col-sm-pull-11 {\\n right: 91.66666667%;\\n }\\n .col-sm-pull-10 {\\n right: 83.33333333%;\\n }\\n .col-sm-pull-9 {\\n right: 75%;\\n }\\n .col-sm-pull-8 {\\n right: 66.66666667%;\\n }\\n .col-sm-pull-7 {\\n right: 58.33333333%;\\n }\\n .col-sm-pull-6 {\\n right: 50%;\\n }\\n .col-sm-pull-5 {\\n right: 41.66666667%;\\n }\\n .col-sm-pull-4 {\\n right: 33.33333333%;\\n }\\n .col-sm-pull-3 {\\n right: 25%;\\n }\\n .col-sm-pull-2 {\\n right: 16.66666667%;\\n }\\n .col-sm-pull-1 {\\n right: 8.33333333%;\\n }\\n .col-sm-pull-0 {\\n right: auto;\\n }\\n .col-sm-push-12 {\\n left: 100%;\\n }\\n .col-sm-push-11 {\\n left: 91.66666667%;\\n }\\n .col-sm-push-10 {\\n left: 83.33333333%;\\n }\\n .col-sm-push-9 {\\n left: 75%;\\n }\\n .col-sm-push-8 {\\n left: 66.66666667%;\\n }\\n .col-sm-push-7 {\\n left: 58.33333333%;\\n }\\n .col-sm-push-6 {\\n left: 50%;\\n }\\n .col-sm-push-5 {\\n left: 41.66666667%;\\n }\\n .col-sm-push-4 {\\n left: 33.33333333%;\\n }\\n .col-sm-push-3 {\\n left: 25%;\\n }\\n .col-sm-push-2 {\\n left: 16.66666667%;\\n }\\n .col-sm-push-1 {\\n left: 8.33333333%;\\n }\\n .col-sm-push-0 {\\n left: auto;\\n }\\n .col-sm-offset-12 {\\n margin-left: 100%;\\n }\\n .col-sm-offset-11 {\\n margin-left: 91.66666667%;\\n }\\n .col-sm-offset-10 {\\n margin-left: 83.33333333%;\\n }\\n .col-sm-offset-9 {\\n margin-left: 75%;\\n }\\n .col-sm-offset-8 {\\n margin-left: 66.66666667%;\\n }\\n .col-sm-offset-7 {\\n margin-left: 58.33333333%;\\n }\\n .col-sm-offset-6 {\\n margin-left: 50%;\\n }\\n .col-sm-offset-5 {\\n margin-left: 41.66666667%;\\n }\\n .col-sm-offset-4 {\\n margin-left: 33.33333333%;\\n }\\n .col-sm-offset-3 {\\n margin-left: 25%;\\n }\\n .col-sm-offset-2 {\\n margin-left: 16.66666667%;\\n }\\n .col-sm-offset-1 {\\n margin-left: 8.33333333%;\\n }\\n .col-sm-offset-0 {\\n margin-left: 0;\\n }\\n}\\n@media (min-width: 992px) {\\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\\n float: left;\\n }\\n .col-md-12 {\\n width: 100%;\\n }\\n .col-md-11 {\\n width: 91.66666667%;\\n }\\n .col-md-10 {\\n width: 83.33333333%;\\n }\\n .col-md-9 {\\n width: 75%;\\n }\\n .col-md-8 {\\n width: 66.66666667%;\\n }\\n .col-md-7 {\\n width: 58.33333333%;\\n }\\n .col-md-6 {\\n width: 50%;\\n }\\n .col-md-5 {\\n width: 41.66666667%;\\n }\\n .col-md-4 {\\n width: 33.33333333%;\\n }\\n .col-md-3 {\\n width: 25%;\\n }\\n .col-md-2 {\\n width: 16.66666667%;\\n }\\n .col-md-1 {\\n width: 8.33333333%;\\n }\\n .col-md-pull-12 {\\n right: 100%;\\n }\\n .col-md-pull-11 {\\n right: 91.66666667%;\\n }\\n .col-md-pull-10 {\\n right: 83.33333333%;\\n }\\n .col-md-pull-9 {\\n right: 75%;\\n }\\n .col-md-pull-8 {\\n right: 66.66666667%;\\n }\\n .col-md-pull-7 {\\n right: 58.33333333%;\\n }\\n .col-md-pull-6 {\\n right: 50%;\\n }\\n .col-md-pull-5 {\\n right: 41.66666667%;\\n }\\n .col-md-pull-4 {\\n right: 33.33333333%;\\n }\\n .col-md-pull-3 {\\n right: 25%;\\n }\\n .col-md-pull-2 {\\n right: 16.66666667%;\\n }\\n .col-md-pull-1 {\\n right: 8.33333333%;\\n }\\n .col-md-pull-0 {\\n right: auto;\\n }\\n .col-md-push-12 {\\n left: 100%;\\n }\\n .col-md-push-11 {\\n left: 91.66666667%;\\n }\\n .col-md-push-10 {\\n left: 83.33333333%;\\n }\\n .col-md-push-9 {\\n left: 75%;\\n }\\n .col-md-push-8 {\\n left: 66.66666667%;\\n }\\n .col-md-push-7 {\\n left: 58.33333333%;\\n }\\n .col-md-push-6 {\\n left: 50%;\\n }\\n .col-md-push-5 {\\n left: 41.66666667%;\\n }\\n .col-md-push-4 {\\n left: 33.33333333%;\\n }\\n .col-md-push-3 {\\n left: 25%;\\n }\\n .col-md-push-2 {\\n left: 16.66666667%;\\n }\\n .col-md-push-1 {\\n left: 8.33333333%;\\n }\\n .col-md-push-0 {\\n left: auto;\\n }\\n .col-md-offset-12 {\\n margin-left: 100%;\\n }\\n .col-md-offset-11 {\\n margin-left: 91.66666667%;\\n }\\n .col-md-offset-10 {\\n margin-left: 83.33333333%;\\n }\\n .col-md-offset-9 {\\n margin-left: 75%;\\n }\\n .col-md-offset-8 {\\n margin-left: 66.66666667%;\\n }\\n .col-md-offset-7 {\\n margin-left: 58.33333333%;\\n }\\n .col-md-offset-6 {\\n margin-left: 50%;\\n }\\n .col-md-offset-5 {\\n margin-left: 41.66666667%;\\n }\\n .col-md-offset-4 {\\n margin-left: 33.33333333%;\\n }\\n .col-md-offset-3 {\\n margin-left: 25%;\\n }\\n .col-md-offset-2 {\\n margin-left: 16.66666667%;\\n }\\n .col-md-offset-1 {\\n margin-left: 8.33333333%;\\n }\\n .col-md-offset-0 {\\n margin-left: 0;\\n }\\n}\\n@media (min-width: 1200px) {\\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\\n float: left;\\n }\\n .col-lg-12 {\\n width: 100%;\\n }\\n .col-lg-11 {\\n width: 91.66666667%;\\n }\\n .col-lg-10 {\\n width: 83.33333333%;\\n }\\n .col-lg-9 {\\n width: 75%;\\n }\\n .col-lg-8 {\\n width: 66.66666667%;\\n }\\n .col-lg-7 {\\n width: 58.33333333%;\\n }\\n .col-lg-6 {\\n width: 50%;\\n }\\n .col-lg-5 {\\n width: 41.66666667%;\\n }\\n .col-lg-4 {\\n width: 33.33333333%;\\n }\\n .col-lg-3 {\\n width: 25%;\\n }\\n .col-lg-2 {\\n width: 16.66666667%;\\n }\\n .col-lg-1 {\\n width: 8.33333333%;\\n }\\n .col-lg-pull-12 {\\n right: 100%;\\n }\\n .col-lg-pull-11 {\\n right: 91.66666667%;\\n }\\n .col-lg-pull-10 {\\n right: 83.33333333%;\\n }\\n .col-lg-pull-9 {\\n right: 75%;\\n }\\n .col-lg-pull-8 {\\n right: 66.66666667%;\\n }\\n .col-lg-pull-7 {\\n right: 58.33333333%;\\n }\\n .col-lg-pull-6 {\\n right: 50%;\\n }\\n .col-lg-pull-5 {\\n right: 41.66666667%;\\n }\\n .col-lg-pull-4 {\\n right: 33.33333333%;\\n }\\n .col-lg-pull-3 {\\n right: 25%;\\n }\\n .col-lg-pull-2 {\\n right: 16.66666667%;\\n }\\n .col-lg-pull-1 {\\n right: 8.33333333%;\\n }\\n .col-lg-pull-0 {\\n right: auto;\\n }\\n .col-lg-push-12 {\\n left: 100%;\\n }\\n .col-lg-push-11 {\\n left: 91.66666667%;\\n }\\n .col-lg-push-10 {\\n left: 83.33333333%;\\n }\\n .col-lg-push-9 {\\n left: 75%;\\n }\\n .col-lg-push-8 {\\n left: 66.66666667%;\\n }\\n .col-lg-push-7 {\\n left: 58.33333333%;\\n }\\n .col-lg-push-6 {\\n left: 50%;\\n }\\n .col-lg-push-5 {\\n left: 41.66666667%;\\n }\\n .col-lg-push-4 {\\n left: 33.33333333%;\\n }\\n .col-lg-push-3 {\\n left: 25%;\\n }\\n .col-lg-push-2 {\\n left: 16.66666667%;\\n }\\n .col-lg-push-1 {\\n left: 8.33333333%;\\n }\\n .col-lg-push-0 {\\n left: auto;\\n }\\n .col-lg-offset-12 {\\n margin-left: 100%;\\n }\\n .col-lg-offset-11 {\\n margin-left: 91.66666667%;\\n }\\n .col-lg-offset-10 {\\n margin-left: 83.33333333%;\\n }\\n .col-lg-offset-9 {\\n margin-left: 75%;\\n }\\n .col-lg-offset-8 {\\n margin-left: 66.66666667%;\\n }\\n .col-lg-offset-7 {\\n margin-left: 58.33333333%;\\n }\\n .col-lg-offset-6 {\\n margin-left: 50%;\\n }\\n .col-lg-offset-5 {\\n margin-left: 41.66666667%;\\n }\\n .col-lg-offset-4 {\\n margin-left: 33.33333333%;\\n }\\n .col-lg-offset-3 {\\n margin-left: 25%;\\n }\\n .col-lg-offset-2 {\\n margin-left: 16.66666667%;\\n }\\n .col-lg-offset-1 {\\n margin-left: 8.33333333%;\\n }\\n .col-lg-offset-0 {\\n margin-left: 0;\\n }\\n}\\ntable {\\n background-color: transparent;\\n}\\ncaption {\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: #777;\\n text-align: left;\\n}\\nth {\\n text-align: left;\\n}\\n.table {\\n width: 100%;\\n max-width: 100%;\\n margin-bottom: 20px;\\n}\\n.table > thead > tr > th,\\n.table > tbody > tr > th,\\n.table > tfoot > tr > th,\\n.table > thead > tr > td,\\n.table > tbody > tr > td,\\n.table > tfoot > tr > td {\\n padding: 8px;\\n line-height: 1.42857143;\\n vertical-align: top;\\n border-top: 1px solid #ddd;\\n}\\n.table > thead > tr > th {\\n vertical-align: bottom;\\n border-bottom: 2px solid #ddd;\\n}\\n.table > caption + thead > tr:first-child > th,\\n.table > colgroup + thead > tr:first-child > th,\\n.table > thead:first-child > tr:first-child > th,\\n.table > caption + thead > tr:first-child > td,\\n.table > colgroup + thead > tr:first-child > td,\\n.table > thead:first-child > tr:first-child > td {\\n border-top: 0;\\n}\\n.table > tbody + tbody {\\n border-top: 2px solid #ddd;\\n}\\n.table .table {\\n background-color: #fff;\\n}\\n.table-condensed > thead > tr > th,\\n.table-condensed > tbody > tr > th,\\n.table-condensed > tfoot > tr > th,\\n.table-condensed > thead > tr > td,\\n.table-condensed > tbody > tr > td,\\n.table-condensed > tfoot > tr > td {\\n padding: 5px;\\n}\\n.table-bordered {\\n border: 1px solid #ddd;\\n}\\n.table-bordered > thead > tr > th,\\n.table-bordered > tbody > tr > th,\\n.table-bordered > tfoot > tr > th,\\n.table-bordered > thead > tr > td,\\n.table-bordered > tbody > tr > td,\\n.table-bordered > tfoot > tr > td {\\n border: 1px solid #ddd;\\n}\\n.table-bordered > thead > tr > th,\\n.table-bordered > thead > tr > td {\\n border-bottom-width: 2px;\\n}\\n.table-striped > tbody > tr:nth-of-type(odd) {\\n background-color: #f9f9f9;\\n}\\n.table-hover > tbody > tr:hover {\\n background-color: #f5f5f5;\\n}\\ntable col[class*=\\\"col-\\\"] {\\n position: static;\\n display: table-column;\\n float: none;\\n}\\ntable td[class*=\\\"col-\\\"],\\ntable th[class*=\\\"col-\\\"] {\\n position: static;\\n display: table-cell;\\n float: none;\\n}\\n.table > thead > tr > td.active,\\n.table > tbody > tr > td.active,\\n.table > tfoot > tr > td.active,\\n.table > thead > tr > th.active,\\n.table > tbody > tr > th.active,\\n.table > tfoot > tr > th.active,\\n.table > thead > tr.active > td,\\n.table > tbody > tr.active > td,\\n.table > tfoot > tr.active > td,\\n.table > thead > tr.active > th,\\n.table > tbody > tr.active > th,\\n.table > tfoot > tr.active > th {\\n background-color: #f5f5f5;\\n}\\n.table-hover > tbody > tr > td.active:hover,\\n.table-hover > tbody > tr > th.active:hover,\\n.table-hover > tbody > tr.active:hover > td,\\n.table-hover > tbody > tr:hover > .active,\\n.table-hover > tbody > tr.active:hover > th {\\n background-color: #e8e8e8;\\n}\\n.table > thead > tr > td.success,\\n.table > tbody > tr > td.success,\\n.table > tfoot > tr > td.success,\\n.table > thead > tr > th.success,\\n.table > tbody > tr > th.success,\\n.table > tfoot > tr > th.success,\\n.table > thead > tr.success > td,\\n.table > tbody > tr.success > td,\\n.table > tfoot > tr.success > td,\\n.table > thead > tr.success > th,\\n.table > tbody > tr.success > th,\\n.table > tfoot > tr.success > th {\\n background-color: #dff0d8;\\n}\\n.table-hover > tbody > tr > td.success:hover,\\n.table-hover > tbody > tr > th.success:hover,\\n.table-hover > tbody > tr.success:hover > td,\\n.table-hover > tbody > tr:hover > .success,\\n.table-hover > tbody > tr.success:hover > th {\\n background-color: #d0e9c6;\\n}\\n.table > thead > tr > td.info,\\n.table > tbody > tr > td.info,\\n.table > tfoot > tr > td.info,\\n.table > thead > tr > th.info,\\n.table > tbody > tr > th.info,\\n.table > tfoot > tr > th.info,\\n.table > thead > tr.info > td,\\n.table > tbody > tr.info > td,\\n.table > tfoot > tr.info > td,\\n.table > thead > tr.info > th,\\n.table > tbody > tr.info > th,\\n.table > tfoot > tr.info > th {\\n background-color: #d9edf7;\\n}\\n.table-hover > tbody > tr > td.info:hover,\\n.table-hover > tbody > tr > th.info:hover,\\n.table-hover > tbody > tr.info:hover > td,\\n.table-hover > tbody > tr:hover > .info,\\n.table-hover > tbody > tr.info:hover > th {\\n background-color: #c4e3f3;\\n}\\n.table > thead > tr > td.warning,\\n.table > tbody > tr > td.warning,\\n.table > tfoot > tr > td.warning,\\n.table > thead > tr > th.warning,\\n.table > tbody > tr > th.warning,\\n.table > tfoot > tr > th.warning,\\n.table > thead > tr.warning > td,\\n.table > tbody > tr.warning > td,\\n.table > tfoot > tr.warning > td,\\n.table > thead > tr.warning > th,\\n.table > tbody > tr.warning > th,\\n.table > tfoot > tr.warning > th {\\n background-color: #fcf8e3;\\n}\\n.table-hover > tbody > tr > td.warning:hover,\\n.table-hover > tbody > tr > th.warning:hover,\\n.table-hover > tbody > tr.warning:hover > td,\\n.table-hover > tbody > tr:hover > .warning,\\n.table-hover > tbody > tr.warning:hover > th {\\n background-color: #faf2cc;\\n}\\n.table > thead > tr > td.danger,\\n.table > tbody > tr > td.danger,\\n.table > tfoot > tr > td.danger,\\n.table > thead > tr > th.danger,\\n.table > tbody > tr > th.danger,\\n.table > tfoot > tr > th.danger,\\n.table > thead > tr.danger > td,\\n.table > tbody > tr.danger > td,\\n.table > tfoot > tr.danger > td,\\n.table > thead > tr.danger > th,\\n.table > tbody > tr.danger > th,\\n.table > tfoot > tr.danger > th {\\n background-color: #f2dede;\\n}\\n.table-hover > tbody > tr > td.danger:hover,\\n.table-hover > tbody > tr > th.danger:hover,\\n.table-hover > tbody > tr.danger:hover > td,\\n.table-hover > tbody > tr:hover > .danger,\\n.table-hover > tbody > tr.danger:hover > th {\\n background-color: #ebcccc;\\n}\\n.table-responsive {\\n min-height: .01%;\\n overflow-x: auto;\\n}\\n@media screen and (max-width: 767px) {\\n .table-responsive {\\n width: 100%;\\n margin-bottom: 15px;\\n overflow-y: hidden;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n border: 1px solid #ddd;\\n }\\n .table-responsive > .table {\\n margin-bottom: 0;\\n }\\n .table-responsive > .table > thead > tr > th,\\n .table-responsive > .table > tbody > tr > th,\\n .table-responsive > .table > tfoot > tr > th,\\n .table-responsive > .table > thead > tr > td,\\n .table-responsive > .table > tbody > tr > td,\\n .table-responsive > .table > tfoot > tr > td {\\n white-space: nowrap;\\n }\\n .table-responsive > .table-bordered {\\n border: 0;\\n }\\n .table-responsive > .table-bordered > thead > tr > th:first-child,\\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\\n .table-responsive > .table-bordered > thead > tr > td:first-child,\\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\\n border-left: 0;\\n }\\n .table-responsive > .table-bordered > thead > tr > th:last-child,\\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\\n .table-responsive > .table-bordered > thead > tr > td:last-child,\\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\\n border-right: 0;\\n }\\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\\n border-bottom: 0;\\n }\\n}\\nfieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n}\\nlegend {\\n display: block;\\n width: 100%;\\n padding: 0;\\n margin-bottom: 20px;\\n font-size: 21px;\\n line-height: inherit;\\n color: #333;\\n border: 0;\\n border-bottom: 1px solid #e5e5e5;\\n}\\nlabel {\\n display: inline-block;\\n max-width: 100%;\\n margin-bottom: 5px;\\n font-weight: bold;\\n}\\ninput[type=\\\"search\\\"] {\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\ninput[type=\\\"radio\\\"],\\ninput[type=\\\"checkbox\\\"] {\\n margin: 4px 0 0;\\n margin-top: 1px \\\\9;\\n line-height: normal;\\n}\\ninput[type=\\\"file\\\"] {\\n display: block;\\n}\\ninput[type=\\\"range\\\"] {\\n display: block;\\n width: 100%;\\n}\\nselect[multiple],\\nselect[size] {\\n height: auto;\\n}\\ninput[type=\\\"file\\\"]:focus,\\ninput[type=\\\"radio\\\"]:focus,\\ninput[type=\\\"checkbox\\\"]:focus {\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: -2px;\\n}\\noutput {\\n display: block;\\n padding-top: 7px;\\n font-size: 14px;\\n line-height: 1.42857143;\\n color: #555;\\n}\\n.form-control {\\n display: block;\\n width: 100%;\\n height: 34px;\\n padding: 6px 12px;\\n font-size: 14px;\\n line-height: 1.42857143;\\n color: #555;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\\n}\\n.form-control:focus {\\n border-color: #66afe9;\\n outline: 0;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\\n}\\n.form-control::-moz-placeholder {\\n color: #999;\\n opacity: 1;\\n}\\n.form-control:-ms-input-placeholder {\\n color: #999;\\n}\\n.form-control::-webkit-input-placeholder {\\n color: #999;\\n}\\n.form-control::-ms-expand {\\n background-color: transparent;\\n border: 0;\\n}\\n.form-control[disabled],\\n.form-control[readonly],\\nfieldset[disabled] .form-control {\\n background-color: #eee;\\n opacity: 1;\\n}\\n.form-control[disabled],\\nfieldset[disabled] .form-control {\\n cursor: not-allowed;\\n}\\ntextarea.form-control {\\n height: auto;\\n}\\ninput[type=\\\"search\\\"] {\\n -webkit-appearance: none;\\n}\\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\\n input[type=\\\"date\\\"].form-control,\\n input[type=\\\"time\\\"].form-control,\\n input[type=\\\"datetime-local\\\"].form-control,\\n input[type=\\\"month\\\"].form-control {\\n line-height: 34px;\\n }\\n input[type=\\\"date\\\"].input-sm,\\n input[type=\\\"time\\\"].input-sm,\\n input[type=\\\"datetime-local\\\"].input-sm,\\n input[type=\\\"month\\\"].input-sm,\\n .input-group-sm input[type=\\\"date\\\"],\\n .input-group-sm input[type=\\\"time\\\"],\\n .input-group-sm input[type=\\\"datetime-local\\\"],\\n .input-group-sm input[type=\\\"month\\\"] {\\n line-height: 30px;\\n }\\n input[type=\\\"date\\\"].input-lg,\\n input[type=\\\"time\\\"].input-lg,\\n input[type=\\\"datetime-local\\\"].input-lg,\\n input[type=\\\"month\\\"].input-lg,\\n .input-group-lg input[type=\\\"date\\\"],\\n .input-group-lg input[type=\\\"time\\\"],\\n .input-group-lg input[type=\\\"datetime-local\\\"],\\n .input-group-lg input[type=\\\"month\\\"] {\\n line-height: 46px;\\n }\\n}\\n.form-group {\\n margin-bottom: 15px;\\n}\\n.radio,\\n.checkbox {\\n position: relative;\\n display: block;\\n margin-top: 10px;\\n margin-bottom: 10px;\\n}\\n.radio label,\\n.checkbox label {\\n min-height: 20px;\\n padding-left: 20px;\\n margin-bottom: 0;\\n font-weight: normal;\\n cursor: pointer;\\n}\\n.radio input[type=\\\"radio\\\"],\\n.radio-inline input[type=\\\"radio\\\"],\\n.checkbox input[type=\\\"checkbox\\\"],\\n.checkbox-inline input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n margin-top: 4px \\\\9;\\n margin-left: -20px;\\n}\\n.radio + .radio,\\n.checkbox + .checkbox {\\n margin-top: -5px;\\n}\\n.radio-inline,\\n.checkbox-inline {\\n position: relative;\\n display: inline-block;\\n padding-left: 20px;\\n margin-bottom: 0;\\n font-weight: normal;\\n vertical-align: middle;\\n cursor: pointer;\\n}\\n.radio-inline + .radio-inline,\\n.checkbox-inline + .checkbox-inline {\\n margin-top: 0;\\n margin-left: 10px;\\n}\\ninput[type=\\\"radio\\\"][disabled],\\ninput[type=\\\"checkbox\\\"][disabled],\\ninput[type=\\\"radio\\\"].disabled,\\ninput[type=\\\"checkbox\\\"].disabled,\\nfieldset[disabled] input[type=\\\"radio\\\"],\\nfieldset[disabled] input[type=\\\"checkbox\\\"] {\\n cursor: not-allowed;\\n}\\n.radio-inline.disabled,\\n.checkbox-inline.disabled,\\nfieldset[disabled] .radio-inline,\\nfieldset[disabled] .checkbox-inline {\\n cursor: not-allowed;\\n}\\n.radio.disabled label,\\n.checkbox.disabled label,\\nfieldset[disabled] .radio label,\\nfieldset[disabled] .checkbox label {\\n cursor: not-allowed;\\n}\\n.form-control-static {\\n min-height: 34px;\\n padding-top: 7px;\\n padding-bottom: 7px;\\n margin-bottom: 0;\\n}\\n.form-control-static.input-lg,\\n.form-control-static.input-sm {\\n padding-right: 0;\\n padding-left: 0;\\n}\\n.input-sm {\\n height: 30px;\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\nselect.input-sm {\\n height: 30px;\\n line-height: 30px;\\n}\\ntextarea.input-sm,\\nselect[multiple].input-sm {\\n height: auto;\\n}\\n.form-group-sm .form-control {\\n height: 30px;\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\n.form-group-sm select.form-control {\\n height: 30px;\\n line-height: 30px;\\n}\\n.form-group-sm textarea.form-control,\\n.form-group-sm select[multiple].form-control {\\n height: auto;\\n}\\n.form-group-sm .form-control-static {\\n height: 30px;\\n min-height: 32px;\\n padding: 6px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n}\\n.input-lg {\\n height: 46px;\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\nselect.input-lg {\\n height: 46px;\\n line-height: 46px;\\n}\\ntextarea.input-lg,\\nselect[multiple].input-lg {\\n height: auto;\\n}\\n.form-group-lg .form-control {\\n height: 46px;\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\n.form-group-lg select.form-control {\\n height: 46px;\\n line-height: 46px;\\n}\\n.form-group-lg textarea.form-control,\\n.form-group-lg select[multiple].form-control {\\n height: auto;\\n}\\n.form-group-lg .form-control-static {\\n height: 46px;\\n min-height: 38px;\\n padding: 11px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n}\\n.has-feedback {\\n position: relative;\\n}\\n.has-feedback .form-control {\\n padding-right: 42.5px;\\n}\\n.form-control-feedback {\\n position: absolute;\\n top: 0;\\n right: 0;\\n z-index: 2;\\n display: block;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n pointer-events: none;\\n}\\n.input-lg + .form-control-feedback,\\n.input-group-lg + .form-control-feedback,\\n.form-group-lg .form-control + .form-control-feedback {\\n width: 46px;\\n height: 46px;\\n line-height: 46px;\\n}\\n.input-sm + .form-control-feedback,\\n.input-group-sm + .form-control-feedback,\\n.form-group-sm .form-control + .form-control-feedback {\\n width: 30px;\\n height: 30px;\\n line-height: 30px;\\n}\\n.has-success .help-block,\\n.has-success .control-label,\\n.has-success .radio,\\n.has-success .checkbox,\\n.has-success .radio-inline,\\n.has-success .checkbox-inline,\\n.has-success.radio label,\\n.has-success.checkbox label,\\n.has-success.radio-inline label,\\n.has-success.checkbox-inline label {\\n color: #3c763d;\\n}\\n.has-success .form-control {\\n border-color: #3c763d;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n}\\n.has-success .form-control:focus {\\n border-color: #2b542c;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\\n}\\n.has-success .input-group-addon {\\n color: #3c763d;\\n background-color: #dff0d8;\\n border-color: #3c763d;\\n}\\n.has-success .form-control-feedback {\\n color: #3c763d;\\n}\\n.has-warning .help-block,\\n.has-warning .control-label,\\n.has-warning .radio,\\n.has-warning .checkbox,\\n.has-warning .radio-inline,\\n.has-warning .checkbox-inline,\\n.has-warning.radio label,\\n.has-warning.checkbox label,\\n.has-warning.radio-inline label,\\n.has-warning.checkbox-inline label {\\n color: #8a6d3b;\\n}\\n.has-warning .form-control {\\n border-color: #8a6d3b;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n}\\n.has-warning .form-control:focus {\\n border-color: #66512c;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\\n}\\n.has-warning .input-group-addon {\\n color: #8a6d3b;\\n background-color: #fcf8e3;\\n border-color: #8a6d3b;\\n}\\n.has-warning .form-control-feedback {\\n color: #8a6d3b;\\n}\\n.has-error .help-block,\\n.has-error .control-label,\\n.has-error .radio,\\n.has-error .checkbox,\\n.has-error .radio-inline,\\n.has-error .checkbox-inline,\\n.has-error.radio label,\\n.has-error.checkbox label,\\n.has-error.radio-inline label,\\n.has-error.checkbox-inline label {\\n color: #a94442;\\n}\\n.has-error .form-control {\\n border-color: #a94442;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\\n}\\n.has-error .form-control:focus {\\n border-color: #843534;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\\n}\\n.has-error .input-group-addon {\\n color: #a94442;\\n background-color: #f2dede;\\n border-color: #a94442;\\n}\\n.has-error .form-control-feedback {\\n color: #a94442;\\n}\\n.has-feedback label ~ .form-control-feedback {\\n top: 25px;\\n}\\n.has-feedback label.sr-only ~ .form-control-feedback {\\n top: 0;\\n}\\n.help-block {\\n display: block;\\n margin-top: 5px;\\n margin-bottom: 10px;\\n color: #737373;\\n}\\n@media (min-width: 768px) {\\n .form-inline .form-group {\\n display: inline-block;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .form-inline .form-control {\\n display: inline-block;\\n width: auto;\\n vertical-align: middle;\\n }\\n .form-inline .form-control-static {\\n display: inline-block;\\n }\\n .form-inline .input-group {\\n display: inline-table;\\n vertical-align: middle;\\n }\\n .form-inline .input-group .input-group-addon,\\n .form-inline .input-group .input-group-btn,\\n .form-inline .input-group .form-control {\\n width: auto;\\n }\\n .form-inline .input-group > .form-control {\\n width: 100%;\\n }\\n .form-inline .control-label {\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .form-inline .radio,\\n .form-inline .checkbox {\\n display: inline-block;\\n margin-top: 0;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .form-inline .radio label,\\n .form-inline .checkbox label {\\n padding-left: 0;\\n }\\n .form-inline .radio input[type=\\\"radio\\\"],\\n .form-inline .checkbox input[type=\\\"checkbox\\\"] {\\n position: relative;\\n margin-left: 0;\\n }\\n .form-inline .has-feedback .form-control-feedback {\\n top: 0;\\n }\\n}\\n.form-horizontal .radio,\\n.form-horizontal .checkbox,\\n.form-horizontal .radio-inline,\\n.form-horizontal .checkbox-inline {\\n padding-top: 7px;\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.form-horizontal .radio,\\n.form-horizontal .checkbox {\\n min-height: 27px;\\n}\\n.form-horizontal .form-group {\\n margin-right: -15px;\\n margin-left: -15px;\\n}\\n@media (min-width: 768px) {\\n .form-horizontal .control-label {\\n padding-top: 7px;\\n margin-bottom: 0;\\n text-align: right;\\n }\\n}\\n.form-horizontal .has-feedback .form-control-feedback {\\n right: 15px;\\n}\\n@media (min-width: 768px) {\\n .form-horizontal .form-group-lg .control-label {\\n padding-top: 11px;\\n font-size: 18px;\\n }\\n}\\n@media (min-width: 768px) {\\n .form-horizontal .form-group-sm .control-label {\\n padding-top: 6px;\\n font-size: 12px;\\n }\\n}\\n.btn {\\n display: inline-block;\\n padding: 6px 12px;\\n margin-bottom: 0;\\n font-size: 14px;\\n font-weight: normal;\\n line-height: 1.42857143;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n -ms-touch-action: manipulation;\\n touch-action: manipulation;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n background-image: none;\\n border: 1px solid transparent;\\n border-radius: 4px;\\n}\\n.btn:focus,\\n.btn:active:focus,\\n.btn.active:focus,\\n.btn.focus,\\n.btn:active.focus,\\n.btn.active.focus {\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: -2px;\\n}\\n.btn:hover,\\n.btn:focus,\\n.btn.focus {\\n color: #333;\\n text-decoration: none;\\n}\\n.btn:active,\\n.btn.active {\\n background-image: none;\\n outline: 0;\\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\\n}\\n.btn.disabled,\\n.btn[disabled],\\nfieldset[disabled] .btn {\\n cursor: not-allowed;\\n filter: alpha(opacity=65);\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n opacity: .65;\\n}\\na.btn.disabled,\\nfieldset[disabled] a.btn {\\n pointer-events: none;\\n}\\n.btn-default {\\n color: #333;\\n background-color: #fff;\\n border-color: #ccc;\\n}\\n.btn-default:focus,\\n.btn-default.focus {\\n color: #333;\\n background-color: #e6e6e6;\\n border-color: #8c8c8c;\\n}\\n.btn-default:hover {\\n color: #333;\\n background-color: #e6e6e6;\\n border-color: #adadad;\\n}\\n.btn-default:active,\\n.btn-default.active,\\n.open > .dropdown-toggle.btn-default {\\n color: #333;\\n background-color: #e6e6e6;\\n border-color: #adadad;\\n}\\n.btn-default:active:hover,\\n.btn-default.active:hover,\\n.open > .dropdown-toggle.btn-default:hover,\\n.btn-default:active:focus,\\n.btn-default.active:focus,\\n.open > .dropdown-toggle.btn-default:focus,\\n.btn-default:active.focus,\\n.btn-default.active.focus,\\n.open > .dropdown-toggle.btn-default.focus {\\n color: #333;\\n background-color: #d4d4d4;\\n border-color: #8c8c8c;\\n}\\n.btn-default:active,\\n.btn-default.active,\\n.open > .dropdown-toggle.btn-default {\\n background-image: none;\\n}\\n.btn-default.disabled:hover,\\n.btn-default[disabled]:hover,\\nfieldset[disabled] .btn-default:hover,\\n.btn-default.disabled:focus,\\n.btn-default[disabled]:focus,\\nfieldset[disabled] .btn-default:focus,\\n.btn-default.disabled.focus,\\n.btn-default[disabled].focus,\\nfieldset[disabled] .btn-default.focus {\\n background-color: #fff;\\n border-color: #ccc;\\n}\\n.btn-default .badge {\\n color: #fff;\\n background-color: #333;\\n}\\n.btn-primary {\\n color: #fff;\\n background-color: #337ab7;\\n border-color: #2e6da4;\\n}\\n.btn-primary:focus,\\n.btn-primary.focus {\\n color: #fff;\\n background-color: #286090;\\n border-color: #122b40;\\n}\\n.btn-primary:hover {\\n color: #fff;\\n background-color: #286090;\\n border-color: #204d74;\\n}\\n.btn-primary:active,\\n.btn-primary.active,\\n.open > .dropdown-toggle.btn-primary {\\n color: #fff;\\n background-color: #286090;\\n border-color: #204d74;\\n}\\n.btn-primary:active:hover,\\n.btn-primary.active:hover,\\n.open > .dropdown-toggle.btn-primary:hover,\\n.btn-primary:active:focus,\\n.btn-primary.active:focus,\\n.open > .dropdown-toggle.btn-primary:focus,\\n.btn-primary:active.focus,\\n.btn-primary.active.focus,\\n.open > .dropdown-toggle.btn-primary.focus {\\n color: #fff;\\n background-color: #204d74;\\n border-color: #122b40;\\n}\\n.btn-primary:active,\\n.btn-primary.active,\\n.open > .dropdown-toggle.btn-primary {\\n background-image: none;\\n}\\n.btn-primary.disabled:hover,\\n.btn-primary[disabled]:hover,\\nfieldset[disabled] .btn-primary:hover,\\n.btn-primary.disabled:focus,\\n.btn-primary[disabled]:focus,\\nfieldset[disabled] .btn-primary:focus,\\n.btn-primary.disabled.focus,\\n.btn-primary[disabled].focus,\\nfieldset[disabled] .btn-primary.focus {\\n background-color: #337ab7;\\n border-color: #2e6da4;\\n}\\n.btn-primary .badge {\\n color: #337ab7;\\n background-color: #fff;\\n}\\n.btn-success {\\n color: #fff;\\n background-color: #5cb85c;\\n border-color: #4cae4c;\\n}\\n.btn-success:focus,\\n.btn-success.focus {\\n color: #fff;\\n background-color: #449d44;\\n border-color: #255625;\\n}\\n.btn-success:hover {\\n color: #fff;\\n background-color: #449d44;\\n border-color: #398439;\\n}\\n.btn-success:active,\\n.btn-success.active,\\n.open > .dropdown-toggle.btn-success {\\n color: #fff;\\n background-color: #449d44;\\n border-color: #398439;\\n}\\n.btn-success:active:hover,\\n.btn-success.active:hover,\\n.open > .dropdown-toggle.btn-success:hover,\\n.btn-success:active:focus,\\n.btn-success.active:focus,\\n.open > .dropdown-toggle.btn-success:focus,\\n.btn-success:active.focus,\\n.btn-success.active.focus,\\n.open > .dropdown-toggle.btn-success.focus {\\n color: #fff;\\n background-color: #398439;\\n border-color: #255625;\\n}\\n.btn-success:active,\\n.btn-success.active,\\n.open > .dropdown-toggle.btn-success {\\n background-image: none;\\n}\\n.btn-success.disabled:hover,\\n.btn-success[disabled]:hover,\\nfieldset[disabled] .btn-success:hover,\\n.btn-success.disabled:focus,\\n.btn-success[disabled]:focus,\\nfieldset[disabled] .btn-success:focus,\\n.btn-success.disabled.focus,\\n.btn-success[disabled].focus,\\nfieldset[disabled] .btn-success.focus {\\n background-color: #5cb85c;\\n border-color: #4cae4c;\\n}\\n.btn-success .badge {\\n color: #5cb85c;\\n background-color: #fff;\\n}\\n.btn-info {\\n color: #fff;\\n background-color: #5bc0de;\\n border-color: #46b8da;\\n}\\n.btn-info:focus,\\n.btn-info.focus {\\n color: #fff;\\n background-color: #31b0d5;\\n border-color: #1b6d85;\\n}\\n.btn-info:hover {\\n color: #fff;\\n background-color: #31b0d5;\\n border-color: #269abc;\\n}\\n.btn-info:active,\\n.btn-info.active,\\n.open > .dropdown-toggle.btn-info {\\n color: #fff;\\n background-color: #31b0d5;\\n border-color: #269abc;\\n}\\n.btn-info:active:hover,\\n.btn-info.active:hover,\\n.open > .dropdown-toggle.btn-info:hover,\\n.btn-info:active:focus,\\n.btn-info.active:focus,\\n.open > .dropdown-toggle.btn-info:focus,\\n.btn-info:active.focus,\\n.btn-info.active.focus,\\n.open > .dropdown-toggle.btn-info.focus {\\n color: #fff;\\n background-color: #269abc;\\n border-color: #1b6d85;\\n}\\n.btn-info:active,\\n.btn-info.active,\\n.open > .dropdown-toggle.btn-info {\\n background-image: none;\\n}\\n.btn-info.disabled:hover,\\n.btn-info[disabled]:hover,\\nfieldset[disabled] .btn-info:hover,\\n.btn-info.disabled:focus,\\n.btn-info[disabled]:focus,\\nfieldset[disabled] .btn-info:focus,\\n.btn-info.disabled.focus,\\n.btn-info[disabled].focus,\\nfieldset[disabled] .btn-info.focus {\\n background-color: #5bc0de;\\n border-color: #46b8da;\\n}\\n.btn-info .badge {\\n color: #5bc0de;\\n background-color: #fff;\\n}\\n.btn-warning {\\n color: #fff;\\n background-color: #f0ad4e;\\n border-color: #eea236;\\n}\\n.btn-warning:focus,\\n.btn-warning.focus {\\n color: #fff;\\n background-color: #ec971f;\\n border-color: #985f0d;\\n}\\n.btn-warning:hover {\\n color: #fff;\\n background-color: #ec971f;\\n border-color: #d58512;\\n}\\n.btn-warning:active,\\n.btn-warning.active,\\n.open > .dropdown-toggle.btn-warning {\\n color: #fff;\\n background-color: #ec971f;\\n border-color: #d58512;\\n}\\n.btn-warning:active:hover,\\n.btn-warning.active:hover,\\n.open > .dropdown-toggle.btn-warning:hover,\\n.btn-warning:active:focus,\\n.btn-warning.active:focus,\\n.open > .dropdown-toggle.btn-warning:focus,\\n.btn-warning:active.focus,\\n.btn-warning.active.focus,\\n.open > .dropdown-toggle.btn-warning.focus {\\n color: #fff;\\n background-color: #d58512;\\n border-color: #985f0d;\\n}\\n.btn-warning:active,\\n.btn-warning.active,\\n.open > .dropdown-toggle.btn-warning {\\n background-image: none;\\n}\\n.btn-warning.disabled:hover,\\n.btn-warning[disabled]:hover,\\nfieldset[disabled] .btn-warning:hover,\\n.btn-warning.disabled:focus,\\n.btn-warning[disabled]:focus,\\nfieldset[disabled] .btn-warning:focus,\\n.btn-warning.disabled.focus,\\n.btn-warning[disabled].focus,\\nfieldset[disabled] .btn-warning.focus {\\n background-color: #f0ad4e;\\n border-color: #eea236;\\n}\\n.btn-warning .badge {\\n color: #f0ad4e;\\n background-color: #fff;\\n}\\n.btn-danger {\\n color: #fff;\\n background-color: #d9534f;\\n border-color: #d43f3a;\\n}\\n.btn-danger:focus,\\n.btn-danger.focus {\\n color: #fff;\\n background-color: #c9302c;\\n border-color: #761c19;\\n}\\n.btn-danger:hover {\\n color: #fff;\\n background-color: #c9302c;\\n border-color: #ac2925;\\n}\\n.btn-danger:active,\\n.btn-danger.active,\\n.open > .dropdown-toggle.btn-danger {\\n color: #fff;\\n background-color: #c9302c;\\n border-color: #ac2925;\\n}\\n.btn-danger:active:hover,\\n.btn-danger.active:hover,\\n.open > .dropdown-toggle.btn-danger:hover,\\n.btn-danger:active:focus,\\n.btn-danger.active:focus,\\n.open > .dropdown-toggle.btn-danger:focus,\\n.btn-danger:active.focus,\\n.btn-danger.active.focus,\\n.open > .dropdown-toggle.btn-danger.focus {\\n color: #fff;\\n background-color: #ac2925;\\n border-color: #761c19;\\n}\\n.btn-danger:active,\\n.btn-danger.active,\\n.open > .dropdown-toggle.btn-danger {\\n background-image: none;\\n}\\n.btn-danger.disabled:hover,\\n.btn-danger[disabled]:hover,\\nfieldset[disabled] .btn-danger:hover,\\n.btn-danger.disabled:focus,\\n.btn-danger[disabled]:focus,\\nfieldset[disabled] .btn-danger:focus,\\n.btn-danger.disabled.focus,\\n.btn-danger[disabled].focus,\\nfieldset[disabled] .btn-danger.focus {\\n background-color: #d9534f;\\n border-color: #d43f3a;\\n}\\n.btn-danger .badge {\\n color: #d9534f;\\n background-color: #fff;\\n}\\n.btn-link {\\n font-weight: normal;\\n color: #337ab7;\\n border-radius: 0;\\n}\\n.btn-link,\\n.btn-link:active,\\n.btn-link.active,\\n.btn-link[disabled],\\nfieldset[disabled] .btn-link {\\n background-color: transparent;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.btn-link,\\n.btn-link:hover,\\n.btn-link:focus,\\n.btn-link:active {\\n border-color: transparent;\\n}\\n.btn-link:hover,\\n.btn-link:focus {\\n color: #23527c;\\n text-decoration: underline;\\n background-color: transparent;\\n}\\n.btn-link[disabled]:hover,\\nfieldset[disabled] .btn-link:hover,\\n.btn-link[disabled]:focus,\\nfieldset[disabled] .btn-link:focus {\\n color: #777;\\n text-decoration: none;\\n}\\n.btn-lg,\\n.btn-group-lg > .btn {\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\n.btn-sm,\\n.btn-group-sm > .btn {\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\n.btn-xs,\\n.btn-group-xs > .btn {\\n padding: 1px 5px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\n.btn-block {\\n display: block;\\n width: 100%;\\n}\\n.btn-block + .btn-block {\\n margin-top: 5px;\\n}\\ninput[type=\\\"submit\\\"].btn-block,\\ninput[type=\\\"reset\\\"].btn-block,\\ninput[type=\\\"button\\\"].btn-block {\\n width: 100%;\\n}\\n.fade {\\n opacity: 0;\\n -webkit-transition: opacity .15s linear;\\n -o-transition: opacity .15s linear;\\n transition: opacity .15s linear;\\n}\\n.fade.in {\\n opacity: 1;\\n}\\n.collapse {\\n display: none;\\n}\\n.collapse.in {\\n display: block;\\n}\\ntr.collapse.in {\\n display: table-row;\\n}\\ntbody.collapse.in {\\n display: table-row-group;\\n}\\n.collapsing {\\n position: relative;\\n height: 0;\\n overflow: hidden;\\n -webkit-transition-timing-function: ease;\\n -o-transition-timing-function: ease;\\n transition-timing-function: ease;\\n -webkit-transition-duration: .35s;\\n -o-transition-duration: .35s;\\n transition-duration: .35s;\\n -webkit-transition-property: height, visibility;\\n -o-transition-property: height, visibility;\\n transition-property: height, visibility;\\n}\\n.caret {\\n display: inline-block;\\n width: 0;\\n height: 0;\\n margin-left: 2px;\\n vertical-align: middle;\\n border-top: 4px dashed;\\n border-top: 4px solid \\\\9;\\n border-right: 4px solid transparent;\\n border-left: 4px solid transparent;\\n}\\n.dropup,\\n.dropdown {\\n position: relative;\\n}\\n.dropdown-toggle:focus {\\n outline: 0;\\n}\\n.dropdown-menu {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 1000;\\n display: none;\\n float: left;\\n min-width: 160px;\\n padding: 5px 0;\\n margin: 2px 0 0;\\n font-size: 14px;\\n text-align: left;\\n list-style: none;\\n background-color: #fff;\\n -webkit-background-clip: padding-box;\\n background-clip: padding-box;\\n border: 1px solid #ccc;\\n border: 1px solid rgba(0, 0, 0, .15);\\n border-radius: 4px;\\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\\n box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\\n}\\n.dropdown-menu.pull-right {\\n right: 0;\\n left: auto;\\n}\\n.dropdown-menu .divider {\\n height: 1px;\\n margin: 9px 0;\\n overflow: hidden;\\n background-color: #e5e5e5;\\n}\\n.dropdown-menu > li > a {\\n display: block;\\n padding: 3px 20px;\\n clear: both;\\n font-weight: normal;\\n line-height: 1.42857143;\\n color: #333;\\n white-space: nowrap;\\n}\\n.dropdown-menu > li > a:hover,\\n.dropdown-menu > li > a:focus {\\n color: #262626;\\n text-decoration: none;\\n background-color: #f5f5f5;\\n}\\n.dropdown-menu > .active > a,\\n.dropdown-menu > .active > a:hover,\\n.dropdown-menu > .active > a:focus {\\n color: #fff;\\n text-decoration: none;\\n background-color: #337ab7;\\n outline: 0;\\n}\\n.dropdown-menu > .disabled > a,\\n.dropdown-menu > .disabled > a:hover,\\n.dropdown-menu > .disabled > a:focus {\\n color: #777;\\n}\\n.dropdown-menu > .disabled > a:hover,\\n.dropdown-menu > .disabled > a:focus {\\n text-decoration: none;\\n cursor: not-allowed;\\n background-color: transparent;\\n background-image: none;\\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\\n}\\n.open > .dropdown-menu {\\n display: block;\\n}\\n.open > a {\\n outline: 0;\\n}\\n.dropdown-menu-right {\\n right: 0;\\n left: auto;\\n}\\n.dropdown-menu-left {\\n right: auto;\\n left: 0;\\n}\\n.dropdown-header {\\n display: block;\\n padding: 3px 20px;\\n font-size: 12px;\\n line-height: 1.42857143;\\n color: #777;\\n white-space: nowrap;\\n}\\n.dropdown-backdrop {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 990;\\n}\\n.pull-right > .dropdown-menu {\\n right: 0;\\n left: auto;\\n}\\n.dropup .caret,\\n.navbar-fixed-bottom .dropdown .caret {\\n content: \\\"\\\";\\n border-top: 0;\\n border-bottom: 4px dashed;\\n border-bottom: 4px solid \\\\9;\\n}\\n.dropup .dropdown-menu,\\n.navbar-fixed-bottom .dropdown .dropdown-menu {\\n top: auto;\\n bottom: 100%;\\n margin-bottom: 2px;\\n}\\n@media (min-width: 768px) {\\n .navbar-right .dropdown-menu {\\n right: 0;\\n left: auto;\\n }\\n .navbar-right .dropdown-menu-left {\\n right: auto;\\n left: 0;\\n }\\n}\\n.btn-group,\\n.btn-group-vertical {\\n position: relative;\\n display: inline-block;\\n vertical-align: middle;\\n}\\n.btn-group > .btn,\\n.btn-group-vertical > .btn {\\n position: relative;\\n float: left;\\n}\\n.btn-group > .btn:hover,\\n.btn-group-vertical > .btn:hover,\\n.btn-group > .btn:focus,\\n.btn-group-vertical > .btn:focus,\\n.btn-group > .btn:active,\\n.btn-group-vertical > .btn:active,\\n.btn-group > .btn.active,\\n.btn-group-vertical > .btn.active {\\n z-index: 2;\\n}\\n.btn-group .btn + .btn,\\n.btn-group .btn + .btn-group,\\n.btn-group .btn-group + .btn,\\n.btn-group .btn-group + .btn-group {\\n margin-left: -1px;\\n}\\n.btn-toolbar {\\n margin-left: -5px;\\n}\\n.btn-toolbar .btn,\\n.btn-toolbar .btn-group,\\n.btn-toolbar .input-group {\\n float: left;\\n}\\n.btn-toolbar > .btn,\\n.btn-toolbar > .btn-group,\\n.btn-toolbar > .input-group {\\n margin-left: 5px;\\n}\\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\\n border-radius: 0;\\n}\\n.btn-group > .btn:first-child {\\n margin-left: 0;\\n}\\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n.btn-group > .btn:last-child:not(:first-child),\\n.btn-group > .dropdown-toggle:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.btn-group > .btn-group {\\n float: left;\\n}\\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\\n border-radius: 0;\\n}\\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.btn-group .dropdown-toggle:active,\\n.btn-group.open .dropdown-toggle {\\n outline: 0;\\n}\\n.btn-group > .btn + .dropdown-toggle {\\n padding-right: 8px;\\n padding-left: 8px;\\n}\\n.btn-group > .btn-lg + .dropdown-toggle {\\n padding-right: 12px;\\n padding-left: 12px;\\n}\\n.btn-group.open .dropdown-toggle {\\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\\n}\\n.btn-group.open .dropdown-toggle.btn-link {\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.btn .caret {\\n margin-left: 0;\\n}\\n.btn-lg .caret {\\n border-width: 5px 5px 0;\\n border-bottom-width: 0;\\n}\\n.dropup .btn-lg .caret {\\n border-width: 0 5px 5px;\\n}\\n.btn-group-vertical > .btn,\\n.btn-group-vertical > .btn-group,\\n.btn-group-vertical > .btn-group > .btn {\\n display: block;\\n float: none;\\n width: 100%;\\n max-width: 100%;\\n}\\n.btn-group-vertical > .btn-group > .btn {\\n float: none;\\n}\\n.btn-group-vertical > .btn + .btn,\\n.btn-group-vertical > .btn + .btn-group,\\n.btn-group-vertical > .btn-group + .btn,\\n.btn-group-vertical > .btn-group + .btn-group {\\n margin-top: -1px;\\n margin-left: 0;\\n}\\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\\n border-radius: 0;\\n}\\n.btn-group-vertical > .btn:first-child:not(:last-child) {\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.btn-group-vertical > .btn:last-child:not(:first-child) {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\\n border-radius: 0;\\n}\\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n}\\n.btn-group-justified {\\n display: table;\\n width: 100%;\\n table-layout: fixed;\\n border-collapse: separate;\\n}\\n.btn-group-justified > .btn,\\n.btn-group-justified > .btn-group {\\n display: table-cell;\\n float: none;\\n width: 1%;\\n}\\n.btn-group-justified > .btn-group .btn {\\n width: 100%;\\n}\\n.btn-group-justified > .btn-group .dropdown-menu {\\n left: auto;\\n}\\n[data-toggle=\\\"buttons\\\"] > .btn input[type=\\\"radio\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn-group > .btn input[type=\\\"radio\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn input[type=\\\"checkbox\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn-group > .btn input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n clip: rect(0, 0, 0, 0);\\n pointer-events: none;\\n}\\n.input-group {\\n position: relative;\\n display: table;\\n border-collapse: separate;\\n}\\n.input-group[class*=\\\"col-\\\"] {\\n float: none;\\n padding-right: 0;\\n padding-left: 0;\\n}\\n.input-group .form-control {\\n position: relative;\\n z-index: 2;\\n float: left;\\n width: 100%;\\n margin-bottom: 0;\\n}\\n.input-group .form-control:focus {\\n z-index: 3;\\n}\\n.input-group-lg > .form-control,\\n.input-group-lg > .input-group-addon,\\n.input-group-lg > .input-group-btn > .btn {\\n height: 46px;\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\nselect.input-group-lg > .form-control,\\nselect.input-group-lg > .input-group-addon,\\nselect.input-group-lg > .input-group-btn > .btn {\\n height: 46px;\\n line-height: 46px;\\n}\\ntextarea.input-group-lg > .form-control,\\ntextarea.input-group-lg > .input-group-addon,\\ntextarea.input-group-lg > .input-group-btn > .btn,\\nselect[multiple].input-group-lg > .form-control,\\nselect[multiple].input-group-lg > .input-group-addon,\\nselect[multiple].input-group-lg > .input-group-btn > .btn {\\n height: auto;\\n}\\n.input-group-sm > .form-control,\\n.input-group-sm > .input-group-addon,\\n.input-group-sm > .input-group-btn > .btn {\\n height: 30px;\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\nselect.input-group-sm > .form-control,\\nselect.input-group-sm > .input-group-addon,\\nselect.input-group-sm > .input-group-btn > .btn {\\n height: 30px;\\n line-height: 30px;\\n}\\ntextarea.input-group-sm > .form-control,\\ntextarea.input-group-sm > .input-group-addon,\\ntextarea.input-group-sm > .input-group-btn > .btn,\\nselect[multiple].input-group-sm > .form-control,\\nselect[multiple].input-group-sm > .input-group-addon,\\nselect[multiple].input-group-sm > .input-group-btn > .btn {\\n height: auto;\\n}\\n.input-group-addon,\\n.input-group-btn,\\n.input-group .form-control {\\n display: table-cell;\\n}\\n.input-group-addon:not(:first-child):not(:last-child),\\n.input-group-btn:not(:first-child):not(:last-child),\\n.input-group .form-control:not(:first-child):not(:last-child) {\\n border-radius: 0;\\n}\\n.input-group-addon,\\n.input-group-btn {\\n width: 1%;\\n white-space: nowrap;\\n vertical-align: middle;\\n}\\n.input-group-addon {\\n padding: 6px 12px;\\n font-size: 14px;\\n font-weight: normal;\\n line-height: 1;\\n color: #555;\\n text-align: center;\\n background-color: #eee;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n}\\n.input-group-addon.input-sm {\\n padding: 5px 10px;\\n font-size: 12px;\\n border-radius: 3px;\\n}\\n.input-group-addon.input-lg {\\n padding: 10px 16px;\\n font-size: 18px;\\n border-radius: 6px;\\n}\\n.input-group-addon input[type=\\\"radio\\\"],\\n.input-group-addon input[type=\\\"checkbox\\\"] {\\n margin-top: 0;\\n}\\n.input-group .form-control:first-child,\\n.input-group-addon:first-child,\\n.input-group-btn:first-child > .btn,\\n.input-group-btn:first-child > .btn-group > .btn,\\n.input-group-btn:first-child > .dropdown-toggle,\\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n.input-group-addon:first-child {\\n border-right: 0;\\n}\\n.input-group .form-control:last-child,\\n.input-group-addon:last-child,\\n.input-group-btn:last-child > .btn,\\n.input-group-btn:last-child > .btn-group > .btn,\\n.input-group-btn:last-child > .dropdown-toggle,\\n.input-group-btn:first-child > .btn:not(:first-child),\\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.input-group-addon:last-child {\\n border-left: 0;\\n}\\n.input-group-btn {\\n position: relative;\\n font-size: 0;\\n white-space: nowrap;\\n}\\n.input-group-btn > .btn {\\n position: relative;\\n}\\n.input-group-btn > .btn + .btn {\\n margin-left: -1px;\\n}\\n.input-group-btn > .btn:hover,\\n.input-group-btn > .btn:focus,\\n.input-group-btn > .btn:active {\\n z-index: 2;\\n}\\n.input-group-btn:first-child > .btn,\\n.input-group-btn:first-child > .btn-group {\\n margin-right: -1px;\\n}\\n.input-group-btn:last-child > .btn,\\n.input-group-btn:last-child > .btn-group {\\n z-index: 2;\\n margin-left: -1px;\\n}\\n.nav {\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none;\\n}\\n.nav > li {\\n position: relative;\\n display: block;\\n}\\n.nav > li > a {\\n position: relative;\\n display: block;\\n padding: 10px 15px;\\n}\\n.nav > li > a:hover,\\n.nav > li > a:focus {\\n text-decoration: none;\\n background-color: #eee;\\n}\\n.nav > li.disabled > a {\\n color: #777;\\n}\\n.nav > li.disabled > a:hover,\\n.nav > li.disabled > a:focus {\\n color: #777;\\n text-decoration: none;\\n cursor: not-allowed;\\n background-color: transparent;\\n}\\n.nav .open > a,\\n.nav .open > a:hover,\\n.nav .open > a:focus {\\n background-color: #eee;\\n border-color: #337ab7;\\n}\\n.nav .nav-divider {\\n height: 1px;\\n margin: 9px 0;\\n overflow: hidden;\\n background-color: #e5e5e5;\\n}\\n.nav > li > a > img {\\n max-width: none;\\n}\\n.nav-tabs {\\n border-bottom: 1px solid #ddd;\\n}\\n.nav-tabs > li {\\n float: left;\\n margin-bottom: -1px;\\n}\\n.nav-tabs > li > a {\\n margin-right: 2px;\\n line-height: 1.42857143;\\n border: 1px solid transparent;\\n border-radius: 4px 4px 0 0;\\n}\\n.nav-tabs > li > a:hover {\\n border-color: #eee #eee #ddd;\\n}\\n.nav-tabs > li.active > a,\\n.nav-tabs > li.active > a:hover,\\n.nav-tabs > li.active > a:focus {\\n color: #555;\\n cursor: default;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-bottom-color: transparent;\\n}\\n.nav-tabs.nav-justified {\\n width: 100%;\\n border-bottom: 0;\\n}\\n.nav-tabs.nav-justified > li {\\n float: none;\\n}\\n.nav-tabs.nav-justified > li > a {\\n margin-bottom: 5px;\\n text-align: center;\\n}\\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\\n top: auto;\\n left: auto;\\n}\\n@media (min-width: 768px) {\\n .nav-tabs.nav-justified > li {\\n display: table-cell;\\n width: 1%;\\n }\\n .nav-tabs.nav-justified > li > a {\\n margin-bottom: 0;\\n }\\n}\\n.nav-tabs.nav-justified > li > a {\\n margin-right: 0;\\n border-radius: 4px;\\n}\\n.nav-tabs.nav-justified > .active > a,\\n.nav-tabs.nav-justified > .active > a:hover,\\n.nav-tabs.nav-justified > .active > a:focus {\\n border: 1px solid #ddd;\\n}\\n@media (min-width: 768px) {\\n .nav-tabs.nav-justified > li > a {\\n border-bottom: 1px solid #ddd;\\n border-radius: 4px 4px 0 0;\\n }\\n .nav-tabs.nav-justified > .active > a,\\n .nav-tabs.nav-justified > .active > a:hover,\\n .nav-tabs.nav-justified > .active > a:focus {\\n border-bottom-color: #fff;\\n }\\n}\\n.nav-pills > li {\\n float: left;\\n}\\n.nav-pills > li > a {\\n border-radius: 4px;\\n}\\n.nav-pills > li + li {\\n margin-left: 2px;\\n}\\n.nav-pills > li.active > a,\\n.nav-pills > li.active > a:hover,\\n.nav-pills > li.active > a:focus {\\n color: #fff;\\n background-color: #337ab7;\\n}\\n.nav-stacked > li {\\n float: none;\\n}\\n.nav-stacked > li + li {\\n margin-top: 2px;\\n margin-left: 0;\\n}\\n.nav-justified {\\n width: 100%;\\n}\\n.nav-justified > li {\\n float: none;\\n}\\n.nav-justified > li > a {\\n margin-bottom: 5px;\\n text-align: center;\\n}\\n.nav-justified > .dropdown .dropdown-menu {\\n top: auto;\\n left: auto;\\n}\\n@media (min-width: 768px) {\\n .nav-justified > li {\\n display: table-cell;\\n width: 1%;\\n }\\n .nav-justified > li > a {\\n margin-bottom: 0;\\n }\\n}\\n.nav-tabs-justified {\\n border-bottom: 0;\\n}\\n.nav-tabs-justified > li > a {\\n margin-right: 0;\\n border-radius: 4px;\\n}\\n.nav-tabs-justified > .active > a,\\n.nav-tabs-justified > .active > a:hover,\\n.nav-tabs-justified > .active > a:focus {\\n border: 1px solid #ddd;\\n}\\n@media (min-width: 768px) {\\n .nav-tabs-justified > li > a {\\n border-bottom: 1px solid #ddd;\\n border-radius: 4px 4px 0 0;\\n }\\n .nav-tabs-justified > .active > a,\\n .nav-tabs-justified > .active > a:hover,\\n .nav-tabs-justified > .active > a:focus {\\n border-bottom-color: #fff;\\n }\\n}\\n.tab-content > .tab-pane {\\n display: none;\\n}\\n.tab-content > .active {\\n display: block;\\n}\\n.nav-tabs .dropdown-menu {\\n margin-top: -1px;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n}\\n.navbar {\\n position: relative;\\n min-height: 50px;\\n margin-bottom: 20px;\\n border: 1px solid transparent;\\n}\\n@media (min-width: 768px) {\\n .navbar {\\n border-radius: 4px;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-header {\\n float: left;\\n }\\n}\\n.navbar-collapse {\\n padding-right: 15px;\\n padding-left: 15px;\\n overflow-x: visible;\\n -webkit-overflow-scrolling: touch;\\n border-top: 1px solid transparent;\\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\\n}\\n.navbar-collapse.in {\\n overflow-y: auto;\\n}\\n@media (min-width: 768px) {\\n .navbar-collapse {\\n width: auto;\\n border-top: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n }\\n .navbar-collapse.collapse {\\n display: block !important;\\n height: auto !important;\\n padding-bottom: 0;\\n overflow: visible !important;\\n }\\n .navbar-collapse.in {\\n overflow-y: visible;\\n }\\n .navbar-fixed-top .navbar-collapse,\\n .navbar-static-top .navbar-collapse,\\n .navbar-fixed-bottom .navbar-collapse {\\n padding-right: 0;\\n padding-left: 0;\\n }\\n}\\n.navbar-fixed-top .navbar-collapse,\\n.navbar-fixed-bottom .navbar-collapse {\\n max-height: 340px;\\n}\\n@media (max-device-width: 480px) and (orientation: landscape) {\\n .navbar-fixed-top .navbar-collapse,\\n .navbar-fixed-bottom .navbar-collapse {\\n max-height: 200px;\\n }\\n}\\n.container > .navbar-header,\\n.container-fluid > .navbar-header,\\n.container > .navbar-collapse,\\n.container-fluid > .navbar-collapse {\\n margin-right: -15px;\\n margin-left: -15px;\\n}\\n@media (min-width: 768px) {\\n .container > .navbar-header,\\n .container-fluid > .navbar-header,\\n .container > .navbar-collapse,\\n .container-fluid > .navbar-collapse {\\n margin-right: 0;\\n margin-left: 0;\\n }\\n}\\n.navbar-static-top {\\n z-index: 1000;\\n border-width: 0 0 1px;\\n}\\n@media (min-width: 768px) {\\n .navbar-static-top {\\n border-radius: 0;\\n }\\n}\\n.navbar-fixed-top,\\n.navbar-fixed-bottom {\\n position: fixed;\\n right: 0;\\n left: 0;\\n z-index: 1030;\\n}\\n@media (min-width: 768px) {\\n .navbar-fixed-top,\\n .navbar-fixed-bottom {\\n border-radius: 0;\\n }\\n}\\n.navbar-fixed-top {\\n top: 0;\\n border-width: 0 0 1px;\\n}\\n.navbar-fixed-bottom {\\n bottom: 0;\\n margin-bottom: 0;\\n border-width: 1px 0 0;\\n}\\n.navbar-brand {\\n float: left;\\n height: 50px;\\n padding: 15px 15px;\\n font-size: 18px;\\n line-height: 20px;\\n}\\n.navbar-brand:hover,\\n.navbar-brand:focus {\\n text-decoration: none;\\n}\\n.navbar-brand > img {\\n display: block;\\n}\\n@media (min-width: 768px) {\\n .navbar > .container .navbar-brand,\\n .navbar > .container-fluid .navbar-brand {\\n margin-left: -15px;\\n }\\n}\\n.navbar-toggle {\\n position: relative;\\n float: right;\\n padding: 9px 10px;\\n margin-top: 8px;\\n margin-right: 15px;\\n margin-bottom: 8px;\\n background-color: transparent;\\n background-image: none;\\n border: 1px solid transparent;\\n border-radius: 4px;\\n}\\n.navbar-toggle:focus {\\n outline: 0;\\n}\\n.navbar-toggle .icon-bar {\\n display: block;\\n width: 22px;\\n height: 2px;\\n border-radius: 1px;\\n}\\n.navbar-toggle .icon-bar + .icon-bar {\\n margin-top: 4px;\\n}\\n@media (min-width: 768px) {\\n .navbar-toggle {\\n display: none;\\n }\\n}\\n.navbar-nav {\\n margin: 7.5px -15px;\\n}\\n.navbar-nav > li > a {\\n padding-top: 10px;\\n padding-bottom: 10px;\\n line-height: 20px;\\n}\\n@media (max-width: 767px) {\\n .navbar-nav .open .dropdown-menu {\\n position: static;\\n float: none;\\n width: auto;\\n margin-top: 0;\\n background-color: transparent;\\n border: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n }\\n .navbar-nav .open .dropdown-menu > li > a,\\n .navbar-nav .open .dropdown-menu .dropdown-header {\\n padding: 5px 15px 5px 25px;\\n }\\n .navbar-nav .open .dropdown-menu > li > a {\\n line-height: 20px;\\n }\\n .navbar-nav .open .dropdown-menu > li > a:hover,\\n .navbar-nav .open .dropdown-menu > li > a:focus {\\n background-image: none;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-nav {\\n float: left;\\n margin: 0;\\n }\\n .navbar-nav > li {\\n float: left;\\n }\\n .navbar-nav > li > a {\\n padding-top: 15px;\\n padding-bottom: 15px;\\n }\\n}\\n.navbar-form {\\n padding: 10px 15px;\\n margin-top: 8px;\\n margin-right: -15px;\\n margin-bottom: 8px;\\n margin-left: -15px;\\n border-top: 1px solid transparent;\\n border-bottom: 1px solid transparent;\\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\\n}\\n@media (min-width: 768px) {\\n .navbar-form .form-group {\\n display: inline-block;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .navbar-form .form-control {\\n display: inline-block;\\n width: auto;\\n vertical-align: middle;\\n }\\n .navbar-form .form-control-static {\\n display: inline-block;\\n }\\n .navbar-form .input-group {\\n display: inline-table;\\n vertical-align: middle;\\n }\\n .navbar-form .input-group .input-group-addon,\\n .navbar-form .input-group .input-group-btn,\\n .navbar-form .input-group .form-control {\\n width: auto;\\n }\\n .navbar-form .input-group > .form-control {\\n width: 100%;\\n }\\n .navbar-form .control-label {\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .navbar-form .radio,\\n .navbar-form .checkbox {\\n display: inline-block;\\n margin-top: 0;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .navbar-form .radio label,\\n .navbar-form .checkbox label {\\n padding-left: 0;\\n }\\n .navbar-form .radio input[type=\\\"radio\\\"],\\n .navbar-form .checkbox input[type=\\\"checkbox\\\"] {\\n position: relative;\\n margin-left: 0;\\n }\\n .navbar-form .has-feedback .form-control-feedback {\\n top: 0;\\n }\\n}\\n@media (max-width: 767px) {\\n .navbar-form .form-group {\\n margin-bottom: 5px;\\n }\\n .navbar-form .form-group:last-child {\\n margin-bottom: 0;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-form {\\n width: auto;\\n padding-top: 0;\\n padding-bottom: 0;\\n margin-right: 0;\\n margin-left: 0;\\n border: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n }\\n}\\n.navbar-nav > li > .dropdown-menu {\\n margin-top: 0;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n}\\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\\n margin-bottom: 0;\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.navbar-btn {\\n margin-top: 8px;\\n margin-bottom: 8px;\\n}\\n.navbar-btn.btn-sm {\\n margin-top: 10px;\\n margin-bottom: 10px;\\n}\\n.navbar-btn.btn-xs {\\n margin-top: 14px;\\n margin-bottom: 14px;\\n}\\n.navbar-text {\\n margin-top: 15px;\\n margin-bottom: 15px;\\n}\\n@media (min-width: 768px) {\\n .navbar-text {\\n float: left;\\n margin-right: 15px;\\n margin-left: 15px;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-left {\\n float: left !important;\\n }\\n .navbar-right {\\n float: right !important;\\n margin-right: -15px;\\n }\\n .navbar-right ~ .navbar-right {\\n margin-right: 0;\\n }\\n}\\n.navbar-default {\\n background-color: #f8f8f8;\\n border-color: #e7e7e7;\\n}\\n.navbar-default .navbar-brand {\\n color: #777;\\n}\\n.navbar-default .navbar-brand:hover,\\n.navbar-default .navbar-brand:focus {\\n color: #5e5e5e;\\n background-color: transparent;\\n}\\n.navbar-default .navbar-text {\\n color: #777;\\n}\\n.navbar-default .navbar-nav > li > a {\\n color: #777;\\n}\\n.navbar-default .navbar-nav > li > a:hover,\\n.navbar-default .navbar-nav > li > a:focus {\\n color: #333;\\n background-color: transparent;\\n}\\n.navbar-default .navbar-nav > .active > a,\\n.navbar-default .navbar-nav > .active > a:hover,\\n.navbar-default .navbar-nav > .active > a:focus {\\n color: #555;\\n background-color: #e7e7e7;\\n}\\n.navbar-default .navbar-nav > .disabled > a,\\n.navbar-default .navbar-nav > .disabled > a:hover,\\n.navbar-default .navbar-nav > .disabled > a:focus {\\n color: #ccc;\\n background-color: transparent;\\n}\\n.navbar-default .navbar-toggle {\\n border-color: #ddd;\\n}\\n.navbar-default .navbar-toggle:hover,\\n.navbar-default .navbar-toggle:focus {\\n background-color: #ddd;\\n}\\n.navbar-default .navbar-toggle .icon-bar {\\n background-color: #888;\\n}\\n.navbar-default .navbar-collapse,\\n.navbar-default .navbar-form {\\n border-color: #e7e7e7;\\n}\\n.navbar-default .navbar-nav > .open > a,\\n.navbar-default .navbar-nav > .open > a:hover,\\n.navbar-default .navbar-nav > .open > a:focus {\\n color: #555;\\n background-color: #e7e7e7;\\n}\\n@media (max-width: 767px) {\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\\n color: #777;\\n }\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\\n color: #333;\\n background-color: transparent;\\n }\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\\n color: #555;\\n background-color: #e7e7e7;\\n }\\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\\n color: #ccc;\\n background-color: transparent;\\n }\\n}\\n.navbar-default .navbar-link {\\n color: #777;\\n}\\n.navbar-default .navbar-link:hover {\\n color: #333;\\n}\\n.navbar-default .btn-link {\\n color: #777;\\n}\\n.navbar-default .btn-link:hover,\\n.navbar-default .btn-link:focus {\\n color: #333;\\n}\\n.navbar-default .btn-link[disabled]:hover,\\nfieldset[disabled] .navbar-default .btn-link:hover,\\n.navbar-default .btn-link[disabled]:focus,\\nfieldset[disabled] .navbar-default .btn-link:focus {\\n color: #ccc;\\n}\\n.navbar-inverse {\\n background-color: #222;\\n border-color: #080808;\\n}\\n.navbar-inverse .navbar-brand {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-brand:hover,\\n.navbar-inverse .navbar-brand:focus {\\n color: #fff;\\n background-color: transparent;\\n}\\n.navbar-inverse .navbar-text {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-nav > li > a {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-nav > li > a:hover,\\n.navbar-inverse .navbar-nav > li > a:focus {\\n color: #fff;\\n background-color: transparent;\\n}\\n.navbar-inverse .navbar-nav > .active > a,\\n.navbar-inverse .navbar-nav > .active > a:hover,\\n.navbar-inverse .navbar-nav > .active > a:focus {\\n color: #fff;\\n background-color: #080808;\\n}\\n.navbar-inverse .navbar-nav > .disabled > a,\\n.navbar-inverse .navbar-nav > .disabled > a:hover,\\n.navbar-inverse .navbar-nav > .disabled > a:focus {\\n color: #444;\\n background-color: transparent;\\n}\\n.navbar-inverse .navbar-toggle {\\n border-color: #333;\\n}\\n.navbar-inverse .navbar-toggle:hover,\\n.navbar-inverse .navbar-toggle:focus {\\n background-color: #333;\\n}\\n.navbar-inverse .navbar-toggle .icon-bar {\\n background-color: #fff;\\n}\\n.navbar-inverse .navbar-collapse,\\n.navbar-inverse .navbar-form {\\n border-color: #101010;\\n}\\n.navbar-inverse .navbar-nav > .open > a,\\n.navbar-inverse .navbar-nav > .open > a:hover,\\n.navbar-inverse .navbar-nav > .open > a:focus {\\n color: #fff;\\n background-color: #080808;\\n}\\n@media (max-width: 767px) {\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\\n border-color: #080808;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\\n background-color: #080808;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\\n color: #9d9d9d;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\\n color: #fff;\\n background-color: transparent;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\\n color: #fff;\\n background-color: #080808;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\\n color: #444;\\n background-color: transparent;\\n }\\n}\\n.navbar-inverse .navbar-link {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-link:hover {\\n color: #fff;\\n}\\n.navbar-inverse .btn-link {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .btn-link:hover,\\n.navbar-inverse .btn-link:focus {\\n color: #fff;\\n}\\n.navbar-inverse .btn-link[disabled]:hover,\\nfieldset[disabled] .navbar-inverse .btn-link:hover,\\n.navbar-inverse .btn-link[disabled]:focus,\\nfieldset[disabled] .navbar-inverse .btn-link:focus {\\n color: #444;\\n}\\n.breadcrumb {\\n padding: 8px 15px;\\n margin-bottom: 20px;\\n list-style: none;\\n background-color: #f5f5f5;\\n border-radius: 4px;\\n}\\n.breadcrumb > li {\\n display: inline-block;\\n}\\n.breadcrumb > li + li:before {\\n padding: 0 5px;\\n color: #ccc;\\n content: \\\"/\\\\A0\\\";\\n}\\n.breadcrumb > .active {\\n color: #777;\\n}\\n.pagination {\\n display: inline-block;\\n padding-left: 0;\\n margin: 20px 0;\\n border-radius: 4px;\\n}\\n.pagination > li {\\n display: inline;\\n}\\n.pagination > li > a,\\n.pagination > li > span {\\n position: relative;\\n float: left;\\n padding: 6px 12px;\\n margin-left: -1px;\\n line-height: 1.42857143;\\n color: #337ab7;\\n text-decoration: none;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n}\\n.pagination > li:first-child > a,\\n.pagination > li:first-child > span {\\n margin-left: 0;\\n border-top-left-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\n.pagination > li:last-child > a,\\n.pagination > li:last-child > span {\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n.pagination > li > a:hover,\\n.pagination > li > span:hover,\\n.pagination > li > a:focus,\\n.pagination > li > span:focus {\\n z-index: 2;\\n color: #23527c;\\n background-color: #eee;\\n border-color: #ddd;\\n}\\n.pagination > .active > a,\\n.pagination > .active > span,\\n.pagination > .active > a:hover,\\n.pagination > .active > span:hover,\\n.pagination > .active > a:focus,\\n.pagination > .active > span:focus {\\n z-index: 3;\\n color: #fff;\\n cursor: default;\\n background-color: #337ab7;\\n border-color: #337ab7;\\n}\\n.pagination > .disabled > span,\\n.pagination > .disabled > span:hover,\\n.pagination > .disabled > span:focus,\\n.pagination > .disabled > a,\\n.pagination > .disabled > a:hover,\\n.pagination > .disabled > a:focus {\\n color: #777;\\n cursor: not-allowed;\\n background-color: #fff;\\n border-color: #ddd;\\n}\\n.pagination-lg > li > a,\\n.pagination-lg > li > span {\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n}\\n.pagination-lg > li:first-child > a,\\n.pagination-lg > li:first-child > span {\\n border-top-left-radius: 6px;\\n border-bottom-left-radius: 6px;\\n}\\n.pagination-lg > li:last-child > a,\\n.pagination-lg > li:last-child > span {\\n border-top-right-radius: 6px;\\n border-bottom-right-radius: 6px;\\n}\\n.pagination-sm > li > a,\\n.pagination-sm > li > span {\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n}\\n.pagination-sm > li:first-child > a,\\n.pagination-sm > li:first-child > span {\\n border-top-left-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.pagination-sm > li:last-child > a,\\n.pagination-sm > li:last-child > span {\\n border-top-right-radius: 3px;\\n border-bottom-right-radius: 3px;\\n}\\n.pager {\\n padding-left: 0;\\n margin: 20px 0;\\n text-align: center;\\n list-style: none;\\n}\\n.pager li {\\n display: inline;\\n}\\n.pager li > a,\\n.pager li > span {\\n display: inline-block;\\n padding: 5px 14px;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-radius: 15px;\\n}\\n.pager li > a:hover,\\n.pager li > a:focus {\\n text-decoration: none;\\n background-color: #eee;\\n}\\n.pager .next > a,\\n.pager .next > span {\\n float: right;\\n}\\n.pager .previous > a,\\n.pager .previous > span {\\n float: left;\\n}\\n.pager .disabled > a,\\n.pager .disabled > a:hover,\\n.pager .disabled > a:focus,\\n.pager .disabled > span {\\n color: #777;\\n cursor: not-allowed;\\n background-color: #fff;\\n}\\n.label {\\n display: inline;\\n padding: .2em .6em .3em;\\n font-size: 75%;\\n font-weight: bold;\\n line-height: 1;\\n color: #fff;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: baseline;\\n border-radius: .25em;\\n}\\na.label:hover,\\na.label:focus {\\n color: #fff;\\n text-decoration: none;\\n cursor: pointer;\\n}\\n.label:empty {\\n display: none;\\n}\\n.btn .label {\\n position: relative;\\n top: -1px;\\n}\\n.label-default {\\n background-color: #777;\\n}\\n.label-default[href]:hover,\\n.label-default[href]:focus {\\n background-color: #5e5e5e;\\n}\\n.label-primary {\\n background-color: #337ab7;\\n}\\n.label-primary[href]:hover,\\n.label-primary[href]:focus {\\n background-color: #286090;\\n}\\n.label-success {\\n background-color: #5cb85c;\\n}\\n.label-success[href]:hover,\\n.label-success[href]:focus {\\n background-color: #449d44;\\n}\\n.label-info {\\n background-color: #5bc0de;\\n}\\n.label-info[href]:hover,\\n.label-info[href]:focus {\\n background-color: #31b0d5;\\n}\\n.label-warning {\\n background-color: #f0ad4e;\\n}\\n.label-warning[href]:hover,\\n.label-warning[href]:focus {\\n background-color: #ec971f;\\n}\\n.label-danger {\\n background-color: #d9534f;\\n}\\n.label-danger[href]:hover,\\n.label-danger[href]:focus {\\n background-color: #c9302c;\\n}\\n.badge {\\n display: inline-block;\\n min-width: 10px;\\n padding: 3px 7px;\\n font-size: 12px;\\n font-weight: bold;\\n line-height: 1;\\n color: #fff;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: middle;\\n background-color: #777;\\n border-radius: 10px;\\n}\\n.badge:empty {\\n display: none;\\n}\\n.btn .badge {\\n position: relative;\\n top: -1px;\\n}\\n.btn-xs .badge,\\n.btn-group-xs > .btn .badge {\\n top: 0;\\n padding: 1px 5px;\\n}\\na.badge:hover,\\na.badge:focus {\\n color: #fff;\\n text-decoration: none;\\n cursor: pointer;\\n}\\n.list-group-item.active > .badge,\\n.nav-pills > .active > a > .badge {\\n color: #337ab7;\\n background-color: #fff;\\n}\\n.list-group-item > .badge {\\n float: right;\\n}\\n.list-group-item > .badge + .badge {\\n margin-right: 5px;\\n}\\n.nav-pills > li > a > .badge {\\n margin-left: 3px;\\n}\\n.jumbotron {\\n padding-top: 30px;\\n padding-bottom: 30px;\\n margin-bottom: 30px;\\n color: inherit;\\n background-color: #eee;\\n}\\n.jumbotron h1,\\n.jumbotron .h1 {\\n color: inherit;\\n}\\n.jumbotron p {\\n margin-bottom: 15px;\\n font-size: 21px;\\n font-weight: 200;\\n}\\n.jumbotron > hr {\\n border-top-color: #d5d5d5;\\n}\\n.container .jumbotron,\\n.container-fluid .jumbotron {\\n padding-right: 15px;\\n padding-left: 15px;\\n border-radius: 6px;\\n}\\n.jumbotron .container {\\n max-width: 100%;\\n}\\n@media screen and (min-width: 768px) {\\n .jumbotron {\\n padding-top: 48px;\\n padding-bottom: 48px;\\n }\\n .container .jumbotron,\\n .container-fluid .jumbotron {\\n padding-right: 60px;\\n padding-left: 60px;\\n }\\n .jumbotron h1,\\n .jumbotron .h1 {\\n font-size: 63px;\\n }\\n}\\n.thumbnail {\\n display: block;\\n padding: 4px;\\n margin-bottom: 20px;\\n line-height: 1.42857143;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-radius: 4px;\\n -webkit-transition: border .2s ease-in-out;\\n -o-transition: border .2s ease-in-out;\\n transition: border .2s ease-in-out;\\n}\\n.thumbnail > img,\\n.thumbnail a > img {\\n margin-right: auto;\\n margin-left: auto;\\n}\\na.thumbnail:hover,\\na.thumbnail:focus,\\na.thumbnail.active {\\n border-color: #337ab7;\\n}\\n.thumbnail .caption {\\n padding: 9px;\\n color: #333;\\n}\\n.alert {\\n padding: 15px;\\n margin-bottom: 20px;\\n border: 1px solid transparent;\\n border-radius: 4px;\\n}\\n.alert h4 {\\n margin-top: 0;\\n color: inherit;\\n}\\n.alert .alert-link {\\n font-weight: bold;\\n}\\n.alert > p,\\n.alert > ul {\\n margin-bottom: 0;\\n}\\n.alert > p + p {\\n margin-top: 5px;\\n}\\n.alert-dismissable,\\n.alert-dismissible {\\n padding-right: 35px;\\n}\\n.alert-dismissable .close,\\n.alert-dismissible .close {\\n position: relative;\\n top: -2px;\\n right: -21px;\\n color: inherit;\\n}\\n.alert-success {\\n color: #3c763d;\\n background-color: #dff0d8;\\n border-color: #d6e9c6;\\n}\\n.alert-success hr {\\n border-top-color: #c9e2b3;\\n}\\n.alert-success .alert-link {\\n color: #2b542c;\\n}\\n.alert-info {\\n color: #31708f;\\n background-color: #d9edf7;\\n border-color: #bce8f1;\\n}\\n.alert-info hr {\\n border-top-color: #a6e1ec;\\n}\\n.alert-info .alert-link {\\n color: #245269;\\n}\\n.alert-warning {\\n color: #8a6d3b;\\n background-color: #fcf8e3;\\n border-color: #faebcc;\\n}\\n.alert-warning hr {\\n border-top-color: #f7e1b5;\\n}\\n.alert-warning .alert-link {\\n color: #66512c;\\n}\\n.alert-danger {\\n color: #a94442;\\n background-color: #f2dede;\\n border-color: #ebccd1;\\n}\\n.alert-danger hr {\\n border-top-color: #e4b9c0;\\n}\\n.alert-danger .alert-link {\\n color: #843534;\\n}\\n@-webkit-keyframes progress-bar-stripes {\\n from {\\n background-position: 40px 0;\\n }\\n to {\\n background-position: 0 0;\\n }\\n}\\n@-o-keyframes progress-bar-stripes {\\n from {\\n background-position: 40px 0;\\n }\\n to {\\n background-position: 0 0;\\n }\\n}\\n@keyframes progress-bar-stripes {\\n from {\\n background-position: 40px 0;\\n }\\n to {\\n background-position: 0 0;\\n }\\n}\\n.progress {\\n height: 20px;\\n margin-bottom: 20px;\\n overflow: hidden;\\n background-color: #f5f5f5;\\n border-radius: 4px;\\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\\n}\\n.progress-bar {\\n float: left;\\n width: 0;\\n height: 100%;\\n font-size: 12px;\\n line-height: 20px;\\n color: #fff;\\n text-align: center;\\n background-color: #337ab7;\\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\\n -webkit-transition: width .6s ease;\\n -o-transition: width .6s ease;\\n transition: width .6s ease;\\n}\\n.progress-striped .progress-bar,\\n.progress-bar-striped {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n -webkit-background-size: 40px 40px;\\n background-size: 40px 40px;\\n}\\n.progress.active .progress-bar,\\n.progress-bar.active {\\n -webkit-animation: progress-bar-stripes 2s linear infinite;\\n -o-animation: progress-bar-stripes 2s linear infinite;\\n animation: progress-bar-stripes 2s linear infinite;\\n}\\n.progress-bar-success {\\n background-color: #5cb85c;\\n}\\n.progress-striped .progress-bar-success {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n}\\n.progress-bar-info {\\n background-color: #5bc0de;\\n}\\n.progress-striped .progress-bar-info {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n}\\n.progress-bar-warning {\\n background-color: #f0ad4e;\\n}\\n.progress-striped .progress-bar-warning {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n}\\n.progress-bar-danger {\\n background-color: #d9534f;\\n}\\n.progress-striped .progress-bar-danger {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\\n}\\n.media {\\n margin-top: 15px;\\n}\\n.media:first-child {\\n margin-top: 0;\\n}\\n.media,\\n.media-body {\\n overflow: hidden;\\n zoom: 1;\\n}\\n.media-body {\\n width: 10000px;\\n}\\n.media-object {\\n display: block;\\n}\\n.media-object.img-thumbnail {\\n max-width: none;\\n}\\n.media-right,\\n.media > .pull-right {\\n padding-left: 10px;\\n}\\n.media-left,\\n.media > .pull-left {\\n padding-right: 10px;\\n}\\n.media-left,\\n.media-right,\\n.media-body {\\n display: table-cell;\\n vertical-align: top;\\n}\\n.media-middle {\\n vertical-align: middle;\\n}\\n.media-bottom {\\n vertical-align: bottom;\\n}\\n.media-heading {\\n margin-top: 0;\\n margin-bottom: 5px;\\n}\\n.media-list {\\n padding-left: 0;\\n list-style: none;\\n}\\n.list-group {\\n padding-left: 0;\\n margin-bottom: 20px;\\n}\\n.list-group-item {\\n position: relative;\\n display: block;\\n padding: 10px 15px;\\n margin-bottom: -1px;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n}\\n.list-group-item:first-child {\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n}\\n.list-group-item:last-child {\\n margin-bottom: 0;\\n border-bottom-right-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\na.list-group-item,\\nbutton.list-group-item {\\n color: #555;\\n}\\na.list-group-item .list-group-item-heading,\\nbutton.list-group-item .list-group-item-heading {\\n color: #333;\\n}\\na.list-group-item:hover,\\nbutton.list-group-item:hover,\\na.list-group-item:focus,\\nbutton.list-group-item:focus {\\n color: #555;\\n text-decoration: none;\\n background-color: #f5f5f5;\\n}\\nbutton.list-group-item {\\n width: 100%;\\n text-align: left;\\n}\\n.list-group-item.disabled,\\n.list-group-item.disabled:hover,\\n.list-group-item.disabled:focus {\\n color: #777;\\n cursor: not-allowed;\\n background-color: #eee;\\n}\\n.list-group-item.disabled .list-group-item-heading,\\n.list-group-item.disabled:hover .list-group-item-heading,\\n.list-group-item.disabled:focus .list-group-item-heading {\\n color: inherit;\\n}\\n.list-group-item.disabled .list-group-item-text,\\n.list-group-item.disabled:hover .list-group-item-text,\\n.list-group-item.disabled:focus .list-group-item-text {\\n color: #777;\\n}\\n.list-group-item.active,\\n.list-group-item.active:hover,\\n.list-group-item.active:focus {\\n z-index: 2;\\n color: #fff;\\n background-color: #337ab7;\\n border-color: #337ab7;\\n}\\n.list-group-item.active .list-group-item-heading,\\n.list-group-item.active:hover .list-group-item-heading,\\n.list-group-item.active:focus .list-group-item-heading,\\n.list-group-item.active .list-group-item-heading > small,\\n.list-group-item.active:hover .list-group-item-heading > small,\\n.list-group-item.active:focus .list-group-item-heading > small,\\n.list-group-item.active .list-group-item-heading > .small,\\n.list-group-item.active:hover .list-group-item-heading > .small,\\n.list-group-item.active:focus .list-group-item-heading > .small {\\n color: inherit;\\n}\\n.list-group-item.active .list-group-item-text,\\n.list-group-item.active:hover .list-group-item-text,\\n.list-group-item.active:focus .list-group-item-text {\\n color: #c7ddef;\\n}\\n.list-group-item-success {\\n color: #3c763d;\\n background-color: #dff0d8;\\n}\\na.list-group-item-success,\\nbutton.list-group-item-success {\\n color: #3c763d;\\n}\\na.list-group-item-success .list-group-item-heading,\\nbutton.list-group-item-success .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-success:hover,\\nbutton.list-group-item-success:hover,\\na.list-group-item-success:focus,\\nbutton.list-group-item-success:focus {\\n color: #3c763d;\\n background-color: #d0e9c6;\\n}\\na.list-group-item-success.active,\\nbutton.list-group-item-success.active,\\na.list-group-item-success.active:hover,\\nbutton.list-group-item-success.active:hover,\\na.list-group-item-success.active:focus,\\nbutton.list-group-item-success.active:focus {\\n color: #fff;\\n background-color: #3c763d;\\n border-color: #3c763d;\\n}\\n.list-group-item-info {\\n color: #31708f;\\n background-color: #d9edf7;\\n}\\na.list-group-item-info,\\nbutton.list-group-item-info {\\n color: #31708f;\\n}\\na.list-group-item-info .list-group-item-heading,\\nbutton.list-group-item-info .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-info:hover,\\nbutton.list-group-item-info:hover,\\na.list-group-item-info:focus,\\nbutton.list-group-item-info:focus {\\n color: #31708f;\\n background-color: #c4e3f3;\\n}\\na.list-group-item-info.active,\\nbutton.list-group-item-info.active,\\na.list-group-item-info.active:hover,\\nbutton.list-group-item-info.active:hover,\\na.list-group-item-info.active:focus,\\nbutton.list-group-item-info.active:focus {\\n color: #fff;\\n background-color: #31708f;\\n border-color: #31708f;\\n}\\n.list-group-item-warning {\\n color: #8a6d3b;\\n background-color: #fcf8e3;\\n}\\na.list-group-item-warning,\\nbutton.list-group-item-warning {\\n color: #8a6d3b;\\n}\\na.list-group-item-warning .list-group-item-heading,\\nbutton.list-group-item-warning .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-warning:hover,\\nbutton.list-group-item-warning:hover,\\na.list-group-item-warning:focus,\\nbutton.list-group-item-warning:focus {\\n color: #8a6d3b;\\n background-color: #faf2cc;\\n}\\na.list-group-item-warning.active,\\nbutton.list-group-item-warning.active,\\na.list-group-item-warning.active:hover,\\nbutton.list-group-item-warning.active:hover,\\na.list-group-item-warning.active:focus,\\nbutton.list-group-item-warning.active:focus {\\n color: #fff;\\n background-color: #8a6d3b;\\n border-color: #8a6d3b;\\n}\\n.list-group-item-danger {\\n color: #a94442;\\n background-color: #f2dede;\\n}\\na.list-group-item-danger,\\nbutton.list-group-item-danger {\\n color: #a94442;\\n}\\na.list-group-item-danger .list-group-item-heading,\\nbutton.list-group-item-danger .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-danger:hover,\\nbutton.list-group-item-danger:hover,\\na.list-group-item-danger:focus,\\nbutton.list-group-item-danger:focus {\\n color: #a94442;\\n background-color: #ebcccc;\\n}\\na.list-group-item-danger.active,\\nbutton.list-group-item-danger.active,\\na.list-group-item-danger.active:hover,\\nbutton.list-group-item-danger.active:hover,\\na.list-group-item-danger.active:focus,\\nbutton.list-group-item-danger.active:focus {\\n color: #fff;\\n background-color: #a94442;\\n border-color: #a94442;\\n}\\n.list-group-item-heading {\\n margin-top: 0;\\n margin-bottom: 5px;\\n}\\n.list-group-item-text {\\n margin-bottom: 0;\\n line-height: 1.3;\\n}\\n.panel {\\n margin-bottom: 20px;\\n background-color: #fff;\\n border: 1px solid transparent;\\n border-radius: 4px;\\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\\n box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\\n}\\n.panel-body {\\n padding: 15px;\\n}\\n.panel-heading {\\n padding: 10px 15px;\\n border-bottom: 1px solid transparent;\\n border-top-left-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.panel-heading > .dropdown .dropdown-toggle {\\n color: inherit;\\n}\\n.panel-title {\\n margin-top: 0;\\n margin-bottom: 0;\\n font-size: 16px;\\n color: inherit;\\n}\\n.panel-title > a,\\n.panel-title > small,\\n.panel-title > .small,\\n.panel-title > small > a,\\n.panel-title > .small > a {\\n color: inherit;\\n}\\n.panel-footer {\\n padding: 10px 15px;\\n background-color: #f5f5f5;\\n border-top: 1px solid #ddd;\\n border-bottom-right-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .list-group,\\n.panel > .panel-collapse > .list-group {\\n margin-bottom: 0;\\n}\\n.panel > .list-group .list-group-item,\\n.panel > .panel-collapse > .list-group .list-group-item {\\n border-width: 1px 0;\\n border-radius: 0;\\n}\\n.panel > .list-group:first-child .list-group-item:first-child,\\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\\n border-top: 0;\\n border-top-left-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.panel > .list-group:last-child .list-group-item:last-child,\\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\\n border-bottom: 0;\\n border-bottom-right-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n}\\n.panel-heading + .list-group .list-group-item:first-child {\\n border-top-width: 0;\\n}\\n.list-group + .panel-footer {\\n border-top-width: 0;\\n}\\n.panel > .table,\\n.panel > .table-responsive > .table,\\n.panel > .panel-collapse > .table {\\n margin-bottom: 0;\\n}\\n.panel > .table caption,\\n.panel > .table-responsive > .table caption,\\n.panel > .panel-collapse > .table caption {\\n padding-right: 15px;\\n padding-left: 15px;\\n}\\n.panel > .table:first-child,\\n.panel > .table-responsive:first-child > .table:first-child {\\n border-top-left-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.panel > .table:first-child > thead:first-child > tr:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\\n border-top-left-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\\n border-top-left-radius: 3px;\\n}\\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\\n border-top-right-radius: 3px;\\n}\\n.panel > .table:last-child,\\n.panel > .table-responsive:last-child > .table:last-child {\\n border-bottom-right-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .table:last-child > tbody:last-child > tr:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\\n border-bottom-right-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\\n border-bottom-right-radius: 3px;\\n}\\n.panel > .panel-body + .table,\\n.panel > .panel-body + .table-responsive,\\n.panel > .table + .panel-body,\\n.panel > .table-responsive + .panel-body {\\n border-top: 1px solid #ddd;\\n}\\n.panel > .table > tbody:first-child > tr:first-child th,\\n.panel > .table > tbody:first-child > tr:first-child td {\\n border-top: 0;\\n}\\n.panel > .table-bordered,\\n.panel > .table-responsive > .table-bordered {\\n border: 0;\\n}\\n.panel > .table-bordered > thead > tr > th:first-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\\n.panel > .table-bordered > tbody > tr > th:first-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\\n.panel > .table-bordered > tfoot > tr > th:first-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\\n.panel > .table-bordered > thead > tr > td:first-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\\n.panel > .table-bordered > tbody > tr > td:first-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\\n.panel > .table-bordered > tfoot > tr > td:first-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\\n border-left: 0;\\n}\\n.panel > .table-bordered > thead > tr > th:last-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\\n.panel > .table-bordered > tbody > tr > th:last-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\\n.panel > .table-bordered > tfoot > tr > th:last-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\\n.panel > .table-bordered > thead > tr > td:last-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\\n.panel > .table-bordered > tbody > tr > td:last-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\\n.panel > .table-bordered > tfoot > tr > td:last-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\\n border-right: 0;\\n}\\n.panel > .table-bordered > thead > tr:first-child > td,\\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\\n.panel > .table-bordered > tbody > tr:first-child > td,\\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\\n.panel > .table-bordered > thead > tr:first-child > th,\\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\\n.panel > .table-bordered > tbody > tr:first-child > th,\\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\\n border-bottom: 0;\\n}\\n.panel > .table-bordered > tbody > tr:last-child > td,\\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\\n.panel > .table-bordered > tfoot > tr:last-child > td,\\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\\n.panel > .table-bordered > tbody > tr:last-child > th,\\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\\n.panel > .table-bordered > tfoot > tr:last-child > th,\\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\\n border-bottom: 0;\\n}\\n.panel > .table-responsive {\\n margin-bottom: 0;\\n border: 0;\\n}\\n.panel-group {\\n margin-bottom: 20px;\\n}\\n.panel-group .panel {\\n margin-bottom: 0;\\n border-radius: 4px;\\n}\\n.panel-group .panel + .panel {\\n margin-top: 5px;\\n}\\n.panel-group .panel-heading {\\n border-bottom: 0;\\n}\\n.panel-group .panel-heading + .panel-collapse > .panel-body,\\n.panel-group .panel-heading + .panel-collapse > .list-group {\\n border-top: 1px solid #ddd;\\n}\\n.panel-group .panel-footer {\\n border-top: 0;\\n}\\n.panel-group .panel-footer + .panel-collapse .panel-body {\\n border-bottom: 1px solid #ddd;\\n}\\n.panel-default {\\n border-color: #ddd;\\n}\\n.panel-default > .panel-heading {\\n color: #333;\\n background-color: #f5f5f5;\\n border-color: #ddd;\\n}\\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #ddd;\\n}\\n.panel-default > .panel-heading .badge {\\n color: #f5f5f5;\\n background-color: #333;\\n}\\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #ddd;\\n}\\n.panel-primary {\\n border-color: #337ab7;\\n}\\n.panel-primary > .panel-heading {\\n color: #fff;\\n background-color: #337ab7;\\n border-color: #337ab7;\\n}\\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #337ab7;\\n}\\n.panel-primary > .panel-heading .badge {\\n color: #337ab7;\\n background-color: #fff;\\n}\\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #337ab7;\\n}\\n.panel-success {\\n border-color: #d6e9c6;\\n}\\n.panel-success > .panel-heading {\\n color: #3c763d;\\n background-color: #dff0d8;\\n border-color: #d6e9c6;\\n}\\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #d6e9c6;\\n}\\n.panel-success > .panel-heading .badge {\\n color: #dff0d8;\\n background-color: #3c763d;\\n}\\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #d6e9c6;\\n}\\n.panel-info {\\n border-color: #bce8f1;\\n}\\n.panel-info > .panel-heading {\\n color: #31708f;\\n background-color: #d9edf7;\\n border-color: #bce8f1;\\n}\\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #bce8f1;\\n}\\n.panel-info > .panel-heading .badge {\\n color: #d9edf7;\\n background-color: #31708f;\\n}\\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #bce8f1;\\n}\\n.panel-warning {\\n border-color: #faebcc;\\n}\\n.panel-warning > .panel-heading {\\n color: #8a6d3b;\\n background-color: #fcf8e3;\\n border-color: #faebcc;\\n}\\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #faebcc;\\n}\\n.panel-warning > .panel-heading .badge {\\n color: #fcf8e3;\\n background-color: #8a6d3b;\\n}\\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #faebcc;\\n}\\n.panel-danger {\\n border-color: #ebccd1;\\n}\\n.panel-danger > .panel-heading {\\n color: #a94442;\\n background-color: #f2dede;\\n border-color: #ebccd1;\\n}\\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #ebccd1;\\n}\\n.panel-danger > .panel-heading .badge {\\n color: #f2dede;\\n background-color: #a94442;\\n}\\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #ebccd1;\\n}\\n.embed-responsive {\\n position: relative;\\n display: block;\\n height: 0;\\n padding: 0;\\n overflow: hidden;\\n}\\n.embed-responsive .embed-responsive-item,\\n.embed-responsive iframe,\\n.embed-responsive embed,\\n.embed-responsive object,\\n.embed-responsive video {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0;\\n}\\n.embed-responsive-16by9 {\\n padding-bottom: 56.25%;\\n}\\n.embed-responsive-4by3 {\\n padding-bottom: 75%;\\n}\\n.well {\\n min-height: 20px;\\n padding: 19px;\\n margin-bottom: 20px;\\n background-color: #f5f5f5;\\n border: 1px solid #e3e3e3;\\n border-radius: 4px;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\\n}\\n.well blockquote {\\n border-color: #ddd;\\n border-color: rgba(0, 0, 0, .15);\\n}\\n.well-lg {\\n padding: 24px;\\n border-radius: 6px;\\n}\\n.well-sm {\\n padding: 9px;\\n border-radius: 3px;\\n}\\n.close {\\n float: right;\\n font-size: 21px;\\n font-weight: bold;\\n line-height: 1;\\n color: #000;\\n text-shadow: 0 1px 0 #fff;\\n filter: alpha(opacity=20);\\n opacity: .2;\\n}\\n.close:hover,\\n.close:focus {\\n color: #000;\\n text-decoration: none;\\n cursor: pointer;\\n filter: alpha(opacity=50);\\n opacity: .5;\\n}\\nbutton.close {\\n -webkit-appearance: none;\\n padding: 0;\\n cursor: pointer;\\n background: transparent;\\n border: 0;\\n}\\n.modal-open {\\n overflow: hidden;\\n}\\n.modal {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1050;\\n display: none;\\n overflow: hidden;\\n -webkit-overflow-scrolling: touch;\\n outline: 0;\\n}\\n.modal.fade .modal-dialog {\\n -webkit-transition: -webkit-transform .3s ease-out;\\n -o-transition: -o-transform .3s ease-out;\\n transition: transform .3s ease-out;\\n -webkit-transform: translate(0, -25%);\\n -ms-transform: translate(0, -25%);\\n -o-transform: translate(0, -25%);\\n transform: translate(0, -25%);\\n}\\n.modal.in .modal-dialog {\\n -webkit-transform: translate(0, 0);\\n -ms-transform: translate(0, 0);\\n -o-transform: translate(0, 0);\\n transform: translate(0, 0);\\n}\\n.modal-open .modal {\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n.modal-dialog {\\n position: relative;\\n width: auto;\\n margin: 10px;\\n}\\n.modal-content {\\n position: relative;\\n background-color: #fff;\\n -webkit-background-clip: padding-box;\\n background-clip: padding-box;\\n border: 1px solid #999;\\n border: 1px solid rgba(0, 0, 0, .2);\\n border-radius: 6px;\\n outline: 0;\\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\\n box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\\n}\\n.modal-backdrop {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1040;\\n background-color: #000;\\n}\\n.modal-backdrop.fade {\\n filter: alpha(opacity=0);\\n opacity: 0;\\n}\\n.modal-backdrop.in {\\n filter: alpha(opacity=50);\\n opacity: .5;\\n}\\n.modal-header {\\n padding: 15px;\\n border-bottom: 1px solid #e5e5e5;\\n}\\n.modal-header .close {\\n margin-top: -2px;\\n}\\n.modal-title {\\n margin: 0;\\n line-height: 1.42857143;\\n}\\n.modal-body {\\n position: relative;\\n padding: 15px;\\n}\\n.modal-footer {\\n padding: 15px;\\n text-align: right;\\n border-top: 1px solid #e5e5e5;\\n}\\n.modal-footer .btn + .btn {\\n margin-bottom: 0;\\n margin-left: 5px;\\n}\\n.modal-footer .btn-group .btn + .btn {\\n margin-left: -1px;\\n}\\n.modal-footer .btn-block + .btn-block {\\n margin-left: 0;\\n}\\n.modal-scrollbar-measure {\\n position: absolute;\\n top: -9999px;\\n width: 50px;\\n height: 50px;\\n overflow: scroll;\\n}\\n@media (min-width: 768px) {\\n .modal-dialog {\\n width: 600px;\\n margin: 30px auto;\\n }\\n .modal-content {\\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\\n box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\\n }\\n .modal-sm {\\n width: 300px;\\n }\\n}\\n@media (min-width: 992px) {\\n .modal-lg {\\n width: 900px;\\n }\\n}\\n.tooltip {\\n position: absolute;\\n z-index: 1070;\\n display: block;\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n font-size: 12px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.42857143;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n word-wrap: normal;\\n white-space: normal;\\n filter: alpha(opacity=0);\\n opacity: 0;\\n\\n line-break: auto;\\n}\\n.tooltip.in {\\n filter: alpha(opacity=90);\\n opacity: .9;\\n}\\n.tooltip.top {\\n padding: 5px 0;\\n margin-top: -3px;\\n}\\n.tooltip.right {\\n padding: 0 5px;\\n margin-left: 3px;\\n}\\n.tooltip.bottom {\\n padding: 5px 0;\\n margin-top: 3px;\\n}\\n.tooltip.left {\\n padding: 0 5px;\\n margin-left: -3px;\\n}\\n.tooltip-inner {\\n max-width: 200px;\\n padding: 3px 8px;\\n color: #fff;\\n text-align: center;\\n background-color: #000;\\n border-radius: 4px;\\n}\\n.tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-color: transparent;\\n border-style: solid;\\n}\\n.tooltip.top .tooltip-arrow {\\n bottom: 0;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 5px 5px 0;\\n border-top-color: #000;\\n}\\n.tooltip.top-left .tooltip-arrow {\\n right: 5px;\\n bottom: 0;\\n margin-bottom: -5px;\\n border-width: 5px 5px 0;\\n border-top-color: #000;\\n}\\n.tooltip.top-right .tooltip-arrow {\\n bottom: 0;\\n left: 5px;\\n margin-bottom: -5px;\\n border-width: 5px 5px 0;\\n border-top-color: #000;\\n}\\n.tooltip.right .tooltip-arrow {\\n top: 50%;\\n left: 0;\\n margin-top: -5px;\\n border-width: 5px 5px 5px 0;\\n border-right-color: #000;\\n}\\n.tooltip.left .tooltip-arrow {\\n top: 50%;\\n right: 0;\\n margin-top: -5px;\\n border-width: 5px 0 5px 5px;\\n border-left-color: #000;\\n}\\n.tooltip.bottom .tooltip-arrow {\\n top: 0;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 0 5px 5px;\\n border-bottom-color: #000;\\n}\\n.tooltip.bottom-left .tooltip-arrow {\\n top: 0;\\n right: 5px;\\n margin-top: -5px;\\n border-width: 0 5px 5px;\\n border-bottom-color: #000;\\n}\\n.tooltip.bottom-right .tooltip-arrow {\\n top: 0;\\n left: 5px;\\n margin-top: -5px;\\n border-width: 0 5px 5px;\\n border-bottom-color: #000;\\n}\\n.popover {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 1060;\\n display: none;\\n max-width: 276px;\\n padding: 1px;\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1.42857143;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n word-wrap: normal;\\n white-space: normal;\\n background-color: #fff;\\n -webkit-background-clip: padding-box;\\n background-clip: padding-box;\\n border: 1px solid #ccc;\\n border: 1px solid rgba(0, 0, 0, .2);\\n border-radius: 6px;\\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\\n box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\\n\\n line-break: auto;\\n}\\n.popover.top {\\n margin-top: -10px;\\n}\\n.popover.right {\\n margin-left: 10px;\\n}\\n.popover.bottom {\\n margin-top: 10px;\\n}\\n.popover.left {\\n margin-left: -10px;\\n}\\n.popover-title {\\n padding: 8px 14px;\\n margin: 0;\\n font-size: 14px;\\n background-color: #f7f7f7;\\n border-bottom: 1px solid #ebebeb;\\n border-radius: 5px 5px 0 0;\\n}\\n.popover-content {\\n padding: 9px 14px;\\n}\\n.popover > .arrow,\\n.popover > .arrow:after {\\n position: absolute;\\n display: block;\\n width: 0;\\n height: 0;\\n border-color: transparent;\\n border-style: solid;\\n}\\n.popover > .arrow {\\n border-width: 11px;\\n}\\n.popover > .arrow:after {\\n content: \\\"\\\";\\n border-width: 10px;\\n}\\n.popover.top > .arrow {\\n bottom: -11px;\\n left: 50%;\\n margin-left: -11px;\\n border-top-color: #999;\\n border-top-color: rgba(0, 0, 0, .25);\\n border-bottom-width: 0;\\n}\\n.popover.top > .arrow:after {\\n bottom: 1px;\\n margin-left: -10px;\\n content: \\\" \\\";\\n border-top-color: #fff;\\n border-bottom-width: 0;\\n}\\n.popover.right > .arrow {\\n top: 50%;\\n left: -11px;\\n margin-top: -11px;\\n border-right-color: #999;\\n border-right-color: rgba(0, 0, 0, .25);\\n border-left-width: 0;\\n}\\n.popover.right > .arrow:after {\\n bottom: -10px;\\n left: 1px;\\n content: \\\" \\\";\\n border-right-color: #fff;\\n border-left-width: 0;\\n}\\n.popover.bottom > .arrow {\\n top: -11px;\\n left: 50%;\\n margin-left: -11px;\\n border-top-width: 0;\\n border-bottom-color: #999;\\n border-bottom-color: rgba(0, 0, 0, .25);\\n}\\n.popover.bottom > .arrow:after {\\n top: 1px;\\n margin-left: -10px;\\n content: \\\" \\\";\\n border-top-width: 0;\\n border-bottom-color: #fff;\\n}\\n.popover.left > .arrow {\\n top: 50%;\\n right: -11px;\\n margin-top: -11px;\\n border-right-width: 0;\\n border-left-color: #999;\\n border-left-color: rgba(0, 0, 0, .25);\\n}\\n.popover.left > .arrow:after {\\n right: 1px;\\n bottom: -10px;\\n content: \\\" \\\";\\n border-right-width: 0;\\n border-left-color: #fff;\\n}\\n.carousel {\\n position: relative;\\n}\\n.carousel-inner {\\n position: relative;\\n width: 100%;\\n overflow: hidden;\\n}\\n.carousel-inner > .item {\\n position: relative;\\n display: none;\\n -webkit-transition: .6s ease-in-out left;\\n -o-transition: .6s ease-in-out left;\\n transition: .6s ease-in-out left;\\n}\\n.carousel-inner > .item > img,\\n.carousel-inner > .item > a > img {\\n line-height: 1;\\n}\\n@media all and (transform-3d), (-webkit-transform-3d) {\\n .carousel-inner > .item {\\n -webkit-transition: -webkit-transform .6s ease-in-out;\\n -o-transition: -o-transform .6s ease-in-out;\\n transition: transform .6s ease-in-out;\\n\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n -webkit-perspective: 1000px;\\n perspective: 1000px;\\n }\\n .carousel-inner > .item.next,\\n .carousel-inner > .item.active.right {\\n left: 0;\\n -webkit-transform: translate3d(100%, 0, 0);\\n transform: translate3d(100%, 0, 0);\\n }\\n .carousel-inner > .item.prev,\\n .carousel-inner > .item.active.left {\\n left: 0;\\n -webkit-transform: translate3d(-100%, 0, 0);\\n transform: translate3d(-100%, 0, 0);\\n }\\n .carousel-inner > .item.next.left,\\n .carousel-inner > .item.prev.right,\\n .carousel-inner > .item.active {\\n left: 0;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n.carousel-inner > .active,\\n.carousel-inner > .next,\\n.carousel-inner > .prev {\\n display: block;\\n}\\n.carousel-inner > .active {\\n left: 0;\\n}\\n.carousel-inner > .next,\\n.carousel-inner > .prev {\\n position: absolute;\\n top: 0;\\n width: 100%;\\n}\\n.carousel-inner > .next {\\n left: 100%;\\n}\\n.carousel-inner > .prev {\\n left: -100%;\\n}\\n.carousel-inner > .next.left,\\n.carousel-inner > .prev.right {\\n left: 0;\\n}\\n.carousel-inner > .active.left {\\n left: -100%;\\n}\\n.carousel-inner > .active.right {\\n left: 100%;\\n}\\n.carousel-control {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n width: 15%;\\n font-size: 20px;\\n color: #fff;\\n text-align: center;\\n text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\\n background-color: rgba(0, 0, 0, 0);\\n filter: alpha(opacity=50);\\n opacity: .5;\\n}\\n.carousel-control.left {\\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));\\n background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\\n background-repeat: repeat-x;\\n}\\n.carousel-control.right {\\n right: 0;\\n left: auto;\\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));\\n background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\\n background-repeat: repeat-x;\\n}\\n.carousel-control:hover,\\n.carousel-control:focus {\\n color: #fff;\\n text-decoration: none;\\n filter: alpha(opacity=90);\\n outline: 0;\\n opacity: .9;\\n}\\n.carousel-control .icon-prev,\\n.carousel-control .icon-next,\\n.carousel-control .glyphicon-chevron-left,\\n.carousel-control .glyphicon-chevron-right {\\n position: absolute;\\n top: 50%;\\n z-index: 5;\\n display: inline-block;\\n margin-top: -10px;\\n}\\n.carousel-control .icon-prev,\\n.carousel-control .glyphicon-chevron-left {\\n left: 50%;\\n margin-left: -10px;\\n}\\n.carousel-control .icon-next,\\n.carousel-control .glyphicon-chevron-right {\\n right: 50%;\\n margin-right: -10px;\\n}\\n.carousel-control .icon-prev,\\n.carousel-control .icon-next {\\n width: 20px;\\n height: 20px;\\n font-family: serif;\\n line-height: 1;\\n}\\n.carousel-control .icon-prev:before {\\n content: '\\\\2039';\\n}\\n.carousel-control .icon-next:before {\\n content: '\\\\203A';\\n}\\n.carousel-indicators {\\n position: absolute;\\n bottom: 10px;\\n left: 50%;\\n z-index: 15;\\n width: 60%;\\n padding-left: 0;\\n margin-left: -30%;\\n text-align: center;\\n list-style: none;\\n}\\n.carousel-indicators li {\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n margin: 1px;\\n text-indent: -999px;\\n cursor: pointer;\\n background-color: #000 \\\\9;\\n background-color: rgba(0, 0, 0, 0);\\n border: 1px solid #fff;\\n border-radius: 10px;\\n}\\n.carousel-indicators .active {\\n width: 12px;\\n height: 12px;\\n margin: 0;\\n background-color: #fff;\\n}\\n.carousel-caption {\\n position: absolute;\\n right: 15%;\\n bottom: 20px;\\n left: 15%;\\n z-index: 10;\\n padding-top: 20px;\\n padding-bottom: 20px;\\n color: #fff;\\n text-align: center;\\n text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\\n}\\n.carousel-caption .btn {\\n text-shadow: none;\\n}\\n@media screen and (min-width: 768px) {\\n .carousel-control .glyphicon-chevron-left,\\n .carousel-control .glyphicon-chevron-right,\\n .carousel-control .icon-prev,\\n .carousel-control .icon-next {\\n width: 30px;\\n height: 30px;\\n margin-top: -10px;\\n font-size: 30px;\\n }\\n .carousel-control .glyphicon-chevron-left,\\n .carousel-control .icon-prev {\\n margin-left: -10px;\\n }\\n .carousel-control .glyphicon-chevron-right,\\n .carousel-control .icon-next {\\n margin-right: -10px;\\n }\\n .carousel-caption {\\n right: 20%;\\n left: 20%;\\n padding-bottom: 30px;\\n }\\n .carousel-indicators {\\n bottom: 20px;\\n }\\n}\\n.clearfix:before,\\n.clearfix:after,\\n.dl-horizontal dd:before,\\n.dl-horizontal dd:after,\\n.container:before,\\n.container:after,\\n.container-fluid:before,\\n.container-fluid:after,\\n.row:before,\\n.row:after,\\n.form-horizontal .form-group:before,\\n.form-horizontal .form-group:after,\\n.btn-toolbar:before,\\n.btn-toolbar:after,\\n.btn-group-vertical > .btn-group:before,\\n.btn-group-vertical > .btn-group:after,\\n.nav:before,\\n.nav:after,\\n.navbar:before,\\n.navbar:after,\\n.navbar-header:before,\\n.navbar-header:after,\\n.navbar-collapse:before,\\n.navbar-collapse:after,\\n.pager:before,\\n.pager:after,\\n.panel-body:before,\\n.panel-body:after,\\n.modal-header:before,\\n.modal-header:after,\\n.modal-footer:before,\\n.modal-footer:after {\\n display: table;\\n content: \\\" \\\";\\n}\\n.clearfix:after,\\n.dl-horizontal dd:after,\\n.container:after,\\n.container-fluid:after,\\n.row:after,\\n.form-horizontal .form-group:after,\\n.btn-toolbar:after,\\n.btn-group-vertical > .btn-group:after,\\n.nav:after,\\n.navbar:after,\\n.navbar-header:after,\\n.navbar-collapse:after,\\n.pager:after,\\n.panel-body:after,\\n.modal-header:after,\\n.modal-footer:after {\\n clear: both;\\n}\\n.center-block {\\n display: block;\\n margin-right: auto;\\n margin-left: auto;\\n}\\n.pull-right {\\n float: right !important;\\n}\\n.pull-left {\\n float: left !important;\\n}\\n.hide {\\n display: none !important;\\n}\\n.show {\\n display: block !important;\\n}\\n.invisible {\\n visibility: hidden;\\n}\\n.text-hide {\\n font: 0/0 a;\\n color: transparent;\\n text-shadow: none;\\n background-color: transparent;\\n border: 0;\\n}\\n.hidden {\\n display: none !important;\\n}\\n.affix {\\n position: fixed;\\n}\\n@-ms-viewport {\\n width: device-width;\\n}\\n.visible-xs,\\n.visible-sm,\\n.visible-md,\\n.visible-lg {\\n display: none !important;\\n}\\n.visible-xs-block,\\n.visible-xs-inline,\\n.visible-xs-inline-block,\\n.visible-sm-block,\\n.visible-sm-inline,\\n.visible-sm-inline-block,\\n.visible-md-block,\\n.visible-md-inline,\\n.visible-md-inline-block,\\n.visible-lg-block,\\n.visible-lg-inline,\\n.visible-lg-inline-block {\\n display: none !important;\\n}\\n@media (max-width: 767px) {\\n .visible-xs {\\n display: block !important;\\n }\\n table.visible-xs {\\n display: table !important;\\n }\\n tr.visible-xs {\\n display: table-row !important;\\n }\\n th.visible-xs,\\n td.visible-xs {\\n display: table-cell !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .visible-xs-block {\\n display: block !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .visible-xs-inline {\\n display: inline !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .visible-xs-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm {\\n display: block !important;\\n }\\n table.visible-sm {\\n display: table !important;\\n }\\n tr.visible-sm {\\n display: table-row !important;\\n }\\n th.visible-sm,\\n td.visible-sm {\\n display: table-cell !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm-block {\\n display: block !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm-inline {\\n display: inline !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md {\\n display: block !important;\\n }\\n table.visible-md {\\n display: table !important;\\n }\\n tr.visible-md {\\n display: table-row !important;\\n }\\n th.visible-md,\\n td.visible-md {\\n display: table-cell !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md-block {\\n display: block !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md-inline {\\n display: inline !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg {\\n display: block !important;\\n }\\n table.visible-lg {\\n display: table !important;\\n }\\n tr.visible-lg {\\n display: table-row !important;\\n }\\n th.visible-lg,\\n td.visible-lg {\\n display: table-cell !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg-block {\\n display: block !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg-inline {\\n display: inline !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .hidden-xs {\\n display: none !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .hidden-sm {\\n display: none !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .hidden-md {\\n display: none !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .hidden-lg {\\n display: none !important;\\n }\\n}\\n.visible-print {\\n display: none !important;\\n}\\n@media print {\\n .visible-print {\\n display: block !important;\\n }\\n table.visible-print {\\n display: table !important;\\n }\\n tr.visible-print {\\n display: table-row !important;\\n }\\n th.visible-print,\\n td.visible-print {\\n display: table-cell !important;\\n }\\n}\\n.visible-print-block {\\n display: none !important;\\n}\\n@media print {\\n .visible-print-block {\\n display: block !important;\\n }\\n}\\n.visible-print-inline {\\n display: none !important;\\n}\\n@media print {\\n .visible-print-inline {\\n display: inline !important;\\n }\\n}\\n.visible-print-inline-block {\\n display: none !important;\\n}\\n@media print {\\n .visible-print-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media print {\\n .hidden-print {\\n display: none !important;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/bootstrap/dist/css/bootstrap.css\n// module id = bootstrap/dist/css/bootstrap.css\n// module chunks = 0"],"sourceRoot":""}