{"version":3,"sources":["src/pages/package/package.ts","src/_core/scripts/specific/layout/index.ts","src/_core/scripts/specific/layout/device.ts","src/_core/scripts/specific/layout/lazyload.ts","src/_core/scripts/specific/config/responsive.ts","src/_core/scripts/specific/layout/lozad.ts","src/_core/scripts/specific/layout/breakpoints.ts","src/_core/scripts/specific/webToStore/index.ts","src/_core/scripts/specific/webToStore/webToStore.ts","src/_core/scripts/specific/popinTrigger/index.ts","src/components/header/header.ts","src/components/menuHeader/menuHeader.ts","src/components/footer/footer.ts","src/components/footContact/footContact.ts","src/components/tracking/trackingGTM.ts","src/components/bookingPackage/bookingPackage.tsx","src/components/bookingPackage/Layout/PackageLayout.tsx","src/_core/scripts/specific/config/format.ts","src/_core/scripts/libs/orxapi/Booking/Calendar.ts","src/_core/scripts/libs/orxapi/Booking/CalendarHandler.ts","src/_core/scripts/libs/orxapi/Booking/List.ts","src/_core/scripts/libs/orxapi/components/Button/index.tsx","src/components/bookingPackage/List/index.tsx","src/components/bookingPackage/List/Line.tsx","src/components/bookingPackage/List/SimpleLine.tsx","src/components/bookingPackage/InfoPopin/index.tsx","src/_core/scripts/libs/orxapi/components/Icon/index.tsx","src/components/bookingPackage/Search/index.tsx","src/components/bookingPackage/Pax/index.tsx","src/components/bookingPackage/CustomSelect/index.tsx","src/components/bookingPackage/ChildrenSelection/index.tsx","src/components/bookingPackage/Child/index.tsx","src/components/bookingPackage/FilterSearch/index.tsx","src/components/bookingPackage/FilterDisplay/index.tsx","src/components/bookingPackage/Calendar/index.tsx","src/components/bookingPackage/Calendar/Navigation.tsx","src/components/bookingPackage/Calendar/Day.tsx","src/_core/scripts/libs/orxapi/Booking/BookingWrapper.ts","src/components/bookingPackage/Layout/CruiseLayout.tsx","src/_core/scripts/libs/orxapi/Booking/Cruise.ts","src/components/bookingPackage/Cruise/CruiseList.tsx","src/components/bookingPackage/Cruise/Available.tsx","src/components/bookingPackage/Cruise/CruiseSimpleList.tsx","src/components/bookingPackage/Cruise/CabinList.tsx","src/components/popin/popin.ts","src/_core/scripts/specific/config/form.ts","src/_core/scripts/libs/orxapi/Booking/form.ts","src/_core/scripts/libs/orxapi/components/deeplink/deeplink.ts","src/_core/scripts/libs/orxapi/ElementHelper/formElementHelper.ts","src/_core/scripts/specific/config/bookingValidation.ts","src/components/loader/loader.ts","src/components/collapseContainer/collapseContainer.ts","src/_core/scripts/libs/orxapi/map/packageMap.ts","src/_core/scripts/libs/orxapi/map/index.ts","src/components/packageProduct/packageProduct.ts","src/components/diaporama/diaporama.ts","src/components/diaporama/diaporamaConfig.ts","src/elements/icon/icon.ts","src/components/fadeSlider/fadeSlider.ts","src/components/sliderPushings/sliderPushings.ts","src/components/sliderPushings/sliderPushingsConfig.ts","src/components/headerMenu/headerMenu.ts","src/elements/arrowTop/arrowTop.ts","src/_core/scripts/libs/orxapi/Autocomplete/index.ts","src/_core/scripts/libs/orxapi/Autocomplete/Template.ts","src/elements/selectChoosen/selectChoosen.ts","src/elements/incrementalField/incrementalField.ts","src/components/travelPlannerBox/travelPlannerBox.ts","src/components/headerLinksList/headerLinksList.ts","src/components/breadcrumb/breadcrumb.ts","src/components/searchEngine/app/tools/stringTools.ts","src/components/productShare/shareButton.ts","src/components/flashSalesCounter/flashSalesCounter.ts","src/components/floaPayment/floaPayment.ts","src/components/headerSubModule/headerSubModule.ts","src/components/headerSubModuleDesktop/desktopHeaderSubModule.ts","src/_core/scripts/specific/header/header.ts","src/components/fastSearch/fastSearch.ts","src/components/fastSearch/app/index.tsx","src/components/fastSearch/app/components/index.tsx","src/components/fastSearch/app/components/useFastSearch.ts","src/_core/scripts/libs/orxapi/tools/Fetcher/index.ts","src/_core/scripts/libs/orxapi/tools/Debounce/index.ts","src/components/fastSearch/app/config/fastSearch.ts","src/components/fastSearch/app/components/useMediaQuery.ts","src/components/fastSearch/app/components/FastSearchMenuList/index.tsx","src/components/fastSearch/app/components/FastSearchOption/index.tsx","src/components/fastSearch/app/components/FastSearchLoadingMessage/index.tsx","src/components/fastSearch/app/components/FastSearchNoOptionsMessage/index.tsx","packages/@babel/runtime@7.28.4","packages/@emotion/cache@11.14.0","packages/@emotion/hash@0.9.2","packages/@emotion/memoize@0.9.0","packages/@emotion/react@11.14.0","packages/@emotion/serialize@1.3.3","packages/@emotion/sheet@1.4.0","packages/@emotion/unitless@0.10.0","packages/@emotion/use-insertion-effect-with-fallbacks@1.2.0","packages/@emotion/utils@1.4.2","packages/@emotion/weak-memoize@0.4.0","packages/blazy@1.8.2","packages/breakpoints-js@1.0.6","packages/devbridge-autocomplete@1.4.11","packages/hoist-non-react-statics@3.3.2","packages/inputmask@3.3.11","packages/undefined@undefined","packages/jquery-countdown@2.2.0","packages/jquery-selector-cache@1.0.2","packages/js-cookie@2.2.1","packages/lozad@1.16.0","packages/mdn-polyfills@5.20.0","packages/memoize-one@5.2.1","packages/moment@2.29.1","packages/object-assign@4.1.1","packages/orxapi.booking.validation@1.2.0","packages/orxapi.tools.array@1.1.0","packages/orxapi.tools.clickable@2.0.0","packages/orxapi.tools.toscroll@0.0.1","packages/orxapi.tools.url@1.0.2","packages/process@0.0.0","packages/prop-types@15.8.1","packages/react-dom@16.14.0","packages/react-input-autosize@3.0.0","packages/react-is@16.13.1","packages/react-responsive@8.0.3","packages/react-select@4.3.1","packages/react@16.14.0","packages/scheduler@0.19.1","packages/slick-carousel@1.8.1","packages/stylis@4.2.0","packages/tslib@2.3.0","packages/ua-parser-js@0.7.41"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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ACN,6BAAK,SAAS,EAAC,qBAAqB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;oBAC1H,8BAAM,CAAC,EAAC,+lBAA+lB,EAAC,IAAI,EAAC,SAAS,GAAE,CACtnB,CACJ;YACN,6BAAK,SAAS,EAAC,0CAA0C;gBACrD,6BAAK,SAAS,EAAC,sCAAsC,IAChD,MAAA,KAAK,CAAC,WAAW,mCAAI,uBAAuB,CAC3C;gBACN,6BAAK,SAAS,EAAC,yCAAyC,wEAElD,CACJ,CACJ,CACoB,CACjC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC;;;;;AC1CrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/uBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACt/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7uFA;AACA;AACA;AACA;AACA;AACA;AACA;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5iLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzhCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACp0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5wxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACp3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz8OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACt6DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9vCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz8FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"","sourcesContent":["import * as $$ from \"jquery-selector-cache\";\nimport \"../../_core/scripts/specific/layout/index\";\nimport \"../../_core/scripts/specific/webToStore/index\";\nimport \"../../_core/scripts/specific/popinTrigger/index\";\nimport {initHeader} from \"../../components/header/header\";\nimport {initMenuHeader} from \"../../components/menuHeader/menuHeader\";\nimport {initChosenFooter, initNewsletterPopin, initSliderFooter} from \"../../components/footer/footer\";\nimport {initBookingPackage} from \"../../components/bookingPackage/bookingPackage\";\nimport {\n    handleBookingButtonClick,\n    handlePaxByDispo,\n    updatePassengerConstraintsValidation\n} from \"../../_core/scripts/libs/orxapi/Booking/form\";\nimport {handleCollapseTab, initCollapseContainer} from \"../../components/collapseContainer/collapseContainer\";\nimport {initPackageProduct} from \"../../components/packageProduct/packageProduct\";\nimport {initFadeSlider} from \"../../components/fadeSlider/fadeSlider\";\nimport {initSliderPushings} from \"../../components/sliderPushings/sliderPushings\";\nimport {initPopin} from \"../../components/popin/popin\";\nimport {\n    handleBackTitle,\n    handleMenuBurger,\n    handleOverlayMenu,\n    handlePanelLink,\n    menuCalculator,\n    subMenuCalculator\n} from \"../../components/headerMenu/headerMenu\";\nimport {initToScrollTop} from \"../../elements/arrowTop/arrowTop\";\nimport {initDisplayMap, initProductMap} from \"../../_core/scripts/libs/orxapi/map/packageMap\";\nimport {initAutocomplete} from \"../../_core/scripts/libs/orxapi/Autocomplete\";\nimport {initSelectChoosen} from \"../../elements/selectChoosen/selectChoosen\";\nimport {initIncrementalField} from \"../../elements/incrementalField/incrementalField\";\nimport {handleOpenTravelPlannerBox, initTravelPlannerBox} from \"../../components/travelPlannerBox/travelPlannerBox\";\nimport {initHeaderLinksList} from \"../../components/headerLinksList/headerLinksList\";\nimport {initBreadcrumbFromSerp} from \"../../components/breadcrumb/breadcrumb\";\nimport {initShareButton} from \"../../components/productShare/shareButton\";\nimport {initCountdownPush} from \"../../components/flashSalesCounter/flashSalesCounter\";\nimport {initFloaPayment} from \"../../components/floaPayment/floaPayment\";\nimport {initMobileHeaderSubModule} from \"../../components/headerSubModule/headerSubModule\";\nimport {initDesktopHeaderSubModule} from \"../../components/headerSubModuleDesktop/desktopHeaderSubModule\";\nimport {initScrollDisplayForHeader} from \"../../_core/scripts/specific/header/header\";\nimport {initFastSearch} from \"../../components/fastSearch/fastSearch\";\n\nif (console !== undefined) {\n    console.log(\"initialize package ;-)\");\n}\n\n// Core\ninitAutocomplete();\n\n// Elements\ninitSelectChoosen();\ninitIncrementalField();\ninitToScrollTop();\n\n// Components\ninitHeader();\ninitFastSearch();\ninitMenuHeader();\ninitScrollDisplayForHeader();\ninitMobileHeaderSubModule();\ninitDesktopHeaderSubModule();\ninitHeaderLinksList();\ninitPopin();\ninitBookingPackage();\ninitPackageProduct();\ninitCountdownPush();\ninitFadeSlider();\ninitSliderFooter();\ninitNewsletterPopin();\ninitChosenFooter();\ninitPopin();\ninitCollapseContainer();\ninitDisplayMap();\ninitTravelPlannerBox();\ninitBreadcrumbFromSerp();\ninitFloaPayment();\n\n// Modules\ninitSliderPushings();\n\n// Share Button\ninitShareButton();\n\n// TODO move to components\n// Handles booking package\n$$(\"#bookingWrap\").on(\"click\", \".submit-button\", handleBookingButtonClick);\n$$(\"#bookingWrap\").on(\"click\", \".week-day.available\", handlePaxByDispo);\n$$(\"#bookingWrap\").on(\"change\", \"#slt_adultsBooking\", updatePassengerConstraintsValidation);\n$$(\"#bookingWrap\").on(\"change\", \"#slt_childrenBooking\",  updatePassengerConstraintsValidation);\n$$(\"#bookingWrap\").on(\"input\", \".booking-pax input\", updatePassengerConstraintsValidation);\n// Handles menu\n$$(\".elem-icon-burger\").on(\"click\", handleMenuBurger);\n$$(\".back-title\").on(\"click\", handleBackTitle);\n$$(\".panel-link\").on(\"click\", \".link\", handlePanelLink);\n$$(\".overlay-menu-full\").on(\"click\", handleOverlayMenu);\n$$(window).on(\"resize\", menuCalculator);\n$$(window).on(\"resize\", subMenuCalculator);\n\n$$(\".cpt-travel-planner-box\").on(\"click.arrowButton\", \".arrow-button\", handleOpenTravelPlannerBox);\n// TODO - end move to components\n\n// Export to havas global variable\nexport const callback = {\n    initProductMap\n};\n","import \"mdn-polyfills/String.prototype.startsWith\";\nimport \"mdn-polyfills/String.prototype.includes\";\nimport \"mdn-polyfills/Array.prototype.find\";\nimport {initClickable} from \"orxapi.tools.clickable\";\nimport {initDevice} from \"./device\";\nimport {initLazyLoading} from \"./lazyload\";\nimport {initLozad} from \"./lozad\";\nimport {getBreakpointsCallbacks, getBreakpointsNames, initStartingBreakpoints} from \"./breakpoints\";\n\n// Initialize the right breakpoint on current page.\ninitStartingBreakpoints();\n\n// Initialize the User Agent devices\ninitDevice();\n\n// Initialize Lazy load\ninitLazyLoading();\ninitLozad();\n\n// Initialize default clickable\ninitClickable();\n\n\n// Breakpoints custom event: initialize the breakpoints handler.\nconst breakpointsCallbacks = getBreakpointsCallbacks();\nconst breakpointsNames = getBreakpointsNames();\nbreakpointsNames.forEach((name) => Breakpoints.on(name, breakpointsCallbacks));","import { UAParser } from \"ua-parser-js\";\n\nconst uaparser = new UAParser();\n\n/**\n * Initialize the User Agent\n */\nexport function initDevice() {\n    if (isMobileDevice()) {\n        document.querySelector(\"body\").classList.add(\"is-mobile\");\n    }\n    if (isTabletDevice()) {\n        document.querySelector(\"body\").classList.add(\"is-tablet\");\n    }\n}\n\n/**\n * Get the actual device\n * @return {IUAParser.IDevice}\n */\nfunction getDevice(): IUAParser.IDevice {\n    return uaparser.getDevice();\n}\n\n/**\n * Get the OS information\n * @return {IUAParser.IOS}\n */\nfunction getOS(): IUAParser.IOS {\n    return uaparser.getOS();\n}\n\n/**\n * Check if a device type is mobile\n * @returns {boolean}\n */\nexport function isMobileDevice(): boolean {\n    return getDevice().type === \"mobile\";\n}\n\n/**\n * Check if a device type is tablet\n * @returns {boolean}\n */\nexport function isTabletDevice(): boolean {\n    return getDevice().type === \"tablet\";\n}\n\n/**\n * Check if a iOS\n * @returns {boolean}\n */\nexport function isIOSDevice(): boolean {\n    return getOS().name === \"iOS\";\n}","import * as Blazy from \"blazy\";\nimport {breakpointsConfig} from \"../config/responsive\";\n\n/** Fix a Type Definition Error */\ninterface BlazyInstanceFix extends BlazyInstance {\n    load(elements: Element | Element[] | HTMLElement | HTMLElement[] | HTMLCollection | NodeList | JQuery<HTMLElement>, force: boolean): void;\n}\n\n// Local variable\nlet bLazy: BlazyInstanceFix;\n\n/**\n * Initialize the lazy load\n */\nexport function initLazyLoading() {\n    bLazy = new Blazy({\n        breakpoints: [{\n            width: breakpointsConfig.sm.max,\n            src: \"data-src-mobile\"\n        }, {\n            width: breakpointsConfig.lg.min,\n            src: \"data-src-tablet\"\n        }],\n        offset : 150\n    });\n}\n\n/**\n * Revalidate document for visible images\n */\nexport function revalidateLazyImage() {\n    bLazy.revalidate();\n}\n\n/**\n * Load the image with lazy\n * @param elem\n */\nexport function loadImageHidden(elem: JQuery<HTMLElement>) {\n    bLazy.load(elem, true);\n}\n\n/**\n * Object-fit condition for loading\n * @param img\n * @returns {boolean}\n */\nexport function handleConditionSuccess(img: HTMLImageElement) {\n    const image = $(img);\n    return image.hasClass(\"b-lazy\") ? image.hasClass(\"b-loaded\") : true;\n}","export interface IBreakpointsConfig extends IBreakpointsOptions {\n    readonly xs: IBreakpointsBoundary;\n    readonly sm: IBreakpointsBoundary;\n    readonly md: IBreakpointsBoundary;\n    readonly lg: IBreakpointsBoundary;\n    readonly xl: IBreakpointsBoundary;\n}\n\n/**\n * Configure the breakpoints\n * @type IBreakpointsConfig\n */\nexport const breakpointsConfig: IBreakpointsConfig = {\n    xs: {min: 0, max: 575},\n    sm: {min: 576, max: 767},\n    md: {min: 768, max: 991},\n    lg: {min: 992, max: 1359},\n    xl: {min: 1360, max: Infinity}\n};","import * as lozad from \"lozad\";\nimport type {Observer} from \"lozad\";\n\n// Local variable\nlet lazy: Observer;\n\n/**\n * Initialize the lazy load\n */\nfunction initLozad() {\n    lazy = lozad();\n    lazy.observe();\n}\n\n/**\n * Observes newly added elements as well\n */\nfunction observesLazyImage() {\n    if (lazy === undefined) {\n        console.warn(\n            \"The lazy observer is not initialized, \" +\n            \"please call initLazyLoading() method \" +\n            \"before call observesLazyImage() method.\"\n        );\n        return;\n    }\n    lazy.observe();\n}\n\n/**\n * Load the image with lazy\n * @param elem\n */\nfunction triggerLoadLazyImage(elem: Element) {\n    if (lazy === undefined) {\n        console.warn(\n            \"The lazy observer is not initialized, \" +\n            \"please call initLazyLoading() method \" +\n            \"before call triggerLoadLazyImage() method.\"\n        );\n        return;\n    }\n    lazy.triggerLoad(elem);\n}\n\nexport {\n    initLozad,\n    observesLazyImage,\n    triggerLoadLazyImage,\n};\n","import * as $$ from \"jquery-selector-cache\";\nimport Breakpoints from \"breakpoints-js\";\nimport {breakpointsConfig} from \"../config/responsive\";\n\n/**\n * Get the handler callbacks of Breakpoints library\n * @return {IBreakpointsCallbacks} the Event enter handler function\n */\nexport function getBreakpointsCallbacks(): IBreakpointsCallbacks {\n    return {\n        enter() {\n            addBreakpointClass(this.name);\n        }\n    };\n}\n\n/**\n * Get the array name of Breakpoints configuration\n * @return {string[]} the key of the breakpoints configuration\n */\nexport function getBreakpointsNames(): string[] {\n    return $.map(breakpointsConfig, (propertyOfObject: IBreakpointsBoundary, key: string) => {\n        return key;\n    });\n}\n\n/**\n * Initialize the right breakpoint on starting page.\n */\nexport function initStartingBreakpoints() {\n    Breakpoints(breakpointsConfig);\n    addBreakpointClass(Breakpoints.current().name);\n}\n\n/**\n * Add and update the body breakpoint class\n * @param breakpointName\n */\nfunction addBreakpointClass(breakpointName: string) {\n    const bodyClass = $$(\"body\").attr(\"class\") || \"\";\n    const removeClass = bodyClass.replace(/(bp[-\\w]*)/g, \"\").trim();\n    $$(\"body\").removeClass().addClass(`${removeClass} bp-${breakpointName}`);\n}\n\n/**\n * Check it is mobile breakpoint on desktop\n * @returns {boolean}\n */\nexport function isMobileBreakpoint(): boolean {\n    return Breakpoints.is(\"xs\") || Breakpoints.is(\"sm\");\n}\n\n/**\n * Check it is tablet breakpoint on desktop\n * @returns {boolean}\n */\nexport function isTabletBreakpoint(): boolean {\n    return Breakpoints.is(\"md\");\n}\n\n/**\n * Check it is desktop breakpoint large and extra large\n * @returns {boolean}\n */\nexport function isDesktopBreakpoint(): boolean {\n    return Breakpoints.is(\"lg\") || Breakpoints.is(\"xl\");\n}","import {handleCookie} from \"./webToStore\";\n\n// Handle webToStoreActivated cookie\nhandleCookie();","import * as Cookies from \"js-cookie\";\nimport {CookieAttributes} from \"js-cookie\";\n\nconst WEB_TO_STORE = \"webToStoreActivated\";\nconst WEB_TO_STORE_DATA = \"webtostoreactivated\";\n\n/**\n * handle the creation of the cookie when accessing to the catalog\n */\nexport function handleCookie() {\n    const webToStoreActivated = $(\"body\").data(WEB_TO_STORE_DATA);\n    if ( webToStoreActivated ) {\n        if (!findCookie()) {\n            addCookie();\n        }\n    }\n}\n\n/**\n * check if the cookie webToStoreActivated exists  already\n * @returns {boolean}\n */\nfunction findCookie() {\n\n    return !!Cookies.get(WEB_TO_STORE);\n}\n\n/**\n * create the cookie webToStoreActivated\n * cookie indefinite in time\n * @param cookie\n */\nfunction addCookie() {\n    document.cookie = WEB_TO_STORE + \"=true; expires=Fri, 31 Dec 9999 23:59:59 GMT\";\n    // TODO\n    // voir avec Manu comment ajouter l'attribut expires\n    // Cookies.set(WEB_TO_STORE,\"true\",\"Fri, 31 Dec 9999 23:59:59 GMT\")\n}","import * as $$ from \"jquery-selector-cache\";\nimport {getUrlHashVar} from \"orxapi.tools.url\";\n\nopenPopinByHash();\n\n$(window).on(\"hashchange\", openPopinByHash);\n\n/**\n * open popin by trigger in hash\n */\nfunction openPopinByHash() {\n    const urlHashVar = getUrlHashVar();\n    if (urlHashVar.trigger) {\n        // this can be fuuuully more generic, like $(something).trigger(urlHashVar.trigger) but could that be really safe and secure ?\n        const toOpen = urlHashVar.trigger.replace(\"open.\", \"\");\n        $$(\".open-trigger.\" + toOpen).removeClass(\"d-none\");\n        $(\"body\").addClass(\"popin-is-open\");\n    }\n}","import * as $$ from \"jquery-selector-cache\";\nimport {isMobileBreakpoint, isTabletBreakpoint} from \"../../_core/scripts/specific/layout/breakpoints\";\n\n/**\n * Initialize the header\n */\nexport function initHeader() {\n    // Exit when component don't exist\n    if (!$$(\".cpt-header\").length) {\n        return;\n    }\n\n    const htmlBody: JQuery = $$(\"html,body\");\n    const header = $$(\".cpt-header\");\n\n    if (isMobileBreakpoint()) {\n        $(\".button-specialist-wrap > a\").attr(\"href\", $(\".button-specialist-wrap\").data(\"mobileSpecialistCallHref\"));\n    }\n\n    if (isMobileBreakpoint() || isTabletBreakpoint()) {\n        $$(window).on(\"scroll\", {htmlBody, header}, handleScrollPage);\n    } else {\n        return;\n    }\n}\n\n/**\n * Handle scroll event for sticky header\n * @param {JQuery.Event} evt\n */\nfunction handleScrollPage(evt: JQuery.Event) {\n    const scrollBody = document.body.scrollTop || document.documentElement.scrollTop;\n    // @ts-ignore\n    const {htmlBody, header} = evt.data;\n    const headerCalcHeight = header.outerHeight();\n\n    // Toggle sticky mode\n    header.toggleClass(\"sticky-active\", !(scrollBody < headerCalcHeight));\n}\n","import * as $$ from \"jquery-selector-cache\";\nimport {isMobileBreakpoint, isTabletBreakpoint, isDesktopBreakpoint} from \"../../_core/scripts/specific/layout/breakpoints\";\n\n/**\n * Initialize the header\n */\nexport function initMenuHeader() {\n    // Exit when component don't exist\n    if (!$$(\".cpt-menu-header\").length) {\n        return;\n    }\n\n    if (isDesktopBreakpoint()) {\n        $(\".burger-menu-icon\").on(\"mouseenter\", () => {\n            const $container = $(\".cpt-menu-header\");\n            $container.find(\".cpt-desktop-header-sub-module\").addClass(\"d-none\");\n            $(\".overlay-background\").removeClass(\"d-none\");\n            $(\".burger-menu-wrapper\").removeClass(\"d-none\");\n        });\n\n        $(\".burger-menu-links-container\").on(\"mouseleave\", () => {\n            $(\".burger-menu-wrapper\").addClass(\"d-none\");\n            $(\".overlay-background\").addClass(\"d-none\");\n        });\n    }\n}\n","import * as $$ from \"jquery-selector-cache\";\nimport \"slick-carousel\";\nimport \"../../_core/scripts/libs/vendor/chosen.jquery\";\nimport {initFooterContactComponent} from \"../../components/footContact/footContact\";\n\n/**\n * Initialize the slider footer\n */\nexport function initSliderFooter() {\n    // Exit when component don't exist\n    if (!$$(\".cpt-foot-ads-slider\").length) {\n        return;\n    }\n    addSliderFooter();\n    initFooterContactComponent();\n}\n\nexport function initNewsletterPopin() {\n    // Exit when component don't exist\n    if (!$$(\".cpt-newsletter\").length) {\n        return;\n    }\n    const newsletterPopin = $(\".cpt-newsletter\");\n    newsletterPopin.on(\"click\", \".btn-close\", closeNewsletterPopin);\n    $$(\".open-newsletter\").on(\"click\", handleOpenPopinNewsletter);\n}\n/**\n * open the newsletter popin\n */\nfunction handleOpenPopinNewsletter() {\n    $$(\".cpt-newsletter\").toggleClass(\"d-none\");\n    $$(\"body\").toggleClass(\"popin-is-open\");\n\n}\n\n/**\n * close the newsletter popin\n */\nexport function closeNewsletterPopin() {\n    $(\".cpt-newsletter\").addClass(\"d-none\");\n    $(\"body\").removeClass(\"popin-is-open\");\n}\n\n/**\n * add the slider footer\n */\nfunction addSliderFooter() {\n    $$(\".cpt-foot-ads-slider\").slick({\n        centerMode: true,\n        centerPadding: \"0\",\n        slidesToShow: 6,\n        responsive: [\n            {\n                breakpoint: 1024,\n                settings: {\n                    arrows: false,\n                    centerMode: true,\n                    centerPadding: \"40px\",\n                    slidesToShow: 4\n                }\n            },\n            {\n                breakpoint: 480,\n                settings: {\n                    arrows: false,\n                    centerMode: true,\n                    centerPadding: \"50px\",\n                    slidesToShow: 1\n                }\n            }\n        ]\n    });\n}\n\n/**\n * Initialize the footer chosen select\n */\nexport function initChosenFooter() {\n    $$(\".chosen-footer-select\").chosen({enable_escape_special_char: true});\n}\n","import * as $$ from \"jquery-selector-cache\";\nimport {handleTrackingFollowUs} from \"../tracking/trackingGTM\";\n\n/**\n * Initialize the component\n */\nexport function initFooterContactComponent() {\n    // Exit when component don't exist\n    if (!$$(\".follow-us\").length) {\n        return;\n    }\n    $$(\".follow-us\").on(\"click\", \".is-clickable\" , handleTrackingFollowUs);\n}\n","import * as $$ from \"jquery-selector-cache\";\n\n/**\n * Initialize tracking on serp\n */\nexport function handleTrackingProductList() {\n    const impressions = [];\n    const params = new URLSearchParams(window.location.search);\n    const productType = formatLabel(params?.get(\"type\") ? params.get(\"type\") : \"\");\n    let globalIndex = 0; // In case of a page with serp results AND pushing modules\n    // Serp case\n    $$(\".cpt-result\").each((index: number, element: HTMLElement) => {\n        const productName = formatLabel($(element).data(\"productName\"));\n        const productDestination = formatLabel($(element).data(\"productDestination\"));\n        const name = productName + \" - \" + productDestination;\n        impressions.push({\n            \"id\": $(element).data(\"productRef\"),\n            \"name\": name,\n            \"category\": productType,\n            \"list\": \"search result\" + (productType ? \" \" + productType : \"\"),\n            \"position\": (globalIndex + 1)\n        });\n        globalIndex++;\n    });\n    // Landing case\n    // (implemented by \"mistake\", was not in scope as of 29-03-2022, but may be useful in the future)\n    // $$(\".cpt-pushing\").each((index: number, element: HTMLElement) => {\n    //     const productId = $(element).data(\"productId\");\n    //     const productName = formatLabel($(element).data(\"productName\"));\n    //     const productDestination = formatLabel($(element).data(\"productDestination\"));\n    //     const name = productName + \" - \" + productDestination;\n    //     const productType = formatLabel($(element).data(\"productType\"));\n    //     const pageClass = $(\"body\").attr(\"class\");\n    //     const pageTitle = formatLabel($(document).attr(\"title\").toLowerCase());\n    //     let pageType = \"\";\n    //     if (pageClass.includes(\"page-home\")) {\n    //         pageType = \"home\";\n    //     } else if (pageClass.includes(\"page-landing\")) {\n    //         pageType = \"landing\";\n    //     } else if (pageClass.includes(\"page-destination\")) {\n    //         pageType = \"destination\";\n    //     }\n    //     const list = pageType + (pageTitle ? \" \" + pageTitle : \"\");\n    //\n    //     impressions.push({\n    //         \"id\": productId,\n    //         \"name\": name,\n    //         \"category\": productType,\n    //         \"list\": list,\n    //         \"position\": (globalIndex + 1)\n    //     });\n    //     globalIndex++;\n    // });\n    // getDataLayer().push({\n    //     \"event\": \"product.impression\",\n    //     \"ecommerce\": {\n    //         \"impressions\" : impressions\n    //     }\n    // });\n}\n\n/**\n * Tracking : handles newsletter subscribe event\n */\nexport function handleTrackingNewsletter() {\n    getDataLayer().push({\n        \"event\": \"Newsletter\",\n        \"action\": \"Inscription NL\"\n    });\n}\n\n/**\n * Tracking : handles \"follow us\" event\n */\nexport function handleTrackingFollowUs(evt) {\n    const rs = $(evt.currentTarget).data(\"rs\");\n    getDataLayer().push({\n        \"event\": \"follow rs\",\n        \"Objet\": rs\n    });\n}\n\n/**\n *  Tracking : handles click on a serp product\n */\nexport function handleTrackingAndProductClick(event, callback: (productLink: string) => void) {\n    const currentTarget = $(event.currentTarget);\n    const params = new URLSearchParams(window.location.search);\n    const category = params?.get(\"type\") ? params.get(\"type\") : \"\";\n    const productId = currentTarget.data(\"productRef\").toString();\n    const productPrice = currentTarget.data(\"productBasePriceAvailability\").toString();\n    const productName = currentTarget.data(\"productName\").toString();\n    const productLink = currentTarget.data(\"productLink\").toString();\n\n    let navigated = false;\n\n    // Fallback: navigate after 1 s if GTM does not respond (e.g. when consent is refused)\n    const fallbackTimer = setTimeout(() => {\n        if (!navigated) {\n            navigated = true;\n            callback(productLink);\n        }\n    }, 1000);\n\n    getDataLayer().push({\n        \"event\" : \"product.click\",\n        \"ecommerce\" : {\n            \"click\" : {\n                \"actionField\": {\"list\": \"serp\"},\n                \"products\": [{\n                    \"id\": productId,\n                    \"name\": formatLabel(productName),\n                    \"price\": productPrice,\n                    \"category\": category\n                }]\n            }\n        },\n        \"eventCallback\": (gtmId) => {\n            if (gtmId === \"GTM-5PJ3597\" && !navigated) { // Avoid firing callback multiple times\n                navigated = true;\n                clearTimeout(fallbackTimer);\n                callback(productLink);\n            }\n        }\n    });\n}\n\n/**\n * Tracking : retrieves GTM dataLayer\n */\nfunction getDataLayer() {\n    return window[\"dataLayer\"] = (window as any).dataLayer || [];\n}\n\n/**\n * Format the name of a product by removing unwanted characters\n * @param productName the product name to format\n */\nfunction formatLabel(productName: string) {\n    let formatted = productName;\n    formatted = replaceAll(formatted, \"'\", \" \");\n    formatted = replaceAll(formatted, \"\\\"\", \"-\");\n    return formatted;\n}\n\n/**\n * Replace all occurrences of \"find\" in \"str\" by \"replace\"\n * @param str string to transform\n * @param find characters to replace\n * @param replace new characters\n */\nfunction replaceAll(str, find, replace) {\n    return str? str.replace(new RegExp(escapeRegExp(find), 'g'), replace) : \"\";\n}\n\nfunction escapeRegExp(string) {\n    return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}","import \"tslib\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport * as $$ from \"jquery-selector-cache\";\nimport PackageLayout from \"./Layout/PackageLayout\";\nimport CruiseLayout from \"./Layout/CruiseLayout\";\nimport {openPopin} from \"../popin/popin\";\nimport {IPackageLayoutProps} from \"./Layout/ILayout\";\nimport {IProductInfo} from \"./List/IBookingList\";\nimport {IBookingAvailabilitiesModel} from \"../../_core/scripts/libs/orxapi/Booking/IBooking\";\nimport BookingWrapper from \"../../_core/scripts/libs/orxapi/Booking/BookingWrapper\";\nimport {getUrlHashVar} from \"orxapi.tools.url\";\nimport {urlRefineParametersConfig} from \"../../_core/scripts/specific/config/form\";\nimport * as moment from \"moment\";\nimport {isMobileBreakpoint} from \"../../_core/scripts/specific/layout/breakpoints\";\nimport {toScroll} from \"orxapi.tools.toscroll\";\n\n/**\n * Initialize the booking\n */\nexport function initBookingPackage() {\n    const bookingWrap = $$(\"#bookingWrap\");\n    if (!bookingWrap.length) {\n        return;\n    }\n    const {targetUrl, minPassengers, maxPassengers, maxChildren, locale, cartUrl, productCode, layout: componentLayout} = bookingWrap.data();\n    const productInfo: IProductInfo = {\n        code: bookingWrap.data(\"productToCode\"),\n        title: bookingWrap.data(\"productTitle\"),\n        pictureUrl: bookingWrap.data(\"productPicture\"),\n    };\n    const dataLayout = {targetUrl, minPassengers, maxPassengers, maxChildren, locale, cartUrl, productInfo};\n    $.ajax(\"/ajax/product/avails/\" + productCode, {\n        dataType: \"json\"\n    }).done(response => {\n        (window as any).orxapi.model.bookingForm.availabilities = response.availabilities;\n        (window as any).orxapi.model.bookingForm.search = response.search;\n        ReactDOM.render(getComponent(componentLayout, dataLayout), bookingWrap[0]);\n        $(\".open-booking-package\").removeClass(\"loader-active\");\n        $$(\"#bookingWrap\").removeClass(\"is-loading\");\n    });\n    $(\".open-booking-package\").on(\"click.openPopin\", {target: \".popin-booking-package\"}, handleCalendarButton);\n\n    Breakpoints.on(\"xs sm\", {\n        enter: () => $(\".popin-booking-package .popin-main\").after($$(\"#bookingWrap\")),\n        leave: () => $(\".cpt-package-product\").after($$(\"#bookingWrap\"))\n    })\n}\n\n/**\n * Handler click, open the popin\n * @param evt\n */\nfunction handleCalendarButton(evt: JQuery.Event) {\n    if (isMobileBreakpoint()) {\n        // @ts-ignore\n        const target = $(evt.data.target) as JQuery;\n        openPopin(target);\n    } else {\n        toScroll({\n            target: $$(\"#bookingWrap\"),\n            duration: 500,\n            offset: -150\n        });\n    }\n}\n\n/**\n * Return the right layout type\n * @param {string} layout\n * @param {object} dataLayout\n * @return {JSX.Element}\n */\nfunction getComponent(layout: string, dataLayout: IPackageLayoutProps): JSX.Element {\n    switch (layout) {\n        case \"cruise\":\n            return <CruiseLayout {...dataLayout} />;\n        case \"package\":\n            return <PackageLayout {...dataLayout} />;\n        default:\n            return null;\n    }\n}\n\n/**\n *\n * @param avail\n */\nexport function initializeHeadAvailInformation(avail: IBookingAvailabilitiesModel) {\n    if (avail) {\n        const packagePrice = $$(\".package-price\").find(\".price\").find(\".final-price\");\n        const priceRegex = /\\d+(\\s\\d+)*/;\n        packagePrice.html(packagePrice.html()?.replace(priceRegex, avail.price.toLocaleString(\"fr\")));\n        updateBrochurePrice(avail, priceRegex);\n        updateReductionRate(avail);\n        $$(\".package-time .data\").html(avail.nbDay + \" jour(s) / \" + avail.nbNight + \" nuit(s)\");\n        $$(\".package-departure-city .data\").html(avail.departureCityLabel);\n    }\n}\n\n/**\n * Get the avail object selected\n *\n * @returns {any} avail object selected\n */\nexport function getSelectedAvail(): IBookingAvailabilitiesModel {\n    const wrapper = new BookingWrapper();\n    const hash = getUrlHashVar();\n    const durationNight = hash[urlRefineParametersConfig.durationNight];\n    const durationDay = hash[urlRefineParametersConfig.durationDay];\n    const departureCity = hash[urlRefineParametersConfig.departureCity];\n    const day = hash[urlRefineParametersConfig.day];\n    const monthYear = hash[urlRefineParametersConfig.monthYear];\n\n    if (durationDay && durationNight && departureCity && day && monthYear) {\n        const date = moment(day + \"/\" + monthYear, \"DD/MM/YYYY\");\n        if (wrapper.getDuration(departureCity)) {\n            const dayNumber = Number(durationDay.split(\",\")[0]);\n            const nightNumber = Number(durationNight.split(\",\")[0]);\n            const duration = dayNumber + \"-\" + nightNumber;\n            if (wrapper.getMonthYear(departureCity, duration)) {\n                if (wrapper.getDay(departureCity, duration, date.format(\"MM-YYYY\"))) {\n                    if (wrapper.getDay(departureCity, duration, date.format(\"MM-YYYY\"))[day]) {\n                        return wrapper.getDay(departureCity, duration, date.format(\"MM-YYYY\"))[day];\n                    }\n                }\n            }\n        }\n    }\n}\n\n/**\n * Update, add or remove the Brochure price element\n *\n * @param avail the avail to update\n * @param priceRegex the price regex\n */\nfunction updateBrochurePrice(avail: IBookingAvailabilitiesModel, priceRegex): void {\n    const price = $$(\".package-price\").find(\".price\");\n    const brochurePrice = $$(\".package-price\").find(\".price\").find(\".brochure-price\");\n    if (brochurePrice.length) {\n        if (avail.regularPrice) {\n            brochurePrice.html(brochurePrice.html().replace(priceRegex, avail.regularPrice.toLocaleString(\"fr\")));\n        } else {\n            brochurePrice.remove();\n        }\n    } else {\n        if (avail.regularPrice && avail.regularPrice > avail.price) {\n            const brochurePrice = $(`\n                    <div class=\"brochure-price\">\n                        <span class=\"label\">${(window as any).orxapi.locale.i18n[\"product.price.reduce.caps\"]}</span>\n                        <span class=\"line-through\">${avail.regularPrice.toLocaleString(\"fr\")}€</span>\n                    </div>\n                `);\n            price.children().eq(1).after(brochurePrice);\n        }\n    }\n}\n\n/**\n * Update, add or remove the Reduction rate element\n *\n * @param avail the avail to update\n */\nfunction updateReductionRate(avail: IBookingAvailabilitiesModel): void {\n    const minReductionRate = 5;\n    const reductions = $$(\".cpt-package-product, .cpt-package-information\").find(\".price-reduction\");\n    if (!avail.reductionRate || avail.reductionRate < minReductionRate) {\n        reductions?.remove();\n    } else {\n        const reductionRate = Math.floor(avail.reductionRate);\n        const displayReduction = `-${reductionRate}%`;\n        if (reductions.length) {\n            reductions.text(displayReduction);\n        } else {\n            const reductionDiv = \"<div class=\\\"price-reduction\\\">\"+ displayReduction +\"</div>\"\n            $$(\".package-slider-container\")?.prepend(reductionDiv);\n            $$(\".cpt-package-information\")?.find(\".package-price\")?.append(reductionDiv);\n        }\n    }\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport * as $$ from \"jquery-selector-cache\";\nimport Responsive from \"react-responsive\";\nimport * as moment from \"moment\";\nimport {breakpointsConfig} from \"../../../_core/scripts/specific/config/responsive\";\nimport {formatConfig, momentLocaleConfig} from \"../../../_core/scripts/specific/config/format\";\nimport {default as CalendarModel} from \"../../../_core/scripts/libs/orxapi/Booking/Calendar\";\nimport {default as ListModel} from \"../../../_core/scripts/libs/orxapi/Booking/List\";\nimport {isMobileBreakpoint} from \"../../../_core/scripts/specific/layout/breakpoints\";\nimport Button from \"../../../_core/scripts/libs/orxapi/components/Button\";\nimport List from \"../List\";\nimport Search from \"../Search\";\nimport FilterDisplay from \"../FilterDisplay\";\nimport Calendar from \"../Calendar\";\nimport {DisplayMode, IPackageLayoutProps, IPackageLayoutState} from \"./ILayout\";\nimport BookingWrapper from \"../../../_core/scripts/libs/orxapi/Booking/BookingWrapper\";\nimport {IBookingAvailabilitiesModel, IBookingWrapData} from \"../../../_core/scripts/libs/orxapi/Booking/IBooking\";\nimport {IProductInfo} from \"../List/IBookingList\";\nimport {getSelectedAvail, initializeHeadAvailInformation} from \"../bookingPackage\";\nimport {getUrlHashVar} from \"orxapi.tools.url\";\n\n/**\n * @class PackageLayout\n */\nexport default class PackageLayout extends Component<IPackageLayoutProps, IPackageLayoutState> {\n\n    private readonly search;\n    private readonly defaultSearch;\n    private readonly targetUrl;\n    private readonly minPassengers;\n    private readonly maxPassengers;\n    private readonly maxChildren;\n    private readonly productInfo: IProductInfo;\n    private readonly defaultBookingDate: string;\n    private calendarModel: CalendarModel;\n    private bookingWrapper: BookingWrapper;\n\n    constructor(props: IPackageLayoutProps) {\n        super(props);\n        // Get device initialization\n        const isInitMobile = isMobileBreakpoint();\n        const defaultDisplayMode = getUrlHashVar()[\"bookingMode\"] || (isInitMobile ? \"list\" : \"calendar\");\n        const selectedAvail = getSelectedAvail();\n        let selectedDepartureDate;\n        let selectedDepartureCity;\n        let selectedDuration;\n        if (selectedAvail) {\n            selectedDepartureDate = selectedAvail.day + \"-\" + selectedAvail.monthYearCode;\n            selectedDepartureCity = selectedAvail.departureCity;\n            selectedDuration = selectedAvail.nbDay + \"-\" + selectedAvail.nbNight;\n\n        } else {\n            selectedDepartureDate = $$(\"#bookingWrap\").data(\"baseDepartureDate\");\n            selectedDepartureCity = $$(\"#bookingWrap\").data(\"baseDepartureCity\");\n            selectedDuration = $$(\"#bookingWrap\").data(\"baseDuration\");\n        }\n\n        // Initialize booking model\n        this.bookingWrapper = new BookingWrapper();\n\n        // Assign\n        this.search = this.bookingWrapper.getSearch();\n        this.defaultSearch = {baseDepartureCity: selectedDepartureCity, baseDuration: selectedDuration};\n        this.targetUrl = this.props.targetUrl;\n        this.minPassengers = this.props.minPassengers;\n        this.maxPassengers = this.props.maxPassengers;\n        this.maxChildren = this.props.maxChildren;\n        this.productInfo = this.props.productInfo;\n        this.defaultBookingDate = selectedDepartureDate + \"-\" + selectedDuration;\n\n        // Get availabilities\n        const {\n            availabilities,\n            baseMonthYear,\n            baseDateBounds\n        } = this.getAvailabilitiesObject({\n            baseDepartureDate: selectedDepartureDate,\n            baseDepartureCity: selectedDepartureCity,\n            baseDuration: selectedDuration\n        }, isInitMobile);\n\n        initializeHeadAvailInformation(selectedAvail);\n        let bookingAvailabilities;\n        if (defaultDisplayMode === \"list\") {\n            bookingAvailabilities = ListModel.getAvailabilities(this.bookingWrapper.getMonthYear(selectedDepartureCity, selectedDuration));\n        } else {\n            bookingAvailabilities = availabilities;\n        }\n\n        // State\n        this.state = {\n            availabilities: bookingAvailabilities,\n            monthYear: baseMonthYear,\n            departureCity: selectedDepartureCity,\n            duration: selectedDuration,\n            displayMode: defaultDisplayMode,\n            dateBounds: baseDateBounds\n        };\n        $$(\"#bookingWrap\").data(\"stateMonthYear\", baseMonthYear);\n        $$(\"#bookingWrap\").data(\"stateDepartureCity\", selectedDepartureCity);\n        $$(\"#bookingWrap\").data(\"stateDuration\", selectedDuration);\n\n        // Bind\n        this.handleBeforeChangeResponsive = this.handleBeforeChangeResponsive.bind(this);\n    }\n\n    /**\n     * This is a completely optional performance enhancement that you can\n     * implement on any React component. If you were to delete this method\n     * the app would still work correctly (and still be very performant!), we\n     * just use it as an example of how little code it takes to get an order\n     * of magnitude performance improvement.\n     * @return {boolean}\n     */\n    public shouldComponentUpdate(nextProps: IPackageLayoutProps, nextState: IPackageLayoutState): boolean {\n        return (\n            nextState.availabilities !== this.state.availabilities ||\n            nextState.monthYear !== this.state.monthYear\n        );\n    }\n\n    public componentDidMount(): void {\n        const button = $$(\"#bookingWrap\").find(\".main-submit-button\");\n        button.data(\"avail\", this.defaultBookingDate);\n        button.data(\"city\", this.defaultSearch.baseDepartureCity);\n        this.forceUpdate();\n    }\n\n    public render(): JSX.Element {\n        return (\n            <>\n                {/* DESKTOP && TABLET */}\n                <Responsive minWidth={breakpointsConfig.md.min} onBeforeChange={this.handleBeforeChangeResponsive}>\n                    <div data-action={this.targetUrl} className=\"reservationForm\">\n                        <Search\n                            defaultSearch={this.defaultSearch}\n                            minPassengers={this.minPassengers}\n                            maxPassengers={this.maxPassengers}\n                            maxChildren={this.maxChildren}\n                            data={this.search}\n                            handleUpdateModel={() => this.updateModel()}\n                        />\n                        <div className=\"relative\">\n                            <h3 className=\"title-step\">Les disponibilités</h3>\n                            <FilterDisplay\n                                displayMode={this.state.displayMode}\n                                handleSetDisplayMode={(displayMode: DisplayMode) => this.setDisplayMode(displayMode)}\n                            />\n                        </div>\n                        {{\n                            calendar: (\n                                <Calendar\n                                    data={this.state.availabilities}\n                                    monthYear={this.state.monthYear}\n                                    dateBounds={this.state.dateBounds}\n                                    handleUpdateModel={() => this.updateModel()}\n                                />\n                            ),\n                            list: (\n                                <List data={this.state.availabilities} type=\"line\"/>\n                            )\n                        }[this.state.displayMode]}\n                        {this.getGDSMessage()}\n                        <div className=\"button-wrap text-center\">\n                            {/*<Button className=\"elem-button--primary-invert btn-no-radius btn-large add-to-favorite\"*/}\n                            {/*data-target={\"/account#favorites\"}>Ajouter à mes favoris</Button>*/}\n                            {/*<Button className=\"elem-button--primary btn-no-radius btn-large add-to-cart\"*/}\n                            {/*data-target={this.props.cartUrl}>Ajouter au panier</Button>*/}\n                            <Button\n                                className=\"elem-button--tertiary btn-no-radius btn-large submit-button main-submit-button hidden\">Réserver</Button>\n                        </div>\n                    </div>\n                </Responsive>\n\n                {/* MOBILE */}\n                <Responsive maxWidth={breakpointsConfig.sm.max}>\n                    <div className=\"booking-mobile\">\n                        <div data-action={this.targetUrl} className=\"booking-form reservationForm\">\n                            <Search\n                                defaultSearch={this.defaultSearch}\n                                minPassengers={this.minPassengers}\n                                maxPassengers={this.maxPassengers}\n                                maxChildren={this.maxChildren}\n                                data={this.search}\n                                handleUpdateModel={() => this.updateModel()}\n                            />\n                            {this.getGDSMessage()}\n                            <h3 className=\"title-step\">Les disponibilités</h3>\n                            <List data={this.state.availabilities} productInfo={this.productInfo}\n                                cartUrl={this.props.cartUrl} type=\"simpleLine\"/>\n                        </div>\n                        <div className=\"button-wrap text-center\">\n                            <Button className=\"elem-button--tertiary btn-no-radius btn-large submit-button main-submit-button hidden\">Réserver</Button>\n                        </div>\n                    </div>\n                </Responsive>\n            </>\n        );\n    }\n\n    /**\n     * handleBeforeChangeResponsive\n     * @param matches\n     */\n    private handleBeforeChangeResponsive(matches: boolean) {\n        this.setDisplayMode(\"list\");\n    }\n\n    /**\n     * Get the right availabilities between calendar and list mode for mobile device\n     * @param {string} baseDepartureDate\n     * @param {string} baseDepartureCity\n     * @param {string} baseDuration\n     * @param {boolean} isInitMobile\n     * @return {{availabilities: IBookingAvailabilitiesModel[], baseMonthYear: string, baseDateBounds: string[]}}\n     */\n    private getAvailabilitiesObject({baseDepartureDate, baseDepartureCity, baseDuration}: IBookingWrapData, isInitMobile: boolean):\n    { availabilities: IBookingAvailabilitiesModel[], baseMonthYear: string, baseDateBounds: string[] } {\n        // Make\n        const [, baseMonth, baseYear] = baseDepartureDate.split(\"-\");\n        const baseMonthYear = `${baseMonth}-${baseYear}`;\n        const firstDayOfSelectedMonth = `${baseYear}-${baseMonth}-01`;\n\n        // Create calendar model\n        this.calendarModel = new CalendarModel({momentLocaleConfig: momentLocaleConfig[this.props.locale]});\n\n        // Get availabilities\n        const yearAvailabilityModel = this.bookingWrapper.getMonthYear(baseDepartureCity, baseDuration);\n        const availabilities = isInitMobile ?\n            ListModel.getAvailabilities(yearAvailabilityModel) :\n            this.calendarModel.fillData(firstDayOfSelectedMonth, yearAvailabilityModel[baseMonthYear]);\n\n        const baseDateBounds = isInitMobile ? [\"\"] : CalendarModel.getDateBoundsAvailabilities(yearAvailabilityModel);\n\n        return {\n            availabilities,\n            baseMonthYear,\n            baseDateBounds\n        };\n    }\n\n    /**\n     * Change the display mode between calendar and list\n     * @param {DisplayMode} displayMode\n     */\n    public setDisplayMode(displayMode: DisplayMode) {\n        this.setState({\n            displayMode\n        }, () => {\n            this.updateModel();\n        });\n    }\n\n    /**\n     * Update the state of model selected\n     */\n    public updateModel() {\n        const departureCity = $$(\"#bookingWrap\").data(\"stateDepartureCity\") || $$(\"#bookingWrap\").data(\"baseDepartureCity\");\n        const duration = $$(\"#bookingWrap\").data(\"stateDuration\") || $$(\"#bookingWrap\").data(\"baseDuration\");\n        const yearAvailabilityModel = this.bookingWrapper.getMonthYear(departureCity, duration);\n        // Set the calendar or list availabilities\n        let availabilities;\n        let monthYear;\n        let dateBounds;\n        if (this.state.displayMode === \"calendar\") {\n            monthYear = $$(\"#bookingWrap\").data(\"stateMonthYear\") || this.state.monthYear;\n            const firstDayOfSelectedMonth = moment(`01-${monthYear}`, formatConfig.dateFR).format(formatConfig.date);\n            availabilities = this.calendarModel.fillData(firstDayOfSelectedMonth, yearAvailabilityModel[monthYear]);\n            dateBounds = CalendarModel.getDateBoundsAvailabilities(yearAvailabilityModel);\n\n        } else {\n            monthYear = $$(\"#bookingWrap\").data(\"stateMonthYear\");\n            console.log(yearAvailabilityModel);\n            availabilities = ListModel.getAvailabilities(yearAvailabilityModel);\n            dateBounds = [];\n        }\n\n        const bookingButton = $$(\"#bookingWrap\").find(\".main-submit-button\");\n        bookingButton.data(\"city\", departureCity);\n        bookingButton.data(\"avail\", \"\");\n\n        this.setState({\n            availabilities,\n            departureCity,\n            duration,\n            monthYear,\n            dateBounds\n        });\n    }\n\n    /**\n     * Return the GDS message\n     */\n    private getGDSMessage(): JSX.Element {\n        return (\n            <div className=\"message-gds\"><span className=\"gds-arrow\"/> le prix du vol évoluant en permanence, le prix\n                total de ce voyage sera actualisé à la prochaine étape.</div>\n        );\n    }\n\n}\n","import {LocaleSpecification} from \"moment\";\nimport * as Inputmask from \"inputmask\";\n\n/**\n * Default format configuration\n * @type {string<object>}\n */\nexport const formatConfig = {\n    date: \"YYYY-MM-DD\",\n    dateFR: \"DD-MM-YYYY\",\n    monthYear: \"MMMM YYYY\",\n    childrenAge: \"DD/MM/YYYY\",\n    returnDateFormat: \"DD/MM/YYYY\",\n    yearAvailabilities: \"MM-YYYY\",\n    weekdays: [\"lundi\", \"mardi\", \"mercredi\", \"jeudi\", \"vendredi\", \"samedi\", \"dimanche\"]\n};\n\nexport const childDateMask: Inputmask = new Inputmask(\"date\", {\n    \"placeholder\": \"jj/mm/aaaa\",\n    yearrange: {minyear: 1990}\n});\n\n/**\n * Default moment locale configuration\n * @type {LocaleSpecification | void}\n */\nexport const momentLocaleConfig: LocaleSpecification | any = {\n    fr: {\n        months: [\"janvier\", \"février\", \"mars\", \"avril\", \"mai\", \"juin\", \"juillet\", \"août\", \"septembre\", \"octobre\", \"novembre\", \"décembre\"],\n        monthsShort: [\"janv.\", \"févr.\", \"mars\", \"avr.\", \"mai\", \"juin\", \"juil.\", \"août\", \"sept.\", \"oct.\", \"nov.\", \"déc.\"],\n        monthsParseExact: true,\n        weekdays: [\"dimanche\", \"lundi\", \"mardi\", \"mercredi\", \"jeudi\", \"vendredi\", \"samedi\"],\n        weekdaysShort: [\"dim.\", \"lun.\", \"mar.\", \"mer.\", \"jeu.\", \"ven.\", \"sam.\"],\n        weekdaysMin: [\"Di\", \"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\"],\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: \"HH:mm\",\n            LTS: \"HH:mm:ss\",\n            L: \"DD/MM/YYYY\",\n            LL: \"D MMMM YYYY\",\n            LLL: \"D MMMM YYYY HH:mm\",\n            LLLL: \"dddd D MMMM YYYY HH:mm\"\n        },\n        calendar: {\n            sameDay: \"[Aujourd’hui à] LT\",\n            nextDay: \"[Demain à] LT\",\n            nextWeek: \"dddd [à] LT\",\n            lastDay: \"[Hier à] LT\",\n            lastWeek: \"dddd [dernier à] LT\",\n            sameElse: \"L\"\n        },\n        relativeTime: {\n            future: \"dans %s\",\n            past: \"il y a %s\",\n            s: \"quelques secondes\",\n            m: \"une minute\",\n            mm: \"%d minutes\",\n            h: \"une heure\",\n            hh: \"%d heures\",\n            d: \"un jour\",\n            dd: \"%d jours\",\n            M: \"un mois\",\n            MM: \"%d mois\",\n            y: \"un an\",\n            yy: \"%d ans\"\n        },\n        dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n        ordinal: (nbr: any, period: any): string => {\n            switch (period) {\n                // TODO: Return \"e\" when day of month > 1. Move this case inside\n                // block for masculine words below.\n                // See https://github.com/moment/moment/issues/3375\n                case \"D\":\n                    return nbr + (nbr === 1 ? \"er\" : \"\");\n\n                // Words with masculine grammatical gender: mois, trimestre, jour\n                default:\n                case \"M\":\n                case \"Q\":\n                case \"DDD\":\n                case \"d\":\n                    return nbr + (nbr === 1 ? \"er\" : \"e\");\n\n                // Words with feminine grammatical gender: semaine\n                case \"w\":\n                case \"W\":\n                    return nbr + (nbr === 1 ? \"re\" : \"e\");\n            }\n        },\n        week: {\n            dow: 1, // Monday is the first day of the week.\n            doy: 4  // The week that contains Jan 4th is the first week of the year.\n        }\n    }\n};","import * as moment from \"moment\";\nimport {LocaleSpecification} from \"moment\";\nimport {makeArray} from \"orxapi.tools.array\";\nimport {CalendarHandler} from \"./CalendarHandler\";\nimport {formatConfig} from \"../../../specific/config/format\";\nimport List from \"./List\";\nimport {\n    IBookingAvailabilitiesModel,\n    IBookingDayAvailabilityModel,\n    IBookingYearAvailabilityModel\n} from \"./IBooking\";\n\nexport interface ICalendarOptions {\n    numberOfWeeks?: number;\n    numberOfDaysIntoWeek?: number;\n    momentLocaleConfig?: LocaleSpecification;\n}\n\n/**\n * @class Calendar\n */\nexport default class Calendar {\n\n    private matrixDay: number[];\n\n    constructor(public options?: ICalendarOptions) {\n        this.initialize();\n    }\n\n    /**\n     * @return the default calendar options\n     */\n    private static getDefaultOptions(): ICalendarOptions {\n        return {\n            numberOfWeeks: 6,\n            numberOfDaysIntoWeek: 7,\n        };\n    }\n\n    /**\n     * Initialize the calendar, create matrix of the day and define the locale format date\n     */\n    private initialize() {\n        const opts = Object.assign({}, this.options, Calendar.getDefaultOptions());\n\n        // Create array calendar with 42 days (7 days x 6 weeks)\n        this.matrixDay = makeArray(opts.numberOfDaysIntoWeek * opts.numberOfWeeks);\n\n        // Define the locale for moment library\n        moment.updateLocale(\"fr\", opts.momentLocaleConfig);\n    }\n\n    /**\n     * Construct the calendar from the default matrix of the day\n     * @param value the first day of the selected month\n     * @param dateFormat the date format\n     * @return the default calendar of month\n     */\n    private constructCalendar(value: string, dateFormat: string): any[] {\n        const date = moment(value, dateFormat);\n        const startWeek = moment(date).startOf(\"month\").startOf(\"week\");\n        const firstDateFull = startWeek.format(dateFormat);\n\n        return this.matrixDay.map((day: number, index: number) => CalendarHandler.retrieveDefaultDay(firstDateFull, index, dateFormat));\n    }\n\n    /**\n     * Fill in the calendar with merged default calendar with the data of availability\n     * @param firstDayOfSelectedMonth the first day of the selected month\n     * @param dayAvailabilityModel the data of availability\n     * @return the calendar fill with data\n     */\n    public fillData(firstDayOfSelectedMonth: string, dayAvailabilityModel: IBookingDayAvailabilityModel): IBookingAvailabilitiesModel[] {\n        const calendar = this.constructCalendar(firstDayOfSelectedMonth, formatConfig.date);\n        const month = firstDayOfSelectedMonth.split(\"-\")[1];\n\n        return calendar.reduce((result: any[], currentValue: any, i: number): IBookingAvailabilitiesModel[] => {\n            if (i % 7 === 0) {\n                result.push([]);\n            }\n\n            const week = result[result.length - 1];\n            const day = CalendarHandler.getDay(dayAvailabilityModel, currentValue, month);\n            week.push(day);\n            return result;\n        }, []);\n    }\n\n    /**\n     * Return a pair with the date limite\n     * @param {IBookingYearAvailabilityModel} yearAvailabilityModel\n     * @return {string[]}\n     */\n    public static getDateBoundsAvailabilities(yearAvailabilityModel: IBookingYearAvailabilityModel): string[] {\n        const {0: firstMonth, length: l, [l - 1]: lastMonth} = List.getSortedYear(yearAvailabilityModel);\n        return [firstMonth, lastMonth];\n    }\n\n}","import * as moment from \"moment\";\nimport {\n    IBookingAvailabilitiesModel,\n    IBookingDayAvailabilityModel\n} from \"./IBooking\";\n\ninterface IBookingDefaultDay {\n    date: string;\n    status: Status;\n    selection: string;\n    price: number;\n}\n\n/**\n * Status of the calendar day\n */\nexport enum Status {\n    OUTSIDE = \"outside\",\n    OUTSIDE_PREV_MONTH = \"outside prev-month\",\n    OUTSIDE_NEXT_MONTH = \"outside next-month\",\n    NOT_AVAILABLE = \"not-available\"\n}\n\n/**\n * @class CalendarHandler\n */\nexport class CalendarHandler {\n\n    /**\n     * Create the default day object\n     * @param date the day date\n     * @param index the index for offset of the initial day\n     * @param format the date format\n     * @return the default day object\n     */\n    public static retrieveDefaultDay(date: string, index: number, format: string): IBookingDefaultDay {\n        return {\n            date: moment(date, format).add(index, \"day\").format(format),\n            status: Status.OUTSIDE,\n            selection: \"\",\n            price: null\n        };\n    }\n\n    /**\n     * Returns an object in the displayed, available, unavailable, or out of the current month.\n     * @param dayAvailabilityModel the array matching user selection\n     * @param dayData the data form fill data\n     * @param selectedMonth the selected month\n     * @return the day for display\n     */\n    public static getDay(dayAvailabilityModel: IBookingDayAvailabilityModel, dayData: IBookingDefaultDay, selectedMonth: string): IBookingAvailabilitiesModel {\n        const [, month, day] = dayData.date.split(\"-\");\n\n        // When the day is outside (previous month) of the actual month\n        if (month < selectedMonth) {\n            return Object.assign({}, dayData, {day, status: Status.OUTSIDE_PREV_MONTH});\n        }\n\n        // When the day (next month) is outside of the actual month\n        if (month > selectedMonth) {\n            return Object.assign({}, dayData, {day, status: Status.OUTSIDE_NEXT_MONTH});\n        }\n\n        // When the day is available\n        if (dayAvailabilityModel && dayAvailabilityModel[day]) {\n            return dayAvailabilityModel[day];\n        }\n\n        // When the day is not available\n        return Object.assign({}, dayData, {day, status: Status.NOT_AVAILABLE});\n    }\n\n}","import * as moment from \"moment\";\nimport {formatConfig} from \"../../../specific/config/format\";\nimport {\n    IBookingAvailabilitiesModel,\n    IBookingYearAvailabilityModel\n} from \"./IBooking\";\n\n/**\n * @class List\n */\nexport default class List {\n\n    /**\n     * Return a array of the availabilities JSON for display the list\n     * @param {IBookingYearAvailabilityModel} yearAvailabilityModel\n     * @returns {IBookingAvailabilitiesModel[]}\n     */\n    public static getAvailabilities(yearAvailabilityModel: IBookingYearAvailabilityModel): IBookingAvailabilitiesModel[] {\n        const sortedYearList = List.getSortedYear(yearAvailabilityModel);\n        const monthsList = sortedYearList.map((value) => yearAvailabilityModel[value]);\n        return monthsList\n            .map((month: any) => $.map(month, (date: IBookingAvailabilitiesModel) => date))\n            .reduce((prev, curr) => prev.concat(curr), [])\n            .sort((a: IBookingAvailabilitiesModel, b: IBookingAvailabilitiesModel) =>\n                moment(a.returnValue, formatConfig.returnDateFormat).diff(moment(b.returnValue, formatConfig.returnDateFormat)))\n    }\n\n    /**\n     * Sort the availabilities year dates list\n     * TODO move to helper availability\n     * @param {IBookingYearAvailabilityModel} yearAvailabilityModel\n     * @return {string[]} Return an ordered list of dates\n     */\n    public static getSortedYear(yearAvailabilityModel: IBookingYearAvailabilityModel): string[] {\n        return Object.keys(yearAvailabilityModel).sort((a, b) => moment(a, formatConfig.yearAvailabilities).diff(moment(b, formatConfig.yearAvailabilities)));\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\n\n/**\n * @class Button\n */\nexport default class Button extends Component<any, any> {\n\n    public render(): JSX.Element {\n        return <button {...this.props}>{this.props.children}</button>;\n    }\n\n}","import * as $$ from \"jquery-selector-cache\";\nimport * as React from \"react\";\nimport {Component} from \"react\";\nimport Line from \"./Line\";\nimport SimpleLine from \"./SimpleLine\";\nimport {IBookingLinePreviousData, IBookingListProps, IBookingListState} from \"./IBookingList\";\nimport {IBookingAvailabilitiesModel, IBookingDataInfoPopin} from \"../../../_core/scripts/libs/orxapi/Booking/IBooking\";\nimport {InfoPopin} from \"../InfoPopin\";\n\n/**\n * @class List\n */\nexport default class List extends Component<IBookingListProps, IBookingListState> {\n\n    constructor(props: IBookingListProps) {\n        super(props);\n\n        this.state = {\n            dataInfoPopin: null\n        };\n\n        this.handleDataPopin = this.handleDataPopin.bind(this);\n    }\n\n    public componentDidMount() {\n        if (this.props.type === \"simpleLine\") {\n            const bookingList = $$(\"#bookingWrap\");\n            $$(\".toggle-booking-list\").on(\"click.bookingList\", () => {\n                bookingList.toggleClass(\"active\");\n            });\n        }\n    }\n\n    public componentWillUnmount() {\n        if (this.props.type === \"simpleLine\") {\n            $$(\".toggle-booking-list\").off(\"click.bookingList\");\n        }\n    }\n\n    public render(): JSX.Element {\n        const {type, data} = this.props;\n        const isSimpleLine = (type === \"simpleLine\");\n        return (\n            <>\n                <div className=\"booking-list\">\n                    <div className={isSimpleLine ? \"inner-booking-list\" : \"booking-list-scroll\"}>\n                        {\n                            data.map((line: IBookingAvailabilitiesModel, lineIndex: number, list: IBookingAvailabilitiesModel[]) => {\n                                const previousData = List.getPreviousData(lineIndex, list);\n                                return this.getComponent(type, lineIndex, line, previousData);\n                            })\n                        }\n                    </div>\n                </div>\n                {isSimpleLine && this.state.dataInfoPopin !== null &&\n                    <InfoPopin data={this.state.dataInfoPopin} productInfo={this.props.productInfo} />\n                }\n            </>\n        );\n    }\n\n    /**\n     * Return the right component type\n     * @param {string} component\n     * @param {number} lineIndex\n     * @param {IBookingAvailabilitiesModel} line\n     * @param {IBookingLinePreviousData} previousData\n     * @return {JSX.Element}\n     */\n    private getComponent(component: string, lineIndex: number, line: IBookingAvailabilitiesModel, previousData: IBookingLinePreviousData): JSX.Element {\n        const key = `L_${lineIndex.toString()}-${line.day}`;\n        switch (component) {\n            case \"simpleLine\":\n                return <SimpleLine key={key} data={line} previousData={previousData} handlePopinData={this.handleDataPopin} />;\n            default:\n                return <Line key={key} data={line} previousData={previousData} />;\n        }\n    }\n\n    /**\n     * Return the previous data when you need into current data line\n     * @param {number} lineIndex\n     * @param {IBookingAvailabilitiesModel[]} list\n     * @returns {IBookingLinePreviousData}\n     */\n    private static getPreviousData(lineIndex: number, list: IBookingAvailabilitiesModel[]): IBookingLinePreviousData {\n        return {\n            monthYear: (lineIndex > 0) ? list[lineIndex - 1].monthYear : \"\"\n        };\n    }\n\n    /**\n     * Update state with data info popin and display info popin\n     * @param evt\n     */\n    private handleDataPopin(evt: React.SyntheticEvent<HTMLDivElement>) {\n        this.setState({\n            dataInfoPopin: evt.currentTarget.dataset as IBookingDataInfoPopin\n        }, () => {\n            $$(\".booking-info-popin\").removeClass(\"d-none\");\n            const bookingButtons = $(\"#bookingWrap\").find(\".button-wrap\").find(\"button\");\n            bookingButtons.data(\"avail\", this.state.dataInfoPopin.avail);\n            bookingButtons.data(\"city\", this.state.dataInfoPopin.city);\n        });\n    }\n\n}","import * as $$ from \"jquery-selector-cache\";\nimport * as React from \"react\";\nimport {Component} from \"react\";\nimport {IBookingLineProps} from \"./IBookingList\";\nimport {Status} from \"../../../_core/scripts/libs/orxapi/Booking/CalendarHandler\";\n\n/**\n * @class Line\n */\nexport default class Line extends Component<IBookingLineProps, any> {\n\n    constructor(props: IBookingLineProps) {\n        super(props);\n\n        this.handleClickSelected = this.handleClickSelected.bind(this);\n    }\n\n    public render(): JSX.Element {\n        const {data, previousData} = this.props;\n        const dataLine = {\n            \"data-avail\": data.day + \"-\" + data.monthYearCode + \"-\" + data.nbDay + \"-\" + data.nbNight,\n            \"data-city\": data.departureCity\n        };\n        const isPromo = data.regularPrice !== 0 && data.regularPrice && (data.regularPrice > data.price)\n            && (Math.floor(data.reductionRate) >= 5);\n        let productTypeClass = isPromo ? \"promo-type\" : \"\";\n        const button = $$(\"#bookingWrap\").find(\".main-submit-button\");\n        const dateSelected = button.data(\"avail\");\n        const citySelected = button.data(\"city\");\n        if (dataLine[\"data-avail\"] && dataLine[\"data-avail\"] === dateSelected && dataLine[\"data-city\"] && dataLine[\"data-city\"] === citySelected) {\n            productTypeClass += \" selected\";\n        }\n\n        if (data.status !== Status.NOT_AVAILABLE) {\n            productTypeClass += \" submit-button\";\n        }\n\n        return (\n            <>\n                {(data.monthYear !== previousData.monthYear) &&\n                <div className=\"line-new-month\">\n                    {data.monthYear}\n                </div>\n                }\n                <div className={\"line week-day \" + productTypeClass} {...dataLine} onClick={this.handleClickSelected}>\n                    <div className=\"cell col-departure\">\n                        {data.dispoStatus && data.dispoStatus === \"GDS\" &&\n                            <span className=\"gds\"/>\n                        }\n                        {data.departureLabel &&\n                        <>\n                            <span className=\"city-label\">de {data.departureCityLabel}</span>\n                            <span className=\"departure-label\">{data.departureLabel}</span>\n                        </>\n                        }\n                    </div>\n                    <div className=\"cell col-duration\">\n                        {data.nbDay && data.nbNight &&\n                        <>\n                            <span>{data.nbDay} jours</span> /\n                            <span>{data.nbNight} nuits</span>\n                        </>\n                        }\n                    </div>\n                    {isPromo && data.reductionRate &&\n                        <div className=\"price-reduction\">-{Math.floor(data.reductionRate)}%</div>\n                    }\n                    <div className=\"cell col-price align-right\">\n                        {data.price &&\n                            <span className=\"primary price\">\n                                {data.price.toString()}&nbsp;€ <span className=\"type\">/ {data.byHousing ? \"hébérgement\" : \"personne\"}</span>\n                            </span>\n                        }\n                        {isPromo &&\n                            <span className=\"instead-of\">\n                                au lieu de <span className=\"regular-price\"> {data.regularPrice.toString()}&nbsp;€</span>\n                            </span>\n                        }\n                    </div>\n                </div>\n            </>\n        );\n    }\n\n    /**\n     * Selected the current day line\n     * @param evt\n     */\n    private handleClickSelected(evt: React.SyntheticEvent<HTMLDivElement>) {\n        const cell = evt.currentTarget;\n        if (cell.classList.contains(\"selected\")) {\n            return;\n        }\n\n        // Update selected day\n        $(\".booking-list\").find(\".line\").removeClass(\"selected\");\n        cell.classList.add(\"selected\");\n\n        const selectedDay = $(cell);\n        if (selectedDay.length && selectedDay.data(\"avail\")) {\n            const selectedAvail = selectedDay.data(\"avail\");\n            const selectedCity = selectedDay.data(\"city\");\n\n            const bookingButtons = $$(\"#bookingWrap\").find(\".button-wrap\").find(\"button\");\n\n            bookingButtons.data(\"avail\", selectedAvail);\n            bookingButtons.data(\"city\", selectedCity);\n            const [day, month, year] = selectedAvail.split(\"-\");\n            $$(\"#bookingWrap\").data(\"stateMonthYear\", `${month}-${year}`);\n        }\n    }\n\n}\n","import * as $$ from \"jquery-selector-cache\";\nimport * as React from \"react\";\nimport {Component} from \"react\";\nimport {IBookingLineProps} from \"./IBookingList\";\nimport {Status} from \"../../../_core/scripts/libs/orxapi/Booking/CalendarHandler\";\n\n/**\n * @class SimpleLine\n */\nexport default class SimpleLine extends Component<IBookingLineProps, any> {\n\n    constructor(props: IBookingLineProps) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        const {data, previousData} = this.props;\n        const dataLine = {\n            \"data-avail\": data.day + \"-\" + data.monthYearCode + \"-\" + data.nbDay + \"-\" + data.nbNight,\n            \"data-city\": data.departureCity,\n            \"data-city-label\": `de ${data.departureCityLabel}`,\n            \"data-departure-label\": `${data.departureLabel}`,\n            \"data-duration-label\": `${data.nbDay} jours / ${data.nbNight} nuits`,\n            \"data-price\": `${data.price}`,\n            \"data-by-housing\": `${data.byHousing}`\n        };\n\n        const isPromo = data.regularPrice !== 0 && data.regularPrice && (data.regularPrice > data.price)\n            && (Math.floor(data.reductionRate) >= 5);\n        let productTypeClass = isPromo ? \"promo-type\" : \"\";\n        const button = $$(\"#bookingWrap\").find(\".main-submit-button\");\n        const dateSelected = button.data(\"avail\");\n        const citySelected = button.data(\"city\");\n        if (dataLine[\"data-avail\"] && dataLine[\"data-avail\"] === dateSelected && dataLine[\"data-city\"] && dataLine[\"data-city\"] === citySelected) {\n            productTypeClass += \" selected\";\n        }\n\n        if (data.status !== Status.NOT_AVAILABLE) {\n            productTypeClass += \" submit-button\";\n        }\n\n        return (\n            <>\n                {(data.monthYear !== previousData.monthYear) &&\n                    <div className=\"line-new-month\">\n                        {data.monthYear}\n                    </div>\n                }\n                <div className={\"line simple-line week-day \" + productTypeClass} {...dataLine} onClick={this.handleClickSelected}>\n                    <div className=\"cell col-departure\">\n                        {data.dispoStatus && data.dispoStatus === \"GDS\" &&\n                            <span className=\"gds\"/>\n                        }\n                        {data.departureLabel &&\n                            <>\n                                <span className=\"city-label\">de {data.departureCityLabel}</span>\n                                <span className=\"departure-label\">{data.departureLabel}</span>\n                                {data.nbDay && data.nbNight &&\n                                    <>\n                                        <span>{data.nbDay} jours</span> /\n                                        <span>{data.nbNight} nuits</span>\n                                    </>\n                                }\n                            </>\n                        }\n                    </div>\n                    {isPromo && data.reductionRate &&\n                        <div className=\"price-reduction\">-{Math.floor(data.reductionRate)}%</div>\n                    }\n                    <div className=\"cell col-price align-right\">\n                        {data.price &&\n                            <span className=\"primary price\">\n                                {data.price.toString()}&nbsp;€ <span className=\"type\">/ {data.byHousing ? \"hébérgement\" : \"personne\"}</span>\n                            </span>\n                        }\n                        {isPromo &&\n                            <span className=\"instead-of\">\n                                au lieu de <span className=\"regular-price\"> {data.regularPrice.toString()}&nbsp;€</span>\n                            </span>\n                        }\n                    </div>\n                </div>\n            </>\n        );\n    }\n\n    /**\n     * Selected the current day line\n     * @param evt\n     */\n    private handleClickSelected(evt: React.SyntheticEvent<HTMLDivElement>) {\n        const cell = evt.currentTarget;\n        if (cell.classList.contains(\"selected\")) {\n            return;\n        }\n\n        // Update selected day\n        $(\".booking-list\").find(\".line\").removeClass(\"selected\");\n        cell.classList.add(\"selected\");\n\n        const selectedDay = $(cell);\n        if (selectedDay.length && selectedDay.data(\"avail\")) {\n            const selectedAvail = selectedDay.data(\"avail\");\n            const selectedCity = selectedDay.data(\"city\");\n\n            const bookingButtons = $$(\"#bookingWrap\").find(\".button-wrap\").find(\"button\");\n\n            bookingButtons.data(\"avail\", selectedAvail);\n            bookingButtons.data(\"city\", selectedCity);\n            const [day, month, year] = selectedAvail.split(\"-\");\n            $$(\"#bookingWrap\").data(\"stateMonthYear\", `${month}-${year}`);\n        }\n    }\n\n}\n","import * as React from \"react\";\nimport {Component, RefObject} from \"react\";\nimport Icon from \"../../../_core/scripts/libs/orxapi/components/Icon\";\nimport Button from \"../../../_core/scripts/libs/orxapi/components/Button\";\nimport {IInfoPopinProps} from \"./IInfoPopin\";\n\n/**\n * @class InfoPopin\n */\nexport class InfoPopin extends Component<IInfoPopinProps, any> {\n\n    private readonly infoPopin: RefObject;\n\n    constructor(props: any) {\n        super(props);\n\n        this.infoPopin = React.createRef();\n        this.handleCloseInfoPopin = this.handleCloseInfoPopin.bind(this);\n    }\n\n    public render(): JSX.Element {\n        const {price, byHousing, cityLabel, departureLabel, durationLabel} = this.props.data;\n        const {title, code, pictureUrl} = this.props.productInfo;\n\n        return (\n            <div ref={this.infoPopin} className=\"booking-info-popin d-none\">\n                <div className=\"booking-info-head primary\">\n                    <span className=\"title-head\">Votre voyage</span>\n                    <span className=\"close-info-popin\" onClick={this.handleCloseInfoPopin}><Icon value=\"x\"/></span>\n                </div>\n                <div className=\"booking-info-content\">\n                    <div className=\"d-flex\">\n                        <div className=\"title-product\">\n                            {title}\n                            <span className=\"ref-product\">Réf {code}</span>\n                        </div>\n                        <div className=\"primary price\">\n                            {price}&nbsp;€\n                            <span className=\"type\">/ {(byHousing === \"true\") ? \"hébérgement\" : \"personne\"}</span>\n                        </div>\n                    </div>\n                    <div className=\"cell d-flex\">\n                        <div className=\"col-image elem-image-wrap\">\n                            <img src={pictureUrl} alt=\"\"/>\n                        </div>\n                        <div className=\"col-departure\">\n                            {cityLabel} <br/>\n                            {departureLabel} <br/>\n                            {durationLabel}\n                        </div>\n                    </div>\n                </div>\n                <div className=\"button-wrap d-flex\">\n                    <div className=\"button-alt-wrap btn-group-block\">\n                        <Button className=\"elem-button--primary btn-no-radius add-to-cart\" data-target={this.props.cartUrl}>Ajouter au panier</Button>\n                        <Button className=\"elem-button--primary-invert btn-no-radius add-to-favorite\">Ajouter à mes favoris</Button>\n                    </div>\n                    <Button className=\"elem-button--tertiary btn-no-radius main-submit-button\">Réserver</Button>\n                </div>\n            </div>\n        );\n    }\n\n    /**\n     * Close the info popin\n     * @param evt\n     */\n    private handleCloseInfoPopin(evt: React.SyntheticEvent<HTMLSpanElement>) {\n        this.infoPopin.current.classList.add(\"d-none\");\n    }\n\n}","import * as React from \"react\";\nimport { Component } from \"react\";\n\ninterface IIconProps {\n    value: string;\n    addClass?: string;\n}\n\n/**\n * @class Icon\n */\nexport default class Icon extends Component<IIconProps, any> {\n\n    private readonly addClass;\n\n    constructor(props: IIconProps) {\n        super(props);\n\n        this.addClass = this.props.addClass ? this.props.addClass : \"\";\n    }\n\n    public render(): JSX.Element {\n        return <i className={\"elem-ff-icon \" + this.addClass} data-icon={this.props.value} role=\"img\" />;\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport Pax from \"../Pax/index\";\nimport FilterSearch from \"../FilterSearch\";\nimport {IBookingSearchProps} from \"./IBookingSearch\";\nimport * as $$ from \"jquery-selector-cache\";\n\n/**\n * @class Search\n */\nexport default class Search extends Component<IBookingSearchProps, any> {\n\n    constructor(props: IBookingSearchProps) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        const minimumAgeAllowed = parseInt($$(\"#bookingWrap\").data(\"minimumAgeAllowed\"), 10);\n\n        return (\n            <div className=\"booking-search\">\n                <h3 className=\"title-step\">Votre voyage</h3>\n                <FilterSearch\n                    data={this.props.data}\n                    defaultSearch={this.props.defaultSearch}\n                    handleUpdateModel={this.props.handleUpdateModel}\n                />\n                <h3 className=\"title-step\">Nombre de voyageurs</h3>\n                <Pax\n                    minPassengers={this.props.minPassengers}\n                    maxPassengers={this.props.maxPassengers}\n                    maxChildren={this.props.maxChildren}\n                    minimumAgeAllowed={minimumAgeAllowed}\n                />\n                <div className=\"error-message hidden\" />\n            </div>\n        );\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport {makeArray, seq} from \"orxapi.tools.array\";\nimport CustomSelect from \"../CustomSelect\";\nimport {IBookingPaxProps} from \"./IBookingPax\";\nimport ChildrenSelection from \"../ChildrenSelection\";\nimport {IBookingPaxSelect} from \"../../../_core/scripts/libs/orxapi/Booking/IBooking\";\n\n/**\n * @class Pax\n */\nexport default class Pax extends Component<IBookingPaxProps, any> {\n\n    constructor(props: IBookingPaxProps) {\n        super(props);\n        this.state = {\n            childrenList: [],\n            adultNumber : \"2\",\n            childrenNumber: \"0\"\n        };\n\n        this.handleChildrenChange = this.handleChildrenChange.bind(this);\n        this.handleAdultChange = this.handleAdultChange.bind(this);\n    }\n\n    public render(): JSX.Element {\n        const showChildren = !this.props.minimumAgeAllowed || this.props.minimumAgeAllowed < 18;\n\n        return (\n            <div className=\"booking-pax\">\n                <div className=\"row booking-pax-inner\">\n                    <div className={this.props.adultLayoutClass || \"col-6\"}>\n                        <CustomSelect\n                            label=\"Adulte(s)\"\n                            name=\"adults\"\n                            className=\"form-control\"\n                            value={this.state.adultNumber}\n                            optionsList={this.createPaxOptionList(this.props.minPassengers + \"..\" + this.props.maxPassengers, \"Adulte\")}\n                            handleChange={this.handleAdultChange}\n                        />\n                    </div>\n                    {showChildren && (\n                        <div className={this.props.childrenLayoutClass || \"col-6\"}>\n                            <CustomSelect\n                                label=\"Enfant(s)\"\n                                name=\"children\"\n                                className=\"form-control\"\n                                value={this.state.childrenNumber}\n                                // placeholder=\"Enfants (0-17 ans)\"\n                                optionsList={this.createPaxOptionList(\"0..\" + this.props.maxChildren, \"Enfant\")}\n                                handleChange={this.handleChildrenChange}\n                            />\n                        </div>\n                    )}\n                </div>\n                {(this.state.childrenList.length !== 0) &&\n                    <ChildrenSelection childrenList={this.state.childrenList}/>\n                }\n            </div>\n        );\n    }\n\n    /**\n     * Handle the children, update the ...\n     * @param evt\n     */\n    private handleChildrenChange(evt: any) {\n        const children = parseInt(evt.target.value, 10);\n        this.setState({\n            childrenList: children === 0 ? [] : makeArray(children),\n            childrenNumber: evt.target.value\n        });\n\n    }\n\n    /**\n     * Handle the adult, update the ...\n     * @param evt\n     */\n    private handleAdultChange(evt: any) {\n        this.setState({\n            adultNumber: evt.target.value\n        });\n    }\n\n    /**\n     * Create the pax select list\n     * @param {string} sequence\n     * @param {string} suffixLabel\n     * @return {IBookingPaxSelect[]}\n     */\n    private createPaxOptionList(sequence: string, suffixLabel: string = \"\"): IBookingPaxSelect[] {\n        return seq(sequence).map((val) => ({value: `${val}`, label: Pax.pluralize(val, suffixLabel)}));\n    }\n\n    /**\n     * Pluralize a string\n     * @param {number} val\n     * @param {string} label\n     * @return {string}\n     */\n    private static pluralize(val: number, label: string): string {\n        return (val > 1 && label !== \"\") ? `${val} ${label}s` : `${val} ${label}`;\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport {\n    ICustomSelectProps,\n    ICustomSelectOptionList\n} from \"./ICustomSelect\";\n\n/**\n * @class CustomSelect\n */\nexport default class CustomSelect extends Component<ICustomSelectProps, any> {\n\n    constructor(props: ICustomSelectProps) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        const {name, label, selectRef, className, value, optionsList, placeholder, handleChange} = this.props;\n        return (\n            <div className={\"booking-form-element elem-select booking-select-\" + name}>\n                {label &&\n                    <label htmlFor={\"slt_\" + name + \"Booking\"} className=\"custom-select-label\">{label}</label>\n                }\n                <select\n                    ref={selectRef}\n                    className={className}\n                    name={name + \"Booking\"}\n                    id={\"slt_\" + name + \"Booking\"}\n                    value={value}\n                    onChange={handleChange ? e => handleChange(e) : null}\n                >\n                    {placeholder &&\n                        <option value=\"0\" className=\"custom-select-placeholder\">{placeholder}</option>\n                    }\n                    {\n                        optionsList.map((option: ICustomSelectOptionList, i: number) =>\n                            <Option key={i} data={option} />\n                        )\n                    }\n                </select>\n            </div>\n        );\n    }\n\n}\n\n/**\n * Create an option\n * @param {ICustomSelectOptionList} data\n * @returns {JSX.Element}\n * @constructor\n */\nfunction Option({data}: {data: ICustomSelectOptionList}): JSX.Element {\n    const value = data.code || data.value;\n    return <option value={value}>{data.label}</option>;\n}\n","import * as React from \"react\";\nimport {Component} from \"react\";\nimport Child from \"../Child\";\n\ninterface IChildrenSelectionProps {\n    childrenList: number[];\n}\n\n/**\n * @class ChildrenSelection\n */\nexport default class ChildrenSelection extends Component<IChildrenSelectionProps, any> {\n\n    constructor(props: IChildrenSelectionProps) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        return (\n            <div className=\"row booking-pax-inner booking-child-birthdays\">\n                {this.props.childrenList.map((val: number, index: number) =>\n                    <Child key={\"child_\" + index} value={index}/>\n                )}\n            </div>\n        );\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport * as Inputmask from \"inputmask/dist/inputmask/inputmask.date.extensions\";\nimport {childDateMask} from \"../../../_core/scripts/specific/config/format\";\n\ninterface IChildProps {\n    value: number;\n}\n\n/**\n * Create a child\n * @param {number} value\n * @return {JSX.Element}\n * @constructor\n */\nexport default class Child extends Component<IChildProps, any> {\n    private dateMask: Inputmask;\n\n    constructor(props: any) {\n        super(props);\n        this.dateMask = childDateMask;\n    }\n\n    public componentWillUnmount() {\n        this.dateMask.remove($(\".booking-child-birthdays\").find(\"input\"));\n    }\n\n    public componentDidMount() {\n        this.dateMask.mask($(\".booking-child-birthdays\").find(\"input\"));\n    }\n\n    public render(): JSX.Element {\n\n        return (\n            <>\n                <div className=\"booking-form-element\">\n                    <label htmlFor={\"ipt_maxChildAge_\" + this.props.value}\n                           className=\"label-control\">Enfant {this.props.value + 1}\n                        <small>Date de naissance</small>\n                    </label>\n                    <input type=\"text\" id={\"ipt_maxChildAge_\" + this.props.value}\n                           className={\"form-control child-birthdate_\" + this.props.value}\n                        // ref={input => this.dateMask.mask(input)} TODO: work only first time\n                    />\n                </div>\n            </>\n        );\n    }\n}\n","import * as React from \"react\";\nimport {Component} from \"react\";\nimport * as $$ from \"jquery-selector-cache\";\nimport CustomSelect from \"../CustomSelect\";\nimport {IBookingFilterSearchProps} from \"./IBookingFilterSearch\";\nimport {\n    IBookingDepartureCityModel,\n    IBookingSearchCodeLabel\n} from \"../../../_core/scripts/libs/orxapi/Booking/IBooking\";\n\n/**\n * @class FilterSearch\n */\nexport default class FilterSearch extends Component<IBookingFilterSearchProps, any> {\n\n    private durationSelect;\n\n    constructor(props: IBookingFilterSearchProps) {\n        super(props);\n        this.state = {\n            durationStayOptions: this.getDurationStay(props.defaultSearch.baseDepartureCity.toString()),\n            departureCity: this.props.defaultSearch.baseDepartureCity,\n            duration: this.props.defaultSearch.baseDuration\n        };\n\n        this.handleDepartureChange = this.handleDepartureChange.bind(this);\n        this.handleDurationChange = this.handleDurationChange.bind(this);\n    }\n\n    public render(): JSX.Element {\n        return (\n            <div className=\"booking-filter-search\">\n                <div className=\"row inner-booking-filter-search\">\n                    <div className=\"col-6\">\n                        <CustomSelect\n                            label=\"Ville de départ\"\n                            name=\"departure\"\n                            className=\"form-control select\"\n                            value={this.state.departureCity}\n                            optionsList={this.props.data.departureCity}\n                            handleChange={this.handleDepartureChange}\n                        />\n                    </div>\n                    <div className=\"col-6\">\n                        <CustomSelect\n                            label=\"Durée\"\n                            name=\"duration\"\n                            className=\"form-control select\"\n                            selectRef={(select) => {\n                                this.durationSelect = select;\n                            }}\n                            value={this.state.duration}\n                            optionsList={this.state.durationStayOptions}\n                            handleChange={this.handleDurationChange}\n                        />\n                    </div>\n                </div>\n            </div>\n        );\n    }\n\n    /**\n     * Handle the departure city, update the state value and model\n     * @param evt\n     */\n    private handleDepartureChange(evt: any) {\n        this.setState({\n            durationStayOptions: this.getDurationStay(evt.target.value),\n            departureCity: evt.target.value,\n            duration: this.durationSelect.value\n        }, () => {\n            $$(\"#bookingWrap\").data(\"stateDepartureCity\", this.state.departureCity);\n            $$(\"#bookingWrap\").data(\"stateDuration\", this.durationSelect.value);\n            this.props.handleUpdateModel();\n        });\n    }\n\n    /**\n     * Handle the duration stay, update the state value and model\n     * @param evt\n     */\n    private handleDurationChange(evt: any) {\n        this.setState({\n            duration: evt.target.value\n        }, () => {\n            $$(\"#bookingWrap\").data(\"stateDepartureCity\", this.state.departureCity);\n            $$(\"#bookingWrap\").data(\"stateDuration\", this.state.duration);\n            this.props.handleUpdateModel();\n        });\n    }\n\n    /**\n     * Get the departure city object list\n     * @param {string} code\n     * @returns {IBookingSearchCodeLabel[]}\n     */\n    private getDurationStay(code: string): IBookingSearchCodeLabel[] {\n        return this.props.data.departureCity.filter((val: IBookingDepartureCityModel) => {\n            return val.code === code;\n        })[0].durationStay;\n    }\n}\n","import * as React from \"react\";\nimport {Component} from \"react\";\nimport Icon from \"../../../_core/scripts/libs/orxapi/components/Icon\";\nimport {IBookingFilterProps, IBookingFilterState} from \"./IFilterDisplay\";\nimport {DisplayMode} from \"../Layout/ILayout\";\n\n/**\n * @class FilterDisplay\n */\nexport default class FilterDisplay extends Component<IBookingFilterProps, IBookingFilterState> {\n\n    constructor(props: IBookingFilterProps) {\n        super(props);\n\n        this.state = {\n            displayMode: this.props.displayMode,\n        };\n\n        this.handleDisplayMode = this.handleDisplayMode.bind(this);\n    }\n\n    public render(): JSX.Element {\n        return (\n            <div className={\"booking-filter-display \" + this.props.addClass}>\n                <span className={(this.state.displayMode === \"calendar\" ? \"active\" : \"\") + \" filter-switch display-calendar\"}\n                      data-button-name=\"calendar\"\n                      onClick={this.handleDisplayMode}\n                      title=\"Afficher le mode calendrier\"><Icon value=\"?\"/></span>\n                <span className={(this.state.displayMode === \"list\" ? \"active\" : \"\") + \" filter-switch display-list\"}\n                      data-button-name=\"list\"\n                      onClick={this.handleDisplayMode}\n                      title=\"Afficher le mode liste\"><Icon value=\"#\"/></span>\n            </div>\n        );\n    }\n\n    /**\n     * Set the display mode for switch the active class name and render the package layout.\n     * @param {React.SyntheticEvent<HTMLElement>} evt\n     */\n    private handleDisplayMode(evt: React.SyntheticEvent<HTMLElement>) {\n        const displayMode = evt.currentTarget.dataset.buttonName as DisplayMode;\n        this.setState({\n            displayMode\n        });\n\n        this.props.handleSetDisplayMode(displayMode);\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport {ICalendarProps} from \"./ICalendar\";\nimport Navigation from \"./Navigation\";\nimport Day from \"./Day\";\nimport {formatConfig} from \"../../../_core/scripts/specific/config/format\";\n\n/**\n * @class Calendar\n */\nexport default class Calendar extends Component<ICalendarProps, any> {\n\n    constructor(props: ICalendarProps) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        return (\n            <div className=\"booking-calendar clearfix\">\n                <Navigation\n                    monthYear={this.props.monthYear}\n                    dateBounds={this.props.dateBounds}\n                    handleUpdateModel={this.props.handleUpdateModel}\n                />\n                <div className=\"calendar\">\n                    <div className=\"thead d-flex\">\n                        {\n                            formatConfig.weekdays.map((value: string) => <WeekDay key={\"Wd_\" + value} label={value}/>)\n                        }\n                    </div>\n                    <div className=\"tbody\">\n                        {\n                            this.props.data.map((week: any, weekIndex: number) => (\n                                <Week key={\"W_\" + weekIndex.toString() + week}>\n                                    {\n                                        week.map((day: any, dayIndex: number) => (\n                                            <Day key={\"D_\" + dayIndex.toString() + day} data={day} monthYear={this.props.monthYear} />\n                                        ))\n                                    }\n                                </Week>\n                            ))\n                        }\n                    </div>\n                </div>\n            </div>\n        );\n    }\n\n}\n\n/**\n * Create a week day\n * @param {string} label\n * @returns {JSX.Element}\n * @constructor\n */\nfunction WeekDay({label}): JSX.Element {\n    return <div className=\"weekday\">{label}</div>;\n}\n\n/**\n * Create a week\n * @param {any} children\n * @returns {JSX.Element}\n * @constructor\n */\nfunction Week({children}): JSX.Element {\n    return <div className=\"week d-flex\">{children}</div>;\n}","import * as $$ from \"jquery-selector-cache\";\nimport * as React from \"react\";\nimport {Component} from \"react\";\nimport * as moment from \"moment\";\nimport Icon from \"../../../_core/scripts/libs/orxapi/components/Icon\";\nimport {formatConfig} from \"../../../_core/scripts/specific/config/format\";\nimport {ICalendarNavigationProps} from \"./ICalendar\";\n\n/**\n * @class Navigation\n */\nexport default class Navigation extends Component<ICalendarNavigationProps, any> {\n\n    constructor(props: ICalendarNavigationProps) {\n        super(props);\n        this.state = {\n            monthYear: this.props.monthYear\n        };\n\n        this.handleNavigationClick = this.handleNavigationClick.bind(this);\n    }\n\n    public componentDidMount() {\n        $$(\"#bookingWrap\").data(\"stateMonthYear\", this.state.monthYear);\n    }\n\n    public render(): JSX.Element {\n        return (\n            <div className=\"calendar-navigation d-flex justify-content-between align-items-center\">\n                <span className=\"nav-arrow arrow-prev\" data-action-button=\"-1\" onClick={this.handleNavigationClick}><Icon value=\"a\"/></span>\n                <span className=\"active-month\">{Navigation.getMonthYearLongFormat(this.state.monthYear)}</span>\n                <span className=\"nav-arrow arrow-next\" data-action-button=\"1\" onClick={this.handleNavigationClick}><Icon value=\"a\"/></span>\n            </div>\n        );\n    }\n\n    /**\n     * Get the format of the previous or next month\n     * @param {string} value\n     * @param {string} monthYear\n     * @returns {string}\n     */\n    private static getMonth(value: string, monthYear: string): string {\n        const splitter = monthYear.split(\"-\");\n        const year = parseInt(splitter[1], 10);\n        const month = parseInt(splitter[0], 10) - 1;\n\n        return moment({year, month}).add(value, \"months\").format(\"MM-YYYY\");\n    }\n\n    /**\n     * Get the month and year formatting\n     * @param {string} monthYear The month year with M-YYYY format\n     * @returns {string}\n     */\n    private static getMonthYearLongFormat(monthYear: string): string {\n        return moment(monthYear, \"M-YYYY\").format(formatConfig.monthYear);\n    }\n\n    /**\n     * Handle the arrow navigation, update model\n     * @param {React.SyntheticEvent<HTMLElement>} evt\n     */\n    private handleNavigationClick(evt: React.SyntheticEvent<HTMLElement>) {\n        const actionButton = evt.currentTarget.dataset.actionButton;\n        // Escape when the current month touch a bounding date\n        if (this.state.monthYear === this.props.dateBounds[actionButton === \"1\" ? 1 : 0]) {\n            return;\n        }\n        $(\".cell.available.selected\").removeClass(\"selected\");\n\n        // Get and set the new month\n        const monthYear = Navigation.getMonth(actionButton, this.state.monthYear);\n        $$(\"#bookingWrap\").data(\"stateMonthYear\", monthYear);\n\n        this.setState({\n            monthYear\n        });\n\n        this.props.handleUpdateModel();\n    }\n\n}","import * as $$ from \"jquery-selector-cache\";\nimport * as React from \"react\";\nimport {Component} from \"react\";\nimport {ICalendarDayProps} from \"./ICalendar\";\nimport {Status} from \"../../../_core/scripts/libs/orxapi/Booking/CalendarHandler\";\n\n/**\n * @class Day\n */\nexport default class Day extends Component<ICalendarDayProps, any> {\n\n    private elem: HTMLDivElement;\n\n    constructor(props: ICalendarDayProps) {\n        super(props);\n        this.handleClickSelected = this.handleClickSelected.bind(this);\n    }\n\n    public componentDidUpdate() {\n        const {data, monthYear} = this.props;\n        if (data.status !== Status.OUTSIDE && data.status !== Status.NOT_AVAILABLE) {\n            $$(this.elem).data(\"avail\", `${data.day}-${monthYear}-${data.nbDay}-${data.nbNight}`);\n            $$(this.elem).data(\"city\", `${data.departureCity}`);\n        }\n    }\n\n    public render(): JSX.Element {\n        const {data, monthYear} = this.props;\n        const dataButton = (data.status !== Status.OUTSIDE && data.status !== Status.NOT_AVAILABLE) ? {\n            \"data-avail\": `${data.day}-${monthYear}-${data.nbDay}-${data.nbNight}`,\n            \"data-city\": `${data.departureCity}`,\n            \"data-max-pax\": `${data.maxPax}`,\n            \"data-min-pax\": `${data.minPax}`\n        } : {};\n        const isPromo = data.regularPrice !== 0 && data.regularPrice && (data.regularPrice > data.price)\n            && (Math.floor(data.reductionRate) >= 5);\n        let productTypeClass = isPromo ? \" promo-type\" : \"\";\n        const button = $$(\"#bookingWrap\").find(\".main-submit-button\");\n        const dateSelected = button.data(\"avail\");\n        const citySelected = button.data(\"city\");\n        if (dataButton[\"data-avail\"] && dataButton[\"data-avail\"] === dateSelected && dataButton[\"data-city\"] && dataButton[\"data-city\"] === citySelected) {\n            productTypeClass += \" selected\";\n        }\n\n        if (data.status !== Status.NOT_AVAILABLE) {\n            productTypeClass += \" submit-button\";\n        }\n\n\n        return (\n            <div ref={ref => this.elem = ref}\n                className={\"cell week-day \" + data.status + productTypeClass} {...dataButton}\n                onClick={this.handleClickSelected}>\n                {data.status !== \"outside\" &&\n                    <div className=\"inner-cell\">\n                        <span className=\"day\">{data.day.toString()}</span>\n                        {data.dispoStatus && data.dispoStatus === \"GDS\" &&\n                            <span className=\"gds\"/>\n                        }\n                        {data.price &&\n                            <span className=\"price\">{data.price.toString()}&nbsp;€</span>\n                        }\n\n                        {isPromo &&\n                            <span className=\"instead-of\">\n                                au lieu de <span className=\"regular-price\">{data.regularPrice.toString()}&nbsp;€</span>\n                            </span>\n                        }\n                        {isPromo && data.reductionRate && data.reductionRate >= 5 &&\n                            <div className=\"price-reduction\">-{Math.floor(data.reductionRate)}%</div>\n                        }\n                    </div>\n                }\n            </div>\n        );\n    }\n\n\n    /**\n     * Selected the current day cell\n     * @param evt\n     */\n    private handleClickSelected(evt: React.SyntheticEvent<HTMLDivElement>) {\n        const cell = evt.currentTarget;\n        if (cell.classList.contains(\"selected\") || cell.classList.contains(\"not-available\")) {\n            return;\n        }\n\n        // Update selected day\n        $(\".booking-calendar\").find(\".cell\").removeClass(\"selected\");\n        cell.classList.add(\"selected\");\n\n        const selectedDay = $(cell);\n        if (selectedDay.length && selectedDay.data(\"avail\")) {\n            const selectedAvail = selectedDay.data(\"avail\");\n            const selectedCity = selectedDay.data(\"city\");\n\n            const bookingButtons = $$(\"#bookingWrap\").find(\".button-wrap\").find(\"button\");\n\n            bookingButtons.data(\"avail\", selectedAvail);\n            bookingButtons.data(\"city\", selectedCity);\n        }\n    }\n\n}\n","import {\n    IBookingAvailabilitiesModel, IBookingCabins, IBookingCruise,\n    IBookingDayAvailabilityModel,\n    IBookingDurationAvailabilityModel, IBookingParamModel,\n    IBookingSearchModel,\n    IBookingYearAvailabilityModel\n} from \"./IBooking\";\n\n/**\n * @class BookingWrapper\n */\nimport {\n    IBookingAvailabilitiesModel, IBookingDayAvailabilityModel,\n    IBookingDurationAvailabilityModel,\n    IBookingSearchModel,\n    IBookingYearAvailabilityModel\n} from \"../Booking/IBooking\";\n\nexport default class BookingWrapper {\n\n    private readonly avails: IBookingAvailabilitiesModel;\n    private readonly search: IBookingSearchModel;\n    private readonly param: IBookingParamModel;\n    private readonly desktopParam: {};\n    private readonly mobileParam: {};\n    private readonly cruise: IBookingCruise;\n\n    constructor() {\n        const bookingForm = (window as any).orxapi.model.bookingForm;\n        this.avails = bookingForm.availabilities;\n        this.search = bookingForm.search;\n        this.param = bookingForm.param;\n        this.desktopParam = bookingForm.desktopParam;\n        this.mobileParam = bookingForm.mobileParam;\n        this.cruise = bookingForm.cruise;\n    }\n\n    /**\n     * Get the availabilities model\n     * @return the default availabilities\n     */\n    public getAvails(): IBookingAvailabilitiesModel {\n        return this.avails;\n    }\n\n    /**\n     * Get the duration avails\n     * @param city the city code [XXX]\n     * @return the availability of duration according to the selected city\n     */\n    public getDuration(city): IBookingDurationAvailabilityModel {\n        return this.getAvails()[city];\n    }\n\n    /**\n     * Get the month year avails\n     * @param city the city code [XXX]\n     * @param duration the duration value [day-night]\n     * @return the availability of month year according to the city and the selected duration\n     */\n    public getMonthYear(city, duration): IBookingYearAvailabilityModel {\n        return this.getDuration(city)[duration];\n    }\n\n    /**\n     * Get the day avails\n     * @param city the city code [XXX]\n     * @param duration the duration value [day-night]\n     * @param monthYear the month year value [MM-YYYY]\n     * @return the availability of day according to the city, the duration and the selected month year\n     */\n    public getDay(city, duration, monthYear): IBookingDayAvailabilityModel {\n        return this.getMonthYear(city, duration)[monthYear];\n    }\n\n    /**\n     * Get the search model\n     * @return the default search\n     */\n    public getSearch(): IBookingSearchModel {\n        return this.search;\n    }\n\n    /**\n     *\n     * @returns {any}\n     */\n    public getParam(): {} {\n        return this.param;\n    }\n\n    /**\n     *\n     * @returns {any}\n     */\n    public getDesktopParam(): {} {\n        return this.desktopParam;\n    }\n\n    /**\n     *\n     * @returns {any}\n     */\n    public getMobileParam(): {} {\n        return this.mobileParam;\n    }\n\n    /**\n     * Get the cruise model\n     * @returns the object of cabins\n     */\n    public getCruise(): IBookingCruise {\n        return this.cruise;\n    }\n\n    /**\n     * Get the cruise model\n     * @returns the list containing the url and code of cabins\n     */\n    public getCabins(): IBookingCabins[] {\n        return this.getCruise().cabins;\n    }\n\n}","import * as React from \"react\";\nimport { Component } from \"react\";\nimport * as $$ from \"jquery-selector-cache\";\nimport Responsive from \"react-responsive\";\nimport BookingWrapper from \"../../../_core/scripts/libs/orxapi/Booking/BookingWrapper\";\nimport {isMobileBreakpoint} from \"../../../_core/scripts/specific/layout/breakpoints\";\nimport {default as CruiseModel, ICategoriesCruise} from \"../../../_core/scripts/libs/orxapi/Booking/Cruise\";\nimport {default as ListModel} from \"../../../_core/scripts/libs/orxapi/Booking/List\";\nimport {breakpointsConfig} from \"../../../_core/scripts/specific/config/responsive\";\nimport Button from \"../../../_core/scripts/libs/orxapi/components/Button\";\nimport Search from \"../Search\";\nimport CruiseList from \"../Cruise/CruiseList\";\nimport CruiseSimpleList from \"../Cruise/CruiseSimpleList\";\nimport {\n    ICruiseLayoutProps,\n    ICruiseLayoutState\n} from \"./ILayout\";\nimport {\n    IBookingAvailabilitiesModel,\n    IBookingCabins,\n    IBookingCruiseMobileAvailabilitiesModel, IBookingDataInfoPopin,\n    IBookingWrapData,\n} from \"../../../_core/scripts/libs/orxapi/Booking/IBooking\";\nimport {InfoPopin} from \"../InfoPopin\";\nimport {IProductInfo} from \"../List/IBookingList\";\nimport {getSelectedAvail, initializeHeadAvailInformation} from \"../bookingPackage\";\n\n/**\n * @class CruiseLayout\n */\nexport default class CruiseLayout extends Component<ICruiseLayoutProps, ICruiseLayoutState> {\n\n    private readonly search;\n    private readonly defaultSearch;\n    private readonly targetUrl;\n    private readonly minPassengers;\n    private readonly maxPassengers;\n    private readonly maxChildren;\n    private readonly cabins: IBookingCabins[];\n    private readonly categoryOptions: any;\n    private readonly productInfo: IProductInfo;\n    private cruiseModel: CruiseModel;\n    private bookingWrapper: BookingWrapper;\n\n    constructor(props: ICruiseLayoutProps) {\n        super(props);\n\n        // Get device initialization\n        const isInitMobile = isMobileBreakpoint();\n\n        // Initialize booking model\n        this.bookingWrapper = new BookingWrapper();\n        this.cruiseModel = new CruiseModel();\n\n        const selectedAvail = getSelectedAvail();\n        initializeHeadAvailInformation(selectedAvail);\n        let baseDepartureCity;\n        let baseDuration;\n        if (selectedAvail) {\n            baseDepartureCity = selectedAvail.departureCity;\n            baseDuration = selectedAvail.nbDay + \"-\" + selectedAvail.nbNight;\n\n        } else {\n            baseDepartureCity = $$(\"#bookingWrap\").data(\"baseDepartureCity\");\n            baseDuration = $$(\"#bookingWrap\").data(\"baseDuration\");\n        }\n\n        // Assign\n        this.search = this.bookingWrapper.getSearch();\n        this.defaultSearch = { baseDepartureCity, baseDuration };\n        this.targetUrl = this.props.targetUrl;\n        this.minPassengers = this.props.minPassengers;\n        this.maxPassengers = this.props.maxPassengers;\n        this.maxChildren = this.props.maxChildren;\n        this.cabins = this.bookingWrapper.getCabins();\n        this.categoryOptions = this.mergeCabinsProperties(CruiseModel.getCategoryOptions(), this.cabins);\n        this.productInfo = this.props.productInfo;\n\n        // Get availabilities\n        const availabilities = this.getAvailabilitiesObject({baseDepartureCity, baseDuration}, isInitMobile);\n\n        // State\n        this.state = {\n            availabilities,\n            departureCity: baseDepartureCity,\n            duration: baseDuration,\n            dataInfoPopin: null\n        };\n\n        this.handleDataPopin = this.handleDataPopin.bind(this);\n    }\n\n    /**\n     * This is a completely optional performance enhancement that you can\n     * implement on any React component. If you were to delete this method\n     * the app would still work correctly (and still be very performant!), we\n     * just use it as an example of how little code it takes to get an order\n     * of magnitude performance improvement.\n     * @return {boolean}\n     */\n    public shouldComponentUpdate(nextProps: ICruiseLayoutProps, nextState: ICruiseLayoutState): boolean {\n        return (\n            nextState.availabilities !== this.state.availabilities || nextState.dataInfoPopin !== this.state.dataInfoPopin\n        );\n    }\n\n    public render(): JSX.Element {\n        return (\n            <>\n                {/* DESKTOP && TABLET */}\n                <Responsive minWidth={breakpointsConfig.md.min}>\n                    <div data-action={this.targetUrl} className=\"reservationForm\">\n                        <Search\n                            defaultSearch={this.defaultSearch}\n                            minPassengers={this.minPassengers}\n                            maxPassengers={this.maxPassengers}\n                            maxChildren={this.maxChildren}\n                            data={this.search}\n                            handleUpdateModel={() => this.updateModel()}\n                        />\n                        <h3 className=\"title-step\">Les disponibilités</h3>\n                        <CruiseList data={this.state.availabilities as IBookingAvailabilitiesModel[]} cabins={this.categoryOptions} />\n                        <div className=\"button-wrap text-center\">\n                            {/*<Button className=\"elem-button--primary-invert btn-no-radius btn-large add-to-favorite\">Ajouter à mes favoris</Button>*/}\n                            {/*<Button className=\"elem-button--primary btn-no-radius btn-large add-to-cart\" data-target={this.props.cartUrl}>Ajouter au panier</Button>*/}\n                            <Button className=\"elem-button--tertiary btn-no-radius btn-large main-submit-button hidden\">Réserver</Button>\n                        </div>\n                    </div>\n                </Responsive>\n\n                {/* MOBILE */}\n                <Responsive maxWidth={breakpointsConfig.sm.max}>\n                    <div className=\"booking-mobile\">\n                        <div data-action={this.targetUrl} className=\"booking-form reservationForm\">\n                            <Search\n                                defaultSearch={this.defaultSearch}\n                                minPassengers={this.minPassengers}\n                                maxPassengers={this.maxPassengers}\n                                maxChildren={this.maxChildren}\n                                data={this.search}\n                                handleUpdateModel={() => this.updateModel()}\n                            />\n                            <h3 className=\"title-step\">Les disponibilités</h3>\n                            <CruiseSimpleList data={this.state.availabilities as IBookingCruiseMobileAvailabilitiesModel[]} handlePopinData={this.handleDataPopin} />\n                            {this.state.dataInfoPopin !== null &&\n                                <InfoPopin data={this.state.dataInfoPopin} productInfo={this.props.productInfo} cartUrl={this.props.cartUrl}/>\n                            }\n                        </div>\n                    </div>\n                </Responsive>\n            </>\n        );\n    }\n\n    /**\n     * Get the right availabilities depending on the device\n     * @param {string} baseDepartureDate\n     * @param {string} baseDepartureCity\n     * @param {string} baseDuration\n     * @param {boolean} isInitMobile\n     * @return {{availabilities: IBookingAvailabilitiesModel[], baseMonthYear: string, baseDateBounds: string[]}}\n     */\n    private getAvailabilitiesObject({baseDepartureCity, baseDuration}: IBookingWrapData,\n                                    isInitMobile: boolean): IBookingAvailabilitiesModel[] | IBookingCruiseMobileAvailabilitiesModel[] {\n        // Get availabilities\n        const yearAvailabilityModel = this.bookingWrapper.getMonthYear(baseDepartureCity, baseDuration);\n        return (isInitMobile) ?\n            this.cruiseModel.getMobileAvailabilities(yearAvailabilityModel, this.cabins) :\n            ListModel.getAvailabilities(yearAvailabilityModel);\n    }\n\n    /**\n     * Update the state of model selected\n     */\n    public updateModel() {\n        const departureCity: string = $$(\"#bookingWrap\").data(\"stateDepartureCity\") || $$(\"#bookingWrap\").data(\"baseDepartureCity\");\n        const duration: string = $$(\"#bookingWrap\").data(\"stateDuration\") || $$(\"#bookingWrap\").data(\"baseDuration\");\n        const availabilities = this.getAvailabilitiesObject({baseDepartureCity: departureCity, baseDuration: duration}, isMobileBreakpoint());\n\n        this.setState({\n            availabilities,\n            departureCity,\n            duration\n        });\n    }\n\n    /**\n     * mergeCabinsProperties\n     */\n    private mergeCabinsProperties(options: ICategoriesCruise[], cabinsProps: IBookingCabins[]): any[] {\n        return options.map(((category: ICategoriesCruise, index: number) => {\n            const { label } = category;\n            return { label, ...cabinsProps[index] };\n        }));\n    }\n\n    /**\n     * Update state with data info popin and display info popin\n     * @param evt\n     */\n    private handleDataPopin(evt: React.SyntheticEvent<HTMLDivElement>) {\n        this.setState({\n            dataInfoPopin: evt.currentTarget.dataset as unknown as IBookingDataInfoPopin\n        }, () => {\n\n            $$(\".booking-info-popin\").removeClass(\"d-none\");\n            const bookingButtons = $(\"#bookingWrap\").find(\".button-wrap\").find(\"button\");\n            bookingButtons.data(\"avail\", this.state.dataInfoPopin.avail);\n            bookingButtons.data(\"city\", this.state.dataInfoPopin.city);\n            console.log($(bookingButtons[0]).data());\n            console.log($(bookingButtons[1]).data());\n        });\n    }\n\n}","import List from \"./List\";\nimport {\n    IBookingAvailabilitiesModel,\n    IBookingCabins,\n    IBookingCruiseMobileAvailabilitiesModel,\n    IBookingListWithCruiseCategoriesModel,\n    IBookingYearAvailabilityModel\n} from \"./IBooking\";\n\nexport interface ICategoriesCruise {\n    label: string;\n    code: string;\n}\n\ninterface ICruiseOptions {\n    categories: ICategoriesCruise[];\n}\n\n/**\n * @class Cruise\n */\nexport default class Cruise {\n\n    private static opts: ICruiseOptions;\n\n    constructor(public options?: ICruiseOptions) {\n        this.initialize();\n    }\n\n    private static getDefaultOptions(): ICruiseOptions {\n        return {\n            categories: [\n                { label: \"Cabine intérieure\", code: \"INS\" },\n                { label: \"Cabine vue mer\", code: \"OUT\" },\n                { label: \"Cabine avec balcon\", code: \"OUB\" },\n                { label: \"Suites avec balcon\", code: \"SUB\" }\n            ]\n        };\n    }\n\n    private initialize() {\n        Cruise.opts = Object.assign({}, this.options, Cruise.getDefaultOptions());\n    }\n\n    /**\n     * Return a array of the availabilities JSON for display the mobile cruise\n     * @param {IBookingYearAvailabilityModel} yearAvailabilityModel\n     * @param {IBookingCabins[]} cabins\n     * @returns {IBookingCruiseMobileAvailabilitiesModel[]}\n     */\n    public getMobileAvailabilities(yearAvailabilityModel: IBookingYearAvailabilityModel, cabins: IBookingCabins[]): any {\n        const listAvailabilities = List.getAvailabilities(yearAvailabilityModel);\n        return Cruise.opts.categories.map((category: ICategoriesCruise, index: number) => {\n            const list = this.getListWithCategories(listAvailabilities, category);\n            // TODO check a better way for does not iterate with filter\n            const filter = list.filter(value => !value.notAvailable);\n            if (filter.length) {\n                return {label: category.label, list, ...cabins[index]};\n            }\n        });\n    }\n\n    /**\n     * Get the list of cruise categories flatten\n     * @param {IBookingAvailabilitiesModel[]} listAvailabilities\n     * @param {ICategoriesCruise} category\n     * @returns {IBookingListWithCruiseCategoriesModel[]}\n     */\n    private getListWithCategories(listAvailabilities: IBookingAvailabilitiesModel[], category: ICategoriesCruise): IBookingListWithCruiseCategoriesModel[] {\n        return listAvailabilities.map((date: IBookingAvailabilitiesModel) => {\n            // Return a empty object when the category doesn't exist\n            if (!date.categories[category.code]) {\n                return {notAvailable: true};\n            }\n\n            // Merge the date with a specific cabin category\n            const m = Object.assign({}, date, date.categories[category.code]);\n            // Delete unused categories object after merge\n            delete m.categories;\n            return m;\n        });\n    }\n\n    /**\n     * Get the categories\n     * @return the options of category with label and code\n     */\n    public static getCategoryOptions(): ICategoriesCruise[] {\n        return Cruise.opts.categories;\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport Available from \"./Available\";\nimport {IBookingAvailabilitiesModel} from \"../../../_core/scripts/libs/orxapi/Booking/IBooking\";\nimport {\n    IBookingCabinsCustom,\n    IBookingListCruiseProps\n} from \"./ICruiseList\";\n\n/**\n * @class CruiseList\n */\nexport default class CruiseList extends Component<IBookingListCruiseProps, any> {\n\n    constructor(props: IBookingListCruiseProps) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        return (\n            <div className=\"booking-cruise-list\">\n                <div className=\"d-flex cabins\">\n                    <div className=\"invisible cabin\" />\n                    {\n                        this.props.cabins.map((line: IBookingCabinsCustom, lineIndex: number) => {\n                            return <Cabin key={\"C_\" + lineIndex.toString() + line} data={line} />;\n                        })\n                    }\n                </div>\n                <div className=\"cruise-list-scroll\">\n                    {\n                        this.props.data.map((data: IBookingAvailabilitiesModel, index: number) => {\n                            return (\n                                <div className=\"d-flex departure-date-line\" key={\"C_\" + index.toString() + data}>\n                                    <Date data={data} />\n                                    <Category data={data} categoryCode=\"INS\" />\n                                    <Category data={data} categoryCode=\"OUT\" />\n                                    <Category data={data} categoryCode=\"OUB\" />\n                                    <Category data={data} categoryCode=\"SUB\" />\n                                </div>\n                            );\n                        })\n                    }\n                </div>\n            </div>\n        );\n    }\n\n}\n\n/**\n * Create cabin column head\n * @param {IBookingCabinsCustom} data\n * @returns {JSX.Element}\n * @constructor\n */\nfunction Cabin({data}): JSX.Element {\n    return (\n        <div className=\"cabin\">\n            <div className=\"inner-cabin\">\n                {data.url !== undefined &&\n                    <figure className=\"elem-image-wrap\">\n                        <img src={data.url} alt=\"\" />\n                    </figure>\n                }\n                <span className=\"cabin-label\">{data.label}</span>\n            </div>\n        </div>\n    );\n}\n\n/**\n * Create date cell\n * @param {IBookingAvailabilitiesModel} data\n * @returns {JSX.Element}\n * @constructor\n */\nfunction Date({data}): JSX.Element {\n    return (\n        <div className=\"cell date-item\">\n            <div className=\"inner-cell\">\n                {data.departureValue} au<br />\n                {data.returnValue}\n            </div>\n        </div>\n    );\n}\n\n/**\n * Create category row\n * @param {IBookingAvailabilitiesModel} data\n * @param {string} categoryCode\n * @returns {JSX.Element}\n * @constructor\n */\nfunction Category({data, categoryCode}): JSX.Element {\n    const category = data.categories[categoryCode];\n\n    let availabilityDisplay;\n    let status = \"\";\n\n    // Display when the category is available\n    if (category) {\n        status = category.regularPrice ? \" discount\" : \" available\";\n        availabilityDisplay = <Available data={data} category={category} />;\n\n    // Or when the category is not available\n    } else {\n        availabilityDisplay = <NotAvailable />;\n    }\n\n    return <div className={\"cell\" + status}>{availabilityDisplay}</div>;\n}\n\n/**\n * Create not available category\n * @returns {JSX.Element}\n * @constructor\n */\nfunction NotAvailable(): JSX.Element {\n    return <div className=\"inner-cell text-center\">Complet</div>;\n}","import * as React from \"react\";\nimport {Component, RefObject} from \"react\";\nimport * as $$ from \"jquery-selector-cache\";\nimport {IAvailableProps} from \"./ICruiseList\";\n\n/**\n * @class Available\n */\nexport default class Available extends Component<IAvailableProps, any> {\n\n    private readonly innerCell: RefObject<HTMLDivElement>;\n\n    constructor(props: IAvailableProps) {\n        super(props);\n\n        this.innerCell = React.createRef();\n        this.handleClickSelected = this.handleClickSelected.bind(this);\n    }\n\n    public render(): JSX.Element {\n        const {day, monthYearCode, nbDay, nbNight, departureCity} = this.props.data;\n        const {price, regularPrice, categoryCode} = this.props.category;\n        const dataButton = {\n            \"data-avail\": day + \"-\" + monthYearCode + \"-\" + nbDay + \"-\" + nbNight,\n            \"data-city\": departureCity,\n            \"data-category\": categoryCode\n        };\n\n        const isPromo = regularPrice !== 0 && regularPrice && (regularPrice > price)\n            && ((regularPrice - price) / regularPrice >= 0.05);\n\n        return (\n            <div ref={this.innerCell} className=\"inner-cell submit-button\" {...dataButton} onClick={this.handleClickSelected}>\n                <span className=\"price\">{price}&nbsp;€</span>\n                {isPromo &&\n                    <span className=\"instead-of\">\n                        au lieu de <span className=\"regular-price\">{regularPrice}&nbsp;€</span>\n                    </span>\n                }\n            </div>\n        );\n    }\n\n    /**\n     * Selected the current day cell\n     * @param evt\n     */\n    private handleClickSelected(evt: React.SyntheticEvent<HTMLDivElement>) {\n        const innerCell = $(evt.currentTarget);\n        if (innerCell.hasClass(\"selected\")) {\n            return;\n        }\n\n        // Update selected day\n        $(\".booking-cruise-list\").find(\".cell\").removeClass(\"selected\");\n        innerCell.parents(\".cell\").addClass(\"selected\");\n\n        if (innerCell.length && innerCell.data(\"avail\")) {\n            const bookingButtons = $$(\"#bookingWrap\").find(\".button-wrap\").find(\"button\");\n\n            const selectedAvail = innerCell.data(\"avail\");\n            bookingButtons.data(\"avail\", selectedAvail);\n\n            const selectedCity = innerCell.data(\"city\");\n            bookingButtons.data(\"city\", selectedCity);\n\n            const selectedCategory = innerCell.data(\"category\");\n            bookingButtons.data(\"category\", selectedCategory);\n        }\n\n    }\n\n}","import * as React from \"react\";\nimport {Component} from \"react\";\nimport CabinList from \"./CabinList\";\nimport {IBookingCruiseMobileProps} from \"./ICruiseList\";\nimport {\n    IBookingAvailabilitiesModel,\n    IBookingCruiseMobileAvailabilitiesModel\n} from \"../../../_core/scripts/libs/orxapi/Booking/IBooking\";\n\n/**\n * @class CruiseSimpleList\n */\nexport default class CruiseSimpleList extends Component<IBookingCruiseMobileProps, any> {\n\n    constructor(props: IBookingCruiseMobileProps) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        return (\n            <div className=\"booking-simple-cruise-list clearfix\">\n                {\n                    this.props.data.map((category: IBookingCruiseMobileAvailabilitiesModel, index: number) => {\n                        return (\n                            <Category\n                                key={\"C_\" + index.toString() + category}\n                                category={category}\n                                index={index}\n                                data={this.props.data}\n                                handlePopinData={this.props.handlePopinData}\n                            />\n                        );\n                    })\n                }\n            </div>\n        );\n    }\n\n}\n\n/**\n * Create category\n * @constructor\n * @param {IBookingCruiseMobileAvailabilitiesModel} category\n * @param {number} index\n * @param data\n * @param handlePopinData\n * @returns {JSX.Element}\n */\nfunction Category({category , index, data, handlePopinData}): JSX.Element {\n    // Return null at the render when the list is undefined\n    if (!category || !category.list) {\n        return null;\n    }\n\n    return (\n        <div className=\"category\">\n            <CabinHeader data={category} />\n            {\n                category.list.map((availability: IBookingAvailabilitiesModel, idx: number) => {\n                    return (\n                        <CabinList\n                            key={\"CL_\" + index.toString() + idx.toString() + availability}\n                            data={availability}\n                            handlePopinData={handlePopinData}\n                        />\n                    );\n                })\n            }\n        </div>\n    );\n}\n\n/**\n * Create cabin header\n * @constructor\n * @param {IBookingCruiseMobileAvailabilitiesModel} data\n * @returns {JSX.Element}\n */\nfunction CabinHeader({data}): JSX.Element {\n    return (\n        <div className=\"cabin\">\n            {data.url !== undefined &&\n                <figure className=\"elem-image-wrap\">\n                    <img src={data.url} alt=\"\" />\n                </figure>\n            }\n            <span className=\"cabin-label primary\">{data.label}</span>\n        </div>\n    );\n}","import * as $$ from \"jquery-selector-cache\";\nimport * as React from \"react\";\nimport {Component} from \"react\";\nimport {ICabinListProps} from \"./ICruiseList\";\n\n/**\n * @class CabinList\n */\nexport default class CabinList extends Component<ICabinListProps, any> {\n\n    constructor(props: any) {\n        super(props);\n    }\n\n    public render(): JSX.Element {\n        const data = this.props.data;\n        const dataLine = {\n            \"data-avail\": data.day + \"-\" + data.monthYearCode + \"-\" + data.nbDay + \"-\" + data.nbNight,\n            \"data-city\": data.departureCity,\n            \"data-category\": data.categoryCode,\n            \"data-city-label\": `de ${data.departureCityLabel}`,\n            \"data-departure-label\": `${data.departureLabel}`,\n            \"data-duration-label\": `${data.nbDay} jours / ${data.nbNight} nuits`,\n            \"data-price\": `${data.price}`,\n            \"data-by-housing\": `${data.byHousing}`\n        };\n        const isPromo = data.regularPrice !== 0 && data.regularPrice && (data.regularPrice > data.price)\n            && (Math.floor(data.reductionRate) >= 5);\n\n        return (\n            <div className={\"d-flex departure-date-line submit-button \" + (isPromo ? \" promotion\" : \"\")}\n                {...dataLine} onClick={this.handleClickSelected}>\n                <div className=\"col-date\">\n                    {data.departureValue} au {this.props.data.returnValue}<br />\n                    {data.nbDay} jours / {this.props.data.nbNight} nuits\n                </div>\n                <div className=\"col-price\">\n                    <span className=\"price primary\">{data.price}&nbsp;€</span>\n                    {isPromo &&\n                        <span className=\"instead-of\">\n                            au lieu de <span className=\"regular-price\">{data.regularPrice}&nbsp;€</span>\n                        </span>\n                    }\n                </div>\n            </div>\n        );\n    }\n\n    /**\n     * Selected the current day cell\n     * @param evt\n     */\n    private handleClickSelected(evt: React.SyntheticEvent<HTMLDivElement>) {\n        const line = $(evt.currentTarget);\n        if (line.hasClass(\"selected\")) {\n            return;\n        }\n\n        // Update selected day\n        $(\".booking-simple-cruise-list\").find(\".departure-date-line\").removeClass(\"selected\");\n        line.addClass(\"selected\");\n\n        if (line.length && line.data(\"avail\")) {\n            const bookingButtons = $$(\"#bookingWrap\").find(\".button-wrap\").find(\"button\");\n\n            const selectedAvail = line.data(\"avail\");\n            bookingButtons.data(\"avail\", selectedAvail);\n\n            const selectedCity = line.data(\"city\");\n            bookingButtons.data(\"city\", selectedCity);\n\n            const selectedCategory = line.data(\"category\");\n            bookingButtons.data(\"category\", selectedCategory);\n        }\n\n    }\n\n}","import * as $$ from \"jquery-selector-cache\";\n\n/**\n * Initialize the close button popin\n */\nexport function initPopin() {\n    // Exit when the component don't exist\n    if (!$$(\".cpt-popin\").length) {\n        return;\n    }\n\n    // Exit when the close button don't exist\n    if (!$$(\".cpt-popin\").find(\".popin-close\").length) {\n        return;\n    }\n\n    $$(\".cpt-popin\").on(\"click.closePopin\", \".popin-close\", handleClosePopin);\n}\n\n/**\n * Open the popin\n * @param target\n */\nexport function openPopin(target: JQuery = $$(\".cpt-popin\")) {\n    target.removeClass(\"d-none\");\n    $$(\"body\").addClass(\"popin-is-open\");\n}\n\n/**\n * Handler click, close popin\n * @param {JQuery.Event} evt\n */\nexport function handleClosePopin(evt: JQuery.Event) {\n    $(evt.delegateTarget).addClass(\"d-none\");\n    $$(\"body\").removeClass(\"popin-is-open\");\n}","/**\n * Default URL refine parameters constants\n * @type {string<object>}\n */\nexport const urlRefineParametersConfig = {\n    day: \"ref_dd\",\n    monthYear: \"ref_dmy\",\n    departureDate: \"ref_dpda\",\n    destination: \"ref_c.DES\",\n    departureCity: \"ref_dpci\",\n    durationDay: \"ref_mmd\",\n    durationNight: \"ref_minMan\"\n};","import * as $$ from \"jquery-selector-cache\";\nimport * as moment from \"moment\";\nimport {deeplinkAction} from \"../components/deeplink/deeplink\";\nimport {\n    BookingTypeErrorString,\n    BookingValidation,\n    IBookingDate,\n    IOptions,\n    IPassenger,\n    PassengerType\n} from \"orxapi.booking.validation\";\nimport {createForm, createHiddenInput} from \"../ElementHelper/formElementHelper\";\nimport {constraintOptions} from \"../../../specific/config/bookingValidation\";\nimport {formatConfig} from \"../../../specific/config/format\";\nimport {isMobileDevice} from \"../../../specific/layout/device\";\nimport BookingWrapper from \"./BookingWrapper\";\nimport {showLoader} from \"../../../../../components/loader/loader\";\n\n\n/**\n * check form and submit it to call sales process\n * @param {JQueryEventObject} evt\n */\nexport function handleBookingButtonClick(evt: JQuery.Event<HTMLElement>) {\n    evt.preventDefault();\n    const button = $(evt.currentTarget);\n    const form = createBookingForm(button);\n    if (form) {\n        form.trigger(\"submit\");\n    }\n}\n\n/**\n * create the form for booking the product\n * @param {JQuery} button\n * @returns {JQuery}\n */\nfunction createBookingForm(button: JQuery) {\n    const childrenNumber = Number($(\"#slt_childrenBooking\").val());\n    const adultNumber = Number($(\"#slt_adultsBooking\").val());\n    const avail = button.data(\"avail\");\n    const city = button.data(\"city\");\n    const category = button.data(\"category\");\n    const departureDate = button.data(\"date\");\n    const bookingWrap = $$(\"#bookingWrap\");\n    const minAge = Number(bookingWrap.data(\"minimumAgeAllowed\")) || 0;\n\n    const formDiv = $(\"div.reservationForm\");\n    if (!avail) {\n        const errorMessageContainer = $(\".error-message\");\n        errorMessageContainer.removeClass(\"hidden\");\n        errorMessageContainer.empty();\n        errorMessageContainer.append(\"Choisissez une date de départ\");\n        return;\n    }\n\n    // Test of the maxPax\n    const totalPax = (Number(adultNumber) + Number(childrenNumber));\n    const maxPax = Number(bookingWrap.data(\"maxPax\")) === 0 ? bookingWrap.data(\"maxPassengers\") : bookingWrap.data(\"maxPax\");\n    const minPax = Number(bookingWrap.data(\"minPax\")) === 0 ? bookingWrap.data(\"minPassengers\") : bookingWrap.data(\"minPax\");\n\n    if (totalPax < minPax || totalPax > maxPax) {\n        testPassengerConstraintsValidation(adultNumber, childrenNumber, departureDate, maxPax, minPax, minAge);\n        return;\n    }\n\n    const [day, month, year] = avail.split(\"-\");\n    const enableDeeplinkV2 = $(\"#bookingWrap\").data(\"enableDeeplinkV2\");\n    if (testPassengerConstraintsValidation(adultNumber, childrenNumber, day + \"-\" + month + \"-\" + year, 0, 0, minAge)) {\n        if (enableDeeplinkV2) {\n            showLoader(\"black-overlay\");\n            button.addClass(\"loader-active\");\n            return deeplinkAction(button);\n        } else {\n            showLoader(\"black-overlay\");\n            button.addClass(\"loader-active\");\n            return createPOSTForm(\n                formDiv.data(\"action\"),\n                adultNumber,\n                childrenNumber,\n                city,\n                avail,\n                category\n            ).insertAfter(formDiv);\n        }\n\n    } else {\n        return;\n    }\n}\n\n/**\n * handlePaxByDispo\n * @param evt\n */\nexport function handlePaxByDispo(evt: JQuery.Event<HTMLElement>) {\n    evt.preventDefault();\n    const target = $(evt.currentTarget);\n    const maxPaxTar = Number(target.data(\"maxPax\"));\n    const minPaxTar = Number(target.data(\"minPax\"));\n    const bookingWrap = $$(\"#bookingWrap\");\n    bookingWrap.data(\"maxPax\", maxPaxTar);\n    bookingWrap.data(\"minPax\", minPaxTar);\n}\n\n/**\n * Create a new post form transforming the data of the current form\n * with the correct values accepted by the salesprocess\n * @param {string} action\n * @param {number} adultNumber\n * @param {number} childrenNumber\n * @param {string} city\n * @param {string} avail\n * @param category\n * @returns {JQuery}\n */\nfunction createPOSTForm(action: string, adultNumber: number, childrenNumber: number, city: string, avail: string, category?: string): JQuery {\n    const newForm = createForm(action, \"POST\");\n    addFieldsToBookingForm(newForm, adultNumber, childrenNumber, city, avail, category);\n\n    return newForm;\n}\n\n/**\n * Create the fields necessary for the booking form\n * @param {JQuery} form\n * @param {number} adultNumber\n * @param {number} childrenNumber\n * @param {string} city\n * @param {string} avail\n * @param category\n */\nfunction addFieldsToBookingForm(form: JQuery, adultNumber: number, childrenNumber: number,\n                                city: string, avail: string, category?: string) {\n    const bookingWrapper = new BookingWrapper();\n\n    createHiddenInput(form, \"disponibility\", avail);\n    createHiddenInput(form, \"depCityCode\", city);\n    if (category) {\n        createHiddenInput(form, \"preselectedRoomCategoryCode\", category);\n    }\n\n    // Travellers data\n    addTravellerDataToForm(form, adultNumber, childrenNumber);\n    // Booking parameters\n    $.each(bookingWrapper.getParam(), (key, value) => {\n        createHiddenInput(form, key, value);\n    });\n\n    if (isMobileDevice()) {\n        $.each(bookingWrapper.getMobileParam(), (key, value) => {\n            createHiddenInput(form, key, value);\n        });\n    } else {\n        $.each(bookingWrapper.getDesktopParam(), (key, value) => {\n            createHiddenInput(form, key, value);\n        });\n    }\n}\n\n/**\n * Add travellers data to the form\n * @param {JQuery} form\n * @param {number} adultNumber\n * @param {number} childrenNumber\n */\nfunction addTravellerDataToForm(form: JQuery, adultNumber: number, childrenNumber: number) {\n    for (let i = 0; i < adultNumber; i++) {\n        createHiddenInput(form, \"traveller[\" + (i) + \"].type\", \"A\");\n    }\n\n    for (let i = 0; i < childrenNumber; i++) {\n        const childBirthday = $(\"#ipt_maxChildAge_\" + i).val().toString().replace(/\\//g, \"-\");\n        createHiddenInput(form, \"traveller[\" + (i + Number(adultNumber)) + \"].type\", \"C\");\n        createHiddenInput(form, \"traveller[\" + (i + Number(adultNumber)) + \"].birthDate\", childBirthday);\n    }\n}\n\n/**\n * Testing the passenger validation and update message\n * @returns {boolean} true if passengers is valid, false otherwise\n */\nfunction testPassengerConstraintsValidation(adultsNumberValue: number, childrenNumberValue: number, departure?: string, maxPax: number = 0, minPax: number = 0, minAge: number = 0): boolean {\n    const errorMessages = retrievePassengerConstraintsErrorMessage(adultsNumberValue, childrenNumberValue, departure, maxPax, minPax, minAge);\n    const errorMessageContainer = $(\".error-message\");\n    errorMessageContainer.empty();\n    errorMessageContainer.toggleClass(\"hidden\", !errorMessages);\n    if (errorMessages) {\n        errorMessages.replace(\"Mauvais format de date pour l'enfant 1\", \"Enfant 1 : Saisir la date de naissance.\");\n        errorMessageContainer.append(errorMessages);\n        return false;\n    } else {\n        return true;\n    }\n}\n\n/**\n * Update the passenger validation message\n * @returns {boolean} true if passengers is valid, false otherwise\n */\nexport function updatePassengerConstraintsValidation() {\n    const childrenNumber = Number($(\"#slt_childrenBooking\").val());\n    const adultNumber = Number($(\"#slt_adultsBooking\").val());\n    const bookingWrap = $$(\"#bookingWrap\");\n    const minAge = Number(bookingWrap.data(\"minimumAgeAllowed\")) || 0;\n    testPassengerConstraintsValidation(adultNumber, childrenNumber, undefined, 0, 0, minAge);\n}\n\n/**\n * check passenger constraint an return error object if exist\n * @param {number} adultsNumberValue\n * @param {number} childrenNumberValue\n * @param {string} departure\n * @param maxPax\n * @param minPax\n * @param {number} minAge\n * @return {object}\n */\nfunction getPassengerConstraintsErrors(adultsNumberValue: number, childrenNumberValue: number, departure?: string, maxPax: number = 0, minPax: number = 0, minAge: number = 0): object {\n    const adults: IPassenger[] = [];\n    const children: IPassenger[] = [];\n    const ages: IBookingDate[] = [];\n    const bookingWrap = $$(\"#bookingWrap\");\n    const minPassengers = (minPax === 0) ? bookingWrap.data(\"minPassengers\") : minPax;\n    const maxPassengers = (maxPax === 0) ? bookingWrap.data(\"maxPassengers\") : maxPax;\n\n    for (let i = 0; i < adultsNumberValue; i++) {\n        adults.push({type: PassengerType.adult});\n    }\n    for (let i = 0; i < childrenNumberValue; i++) {\n        children.push({\n            type: PassengerType.child,\n        });\n        ages.push({\n            date: ($(\"#ipt_maxChildAge_\" + i).val() || \"\").toString(),\n            dateFormat: formatConfig.childrenAge\n        });\n    }\n\n    const startDate = {\n        date: departure ? departure : moment().format(formatConfig.dateFR),\n        dateFormat: formatConfig.dateFR\n    };\n\n    const options: IOptions = $.extend(true, {}, constraintOptions, {\n        data: {\n            passengers: $.merge($.merge([], adults), children),\n            adults,\n            children,\n            ages\n        },\n        constraints: {\n            checkAge: minAge > 0\n                ? { startDate, min: minAge.toString(), minAgeToCount: minAge.toString() }\n                : { startDate },\n            checkPassenger: {\n                min: minPassengers,\n                max: maxPassengers\n            },\n            checkAdults: {\n                min: minPassengers,\n                max: maxPassengers\n            },\n            checkChildren: {\n                max: (maxPassengers - 1).toString()\n            }\n        }\n    });\n    const bookingValidation = new BookingValidation(options);\n    bookingValidation.validate();\n    return bookingValidation.getErrors();\n}\n\n/**\n * Read error and map it\n * @param {number} adultsNumberValue\n * @param {number} childrenNumberValue\n * @param {string} departure\n * @param maxPax\n * @param minPax\n * @param {number} minAge\n * @return {string}\n */\nfunction retrievePassengerConstraintsErrorMessage(adultsNumberValue: number, childrenNumberValue: number, departure: string, maxPax: number = 0, minPax: number = 0, minAge: number = 0): string {\n    const errors = getPassengerConstraintsErrors(adultsNumberValue, childrenNumberValue, departure, maxPax, minPax, minAge);\n    let message = \"\";\n    if (errors) {\n        const passengerError = errors[BookingTypeErrorString.Passenger];\n        const ageError = errors[BookingTypeErrorString.Ages];\n\n        if (passengerError) {\n            if (passengerError.code === 401 || passengerError.code === 402) {\n                message = `<p>${passengerError.message}</p>`;\n            }\n\n        } else if (ageError) {\n            if (ageError.code === 101) {\n                message = ageError.messages.map((msg) => `<p>${mapSpecificMessage(msg)}</p>`).join(\"\");\n            }\n        }\n    }\n\n    return message;\n}\n\n/**\n * Map error message for the date of birth of the child with the correct child number\n * @param msg\n * @return string\n */\nfunction mapSpecificMessage(msg: string): string {\n    const errorMessageMapping = [{\n        value: \"Mauvais format de date pour l'enfant ([0-9]+)\",\n        replace: \"Enfant $1 : Saisir la date de naissance\"\n    }];\n    const mappedMsg = errorMessageMapping.filter(map => msg.match(map.value))[0];\n    return mappedMsg ? msg.replace(new RegExp(mappedMsg.value), mappedMsg.replace) : msg;\n}\n","import { isMobileBreakpoint } from \"../../../../specific/layout/breakpoints\";\nimport {\n    BPParam,\n    DeeplinkData,\n    DeeplinkPerson,\n    DeeplinkResponse\n} from \"../../../../specific/typings/deeplink/deeplink\";\n\n/**\n * deeplink action for resa\n * add sales process parameters\n */\nexport function deeplinkAction(evt: JQuery) {\n    // sales process parameters\n    addSalesProcessParameters(evt);\n}\n\n/**\n * add sales process parameters\n */\nfunction addSalesProcessParameters(evt: JQuery) {\n    const data: DeeplinkData = {};\n    const persons: DeeplinkPerson[] = [];\n\n    const avail = evt.data(\"avail\");\n    const city = evt.data(\"city\");\n    const [day, month, year, nbDay, nbNight] = avail.split(\"-\");\n    const productCode = $(\"#bookingWrap\").data(\"productCode\");\n\n    const childrenNumber = Number($(\"#slt_childrenBooking\").val());\n    const adultNumber = Number($(\"#slt_adultsBooking\").val());\n    for (let i = 0; i < adultNumber; i++) {\n        persons.push({\n            type: \"ADULT\"\n        });\n    }\n    for (let i = 0; i < childrenNumber; i++) {\n        const childBirthday = $(\"#ipt_maxChildAge_\" + i).val().toString().replace(/\\//g, \"-\");\n        const [day, month, year] = childBirthday.split(\"-\");\n        persons.push({\n            type: \"CHILD\",\n            birthdate: year + \"-\" + month + \"-\" + day\n        });\n    }\n\n    data.deviceType = isMobileBreakpoint() ? \"MOBILE\" : \"DESKTOP\";\n    data.url = window.location.href;\n    data.bookingRequest = {\n        productCatalogCode: productCode,\n        avail: {\n            departureDate: year + \"-\" + month + \"-\" + day,\n            daysNumber: nbDay,\n            nightsNumber: nbNight,\n            departureCityCode: city,\n        },\n        quantity: {\n            persons,\n            type: \"persons\"\n        }\n    };\n\n    void $.ajax(\"/deeplink/v2/package\", {\n        method: \"POST\",\n        data: JSON.stringify(data),\n        contentType: \"application/json\",\n        dataType: \"json\",\n        statusCode: {\n            401: () => {\n                console.log(\"Unauthorized, redirecting...\");\n                window.location.reload();\n            }\n        }\n    }).done((response: DeeplinkResponse) => {\n        submitResaV3(response.bpUrl, response.bpParams, response.bpRequestMethod);\n    });\n}\n\n/**\n * sends a request to the specified url from a form. this will change the window location.\n * @param {string} path the path to send the post request to\n * @param {object} params the parameters to add to the url\n * @param method\n */\nfunction submitResaV3(path: string, params: BPParam[], method: string) {\n\n    // The rest of this code assumes you are not using a library.\n    // It can be made less wordy if you use one.\n    const form = document.createElement(\"form\");\n    form.method = method;\n    form.action = path;\n    const param = (window as any).orxapi.model.bookingForm.param;\n\n    for (const item of params) {\n        if (item.name === \"productPdfUrl\" && !param.hasOwnProperty(\"productPdfUrl\")) {\n            continue;\n        }\n        if (item.name === \"productDetailsUrl\" && !param.hasOwnProperty(\"productDetailsUrl\")) {\n            continue;\n        }\n        const hiddenField = document.createElement(\"input\");\n        hiddenField.type = \"hidden\";\n        hiddenField.name = item.name;\n        hiddenField.value = item.value;\n\n        form.appendChild(hiddenField);\n    }\n    document.body.appendChild(form);\n    form.submit();\n}\n","/**\n * Create a hidden input element in a form\n * @param {JQuery} form\n * @param {string} name\n * @param {string} value\n */\nexport function createHiddenInput(form: JQuery, name: string, value: string) {\n    createInputToForm(form, name, value, \"hidden\");\n}\n\n/**\n * Create a input element in a form\n * @param {JQuery} form\n * @param {string} name\n * @param {string} value\n * @param {string} type\n */\nexport function createInputToForm(form: JQuery, name: string, value: string, type: string) {\n    createInput(name, value, type).appendTo(form);\n}\n\n/**\n * Create a input element\n * @param {string} name\n * @param {string} value\n * @param {string} type\n */\nexport function createInput(name: string, value: string, type: string): JQuery {\n    return $(\"<input>\").attr({\n        type,\n        name,\n        value\n    });\n}\n\n/**\n * Create a new form to send request\n * @param {string} action\n * @param {string} method\n * @returns {JQuery}\n */\nexport function createForm(action: string, method: string): JQuery {\n    return $(\"<form>\").attr({\n        action,\n        method\n    });\n}\n\n/**\n * Create a new form to send request\n * @param attributes\n * @returns {JQuery}\n */\nexport function createFormWithAttributes(attributes): JQuery {\n    return $(\"<form>\").attr(attributes);\n}","import {IOptions} from \"orxapi.booking.validation\";\nimport {LoggerLevel} from \"orxapi.booking.validation\";\n\nexport const constraintOptions: IOptions = {\n    config: {\n        debug: false,\n        loggerLevel: LoggerLevel.full\n    },\n    data: {\n        passengers: [],\n        adults: [],\n        children: [],\n        babies: [],\n        ages: []\n    },\n    constraints: {\n        checkAge: {\n            active: true,\n            ageFromTripEnd: false,\n            min: \"0\",\n            max: \"18\",\n            minAgeAllowed: 0,\n            minAgeToCount: \"0\"\n        },\n        checkPassenger: {\n            active: true,\n            min: \"0\",\n            max: \"9\"\n        },\n        checkAdults: {\n            active: true,\n            min: \"0\",\n            max: \"9\"\n        },\n        checkChildren: {\n            active: true,\n            min: \"0\",\n            max: \"8\"\n        }\n    }\n};","import * as $$ from \"jquery-selector-cache\";\n\n/**\n * Show the loader\n * @param customClass {string} add the background overlay for example \"black-overlay\"\n */\nexport function showLoader(customClass: string = \"\") {\n    $$(\".cpt-loader\").on(\"click.overlay\", handleStopEvents);\n    $$(\".cpt-loader\").addClass(customClass);\n    $$(\".cpt-loader\").removeClass(\"d-none\");\n}\n\n/**\n * Hide the loader\n * @param customClass {string} add the background overlay for example \"black-overlay\"\n */\nexport function hideLoader(customClass: string = \"\") {\n    $$(\".cpt-loader\").addClass(\"d-none\");\n    $$(\".cpt-loader\").removeClass(customClass);\n    $$(\".cpt-loader\").off(\"click.overlay\");\n}\n\n/**\n * Handle of the stop events propagation\n * @param evt\n */\nfunction handleStopEvents(evt: JQuery.Event<HTMLDivElement>) {\n    evt.stopPropagation();\n}","import * as $$ from \"jquery-selector-cache\";\nimport {breakpointsConfig} from \"../../_core/scripts/specific/config/responsive\";\nimport {handleClosePopin, openPopin} from \"../popin/popin\";\nimport \"slick-carousel\";\nimport {initDisplayMap} from \"../../_core/scripts/libs/orxapi/map/packageMap\";\n\n/**\n * Initialize the collapse container\n */\nexport function initCollapseContainer() {\n    // Exit when the component don't exist\n    if (!$$(\".cpt-collapse-container\").length) {\n        return;\n    }\n\n    // display detail note by member\n    $$(\".cpt-collapse-container\").on(\"click\", \".cpt-member-note .detail-note\", handleClickDetailNote);\n\n    // filter\n    $$(\".cpt-collapse-container\").on(\"change\", \".select-note-type\", handleChangeSelectNotType);\n\n    // Click collapse tab\n    $$(\".cpt-collapse-container\").on(\"click.tabTitle\", \".tab-title\", handleCollapseTab);\n\n    const productId = $$(\".cpt-collapse-container\").data(\"productId\");\n    if ($$(\".cpt-collapse-container\").hasClass(\"async\")) {\n        $.ajax(\"/ajax/product/\" + productId)\n            .done(response => {\n                $$(\".cpt-collapse-container\").removeClass(\"is-loading\");\n                $$(\".cpt-collapse-container\").append(response);\n                initDisplayMap();\n                initSlickMemberNote();\n                filterEmptyContent();\n                $(\".popin-note-by-member\").on(\"click.closePopin\", \".popin-close\", handleClosePopin);\n            });\n    } else {\n        initSlickMemberNote();\n        filterEmptyContent();\n    }\n}\n\nfunction initSlickMemberNote() {\n    const memberNote = $(\".list-member-note\");\n    if (memberNote) {\n        memberNote.slick({\n            dots: false,\n            infinite: true,\n            speed: 300,\n            slidesToShow: 2,\n            centerMode: false,\n            arrows: false,\n            responsive: [\n                {\n                    breakpoint: breakpointsConfig.md.max,\n                    settings: {\n                        centerMode: true,\n                        centerPadding: \"40px\",\n                        slidesToShow: 1\n                    }\n                }\n            ]\n        });\n    }\n}\n\nfunction filterEmptyContent() {\n    $$(\".cpt-collapse-container\").find(\".empty-hidden\").each((i, element) => {\n        const topElement = $(element);\n        const elementToTest = topElement.find(topElement.data(\"emptyTestTarget\"));\n        if (elementToTest) {\n            // some times wysiwyg can contains html but no text, we have to remove it in this case\n            if (elementToTest.text().trim().length <= 0) {\n                topElement.remove();\n            }\n        }\n    });\n}\n\n/**\n * handleCollapseTab\n * @param evt\n */\nfunction handleCollapseTab(evt: JQuery.Event<HTMLDivElement>) {\n    $(evt.currentTarget)\n        .toggleClass(\"closed\")\n        .next(\".tab-content\").toggleClass(\"hidden\");\n}\n\n/**\n * handleClickDetailNote\n * @param evt\n */\nfunction handleClickDetailNote(evt: JQuery.Event<HTMLDivElement>) {\n    const htmlDetailNote = $(evt.currentTarget).parents(\".cpt-member-note\").find(\".wrapper-notes-by-member\").html();\n    $$(\".popin-note-by-member\").find(\".popin-main\").html(htmlDetailNote);\n    openPopin($$(\".popin-note-by-member\"));\n}\n\n/**\n * handleChangeSelectNotType\n * @param evt\n */\nfunction handleChangeSelectNotType(evt: JQuery.Event<HTMLSelectElement>) {\n    const listMemberNode = $(\".list-member-note\");\n    listMemberNode.slick(\"slickUnfilter\");\n\n    const paramFilter = $(evt.currentTarget).find(\"option:selected\").val();\n    if (paramFilter !== \"all-note\") {\n        listMemberNode.slick(\"slickFilter\", \":has(.\" + paramFilter + \")\");\n    }\n}","import {IMap, IMapOptions, Map} from \"../map\";\n\n// Instance Map object\nlet map: IMap;\n\n/**\n * Initialize the display Map\n */\nexport function initDisplayMap() {\n    // Exit when component don't exist\n    if (!$(\"#gmapProduct\").length) {\n        return;\n    }\n\n    // Load the Google API and callback the initProductMap method\n    Map.load(\"havas.callback.initProductMap\", \"&key=\" + $(\"#gkey\").attr(\"content\"));\n\n    if (typeof map !== \"undefined\") {\n        const mapById = map.getMapById(\"gmapProduct\");\n        google.maps.event.trigger(mapById, \"resize\");\n        if (map.latLngs.length !== 0) {\n            mapById.setCenter(map.latLngs[0]);\n        }\n    }\n}\n\n/**\n * Initialize the Map class\n */\nexport function initProductMap() {\n    map = new Map({height: \"564px\", addMarker: true} as IMapOptions);\n}\n","export interface IMap {\n    maps;\n    latLngs: google.maps.LatLng[];\n\n    getMapById(id: string): any;\n\n    addMarker(map: google.maps.Map, latLng: google.maps.LatLng, infoWindow: google.maps.InfoWindow, options: any): void;\n\n    deleteMarkers(): void;\n\n    getMarkers(): google.maps.Marker [];\n\n    getOptions(): {};\n\n}\n\nexport interface IMapOptions {\n    element?: string;\n    zoom?: number;\n    addMarker?: boolean;\n    height?: string;\n    markerOptions?: any;\n    zoomControl: boolean;\n}\n\n/**\n * @class Map\n * TODO add orxapi.plugins.map to npm modules\n */\nexport class Map implements IMap {\n    // tslint:disable:variable-name\n    public element: JQuery;\n    private _maps: {};\n    private _latLngs: google.maps.LatLng[];\n    private _markers: google.maps.Marker[];\n    private opts: IMapOptions;\n    private defaultOptions = {\n        element: \".map-content\",\n        zoom: 6,\n        addMarker: false,\n        height: \"400px\",\n        markerOptions: {},\n        zoomControl: false,\n        fullscreenControl: false,\n        mapTypeControl: false\n    };\n\n    constructor(options?: IMapOptions) {\n        this.initialize(options);\n    }\n\n    /**\n     * Initialize Map class\n     * @param options\n     */\n    private initialize(options: IMapOptions) {\n        this.opts = $.extend({}, this.defaultOptions, options || {});\n\n        this.element = $(this.opts.element);\n        this._maps = {};\n        this._latLngs = [];\n        this._markers = [];\n\n        // Out when there is no map\n        if (!this.element.length) {\n            return;\n        }\n\n        this.element.each((i: number, elem: HTMLElement) => {\n            this.create(elem.id);\n        });\n    }\n\n    /**\n     * Load google Maps library\n     * @param callback\n     * @param options\n     * @param version\n     */\n    public static load(callback: string, options: string = \"\", version: number = 3) {\n        // When the library is loaded\n        if ($(\"#googleMapLib\").length) {\n            return;\n        }\n\n        const script = document.createElement(\"script\");\n        script.type = \"text/javascript\";\n        script.id = \"googleMapLib\";\n        script.src = `https://maps.googleapis.com/maps/api/js?callback=${callback}&v=${version}${options}`;\n        document.body.appendChild(script);\n    }\n\n    /**\n     * Create map object\n     * @param id\n     */\n    private create(id: string) {\n        const map = $(\"#\" + id),\n            centerPoint: string = map.data(\"latlng\"),\n            zoom: number = map.data(\"zoom\") || this.opts.zoom,\n            mapTypeId: google.maps.MapTypeId = map.data(\"maptypeid\") || google.maps.MapTypeId.ROADMAP,\n            latlng = new google.maps.LatLng(Number(centerPoint.split(\",\")[0]), Number(centerPoint.split(\",\")[1])),\n            mapOptions: any = {\n                zoom,\n                center: latlng,\n                mapTypeId,\n                disableDefaultUI: true,\n                mapTypeControl: true,\n                mapTypeControlOptions: {\n                    style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,\n                    position: google.maps.ControlPosition.RIGHT_TOP\n                },\n                zoomControl: false,\n                zoomControlOptions: {\n                    position: google.maps.ControlPosition.LEFT_TOP\n                },\n                // googleTest: this.opts.test\n            };\n\n        Map.setHeight(map, this.opts.height);\n        this._maps[id] = new google.maps.Map(document.getElementById(id), mapOptions);\n\n        if (this.opts.addMarker) {\n            this.addMarker(this._maps[id], latlng, this.opts.markerOptions);\n        }\n    }\n\n    /**\n     * Set the container height\n     * @param map\n     * @param value\n     */\n    private static setHeight(map: JQuery, value: string) {\n        map.css({\"height\": value});\n    }\n\n    /**\n     * Add a marker\n     * @param map\n     * @param latLng\n     * @param infoWindow\n     * @param options\n     */\n    public addMarker(map: google.maps.Map, latLng: google.maps.LatLng, infoWindow: google.maps.InfoWindow, options?: any) {\n        this.latLngs.push(latLng);\n\n        const marker = new google.maps.Marker($.extend({}, {\n            position: latLng,\n            map\n        }, options || {}));\n\n        marker.addListener(\"click\", () => {\n            infoWindow.open(map, marker);\n        });\n\n        this.markers.push(marker);\n    }\n\n    /**\n     * Get all markers\n     * @returns {google.maps.Marker[]}\n     */\n    public getMarkers(): google.maps.Marker [] {\n        return this._markers;\n    }\n\n    /**\n     * Delete all markers\n     */\n    public deleteMarkers() {\n        for (const marker of this._markers) {\n            marker.setMap(null);\n        }\n        this.markers = [];\n        this.latLngs = [];\n    }\n\n    /**\n     * Get id of map\n     * @param id\n     * @returns {any}\n     */\n    public getMapById(id: string): google.maps.Map {\n        return this._maps[id];\n    }\n\n    /**\n     * Getter maps\n     * @returns {{}}\n     */\n    public get maps(): {} {\n        return this._maps;\n    }\n\n    /**\n     * Setter maps\n     * @param list\n     */\n    public set maps(list: {}) {\n        this._maps = list;\n    }\n\n    /**\n     * Get options from map\n     * @returns {{}}\n     */\n    public getOptions() {\n        return this.defaultOptions;\n    }\n\n    get latLngs(): google.maps.LatLng[] {\n        return this._latLngs;\n    }\n\n    set latLngs(value: google.maps.LatLng[]) {\n        this._latLngs = value;\n    }\n\n    get markers(): google.maps.Marker[] {\n        return this._markers;\n    }\n\n    set markers(value: google.maps.Marker[]) {\n        this._markers = value;\n    }\n}","import * as $$ from \"jquery-selector-cache\";\nimport \"slick-carousel\";\nimport {handleToScroll} from \"orxapi.tools.toscroll\";\nimport {redrawDiaporama} from \"../diaporama/diaporama\";\n\n/**\n * Initialize the package\n */\nexport function initPackageProduct() {\n    // Exit when component don't exist\n    if (!$$(\".cpt-package-product\").length && !$$(\".package-slider\").length) {\n        return;\n    }\n\n    // initialize the slider\n    $$(\".package-slider\").slick(getDefaultSliderConfig());\n\n    // initialize the slider thumbnails\n    $$(\".package-slider-thumbnails\").slick(getDefaultSliderThumbnailsConfig());\n\n    // Add click event to scroll\n    $$(\".cpt-package-product\").on(\"click.toScroll\", \".anchor-link\", handleCollapseAndScrollTo);\n\n    // Add click event to fullscreen\n    $$(\".package-slider-switch\").on(\"click\", \".trigger-slider-full\", handleDisplayFullscreen);\n}\n\n/**\n * Handle collapse of container and auto scrolling\n * @param evt\n */\nfunction handleCollapseAndScrollTo(evt: JQuery.Event<HTMLElement>) {\n    const { scrollTarget: anchor } = $(evt.currentTarget).data();\n    // Get target element to scroll to\n    const href = $(evt.currentTarget).attr(\"href\") || anchor;\n    // Open container of target element (if necessary)\n    const parentTitle = $(href)\n        .closest(\".tab-container\").find(\".tab-title\").first();\n    if (parentTitle) {\n        parentTitle.removeClass(\"closed\")\n            .next(\".tab-content\").removeClass(\"hidden\");\n    }\n    // Scroll to element\n    handleToScroll(evt);\n}\n\n/**\n * Handle to display the diaporama on fullscreen\n * @param evt\n */\nfunction handleDisplayFullscreen(evt: JQuery.ClickEvent<HTMLSpanElement>) {\n    const isFullscreen = $$(\"body\").hasClass(\"package-slider-fullscreen\");\n    const options = isFullscreen ? getDefaultSliderConfig() : getFullscreenSliderConfig();\n\n    $$(\"body\").toggleClass(\"package-slider-fullscreen\", !isFullscreen);\n    $$(\".package-slider\").slick(\"slickSetOption\", options, true);\n    $$(\".package-slider\").toggleClass(\"d-lg-none\");\n    $$(\".diaporama-mosaic\").toggleClass(\"d-lg-flex\");\n    $$(\".tool-map\").toggleClass(\"d-lg-flex\");\n    $$(\".label-popin\").toggleClass(\"d-none\");\n\n    redrawDiaporama($$(\".package-slider\"));\n}\n\n/**\n * Return the default configuration of slider\n */\nfunction getDefaultSliderConfig() {\n    return {\n        rows: 0,\n        dots: false,\n        arrows: true,\n        infinite: true,\n        speed: 500,\n        fade: true,\n        cssEase: \"linear\",\n        asNavFor: \".package-slider-thumbnails\"\n    };\n}\n\n/**\n * Return the default configuration of slider thumbnails\n */\nfunction getDefaultSliderThumbnailsConfig() {\n    return {\n        slidesToShow: 4,\n        slidesToScroll: 1,\n        asNavFor: \".package-slider\",\n        dots: false,\n        arrows: false,\n        centerMode: false,\n        focusOnSelect: true\n    };\n}\n\n/**\n * Return the fullscreen configuration of slider\n */\nfunction getFullscreenSliderConfig() {\n    return Object.assign({}, getDefaultSliderConfig(), {\n        adaptiveHeight: true,\n        infinite: false,\n        dots: true\n    });\n}","import \"slick-carousel\";\nimport { diaporamaConfig } from \"./diaporamaConfig\";\nimport {revalidateLazyImage} from \"../../_core/scripts/specific/layout/lazyload\";\n\n/**\n * Initialize the component\n */\nexport function initDiaporama(selector: string, diaporamaConfigKey?: string) {\n    if (!selector) {\n        selector = \".cpt-diaporama\";\n    }\n    if (!diaporamaConfigKey) {\n        diaporamaConfigKey = \"default\";\n    }\n\n    // Exit when component don't exist\n    if (!$(selector).length) {\n        return;\n    }\n    initSlick(diaporamaConfigKey, selector);\n}\n\n/**\n * Initialize the slick plug-in\n * @param config\n * @param dataNameSelector\n */\nfunction initSlick(config: string, dataNameSelector: string) {\n    const slider = $(dataNameSelector).slick(diaporamaConfig[config]);\n    // @ts-ignore\n    slider.on(\"afterChange\", revalidateLazyImage);\n    // @ts-ignore\n    slider.on(\"lazyLoadError\", (_, slick, imageItem, imageSource)=> {\n        $(imageItem).attr(\"src\", imageSource);\n    });\n    revalidateLazyImage();\n}\n\n/**\n * Manually refresh of slick\n * @param {string} diaporamaSelector The selector of diaporama\n */\nexport function redrawDiaporama(diaporamaSelector: string) {\n    $(diaporamaSelector).slick(\"refresh\");\n}\n\n/**\n * Manually goTo of slick\n * @param {string} diaporamaSelector The selector of diaporama\n * @param {number} index The index of diaporama\n */\nexport function goToDiaporama(diaporamaSelector: string, index: number) {\n    $(diaporamaSelector).slick(\"slickGoTo\", index);\n}\n\n/**\n * Check if diaporama already exist\n * @param {string} diaporamaSelector The selector of diaporama\n */\nexport function getDiaporama(diaporamaSelector: string) {\n    return $(diaporamaSelector).hasClass(\"slick-slider\");\n}\n\n/**\n * Get the current slide\n * @param {string} diaporamaSelector The selector of diaporama\n */\nexport function getCurrentSlide(diaporamaSelector: string): number {\n    return $(diaporamaSelector).slick(\"slickCurrentSlide\");\n}","import {breakpointsConfig} from \"../../_core/scripts/specific/config/responsive\";\nimport {getSliderIcon} from \"../../elements/icon/icon\";\n\ninterface IDiaporamaConfig<T> {\n    default: T;\n    serp: T;\n    package: T;\n    cross: T;\n    multiple: T;\n    flashPackageImage: T;\n    flashPackageTxt: T;\n    picto: T;\n    pushingSlider: T;\n}\n\n/**\n * Map of Slick options configuration\n * @type {IDiaporamaConfig<JQuerySlickOptions>}\n */\nexport const diaporamaConfig: IDiaporamaConfig<JQuerySlickOptions> = {\n    // Config default for slider\n    default: {\n        rows: 0,\n        arrows: true,\n        dots: false,\n        slidesToShow: 1,\n        infinite: true,\n        autoplay: true,\n        autoplaySpeed: 5000,\n        slidesToScroll: 1,\n        prevArrow: getSliderIcon(\"arrow-square arrow-square-slick-prev un-clickable\", \"\", \"v\"),\n        nextArrow: getSliderIcon(\"arrow-square arrow-square-slick-next un-clickable\", \"\", \"v\" ),\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    slidesToShow: 1,\n                    centerMode: false,\n                    centerPadding: \"0\",\n                    arrows: false,\n                    dots: true\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    slidesToShow: 1,\n                    centerMode: false,\n                    centerPadding: \"0\",\n                    arrows: false,\n                    dots: true\n                }\n            }\n        ]\n    },\n    serp: {\n        rows: 0,\n        dots: true,\n        arrows: true,\n        infinite: true,\n        autoplay: false,\n        slidesToScroll: 1,\n        slidesToShow: 1,\n        prevArrow: getSliderIcon(\"arrow-square arrow-square-slick-prev un-clickable\", \"\", \">\"),\n        nextArrow: getSliderIcon(\"arrow-square arrow-square-slick-next un-clickable\", \"\", \">\"),\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    arrows: false\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    arrows: false\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.xs.max,\n                settings: {\n                    arrows: false\n                }\n            }\n        ]\n    },\n    package: {\n        rows: 0,\n        accessibility: false,\n        slidesToShow: 1,\n        slidesToScroll: 1,\n        arrows: true,\n        prevArrow: getSliderIcon(\"arrow-square arrow-square-slick-prev\", \"\", \"v\"),\n        nextArrow: getSliderIcon(\"arrow-square arrow-square-slick-next\", \"\", \"v\" ),\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    arrows: true\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.xs.max,\n                settings: {\n                    arrows: true\n                }\n            }\n        ]\n    },\n    cross: {\n        slidesToShow: 1,\n        slidesToScroll: 1,\n        arrows: false,\n        dots: true,\n        centerMode: true,\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.xl.max,\n                settings: \"unslick\"\n            },\n            {\n                breakpoint: breakpointsConfig.lg.max,\n                settings: \"unslick\"\n            },\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    centerPadding: \"192px\"\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    centerPadding: \"30px\"\n                }\n            }\n        ]\n    },\n    multiple: {\n        rows: 0,\n        prevArrow: getSliderIcon(\"arrow icon-prev-arrow\", \"\", \"A\"),\n        nextArrow: getSliderIcon(\"arrow icon-next-arrow\", \"\", \"A\" ),\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.xl.max,\n                settings: {\n                    slidesToShow: 3,\n                    slidesToScroll: 3,\n                    arrows: true\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.lg.max,\n                settings: {\n                    slidesToShow: 3,\n                    slidesToScroll: 3,\n                    arrows: true\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    slidesToShow: 3,\n                    slidesToScroll: 3,\n                    arrows: false,\n                    dots: true\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    slidesToShow: 2,\n                    slidesToScroll: 2,\n                    arrows: false,\n                    dots: true\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.xs.max,\n                settings: {\n                    slidesToShow: 2,\n                    slidesToScroll: 2,\n                    arrows: false,\n                    dots: true\n                }\n            }\n        ]\n    },\n    flashPackageImage: {\n        rows: 0,\n        slidesToShow: 1,\n        slidesToScroll: 1,\n        fade: true,\n        dots: false,\n        arrows: false,\n        asNavFor: \".slider-txt-room\"\n    },\n    flashPackageTxt: {\n        rows: 0,\n        slidesToShow: 1,\n        slidesToScroll: 1,\n        asNavFor: \".slider-img-room\",\n        dots: false,\n        arrows: true\n    },\n    picto: {\n        rows: 0,\n        dots: false,\n        prevArrow: getSliderIcon(\"arrow-circle arrow-circle-slick-prev un-clickable\", \"\", \"v\"),\n        nextArrow: getSliderIcon(\"arrow-circle arrow-circle-slick-next un-clickable\", \"\", \"v\"),\n        arrows: true,\n        infinite: false,\n        autoplay: false,\n        slidesToScroll: 1,\n        slidesToShow: 6,\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    slidesToShow: 4\n                }\n            },\n            {\n                breakpoint: 769,\n                settings: {\n                    dots: true,\n                    arrows: false,\n                    slidesToShow: 3,\n                    slidesToScroll: 3,\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.xs.max,\n                settings: {\n                    dots: true,\n                    arrows: false,\n                    slidesToShow: 2,\n                    slidesToScroll: 2\n                }\n            }\n        ]\n    },\n    pushingSlider: {\n        rows: 0,\n        dots: true,\n        arrows: true,\n        infinite: false,\n        autoplay: false,\n        slidesToScroll: 1,\n        slidesToShow: 1,\n        prevArrow: getSliderIcon(\"arrow-square arrow-square-slick-prev un-clickable\", \"\", \">\"),\n        nextArrow: getSliderIcon(\"arrow-square arrow-square-slick-next un-clickable\", \"\", \">\" ),\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    dots: false\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    dots: false\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.xs.max,\n                settings: {\n                    dots: false\n                }\n            }\n        ]\n    },\n};\n","/**\n * Return the icon arrow button for Swiper\n * @param addClass The additional class for span element\n * @param addIconClass The additional class for icon\n * @param addDataIcon The additional data for icon\n * @returns {string} The string template for Swiper\n */\nexport function getSliderIcon(addClass: string = \"\", addIconClass: string = \"\", addDataIcon: string = \"\"): string {\n  return `<span class=\"${addClass}\"><i class=\"elem-ff-icon ${addIconClass}\" data-icon=\"${addDataIcon}\"></i></span>`;\n}\n","import * as $$ from \"jquery-selector-cache\";\nimport \"slick-carousel\";\n\n/**\n * Initialize the slider pushings\n */\nexport function initFadeSlider() {\n    // Exit when component don't exist\n    if (!$$(\".fade-slider-container\").length) {\n        return;\n    }\n\n    initializeSlick($$(\".fade-slider-container\"));\n}\n\n/**\n * Initialize slick on an element\n * @param element\n */\nexport function initializeSlick(element: JQuery) {\n    element.slick({\n        rows: 0,\n        fade: true,\n        arrows: true,\n        slidesToShow: 1,\n        slidesToScroll: 1\n    });\n}","import * as $$ from \"jquery-selector-cache\";\nimport \"mdn-polyfills/Array.prototype.includes\";\nimport \"slick-carousel\";\nimport {sliderPushingConfig} from \"./sliderPushingsConfig\";\nimport {revalidateLazyImage} from \"../../_core/scripts/specific/layout/lazyload\";\n\n/**\n * Initialize the slider pushings\n */\nexport function initSliderPushings() {\n    // Exit when component don't exist\n    if (!$$(\".init-slider-pushings\").length) {\n        return;\n    }\n    initSlider(\".init-slider-pushings\");\n}\n\nexport function initSlider(selector: string) {\n    const configs = getDataConfigs(selector, \"sliderConfig\");\n    // Iterate on each slider with config\n    initSlickWithConfig(configs);\n}\n\n/**\n * Get the slider configuration for initialization\n * @param {string} className The class name for get data config\n * @param {string} dataName The data name of data config\n * @return {string[]} Return the unique list of config value\n */\nfunction getDataConfigs(className: string, dataName: string): string[] {\n    /*const configs = [];\n    $$(className).each((index: number, elem: HTMLDivElement) => configs.push(elem.dataset[dataName]));\n    return configs.reduce((x, y) => x.includes(y) ? x : [...x, y], []);*/\n    return [\"default\"];\n}\n\n/**\n * initSlickWithConfig\n * @param configs\n */\nfunction initSlickWithConfig(configs: string[]) {\n    configs.forEach((config: string) => {\n        const slider = $$(`[data-slider-config=${config}]`).slick(sliderPushingConfig[config]);\n        slider.on(\"afterChange\", revalidateLazyImage);\n    });\n}","import {breakpointsConfig} from \"../../_core/scripts/specific/config/responsive\";\n\ninterface ISliderPushingsConfig<T> {\n    default: T;\n    pushingFull: T;\n    airlines: T;\n    travelerPlanner: T;\n    travelPlannersContactList: T;\n}\n\n/**\n * Map of Slick options configuration\n * @type {ISliderPushingsConfig<JQuerySlickOptions>}\n */\nexport const sliderPushingConfig: ISliderPushingsConfig<JQuerySlickOptions> = {\n    default: {\n        rows: 0,\n        slidesToShow: 2,\n        slidesToScroll: 1,\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.xl.max,\n                settings: {\n                    arrows: false,\n                    slidesToShow: 3\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.lg.max,\n                settings: {\n                    arrows: false,\n                    slidesToShow: 3\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    arrows: false,\n                    slidesToShow: 2,\n                    centerMode: true,\n                    centerPadding: \"20px\"\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    arrows: false,\n                    slidesToShow: 1,\n                    centerMode: true,\n                    centerPadding: \"20px\"\n                }\n            }\n        ]\n    },\n    pushingFull: {\n        rows: 0,\n        dots: false,\n        arrows: false,\n        slidesToShow: 3,\n        slidesToScroll: 1,\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.xl.max,\n                settings: {\n                    slidesToShow: 4,\n                    slidesToScroll: 1,\n                    centerMode: true,\n                    centerPadding: \"60px\"\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.lg.max,\n                settings: {\n                    slidesToShow: 3,\n                    slidesToScroll: 1,\n                    centerMode: true,\n                    centerPadding: \"30px\"\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    slidesToShow: 2,\n                    slidesToScroll: 1,\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    slidesToShow: 1,\n                    slidesToScroll: 1,\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.xs.max,\n                settings: {\n                    slidesToShow: 1,\n                    slidesToScroll: 1,\n                    centerMode: true,\n                    centerPadding: \"20px\"\n                }\n            }\n        ]\n    },\n    travelerPlanner: {\n        rows: 0,\n        slidesToShow: 3,\n        slidesToScroll: 1,\n        arrows: true,\n        dots: false,\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    slidesToShow: 1,\n                    centerMode: true,\n                    centerPadding: \"20px\"\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    slidesToShow: 2\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.lg.max,\n                settings: {\n                    slidesToShow: 3\n                }\n            }\n        ]\n    },\n    airlines: {\n        rows: 0,\n        slidesToScroll: 2,\n        dots: false,\n        arrows: true,\n        prevArrow: \"<button type=\\\"button\\\" class=\\\"slick-prev\\\">Précédent</button>\",\n        nextArrow: \"<button type=\\\"button\\\" class=\\\"slick-next\\\">Suivant</button>\",\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.xl.max,\n                settings: {\n                    slidesToShow: 5\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.lg.max,\n                settings: {\n                    slidesToShow: 4\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    slidesToShow: 3\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    slidesToShow: 2\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.xs.max,\n                settings: {\n                    slidesToShow: 1\n                }\n            }\n        ]\n    },\n    travelPlannersContactList: {\n        rows: 0,\n        slidesToShow: 2,\n        slidesToScroll: 1,\n        arrows: false,\n        dots: false,\n        responsive: [\n            {\n                breakpoint: breakpointsConfig.lg.max,\n                settings: {\n                    slidesToShow: 2\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.md.max,\n                settings: {\n                    slidesToShow: 2\n                }\n            },\n            {\n                breakpoint: breakpointsConfig.sm.max,\n                settings: {\n                    slidesToShow: 1\n                }\n            }\n        ]\n    }\n};","import * as $$ from \"jquery-selector-cache\";\n\nlet panelContentHeight,\n    subPanelContentHeight;\n\nconst body = $$(\"body\"),\n      panelLink = $$(\".panel-link\"),\n      menuContent = $$(\".flex-container-start\"),\n      overlayMenu = $$(\".overlay-menu-full\"),\n      scrollBlock = $$(\".scroll-block\"),\n      subScrollBlock = $$(\".sub-scroll-block\");\n\n/**\n * Initialize the header menu\n */\nexport function initHeaderMenu() {\n    menuCalculator();\n}\n\nexport function menuCalculator() {\n\n    if (!body.hasClass(\"menu-activated\")) {\n        return;\n    }\n\n    const windowHeight = $$(window).height(),\n          headerHeight = $$(\".cpt-header\").outerHeight(),\n          headerAndPanelHeight = headerHeight + panelContentHeight,\n          windowHeightMenu = windowHeight - headerHeight,\n          isSmallerToWindow = (windowHeight <= headerAndPanelHeight);\n\n    scrollBlock.css({ height: isSmallerToWindow ? windowHeightMenu : \"auto\" });\n}\n\nexport function subMenuCalculator() {\n\n    if (!body.hasClass(\"menu-activated\")) {\n        return;\n    }\n\n    const windowHeight = $$(window).height(),\n          headerHeight = $$(\".cpt-header\").outerHeight(),\n          headerAndSubPanelHeight = headerHeight + subPanelContentHeight,\n          windowHeightMenu = windowHeight - headerHeight,\n          isSmallerSubToWindow = (windowHeight <= headerAndSubPanelHeight);\n\n    subScrollBlock.css({\n        height: isSmallerSubToWindow ? windowHeightMenu : \"auto\"\n    });\n\n}\n\nexport function handleMenuBurger() {\n    menuContent.toggleClass(\"active\");\n    panelContentHeight = $$(\".cpt-panel-menu-content\").height();\n\n    overlayMenu.toggleClass(\"hidden\");\n    panelLink.removeClass(\"selected\");\n    body.toggleClass(\"menu-activated\");\n\n    menuCalculator();\n}\n\nexport function handleBackTitle(evt) {\n    const target = $(evt.currentTarget);\n\n    target.parents(\".panel-link\").toggleClass(\"selected\");\n}\n\nexport function handlePanelLink(evt) {\n    const target = $(evt.currentTarget);\n    subPanelContentHeight = target.next(\".sub-panel\").height();\n\n    $$(\".panel-link\").removeClass(\"selected\");\n    target.parents(\".panel-link\").toggleClass(\"selected\");\n\n    subMenuCalculator();\n}\n\nexport function handleOverlayMenu() {\n    panelLink.removeClass(\"selected\");\n    menuContent.removeClass(\"active\");\n    overlayMenu.addClass(\"hidden\");\n    body.removeClass(\"menu-activated\");\n}","import * as $$ from \"jquery-selector-cache\";\nimport {handleToScroll} from \"orxapi.tools.toscroll\";\n\nexport function initToScrollTop() {\n    if (!$$(\"#arrowTopWrap\").length) {\n        return;\n    }\n\n    $$(\"#arrowTopWrap\").on(\"click\", handleToScroll);\n\n    $(window).on(\"scroll\", handleArrowTopOnScroll);\n}\n\nfunction handleArrowTopOnScroll() {\n    const y = window.scrollY;\n    $$(\"#arrowTopWrap\").toggleClass(\"hidden\", y < 100);\n}","import * as $$ from \"jquery-selector-cache\";\nimport \"mdn-polyfills/String.prototype.startsWith\";\nimport \"devbridge-autocomplete\";\nimport {Template} from \"./Template\";\nimport {getUrlVar} from \"orxapi.tools.url\";\n\n/**\n * Initialize the autocomplete plugin\n */\nexport function initAutocomplete() {\n    // Exit if the page don't have .input-autocomplete\n    if (!$$(\".input-autocomplete\").length) {\n        return;\n    }\n\n    $$(\".input-autocomplete\").each((index: number, elem: HTMLElement) => {\n        const input = $(elem);\n        const resultAutocomplete = getResultContainer(input);\n        const inputLookup = input.data(\"lookup\");\n        let options = input.data(\"options\");\n        if (options && options.indexOf(\".\") !== -1) {\n            options = options.replace(/\\./g, \"$\");\n        }\n        if (input.data(\"multiChoice\")) {\n            $$(\".selected-options\").on(\"click\", \".selected-option\", handleClickOption.bind(input));\n        }\n        let formatResult;\n        if (input.data(\"template\")) {\n            formatResult = (suggestion: AutocompleteSuggestion, currentValue: string): string => {\n                return new Template()[input.data(\"template\")](suggestion, currentValue);\n            };\n        }\n        if (!inputLookup) {\n            input.autocomplete({\n                serviceUrl: input.data(\"serviceUrl\"),\n                dataType: \"json\",\n                deferRequestBy: 150,\n                paramName: \"term\",\n                minChars: Number(input.data(\"minChars\")),\n                showNoSuggestionNotice: true,\n                noSuggestionNotice: input.data(\"noResultText\") || \"Aucun résultat trouvé\",\n                onSelect: handleOnSelect,\n                onSearchStart: handleOnSearchStart,\n                onSearchComplete: handleOnSearchComplete,\n                transformResult: handleTransformResult,\n                formatResult,\n                appendTo: resultAutocomplete\n            });\n\n        } else {\n            input.autocomplete({\n                lookup: JSON.parse(options),\n                showNoSuggestionNotice: true,\n                noSuggestionNotice: input.data(\"noResultText\") || \"Aucun résultat trouvé\",\n                minChars: Number(input.data(\"minChars\")),\n                onSelect: handleOnSelect,\n                lookupFilter: handleLookupFilter,\n                formatResult,\n                onSearchComplete: (query, suggestions) => {\n                    if (query.length === 0) {\n                        return suggestions.filter(s => s.data.code.split(\".\") === 1);\n                    }\n                },\n                onInvalidateSelection: () => cleanAutoCompleteInput(input),\n                appendTo: resultAutocomplete\n            });\n\n            input.parents(\".cpt-search-autocomplete\").on(\"click\",\".autocomplete-no-suggestion\", () => {\n                input.autocomplete().hide();\n                input.val(\"\");\n                cleanAutoCompleteInput(input);\n            });\n        }\n\n        input.siblings(\".btn-autocomplete-clean\").on(\"click\", () => {\n            input.val(\"\");\n            cleanAutoCompleteInput(input);\n        });\n        const destination =  input.parents(\".type-search.selected\")\n        .find(\".destination\");\n        if (destination && destination.find(\"input\").attr(\"id\") === input.attr(\"id\")) {\n            const subDestiInput = destination.parents(\".type-search.selected\").find(\".sub-destination\").find(\"input\");\n            const desti = getUrlVar()[\"s_c.DESSEJ2\"];\n            if (desti && desti !== \"\") {\n                updateSubDestinationField(destination.prev(\".elem-select-choosen\").find(\"select\"), subDestiInput);\n            }\n        }\n    });\n\n    // Fix autocomplete off\n    $$(\".input-autocomplete\").attr(\"autocomplete\", \"off\");\n}\n\n/**\n * Clean the value of the autocomplete\n * @param {JQuery} autocomplete\n */\nfunction cleanAutoCompleteInput(autocomplete: JQuery) {\n    $(autocomplete.data(\"target\")).val(\"\");\n    const destination = autocomplete.parent().parent();\n    if (destination.hasClass(\"destination\")) {\n        const subDestiInput = destination.parents(\".type-search.selected\").find(\".sub-destination\").find(\"input\");\n        subDestiInput.val(\"\");\n        subDestiInput.attr(\"disabled\", \"disabled\");\n        subDestiInput.next(\"i\").addClass(\"disabled\");\n    }\n}\n\n/**\n * Callback function called before Ajax request. \"this\" is bound to input element.\n */\nfunction handleOnSearchStart(params) {\n    const input = $(this);\n    if (input.data(\"multiChoice\") && input.data(\"multiParams\")) {\n        Object.assign(params, getMultiChoiceParams(input));\n    }\n    $(this).addClass(\"autocomplete-process\");\n}\n\n/**\n * Callback function called after Ajax response is processed. \"this\" is bound to input.\n */\nfunction handleOnSearchComplete() {\n    $(this).removeClass(\"autocomplete-process\");\n}\n\n/**\n * Callback function invoked when user selects suggestion from the list for autocomplete type lookup\n * @param value The destructuring parameter\n * @param data The destructuring parameter\n */\nfunction handleOnSelect({value, data}: AutocompleteSuggestion) {\n    const input = $(this);\n    const target = $(input.data(\"target\"));\n    let alreadySelectedOptions = \"\";\n    $$(\".selected-options\").children().toArray().forEach((s) => {\n        alreadySelectedOptions += s.innerHTML + \",\";\n    });\n    if (input.data(\"multiChoice\")) {\n        input.trigger(\"selecting-concepts\");\n        input.val(\"\");\n        const newSelectedOptions = value;\n        target.val(alreadySelectedOptions + newSelectedOptions);\n        const val = String(newSelectedOptions);\n        if (val) {\n            val.split(\",\").forEach((v) => $$(\".selected-options\").append(\n                `<div class='selected-option' data-value=\"${v}\">${v}</div>`\n            ));\n        }\n    } else if (input.data(\"autoSelect\")) {\n        target.val(data.code);\n        input.trigger(\"auto-select\");\n        input.val(\"\");\n        target.val(\"\");\n    } else if (data.code.length > 0 && data.code.indexOf(\"$\") !== -1) {\n        const subDestination = input.parents(\".type-search.selected\")\n        .find(\".sub-destination select\");\n        target.val(data.code.replace(/\\$/g, \".\"));\n        subDestination.removeAttr(\"disabled\");\n        subDestination.empty();\n        subDestination.append(`<option value=\"\">Indifférent</option>`);\n        subDestination.append(`<option value='${data.code.replace(/\\$/g, \".\")}' selected/>`);\n    } else {\n        if (data.code.length > 0) {\n            target.val(data.code.replace(/\\$/g, \".\"));\n            target.removeAttr(\"disabled\");\n        } else {\n            input.val(\"\");\n        }\n    }\n\n    const destination =  input.parents(\".type-search.selected\")\n    .find(\".destination\");\n    if (destination) {\n        const subDestiInput = destination.parents(\".col-12\").next().find(\".sub-destination\").find(\"input\");\n        updateSubDestinationField(destination.prev(\".elem-select-choosen\").find(\"select\"), subDestiInput);\n    }\n\n}\n\n/**\n * updateSubDestinationField for autocomplete.\n * @param changedSelect\n * @param subDestiInput\n */\nfunction updateSubDestinationField(changedSelect: JQuery, subDestiInput: JQuery) {\n    const action = changedSelect.attr(\"action\");\n    if (!action) {\n        return;\n    }\n    const desti = getUrlVar()[\"s_c.DESSEJ2\"];\n    const subDestinations = changedSelect.parents(\".type-search.selected\").data(\"subdestination\");\n    const JSONSubDestinations = JSON.stringify(subDestinations);\n    const destinationCode = changedSelect.val();\n    if (destinationCode !== \"\") {\n        $.ajax({\n            url: action,\n            method: \"POST\",\n            contentType: \"application/json\",\n            type: \"json\",\n            async: false,\n            data: JSON.stringify({destinationCode, subDestinations: JSONSubDestinations}),\n        }).done(data => {\n\n            const jsonData = JSON.parse(data);\n            if (jsonData[0]) {\n                let seletedValue = \"\";\n                let selectedCode = \"\";\n                const jsonObj = [];\n                $.each(jsonData, (key, entry) => {\n                    const item = {\n                        data: {},\n                        value: \"\"\n                    };\n                    item.data = {\"label\": entry.value, \"code\": entry.code.replace(/\\./g, \"$\")};\n                    item.value = entry.value;\n                    jsonObj.push(item);\n                    if (desti === entry.code) {\n                        selectedCode = entry.code;\n                        seletedValue = entry.value;\n                    }\n                });\n\n                subDestiInput.removeAttr(\"disabled\");\n                subDestiInput.data(\"options\", JSON.stringify(jsonObj));\n                subDestiInput.next(\"i\").removeClass(\"disabled\");\n\n                if (seletedValue !== \"\") {\n                    subDestiInput.val(seletedValue);\n                } else {\n                    subDestiInput.autocomplete({\n                        lookup: jsonObj,\n                        showNoSuggestionNotice: true,\n                        noSuggestionNotice: subDestiInput.data(\"noResultText\") || \"Aucun résultat trouvé\",\n                        minChars: Number(subDestiInput.data(\"minChars\")),\n                        onSelect: handleOnSelect,\n                        lookupFilter: handleLookupFilter,\n                        onSearchComplete: (query, suggestions) => {\n                            if (query.length === 0) {\n                                return suggestions.map(s => s.data.code.replace(/\\$/g, \".\"));\n                            }\n                        },\n                        onInvalidateSelection: () => cleanAutoCompleteInput(subDestiInput),\n                        appendTo: getResultContainer(subDestiInput)\n                    });\n                }\n                subDestiInput.siblings(\".btn-autocomplete-clean\").on(\"click\", () => {\n                    subDestiInput.val(\"\");\n                    cleanAutoCompleteInput(subDestiInput);\n                    const subDestination = subDestiInput.parents(\".type-search.selected\")\n                    .find(\".sub-destination select\");\n                    subDestination.attr(\"disabled\", \"disabled\");\n                });\n\n            }\n        });\n    }\n\n}\n/**\n * handleClickOption\n * @param evt\n */\nfunction handleClickOption(evt: JQuery.Event) {\n    const option = $(evt.currentTarget);\n    const target = $($(this).data(\"target\"));\n    let finalValue = String(target.val()).replace(option.data(\"value\"), \"\").replace(\",,\", \",\");\n    if (finalValue.endsWith(\",\")) {\n        finalValue = finalValue.substring(0, finalValue.length - 1);\n    }\n    if (finalValue.startsWith(\",\")) {\n        finalValue = finalValue.substring(1, finalValue.length);\n    }\n    if (finalValue === \",\") {\n        finalValue = \"\";\n    }\n    target.val(finalValue);\n    option.remove();\n}\n\n/**\n * getMultiChoiceParams\n * @param input\n */\nfunction getMultiChoiceParams(input: JQuery) {\n    const target = $(input.data(\"target\"));\n    if (input.data(\"multiParams\")) {\n        const params = input.data(\"multiParams\");\n        return {[params]: target.val()};\n    }\n}\n\n/**\n * Search the right container of result\n * @param {JQuery} input The input of autocomplete\n */\nfunction getResultContainer(input: JQuery): JQuery {\n    const result = input.siblings(\".result-autocomplete\");\n    return result.length ? result : input.parents(\".autocomplete-result-parent\").find(\".result-autocomplete\");\n}\n\n/**\n * Format search with Regexp\n * @param {string} pattern\n * @return {string}\n */\nfunction formatRegexp(pattern: string): string {\n    return pattern\n        .replace(/[eéèêëEÉÈÊË]/gi, \"[eéèêëEÉÈÊË]\")\n        .replace(/[aàâäAÀÁÂÃÄÅÆ]/gi, \"[aàâäAÀÁÂÃÄÅÆ]\")\n        .replace(/[cçC]/gi, \"[cçC]\")\n        .replace(/[iïîIÌÍÎÏ]/gi, \"[iïîIÌÍÎÏ]\")\n        .replace(/[oôöÒÓÔÕÖ]/gi, \"[oôöÒÓÔÕÖ]\")\n        .replace(/[uüûUÜÛÙÚ]/gi, \"[uüûUÜÛÙÚ]\")\n        .replace(/[yYÿ^yÝ]/gi, \"[yYÿ^yÝ]\");\n}\n\n/**\n * Lookup filter\n * @param {AutocompleteSuggestion} suggestion\n * @param {string} query\n * @param {string} queryLowercase\n * @return {RegExpMatchArray}\n */\nfunction handleLookupFilter(suggestion: AutocompleteSuggestion, query: string, queryLowercase: string) {\n\n    if (!query || query.length === 0) {\n        let code = suggestion.data.code;\n        return code.length === 0 || code.split(\".\").length === 1;\n    }\n\n    // Make strong the suggestion value\n    const escapeRegExChars = val => val.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n    let pattern = \"(\" + escapeRegExChars(queryLowercase) + \")\";\n\n    // Edit characters for matching the search\n    pattern = formatRegexp(pattern);\n\n    const matcher = new RegExp(pattern);\n    return suggestion.value.toLowerCase().match(matcher);\n}\n\n/**\n * Called after the result of the query is ready. Converts the result into response.suggestions format.\n * @param response\n * @returns {{suggestions: any}}\n */\nfunction handleTransformResult(response): AutocompleteResponse {\n    return {\n        suggestions: response.map((dataItem: any) => {\n            if (dataItem.label) {\n                return {value: dataItem.label, data: dataItem};\n            } else {\n                return {value: dataItem};\n            }\n        })\n    };\n}","export class Template {\n    /**\n     * The string template for flight data\n     * @param {string} value The destructuring parameter\n     * @param current\n     * @param {any} data The destructuring parameter\n     * @return {string}\n     */\n    public customResponse({value}: AutocompleteSuggestion, current): string {\n        return `\n            <div class=\"row\">\n\t\t      <div class=\"col-8 col-lg-10 key-word\">\n\t\t\t      <span class=\"primary\">${value}</span>\n\t\t      </div>\n\t        </div>\n              `;\n    }\n\n    /**\n     * Function to format suggestion entry inside suggestions container.\n     * @param {string} value\n     * @param {string} currentValue\n     * @return {string} The search value\n     */\n    public searchValue(value: string, currentValue: string): string {\n        // Do not replace anything if there current value is empty\n        if (!currentValue) {\n            return value;\n        }\n\n        // Make strong the suggestion value\n        const escapeRegExChars = val => val.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n        const pattern = \"(\" + escapeRegExChars(currentValue) + \")\";\n\n        return value\n            .replace(new RegExp(pattern, \"gi\"), \"<strong>$1<\\/strong>\")\n            .replace(/&/g, \"&amp;\")\n            .replace(/</g, \"&lt;\")\n            .replace(/>/g, \"&gt;\")\n            .replace(/\"/g, \"&quot;\")\n            .replace(/&lt;(\\/?strong)&gt;/g, \"<$1>\");\n    }\n\n    /**\n     * The string template for flight data\n     * @param {string} value The destructuring parameter\n     * @param {any} data The destructuring parameter\n     * @param {string} currentValue The search value\n     * @return {string} The flight template\n     */\n    public flight({value, data}: AutocompleteSuggestion, currentValue: string): string {\n        const strongify = this.searchValue(value, currentValue);\n        const {countryLabel, code} = data;\n\n        return `\n                    <span>${strongify}</span>, <span class=\"\">${countryLabel}</span>\n                    <span class=\"code\">${code}</span>\n                `;\n    }\n\n    /**\n     * The string template for hotel data\n     * @param {string} value The destructuring parameter\n     * @param {any} data The destructuring parameter\n     * @param {string} currentValue The search value\n     * @returns {string} The hotel template\n     */\n    public hotel({value, data}: AutocompleteSuggestion, currentValue: string): string {\n        const strongify = this.searchValue(value, currentValue);\n        const {countryLabel} = data;\n\n        return `\n                    <span>${strongify}</span>, <span class=\"\">${countryLabel}</span>\n                `;\n    }\n\n    /**\n     * The string template for destination data\n     * @param {string} value The destructuring parameter\n     * @param {any} data The destructuring parameter\n     * @param {string} currentValue The search value\n     * @returns {string} The destination template\n     */\n    public destination({value, data}: AutocompleteSuggestion, currentValue: string): string {\n        const strongify = this.searchValue(value, currentValue);\n        const {code, countryLevel} = data;\n\n        return `<span class=\"level-${countryLevel}\" data-code=\"${code}\">${strongify}</span>`;\n    }\n}","import * as $$ from \"jquery-selector-cache\";\nimport \"../../_core/scripts/libs/vendor/chosen.jquery\";\n\nexport function initSelectChoosen() {\n    // Exist when component don't exist\n    if (!$$(\".elem-select-choosen\").length) {\n        return;\n    }\n    // //  $$(\".chosen-select\").chosen({max_selected_options: 5});\n    removeSameOptionValue();\n    $$(\".chosen-select\").chosen({enable_escape_special_char: true});\n    $$(\".chosen-select\").on(\"change\", (evt: JQuery.ClickEvent<HTMLElement>) => updateChosen($(evt.currentTarget)));\n    updateSubDestinationField($$(\".chosen-select\"));\n}\n\nfunction updateChosen(changedSelect: JQuery) {\n    const chosenValue = changedSelect.next(\".chosen-container\").children(\".chosen-single\").text().trim();\n    // update a input text autocomplete with selected value\n    changedSelect.next(\".chosen-container\").find(\"input\").val(chosenValue);\n    // update a value criteria selected outsad popin (@@change pop)\n    changedSelect.parents(\".cpt-criterion-popin\").siblings(\".criterion-wrapper\").find(\".criterion-value span\").text(chosenValue);\n    if (changedSelect.data(\"destination\") === \"destination\") {\n        updateSubDestinationField(changedSelect);\n    }\n}\n\nfunction removeSameOptionValue() {\n    $$(\".chosen-select option\").each((idx, elmt) => {\n        const sameValue = $(elmt).siblings(\"[value=\\\"\" + $(elmt).val() + \"\\\"]\");\n        if (sameValue.length) {\n            sameValue.remove();\n        }\n    });\n    $$(\".chosen-select\").trigger(\"chosen:updated\");\n}\n\nfunction updateSubDestinationField(changedSelect: JQuery) {\n    const action = changedSelect.attr(\"action\");\n    if (!action) {\n        return;\n    }\n\n    const subDestinations = changedSelect.parents(\".type-search.selected\").data(\"subdestination\");\n    const JSONSubDestinations = JSON.stringify(subDestinations);\n    const destinationCode = changedSelect.val();\n    $.ajax({\n        url: action,\n        method: \"POST\",\n        contentType: \"application/json\",\n        type: \"json\",\n        data: JSON.stringify({destinationCode, subDestinations: JSONSubDestinations}),\n    }).done(data => {\n        const jsonData = JSON.parse(data);\n        const subDestination = changedSelect.parents(\".type-search.selected\")\n            .find(\".sub-destination select\");\n        subDestination.empty();\n        subDestination.append(`<option value=\"${destinationCode}\">Indifférent</option>`);\n        if (jsonData[0]) {\n            subDestination.removeAttr(\"disabled\");\n            const firstValue = jsonData[0].code;\n            const firstLevel = firstValue.split(\".\").length;\n            $.each(jsonData, (key, entry) => {\n                const currentLevel = entry.code.split(\".\").length;\n                const name = subDestination.attr(\"name\");\n                const regex = new RegExp(name + \"=\" + entry.code + \"[^.]\");\n                const selected = (regex.exec(window.location.search)) != null;\n                if (currentLevel <= firstLevel) {\n                    subDestination.append(`<option value='${entry.code}' ${selected ? \"selected\" : \"\"}>${entry.value}</option>`);\n                } else {\n                    subDestination.append(`<option class=\"level-1\" value='${entry.code}' ${selected ? \"selected\" : \"\"}>${entry.value}</option>`);\n                }\n            });\n        } else {\n            subDestination.attr(\"disabled\", \"disabled\");\n        }\n        subDestination.trigger(\"chosen:updated\");\n    });\n}\n","import * as $$ from \"jquery-selector-cache\";\n\nexport function initIncrementalField() {\n\n    $$(\"body\").on(\"click\", \".incremental-controller .btn-increment\", handleClickIncrement);\n    $$(\"body\").on(\"click\", \".incremental-controller .btn-decrement\", handleClickDecrement);\n}\n/**\n * handle click decrement btn element\n * @param {JQuery.Event} evt\n */\nlet oldValue: number = 0;\nlet currentValue: number = 0;\nfunction handleClickDecrement(evt: JQuery.Event) {\n    const btnDecrementClicked = $$(evt.currentTarget);\n    const currentIncrementalField =  btnDecrementClicked.parents(\".elem-incremental-field\");\n    const minValue = currentIncrementalField.data(\"min\") * 1;\n    oldValue = currentIncrementalField.data(\"current\") * 1;\n    if (oldValue === minValue) {return; }\n    currentValue =  oldValue - 1;\n    currentIncrementalField.data(\"current\", currentValue);\n    btnDecrementClicked.next(\"input\").val(currentValue);\n    btnDecrementClicked.next(\"input\").trigger(\"change\");\n}\n\nfunction handleClickIncrement(evt: JQuery.Event) {\n    const btnIncrementClicked = $$(evt.currentTarget);\n    const currentIncrementalField =  btnIncrementClicked.parents(\".elem-incremental-field\");\n    const maxValue: number = currentIncrementalField.data(\"max\");\n    oldValue = btnIncrementClicked.siblings(\"input\").val() * 1;\n    if (oldValue === maxValue) {return; }\n    currentValue =  oldValue + 1;\n    currentIncrementalField.data(\"current\", currentValue);\n    btnIncrementClicked.siblings(\"input\").val(currentValue);\n    btnIncrementClicked.siblings(\"input\").trigger(\"change\");\n}","import * as $$ from \"jquery-selector-cache\";\nimport * as Cookies from \"js-cookie\";\n\nexport function initTravelPlannerBox() {\n    if (!$$(\".cpt-travel-planner-box\").length) {\n        return;\n    }\n    const locationQuery: any = {};\n    if (Cookies.get(\"havas-user-location\")) {\n        const userLocation = JSON.parse(Cookies.get(\"havas-user-location\"));\n        locationQuery.latitude = userLocation.latitude;\n        locationQuery.longitude = userLocation.longitude;\n    }\n    $$(\".cpt-travel-planner-box\")\n        .filter((i, element) => $(element).hasClass(\"async\"))\n        .each((i, element) => {\n            $.ajax(\"/ajax/travelPlanner/box?\" + $(element).data(\"query\"), {data: locationQuery})\n                .done(response => $(element).append(response));\n        });\n}\n\nexport function handleOpenTravelPlannerBox(evt) {\n    $(evt.currentTarget).parents(\".cpt-travel-planner-box\").toggleClass(\"active\");\n}\n","import * as $$ from \"jquery-selector-cache\";\n\n/**\n * Initialize the headerLinksList component\n */\nexport function initHeaderLinksList() {\n    // Exit when component don't exist\n    if (!$$(\".cpt-header-links-list\").length) {\n        return;\n    }\n\n    // Open menu\n    $$(\".header-icons-wrap\").on(\"click\", \".icon-wrap.icon-menu\", handleOpenHeaderMenu);\n\n    // Close menu\n    $$(\".cpt-header-links-list\").on(\"click\", \".header-links-overlay\", handleCloseHeaderMenu);\n    $$(\".logo-and-icons-container\").on(\"click\", \".close-wrap\", handleCloseHeaderMenu);\n}\n\n/**\n * Handler click, open header menu\n * @param {JQuery.Event} evt\n */\nexport function handleOpenHeaderMenu(evt: JQuery.Event) {\n    $$(\".cpt-header-links-list\").removeClass(\"d-none\");\n    $$(\"body\").addClass(\"no-scroll\");\n    $$(\".close-wrap\").removeClass(\"d-none\");\n    $$(\".icon-wrap.icon-menu\").addClass(\"d-none\");\n\n}\n\n/**\n * Handler click, close header menu\n * @param {JQuery.Event} evt\n */\nexport function handleCloseHeaderMenu(evt: JQuery.Event) {\n    $$(\".cpt-header-links-list\").addClass(\"d-none\");\n    $$(\"body\").removeClass(\"no-scroll\");\n    $$(\".close-wrap\").addClass(\"d-none\");\n    $$(\".icon-wrap.icon-menu\").removeClass(\"d-none\");\n    $$(\".cpt-header-sub-module\").each(function () {\n        $(this).addClass(\"d-none\");\n    });\n}","import * as $$ from \"jquery-selector-cache\";\nimport {getUrlHashVar} from \"orxapi.tools.url\";\nimport {isMobileDevice} from \"../../_core/scripts/specific/layout/device\";\nimport {replaceAll} from \"../searchEngine/app/tools/stringTools\";\n\n/**\n * initialize the breadcrumb component when coming from serp\n */\nexport function initBreadcrumbFromSerp() {\n    if (!$$(\".cpt-breadcrumb\").length) {\n        return;\n    }\n\n    const hash = window.location.hash.substr(1);\n    if (hash === undefined) {\n        return;\n    }\n\n    const params = getUrlHashVar(hash);\n    if (params.backUrl !== undefined && params.resultNumber !== undefined) {\n        const levels = buildLevels(params);\n        const template = levels.map(level => getTemplate(level));\n        $$(\".cpt-breadcrumb\").find(\".container\").empty().append(...template);\n    }\n}\n\n/**\n * build breadcrumb levels from component data\n * @param params\n */\nfunction buildLevels(params) {\n    const levels = $$(\".cpt-breadcrumb\").find(\".container\").data(\"newLevels\");\n    if (levels) {\n        levels[1].url = atob(params.backUrl);\n        levels[1].label = replaceAll(levels[1].label, \"%N%\", params.resultNumber) ;\n    }\n    return levels;\n}\n\n/**\n * get breadcrumb template\n * @param level\n */\nfunction getTemplate(level) {\n    return level.url ? (`\n        <a href=\"${level.url}\" class=\"elem-button--breadcrumb\">\n            ${level.label}\n            ${((level.hasIcon && isMobileDevice()) || !isMobileDevice()) ? \"<i class=\\\"elem-ff-icon\\\" data-icon=\\\"v\\\" role=\\\"img\\\"></i>\" : \"\"}\n        </a>\n    `) : (`\n        <span class=\"elem-button--breadcrumb d-none d-md-inline\">\n            ${level.label}\n        </span>\n    `);\n}","/**\n * Replaces each substring of this string that matches\n * the given regex with the given replacement.\n * @param value\n * @param regex\n * @param replacement\n */\nexport function replaceAll(value: string, regex: string, replacement: string): string {\n    return value.split(regex).join(replacement);\n}\n\n/**\n * Replaces each parameter value in url that is related to the given parameter code\n * @param url the url\n * @param paramCode the parameter code\n * @param paramValue the parameter value replacement\n */\nexport function replaceOrAddParam(url: string, paramCode: string, paramValue: string) {\n    const paramCodeExpression = paramCode + \"=\";\n    const pattern = \"(\" + paramCodeExpression + \").*?(&)\";\n    const matcher = new RegExp(pattern);\n    if (url.includes(paramCodeExpression)) {\n        url = url.replace(matcher, \"$1\" + paramValue + \"$2\");\n    } else {\n        if (url.includes(\"?\")) {\n            url = url.concat(\"&\" + paramCodeExpression, paramValue);\n        } else {\n            url = url.concat(\"?\", paramCodeExpression, paramValue);\n        }\n    }\n    return url;\n}\n\n/**\n * find parameter value in searchQuery\n * @param searchQuery the search query\n * @param parameter the parameter code\n */\nexport function findParameterValue(searchQuery: string, parameter : string) : string {\n    if (searchQuery === \"\") {\n        return \"\";\n    }\n    for (const s of searchQuery.split(\"&\")) {\n        if (s.startsWith(parameter)) {\n            const split = s.split(\"=\");\n            if (split.length > 1) {\n                return split[1];\n            }\n        }\n    }\n    return \"\";\n}","import {isMobileDevice} from \"../../_core/scripts/specific/layout/device\";\n\nexport function initShareButton() {\n  document.querySelector(\".elem-share-product\").addEventListener(\"click\", function() {\n    const urlToShare = window.location.href;\n    const buttonTooltip = document.querySelector(\".tooltip-share\");\n    const titleToShare = document.title;\n\n    if (isMobileDevice()) {\n      if (navigator.share) {\n        navigator.share({\n          title: titleToShare,\n          text: \"Découvrez ce contenu intéressant !\",\n          url: urlToShare,\n        })\n          .then(() => console.log(\"Partage réussi.\"))\n          .catch((error) => console.log(\"Erreur de partage\", error));\n      } else {\n        console.log(\"Partage non supporté ou erreur.\");\n      }\n    } else {\n      navigator.clipboard.writeText(urlToShare)\n        .then(() => showTooltip(buttonTooltip))\n        .catch((error) => console.error(\"Erreur lors de la copie\", error));\n    }\n  });\n}\n\nconst showTooltip = (tooltip) => {\n  tooltip.classList.add(\"visible\");\n\n  setTimeout(() => {\n    tooltip.classList.remove(\"visible\");\n  }, 5000);\n}","import \"jquery-countdown\";\nimport * as moment from \"moment\";\n\n/**\n * Return the percentage of elapsed time\n * @param {moment.Moment} minStartCounter The minimum start date of countdown\n * @param {moment.Moment} startCounter The start date of countdown\n * @param {moment.Moment} endCounter The end date of countdown\n * @returns number - The progress percentage (0 to 100) as a number.\n */\nfunction progress(startCounter:moment.Moment, endCounter:moment.Moment, minStartCounter:moment.Moment): number {\n    const minStartCounterDate = new Date(minStartCounter.toDate());\n    const startCounterDate = new Date(startCounter.toDate());\n    const endCounterDate = new Date(endCounter.toDate());\n    const today = new Date();\n\n    // If today is less than startDate then it didn't start\n    if (today < minStartCounterDate) {\n        return 0;\n    }\n\n    if (today > endCounterDate) {\n        return 100;\n    }\n\n    // @ts-ignore\n    const elapsedTime = Math.abs(today - (startCounterDate < minStartCounterDate ? minStartCounterDate : startCounterDate));\n    // @ts-ignore\n    const rangeTime = Math.abs(endCounterDate - (startCounterDate < minStartCounterDate ? minStartCounterDate : startCounterDate));\n\n    return Math.floor((elapsedTime / rangeTime * 100) * 100) / 100;\n}\n\n/**\n * Initialize the countdown timer for a specific element.\n *\n * @param {HTMLElement} elem - The DOM element to initialize.\n */\nfunction initializeCounter(elem: HTMLElement) {\n    const element = $(elem);\n    const dateCountdown = element.data(\"countdown\");\n    const flashSaleStartDate = element.data(\"start-date\");\n    const counterText = element.find(\".counter-text\");\n    const counterFinished = element.find(\".counter-finished\");\n    const progressBar = element.find(\".counter-time-line\");\n\n    element.countdown(dateCountdown)\n        .on(\"update.countdown\", (event) => {\n            const days = event.strftime(\"%D\").padStart(2, \"0\");\n            const hours = event.strftime(\"%H\").padStart(2, \"0\");\n            const minutes = event.strftime(\"%M\").padStart(2, \"0\");\n            const counterEndDate = moment(dateCountdown, \"YYYY-MM-DD hh:mm:ss\");\n            const counterStartDate  = moment(flashSaleStartDate, \"YYYY-MM-DD hh:mm:ss\");\n            const minCounterStartDate = moment(counterEndDate).subtract(10, \"day\");\n            const percentageProgress = progress(counterStartDate, counterEndDate, minCounterStartDate);\n\n            progressBar.css({\n                \"--progress-width\": `${percentageProgress}%`\n            });\n\n            // Define days\n            counterText.find(\".counter-text-days\").text(days);\n            // Define hours\n            counterText.find(\".counter-text-hours\").text(hours);\n            // Define minutes\n            counterText.find(\".counter-text-minutes\").text(minutes);\n        })\n        .on(\"finish.countdown\", () => {\n            counterText.remove();\n            counterFinished.removeClass(\"d-none\");\n        });\n}\n\n/**\n *  Initialize countdown in push-countdown module\n */\nexport function initCountdownPush() {\n    if (!$(\".cpt-flash-sales-counter\").length) {\n        return;\n    }\n\n    $(\".cpt-flash-sales-counter\").each((index: number, elem: HTMLElement) => {\n        initializeCounter(elem);\n    });\n}\n\n","import * as $$ from \"jquery-selector-cache\";\n\nexport function initFloaPayment() {\n    if (!$$(\".cpt-floa-payment\").length) {\n        return;\n    }\n\n    // Add click event to display the popin floa tooltip\n    $$(\".cpt-floa-payment\").on(\"click.trigger-floa-infos\", handleDisplayInfosTooltip);\n}\n\n/**\n * Handle to show the Floa infos tooltip\n * @param evt\n */\nfunction handleDisplayInfosTooltip(evt: JQuery.ClickEvent<HTMLSpanElement>) {\n    const popin = $$(\".floa-popin\");\n    popin.toggleClass(\"d-none\");\n    $$(\".floa-tooltip-overlay\").toggleClass(\"d-none\");\n    $(\"body\").toggleClass(\"no-scroll\");\n\n    if (!popin.hasClass(\"d-none\")) {\n        $(\"html, body\").animate({\n            scrollTop: 0\n        }, 600);\n    }\n}","import * as $$ from \"jquery-selector-cache\";\nimport { isDesktopBreakpoint } from \"../../_core/scripts/specific/layout/breakpoints\";\n\n/**\n * Initialize the headerSubModule component\n */\nexport function initMobileHeaderSubModule() {\n    // Exit when component don't exist\n    if (!$$(\".burger-menu-main-link-container\").length) {\n        return;\n    }\n\n    if (!isDesktopBreakpoint()) {\n        $$(\".sub-menu-link-wrapper .sub-menu-link\").on(\"click\", function(e) {\n            e.preventDefault();\n            $(this)\n                .closest(\".sub-menu-link-wrapper\")\n                .find(\".cpt-header-sub-module\")\n                .removeClass(\"d-none\");\n        });\n\n        $$(\".sub-module-title\").on(\"click\", function(e) {\n            e.preventDefault();\n            $(this)\n                .parent(\".cpt-header-sub-module\")\n                .addClass(\"d-none\");\n        });\n    }\n}","import * as $$ from \"jquery-selector-cache\";\nimport { isDesktopBreakpoint } from \"../../_core/scripts/specific/layout/breakpoints\";\n\n/**\n * Initialize the headerSubModule component\n */\nexport function initDesktopHeaderSubModule() {\n    // Exit when component don't exist\n    if (!$$(\".burger-menu-main-link-container\").length) {\n        return;\n    }\n\n  if (isDesktopBreakpoint()) {\n    let hoverTimeout;\n    $$(\".sub-menu-link-wrapper .sub-menu-link\").on(\"mouseenter\", function () {\n      const self = this;\n      clearTimeout(hoverTimeout); // Clear any previous timeout to prevent multiple triggers\n      hoverTimeout = setTimeout(function () {\n        // This code will only execute if the mouse stays for more than 0.3 seconds\n        $(\".burger-menu-wrapper\").addClass(\"d-none\");\n        const $container = $(self).closest(\".cpt-menu-header\");\n        const $wrapper   = $(self).closest(\".sub-menu-link-wrapper\");\n        $container.find(\".cpt-desktop-header-sub-module\").addClass(\"d-none\");\n        $(\".overlay-background\").removeClass(\"d-none\");\n        $wrapper.children(\".cpt-desktop-header-sub-module\").removeClass(\"d-none\");\n        $$(\".cpt-menu-header\").addClass(\"hover-background\");\n      }, 300);\n    });\n    // Add a mouseleave handler to clear the timeout if the mouse leaves before the delay\n    $$(\".sub-menu-link-wrapper .sub-menu-link\").on(\"mouseleave\", function () {\n      clearTimeout(hoverTimeout); // Cancel the pending hover action\n    });\n\n    $$(\".cpt-desktop-header-sub-module\").on(\"mouseleave\", function () {\n      $(this).addClass(\"d-none\");\n      $(\".overlay-background\").addClass(\"d-none\");\n      $$(\".cpt-menu-header\").removeClass(\"hover-background\");\n    });\n  }\n\n}\n","import * as $$ from \"jquery-selector-cache\";\n\n/**\n * Initialize the header\n */\nexport function initScrollDisplayForHeader() {\n    // Exit when component don't exist\n    if (!$$(\".cpt-menu-header\").length && !$$(\".cpt-header\").length) {\n        return;\n    }\n\n    const heightHeaderSticky = 117;\n    let lastScrollTop = 0;\n\n    $(window).on(\"scroll\", function () {\n\n        if (!$$(\".overlay-background\").hasClass(\"d-none\")) return;\n\n        const st = $(this).scrollTop();\n\n        if (st > lastScrollTop && st > heightHeaderSticky) {\n            // Scroll vers le bas\n            $(\".cpt-header, .cpt-menu-header\").addClass(\"header-hide\");\n        } else if (st < lastScrollTop) {\n            $(\".cpt-header, .cpt-menu-header\").removeClass(\"header-hide\");\n        }\n        lastScrollTop = st;\n    });\n}\n","import * as $$ from \"jquery-selector-cache\";\nimport * as ReactDOM from \"react-dom\";\nimport { buildAppElement } from \"./app\";\n\n/**\n * Initialize the FastSearch component\n */\nexport function initFastSearch(): void {\n    // Exit when component don't exist\n    if (!$$(\".cpt-fast-search\").length) {\n        return;\n    }\n    $$(\".cpt-fast-search\").each((_i: number, el: Element) => mountOn(el as HTMLElement));\n}\n\n/** Monte sur un seul node */\nfunction mountOn(node: HTMLElement): void {\n    if (node.getAttribute(\"data-mounted\") === \"1\") return;\n    buildAppElement(node);\n    node.setAttribute(\"data-mounted\", \"1\");\n}\n\n/** Démonte sur un seul node */\nfunction unmountFrom(node: HTMLElement): void {\n    ReactDOM.unmountComponentAtNode(node);\n    node.removeAttribute(\"data-mounted\");\n}\n\n/** Destroy: démonte toutes les occurrences */\nexport function destroyFastSearch(): void {\n    if (!$$(\".cpt-fast-search\").length) return;\n    $$(\".cpt-fast-search\").each((_i: number, el: Element) => unmountFrom(el as HTMLElement));\n}\n\ndeclare global {\n    interface Window {\n        AppFastSearch?: {\n            initFastSearch: () => void;\n            destroyFastSearch: () => void;\n        };\n    }\n}\nwindow.AppFastSearch = { initFastSearch, destroyFastSearch };","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport FastSearchComponent from \"./components\";\n\n\n/** Construit l'élément React */\nexport function buildAppElement(node: HTMLElement) {\n    const { placeholder, ariaLabel, noResultMsg, moreResultMsg, mobilePortalSelector, mobileBreakpoint } = node.dataset;\n\n    ReactDOM.render(\n        <FastSearchComponent\n            placeholder={placeholder || \"Hôtel ou référence produit\"}\n            ariaLabel={ariaLabel || \"Rechercher un hôtel ou une référence produit\"}\n            noResultMsg={noResultMsg || \"Aucun résultat trouvé\"}\n            moreResultMsg={moreResultMsg || \"Voir plus ({productNumber} résultats)\"}\n            mobilePortalSelector={mobilePortalSelector || \"#fast-search-mobile-slot\"}\n            mobileBreakpoint={Number(mobileBreakpoint) || 992}\n        />,\n        node\n    );\n}","import * as React from \"react\";\nimport AsyncSelect from \"react-select/async\";\nimport { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type {ProductOption} from \"../@types/api\";\nimport useFastSearch from \"./useFastSearch\";\nimport useMediaQuery from \"./useMediaQuery\";\n\nimport FastSearchMenuList from \"./FastSearchMenuList\";\nimport FastSearchOption from \"./FastSearchOption\";\nimport FastSearchLoadingMessage from \"./FastSearchLoadingMessage\";\nimport FastSearchNoOptionsMessage from \"./FastSearchNoOptionsMessage\";\n\nexport type FastSearchProps = {\n    placeholder?: string;\n    ariaLabel?: string;\n    noResultMsg?: string;\n    moreResultMsg?: string;\n    className?: string;\n    mobilePortalSelector?: string;\n    mobileBreakpoint?: number;\n};\n\nconst FastSearchComponent = ({placeholder, ariaLabel, noResultMsg, moreResultMsg, className = \"\", mobilePortalSelector = \"#fast-search-mobile-slot\", mobileBreakpoint = 992}: FastSearchProps) => {\n    const {rootRef, productNumber, fastSearchQuery, menuIsOpen, options, focusedIndex,\n        loadOptions, handleKeyDown,  onMenuOpen, onMenuClose } = useFastSearch();\n    const isMobile = useMediaQuery(`(max-width:${mobileBreakpoint - 1}px)`);\n    const [portalEl, setPortalEl] = useState<HTMLElement | null>(null);\n    useEffect(() => {\n        setPortalEl(\n            mobilePortalSelector\n                ? document.querySelector<HTMLElement>(mobilePortalSelector)\n                : null\n        );\n    }, [mobilePortalSelector]);\n\n    const content = (\n        <div ref={rootRef} className={`cpt-fast-search-select ${className}`}>\n            <form autoComplete=\"off\">\n                <AsyncSelect\n                    className=\"async-select\"\n                    classNamePrefix=\"fast-search\"\n                    noOptionsMessage={({ inputValue }) =>\n                        inputValue ? noResultMsg : null\n                    }\n                    placeholder={placeholder}\n                    aria-label={ariaLabel}\n                    loadOptions={loadOptions}\n                    isClearable={true}\n                    onFocus={onMenuOpen}\n                    onBlur={onMenuClose}\n                    onMenuOpen={onMenuOpen}\n                    onMenuClose={onMenuClose}\n                    menuIsOpen={menuIsOpen}\n                    components={{\n                        Option: (props) => <FastSearchOption {...props} focusedIndex={focusedIndex}/>,\n                        MenuList: (props) => (\n                            <FastSearchMenuList\n                                {...props}\n                                options={options}\n                                productNumber={productNumber}\n                                fastSearchQuery={fastSearchQuery}\n                                moreResultMsg={moreResultMsg}\n                            />\n                        ),\n                        LoadingMessage: FastSearchLoadingMessage,\n                        NoOptionsMessage: (props) => (\n                            <FastSearchNoOptionsMessage {...props} noResultMsg={noResultMsg} />\n                        ),\n                    }}\n                    isMulti={false}\n                    autoFocus={false}\n                    defaultMenuIsOpen={false}\n                    onKeyDown={handleKeyDown}\n                    focusedIndex={focusedIndex}\n                />\n            </form>\n        </div>\n    );\n\n    return isMobile && portalEl ? createPortal(content, portalEl) : content;\n};\n\nexport default FastSearchComponent;\nexport type { ProductOption };","import * as React from \"react\";\nimport { useCallback, useRef, useState, useEffect } from \"react\";\nimport type { CodeLabel, ProductType, ResultsProduct } from \"../@types/product\";\nimport { jsonFetcher } from \"../../../../_core/scripts/libs/orxapi/tools/Fetcher\";\nimport type { ProductOption } from \"../@types/api\";\nimport { debouncePromise } from \"../../../../_core/scripts/libs/orxapi/tools/Debounce\";\nimport { fastSearchConfig } from \"../config/fastSearch\";\n\nexport type UseHeaderSearchType = {\n    menuIsOpen: boolean;\n    productNumber: number;\n    fastSearchQuery: string;\n    loadOptions: (value: string) => Promise<ProductOption[]>;\n    options: ProductOption[];\n    focusedIndex: number;\n    rootRef: React.RefObject<HTMLDivElement>;\n    handleKeyDown: (event: React.KeyboardEvent) => void;\n    onMenuOpen: () => void;\n    onMenuClose: () => void;\n};\n\nconst HIDDEN_TAG = \"js-hidden-by-search\";\nconst OVERLAY_TAG = \"js-overlay-by-search\";\nconst BODY_LOCK_TAG = \"js-noscroll-by-fastsearch\";\nconst BODY_NO_SCROLL_CLASS = \"no-scroll\";\nconst DESKTOP_MQ = \"(min-width: 992px)\";\n\nfunction useFastSearch(): UseHeaderSearchType {\n    const rootRef = useRef<HTMLDivElement>(null);\n\n    const [menuIsOpen, setMenuIsOpen] = useState(false);\n    const [productNumber, setProductNumber] = useState<number>(0);\n    const [fastSearchQuery, setFastSearchQuery] = useState(\"\");\n    const [options, setOptions] = useState<ProductOption[]>([]);\n    const [focusedIndex, setFocusedIndex] = useState<number>(-1);\n    const currentAbortRef = useRef<AbortController | null>(null);\n\n    const isDesktop = useCallback(() => {\n        if (typeof window === \"undefined\" || !(\"matchMedia\" in window)) return false;\n        return window.matchMedia(DESKTOP_MQ).matches;\n    }, []);\n\n    const setBodyNoScroll = useCallback((lock: boolean) => {\n        const body = typeof document !== \"undefined\" ? document.body : null;\n        if (!body) return;\n\n        if (lock) {\n            body.classList.add(BODY_NO_SCROLL_CLASS);\n            body.classList.add(BODY_LOCK_TAG);\n        } else if (body.classList.contains(BODY_LOCK_TAG)) {\n            body.classList.remove(BODY_NO_SCROLL_CLASS);\n            body.classList.remove(BODY_LOCK_TAG);\n        }\n    }, []);\n\n    useEffect(() => {\n        return () => setBodyNoScroll(false);\n    }, [setBodyNoScroll]);\n\n    const productHeaderSearch = async (inputValue: string): Promise<ProductOption[]> => {\n\n        if (currentAbortRef.current) {\n            currentAbortRef.current.abort();\n        }\n\n        inputValue = inputValue.replace(/[=<>]/g, \"\");\n\n        if (inputValue.length < fastSearchConfig.MIN_START_AT) {\n            setMenuIsOpen(false);\n            setProductNumber(0);\n            setFastSearchQuery(\"\");\n            setOptions([]);\n            setFocusedIndex(-1);\n            return Promise.resolve([]);\n        }\n\n        const ac = new AbortController();\n        currentAbortRef.current = ac;\n\n        setMenuIsOpen(true);\n\n        const defaultResponse: ResultsProduct = { datas: [], productNumber: 0 };\n        const query = `${fastSearchConfig.FAST_SEARCH_PARAM}=${inputValue}`;\n        const url = encodeURI(`${fastSearchConfig.API_URI}?${query}`);\n\n        const response = await jsonFetcher<ResultsProduct>(url, { signal: ac.signal }, defaultResponse);\n\n        const products: ProductType[] = response?.datas || [];\n\n        if (response?.productNumber > fastSearchConfig.MAX_PRODUCT_NUMBER) {\n            setProductNumber(response.productNumber);\n            setFastSearchQuery(query);\n        } else {\n            setProductNumber(response?.productNumber ?? products.length);\n            setFastSearchQuery(query);\n        }\n\n        const productOptions = products.map((product: ProductType): ProductOption => ({\n            value: product.code,\n            productName: product.title,\n            productImageUrl: product?.document?.mainImage?.url,\n            productRef: product.code,\n            productDestination: getDestinationLabel(product),\n            url: product.productPageUrlSEO.split(\"#\")[0]\n        }));\n\n        setOptions(productOptions);\n        return productOptions;\n    };\n\n    const debouncedSearch = debouncePromise(productHeaderSearch, 300);\n    const loadOptions = (value: string): Promise<ProductOption[]> => debouncedSearch(value);\n\n    const buildDestination = (product: ProductType): string[] => {\n        const destination: string[] = [];\n        const complete = product.completeDestination?.[fastSearchConfig.DESTINATION] || [];\n        let chosen: CodeLabel[] = [];\n        for (const group of complete) {\n            if (group.destinations && group.destinations.length > 0) {\n                if (group.destinations[0]?.code !== \"TOP\" && group.destinations.length > chosen.length) {\n                    chosen = group.destinations;\n                }\n            }\n        }\n        if (chosen.length) {\n            for (const d of chosen) destination.push(d.label);\n        }\n        return destination;\n    };\n\n    const getDestinationLabel = (product: ProductType, separator = \", \"): string => {\n        const parts = buildDestination(product);\n        if (!parts.length) return \"\";\n        return parts.slice(0, 3).join(separator);\n    };\n\n    const handleKeyDown = (event: React.KeyboardEvent) => {\n        if (!options || options.length === 0) {\n            if (event.key === \"Enter\" && fastSearchQuery) {\n                event.preventDefault();\n                window.location.href = `serp?${fastSearchQuery}`;\n            }\n            return;\n        }\n\n        if (event.key === \"ArrowDown\") {\n            event.preventDefault();\n            setFocusedIndex((i) => (i + 1) % options.length);\n        } else if (event.key === \"ArrowUp\") {\n            event.preventDefault();\n            setFocusedIndex((i) => (i - 1 + options.length) % options.length);\n        } else if (event.key === \"Enter\") {\n            event.preventDefault();\n            if (focusedIndex > -1 && options.length > focusedIndex) {\n                const opt = options[focusedIndex];\n                if (opt) window.location.href = opt.url;\n            } else if (fastSearchQuery) {\n                window.location.href = `serp?${fastSearchQuery}`;\n            }\n        }\n    };\n\n    const setOverlayVisible = useCallback((visible: boolean) => {\n        const overlay = document.querySelector<HTMLElement>(\".fast-search-overlay\");\n        if (!overlay) return;\n        if (visible) {\n            overlay.classList.add(OVERLAY_TAG);\n        } else if (overlay.classList.contains(OVERLAY_TAG)) {\n            overlay.classList.remove(OVERLAY_TAG);\n        }\n    }, []);\n\n    const setLinksHidden = useCallback((hidden: boolean) => {\n        const root = rootRef.current;\n        if (!root) return;\n        const wrap = root.closest(\".header-wrap\");\n        const list = wrap?.querySelector<HTMLElement>(\".cpt-header-links-list\");\n        if (!list) return;\n\n        const items = list.querySelectorAll<HTMLElement>(\".header-links-list-item\");\n        const dividers = list.querySelectorAll<HTMLElement>(\".divider\");\n\n        if (hidden) {\n            items.forEach((el) => {\n                if (!el.classList.contains(\"tel\")) {\n                    el.classList.add(HIDDEN_TAG);\n                    el.classList.add(\"d-none\");\n                }\n            });\n            dividers.forEach((el) => {\n                el.classList.add(HIDDEN_TAG);\n                el.classList.add(\"d-none\");\n            });\n        } else {\n            const unhide = (el: HTMLElement) => {\n                if (el.classList.contains(HIDDEN_TAG)) {\n                    el.classList.remove(HIDDEN_TAG);\n                    el.classList.remove(\"d-none\");\n                }\n            };\n            items.forEach(unhide);\n            dividers.forEach(unhide);\n        }\n    }, []);\n\n    const onMenuOpen = useCallback(() => {\n        setMenuIsOpen(true);\n        setLinksHidden(true);\n        setOverlayVisible(true);\n        if (isDesktop()) setBodyNoScroll(true);\n    }, [setLinksHidden, setOverlayVisible, setBodyNoScroll, isDesktop]);\n\n    const onMenuClose = useCallback(() => {\n        setMenuIsOpen(false);\n        setLinksHidden(false);\n        setOverlayVisible(false);\n        if (isDesktop()) setBodyNoScroll(false);\n    }, [setLinksHidden, setOverlayVisible, setBodyNoScroll, isDesktop]);\n\n    return {\n        rootRef,\n        menuIsOpen,\n        productNumber,\n        fastSearchQuery,\n        options,\n        focusedIndex,\n        loadOptions,\n        handleKeyDown,\n        onMenuOpen,\n        onMenuClose,\n    };\n}\n\nexport default useFastSearch;\n","/**\n * Fetches JSON data from a specified URL, with centralized error handling.\n *\n * @param {string} url - The URL from which to fetch the JSON data.\n * @param {RequestInit} [init] - Optional initialization options for the Fetch API.\n * @param {T} [defaultValueOnError] - If provided, this value will be returned on any fetch error. If not, the error will be thrown.\n * @returns {Promise<T>} - A Promise that resolves to the fetched JSON data, or the default value on error.\n */\nasync function jsonFetcher<T>(url: string, init?: RequestInit, defaultValueOnError?: T): Promise<T> {\n    try {\n        const r = await callExternal(url, init);\n        return await r.json();\n    } catch (error: any) {\n        // Centralized error logging\n        if (error.name === 'AbortError') {\n            console.log(`Fetch aborted for URL: ${url}`);\n        } else {\n            console.error(`Error fetching data from ${url}:`, error);\n        }\n        // If a default value is provided, return it to prevent crashing the caller\n        if (defaultValueOnError !== undefined) {\n            return Promise.resolve(defaultValueOnError);\n        }\n        // Otherwise, re-throw the error for the caller to handle\n        throw error;\n    }\n}\n/**\n * Calls an external API using the specified URL and optional request initialization options.\n *\n * @param {string} url - The URL of the API to call.\n * @param {RequestInit} [init={}] - The optional request initialization options.\n * @returns {Promise<Response>} - The response from the API.\n */\nasync function callExternal(url: string, init: RequestInit = {}): Promise<Response> {\n    const finalInit = getFinalInit(init);\n    const res = await fetch(url, finalInit);\n    return takeOrThrow(res);\n}\n/**\n * Returns the final RequestInit object by adding default headers if not provided.\n *\n * @param {RequestInit} init - The initial RequestInit object. Optional, defaults to an empty object.\n * @return {RequestInit} - The final RequestInit object with default headers added.\n */\nfunction getFinalInit(init: RequestInit = {}): RequestInit {\n    return {\n        ...init,\n        headers: {\n            ...(init.headers ?? {}),\n            \"Accept\": \"application/json\",\n            \"Content-Type\": \"application/json\"\n        }\n    };\n}\n/**\n * Returns the response if it is ok (status 200-299), otherwise throws the response.\n *\n * @param {Response} res - The Response object to be checked.\n * @returns {Response} - The same Response object if it is ok.\n * @throws {Response} - The Response object if it is not ok.\n */\nfunction takeOrThrow(res: Response): Response {\n    if (res.ok) {\n        return res;\n    }\n    throw res;\n}\nexport {\n    jsonFetcher,\n};\n","/**\n * Debounce a function\n * @param func The function\n * @param delay The debounce delay in milliseconds.\n */\nexport function debounce<T extends (...args: any[]) => void>(func: T, delay: number) {\n  let timeout: NodeJS.Timeout;\n  return function(this: ThisParameterType<T>, ...args: Parameters<T>): void {\n    const context = this;\n    clearTimeout(timeout);\n    timeout = setTimeout(() => func.apply(context, args), delay);\n  };\n}\n\n/**\n * Debounce a function that returns a promise.\n *\n * @param func The async function to debounce.\n * @param delay The debounce delay in milliseconds.\n * @returns A new function that returns a promise which resolves with the result of the latest call.\n */\nexport function debouncePromise<T extends (...args: any[]) => Promise<any>>(\n  func: T,\n  delay: number\n): (...args: Parameters<T>) => ReturnType<T> {\n  let timeout: NodeJS.Timeout;\n  // This is the new debounced function\n  return function(this: ThisParameterType<T>, ...args: Parameters<T>): ReturnType<T> {\n    const context = this;\n    // It immediately returns a new promise\n    return new Promise((resolve, reject) => {\n      // Clear any pending timeout\n      clearTimeout(timeout);\n      // Set a new timeout\n      timeout = setTimeout(() => {\n        // When the timeout completes, execute the original async function\n        func.apply(context, args)\n          .then(resolve) // Resolve the promise with the result\n          .catch(reject); // Or reject it if an error occurs\n      }, delay);\n    }) as ReturnType<T>;\n  };\n}\n","export type FastSearchConfigType = {\n    readonly MIN_START_AT: number;\n    readonly MAX_PRODUCT_NUMBER: number;\n    readonly FAST_SEARCH_PARAM: string;\n    readonly API_URI: string;\n    readonly DESTINATION: string;\n}\n\nexport const fastSearchConfig: FastSearchConfigType = {\n    MIN_START_AT: 3,\n    MAX_PRODUCT_NUMBER: 4,\n    FAST_SEARCH_PARAM: \"s_fst\",\n    API_URI: \"/app/serp\",\n    DESTINATION: \"DESSEJ2\"\n};","import { useEffect, useState } from \"react\";\n\nexport default function useMediaQuery(query: string) {\n    const getMatch = () =>\n        typeof window !== \"undefined\" && \"matchMedia\" in window\n            ? window.matchMedia(query).matches\n            : false;\n\n    const [matches, setMatches] = useState(getMatch);\n\n    useEffect(() => {\n        if (typeof window === \"undefined\" || !(\"matchMedia\" in window)) return;\n\n        const mql = window.matchMedia(query);\n        const update = () => setMatches(mql.matches);\n        update();\n\n        if (typeof mql.addEventListener === \"function\") {\n            mql.addEventListener(\"change\", update);\n            return () => mql.removeEventListener(\"change\", update);\n        }\n\n        const onResize = () => setMatches(window.matchMedia(query).matches);\n        window.addEventListener(\"resize\", onResize);\n        window.addEventListener(\"orientationchange\", onResize);\n        return () => {\n            window.removeEventListener(\"resize\", onResize);\n            window.removeEventListener(\"orientationchange\", onResize);\n        };\n    }, [query]);\n\n    return matches;\n}","import * as React from \"react\";\nimport {components} from \"react-select\";\n\nimport type {ProductOption} from \"../../@types/api\";\nimport {fastSearchConfig} from \"../../config/fastSearch\";\n\ntype FastSearchMenuListProps = {\n    options: ProductOption[];\n    productNumber: number;\n    fastSearchQuery: string;\n    moreResultMsg: string;\n};\n\n/**\n * FastSearchMenuList\n * @param props Props passed from react-select\n * @constructor\n */\nconst FastSearchMenuList = (props: any & FastSearchMenuListProps) => {\n    const {options, productNumber, fastSearchQuery, moreResultMsg, selectProps} = props;\n    const showFooter = options && options.length > 0 && productNumber > fastSearchConfig.MAX_PRODUCT_NUMBER;\n    const isLoading = !!selectProps.isLoading;\n\n    if (isLoading && React.Children.count(props.children) === 0) {\n        return <components.MenuList {...props} />;\n    }\n    return (\n        <div className=\"cpt-fast-search__menu-inner\">\n            <components.MenuList {...props} />\n            {showFooter && (\n                <a\n                    href={`/serp?${fastSearchQuery}`}\n                    className=\"fast-search-see-more\"\n                >\n                    {moreResultMsg?.replace(\"{productNumber}\", productNumber)}\n                </a>\n            )}\n        </div>\n    );\n};\n\nexport default FastSearchMenuList;\n","import * as React from \"react\";\nimport {components} from \"react-select\";\n\nimport type {ProductOption} from \"../../@types/api\";\n\ntype FastSearchOptionProps = {\n    focusedIndex: number;\n};\n\n/**\n * FastSearchOption\n * @param props Props passed from react-select\n * @constructor\n */\nconst FastSearchOption = (props: any & FastSearchOptionProps) => {\n    const {data, selectProps, focusedIndex} = props;\n    const options = selectProps.options as ProductOption[];\n    const index = options.findIndex((opt) => opt.value === data.value);\n    const highlightClass = index === focusedIndex ? \"focused-option\" : \"\";\n\n    return (\n        <components.Option {...props}>\n            <a href={data.url} className={`cpt-fast-search-product-item ${highlightClass}`}>\n                <div className=\"image-wrap\">\n                    <img src={data.productImageUrl} alt=\"\"/>\n                </div>\n                <div className=\"fast-search-product-item-wrap\">\n                    <div className=\"fast-search-product-item-name\">{data.productName}</div>\n                    <div className=\"fast-search-product-item-description\">\n                        <div className=\"fast-search-product-item-destination\">{data.productDestination}</div>\n                        <span className=\"fast-search-ref\">Réf : {data.productRef}</span>\n                    </div>\n                </div>\n            </a>\n        </components.Option>\n    );\n};\n\nexport default FastSearchOption;\n","import * as React from \"react\";\nimport { components } from \"react-select\";\nimport { fastSearchConfig } from \"../../config/fastSearch\";\n\n/**\n * FastSearchLoadingMessage\n *\n * @param props - Props passed by react-select to the LoadingMessage component\n * @returns JSX.Element\n */\nconst FastSearchLoadingMessage = (props: any) => {\n    const inputValue: string = props.selectProps.inputValue || \"\";\n    if (inputValue.length < fastSearchConfig.MIN_START_AT) {\n        return null;\n    }\n    const count = Math.max(1, Math.min(fastSearchConfig.MAX_PRODUCT_NUMBER, 4));\n\n    return (\n        <components.LoadingMessage {...props}>\n            <div className=\"cpt-fast-search__skeleton-list\" aria-hidden=\"true\">\n                {Array.from({ length: count }).map((_, i) => (\n                    <div key={i} className=\"cpt-fast-search-product-item is-skeleton\">\n                        <div className=\"image-wrap skeleton-box\" />\n                        <div className=\"fast-search-product-item-wrap\">\n                            <div className=\"fast-search-product-item-name skeleton-line\" />\n                            <div className=\"fast-search-product-item-name skeleton-line d-lg-none\" />\n                            <div className=\"fast-search-product-item-description\">\n                                <div className=\"fast-search-product-item-destination skeleton-line\" />\n                                <span className=\"fast-search-ref skeleton-line skeleton-line--short\" />\n                            </div>\n                        </div>\n                    </div>\n                ))}\n            </div>\n        </components.LoadingMessage>\n    );\n};\n\nexport default FastSearchLoadingMessage;\n","import * as React from \"react\";\nimport { components } from \"react-select\";\nimport {fastSearchConfig} from \"../../config/fastSearch\";\n\ntype Props = any & {\n    noResultMsg?: string;\n};\n\nconst Index: React.FC<Props> = (props) => {\n    const { selectProps } = props as any;\n    const inputValue: string = selectProps?.inputValue ?? \"\";\n    const isLoading = Boolean(selectProps?.isLoading);\n\n    // Ne rien afficher pendant le chargement, ou si input trop court\n    if (isLoading || inputValue.trim().length < (fastSearchConfig?.MIN_START_AT ?? 1)) {\n        return null;\n    }\n\n    return (\n        <components.NoOptionsMessage {...props}>\n            <div className=\"cpt-fast-search-no-options-message\" role=\"presentation\">\n                <div className=\"fast-search-no-options-message-illustration\" aria-hidden=\"true\">\n                    <svg className=\"fast-search-palm-icon\" width=\"120\" height=\"120\" viewBox=\"0 0 120 120\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                        <path d=\"M81 18C91.6875 18 100.312 24.75 101.812 33.375C101.812 33.5625 101.812 33.75 101.812 33.75C101.812 35.0625 100.875 36.1875 99.5625 36.1875C99.5625 36.1875 99.5625 36.1875 99.5625 36H93L90 30L87 36H67.875C69.9375 45.1875 73.3125 63 71.25 79.5C81 82.6875 88.5 91.3125 89.8125 101.625C90.375 105.188 87.375 108 84 108H24C20.25 108 17.4375 104.812 18 101.062C19.875 88.5 31.875 78.1875 44.625 78.1875H54.75C56.625 70.125 59.4375 55.125 58.6875 40.125L45.375 53.4375C44.25 54.375 42.5625 54.1875 41.8125 53.0625C37.125 46.3125 38.0625 36.5625 44.625 30H39L36 24L33 30H26.25C26.25 30.1875 26.25 30.1875 26.25 30.1875C24.9375 30.1875 24 29.0625 24 27.75C24 27.75 24 27.5625 24 27.375C25.5 18.75 34.3125 12 44.8125 12C54.1875 12 62.0625 17.4375 64.875 24.75C68.625 20.625 74.4375 18 81 18Z\" fill=\"#199BD7\"/>\n                    </svg>\n                    <svg className=\"fast-search-mg-icon\" width=\"50\" height=\"50\" viewBox=\"0 0 50 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                        <path d=\"M44.6875 41.6406C45.0781 42.0312 45.0781 42.6562 44.6875 42.9688L42.8906 44.7656C42.5781 45.1562 41.9531 45.1562 41.5625 44.7656L32.1094 35.3125C31.9531 35.0781 31.875 34.8438 31.875 34.6094V33.5938C28.9844 36.0156 25.3125 37.5 21.25 37.5C12.2656 37.5 5 30.2344 5 21.25C5 12.3438 12.2656 5 21.25 5C30.1562 5 37.5 12.3438 37.5 21.25C37.5 25.3125 35.9375 29.0625 33.5156 31.875H34.5312C34.7656 31.875 35 32.0312 35.2344 32.1875L44.6875 41.6406ZM21.25 33.75C28.125 33.75 33.75 28.2031 33.75 21.25C33.75 14.375 28.125 8.75 21.25 8.75C14.2969 8.75 8.75 14.375 8.75 21.25C8.75 28.2031 14.2969 33.75 21.25 33.75Z\" fill=\"#222222\"/>\n                    </svg>\n                </div>\n                <div className=\"fast-search-no-options-message-text-wrap\">\n                    <div className=\"fast-search-no-options-message-title\">\n                        {props.noResultMsg ?? \"Aucun résultat trouvé\"}\n                    </div>\n                    <div className=\"fast-search-no-options-message-subtitle\">\n                        Vérifiez l’orthographe ou essayez un autre mot-clé\n                    </div>\n                </div>\n            </div>\n        </components.NoOptionsMessage>\n    );\n};\n\nexport default Index;",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]}