{"version":3,"sources":["../node_modules/esensi-build/node_modules/browserify/node_modules/browser-pack/_prelude.js","scripts/main.js","../node_modules/better-dom/dist/better-dom.js","../node_modules/better-form-validation/dist/better-form-validation.js","../node_modules/better-i18n-plugin/dist/better-i18n-plugin.js","../node_modules/better-popover-plugin/dist/better-popover-plugin.js","../node_modules/bootstrap-multiselect/dist/js/bootstrap-multiselect.js","../node_modules/bootstrap/js/carousel.js","../node_modules/bootstrap/js/collapse.js","../node_modules/bootstrap/js/dropdown.js","../node_modules/bootstrap/js/popover.js","../node_modules/bootstrap/js/tooltip.js","../node_modules/bootstrap/js/transition.js","../node_modules/esensi-build/node_modules/browserify/node_modules/buffer/index.js","../node_modules/esensi-build/node_modules/browserify/node_modules/buffer/node_modules/base64-js/lib/b64.js","../node_modules/esensi-build/node_modules/browserify/node_modules/buffer/node_modules/ieee754/index.js","../node_modules/esensi-build/node_modules/browserify/node_modules/buffer/node_modules/is-array/index.js","../node_modules/esensi-build/node_modules/browserify/node_modules/process/browser.js","../node_modules/jasny-bootstrap/js/offcanvas.js","../node_modules/jquery/dist/jquery.js","scripts/_modules/_accessibility.js","scripts/_modules/_bootstrap.js","scripts/_modules/_forms.js","scripts/_modules/_ie10.js"],"names":[],"mappings":"AAAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACx3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC9RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC9lDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACjeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACt4CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACnUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACr/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"main.js","sourceRoot":"/source/","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\";\n },\n version: \"2.1.4\"\n };\n\n $NullElement.prototype = new $Element();\n $NullElement.prototype.toString = function() {return \"\"};\n\n $Document.prototype = new $Element();\n $Document.prototype.toString = function() {return \"#document\"};\n\n var WINDOW = window;\n var DOCUMENT = document;\n var HTML = DOCUMENT.documentElement;\n\n var CUSTOM_EVENT_TYPE = \"dataavailable\";\n var RETURN_THIS = function() { return this };\n var RETURN_TRUE = function() {return true};\n var RETURN_FALSE = function() {return false};\n var VENDOR_PREFIXES = [\"Webkit\", \"O\", \"Moz\", \"ms\"];\n\n var userAgent = WINDOW.navigator.userAgent;\n var jscriptVersion = WINDOW.ScriptEngineMajorVersion;\n\n var JSCRIPT_VERSION = jscriptVersion && jscriptVersion();\n var LEGACY_ANDROID = ~userAgent.indexOf(\"Android\") && userAgent.indexOf(\"Chrome\") < 0;\n var WEBKIT_PREFIX = WINDOW.WebKitAnimationEvent ? \"-webkit-\" : \"\";\n\n var DOM = new $Document(DOCUMENT);\n\n var util$index$$arrayProto = Array.prototype;\n\n var util$index$$every = util$index$$arrayProto.every;\n var util$index$$each = util$index$$arrayProto.forEach;\n var util$index$$filter = util$index$$arrayProto.filter;\n var util$index$$map = util$index$$arrayProto.map;\n var util$index$$slice = util$index$$arrayProto.slice;\n var util$index$$isArray = Array.isArray;\n var util$index$$keys = Object.keys;\n\n function util$index$$computeStyle(node) {\n if (JSCRIPT_VERSION < 9) {\n return node.currentStyle;\n } else {\n return node.ownerDocument.defaultView.getComputedStyle(node);\n }\n }\n\n function util$index$$injectElement(node) {\n if (node && node.nodeType === 1) {\n return node.ownerDocument.getElementsByTagName(\"head\")[0].appendChild(node);\n }\n }\n\n function util$index$$safeCall(context, fn, arg1, arg2) {\n if (typeof fn === \"string\") fn = context[fn];\n\n try {\n return fn.call(context, arg1, arg2);\n } catch (err) {\n WINDOW.setTimeout(function() { throw err }, 1);\n\n return false;\n }\n }\n\n function util$index$$register(mixins, factory, defaultFactory) {\n var proto = defaultFactory ? $Element.prototype : $Document.prototype;\n\n if (factory == null) {\n factory = function(methodName, strategy) {return strategy};\n }\n\n util$index$$keys(mixins).forEach(function(methodName) {\n var args = [methodName].concat(mixins[methodName]);\n\n proto[methodName] = factory.apply(null, args);\n\n if (defaultFactory) {\n $NullElement.prototype[methodName] = defaultFactory.apply(null, args);\n }\n });\n }\n function MethodError(methodName, args) {var type = arguments[2];if(type === void 0)type = \"$Element\";\n var url = \"http://chemerisuk.github.io/better-dom/\" + type + \".html#\" + methodName,\n line = \"invalid call `\" + type + (type === \"DOM\" ? \".\" : \"#\") + methodName + \"(\";\n\n line += util$index$$map.call(args, String).join(\", \") + \")`. \";\n\n this.message = line + \"Check \" + url + \" to verify the arguments\";\n }\n\n MethodError.prototype = new TypeError();\n\n function StaticMethodError(methodName, args) {\n MethodError.call(this, methodName, args, \"DOM\");\n }\n\n StaticMethodError.prototype = new TypeError();\n\n function DocumentTypeError(methodName, args) {\n MethodError.call(this, methodName, args, \"$Document\");\n }\n\n DocumentTypeError.prototype = new TypeError();\n\n var // operator type / priority object\n global$emmet$$operators = {\"(\": 1,\")\": 2,\"^\": 3,\">\": 4,\"+\": 5,\"*\": 6,\"`\": 7,\"[\": 8,\".\": 8,\"#\": 8},\n global$emmet$$reParse = /`[^`]*`|\\[[^\\]]*\\]|\\.[^()>^+*`[#]+|[^()>^+*`[#.]+|\\^+|./g,\n global$emmet$$reAttr = /\\s*([\\w\\-]+)(?:=((?:`([^`]*)`)|[^\\s]*))?/g,\n global$emmet$$reIndex = /(\\$+)(?:@(-)?(\\d+)?)?/g,\n global$emmet$$reDot = /\\./g,\n global$emmet$$reDollar = /\\$/g,\n global$emmet$$tagCache = {\"\": \"\"},\n global$emmet$$normalizeAttrs = function(_, name, value, rawValue) {\n // try to detemnie which kind of quotes to use\n var quote = value && value.indexOf(\"\\\"\") >= 0 ? \"'\" : \"\\\"\";\n\n if (typeof rawValue === \"string\") {\n // grab unquoted value for smart quotes\n value = rawValue;\n } else if (typeof value !== \"string\") {\n // handle boolean attributes by using name as value\n value = name;\n }\n // always wrap attribute values with quotes even they don't exist\n return \" \" + name + \"=\" + quote + value + quote;\n },\n global$emmet$$injectTerm = function(term, end) {return function(html) {\n // find index of where to inject the term\n var index = end ? html.lastIndexOf(\"<\") : html.indexOf(\">\");\n // inject the term into the HTML string\n return html.slice(0, index) + term + html.slice(index);\n }},\n global$emmet$$makeTerm = function(tag) {\n return global$emmet$$tagCache[tag] || (global$emmet$$tagCache[tag] = \"<\" + tag + \">\");\n },\n global$emmet$$makeIndexedTerm = function(n, term) {\n var result = Array(n), i;\n\n for (i = 0; i < n; ++i) {\n result[i] = term.replace(global$emmet$$reIndex, function(expr, fmt, sign, base) {\n var index = (sign ? n - i - 1 : i) + (base ? +base : 1);\n // handle zero-padded index values, like $$$ etc.\n return (fmt + index).slice(-fmt.length).replace(global$emmet$$reDollar, \"0\");\n });\n }\n\n return result;\n },\n global$emmet$$reUnsafe = /[&<>\"']/g,\n // http://stackoverflow.com/questions/6234773/can-i-escape-html-special-chars-in-javascript\n global$emmet$$safeSymbol = {\"&\": \"&\", \"<\": \"<\", \">\": \">\", \"\\\"\": \""\", \"'\": \"'\"};\n\n // populate empty tag names with result\n \"area base br col hr img input link meta param command keygen source\".split(\" \").forEach(function(tag) {\n global$emmet$$tagCache[tag] = \"<\" + tag + \">\";\n });\n\n DOM.emmet = function(template, varMap) {var $D$0;var $D$1;var $D$2;\n if (typeof template !== \"string\") throw new StaticMethodError(\"emmet\", arguments);\n\n if (varMap) template = DOM.format(template, varMap);\n\n if (template in global$emmet$$tagCache) {return global$emmet$$tagCache[template];}\n\n // transform template string into RPN\n\n var stack = [], output = [];\n\n $D$2 = (template.match(global$emmet$$reParse));$D$0 = 0;$D$1 = $D$2.length;for (var str ;$D$0 < $D$1;){str = ($D$2[$D$0++]);\n var op = str[0];\n var priority = global$emmet$$operators[op];\n\n if (priority) {\n if (str !== \"(\") {\n // for ^ operator need to skip > str.length times\n for (var i = 0, n = (op === \"^\" ? str.length : 1); i < n; ++i) {\n while (stack[0] !== op && global$emmet$$operators[stack[0]] >= priority) {\n var head = stack.shift();\n\n output.push(head);\n // for ^ operator stop shifting when the first > is found\n if (op === \"^\" && head === \">\") break;\n }\n }\n }\n\n if (str === \")\") {\n stack.shift(); // remove \"(\" symbol from stack\n } else {\n // handle values inside of `...` and [...] sections\n if (op === \"[\" || op === \"`\") {\n output.push(str.slice(1, -1));\n }\n // handle multiple classes, e.g. a.one.two\n if (op === \".\") {\n output.push(str.slice(1).replace(global$emmet$$reDot, \" \"));\n }\n\n stack.unshift(op);\n }\n } else {\n output.push(str);\n }\n };$D$0 = $D$1 = $D$2 = void 0;\n\n output = output.concat(stack);\n\n // transform RPN into html nodes\n\n stack = [];\n\n $D$0 = 0;$D$1 = output.length;for (var str$0 ;$D$0 < $D$1;){str$0 = (output[$D$0++]);\n if (str$0 in global$emmet$$operators) {\n var value = stack.shift();\n var node = stack.shift();\n\n if (typeof node === \"string\") {\n node = [ global$emmet$$makeTerm(node) ];\n }\n\n switch(str$0) {\n case \".\":\n value = global$emmet$$injectTerm(\" class=\\\"\" + value + \"\\\"\");\n break;\n\n case \"#\":\n value = global$emmet$$injectTerm(\" id=\\\"\" + value + \"\\\"\");\n break;\n\n case \"[\":\n value = global$emmet$$injectTerm(value.replace(global$emmet$$reAttr, global$emmet$$normalizeAttrs));\n break;\n\n case \"*\":\n node = global$emmet$$makeIndexedTerm(+value, node.join(\"\"));\n break;\n\n case \"`\":\n stack.unshift(node);\n // escape unsafe HTML symbols\n node = [ value.replace(global$emmet$$reUnsafe, function(ch) {return global$emmet$$safeSymbol[ch]}) ];\n break;\n\n default: value = typeof value === \"string\" ? global$emmet$$makeTerm(value) : value.join(\"\");\n\n if (str$0 === \">\") {\n value = global$emmet$$injectTerm(value, true);\n } else {\n node.push(value);\n }\n }\n\n str$0 = typeof value === \"function\" ? node.map(value) : node;\n }\n\n stack.unshift(str$0);\n };$D$0 = $D$1 = void 0;\n\n if (output.length === 1) {\n // handle single tag case\n output = global$emmet$$makeTerm(stack[0]);\n } else {\n output = stack[0].join(\"\");\n }\n\n return output;\n };\n\n var global$emmet$$default = global$emmet$$tagCache;\n\n util$index$$register({\n create: \"\",\n createAll: \"All\"\n\n }, function(methodName, all) {return function(value, varMap) {\n var doc = this[0].ownerDocument,\n sandbox = this._[\"sandbox2001004\"];\n\n if (!sandbox) {\n sandbox = doc.createElement(\"div\");\n this._[\"sandbox2001004\"] = sandbox;\n }\n\n var nodes, el;\n\n if (value && value in global$emmet$$default) {\n nodes = doc.createElement(value);\n\n if (all) nodes = [ new $Element(nodes) ];\n } else {\n value = value.trim();\n\n if (value[0] === \"<\" && value[value.length - 1] === \">\") {\n value = varMap ? DOM.format(value, varMap) : value;\n } else {\n value = DOM.emmet(value, varMap);\n }\n\n sandbox.innerHTML = value; // parse input HTML string\n\n for (nodes = all ? [] : null; el = sandbox.firstChild; ) {\n sandbox.removeChild(el); // detach element from the sandbox\n\n if (el.nodeType === 1) {\n if (all) {\n nodes.push(new $Element(el));\n } else {\n nodes = el;\n\n break; // stop early, because need only the first element\n }\n }\n }\n }\n\n return all ? nodes : $Element(nodes);\n }});\n\n // Helper for css selectors\n\n var util$selectormatcher$$rquickIs = /^(\\w*)(?:#([\\w\\-]+))?(?:\\[([\\w\\-\\=]+)\\])?(?:\\.([\\w\\-]+))?$/,\n util$selectormatcher$$propName = VENDOR_PREFIXES.concat(null)\n .map(function(p) {return (p ? p.toLowerCase() + \"M\" : \"m\") + \"atchesSelector\"})\n .reduceRight(function(propName, p) {return propName || p in HTML && p}, null);\n\n var util$selectormatcher$$default = function(selector, context) {\n if (typeof selector !== \"string\") return null;\n\n var quick = util$selectormatcher$$rquickIs.exec(selector);\n\n if (quick) {\n // Quick matching is inspired by jQuery:\n // 0 1 2 3 4\n // [ _, tag, id, attribute, class ]\n if (quick[1]) quick[1] = quick[1].toLowerCase();\n if (quick[3]) quick[3] = quick[3].split(\"=\");\n if (quick[4]) quick[4] = \" \" + quick[4] + \" \";\n }\n\n return function(node) {var $D$3;var $D$4;\n var result, found;\n if (!quick && !util$selectormatcher$$propName) {\n found = (context || node.ownerDocument).querySelectorAll(selector);\n }\n\n for (; node && node.nodeType === 1; node = node.parentNode) {\n if (quick) {\n result = (\n (!quick[1] || node.nodeName.toLowerCase() === quick[1]) &&\n (!quick[2] || node.id === quick[2]) &&\n (!quick[3] || (quick[3][1] ? node.getAttribute(quick[3][0]) === quick[3][1] : node.hasAttribute(quick[3][0]))) &&\n (!quick[4] || (\" \" + node.className + \" \").indexOf(quick[4]) >= 0)\n );\n } else {\n if (util$selectormatcher$$propName) {\n result = node[util$selectormatcher$$propName](selector);\n } else {\n $D$3 = 0;$D$4 = found.length;for (var n ;$D$3 < $D$4;){n = (found[$D$3++]);\n if (n === node) return n;\n };$D$3 = $D$4 = void 0;\n }\n }\n\n if (result || !context || node === context) break;\n }\n\n return result && node;\n };\n };\n\n var util$extensionhandler$$rePrivateFunction = /^(?:on|do)[A-Z]/;\n\n var util$extensionhandler$$default = function(selector, condition, mixins, index) {\n var ctr = mixins.hasOwnProperty(\"constructor\") && mixins.constructor,\n matcher = util$selectormatcher$$default(selector);\n\n return function(node, mock) {\n var el = $Element(node);\n // skip previously invoked or mismatched elements\n if (~el._[\"extension2001004\"].indexOf(index) || !matcher(node)) return;\n // mark extension as invoked\n el._[\"extension2001004\"].push(index);\n\n if (mock === true || condition(el) !== false) {\n // apply all private/public members to the element's interface\n var privateFunctions = Object.keys(mixins).filter(function(prop) {\n var value = mixins[prop];\n // TODO: private functions are deprecated, remove this line later\n if (util$extensionhandler$$rePrivateFunction.exec(prop)) {\n // preserve context for private functions\n el[prop] = function() {return value.apply(el, arguments)};\n\n return !mock;\n }\n\n if (prop !== \"constructor\") {\n el[prop] = value;\n\n return !mock && prop[0] === \"_\";\n }\n });\n\n // invoke constructor if it exists\n // make a safe call so live extensions can't break each other\n if (ctr) util$index$$safeCall(el, ctr);\n // remove event handlers from element's interface\n privateFunctions.forEach(function(prop) { delete el[prop] });\n }\n };\n };\n\n // Inspired by trick discovered by Daniel Buchner:\n // https://github.com/csuwldcat/SelectorListener\n\n var document$extend$$cssText;\n\n if (JSCRIPT_VERSION < 10) {\n var document$extend$$legacyScripts = util$index$$filter.call(DOCUMENT.scripts, function(el) {return el.src.indexOf(\"better-dom-legacy.js\") >= 0});\n\n if (document$extend$$legacyScripts.length < 1) {\n throw new Error(\"In order to use live extensions in IE < 10 you have to include extra files. See https://github.com/chemerisuk/better-dom#notes-about-old-ies for details.\");\n }\n\n document$extend$$cssText = \"-ms-behavior:url(\" + document$extend$$legacyScripts[0].src.replace(\".js\", \".htc\") + \") !important\";\n } else {\n document$extend$$cssText = WEBKIT_PREFIX + \"animation-name:DOM2001004 !important;\";\n document$extend$$cssText += WEBKIT_PREFIX + \"animation-duration:1ms !important\";\n }\n\n util$index$$register({\n extend: function(selector, condition, definition) {var this$0 = this;\n if (arguments.length === 1) {\n // handle case when $Document protytype is extended\n return util$index$$register(selector);\n } else if (selector === \"*\") {\n // handle case when $Element protytype is extended\n return util$index$$register(condition, null, function() {return RETURN_THIS});\n }\n\n if (arguments.length === 2) {\n definition = condition;\n condition = true;\n }\n\n if (typeof condition === \"boolean\") condition = condition ? RETURN_TRUE : RETURN_FALSE;\n if (typeof definition === \"function\") definition = {constructor: definition};\n\n if (!definition || typeof definition !== \"object\" || typeof condition !== \"function\") throw new DocumentTypeError(\"extend\", arguments);\n\n var node = this[0],\n mappings = this._[\"mappings2001004\"];\n\n if (!mappings) {\n this._[\"mappings2001004\"] = mappings = [];\n\n if (JSCRIPT_VERSION < 10) {\n node.attachEvent(\"on\" + CUSTOM_EVENT_TYPE, function() {\n var e = WINDOW.event;\n\n if (e.srcUrn === CUSTOM_EVENT_TYPE) {\n mappings.forEach(function(ext) { ext(e.srcElement) });\n }\n });\n } else {\n // declare the fake animation on the first DOM.extend method call\n this.importStyles(\"@\" + WEBKIT_PREFIX + \"keyframes DOM2001004\", \"from {opacity:.99} to {opacity:1}\");\n // use capturing to suppress internal animationstart events\n node.addEventListener(WEBKIT_PREFIX ? \"webkitAnimationStart\" : \"animationstart\", function(e) {\n if (e.animationName === \"DOM2001004\") {\n mappings.forEach(function(ext) { ext(e.target) });\n // this is an internal event - stop it immediately\n e.stopImmediatePropagation();\n }\n }, true);\n }\n }\n\n var ext = util$extensionhandler$$default(selector, condition, definition, mappings.length);\n\n mappings.push(ext);\n // live extensions are always async - append CSS asynchronously\n WINDOW.setTimeout(function() {\n // initialize extension manually to make sure that all elements\n // have appropriate methods before they are used in other DOM.extend.\n // Also fixes legacy IEs when the HTC behavior is already attached\n util$index$$each.call(node.ownerDocument.querySelectorAll(selector), ext);\n // MUST be after querySelectorAll because of legacy IEs quirks\n this$0.importStyles(selector, document$extend$$cssText);\n }, 0);\n }\n });\n\n util$index$$register({\n importScripts: function() {var urls = SLICE$0.call(arguments, 0);\n var doc = this[0].ownerDocument;\n\n var callback = function() {\n var arg = urls.shift(),\n argType = typeof arg,\n script;\n\n if (argType === \"string\") {\n script = doc.createElement(\"script\");\n script.src = arg;\n script.onload = callback;\n script.async = true;\n\n util$index$$injectElement(script);\n } else if (argType === \"function\") {\n arg();\n } else if (arg) {\n throw new DocumentTypeError(\"importScripts\", arguments);\n }\n };\n\n callback();\n }\n });\n\n util$index$$register({\n importStyles: function(selector, cssText) {\n var styleSheet = this._[\"styles2001004\"];\n\n if (!styleSheet) {\n var doc = this[0].ownerDocument,\n styleNode = util$index$$injectElement(doc.createElement(\"style\"));\n\n styleSheet = styleNode.sheet || styleNode.styleSheet;\n // store object internally\n this._[\"styles2001004\"] = styleSheet;\n }\n\n if (typeof selector !== \"string\" || typeof cssText !== \"string\") {\n throw new DocumentTypeError(\"importStyles\", arguments);\n }\n\n // insert rules one by one because of several reasons:\n // 1. IE8 does not support comma in a selector string\n // 2. if one selector fails it doesn't break others\n selector.split(\",\").forEach(function(selector) {\n try {\n if (styleSheet.cssRules) {\n styleSheet.insertRule(selector + \"{\" + cssText + \"}\", styleSheet.cssRules.length);\n } else if (selector[0] !== \"@\") {\n styleSheet.addRule(selector, cssText);\n } else {\n // addRule doesn't support at-rules, use cssText instead\n styleSheet.cssText += selector + \"{\" + cssText + \"}\";\n }\n } catch(err) {\n // silently ignore invalid rules\n }\n });\n }\n });\n\n util$index$$register({\n mock: function(content, varMap) {\n if (!content) return new $NullElement();\n\n var result = this.create(content, varMap),\n mappings = this._[\"mappings2001004\"],\n applyExtensions = function(node) {\n mappings.forEach(function(ext) { ext(node, true) });\n\n util$index$$each.call(node.children, applyExtensions);\n };\n\n if (mappings && mappings.length) {\n applyExtensions(result[0]);\n }\n\n return result;\n }\n });\n\n util$index$$register({\n child: false,\n\n children: true\n\n }, function(methodName, all) {return function(selector) {\n if (all) {\n if (selector && typeof selector !== \"string\") throw new MethodError(methodName, arguments);\n } else {\n if (selector && typeof selector !== \"number\") throw new MethodError(methodName, arguments);\n }\n\n var node = this[0],\n matcher = util$selectormatcher$$default(selector),\n children = node.children;\n if (JSCRIPT_VERSION < 9) {\n // fix IE8 bug with children collection\n children = util$index$$filter.call(children, function(node) {return node.nodeType === 1});\n }\n\n if (all) {\n if (matcher) children = util$index$$filter.call(children, matcher);\n\n return util$index$$map.call(children, $Element);\n } else {\n if (selector < 0) selector = children.length + selector;\n\n return $Element(children[selector]);\n }\n }}, function(methodName, all) {return function() {return all ? [] : new $NullElement()}});\n\n var element$classes$$reSpace = /[\\n\\t\\r]/g;\n\n util$index$$register({\n hasClass: [RETURN_FALSE, \"contains\", function(el, token) {\n return (\" \" + el[0].className + \" \")\n .replace(element$classes$$reSpace, \" \").indexOf(\" \" + token + \" \") >= 0;\n }],\n\n addClass: [RETURN_THIS, \"add\", function(el, token) {\n if (!el.hasClass(token)) el[0].className += \" \" + token;\n }],\n\n removeClass: [RETURN_THIS, \"remove\", function(el, token) {\n el[0].className = (\" \" + el[0].className + \" \")\n .replace(element$classes$$reSpace, \" \").replace(\" \" + token + \" \", \" \").trim();\n }],\n\n toggleClass: [RETURN_FALSE, \"toggle\", function(el, token) {\n var hasClass = el.hasClass(token);\n\n if (hasClass) {\n el.removeClass(token);\n } else {\n el[0].className += \" \" + token;\n }\n\n return !hasClass;\n }]\n }, function(methodName, defaultStrategy, nativeMethodName, strategy) {\n if (HTML.classList) {\n // use native classList property if possible\n strategy = function(el, token) {\n return el[0].classList[nativeMethodName](token);\n };\n }\n\n if (defaultStrategy === RETURN_FALSE) {\n return function(token, force) {\n if (typeof force === \"boolean\" && nativeMethodName === \"toggle\") {\n this[force ? \"addClass\" : \"removeClass\"](token);\n\n return force;\n }\n\n if (typeof token !== \"string\") throw new MethodError(methodName, arguments);\n\n return strategy(this, token);\n };\n } else {\n return function() {var $D$5;var $D$6;\n var tokens = arguments;\n\n $D$5 = 0;$D$6 = tokens.length;for (var token ;$D$5 < $D$6;){token = (tokens[$D$5++]);\n if (typeof token !== \"string\") throw new MethodError(methodName, arguments);\n\n strategy(this, token);\n };$D$5 = $D$6 = void 0;\n\n return this;\n };\n }\n }, function(methodName, defaultStrategy) {return defaultStrategy});\n\n util$index$$register({\n clone: function(deep) {\n if (typeof deep !== \"boolean\") throw new MethodError(\"clone\", arguments);\n\n var node = this[0], result;\n if (JSCRIPT_VERSION < 9) {\n result = DOM.create(node.outerHTML);\n\n if (!deep) result.set(\"\");\n } else {\n result = new $Element(node.cloneNode(deep));\n }\n\n return result;\n }\n }, null, function() {return function() {return new $NullElement()}});\n\n util$index$$register({\n contains: function(element) {\n var node = this[0];\n\n if (element instanceof $Element) {\n var otherNode = element[0];\n\n if (otherNode === node) return true;\n if (node.contains) {\n return node.contains(otherNode);\n } else {\n return node.compareDocumentPosition(otherNode) & 16;\n }\n }\n\n throw new MethodError(\"contains\", arguments);\n }\n }, null, function() {return RETURN_FALSE});\n\n // Helper for CSS properties access\n\n var util$stylehooks$$reDash = /\\-./g,\n util$stylehooks$$hooks = {get: {}, set: {}, find: function(name, style) {\n var propName = name.replace(util$stylehooks$$reDash, function(str) {return str[1].toUpperCase()});\n\n if (!(propName in style)) {\n propName = VENDOR_PREFIXES\n .map(function(prefix) {return prefix + propName[0].toUpperCase() + propName.slice(1)})\n .filter(function(prop) {return prop in style})[0];\n }\n\n return this.get[name] = this.set[name] = propName;\n }},\n util$stylehooks$$directions = [\"Top\", \"Right\", \"Bottom\", \"Left\"],\n util$stylehooks$$shortCuts = {\n font: [\"fontStyle\", \"fontSize\", \"/\", \"lineHeight\", \"fontFamily\"],\n padding: util$stylehooks$$directions.map(function(dir) {return \"padding\" + dir}),\n margin: util$stylehooks$$directions.map(function(dir) {return \"margin\" + dir}),\n \"border-width\": util$stylehooks$$directions.map(function(dir) {return \"border\" + dir + \"Width\"}),\n \"border-style\": util$stylehooks$$directions.map(function(dir) {return \"border\" + dir + \"Style\"})\n };\n\n // Exclude the following css properties from adding px\n \"float fill-opacity font-weight line-height opacity orphans widows z-index zoom\".split(\" \").forEach(function(propName) {\n var stylePropName = propName.replace(util$stylehooks$$reDash, function(str) {return str[1].toUpperCase()});\n\n if (propName === \"float\") {\n stylePropName = \"cssFloat\" in HTML.style ? \"cssFloat\" : \"styleFloat\";\n // normalize float css property\n util$stylehooks$$hooks.get[propName] = util$stylehooks$$hooks.set[propName] = stylePropName;\n } else {\n util$stylehooks$$hooks.get[propName] = stylePropName;\n util$stylehooks$$hooks.set[propName] = function(value, style) {\n style[stylePropName] = value.toString();\n };\n }\n });\n\n // normalize property shortcuts\n util$index$$keys(util$stylehooks$$shortCuts).forEach(function(key) {\n var props = util$stylehooks$$shortCuts[key];\n\n util$stylehooks$$hooks.get[key] = function(style) {\n var result = [],\n hasEmptyStyleValue = function(prop, index) {\n result.push(prop === \"/\" ? prop : style[prop]);\n\n return !result[index];\n };\n\n return props.some(hasEmptyStyleValue) ? \"\" : result.join(\" \");\n };\n\n util$stylehooks$$hooks.set[key] = function(value, style) {\n if (value && \"cssText\" in style) {\n // normalize setting complex property across browsers\n style.cssText += \";\" + key + \":\" + value;\n } else {\n props.forEach(function(name) {return style[name] = typeof value === \"number\" ? value + \"px\" : value.toString()});\n }\n };\n });\n\n var util$stylehooks$$default = util$stylehooks$$hooks;\n\n util$index$$register({\n css: function(name, value) {var this$0 = this;\n var len = arguments.length,\n node = this[0],\n style = node.style,\n computed;\n\n if (len === 1 && (typeof name === \"string\" || util$index$$isArray(name))) {\n var strategy = function(name) {\n var getter = util$stylehooks$$default.get[name] || util$stylehooks$$default.find(name, style),\n value = typeof getter === \"function\" ? getter(style) : style[getter];\n\n if (!value) {\n if (!computed) computed = util$index$$computeStyle(node);\n\n value = typeof getter === \"function\" ? getter(computed) : computed[getter];\n }\n\n return value;\n };\n\n if (typeof name === \"string\") {\n return strategy(name);\n } else {\n return name.map(strategy).reduce(function(memo, value, index) {\n memo[name[index]] = value;\n\n return memo;\n }, {});\n }\n }\n\n if (len === 2 && typeof name === \"string\") {\n var setter = util$stylehooks$$default.set[name] || util$stylehooks$$default.find(name, style);\n\n if (typeof value === \"function\") {\n value = value(this);\n }\n\n if (value == null) value = \"\";\n\n if (typeof setter === \"function\") {\n setter(value, style);\n } else {\n style[setter] = typeof value === \"number\" ? value + \"px\" : value.toString();\n }\n } else if (len === 1 && name && typeof name === \"object\") {\n util$index$$keys(name).forEach(function(key) { this$0.css(key, name[key]) });\n } else {\n throw new MethodError(\"css\", arguments);\n }\n\n return this;\n }\n }, null, function() {return function(name) {\n if (arguments.length === 1 && util$index$$isArray(name)) {\n return {};\n }\n\n if (arguments.length !== 1 || typeof name !== \"string\") {\n return this;\n }\n }});\n\n var element$define$$ATTR_CASE = JSCRIPT_VERSION < 9 ? \"toUpperCase\" : \"toLowerCase\";\n\n util$index$$register({\n define: function(name, getter, setter) {var this$0 = this;\n var node = this[0];\n\n if (typeof name !== \"string\" || typeof getter !== \"function\" || typeof setter !== \"function\") {\n throw new MethodError(\"define\", arguments);\n }\n\n // Use trick to fix infinite recursion in IE8:\n // http://www.smashingmagazine.com/2014/11/28/complete-polyfill-html5-details-element/\n\n var attrName = name[element$define$$ATTR_CASE]();\n var _setAttribute = node.setAttribute;\n var _removeAttribute = node.removeAttribute;\n if (JSCRIPT_VERSION < 9) {\n // read attribute before the defineProperty call\n // to set the correct initial state for IE8\n var initialValue = node.getAttribute(name);\n\n if (initialValue !== null) {\n node[attrName] = initialValue;\n }\n }\n\n Object.defineProperty(node, name, {\n get: function() {\n var attrValue = node.getAttribute(attrName, 1);\n // attr value -> prop value\n return getter.call(this$0, attrValue);\n },\n set: function(propValue) {\n // prop value -> attr value\n var attrValue = setter.call(this$0, propValue);\n\n if (attrValue == null) {\n _removeAttribute.call(node, attrName, 1);\n } else {\n _setAttribute.call(node, attrName, attrValue, 1);\n }\n }\n });\n\n // override methods to catch changes from attributes too\n node.setAttribute = function(name, value, flags) {\n if (attrName === name[element$define$$ATTR_CASE]()) {\n node[name] = getter.call(this$0, value);\n } else {\n _setAttribute.call(node, name, value, flags);\n }\n };\n\n node.removeAttribute = function(name, flags) {\n if (attrName === name[element$define$$ATTR_CASE]()) {\n node[name] = getter.call(this$0, null);\n } else {\n _removeAttribute.call(node, name, flags);\n }\n };\n\n return this;\n }\n }, null, function() {return RETURN_THIS});\n\n util$index$$register({\n empty: function() {\n return this.set(\"\");\n }\n }, null, function() {return RETURN_THIS});\n\n // big part of code inspired by Sizzle:\n // https://github.com/jquery/sizzle/blob/master/sizzle.js\n\n var element$find$$rquick = DOCUMENT.getElementsByClassName ? /^(?:(\\w+)|\\.([\\w\\-]+))$/ : /^(?:(\\w+))$/,\n element$find$$rescape = /'|\\\\/g;\n\n util$index$$register({\n find: \"\",\n\n findAll: \"All\"\n\n }, function(methodName, all) {return function(selector) {\n if (typeof selector !== \"string\") throw new MethodError(methodName, arguments);\n\n var node = this[0],\n quickMatch = element$find$$rquick.exec(selector),\n result, old, nid, context;\n\n if (quickMatch) {\n if (quickMatch[1]) {\n // speed-up: \"TAG\"\n result = node.getElementsByTagName(selector);\n } else {\n // speed-up: \".CLASS\"\n result = node.getElementsByClassName(quickMatch[2]);\n }\n\n if (result && !all) result = result[0];\n } else {\n old = true;\n context = node;\n\n if (node !== node.ownerDocument.documentElement) {\n // qSA works strangely on Element-rooted queries\n // We can work around this by specifying an extra ID on the root\n // and working up from there (Thanks to Andrew Dupont for the technique)\n if ( (old = node.getAttribute(\"id\")) ) {\n nid = old.replace(element$find$$rescape, \"\\\\$&\");\n } else {\n nid = \"DOM2001004\";\n node.setAttribute(\"id\", nid);\n }\n\n nid = \"[id='\" + nid + \"'] \";\n selector = nid + selector.split(\",\").join(\",\" + nid);\n }\n\n result = util$index$$safeCall(context, \"querySelector\" + all, selector);\n\n if (!old) node.removeAttribute(\"id\");\n }\n\n return all ? util$index$$map.call(result, $Element) : $Element(result);\n }}, function(methodName, all) {return function() {return all ? [] : new $NullElement()}});\n\n var util$eventhooks$$hooks = {};\n if (\"onfocusin\" in DOCUMENT.documentElement) {\n util$eventhooks$$hooks.focus = function(handler) { handler._type = \"focusin\" };\n util$eventhooks$$hooks.blur = function(handler) { handler._type = \"focusout\" };\n } else {\n // firefox doesn't support focusin/focusout events\n util$eventhooks$$hooks.focus = util$eventhooks$$hooks.blur = function(handler) { handler.capturing = true };\n }\n if (DOCUMENT.createElement(\"input\").validity) {\n util$eventhooks$$hooks.invalid = function(handler) { handler.capturing = true };\n }\n if (JSCRIPT_VERSION < 9) {\n // fix non-bubbling form events for IE8 therefore\n // use custom event type instead of original one\n [\"submit\", \"change\", \"reset\"].forEach(function(name) {\n util$eventhooks$$hooks[name] = function(handler) { handler._type = \"_\" };\n });\n }\n\n var util$eventhooks$$default = util$eventhooks$$hooks;\n\n function util$eventhandler$$getEventProperty(name, e, type, node, target, currentTarget) {\n if (typeof name === \"number\") {\n var args = e[\"__2001004__\"];\n\n return args ? args[name] : void 0;\n }\n if (JSCRIPT_VERSION < 9) {\n var docEl = node.ownerDocument.documentElement;\n\n switch (name) {\n case \"which\":\n return e.keyCode;\n case \"button\":\n var button = e.button;\n // click: 1 === left; 2 === middle; 3 === right\n return button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) );\n case \"pageX\":\n return e.clientX + docEl.scrollLeft - docEl.clientLeft;\n case \"pageY\":\n return e.clientY + docEl.scrollTop - docEl.clientTop;\n case \"preventDefault\":\n return function() {return e.returnValue = false};\n case \"stopPropagation\":\n return function() {return e.cancelBubble = true};\n }\n }\n\n switch (name) {\n case \"type\":\n return type;\n case \"defaultPrevented\":\n // IE8 and Android 2.3 use returnValue instead of defaultPrevented\n return \"defaultPrevented\" in e ? e.defaultPrevented : e.returnValue === false;\n case \"target\":\n return $Element(target);\n case \"currentTarget\":\n return $Element(currentTarget);\n case \"relatedTarget\":\n return $Element(e.relatedTarget || e[(e.toElement === node ? \"from\" : \"to\") + \"Element\"]);\n }\n\n var value = e[name];\n\n if (typeof value === \"function\") {\n return function() {return value.apply(e, arguments)};\n }\n\n return value;\n }\n\n function util$eventhandler$$EventHandler(type, selector, callback, props, el, once) {\n var node = el[0],\n hook = util$eventhooks$$default[type],\n matcher = util$selectormatcher$$default(selector, node),\n handler = function(e) {\n e = e || WINDOW.event;\n // early stop in case of default action\n if (util$eventhandler$$EventHandler.skip === type) return;\n if (handler._type === CUSTOM_EVENT_TYPE && e.srcUrn !== type) {\n return; // handle custom events in legacy IE\n }\n // srcElement can be null in legacy IE when target is document\n var target = e.target || e.srcElement || node.ownerDocument.documentElement,\n currentTarget = matcher ? matcher(target) : node,\n args = props || [];\n\n // early stop for late binding or when target doesn't match selector\n if (!currentTarget) return;\n\n // off callback even if it throws an exception later\n if (once) el.off(type, callback);\n\n if (props) {\n args = args.map(function(name) {return util$eventhandler$$getEventProperty(\n name, e, type, node, target, currentTarget)});\n } else {\n args = util$index$$slice.call(e[\"__2001004__\"] || [0], 1);\n }\n\n // prevent default if handler returns false\n if (callback.apply(el, args) === false) {\n if (JSCRIPT_VERSION < 9) {\n e.returnValue = false;\n } else {\n e.preventDefault();\n }\n }\n };\n\n if (hook) handler = hook(handler, type) || handler;\n if (JSCRIPT_VERSION < 9 && !(\"on\" + (handler._type || type) in node)) {\n // handle custom events for IE8\n handler._type = CUSTOM_EVENT_TYPE;\n }\n\n handler.type = type;\n handler.callback = callback;\n handler.selector = selector;\n\n return handler;\n }\n\n var util$eventhandler$$default = util$eventhandler$$EventHandler;\n\n util$index$$register({\n fire: function(type) {\n var node = this[0],\n e, eventType, canContinue;\n\n if (typeof type === \"string\") {\n var hook = util$eventhooks$$default[type],\n handler = {};\n\n if (hook) handler = hook(handler) || handler;\n\n eventType = handler._type || type;\n } else {\n throw new MethodError(\"fire\", arguments);\n }\n if (JSCRIPT_VERSION < 9) {\n e = node.ownerDocument.createEventObject();\n e[\"__2001004__\"] = arguments;\n // handle custom events for legacy IE\n if (!(\"on\" + eventType in node)) eventType = CUSTOM_EVENT_TYPE;\n // store original event type\n if (eventType === CUSTOM_EVENT_TYPE) e.srcUrn = type;\n\n node.fireEvent(\"on\" + eventType, e);\n\n canContinue = e.returnValue !== false;\n } else {\n e = node.ownerDocument.createEvent(\"HTMLEvents\");\n e[\"__2001004__\"] = arguments;\n e.initEvent(eventType, true, true);\n canContinue = node.dispatchEvent(e);\n }\n\n // call native function to trigger default behavior\n if (canContinue && node[type]) {\n // prevent re-triggering of the current event\n util$eventhandler$$default.skip = type;\n\n util$index$$safeCall(node, type);\n\n util$eventhandler$$default.skip = null;\n }\n\n return canContinue;\n }\n }, null, function() {return RETURN_TRUE});\n\n var util$accessorhooks$$hooks = {get: {}, set: {}};\n\n // fix camel cased attributes\n \"tabIndex readOnly maxLength cellSpacing cellPadding rowSpan colSpan useMap frameBorder contentEditable\".split(\" \").forEach(function(key) {\n util$accessorhooks$$hooks.get[ key.toLowerCase() ] = function(node) {return node[key]};\n });\n\n // style hook\n util$accessorhooks$$hooks.get.style = function(node) {return node.style.cssText};\n util$accessorhooks$$hooks.set.style = function(node, value) { node.style.cssText = value };\n\n // title hook for DOM\n util$accessorhooks$$hooks.get.title = function(node) {\n var doc = node.ownerDocument;\n\n return (node === doc.documentElement ? doc : node).title;\n };\n\n util$accessorhooks$$hooks.set.title = function(node, value) {\n var doc = node.ownerDocument;\n\n (node === doc.documentElement ? doc : node).title = value;\n };\n\n // some browsers don't recognize input[type=email] etc.\n util$accessorhooks$$hooks.get.type = function(node) {return node.getAttribute(\"type\") || node.type};\n if (JSCRIPT_VERSION < 9) {\n // IE8 has innerText but not textContent\n util$accessorhooks$$hooks.get.textContent = function(node) {return node.innerText};\n util$accessorhooks$$hooks.set.textContent = function(node, value) { node.innerText = value };\n\n // IE8 sometimes breaks on innerHTML\n util$accessorhooks$$hooks.set.innerHTML = function(node, value) {\n try {\n node.innerHTML = value;\n } catch (err) {\n var sandbox = node.ownerDocument.createElement(\"div\"), it;\n\n node.innerText = \"\"; // cleanup inner content\n sandbox.innerHTML = value;\n\n while (it = sandbox.firstChild) {\n node.appendChild(it);\n }\n }\n };\n }\n\n var util$accessorhooks$$default = util$accessorhooks$$hooks;\n\n var element$get$$reUpper = /[A-Z]/g,\n element$get$$readPrivateProperty = function(node, key) {\n // convert from camel case to dash-separated value\n key = key.replace(element$get$$reUpper, function(l) {return \"-\" + l.toLowerCase()});\n\n var value = node.getAttribute(\"data-\" + key);\n\n if (value != null) {\n // try to recognize and parse object notation syntax\n if (value[0] === \"{\" && value[value.length - 1] === \"}\") {\n try {\n value = JSON.parse(value);\n } catch (err) {\n // just return the value itself\n }\n }\n }\n\n return value;\n };\n\n util$index$$register({\n get: function(name) {var this$0 = this;\n var node = this[0],\n hook = util$accessorhooks$$default.get[name];\n\n if (hook) return hook(node, name);\n\n if (typeof name === \"string\") {\n if (name in node) {\n return node[name];\n } else if (name[0] !== \"_\") {\n return node.getAttribute(name);\n } else {\n var key = name.slice(1),\n data = this._;\n\n if (!(key in data)) {\n data[key] = element$get$$readPrivateProperty(node, key);\n }\n\n return data[key];\n }\n } else if (util$index$$isArray(name)) {\n return name.reduce(function(memo, key) {\n return (memo[key] = this$0.get(key), memo);\n }, {});\n } else if (name === void 0) {\n // TODO: remove this line in future\n return this.value();\n } else {\n throw new MethodError(\"get\", arguments);\n }\n }\n }, null, function() {return function() {}});\n\n util$index$$register({\n after: [\"afterend\", true, function(node, relatedNode) {\n node.parentNode.insertBefore(relatedNode, node.nextSibling);\n }],\n\n before: [\"beforebegin\", true, function(node, relatedNode) {\n node.parentNode.insertBefore(relatedNode, node);\n }],\n\n prepend: [\"afterbegin\", false, function(node, relatedNode) {\n node.insertBefore(relatedNode, node.firstChild);\n }],\n\n append: [\"beforeend\", false, function(node, relatedNode) {\n node.appendChild(relatedNode);\n }],\n\n replace: [\"\", true, function(node, relatedNode) {\n node.parentNode.replaceChild(relatedNode, node);\n }],\n\n remove: [\"\", true, function(node) {\n node.parentNode.removeChild(node);\n }]\n }, function(methodName, fastStrategy, requiresParent, strategy) {return function() {var contents = SLICE$0.call(arguments, 0);var this$0 = this;\n var node = this[0];\n\n if (requiresParent && !node.parentNode) return this;\n\n // the idea of the algorithm is to construct HTML string\n // when possible or use document fragment as a fallback to\n // invoke manipulation using a single method call\n var fragment = fastStrategy ? \"\" : node.ownerDocument.createDocumentFragment();\n\n contents.forEach(function(content) {\n if (typeof content === \"function\") {\n content = content(this$0);\n }\n\n if (typeof content === \"string\") {\n if (typeof fragment === \"string\") {\n fragment += content.trim();\n } else {\n content = DOM.createAll(content);\n }\n } else if (content instanceof $Element) {\n content = [ content ];\n }\n\n if (util$index$$isArray(content)) {\n if (typeof fragment === \"string\") {\n // append existing string to fragment\n content = DOM.createAll(fragment).concat(content);\n // fallback to document fragment strategy\n fragment = node.ownerDocument.createDocumentFragment();\n }\n\n content.forEach(function(el) {\n fragment.appendChild(el[0]);\n });\n }\n });\n\n if (typeof fragment === \"string\") {\n node.insertAdjacentHTML(fastStrategy, fragment);\n } else {\n strategy(node, fragment);\n }\n\n return this;\n }}, function() {return RETURN_THIS});\n\n util$index$$register({\n map: function(fn, context) {\n if (typeof fn !== \"function\") {\n throw new MethodError(\"map\", arguments);\n }\n\n return [ fn.call(context, this) ];\n }\n }, null, function() {return function() {return []}});\n\n var util$selectorhooks$$isHidden = function(node) {\n var computed = util$index$$computeStyle(node);\n\n return computed.visibility === \"hidden\" || computed.display === \"none\";\n };\n\n var util$selectorhooks$$default = {\n \":focus\": function(node) {return node === node.ownerDocument.activeElement},\n\n \":visible\": function(node) {return !util$selectorhooks$$isHidden(node)},\n\n \":hidden\": util$selectorhooks$$isHidden\n };\n\n util$index$$register({\n matches: function(selector) {\n if (!selector || typeof selector !== \"string\") throw new MethodError(\"matches\", arguments);\n\n var checker = util$selectorhooks$$default[selector] || util$selectormatcher$$default(selector);\n\n return !!checker(this[0]);\n }\n }, null, function() {return RETURN_FALSE});\n\n util$index$$register({\n off: function(type, selector, callback) {\n if (typeof type !== \"string\") throw new MethodError(\"off\", arguments);\n\n if (callback === void 0) {\n callback = selector;\n selector = void 0;\n }\n\n var node = this[0];\n\n this._[\"handler2001004\"] = this._[\"handler2001004\"].filter(function(handler) {\n var skip = type !== handler.type;\n\n skip = skip || selector && selector !== handler.selector;\n skip = skip || callback && callback !== handler.callback;\n\n if (skip) return true;\n\n type = handler._type || handler.type;\n if (JSCRIPT_VERSION < 9) {\n node.detachEvent(\"on\" + type, handler);\n } else {\n node.removeEventListener(type, handler, !!handler.capturing);\n }\n });\n\n return this;\n }\n }, null, function() {return RETURN_THIS});\n\n util$index$$register({\n offset: function() {\n var node = this[0],\n docEl = node.ownerDocument.documentElement,\n clientTop = docEl.clientTop,\n clientLeft = docEl.clientLeft,\n scrollTop = WINDOW.pageYOffset || docEl.scrollTop,\n scrollLeft = WINDOW.pageXOffset || docEl.scrollLeft,\n boundingRect = node.getBoundingClientRect();\n\n return {\n top: boundingRect.top + scrollTop - clientTop,\n left: boundingRect.left + scrollLeft - clientLeft,\n right: boundingRect.right + scrollLeft - clientLeft,\n bottom: boundingRect.bottom + scrollTop - clientTop,\n width: boundingRect.right - boundingRect.left,\n height: boundingRect.bottom - boundingRect.top\n };\n }\n }, null, function() {return function() {\n return { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n }});\n\n util$index$$register({\n on: false,\n\n once: true\n\n }, function(method, single) {return function(type, selector, args, callback) {var this$0 = this;\n if (typeof type === \"string\") {\n if (typeof args === \"function\") {\n callback = args;\n\n if (typeof selector === \"string\") {\n args = null;\n } else {\n args = selector;\n selector = null;\n }\n }\n\n if (typeof selector === \"function\") {\n callback = selector;\n selector = null;\n args = null;\n }\n\n if (typeof callback !== \"function\") {\n throw new MethodError(method, arguments);\n }\n\n var node = this[0],\n handler = util$eventhandler$$default(type, selector, callback, args, this, single);\n\n if (JSCRIPT_VERSION < 9) {\n node.attachEvent(\"on\" + (handler._type || type), handler);\n } else {\n node.addEventListener(handler._type || type, handler, !!handler.capturing);\n }\n // store event entry\n this._[\"handler2001004\"].push(handler);\n } else if (typeof type === \"object\") {\n if (util$index$$isArray(type)) {\n type.forEach(function(name) { this$0[method](name, selector, args, callback) });\n } else {\n util$index$$keys(type).forEach(function(name) { this$0[method](name, type[name]) });\n }\n } else {\n throw new MethodError(method, arguments);\n }\n\n return this;\n }}, function() {return RETURN_THIS});\n\n util$index$$register({\n set: function(name, value) {var this$0 = this;\n var node = this[0];\n\n var hook = util$accessorhooks$$default.set[name],\n watchers = this._[\"watcher2001004\"][name],\n oldValue;\n\n if (watchers) {\n oldValue = this.get(name);\n }\n\n if (arguments.length === 1 && typeof name !== \"object\") {\n // TODO: remove this check in future\n return this.value(name);\n }\n\n if (typeof name === \"string\") {\n if (name[0] === \"_\") {\n this._[name.slice(1)] = value;\n } else {\n if (typeof value === \"function\") {\n value = value(this);\n }\n\n if (hook) {\n hook(node, value);\n } else if (value == null) {\n node.removeAttribute(name);\n } else if (name in node) {\n node[name] = value;\n } else {\n node.setAttribute(name, value);\n }\n if (JSCRIPT_VERSION < 9 || LEGACY_ANDROID) {\n // always trigger reflow manually for IE8 and legacy Android\n node.className = node.className;\n }\n }\n } else if (util$index$$isArray(name)) {\n name.forEach(function(key) { this$0.set(key, value) });\n } else if (typeof name === \"object\") {\n util$index$$keys(name).forEach(function(key) { this$0.set(key, name[key]) });\n } else {\n throw new MethodError(\"set\", arguments);\n }\n\n if (watchers && oldValue !== value) {\n watchers.forEach(function(w) {\n util$index$$safeCall(this$0, w, value, oldValue);\n });\n }\n\n return this;\n }\n }, null, function() {return RETURN_THIS});\n\n util$index$$register({\n next: \"nextSibling\",\n\n prev: \"previousSibling\",\n\n nextAll: \"nextSibling\",\n\n prevAll: \"previousSibling\",\n\n closest: \"parentNode\"\n\n }, function(methodName, propertyName) {return function(selector) {\n if (selector && typeof selector !== \"string\") throw new MethodError(methodName, arguments);\n\n var all = methodName.slice(-3) === \"All\",\n matcher = util$selectormatcher$$default(selector),\n nodes = all ? [] : null,\n it = this[0];\n\n // method closest starts traversing from the element itself\n // except no selector was specified where it returns parent\n if (!matcher || methodName !== \"closest\") {\n it = it[propertyName];\n }\n\n for (; it; it = it[propertyName]) {\n if (it.nodeType === 1 && (!matcher || matcher(it))) {\n if (!all) break;\n\n nodes.push(it);\n }\n }\n\n return all ? util$index$$map.call(nodes, $Element) : $Element(it);\n }}, function(methodName) {return function() {return methodName.slice(-3) === \"All\" ? [] : new $NullElement()}});\n\n util$index$$register({\n value: function(content) {\n var node = this[0], name;\n\n if (content === void 0) {\n switch (node.tagName) {\n case \"SELECT\":\n return ~node.selectedIndex ? node.options[ node.selectedIndex ].value : \"\";\n\n case \"OPTION\":\n name = node.hasAttribute(\"value\") ? \"value\" : \"text\";\n break;\n\n default:\n name = node.type && \"value\" in node ? \"value\" : \"innerHTML\";\n }\n\n return node[name];\n } else if ((content instanceof $Element) || Array.isArray(content)) {\n return this.set(\"\").append(content);\n }\n\n if (typeof content === \"function\") {\n content = content(this);\n }\n\n if (typeof content !== \"string\") {\n content = content == null ? \"\" : String(content);\n }\n\n switch (node.tagName) {\n case \"INPUT\":\n case \"OPTION\":\n name = \"value\";\n break;\n\n case \"SELECT\":\n // selectbox has special case\n if (util$index$$every.call(node.options, function(o) {return !(o.selected = o.value === content)})) {\n node.selectedIndex = -1;\n }\n // return earlier\n return this;\n\n case \"TEXTAREA\":\n // for IE use innerText for textareabecause it doesn't trigger onpropertychange\n name = JSCRIPT_VERSION < 9 ? \"innerText\" : \"value\";\n break;\n\n default:\n name = \"innerHTML\";\n }\n\n return this.set(name, content);\n }\n }, null, function() {return function() {\n if (arguments.length) return this;\n }});\n\n var util$animationhandler$$TRANSITION_PROPS = [\"timing-function\", \"property\", \"duration\", \"delay\"].map(function(prop) {return \"transition-\" + prop}),\n util$animationhandler$$parseTimeValue = function(value) {\n var result = parseFloat(value) || 0;\n // if duration is in seconds, then multiple result value by 1000\n return !result || value.slice(-2) === \"ms\" ? result : result * 1000;\n },\n util$animationhandler$$calcTransitionDuration = function(transitionValues) {\n var delays = transitionValues[3],\n durations = transitionValues[2];\n\n return Math.max.apply(Math, durations.map(function(value, index) {\n return util$animationhandler$$parseTimeValue(value) + (util$animationhandler$$parseTimeValue(delays[index]) || 0);\n }));\n };\n\n // initialize hooks for properties used below\n util$animationhandler$$TRANSITION_PROPS.concat(\"animation-duration\").forEach(function(prop) { util$stylehooks$$default.find(prop, HTML.style) });\n\n var util$animationhandler$$default = function(node, computed, animationName, hiding, done) {\n var rules, duration;\n\n // Legacy Android is usually slow and has lots of bugs in the\n // CSS animations implementation, so skip any animations for it\n if (LEGACY_ANDROID || JSCRIPT_VERSION < 10) return null;\n\n if (animationName) {\n duration = util$animationhandler$$parseTimeValue(computed[util$stylehooks$$default.get[\"animation-duration\"]]);\n\n if (!duration) return; // skip animations with zero duration\n\n rules = [\n WEBKIT_PREFIX + \"animation-direction:\" + (hiding ? \"normal\" : \"reverse\"),\n WEBKIT_PREFIX + \"animation-name:\" + animationName,\n // for CSS3 animation element should always be visible\n \"visibility:inherit\"\n ];\n } else {\n var transitionValues = util$animationhandler$$TRANSITION_PROPS.map(function(prop, index) {\n // have to use regexp to split transition-timing-function value\n return computed[util$stylehooks$$default.get[prop]].split(index ? \", \" : /, (?!\\d)/);\n });\n\n duration = util$animationhandler$$calcTransitionDuration(transitionValues);\n\n if (!duration) return; // skip transitions with zero duration\n\n if (transitionValues[1].indexOf(\"all\") < 0) {\n // try to find existing or use 0s length or make a new visibility transition\n var visibilityIndex = transitionValues[1].indexOf(\"visibility\");\n\n if (visibilityIndex < 0) visibilityIndex = transitionValues[2].indexOf(\"0s\");\n if (visibilityIndex < 0) visibilityIndex = transitionValues[1].length;\n\n transitionValues[0][visibilityIndex] = \"linear\";\n transitionValues[1][visibilityIndex] = \"visibility\";\n transitionValues[hiding ? 2 : 3][visibilityIndex] = \"0s\";\n transitionValues[hiding ? 3 : 2][visibilityIndex] = duration + \"ms\";\n }\n\n rules = transitionValues.map(function(props, index) {\n // fill holes in a trasition property value\n for (var i = 0, n = props.length; i < n; ++i) {\n props[i] = props[i] || props[i - 1] || \"initial\";\n }\n\n return WEBKIT_PREFIX + util$animationhandler$$TRANSITION_PROPS[index] + \":\" + props.join(\", \");\n });\n\n rules.push(\n // append target visibility value to trigger transition\n \"visibility:\" + (hiding ? \"hidden\" : \"inherit\"),\n // use willChange to improve performance in modern browsers:\n // http://dev.opera.com/articles/css-will-change-property/\n \"will-change:\" + transitionValues[1].join(\", \")\n );\n }\n\n return {\n cssText: rules.join(\";\"),\n initialCssText: node.style.cssText,\n // this function used to trigger callback\n handleEvent: function(e) {\n if (e.target === node) {\n if (animationName) {\n if (e.animationName !== animationName) return;\n } else {\n if (e.propertyName !== \"visibility\") return;\n }\n\n e.stopPropagation(); // this is an internal event\n\n done();\n }\n }\n };\n };\n\n var element$visibility$$TRANSITION_EVENT_TYPE = WEBKIT_PREFIX ? \"webkitTransitionEnd\" : \"transitionend\",\n element$visibility$$ANIMATION_EVENT_TYPE = WEBKIT_PREFIX ? \"webkitAnimationEnd\" : \"animationend\";\n\n util$index$$register({\n show: false,\n\n hide: true,\n\n toggle: null\n\n }, function(methodName, condition) {return function(animationName, callback) {var this$0 = this;\n if (typeof animationName !== \"string\") {\n callback = animationName;\n animationName = null;\n }\n\n if (callback && typeof callback !== \"function\") {\n throw new MethodError(methodName, arguments);\n }\n\n var node = this[0],\n style = node.style,\n computed = util$index$$computeStyle(node),\n hiding = condition,\n frameId = this._[\"frame2001004\"],\n done = function() {\n if (animationHandler) {\n node.removeEventListener(eventType, animationHandler, true);\n // clear inline style adjustments were made previously\n style.cssText = animationHandler.initialCssText;\n } else {\n this$0.set(\"aria-hidden\", String(hiding));\n }\n // always update element visibility property: use value \"inherit\"\n // to respect parent container visibility. Should be a separate\n // from setting cssText because of Opera 12 quirks\n style.visibility = hiding ? \"hidden\" : \"inherit\";\n\n this$0._[\"frame2001004\"] = null;\n\n if (callback) callback(this$0);\n };\n\n if (typeof hiding !== \"boolean\") {\n hiding = computed.visibility !== \"hidden\";\n }\n\n // cancel previous frame if it exists\n if (frameId) DOM.cancelFrame(frameId);\n\n if (!node.ownerDocument.documentElement.contains(node)) {\n // apply attribute/visibility syncronously for detached DOM elements\n // because browser returns zero animation/transition duration for them\n done();\n } else {\n var animationHandler = util$animationhandler$$default(node, computed, animationName, hiding, done),\n eventType = animationName ? element$visibility$$ANIMATION_EVENT_TYPE : element$visibility$$TRANSITION_EVENT_TYPE;\n // use requestAnimationFrame to avoid animation quirks for\n // new elements inserted into the DOM\n // http://christianheilmann.com/2013/09/19/quicky-fading-in-a-newly-created-element-using-css/\n this._[\"frame2001004\"] = DOM.requestFrame(!animationHandler ? done : function() {\n node.addEventListener(eventType, animationHandler, true);\n // update modified style rules\n style.cssText = animationHandler.initialCssText + animationHandler.cssText;\n // trigger CSS3 transition / animation\n this$0.set(\"aria-hidden\", String(hiding));\n });\n }\n\n return this;\n }}, function() {return RETURN_THIS});\n\n util$index$$register({\n watch: function(name, callback) {\n var watchers = this._[\"watcher2001004\"];\n\n if (!watchers[name]) watchers[name] = [];\n\n watchers[name].push(callback);\n\n return this;\n },\n\n unwatch: function(name, callback) {\n var watchers = this._[\"watcher2001004\"];\n\n if (watchers[name]) {\n watchers[name] = watchers[name].filter(function(w) {return w !== callback});\n }\n\n return this;\n }\n }, null, function() {return RETURN_THIS});\n\n DOM.constructor = function(node) {\n var nodeType = node && node.nodeType,\n ctr = nodeType === 9 ? $Document : $Element;\n // filter non elements like text nodes, comments etc.\n return ctr(nodeType === 1 || nodeType === 9 ? node : null);\n };\n\n var global$format$$reVar = /\\{([\\w\\-]+)\\}/g;\n\n DOM.format = function(tmpl, varMap) {\n if (typeof tmpl !== \"string\") tmpl = String(tmpl);\n\n if (!varMap || typeof varMap !== \"object\") varMap = {};\n\n return tmpl.replace(global$format$$reVar, function(x, name, index) {\n if (name in varMap) {\n x = varMap[name];\n\n if (typeof x === \"function\") x = x(index);\n\n x = String(x);\n }\n\n return x;\n });\n };\n\n var global$frame$$raf = WINDOW.requestAnimationFrame,\n global$frame$$craf = WINDOW.cancelAnimationFrame,\n global$frame$$lastTime = 0;\n\n if (!(global$frame$$raf && global$frame$$craf)) {\n VENDOR_PREFIXES.forEach(function(prefix) {\n prefix = prefix.toLowerCase();\n\n global$frame$$raf = global$frame$$raf || WINDOW[prefix + \"RequestAnimationFrame\"];\n global$frame$$craf = global$frame$$craf || WINDOW[prefix + \"CancelAnimationFrame\"];\n });\n }\n\n DOM.requestFrame = function(callback) {\n if (global$frame$$raf) {\n return global$frame$$raf.call(WINDOW, callback);\n } else {\n // use idea from Erik Möller's polyfill:\n // http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n var currTime = Date.now();\n var timeToCall = Math.max(0, 16 - (currTime - global$frame$$lastTime));\n\n global$frame$$lastTime = currTime + timeToCall;\n\n return WINDOW.setTimeout(function() { callback(currTime + timeToCall) }, timeToCall);\n }\n };\n\n DOM.cancelFrame = function(frameId) {\n if (global$frame$$craf) {\n global$frame$$craf.call(WINDOW, frameId);\n } else {\n WINDOW.clearTimeout(frameId);\n }\n };\n\n var exports$$_DOM = WINDOW.DOM;\n\n DOM.noConflict = function() {\n if (WINDOW.DOM === DOM) {\n WINDOW.DOM = exports$$_DOM;\n }\n\n return DOM;\n };\n\n WINDOW.DOM = DOM;\n})();\n","\n; require(\"X:\\\\ldmsPublic\\\\node_modules\\\\better-dom\\\\dist\\\\better-dom.js\");\nrequire(\"X:\\\\ldmsPublic\\\\node_modules\\\\better-i18n-plugin\\\\dist\\\\better-i18n-plugin.js\");\nrequire(\"X:\\\\ldmsPublic\\\\node_modules\\\\better-popover-plugin\\\\dist\\\\better-popover-plugin.js\");\n;__browserify_shim_require__=require;(function browserifyShim(module, define, require) {\n/**\n * better-form-validation: Form validation for better-dom\n * @version 1.4.1 Sat, 18 Oct 2014 18:16:46 GMT\n * @link https://github.com/chemerisuk/better-form-validation\n * @copyright 2014 Maksim Chemerisuk\n * @license MIT\n */\n(function(DOM, VALIDITY_KEY, I18N_MISMATCH, undefined) {\n \"use strict\";\n\n var patterns = {};\n var invalidTypes = [null, \"file\", \"image\", \"submit\", \"fieldset\", \"reset\", \"button\"];\n\n patterns.required = /\\S/;\n patterns.number = /^-?[0-9]*(\\.[0-9]+)?$/;\n patterns.email = /^([a-z0-9_\\.\\-\\+]+)@([\\da-z\\.\\-]+)\\.([a-z\\.]{2,6})$/i;\n patterns.url = /^(https?:\\/\\/)?[\\da-z\\.\\-]+\\.[a-z\\.]{2,6}[#&+_\\?\\/\\w \\.\\-=]*$/i;\n patterns.tel = /^((\\+\\d{1,3}(-| )?\\(?\\d\\)?(-| )?\\d{1,5})|(\\(?\\d{2,6}\\)?))(-| )?(\\d{3,4})(-| )?(\\d{4})(( x| ext)\\d{1,5}){0,1}$/;\n\n DOM.extend(\"[name]\", function(el) {return invalidTypes.indexOf(el.get(\"type\")) < 0}, {\n constructor: function() {\n var type = this.get(\"type\");\n\n if (type !== \"checkbox\" && type !== \"radio\") {\n this.on(\"input\", this.onValidityCheck);\n }\n\n this.on(\"change\", this.onValidityUpdate);\n },\n validity: function(errors) {var this$0 = this;\n if (errors !== undefined) {\n this.set(VALIDITY_KEY, errors);\n } else {\n errors = this.get(VALIDITY_KEY);\n }\n\n if (this.get(\"novalidate\") != null) return [];\n\n var type = this.get(\"type\"),\n required = this.get(\"required\"),\n regexp, pattern, msg;\n\n if (typeof errors === \"function\") errors = errors.call(this);\n if (typeof errors === \"string\") errors = [errors];\n\n if (typeof required === \"string\") {\n // handle boolean attribute in browsers that do not support it\n required = required === \"\" || required === \"required\";\n }\n\n errors = errors || [];\n\n if (!errors.length) {\n switch(type) {\n case \"radio\":\n if (!required) break;\n\n var elements = this.closest(\"form\").findAll(\"[name]\"),\n hasCheckedRadio = function(el) {return el.get(\"name\") === this$0.get(\"name\") && el.get(\"checked\")};\n\n if (elements.some(hasCheckedRadio)) break;\n /* falls through */\n case \"checkbox\":\n if (required && !this.get(\"checked\")) {\n errors.push(\"can't be empty\");\n }\n break;\n\n default:\n var value = this.get(\"value\");\n // pattern/type validations ignore blank values\n if (value) {\n pattern = this.get(\"pattern\");\n\n if (pattern) {\n // make the pattern string\n pattern = \"^(?:\" + pattern + \")$\";\n\n if (pattern in patterns) {\n regexp = patterns[pattern];\n } else {\n regexp = new RegExp(pattern);\n // cache regexp internally\n patterns[pattern] = regexp;\n }\n\n msg = this.get(\"title\") || \"illegal value format\";\n } else {\n regexp = patterns[type];\n msg = I18N_MISMATCH[type];\n }\n }\n\n if (required && !regexp) {\n regexp = patterns.required;\n msg = \"can't be empty\";\n }\n\n if (regexp && !regexp.test(value)) {\n errors.push(msg);\n }\n }\n }\n\n return errors;\n },\n onValidityCheck: function() {\n var value = this.get(),\n maxlength = this.get(\"maxlength\");\n\n if (maxlength >= 0 && value.length > maxlength) {\n this.set(value.substr(0, maxlength));\n }\n\n var form = DOM.constructor(this.get(\"form\"));\n\n if (this.get(\"novalidate\") != null || form.get(\"novalidate\") != null) return;\n\n if (this.get(\"aria-invalid\")) {\n var errors = this.validity();\n\n if (errors.length) {\n this.fire(\"validity:fail\", errors);\n } else {\n this.fire(\"validity:ok\");\n }\n }\n },\n onValidityUpdate: function() {\n var form = DOM.constructor(this.get(\"form\"));\n\n if (this.get(\"novalidate\") != null || form.get(\"novalidate\") != null) return;\n\n var errors = this.validity();\n\n if (errors.length) {\n this.fire(\"validity:fail\", errors);\n } else {\n this.fire(\"validity:ok\");\n }\n }\n });\n\n DOM.extend(\"form\", {\n constructor: function() {var this$0 = this;\n if (typeof this.get(\"noValidate\") === \"boolean\") {\n var timeoutId;\n\n this.on(\"invalid\", [\"target\"], function() {\n if (!timeoutId) {\n timeoutId = setTimeout(function() {\n // trigger submit event manually\n this$0.fire(\"submit\");\n\n timeoutId = null;\n });\n }\n\n return false; // don't show tooltips\n });\n }\n\n this\n .on(\"submit\", this.onFormSubmit)\n .on(\"reset\", this.onFormReset);\n },\n validity: function(errors) {\n if (errors !== undefined) {\n this.set(VALIDITY_KEY, errors);\n } else {\n errors = this.get(VALIDITY_KEY);\n }\n\n if (this.get(\"novalidate\") != null) return {length: 0};\n\n if (typeof errors === \"function\") errors = errors.call(this);\n if (typeof errors === \"string\") errors = {0: errors, length: 1};\n\n if (errors) {\n errors.length = errors.length || 0;\n } else {\n errors = {length: 0};\n }\n\n this.findAll(\"[name]\").forEach(function(el) {\n var name = el.get(\"name\");\n\n if (!(name in errors)) {\n errors[name] = el.validity && el.validity();\n }\n\n if (errors[name] && errors[name].length) {\n errors.length += errors[name].length;\n } else {\n delete errors[name];\n }\n });\n\n return errors;\n },\n onFormSubmit: function() {\n var errors = this.validity();\n\n if (errors.length) {\n // fire event on form level\n this.fire(\"validity:fail\", errors);\n\n return false;\n }\n },\n onFormReset: function() {\n this.findAll(\"[name]\").forEach(function(el) {\n el.set(\"aria-invalid\", null).popover().hide();\n });\n }\n });\n\n DOM.on(\"validity:ok\", [\"target\", \"defaultPrevented\"], function(target, cancel) {\n target.set(\"aria-invalid\", false);\n\n if (!cancel) target.popover().hide();\n });\n\n DOM.on(\"validity:fail\", [1, 2, \"target\", \"defaultPrevented\"], function(errors, coef, target, cancel) {\n target.set(\"aria-invalid\", true);\n\n if (cancel || !errors.length) return;\n\n if (target.matches(\"form\")) {\n Object.keys(errors).forEach(function(name, index) {\n target.find(\"[name=\\\"\" + name + \"\\\"]\")\n .fire(\"validity:fail\", errors[name], index + 1);\n });\n } else {\n var popover = target.popover(void 0, \"left\", \"bottom\"),\n delay = 0;\n\n // hiding the tooltip to show later with a small delay\n if (!popover.hasClass(\"better-validity-tooltip\")) {\n popover.addClass(\"better-validity-tooltip\");\n\n popover.on(\"click\", function() {\n target.fire(\"focus\");\n // hide with delay to fix issue in IE10-11\n // which trigger input event on focus\n setTimeout(function() { popover.hide() }, delay);\n });\n }\n // set error message\n popover.l10n(typeof errors === \"string\" ? errors : errors[0]);\n\n delay = popover.hide().css(\"transition-duration\");\n\n if (coef && delay) {\n // parse animation duration value\n delay = parseFloat(delay) * (delay.slice(-2) === \"ms\" ? 1 : 1000);\n // use extra delay for each next form melement\n delay = delay * coef / target.get(\"form\").length;\n }\n\n // use a small delay if several tooltips are going to be displayed\n setTimeout(function() { popover.show() }, delay);\n }\n });\n}(window.DOM, \"_validity\", {\n email: \"should be a valid email\",\n url: \"should be a valid URL\",\n tel: \"should be a valid phone number\",\n number: \"should be a numeric value\"\n}));\n\nDOM.importStyles(\".better-validity-tooltip\", \"position:absolute;cursor:pointer;color:#ff3329;background:#FFF;font-weight:700;text-transform:uppercase;font-size:.75em;line-height:1;padding:.5em;border:1px solid;border-radius:.25em;-webkit-box-shadow:0 0 .25em;box-shadow:0 0 .25em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.925;-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity\");\nDOM.importStyles(\".better-validity-tooltip[aria-hidden=true]\", \"opacity:0;-webkit-transform:scale(2,2);-ms-transform:scale(2,2);transform:scale(2,2)\");\nDOM.importStyles(\"input[aria-invalid]\", \"background:none no-repeat right center / auto 100% content-box\");\nDOM.importStyles(\"input[aria-invalid=false]\", \"background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGZpbGw9IiM0MkIzMDAiIGQ9Ik0xNiAzYy03LjE4IDAtMTMgNS44Mi0xMyAxM3M1LjgyIDEzIDEzIDEzIDEzLTUuODIgMTMtMTMtNS44Mi0xMy0xMy0xM3pNMjMuMjU4IDEyLjMwN2wtOS40ODYgOS40ODVjLTAuMjM4IDAuMjM3LTAuNjIzIDAuMjM3LTAuODYxIDBsLTAuMTkxLTAuMTkxLTAuMDAxIDAuMDAxLTUuMjE5LTUuMjU2Yy0wLjIzOC0wLjIzOC0wLjIzOC0wLjYyNCAwLTAuODYybDEuMjk0LTEuMjkzYzAuMjM4LTAuMjM4IDAuNjI0LTAuMjM4IDAgMGwzLjY4OSAzIDcuNzU2LTcuNzU2YzAuMjM4LTAuMjM4IDAuNjI0LTAuMjM4IDAgMGwxLjI5NCAxLjI5NGMwLjIzOSAwIDAgMCAwIDAuODYyeiIvPjwvc3ZnPg==)\");\nDOM.importStyles(\"input[aria-invalid=true]\", \"background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGZpbGw9IiNGRjMzMjkiIGQ9Ik0xNS41IDMuNWMtNy4xOCAwLTEzIDUuODItMTMgMTNzNS44MiAxMyAxMyAxMyAxMy01LjgyIDEzLTEzLTUuODItMTMtMTMtMTN6TTE1LjUgMjMuODc1Yy0wLjgyOSAwLTEuNS0wLjY3Mi0xLjUtMS41czAuNjcxLTEuNSAxLjUtMS41YzAuODI4IDAgMSAwIDEgMS41cy0wLjY3MiAxLjUtMS41IDEuNXpNMTcgMTcuMzc1YzAgMC44MjgtMC42NzIgMS41LTEuNSAxLjUtMC44MjkgMC0xLjUtMC42NzItMS41LTEuNXYtN2MwLTAuODI5IDAuNjcxLTEuNSAxLjUtMS41IDAgMCAxIDAgMSAxLjV2N3oiLz48L3N2Zz4=)\");\nDOM.importStyles(\"input[aria-invalid][type=checkbox],input[aria-invalid][type=radio]\", \"background:none\");\nDOM.importStyles(\"input[aria-invalid]::-ms-clear,input[aria-invalid]::-ms-reveal\", \"display:none\");\nDOM.importStyles(\":invalid\", \"outline:inherit;-webkit-box-shadow:inherit;box-shadow:inherit\");\n\n}).call(global, module, undefined, undefined);\n","/**\n * better-i18n-plugin: Internationalization plugin for better-dom\n * @version 1.0.2 Tue, 28 Oct 2014 17:19:30 GMT\n * @link https://github.com/chemerisuk/better-i18n-plugin\n * @copyright 2014 Maksim Chemerisuk\n * @license MIT\n */\n/* jshint -W053 */\n(function(DOM) {\n \"use strict\";\n\n var strings = [],\n languages = [];\n\n DOM.importStrings = function(lang, key, value) {\n if (typeof lang !== \"string\") throw new TypeError(\"lang argument must be a string\");\n\n var langIndex = languages.indexOf(lang),\n stringsMap = strings[langIndex];\n\n if (langIndex === -1) {\n langIndex = languages.push(lang) - 1;\n strings[langIndex] = stringsMap = {};\n\n // add global rules to to able to switch to new language\n\n // by default localized strings should be hidden\n DOM.importStyles(((\"[data-l10n=\\\"\" + lang) + \"\\\"]\"), \"display:none\");\n // ... except current page language is `lang`\n DOM.importStyles(((\":lang(\" + lang) + (\") > [data-l10n=\\\"\" + lang) + \"\\\"]\"), \"display:inline !important\");\n // ... in such case hide default value too\n DOM.importStyles(((\":lang(\" + lang) + (\") > [data-l10n=\\\"\" + lang) + \"\\\"] ~ [data-l10n]\"), \"display:none\");\n }\n\n if (typeof key === \"string\") {\n stringsMap[key] = value;\n } else {\n Object.keys(key).forEach(function(x) {\n stringsMap[x] = key[x];\n });\n }\n };\n\n DOM.extend(\"*\", {\n l10n: function(key, varMap) {\n // unwrap outer from toHTMLString call\n return this.set(new Entry(key, varMap).toHTMLString().slice(6, -7));\n }\n });\n\n DOM.__ = function(key, varMap) {return new Entry(key, varMap)};\n\n function Entry(key, varMap) {var this$0 = this;\n languages.forEach(function(lang, index) {\n var value = strings[index][key];\n\n if (value) {\n if (varMap) value = DOM.format(value, varMap);\n\n this$0[lang] = value;\n }\n });\n\n this._ = varMap ? DOM.format(key, varMap) : key;\n }\n\n // grab all methods from String.prototype\n Entry.prototype = new String();\n Entry.prototype.constructor = Entry;\n\n Entry.prototype.toString = Entry.prototype.valueOf = function() {\n return this[DOM.get(\"lang\")] || this._;\n };\n\n Entry.prototype.toLocaleString = function(lang) {\n return lang ? this[lang] || this._ : this.toString();\n };\n\n Entry.prototype.toHTMLString = function() {var this$0 = this;\n // \"_\" key should always be the last one\n var keys = Object.keys(this).sort(function(k) {return k === \"_\" ? 1 : -1});\n\n return DOM.emmet(\"span>\" + keys.map(function(key) {\n return \"span[data-l10n=`\" + key + \"`]>`\" + this$0[key] + \"`\";\n }).join(\"^\"));\n };\n}(window.DOM));\n","/**\n * better-popover-plugin: Popover plugin for better-dom\n * @version 0.5.2 Mon, 02 Feb 2015 21:58:13 GMT\n * @link https://github.com/chemerisuk/better-popover-plugin\n * @copyright 2014 Maksim Chemerisuk\n * @license MIT\n */\n(function(DOM) {\n DOM.extend(\"*\", {\n popover: function(content, hpos, vpos) {\n var popover = this.get(\"_popover\");\n\n if (!popover) {\n popover = DOM.create(\"div.better-popover-plugin\").css(\"visibility\", \"hidden\");\n\n this.before(popover);\n\n popover.css({\n // MUST set position:absolute for correct offset calculation\n \"position\": \"absolute\",\n \"z-index\": 1 + (this.css(\"z-index\") | 0)\n });\n\n this.set(\"_popover\", popover);\n }\n\n if (content != null) {\n popover.value(content).show();\n }\n\n if (typeof hpos === \"string\") {\n // position is \"center\" by default\n hpos = hpos || \"center\";\n vpos = vpos || \"center\";\n\n var offset = this.offset();\n var popoverOffset = popover.css(\"margin\", \"0\").offset();\n\n popover.css({\n \"margin-left\": calcLeftMargin(hpos, offset, popoverOffset),\n \"margin-top\": calcTopMargin(vpos, offset, popoverOffset)\n });\n }\n\n return popover;\n }\n });\n\n function calcLeftMargin(pos, offset, popoverOffset) {\n switch(pos) {\n case \"left\":\n return offset.left - popoverOffset.left;\n\n case \"center\":\n return offset.left - popoverOffset.left + (offset.width - popoverOffset.width) / 2;\n\n case \"right\":\n return offset.right - popoverOffset.left - popoverOffset.width;\n }\n }\n\n function calcTopMargin(pos, offset, popoverOffset) {\n switch(pos) {\n case \"top\":\n return offset.top - popoverOffset.bottom;\n\n case \"center\":\n return offset.top - popoverOffset.top + (offset.height - popoverOffset.height) / 2;\n\n case \"bottom\":\n return offset.bottom - popoverOffset.top;\n }\n }\n}(window.DOM));\n","/**\n * Bootstrap Multiselect (https://github.com/davidstutz/bootstrap-multiselect)\n * \n * Apache License, Version 2.0:\n * Copyright (c) 2012 - 2015 David Stutz\n * \n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\n * use this file except in compliance with the License. You may obtain a\n * copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n * \n * BSD 3-Clause License:\n * Copyright (c) 2012 - 2015 David Stutz\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * - Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n * - Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * - Neither the name of David Stutz nor the names of its contributors may be\n * used to endorse or promote products derived from this software without\n * specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\n * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\n * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n!function ($) {\n \"use strict\";// jshint ;_;\n\n if (typeof ko !== 'undefined' && ko.bindingHandlers && !ko.bindingHandlers.multiselect) {\n ko.bindingHandlers.multiselect = {\n after: ['options', 'value', 'selectedOptions', 'enable', 'disable'],\n\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var $element = $(element);\n var config = ko.toJS(valueAccessor());\n\n $element.multiselect(config);\n\n if (allBindings.has('options')) {\n var options = allBindings.get('options');\n if (ko.isObservable(options)) {\n ko.computed({\n read: function() {\n options();\n setTimeout(function() {\n var ms = $element.data('multiselect');\n if (ms)\n ms.updateOriginalOptions();//Not sure how beneficial this is.\n $element.multiselect('rebuild');\n }, 1);\n },\n disposeWhenNodeIsRemoved: element\n });\n }\n }\n\n //value and selectedOptions are two-way, so these will be triggered even by our own actions.\n //It needs some way to tell if they are triggered because of us or because of outside change.\n //It doesn't loop but it's a waste of processing.\n if (allBindings.has('value')) {\n var value = allBindings.get('value');\n if (ko.isObservable(value)) {\n ko.computed({\n read: function() {\n value();\n setTimeout(function() {\n $element.multiselect('refresh');\n }, 1);\n },\n disposeWhenNodeIsRemoved: element\n }).extend({ rateLimit: 100, notifyWhenChangesStop: true });\n }\n }\n\n //Switched from arrayChange subscription to general subscription using 'refresh'.\n //Not sure performance is any better using 'select' and 'deselect'.\n if (allBindings.has('selectedOptions')) {\n var selectedOptions = allBindings.get('selectedOptions');\n if (ko.isObservable(selectedOptions)) {\n ko.computed({\n read: function() {\n selectedOptions();\n setTimeout(function() {\n $element.multiselect('refresh');\n }, 1);\n },\n disposeWhenNodeIsRemoved: element\n }).extend({ rateLimit: 100, notifyWhenChangesStop: true });\n }\n }\n\n var setEnabled = function (enable) {\n setTimeout(function () {\n if (enable)\n $element.multiselect('enable');\n else\n $element.multiselect('disable');\n });\n };\n\n if (allBindings.has('enable')) {\n var enable = allBindings.get('enable');\n if (ko.isObservable(enable)) {\n ko.computed({\n read: function () {\n setEnabled(enable());\n },\n disposeWhenNodeIsRemoved: element\n }).extend({ rateLimit: 100, notifyWhenChangesStop: true });\n } else {\n setEnabled(enable);\n }\n }\n\n if (allBindings.has('disable')) {\n var disable = allBindings.get('disable');\n if (ko.isObservable(disable)) {\n ko.computed({\n read: function () {\n setEnabled(!disable());\n },\n disposeWhenNodeIsRemoved: element\n }).extend({ rateLimit: 100, notifyWhenChangesStop: true });\n } else {\n setEnabled(!disable);\n }\n }\n\n ko.utils.domNodeDisposal.addDisposeCallback(element, function() {\n $element.multiselect('destroy');\n });\n },\n\n update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var $element = $(element);\n var config = ko.toJS(valueAccessor());\n\n $element.multiselect('setOptions', config);\n $element.multiselect('rebuild');\n }\n };\n }\n\n function forEach(array, callback) {\n for (var index = 0; index < array.length; ++index) {\n callback(array[index], index);\n }\n }\n\n /**\n * Constructor to create a new multiselect using the given select.\n *\n * @param {jQuery} select\n * @param {Object} options\n * @returns {Multiselect}\n */\n function Multiselect(select, options) {\n\n this.$select = $(select);\n \n // Placeholder via data attributes\n if (this.$select.attr(\"data-placeholder\")) {\n options.nonSelectedText = this.$select.data(\"placeholder\");\n }\n \n this.options = this.mergeOptions($.extend({}, options, this.$select.data()));\n\n // Initialization.\n // We have to clone to create a new reference.\n this.originalOptions = this.$select.clone()[0].options;\n this.query = '';\n this.searchTimeout = null;\n this.lastToggledInput = null;\n\n this.options.multiple = this.$select.attr('multiple') === \"multiple\";\n this.options.onChange = $.proxy(this.options.onChange, this);\n this.options.onDropdownShow = $.proxy(this.options.onDropdownShow, this);\n this.options.onDropdownHide = $.proxy(this.options.onDropdownHide, this);\n this.options.onDropdownShown = $.proxy(this.options.onDropdownShown, this);\n this.options.onDropdownHidden = $.proxy(this.options.onDropdownHidden, this);\n this.options.onInitialized = $.proxy(this.options.onInitialized, this);\n \n // Build select all if enabled.\n this.buildContainer();\n this.buildButton();\n this.buildDropdown();\n this.buildSelectAll();\n this.buildDropdownOptions();\n this.buildFilter();\n\n this.updateButtonText();\n this.updateSelectAll(true);\n\n if (this.options.disableIfEmpty && $('option', this.$select).length <= 0) {\n this.disable();\n }\n \n this.$select.hide().after(this.$container);\n this.options.onInitialized(this.$select, this.$container);\n }\n\n Multiselect.prototype = {\n\n defaults: {\n /**\n * Default text function will either print 'None selected' in case no\n * option is selected or a list of the selected options up to a length\n * of 3 selected options.\n * \n * @param {jQuery} options\n * @param {jQuery} select\n * @returns {String}\n */\n buttonText: function(options, select) {\n if (this.disabledText.length > 0 \n && (this.disableIfEmpty || select.prop('disabled')) \n && options.length == 0) {\n \n return this.disabledText;\n }\n else if (options.length === 0) {\n return this.nonSelectedText;\n }\n else if (this.allSelectedText \n && options.length === $('option', $(select)).length \n && $('option', $(select)).length !== 1 \n && this.multiple) {\n\n if (this.selectAllNumber) {\n return this.allSelectedText + ' (' + options.length + ')';\n }\n else {\n return this.allSelectedText;\n }\n }\n else if (options.length > this.numberDisplayed) {\n return options.length + ' ' + this.nSelectedText;\n }\n else {\n var selected = '';\n var delimiter = this.delimiterText;\n \n options.each(function() {\n var label = ($(this).attr('label') !== undefined) ? $(this).attr('label') : $(this).text();\n selected += label + delimiter;\n });\n \n return selected.substr(0, selected.length - 2);\n }\n },\n /**\n * Updates the title of the button similar to the buttonText function.\n * \n * @param {jQuery} options\n * @param {jQuery} select\n * @returns {@exp;selected@call;substr}\n */\n buttonTitle: function(options, select) {\n if (options.length === 0) {\n return this.nonSelectedText;\n }\n else {\n var selected = '';\n var delimiter = this.delimiterText;\n \n options.each(function () {\n var label = ($(this).attr('label') !== undefined) ? $(this).attr('label') : $(this).text();\n selected += label + delimiter;\n });\n return selected.substr(0, selected.length - 2);\n }\n },\n /**\n * Create a label.\n *\n * @param {jQuery} element\n * @returns {String}\n */\n optionLabel: function(element){\n return $(element).attr('label') || $(element).text();\n },\n /**\n * Create a class.\n *\n * @param {jQuery} element\n * @returns {String}\n */\n optionClass: function(element) {\n return $(element).attr('class') || '';\n },\n /**\n * Triggered on change of the multiselect.\n * \n * Not triggered when selecting/deselecting options manually.\n * \n * @param {jQuery} option\n * @param {Boolean} checked\n */\n onChange : function(option, checked) {\n\n },\n /**\n * Triggered when the dropdown is shown.\n *\n * @param {jQuery} event\n */\n onDropdownShow: function(event) {\n\n },\n /**\n * Triggered when the dropdown is hidden.\n *\n * @param {jQuery} event\n */\n onDropdownHide: function(event) {\n\n },\n /**\n * Triggered after the dropdown is shown.\n * \n * @param {jQuery} event\n */\n onDropdownShown: function(event) {\n \n },\n /**\n * Triggered after the dropdown is hidden.\n * \n * @param {jQuery} event\n */\n onDropdownHidden: function(event) {\n \n },\n /**\n * Triggered on select all.\n */\n onSelectAll: function(checked) {\n \n },\n /**\n * Triggered after initializing.\n *\n * @param {jQuery} $select\n * @param {jQuery} $container\n */\n onInitialized: function($select, $container) {\n\n },\n enableHTML: false,\n buttonClass: 'btn btn-default',\n inheritClass: false,\n buttonWidth: 'auto',\n buttonContainer: '
',\n dropRight: false,\n dropUp: false,\n selectedClass: 'active',\n // Maximum height of the dropdown menu.\n // If maximum height is exceeded a scrollbar will be displayed.\n maxHeight: false,\n checkboxName: false,\n includeSelectAllOption: false,\n includeSelectAllIfMoreThan: 0,\n selectAllText: ' Select all',\n selectAllValue: 'multiselect-all',\n selectAllName: false,\n selectAllNumber: true,\n selectAllJustVisible: true,\n enableFiltering: false,\n enableCaseInsensitiveFiltering: false,\n enableFullValueFiltering: false,\n enableClickableOptGroups: false,\n enableCollapsibelOptGroups: false,\n filterPlaceholder: 'Search',\n // possible options: 'text', 'value', 'both'\n filterBehavior: 'text',\n includeFilterClearBtn: true,\n preventInputChangeEvent: false,\n nonSelectedText: 'None selected',\n nSelectedText: 'selected',\n allSelectedText: 'All selected',\n numberDisplayed: 3,\n disableIfEmpty: false,\n disabledText: '',\n delimiterText: ', ',\n templates: {\n button: '',\n ul: '
    ',\n filter: '
  • ',\n filterClearBtn: '',\n li: '
  • ',\n divider: '
  • ',\n liGroup: '
  • '\n }\n },\n\n constructor: Multiselect,\n\n /**\n * Builds the container of the multiselect.\n */\n buildContainer: function() {\n this.$container = $(this.options.buttonContainer);\n this.$container.on('show.bs.dropdown', this.options.onDropdownShow);\n this.$container.on('hide.bs.dropdown', this.options.onDropdownHide);\n this.$container.on('shown.bs.dropdown', this.options.onDropdownShown);\n this.$container.on('hidden.bs.dropdown', this.options.onDropdownHidden);\n },\n\n /**\n * Builds the button of the multiselect.\n */\n buildButton: function() {\n this.$button = $(this.options.templates.button).addClass(this.options.buttonClass);\n if (this.$select.attr('class') && this.options.inheritClass) {\n this.$button.addClass(this.$select.attr('class'));\n }\n // Adopt active state.\n if (this.$select.prop('disabled')) {\n this.disable();\n }\n else {\n this.enable();\n }\n\n // Manually add button width if set.\n if (this.options.buttonWidth && this.options.buttonWidth !== 'auto') {\n this.$button.css({\n 'width' : this.options.buttonWidth,\n 'overflow' : 'hidden',\n 'text-overflow' : 'ellipsis'\n });\n this.$container.css({\n 'width': this.options.buttonWidth\n });\n }\n\n // Keep the tab index from the select.\n var tabindex = this.$select.attr('tabindex');\n if (tabindex) {\n this.$button.attr('tabindex', tabindex);\n }\n\n this.$container.prepend(this.$button);\n },\n\n /**\n * Builds the ul representing the dropdown menu.\n */\n buildDropdown: function() {\n\n // Build ul.\n this.$ul = $(this.options.templates.ul);\n\n if (this.options.dropRight) {\n this.$ul.addClass('pull-right');\n }\n\n // Set max height of dropdown menu to activate auto scrollbar.\n if (this.options.maxHeight) {\n // TODO: Add a class for this option to move the css declarations.\n this.$ul.css({\n 'max-height': this.options.maxHeight + 'px',\n 'overflow-y': 'auto',\n 'overflow-x': 'hidden'\n });\n }\n \n if (this.options.dropUp) {\n \n var height = Math.min(this.options.maxHeight, $('option[data-role!=\"divider\"]', this.$select).length*26 + $('option[data-role=\"divider\"]', this.$select).length*19 + (this.options.includeSelectAllOption ? 26 : 0) + (this.options.enableFiltering || this.options.enableCaseInsensitiveFiltering ? 44 : 0));\n var moveCalc = height + 34;\n \n this.$ul.css({\n 'max-height': height + 'px',\n 'overflow-y': 'auto',\n 'overflow-x': 'hidden',\n 'margin-top': \"-\" + moveCalc + 'px'\n });\n }\n \n this.$container.append(this.$ul);\n },\n\n /**\n * Build the dropdown options and binds all nessecary events.\n * \n * Uses createDivider and createOptionValue to create the necessary options.\n */\n buildDropdownOptions: function() {\n\n this.$select.children().each($.proxy(function(index, element) {\n\n var $element = $(element);\n // Support optgroups and options without a group simultaneously.\n var tag = $element.prop('tagName')\n .toLowerCase();\n \n if ($element.prop('value') === this.options.selectAllValue) {\n return;\n }\n\n if (tag === 'optgroup') {\n this.createOptgroup(element);\n }\n else if (tag === 'option') {\n\n if ($element.data('role') === 'divider') {\n this.createDivider();\n }\n else {\n this.createOptionValue(element);\n }\n\n }\n\n // Other illegal tags will be ignored.\n }, this));\n\n // Bind the change event on the dropdown elements.\n $('li input', this.$ul).on('change', $.proxy(function(event) {\n var $target = $(event.target);\n\n var checked = $target.prop('checked') || false;\n var isSelectAllOption = $target.val() === this.options.selectAllValue;\n\n // Apply or unapply the configured selected class.\n if (this.options.selectedClass) {\n if (checked) {\n $target.closest('li')\n .addClass(this.options.selectedClass);\n }\n else {\n $target.closest('li')\n .removeClass(this.options.selectedClass);\n }\n }\n\n // Get the corresponding option.\n var value = $target.val();\n var $option = this.getOptionByValue(value);\n\n var $optionsNotThis = $('option', this.$select).not($option);\n var $checkboxesNotThis = $('input', this.$container).not($target);\n\n if (isSelectAllOption) {\n if (checked) {\n this.selectAll(this.options.selectAllJustVisible);\n }\n else {\n this.deselectAll(this.options.selectAllJustVisible);\n }\n }\n else {\n if (checked) {\n $option.prop('selected', true);\n\n if (this.options.multiple) {\n // Simply select additional option.\n $option.prop('selected', true);\n }\n else {\n // Unselect all other options and corresponding checkboxes.\n if (this.options.selectedClass) {\n $($checkboxesNotThis).closest('li').removeClass(this.options.selectedClass);\n }\n\n $($checkboxesNotThis).prop('checked', false);\n $optionsNotThis.prop('selected', false);\n\n // It's a single selection, so close.\n this.$button.click();\n }\n\n if (this.options.selectedClass === \"active\") {\n $optionsNotThis.closest(\"a\").css(\"outline\", \"\");\n }\n }\n else {\n // Unselect option.\n $option.prop('selected', false);\n }\n \n // To prevent select all from firing onChange: #575\n this.options.onChange($option, checked);\n }\n\n this.$select.change();\n\n this.updateButtonText();\n this.updateSelectAll();\n\n if(this.options.preventInputChangeEvent) {\n return false;\n }\n }, this));\n\n $('li a', this.$ul).on('mousedown', function(e) {\n if (e.shiftKey) {\n // Prevent selecting text by Shift+click\n return false;\n }\n });\n \n $('li a', this.$ul).on('touchstart click', $.proxy(function(event) {\n event.stopPropagation();\n\n var $target = $(event.target);\n \n if (event.shiftKey && this.options.multiple) {\n if($target.is(\"label\")){ // Handles checkbox selection manually (see https://github.com/davidstutz/bootstrap-multiselect/issues/431)\n event.preventDefault();\n $target = $target.find(\"input\");\n $target.prop(\"checked\", !$target.prop(\"checked\"));\n }\n var checked = $target.prop('checked') || false;\n\n if (this.lastToggledInput !== null && this.lastToggledInput !== $target) { // Make sure we actually have a range\n var from = $target.closest(\"li\").index();\n var to = this.lastToggledInput.closest(\"li\").index();\n \n if (from > to) { // Swap the indices\n var tmp = to;\n to = from;\n from = tmp;\n }\n \n // Make sure we grab all elements since slice excludes the last index\n ++to;\n \n // Change the checkboxes and underlying options\n var range = this.$ul.find(\"li\").slice(from, to).find(\"input\");\n \n range.prop('checked', checked);\n \n if (this.options.selectedClass) {\n range.closest('li')\n .toggleClass(this.options.selectedClass, checked);\n }\n \n for (var i = 0, j = range.length; i < j; i++) {\n var $checkbox = $(range[i]);\n\n var $option = this.getOptionByValue($checkbox.val());\n\n $option.prop('selected', checked);\n } \n }\n \n // Trigger the select \"change\" event\n $target.trigger(\"change\");\n }\n \n // Remembers last clicked option\n if($target.is(\"input\") && !$target.closest(\"li\").is(\".multiselect-item\")){\n this.lastToggledInput = $target;\n }\n\n $target.blur();\n }, this));\n\n // Keyboard support.\n this.$container.off('keydown.multiselect').on('keydown.multiselect', $.proxy(function(event) {\n if ($('input[type=\"text\"]', this.$container).is(':focus')) {\n return;\n }\n\n if (event.keyCode === 9 && this.$container.hasClass('open')) {\n this.$button.click();\n }\n else {\n var $items = $(this.$container).find(\"li:not(.divider):not(.disabled) a\").filter(\":visible\");\n\n if (!$items.length) {\n return;\n }\n\n var index = $items.index($items.filter(':focus'));\n\n // Navigation up.\n if (event.keyCode === 38 && index > 0) {\n index--;\n }\n // Navigate down.\n else if (event.keyCode === 40 && index < $items.length - 1) {\n index++;\n }\n else if (!~index) {\n index = 0;\n }\n\n var $current = $items.eq(index);\n $current.focus();\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n var $checkbox = $current.find('input');\n\n $checkbox.prop(\"checked\", !$checkbox.prop(\"checked\"));\n $checkbox.change();\n }\n\n event.stopPropagation();\n event.preventDefault();\n }\n }, this));\n\n if(this.options.enableClickableOptGroups && this.options.multiple) {\n $('li.multiselect-group', this.$ul).on('click', $.proxy(function(event) {\n event.stopPropagation();\n console.log('test');\n var group = $(event.target).parent();\n\n // Search all option in optgroup\n var $options = group.nextUntil('li.multiselect-group');\n var $visibleOptions = $options.filter(\":visible:not(.disabled)\");\n\n // check or uncheck items\n var allChecked = true;\n var optionInputs = $visibleOptions.find('input');\n var values = [];\n \n optionInputs.each(function() {\n allChecked = allChecked && $(this).prop('checked');\n values.push($(this).val());\n });\n\n if (!allChecked) {\n this.select(values, false);\n }\n else {\n this.deselect(values, false);\n }\n \n this.options.onChange(optionInputs, !allChecked);\n }, this));\n }\n\n if (this.options.enableCollapsibleOptGroups && this.options.multiple) {\n $(\"li.multiselect-group input\", this.$ul).off();\n $(\"li.multiselect-group\", this.$ul).siblings().not(\"li.multiselect-group, li.multiselect-all\", this.$ul).each( function () {\n $(this).toggleClass('hidden', true);\n });\n \n $(\"li.multiselect-group\", this.$ul).on(\"click\", $.proxy(function(group) {\n group.stopPropagation();\n }, this));\n \n $(\"li.multiselect-group > a > b\", this.$ul).on(\"click\", $.proxy(function(t) {\n t.stopPropagation();\n var n = $(t.target).closest('li');\n var r = n.nextUntil(\"li.multiselect-group\");\n var i = true;\n \n r.each(function() {\n i = i && $(this).hasClass('hidden');\n });\n \n r.toggleClass('hidden', !i);\n }, this));\n \n $(\"li.multiselect-group > a > input\", this.$ul).on(\"change\", $.proxy(function(t) {\n t.stopPropagation();\n var n = $(t.target).closest('li');\n var r = n.nextUntil(\"li.multiselect-group\", ':not(.disabled)');\n var s = r.find(\"input\");\n \n var i = true;\n s.each(function() {\n i = i && $(this).prop(\"checked\");\n });\n \n s.prop(\"checked\", !i).trigger(\"change\");\n }, this));\n \n // Set the initial selection state of the groups.\n $('li.multiselect-group', this.$ul).each(function() {\n var r = $(this).nextUntil(\"li.multiselect-group\", ':not(.disabled)');\n var s = r.find(\"input\");\n \n var i = true;\n s.each(function() {\n i = i && $(this).prop(\"checked\");\n });\n \n $(this).find('input').prop(\"checked\", i);\n });\n \n // Update the group checkbox based on new selections among the\n // corresponding children.\n $(\"li input\", this.$ul).on(\"change\", $.proxy(function(t) {\n t.stopPropagation();\n var n = $(t.target).closest('li');\n var r1 = n.prevUntil(\"li.multiselect-group\", ':not(.disabled)');\n var r2 = n.nextUntil(\"li.multiselect-group\", ':not(.disabled)');\n var s1 = r1.find(\"input\");\n var s2 = r2.find(\"input\");\n \n var i = $(t.target).prop('checked');\n s1.each(function() {\n i = i && $(this).prop(\"checked\");\n });\n \n s2.each(function() {\n i = i && $(this).prop(\"checked\");\n });\n \n n.prevAll('.multiselect-group').find('input').prop('checked', i);\n }, this));\n \n $(\"li.multiselect-all\", this.$ul).css('background', '#f3f3f3').css('border-bottom', '1px solid #eaeaea');\n $(\"li.multiselect-group > a, li.multiselect-all > a > label.checkbox\", this.$ul).css('padding', '3px 20px 3px 35px');\n $(\"li.multiselect-group > a > input\", this.$ul).css('margin', '4px 0px 5px -20px');\n }\n },\n\n /**\n * Create an option using the given select option.\n *\n * @param {jQuery} element\n */\n createOptionValue: function(element) {\n var $element = $(element);\n if ($element.is(':selected')) {\n $element.prop('selected', true);\n }\n\n // Support the label attribute on options.\n var label = this.options.optionLabel(element);\n var classes = this.options.optionClass(element);\n var value = $element.val();\n var inputType = this.options.multiple ? \"checkbox\" : \"radio\";\n\n var $li = $(this.options.templates.li);\n var $label = $('label', $li);\n $label.addClass(inputType);\n $li.addClass(classes);\n\n if (this.options.enableHTML) {\n $label.html(\" \" + label);\n }\n else {\n $label.text(\" \" + label);\n }\n \n var $checkbox = $('').attr('type', inputType);\n\n if (this.options.checkboxName) {\n $checkbox.attr('name', this.options.checkboxName);\n }\n $label.prepend($checkbox);\n\n var selected = $element.prop('selected') || false;\n $checkbox.val(value);\n\n if (value === this.options.selectAllValue) {\n $li.addClass(\"multiselect-item multiselect-all\");\n $checkbox.parent().parent()\n .addClass('multiselect-all');\n }\n\n $label.attr('title', $element.attr('title'));\n\n this.$ul.append($li);\n\n if ($element.is(':disabled')) {\n $checkbox.attr('disabled', 'disabled')\n .prop('disabled', true)\n .closest('a')\n .attr(\"tabindex\", \"-1\")\n .closest('li')\n .addClass('disabled');\n }\n\n $checkbox.prop('checked', selected);\n\n if (selected && this.options.selectedClass) {\n $checkbox.closest('li')\n .addClass(this.options.selectedClass);\n }\n },\n\n /**\n * Creates a divider using the given select option.\n *\n * @param {jQuery} element\n */\n createDivider: function(element) {\n var $divider = $(this.options.templates.divider);\n this.$ul.append($divider);\n },\n\n /**\n * Creates an optgroup.\n *\n * @param {jQuery} group\n */\n createOptgroup: function(group) { \n if (this.options.enableCollapsibleOptGroups && this.options.multiple) {\n var label = $(group).attr(\"label\");\n var value = $(group).attr(\"value\");\n var r = $('
  • ' + label + '
  • ');\n\n if (this.options.enableClickableOptGroups) {\n r.addClass(\"multiselect-group-clickable\")\n }\n this.$ul.append(r);\n if ($(group).is(\":disabled\")) {\n r.addClass(\"disabled\")\n }\n $(\"option\", group).each($.proxy(function($, group) {\n this.createOptionValue(group)\n }, this))\n }\n else {\n var groupName = $(group).prop('label');\n\n // Add a header for the group.\n var $li = $(this.options.templates.liGroup);\n\n if (this.options.enableHTML) {\n $('label', $li).html(groupName);\n }\n else {\n $('label', $li).text(groupName);\n }\n\n if (this.options.enableClickableOptGroups) {\n $li.addClass('multiselect-group-clickable');\n }\n\n this.$ul.append($li);\n\n if ($(group).is(':disabled')) {\n $li.addClass('disabled');\n }\n\n // Add the options of the group.\n $('option', group).each($.proxy(function(index, element) {\n this.createOptionValue(element);\n }, this));\n }\n },\n\n /**\n * Build the select all.\n * \n * Checks if a select all has already been created.\n */\n buildSelectAll: function() {\n if (typeof this.options.selectAllValue === 'number') {\n this.options.selectAllValue = this.options.selectAllValue.toString();\n }\n \n var alreadyHasSelectAll = this.hasSelectAll();\n\n if (!alreadyHasSelectAll && this.options.includeSelectAllOption && this.options.multiple\n && $('option', this.$select).length > this.options.includeSelectAllIfMoreThan) {\n\n // Check whether to add a divider after the select all.\n if (this.options.includeSelectAllDivider) {\n this.$ul.prepend($(this.options.templates.divider));\n }\n\n var $li = $(this.options.templates.li);\n $('label', $li).addClass(\"checkbox\");\n \n if (this.options.enableHTML) {\n $('label', $li).html(\" \" + this.options.selectAllText);\n }\n else {\n $('label', $li).text(\" \" + this.options.selectAllText);\n }\n \n if (this.options.selectAllName) {\n $('label', $li).prepend('');\n }\n else {\n $('label', $li).prepend('');\n }\n \n var $checkbox = $('input', $li);\n $checkbox.val(this.options.selectAllValue);\n\n $li.addClass(\"multiselect-item multiselect-all\");\n $checkbox.parent().parent()\n .addClass('multiselect-all');\n\n this.$ul.prepend($li);\n\n $checkbox.prop('checked', false);\n }\n },\n\n /**\n * Builds the filter.\n */\n buildFilter: function() {\n\n // Build filter if filtering OR case insensitive filtering is enabled and the number of options exceeds (or equals) enableFilterLength.\n if (this.options.enableFiltering || this.options.enableCaseInsensitiveFiltering) {\n var enableFilterLength = Math.max(this.options.enableFiltering, this.options.enableCaseInsensitiveFiltering);\n\n if (this.$select.find('option').length >= enableFilterLength) {\n\n this.$filter = $(this.options.templates.filter);\n $('input', this.$filter).attr('placeholder', this.options.filterPlaceholder);\n \n // Adds optional filter clear button\n if(this.options.includeFilterClearBtn){\n var clearBtn = $(this.options.templates.filterClearBtn);\n clearBtn.on('click', $.proxy(function(event){\n clearTimeout(this.searchTimeout);\n this.$filter.find('.multiselect-search').val('');\n $('li', this.$ul).show().removeClass(\"filter-hidden\");\n this.updateSelectAll();\n }, this));\n this.$filter.find('.input-group').append(clearBtn);\n }\n \n this.$ul.prepend(this.$filter);\n\n this.$filter.val(this.query).on('click', function(event) {\n event.stopPropagation();\n }).on('input keydown', $.proxy(function(event) {\n // Cancel enter key default behaviour\n if (event.which === 13) {\n event.preventDefault();\n }\n \n // This is useful to catch \"keydown\" events after the browser has updated the control.\n clearTimeout(this.searchTimeout);\n\n this.searchTimeout = this.asyncFunction($.proxy(function() {\n\n if (this.query !== event.target.value) {\n this.query = event.target.value;\n\n var currentGroup, currentGroupVisible;\n $.each($('li', this.$ul), $.proxy(function(index, element) {\n var value = $('input', element).length > 0 ? $('input', element).val() : \"\";\n var text = $('label', element).text();\n\n var filterCandidate = '';\n if ((this.options.filterBehavior === 'text')) {\n filterCandidate = text;\n }\n else if ((this.options.filterBehavior === 'value')) {\n filterCandidate = value;\n }\n else if (this.options.filterBehavior === 'both') {\n filterCandidate = text + '\\n' + value;\n }\n\n if (value !== this.options.selectAllValue && text) {\n\n // By default lets assume that element is not\n // interesting for this search.\n var showElement = false;\n\n if (this.options.enableCaseInsensitiveFiltering) {\n filterCandidate = filterCandidate.toLowerCase();\n this.query = this.query.toLowerCase();\n }\n\n if (this.options.enableFullValueFiltering && this.options.filterBehavior !== 'both') {\n var valueToMatch = filterCandidate.trim().substring(0, this.query.length);\n if (this.query.indexOf(valueToMatch) > -1) {\n showElement = true;\n }\n }\n else if (filterCandidate.indexOf(this.query) > -1) {\n showElement = true;\n }\n\n // Toggle current element (group or group item) according to showElement boolean.\n $(element).toggle(showElement).toggleClass('filter-hidden', !showElement);\n \n // Differentiate groups and group items.\n if ($(element).hasClass('multiselect-group')) {\n // Remember group status.\n currentGroup = element;\n currentGroupVisible = showElement;\n }\n else {\n // Show group name when at least one of its items is visible.\n if (showElement) {\n $(currentGroup).show().removeClass('filter-hidden');\n }\n \n // Show all group items when group name satisfies filter.\n if (!showElement && currentGroupVisible) {\n $(element).show().removeClass('filter-hidden');\n }\n }\n }\n }, this));\n }\n\n this.updateSelectAll();\n }, this), 300, this);\n }, this));\n }\n }\n },\n\n /**\n * Unbinds the whole plugin.\n */\n destroy: function() {\n this.$container.remove();\n this.$select.show();\n this.$select.data('multiselect', null);\n },\n\n /**\n * Refreshs the multiselect based on the selected options of the select.\n */\n refresh: function () {\n var inputs = $.map($('li input', this.$ul), $);\n \n $('option', this.$select).each($.proxy(function (index, element) {\n var $elem = $(element);\n var value = $elem.val();\n var $input;\n for (var i = inputs.length; 0 < i--; /**/) {\n if (value !== ($input = inputs[i]).val())\n continue; // wrong li\n\n if ($elem.is(':selected')) {\n $input.prop('checked', true);\n\n if (this.options.selectedClass) {\n $input.closest('li')\n .addClass(this.options.selectedClass);\n }\n }\n else {\n $input.prop('checked', false);\n\n if (this.options.selectedClass) {\n $input.closest('li')\n .removeClass(this.options.selectedClass);\n }\n }\n\n if ($elem.is(\":disabled\")) {\n $input.attr('disabled', 'disabled')\n .prop('disabled', true)\n .closest('li')\n .addClass('disabled');\n }\n else {\n $input.prop('disabled', false)\n .closest('li')\n .removeClass('disabled');\n }\n break; // assumes unique values\n }\n }, this));\n\n this.updateButtonText();\n this.updateSelectAll();\n },\n\n /**\n * Select all options of the given values.\n * \n * If triggerOnChange is set to true, the on change event is triggered if\n * and only if one value is passed.\n * \n * @param {Array} selectValues\n * @param {Boolean} triggerOnChange\n */\n select: function(selectValues, triggerOnChange) {\n if(!$.isArray(selectValues)) {\n selectValues = [selectValues];\n }\n\n for (var i = 0; i < selectValues.length; i++) {\n var value = selectValues[i];\n\n if (value === null || value === undefined) {\n continue;\n }\n\n var $option = this.getOptionByValue(value);\n var $checkbox = this.getInputByValue(value);\n\n if($option === undefined || $checkbox === undefined) {\n continue;\n }\n \n if (!this.options.multiple) {\n this.deselectAll(false);\n }\n \n if (this.options.selectedClass) {\n $checkbox.closest('li')\n .addClass(this.options.selectedClass);\n }\n\n $checkbox.prop('checked', true);\n $option.prop('selected', true);\n \n if (triggerOnChange) {\n this.options.onChange($option, true);\n }\n }\n\n this.updateButtonText();\n this.updateSelectAll();\n },\n\n /**\n * Clears all selected items.\n */\n clearSelection: function () {\n this.deselectAll(false);\n this.updateButtonText();\n this.updateSelectAll();\n },\n\n /**\n * Deselects all options of the given values.\n * \n * If triggerOnChange is set to true, the on change event is triggered, if\n * and only if one value is passed.\n * \n * @param {Array} deselectValues\n * @param {Boolean} triggerOnChange\n */\n deselect: function(deselectValues, triggerOnChange) {\n if(!$.isArray(deselectValues)) {\n deselectValues = [deselectValues];\n }\n\n for (var i = 0; i < deselectValues.length; i++) {\n var value = deselectValues[i];\n\n if (value === null || value === undefined) {\n continue;\n }\n\n var $option = this.getOptionByValue(value);\n var $checkbox = this.getInputByValue(value);\n\n if($option === undefined || $checkbox === undefined) {\n continue;\n }\n\n if (this.options.selectedClass) {\n $checkbox.closest('li')\n .removeClass(this.options.selectedClass);\n }\n\n $checkbox.prop('checked', false);\n $option.prop('selected', false);\n \n if (triggerOnChange) {\n this.options.onChange($option, false);\n }\n }\n\n this.updateButtonText();\n this.updateSelectAll();\n },\n \n /**\n * Selects all enabled & visible options.\n *\n * If justVisible is true or not specified, only visible options are selected.\n *\n * @param {Boolean} justVisible\n * @param {Boolean} triggerOnSelectAll\n */\n selectAll: function (justVisible, triggerOnSelectAll) {\n justVisible = (this.options.enableCollapsibleOptGroups && this.options.multiple) ? false : justVisible;\n \n var justVisible = typeof justVisible === 'undefined' ? true : justVisible;\n var allCheckboxes = $(\"li input[type='checkbox']:enabled\", this.$ul);\n var visibleCheckboxes = allCheckboxes.filter(\":visible\");\n var allCheckboxesCount = allCheckboxes.length;\n var visibleCheckboxesCount = visibleCheckboxes.length;\n \n if(justVisible) {\n visibleCheckboxes.prop('checked', true);\n $(\"li:not(.divider):not(.disabled)\", this.$ul).filter(\":visible\").addClass(this.options.selectedClass);\n }\n else {\n allCheckboxes.prop('checked', true);\n $(\"li:not(.divider):not(.disabled)\", this.$ul).addClass(this.options.selectedClass);\n }\n \n if (allCheckboxesCount === visibleCheckboxesCount || justVisible === false) {\n $(\"option:not([data-role='divider']):enabled\", this.$select).prop('selected', true);\n }\n else {\n var values = visibleCheckboxes.map(function() {\n return $(this).val();\n }).get();\n \n $(\"option:enabled\", this.$select).filter(function(index) {\n return $.inArray($(this).val(), values) !== -1;\n }).prop('selected', true);\n }\n \n if (triggerOnSelectAll) {\n this.options.onSelectAll();\n }\n },\n\n /**\n * Deselects all options.\n * \n * If justVisible is true or not specified, only visible options are deselected.\n * \n * @param {Boolean} justVisible\n */\n deselectAll: function (justVisible) {\n justVisible = (this.options.enableCollapsibleOptGroups && this.options.multiple) ? false : justVisible;\n justVisible = typeof justVisible === 'undefined' ? true : justVisible;\n \n if(justVisible) { \n var visibleCheckboxes = $(\"li input[type='checkbox']:not(:disabled)\", this.$ul).filter(\":visible\");\n visibleCheckboxes.prop('checked', false);\n \n var values = visibleCheckboxes.map(function() {\n return $(this).val();\n }).get();\n \n $(\"option:enabled\", this.$select).filter(function(index) {\n return $.inArray($(this).val(), values) !== -1;\n }).prop('selected', false);\n \n if (this.options.selectedClass) {\n $(\"li:not(.divider):not(.disabled)\", this.$ul).filter(\":visible\").removeClass(this.options.selectedClass);\n }\n }\n else {\n $(\"li input[type='checkbox']:enabled\", this.$ul).prop('checked', false);\n $(\"option:enabled\", this.$select).prop('selected', false);\n \n if (this.options.selectedClass) {\n $(\"li:not(.divider):not(.disabled)\", this.$ul).removeClass(this.options.selectedClass);\n }\n }\n },\n\n /**\n * Rebuild the plugin.\n * \n * Rebuilds the dropdown, the filter and the select all option.\n */\n rebuild: function() {\n this.$ul.html('');\n\n // Important to distinguish between radios and checkboxes.\n this.options.multiple = this.$select.attr('multiple') === \"multiple\";\n\n this.buildSelectAll();\n this.buildDropdownOptions();\n this.buildFilter();\n\n this.updateButtonText();\n this.updateSelectAll(true);\n \n if (this.options.disableIfEmpty && $('option', this.$select).length <= 0) {\n this.disable();\n }\n else {\n this.enable();\n }\n \n if (this.options.dropRight) {\n this.$ul.addClass('pull-right');\n }\n },\n\n /**\n * The provided data will be used to build the dropdown.\n */\n dataprovider: function(dataprovider) {\n \n var groupCounter = 0;\n var $select = this.$select.empty();\n \n $.each(dataprovider, function (index, option) {\n var $tag;\n \n if ($.isArray(option.children)) { // create optiongroup tag\n groupCounter++;\n \n $tag = $('').attr({\n label: option.label || 'Group ' + groupCounter,\n disabled: !!option.disabled\n });\n \n forEach(option.children, function(subOption) { // add children option tags\n $tag.append($('