{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./config/index.js","webpack:///./fonts/Hind/Hind-Bold.ttf","webpack:///./fonts/Hind/Hind-Light.ttf","webpack:///./fonts/Hind/Hind-Medium.ttf","webpack:///./fonts/Hind/Hind-Regular.ttf","webpack:///./fonts/Hind/Hind-SemiBold.ttf","webpack:///./index.js","webpack:///./js/MainController.js","webpack:///./js/RootController.js","webpack:///./js/account/AccountController.js","webpack:///./js/account/CustomerAccountAppointmentsController.js","webpack:///./js/account/CustomerAccountController.js","webpack:///./js/account/CustomerAccountManageInvoicesController.js","webpack:///./js/account/CustomerAccountMembershipsController.js","webpack:///./js/account/CustomerAccountPackagesController.js","webpack:///./js/account/CustomerAccountTransactionsController.js","webpack:///./js/account/CustomerAccountUpdatePaymentController.js","webpack:///./js/account/EUGDPRController.js","webpack:///./js/account/WaitlistController.js","webpack:///./js/auth/PasswordControllers.js","webpack:///./js/auth/SuperloginController.js","webpack:///./js/auth/eugdpRedirect.js","webpack:///./js/calendarApp.js","webpack:///./js/confirm/ConfirmController.js","webpack:///./js/directives/advertisements/googleBannerAdsBottom.js","webpack:///./js/directives/advertisements/googleBannerAdsTop.js","webpack:///./js/directives/appointmentCountdown.js","webpack:///./js/directives/appointments/appointmentList.js","webpack:///./js/directives/auth/customerLogin.js","webpack:///./js/directives/auth/customerLoginModal.js","webpack:///./js/directives/auth/facebookLogin.js","webpack:///./js/directives/calendarHeader.js","webpack:///./js/directives/customer/customerAccountButton.js","webpack:///./js/directives/customer/customerAccountLinks.js","webpack:///./js/directives/customer/customerPackages.js","webpack:///./js/directives/customer/customerTransactions.js","webpack:///./js/directives/datePicker.js","webpack:///./js/directives/formBuilder.js","webpack:///./js/directives/header-container/headerContainer.js","webpack:///./js/directives/header-container/logoContainer.js","webpack:///./js/directives/home/costModal.js","webpack:///./js/directives/home/costPopover.js","webpack:///./js/directives/home/descriptionModal.js","webpack:///./js/directives/home/descriptionPopover.js","webpack:///./js/directives/numberFormat.js","webpack:///./js/directives/paginationWidget.js","webpack:///./js/directives/payments/membershipModal.js","webpack:///./js/directives/payments/packageInfoPopover.js","webpack:///./js/directives/payments/paymentSummary.js","webpack:///./js/directives/payments/stripeCardPayment.js","webpack:///./js/directives/payments/stripeCreateMembership.js","webpack:///./js/directives/payments/stripePayInvoice.js","webpack:///./js/directives/payments/stripePayInvoiceMethod.js","webpack:///./js/directives/payments/stripeUpdatePaymentMethod.js","webpack:///./js/directives/selectedSlotsDisplay.js","webpack:///./js/directives/service-calendar/CalendarService.js","webpack:///./js/directives/service-calendar/availabilityCalendar.js","webpack:///./js/directives/settings/tsandcs.js","webpack:///./js/directives/shiftsandtimeslots/chooseTimeslotContainer.js","webpack:///./js/directives/shiftsandtimeslots/chooseTimeslotModal.js","webpack:///./js/directives/shiftsandtimeslots/dayContainer.js","webpack:///./js/directives/shiftsandtimeslots/waitlistModal.js","webpack:///./js/directives/shiftsandtimeslots/yogaShiftContainer.js","webpack:///./js/directives/throbber.js","webpack:///./js/directives/tooltip.js","webpack:///./js/filters/SmoothDateFilter.js","webpack:///./js/filters/SmoothDateTimeFilter.js","webpack:///./js/filters/SmoothTimeFilter.js","webpack:///./js/filters/calendarLabel.js","webpack:///./js/home/HomeController.js","webpack:///./js/home/footerVersion.js","webpack:///./js/payment/ChoosePaymentController.js","webpack:///./js/payment/PaymentController.js","webpack:///./js/review/BookingFormController.js","webpack:///./js/review/ConfirmRegoController.js","webpack:///./js/review/OverbookedController.js","webpack:///./js/review/PreviewController.js","webpack:///./js/review/ReviewController.js","webpack:///./js/service-availability/ServiceAvailabilityController.js","webpack:///./js/service-calendar/ServiceCalendarController.js","webpack:///./js/services/DaysToCountService.js","webpack:///./js/services/FixedHeadingService.js","webpack:///./js/services/PaymentOptionService.js","webpack:///./js/services/ShiftService.js","webpack:///./js/services/SingleSlotService.js","webpack:///./js/services/TimeslotService.js","webpack:///./js/timeslots/ChooseSlotsController.js","webpack:///./js/timeslots/FutureSlotsController.js","webpack:///./js/timeslots/FutureSlotsControllerOld.js","webpack:///./less/style.less?a9a9","webpack:///./less/style.less","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAiB,4BAA4B;AAC7C;AACA;AACA,0BAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA,cAAM;AACN;AACA;AACA,cAAM;AACN;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAA6B;AAC7B,qCAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAAqB,gBAAgB;AACrC;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,6BAAqB,gBAAgB;AACrC;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAAkB,8BAA8B;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAAmB,cAAc;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAgB,KAAK;AACrB;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA,wBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAe,4BAA4B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAiB,sBAAsB;AACvC;AACA;AACA;AACA,gBAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,kBAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA,gBAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,8CAAsC,uBAAuB;;AAE7D;AACA;AACA;AACA;AACA,wBAAgB,uBAAuB;AACvC;;;AAGA;AACA;AACA;AACA;;;;;;;;;;;;ACz1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,sB;;;;;;;;;;;ACj2EA,iBAAiB,qBAAuB,yB;;;;;;;;;;;ACAxC,iBAAiB,qBAAuB,0B;;;;;;;;;;;ACAxC,iBAAiB,qBAAuB,2B;;;;;;;;;;;ACAxC,iBAAiB,qBAAuB,4B;;;;;;;;;;;ACAxC,iBAAiB,qBAAuB,6B;;;;;;;;;;;;ACAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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AEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACtCD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA,OAAO;AACP;;;AAGA;;AAEA,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,oCAAoC;AACpC,SAAS;AACT;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC,I;;;;;;;;;;;;ACzID;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;;AAEA,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,oCAAoC;AACpC,SAAS;AACT;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC,I;;;;;;;;;;;;AClJD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,C;;;;;;;;;;;ACpDA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA,C;;;;;;;;;;;ACrDA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACpDA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA,OAAO;AACP;;;AAGA;;AAEA,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,oCAAoC;AACpC,SAAS;AACT;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC,I;;;;;;;;;;;;AC7HD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA,OAAO;AACP;;;AAGA;;AAEA,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,oCAAoC;AACpC,SAAS;AACT;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC,I;;;;;;;;;;;;AC7HD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACTA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2FAA2F;;AAE3F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;AC/DD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA,C;;;;;;;;;;;ACjDA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB,yCAAyC;;AAEzC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,SAAS;;;AAGT;AACA,OAAO;AACP;AACA;AACA,CAAC,I;;;;;;;;;;;AC5ED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,CAAC,I;;;;;;;;;;;;AC1BD;AAAA;AAAA;AAAA;AAC4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AACM;AACC;AACG;AACJ;AACI;AACE;AAClB;AACa;;AAErC,iBAAiB,mBAAO,CAAC,6CAAoB;;AAE7C,qCAAqC,YAAW;AAChD;AACA;AACA;AACA,gBAAgB,sDAAM;AACtB,kBAAkB,8CAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG,EAAE,sCAAsC;;AAE3C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;;AAEA;AACA,uDAAuD;;AAEvD,mDAAmD;;AAEnD,YAAY,sDAAM,4BAA4B,sDAAM;AACpD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;AAEP;AACA;AACA,0DAA0D;AAC1D;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,GAAG;AACH,CAAC;AACc,0EAAW,E;;;;;;;;;;;;;ACjQ1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AAC/C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACjDA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;AC5EA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;AC5EA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACxED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC1CD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,eAAe;AAClC,mBAAmB;AACnB,iBAAiB;AACjB;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA,aAAa;AACb,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;;AAGjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,eAAe;AAChC,iBAAiB;AACjB,eAAe;AACf;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP,KAAK;AACL;AACA,CAAC,I;;;;;;;;;;;;AC9MD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACzBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf,aAAa,iDAAiD;AAC9D,aAAa,OAAO;AACpB;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC5CD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;;AC7DD;AAAA;AAAA;AAAA;AAC+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AAC+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACnBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACrBD;;AAEA,mBAAO,CAAC,6KAA4E;;AAEpF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,QAAQ;;;AAGR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,gCAAgC;AACvD;AACA;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;;ACzEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AChBD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACVA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,OAAO,sBAAsB,YAAY,oDAAoD,SAAS;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,EAAE,iB;;;;;;;;;;;;AChDH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,GAAG,GAAG;AACN,CAAC,I;;;;;;;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,EAAE,iB;;;;;;;;;;;;;ACzBH;AAAA;AAAA;AAAA;AAAA;AAAiC;AACA;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC,EAAE,iB;;;;;;;;;;;;ACvEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC1DD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,YAAY;AACrC;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC3CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,CAAC,EAAE,iB;;;;;;;;;;;;ACjDH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG,GAAG;AACN,CAAC,I;;;;;;;;;;;;AC1CD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC9JD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yDAAyD;AACzD;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP,qCAAqC,qDAAqD;;AAE1F,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;;;AAGX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;;;AAGX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;;;AAGX;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACxNA;AACA,iGAAiG;AACjG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;;AAGX;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;ACnKA;AACA,4HAA4H;AAC5H;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;;;AAGX;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;AC/NA;AACA,4HAA4H;AAC5H;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;ACnLA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACpBD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,yBAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA,QAAQ;;AAER;AACA;;AAEA,wDAAwD;;;AAGxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;;AAET;AACA;;AAEA,iEAAiE,oCAAoC;AACrG;AACA,OAAO;;;AAGP;AACA;;AAEA;;AAEA,qBAAqB,OAAO;AAC5B;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;;AAGA,0CAA0C;;AAE1C,kFAAkF;;AAElF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mDAAmD,qBAAqB;AACxE;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;AC5ID;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA,WAAW;AACX;AACA,WAAW;AACX,UAAU;;;AAGV,eAAe;;AAEf;AACA,2HAA2H;AAC3H;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACnGD;AACA;;AAEA;AACA;AACA;;AAEA,4CAA4C,UAAU;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,C;;;;;;;;;;;AC3BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;AC1CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,+BAA+B;;AAE/B;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA,UAAU;;;AAGV,sCAAsC;AACtC;AACA;AACA;AACA,GAAG;AACH,CAAC,I;;;;;;;;;;;;AC5BD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA,OAAO;AACP;AACA;AACA,C;;;;;;;;;;;;ACtBA;;AAEA,aAAa,mBAAO,CAAC,gEAAiB;;AAEtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;;ACzDA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,kCAAkC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,C;;;;;;;;;;;AC1EA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACtDD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC,EAAE,iB;;;;;;;;;;;;ACfH;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACfD;AACA,uFAAuF;AACvF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;AChBD;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACbA;;AAEA,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;;AAEvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;;AAEnY;;AAEA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;;AAEpF;AACA;AACA;AACA,qDAAqD;AACrD;;AAEA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;;;AAGb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,GAAG;;AAEN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;;AAGA;AACA,yDAAyD;;AAEzD;;AAEA;AACA;AACA,uDAAuD;;AAEvD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,C;;;;;;;;;;;;AC3SA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,sBAAsB,OAAmB;AACzC;AACA;AACA,C;;;;;;;;;;;ACXA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;;AAEzE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qDAAqD;;AAErD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;AC1LA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wDAAwD;;AAExD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACtED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;;AAEvE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+FAA+F;;AAE/F;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;;AAGP,qBAAqB,8BAA8B;AACnD;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACnID;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uEAAuE;;AAEvE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,EAAE;;AAEX;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA,WAAW;;;AAGX;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACzID;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC3CD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP,iCAAiC;;AAEjC;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AClJD;AACA;;AAEA,eAAe,mBAAO,CAAC,gEAAiB;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP,iCAAiC;;AAEjC;AACA;AACA,OAAO;AACP;AACA,kCAAkC;;AAElC;AACA;AACA,kEAAkE;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA,SAAS;;;AAGT;AACA,4FAA4F;;AAE5F;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA,8QAA8Q;;AAE9Q;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,uBAAuB,kDAAkD;AACzE,yBAAyB,+DAA+D;AACxF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AC3KD,4EAA4E,MAAM,0BAA0B,wBAAwB,EAAE,gBAAgB,eAAe,QAAQ,EAAE,iBAAiB,gBAAgB,EAAE,OAAO,4CAA4C,EAAE;;AAEvQ,gCAAgC,qBAAqB,mCAAmC,gDAAgD,gCAAgC,wBAAwB,wEAAwE,EAAE,uBAAuB,uEAAuE,EAAE,kBAAkB,EAAE,EAAE,GAAG;;AAEnY;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;;AAEf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,GAAG;;AAER;;AAEA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACrGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;AChBD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;ACpBD,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,mCAAmC,0DAA0D,sFAAsF,gEAAgE,EAAE,GAAG,EAAE,iCAAiC,2CAA2C,EAAE,EAAE,EAAE,eAAe;;AAE/d,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA,2EAA2E;AAC3E;AACA;;AAEA,qBAAqB,6BAA6B;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,kDAAkD;AACvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL,wCAAwC;AACxC,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA,gEAAgE;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;;AAE3E;AACA,0DAA0D;;AAE1D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,qBAAqB,kDAAkD;AACvE;AACA;AACA;AACA;AACA;;AAEA,wEAAwE;;AAExE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA,uFAAuF;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,EAAE;;AAEP;AACA;AACA;;AAEA,sC;;;;;;;;;;;AC3VA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACrDD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA,6FAA6F;;AAE7F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;ACzED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP,qBAAqB,qBAAqB;AAC1C,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sDAAsD;AACtD,0DAA0D;AAC1D;AACA,8CAA8C;;AAE9C;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,CAAC,I;;;;;;;;;;;;AC5ED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D,KAAK;AACL;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL,+BAA+B;;AAE/B;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;;AAGP;AACA;AACA,gEAAgE;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP;AACA,0FAA0F;;AAE1F;AACA,uGAAuG;;AAEvG;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;;ACpKA;;AAEA,kCAAkC,iFAAiF;;AAEnH,+BAA+B,wEAAwE;;AAEvG,iCAAiC,+HAA+H;;AAEhK,kCAAkC,0BAA0B,8CAA8C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE;;AAEpK,gCAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,mCAAmC,0DAA0D,sFAAsF,gEAAgE,EAAE,GAAG,EAAE,iCAAiC,2CAA2C,EAAE,EAAE,EAAE,eAAe;;AAE/d,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;;AAE3B,mBAAmB,6CAA6C;AAChE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,8DAA8D;;AAE9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gEAAgE;AAChE;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA,+BAA+B;AAC/B;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uKAAuK;;AAEvK;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,C;;;;;;;;;;;;ACzMA,iFAAgC,gBAAgB,sBAAsB,OAAO,uDAAuD,mCAAmC,0DAA0D,sFAAsF,gEAAgE,EAAE,GAAG,EAAE,iCAAiC,2CAA2C,EAAE,EAAE,EAAE,eAAe;;AAE/d,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B;;AAE7B,qBAAqB,6CAA6C;AAClE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,kDAAkD;;AAElD;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA,oEAAoE;AACpE;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA,iCAAiC;AACjC;AACA,SAAS;AACT;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;;AAEA,2BAA2B,4BAA4B;AACvD;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AA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gC,wBAAwB,mBAAmB,GAAG,yCAAyC,mBAAmB,sBAAsB,GAAG,qBAAqB,cAAc,mBAAmB,GAAG,iDAAiD,sBAAsB,wBAAwB,GAAG,0BAA0B,wBAAwB,GAAG,2FAA2F,oBAAoB,GAAG,gHAAgH,kBAAkB,mBAAmB,mBAAmB,kCAAkC,+BAA+B,GAAG,4PAA4P,sBAAsB,sBAAsB,GAAG,8HAA8H,YAAY,sBAAsB,GAAG,yFAAyF,kBAAkB,kCAAkC,GAAG,oHAAoH,oBAAoB,GAAG,+HAA+H,oBAAoB,GAAG,yFAAyF,sBAAsB,GAAG,2GAA2G,uBAAuB,kBAAkB,GAAG,gHAAgH,mBAAmB,GAAG,wBAAwB,iBAAiB,qCAAqC,GAAG,gDAAgD,uBAAuB,GAAG,oCAAoC,gCAAgC,GAAG,yCAAyC,qCAAqC,GAAG,4CAA4C,qBAAqB,kCAAkC,GAAG,6BAA6B,6CAA6C,kBAAkB,mBAAmB,KAAK,gDAAgD,kBAAkB,oBAAoB,KAAK,GAAG,6BAA6B,4FAA4F,uBAAuB,uBAAuB,kBAAkB,oBAAoB,mBAAmB,KAAK,GAAG,QAAQ,uBAAuB,GAAG;;AAEn09L;;;;;;;;;;;;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E","file":"main.43c4693910978f78301c.user-bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n \tfunction hotDisposeChunk(chunkId) {\n \t\tdelete installedChunks[chunkId];\n \t}\n \tvar parentHotUpdateCallback = window[\"webpackHotUpdate\"];\n \twindow[\"webpackHotUpdate\"] = // eslint-disable-next-line no-unused-vars\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) {\n \t\thotAddUpdateChunk(chunkId, moreModules);\n \t\tif (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\n \t} ;\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadUpdateChunk(chunkId) {\n \t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\tvar script = document.createElement(\"script\");\n \t\tscript.charset = \"utf-8\";\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + hotCurrentHash + \".hot-update.js\";\n \t\tif (null) script.crossOrigin = null;\n \t\thead.appendChild(script);\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadManifest(requestTimeout) {\n \t\trequestTimeout = requestTimeout || 10000;\n \t\treturn new Promise(function(resolve, reject) {\n \t\t\tif (typeof XMLHttpRequest === \"undefined\") {\n \t\t\t\treturn reject(new Error(\"No browser support\"));\n \t\t\t}\n \t\t\ttry {\n \t\t\t\tvar request = new XMLHttpRequest();\n \t\t\t\tvar requestPath = __webpack_require__.p + \"\" + hotCurrentHash + \".hot-update.json\";\n \t\t\t\trequest.open(\"GET\", requestPath, true);\n \t\t\t\trequest.timeout = requestTimeout;\n \t\t\t\trequest.send(null);\n \t\t\t} catch (err) {\n \t\t\t\treturn reject(err);\n \t\t\t}\n \t\t\trequest.onreadystatechange = function() {\n \t\t\t\tif (request.readyState !== 4) return;\n \t\t\t\tif (request.status === 0) {\n \t\t\t\t\t// timeout\n \t\t\t\t\treject(\n \t\t\t\t\t\tnew Error(\"Manifest request to \" + requestPath + \" timed out.\")\n \t\t\t\t\t);\n \t\t\t\t} else if (request.status === 404) {\n \t\t\t\t\t// no update available\n \t\t\t\t\tresolve();\n \t\t\t\t} else if (request.status !== 200 && request.status !== 304) {\n \t\t\t\t\t// other failure\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\n \t\t\t\t} else {\n \t\t\t\t\t// success\n \t\t\t\t\ttry {\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\n \t\t\t\t\t} catch (e) {\n \t\t\t\t\t\treject(e);\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n \t\t\t\t\tresolve(update);\n \t\t\t\t}\n \t\t\t};\n \t\t});\n \t}\n\n \tvar hotApplyOnUpdate = true;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentHash = \"43c4693910978f78301c\";\n \tvar hotRequestTimeout = 10000;\n \tvar hotCurrentModuleData = {};\n \tvar hotCurrentChildModule;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParents = [];\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParentsTemp = [];\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateRequire(moduleId) {\n \t\tvar me = installedModules[moduleId];\n \t\tif (!me) return __webpack_require__;\n \t\tvar fn = function(request) {\n \t\t\tif (me.hot.active) {\n \t\t\t\tif (installedModules[request]) {\n \t\t\t\t\tif (installedModules[request].parents.indexOf(moduleId) === -1) {\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\thotCurrentParents = [moduleId];\n \t\t\t\t\thotCurrentChildModule = request;\n \t\t\t\t}\n \t\t\t\tif (me.children.indexOf(request) === -1) {\n \t\t\t\t\tme.children.push(request);\n \t\t\t\t}\n \t\t\t} else {\n \t\t\t\tconsole.warn(\n \t\t\t\t\t\"[HMR] unexpected require(\" +\n \t\t\t\t\t\trequest +\n \t\t\t\t\t\t\") from disposed module \" +\n \t\t\t\t\t\tmoduleId\n \t\t\t\t);\n \t\t\t\thotCurrentParents = [];\n \t\t\t}\n \t\t\treturn __webpack_require__(request);\n \t\t};\n \t\tvar ObjectFactory = function ObjectFactory(name) {\n \t\t\treturn {\n \t\t\t\tconfigurable: true,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: function() {\n \t\t\t\t\treturn __webpack_require__[name];\n \t\t\t\t},\n \t\t\t\tset: function(value) {\n \t\t\t\t\t__webpack_require__[name] = value;\n \t\t\t\t}\n \t\t\t};\n \t\t};\n \t\tfor (var name in __webpack_require__) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(__webpack_require__, name) &&\n \t\t\t\tname !== \"e\" &&\n \t\t\t\tname !== \"t\"\n \t\t\t) {\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\n \t\t\t}\n \t\t}\n \t\tfn.e = function(chunkId) {\n \t\t\tif (hotStatus === \"ready\") hotSetStatus(\"prepare\");\n \t\t\thotChunksLoading++;\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\n \t\t\t\tfinishChunkLoading();\n \t\t\t\tthrow err;\n \t\t\t});\n\n \t\t\tfunction finishChunkLoading() {\n \t\t\t\thotChunksLoading--;\n \t\t\t\tif (hotStatus === \"prepare\") {\n \t\t\t\t\tif (!hotWaitingFilesMap[chunkId]) {\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t\t\t}\n \t\t\t\t\tif (hotChunksLoading === 0 && hotWaitingFiles === 0) {\n \t\t\t\t\t\thotUpdateDownloaded();\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t};\n \t\tfn.t = function(value, mode) {\n \t\t\tif (mode & 1) value = fn(value);\n \t\t\treturn __webpack_require__.t(value, mode & ~1);\n \t\t};\n \t\treturn fn;\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateModule(moduleId) {\n \t\tvar hot = {\n \t\t\t// private stuff\n \t\t\t_acceptedDependencies: {},\n \t\t\t_declinedDependencies: {},\n \t\t\t_selfAccepted: false,\n \t\t\t_selfDeclined: false,\n \t\t\t_disposeHandlers: [],\n \t\t\t_main: hotCurrentChildModule !== moduleId,\n\n \t\t\t// Module API\n \t\t\tactive: true,\n \t\t\taccept: function(dep, callback) {\n \t\t\t\tif (dep === undefined) hot._selfAccepted = true;\n \t\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\n \t\t\t\telse hot._acceptedDependencies[dep] = callback || function() {};\n \t\t\t},\n \t\t\tdecline: function(dep) {\n \t\t\t\tif (dep === undefined) hot._selfDeclined = true;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n \t\t\t\telse hot._declinedDependencies[dep] = true;\n \t\t\t},\n \t\t\tdispose: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\taddDisposeHandler: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\tremoveDisposeHandler: function(callback) {\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n \t\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t// Management API\n \t\t\tcheck: hotCheck,\n \t\t\tapply: hotApply,\n \t\t\tstatus: function(l) {\n \t\t\t\tif (!l) return hotStatus;\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\taddStatusHandler: function(l) {\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\tremoveStatusHandler: function(l) {\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\n \t\t\t\tif (idx >= 0) hotStatusHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t//inherit from previous dispose call\n \t\t\tdata: hotCurrentModuleData[moduleId]\n \t\t};\n \t\thotCurrentChildModule = undefined;\n \t\treturn hot;\n \t}\n\n \tvar hotStatusHandlers = [];\n \tvar hotStatus = \"idle\";\n\n \tfunction hotSetStatus(newStatus) {\n \t\thotStatus = newStatus;\n \t\tfor (var i = 0; i < hotStatusHandlers.length; i++)\n \t\t\thotStatusHandlers[i].call(null, newStatus);\n \t}\n\n \t// while downloading\n \tvar hotWaitingFiles = 0;\n \tvar hotChunksLoading = 0;\n \tvar hotWaitingFilesMap = {};\n \tvar hotRequestedFilesMap = {};\n \tvar hotAvailableFilesMap = {};\n \tvar hotDeferred;\n\n \t// The update info\n \tvar hotUpdate, hotUpdateNewHash;\n\n \tfunction toModuleId(id) {\n \t\tvar isNumber = +id + \"\" === id;\n \t\treturn isNumber ? +id : id;\n \t}\n\n \tfunction hotCheck(apply) {\n \t\tif (hotStatus !== \"idle\") {\n \t\t\tthrow new Error(\"check() is only allowed in idle status\");\n \t\t}\n \t\thotApplyOnUpdate = apply;\n \t\thotSetStatus(\"check\");\n \t\treturn hotDownloadManifest(hotRequestTimeout).then(function(update) {\n \t\t\tif (!update) {\n \t\t\t\thotSetStatus(\"idle\");\n \t\t\t\treturn null;\n \t\t\t}\n \t\t\thotRequestedFilesMap = {};\n \t\t\thotWaitingFilesMap = {};\n \t\t\thotAvailableFilesMap = update.c;\n \t\t\thotUpdateNewHash = update.h;\n\n \t\t\thotSetStatus(\"prepare\");\n \t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\thotDeferred = {\n \t\t\t\t\tresolve: resolve,\n \t\t\t\t\treject: reject\n \t\t\t\t};\n \t\t\t});\n \t\t\thotUpdate = {};\n \t\t\tfor(var chunkId in installedChunks)\n \t\t\t// eslint-disable-next-line no-lone-blocks\n \t\t\t{\n \t\t\t\t/*globals chunkId */\n \t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t}\n \t\t\tif (\n \t\t\t\thotStatus === \"prepare\" &&\n \t\t\t\thotChunksLoading === 0 &&\n \t\t\t\thotWaitingFiles === 0\n \t\t\t) {\n \t\t\t\thotUpdateDownloaded();\n \t\t\t}\n \t\t\treturn promise;\n \t\t});\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotAddUpdateChunk(chunkId, moreModules) {\n \t\tif (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\n \t\t\treturn;\n \t\thotRequestedFilesMap[chunkId] = false;\n \t\tfor (var moduleId in moreModules) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif (--hotWaitingFiles === 0 && hotChunksLoading === 0) {\n \t\t\thotUpdateDownloaded();\n \t\t}\n \t}\n\n \tfunction hotEnsureUpdateChunk(chunkId) {\n \t\tif (!hotAvailableFilesMap[chunkId]) {\n \t\t\thotWaitingFilesMap[chunkId] = true;\n \t\t} else {\n \t\t\thotRequestedFilesMap[chunkId] = true;\n \t\t\thotWaitingFiles++;\n \t\t\thotDownloadUpdateChunk(chunkId);\n \t\t}\n \t}\n\n \tfunction hotUpdateDownloaded() {\n \t\thotSetStatus(\"ready\");\n \t\tvar deferred = hotDeferred;\n \t\thotDeferred = null;\n \t\tif (!deferred) return;\n \t\tif (hotApplyOnUpdate) {\n \t\t\t// Wrap deferred object in Promise to mark it as a well-handled Promise to\n \t\t\t// avoid triggering uncaught exception warning in Chrome.\n \t\t\t// See https://bugs.chromium.org/p/chromium/issues/detail?id=465666\n \t\t\tPromise.resolve()\n \t\t\t\t.then(function() {\n \t\t\t\t\treturn hotApply(hotApplyOnUpdate);\n \t\t\t\t})\n \t\t\t\t.then(\n \t\t\t\t\tfunction(result) {\n \t\t\t\t\t\tdeferred.resolve(result);\n \t\t\t\t\t},\n \t\t\t\t\tfunction(err) {\n \t\t\t\t\t\tdeferred.reject(err);\n \t\t\t\t\t}\n \t\t\t\t);\n \t\t} else {\n \t\t\tvar outdatedModules = [];\n \t\t\tfor (var id in hotUpdate) {\n \t\t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\n \t\t\t\t}\n \t\t\t}\n \t\t\tdeferred.resolve(outdatedModules);\n \t\t}\n \t}\n\n \tfunction hotApply(options) {\n \t\tif (hotStatus !== \"ready\")\n \t\t\tthrow new Error(\"apply() is only allowed in ready status\");\n \t\toptions = options || {};\n\n \t\tvar cb;\n \t\tvar i;\n \t\tvar j;\n \t\tvar module;\n \t\tvar moduleId;\n\n \t\tfunction getAffectedStuff(updateModuleId) {\n \t\t\tvar outdatedModules = [updateModuleId];\n \t\t\tvar outdatedDependencies = {};\n\n \t\t\tvar queue = outdatedModules.slice().map(function(id) {\n \t\t\t\treturn {\n \t\t\t\t\tchain: [id],\n \t\t\t\t\tid: id\n \t\t\t\t};\n \t\t\t});\n \t\t\twhile (queue.length > 0) {\n \t\t\t\tvar queueItem = queue.pop();\n \t\t\t\tvar moduleId = queueItem.id;\n \t\t\t\tvar chain = queueItem.chain;\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (!module || module.hot._selfAccepted) continue;\n \t\t\t\tif (module.hot._selfDeclined) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"self-declined\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tif (module.hot._main) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"unaccepted\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n \t\t\t\t\tvar parentId = module.parents[i];\n \t\t\t\t\tvar parent = installedModules[parentId];\n \t\t\t\t\tif (!parent) continue;\n \t\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n \t\t\t\t\t\treturn {\n \t\t\t\t\t\t\ttype: \"declined\",\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\tparentId: parentId\n \t\t\t\t\t\t};\n \t\t\t\t\t}\n \t\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n \t\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n \t\t\t\t\t\tif (!outdatedDependencies[parentId])\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\t}\n \t\t\t\t\tdelete outdatedDependencies[parentId];\n \t\t\t\t\toutdatedModules.push(parentId);\n \t\t\t\t\tqueue.push({\n \t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\tid: parentId\n \t\t\t\t\t});\n \t\t\t\t}\n \t\t\t}\n\n \t\t\treturn {\n \t\t\t\ttype: \"accepted\",\n \t\t\t\tmoduleId: updateModuleId,\n \t\t\t\toutdatedModules: outdatedModules,\n \t\t\t\toutdatedDependencies: outdatedDependencies\n \t\t\t};\n \t\t}\n\n \t\tfunction addAllToSet(a, b) {\n \t\t\tfor (var i = 0; i < b.length; i++) {\n \t\t\t\tvar item = b[i];\n \t\t\t\tif (a.indexOf(item) === -1) a.push(item);\n \t\t\t}\n \t\t}\n\n \t\t// at begin all updates modules are outdated\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\n \t\tvar outdatedDependencies = {};\n \t\tvar outdatedModules = [];\n \t\tvar appliedUpdate = {};\n\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\n \t\t\tconsole.warn(\n \t\t\t\t\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\"\n \t\t\t);\n \t\t};\n\n \t\tfor (var id in hotUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\tmoduleId = toModuleId(id);\n \t\t\t\t/** @type {TODO} */\n \t\t\t\tvar result;\n \t\t\t\tif (hotUpdate[id]) {\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\n \t\t\t\t} else {\n \t\t\t\t\tresult = {\n \t\t\t\t\t\ttype: \"disposed\",\n \t\t\t\t\t\tmoduleId: id\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\t/** @type {Error|false} */\n \t\t\t\tvar abortError = false;\n \t\t\t\tvar doApply = false;\n \t\t\t\tvar doDispose = false;\n \t\t\t\tvar chainInfo = \"\";\n \t\t\t\tif (result.chain) {\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n \t\t\t\t}\n \t\t\t\tswitch (result.type) {\n \t\t\t\t\tcase \"self-declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\t\" in \" +\n \t\t\t\t\t\t\t\t\tresult.parentId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"unaccepted\":\n \t\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n \t\t\t\t\t\tif (!options.ignoreUnaccepted)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"accepted\":\n \t\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n \t\t\t\t\t\tdoApply = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"disposed\":\n \t\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n \t\t\t\t\t\tdoDispose = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n \t\t\t\t}\n \t\t\t\tif (abortError) {\n \t\t\t\t\thotSetStatus(\"abort\");\n \t\t\t\t\treturn Promise.reject(abortError);\n \t\t\t\t}\n \t\t\t\tif (doApply) {\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n \t\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n \t\t\t\t\t\tif (\n \t\t\t\t\t\t\tObject.prototype.hasOwnProperty.call(\n \t\t\t\t\t\t\t\tresult.outdatedDependencies,\n \t\t\t\t\t\t\t\tmoduleId\n \t\t\t\t\t\t\t)\n \t\t\t\t\t\t) {\n \t\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n \t\t\t\t\t\t\taddAllToSet(\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n \t\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t\tif (doDispose) {\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Store self accepted outdated modules to require them later by the module system\n \t\tvar outdatedSelfAcceptedModules = [];\n \t\tfor (i = 0; i < outdatedModules.length; i++) {\n \t\t\tmoduleId = outdatedModules[i];\n \t\t\tif (\n \t\t\t\tinstalledModules[moduleId] &&\n \t\t\t\tinstalledModules[moduleId].hot._selfAccepted\n \t\t\t)\n \t\t\t\toutdatedSelfAcceptedModules.push({\n \t\t\t\t\tmodule: moduleId,\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\n \t\t\t\t});\n \t\t}\n\n \t\t// Now in \"dispose\" phase\n \t\thotSetStatus(\"dispose\");\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\n \t\t\tif (hotAvailableFilesMap[chunkId] === false) {\n \t\t\t\thotDisposeChunk(chunkId);\n \t\t\t}\n \t\t});\n\n \t\tvar idx;\n \t\tvar queue = outdatedModules.slice();\n \t\twhile (queue.length > 0) {\n \t\t\tmoduleId = queue.pop();\n \t\t\tmodule = installedModules[moduleId];\n \t\t\tif (!module) continue;\n\n \t\t\tvar data = {};\n\n \t\t\t// Call dispose handlers\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n \t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n \t\t\t\tcb = disposeHandlers[j];\n \t\t\t\tcb(data);\n \t\t\t}\n \t\t\thotCurrentModuleData[moduleId] = data;\n\n \t\t\t// disable module (this disables requires from this module)\n \t\t\tmodule.hot.active = false;\n\n \t\t\t// remove module from cache\n \t\t\tdelete installedModules[moduleId];\n\n \t\t\t// when disposing there is no need to call dispose handler\n \t\t\tdelete outdatedDependencies[moduleId];\n\n \t\t\t// remove \"parents\" references from all children\n \t\t\tfor (j = 0; j < module.children.length; j++) {\n \t\t\t\tvar child = installedModules[module.children[j]];\n \t\t\t\tif (!child) continue;\n \t\t\t\tidx = child.parents.indexOf(moduleId);\n \t\t\t\tif (idx >= 0) {\n \t\t\t\t\tchild.parents.splice(idx, 1);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// remove outdated dependency from module children\n \t\tvar dependency;\n \t\tvar moduleOutdatedDependencies;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\n \t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Not in \"apply\" phase\n \t\thotSetStatus(\"apply\");\n\n \t\thotCurrentHash = hotUpdateNewHash;\n\n \t\t// insert new code\n \t\tfor (moduleId in appliedUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\n \t\t\t}\n \t\t}\n\n \t\t// call accept handlers\n \t\tvar error = null;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tvar callbacks = [];\n \t\t\t\t\tfor (i = 0; i < moduleOutdatedDependencies.length; i++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[i];\n \t\t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\n \t\t\t\t\t\tif (cb) {\n \t\t\t\t\t\t\tif (callbacks.indexOf(cb) !== -1) continue;\n \t\t\t\t\t\t\tcallbacks.push(cb);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t\tfor (i = 0; i < callbacks.length; i++) {\n \t\t\t\t\t\tcb = callbacks[i];\n \t\t\t\t\t\ttry {\n \t\t\t\t\t\t\tcb(moduleOutdatedDependencies);\n \t\t\t\t\t\t} catch (err) {\n \t\t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n \t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\n \t\t\t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t\t\t});\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Load self accepted modules\n \t\tfor (i = 0; i < outdatedSelfAcceptedModules.length; i++) {\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\n \t\t\tmoduleId = item.module;\n \t\t\thotCurrentParents = [moduleId];\n \t\t\ttry {\n \t\t\t\t__webpack_require__(moduleId);\n \t\t\t} catch (err) {\n \t\t\t\tif (typeof item.errorHandler === \"function\") {\n \t\t\t\t\ttry {\n \t\t\t\t\t\titem.errorHandler(err);\n \t\t\t\t\t} catch (err2) {\n \t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\terror: err2,\n \t\t\t\t\t\t\t\toriginalError: err\n \t\t\t\t\t\t\t});\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\tif (!error) error = err2;\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t});\n \t\t\t\t\t}\n \t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// handle errors in accept handlers and self accepted module load\n \t\tif (error) {\n \t\t\thotSetStatus(\"fail\");\n \t\t\treturn Promise.reject(error);\n \t\t}\n\n \t\thotSetStatus(\"idle\");\n \t\treturn new Promise(function(resolve) {\n \t\t\tresolve(outdatedModules);\n \t\t});\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"main\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"vendors~main\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var environments = {\n development: {\n env: 'dev',\n base_url: 'http://localhost:3000',\n api_url: 'http://localhost:3000',\n calendar_url: 'http://localhost:9000',\n port: 9000\n },\n dev_staging: {\n // Development environment, use staging api\n env: 'test',\n base_url: 'http://localhost:3000',\n api_url: 'https://apitest.smoothbook.co',\n calendar_url: 'http://localhost:9000',\n port: 3000\n },\n staging: {\n env: 'staging',\n base_url: 'https://test.smoothbook.co',\n api_url: 'https://apitest.smoothbook.co',\n calendar_url: 'https://caltest.smoothbook.co',\n port: 3000\n },\n production: {\n env: 'production',\n base_url: 'https://app.smoothbook.co',\n api_url: 'https://api.smoothbook.co',\n calendar_url: 'https://cal.smoothbook.co'\n }\n};\nvar conf = {};\nconf.environments = environments;\nconf.timezones = [{\n \"name\": \"Africa/Abidjan\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Accra\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Addis_Ababa\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Algiers\",\n \"abbreviation\": \"+01:00 CET\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Asmara\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Asmera\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Bamako\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Bangui\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Banjul\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Bissau\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Blantyre\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Brazzaville\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Bujumbura\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Cairo\",\n \"abbreviation\": \"+02:00 EET\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Casablanca\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Ceuta\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Conakry\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Dakar\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Dar_es_Salaam\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Djibouti\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Douala\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/El_Aaiun\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Freetown\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Gaborone\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Harare\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Johannesburg\",\n \"abbreviation\": \"+02:00 SAST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Juba\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Kampala\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Khartoum\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Kigali\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Kinshasa\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Lagos\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Libreville\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Lome\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Luanda\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Lubumbashi\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Lusaka\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Malabo\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Maputo\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Maseru\",\n \"abbreviation\": \"+02:00 SAST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Mbabane\",\n \"abbreviation\": \"+02:00 SAST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Mogadishu\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Monrovia\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Nairobi\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Africa/Ndjamena\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Niamey\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Nouakchott\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Ouagadougou\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Porto-Novo\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Sao_Tome\",\n \"abbreviation\": \"+01:00 WAT\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Timbuktu\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Africa/Tripoli\",\n \"abbreviation\": \"+02:00 EET\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Africa/Tunis\",\n \"abbreviation\": \"+01:00 CET\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Africa/Windhoek\",\n \"abbreviation\": \"+02:00 CAT\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"America/Adak\",\n \"abbreviation\": \"-09:00 HDT\",\n \"current_time\": \"06:26\"\n}, {\n \"name\": \"America/Anchorage\",\n \"abbreviation\": \"-08:00 AKDT\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"America/Anguilla\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Antigua\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Araguaina\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Buenos_Aires\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Catamarca\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/ComodRivadavia\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Cordoba\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Jujuy\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/La_Rioja\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Mendoza\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Rio_Gallegos\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Salta\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/San_Juan\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/San_Luis\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Tucuman\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Argentina/Ushuaia\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Aruba\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Asuncion\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Atikokan\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Atka\",\n \"abbreviation\": \"-09:00 HDT\",\n \"current_time\": \"06:26\"\n}, {\n \"name\": \"America/Bahia\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Bahia_Banderas\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Barbados\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Belem\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Belize\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Blanc-Sablon\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Boa_Vista\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Bogota\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Boise\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Buenos_Aires\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Cambridge_Bay\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Campo_Grande\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Cancun\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Caracas\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Catamarca\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Cayenne\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Cayman\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Chicago\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Chihuahua\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Coral_Harbour\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Cordoba\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Costa_Rica\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Creston\",\n \"abbreviation\": \"-07:00 MST\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Cuiaba\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Curacao\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Danmarkshavn\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"America/Dawson\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Dawson_Creek\",\n \"abbreviation\": \"-07:00 MST\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Denver\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Detroit\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Dominica\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Edmonton\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Eirunepe\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/El_Salvador\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Ensenada\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Fort_Nelson\",\n \"abbreviation\": \"-07:00 MST\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Fort_Wayne\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Fortaleza\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Glace_Bay\",\n \"abbreviation\": \"-03:00 ADT\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Godthab\",\n \"abbreviation\": \"-02:00 -02\",\n \"current_time\": \"13:26\"\n}, {\n \"name\": \"America/Goose_Bay\",\n \"abbreviation\": \"-03:00 ADT\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Grand_Turk\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Grenada\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Guadeloupe\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Guatemala\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Guayaquil\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Guyana\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Halifax\",\n \"abbreviation\": \"-03:00 ADT\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Havana\",\n \"abbreviation\": \"-04:00 CDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Hermosillo\",\n \"abbreviation\": \"-07:00 MST\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Indiana/Indianapolis\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Indiana/Knox\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Indiana/Marengo\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Indiana/Petersburg\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Indiana/Tell_City\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Indiana/Vevay\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Indiana/Vincennes\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Indiana/Winamac\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Indianapolis\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Inuvik\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Iqaluit\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Jamaica\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Jujuy\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Juneau\",\n \"abbreviation\": \"-08:00 AKDT\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"America/Kentucky/Louisville\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Kentucky/Monticello\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Knox_IN\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Kralendijk\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/La_Paz\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Lima\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Los_Angeles\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Louisville\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Lower_Princes\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Maceio\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Managua\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Manaus\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Marigot\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Martinique\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Matamoros\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Mazatlan\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Mendoza\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Menominee\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Merida\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Metlakatla\",\n \"abbreviation\": \"-08:00 AKDT\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"America/Mexico_City\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Miquelon\",\n \"abbreviation\": \"-02:00 -02\",\n \"current_time\": \"13:26\"\n}, {\n \"name\": \"America/Moncton\",\n \"abbreviation\": \"-03:00 ADT\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Monterrey\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Montevideo\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Montreal\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Montserrat\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Nassau\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/New_York\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Nipigon\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Nome\",\n \"abbreviation\": \"-08:00 AKDT\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"America/Noronha\",\n \"abbreviation\": \"-02:00 -02\",\n \"current_time\": \"13:26\"\n}, {\n \"name\": \"America/North_Dakota/Beulah\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/North_Dakota/Center\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/North_Dakota/New_Salem\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Ojinaga\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Panama\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Pangnirtung\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Paramaribo\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Phoenix\",\n \"abbreviation\": \"-07:00 MST\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Port-au-Prince\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Port_of_Spain\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Porto_Acre\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Porto_Velho\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Puerto_Rico\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Punta_Arenas\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Rainy_River\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Rankin_Inlet\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Recife\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Regina\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Resolute\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Rio_Branco\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Rosario\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Santa_Isabel\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Santarem\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Santiago\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Santo_Domingo\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Sao_Paulo\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Scoresbysund\",\n \"abbreviation\": \"+00:00 +00\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"America/Shiprock\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Sitka\",\n \"abbreviation\": \"-08:00 AKDT\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"America/St_Barthelemy\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/St_Johns\",\n \"abbreviation\": \"-02:30 NDT\",\n \"current_time\": \"12:56\"\n}, {\n \"name\": \"America/St_Kitts\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/St_Lucia\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/St_Thomas\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/St_Vincent\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Swift_Current\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Tegucigalpa\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"America/Thule\",\n \"abbreviation\": \"-03:00 ADT\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"America/Thunder_Bay\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Tijuana\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Toronto\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Tortola\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Vancouver\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Virgin\",\n \"abbreviation\": \"-04:00 AST\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"America/Whitehorse\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"America/Winnipeg\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"America/Yakutat\",\n \"abbreviation\": \"-08:00 AKDT\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"America/Yellowknife\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"Antarctica/Casey\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Antarctica/Davis\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Antarctica/DumontDUrville\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Antarctica/Macquarie\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Antarctica/Mawson\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Antarctica/McMurdo\",\n \"abbreviation\": \"+12:00 NZST\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Antarctica/Palmer\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Antarctica/Rothera\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Antarctica/South_Pole\",\n \"abbreviation\": \"+12:00 NZST\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Antarctica/Syowa\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Antarctica/Troll\",\n \"abbreviation\": \"+02:00 +02\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Antarctica/Vostok\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Arctic/Longyearbyen\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Asia/Aden\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Almaty\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Amman\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Anadyr\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Asia/Aqtau\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Aqtobe\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Ashgabat\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Ashkhabad\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Atyrau\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Baghdad\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Bahrain\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Baku\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Asia/Bangkok\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Barnaul\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Beirut\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Bishkek\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Brunei\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Calcutta\",\n \"abbreviation\": \"+05:30 IST\",\n \"current_time\": \"20:56\"\n}, {\n \"name\": \"Asia/Chita\",\n \"abbreviation\": \"+09:00 +09\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Choibalsan\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Chongqing\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Chungking\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Colombo\",\n \"abbreviation\": \"+05:30 +0530\",\n \"current_time\": \"20:56\"\n}, {\n \"name\": \"Asia/Dacca\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Damascus\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Dhaka\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Dili\",\n \"abbreviation\": \"+09:00 +09\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Dubai\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Asia/Dushanbe\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Famagusta\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Gaza\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Harbin\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Hebron\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Ho_Chi_Minh\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Hong_Kong\",\n \"abbreviation\": \"+08:00 HKT\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Hovd\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Irkutsk\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Istanbul\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Jakarta\",\n \"abbreviation\": \"+07:00 WIB\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Jayapura\",\n \"abbreviation\": \"+09:00 WIT\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Jerusalem\",\n \"abbreviation\": \"+03:00 IDT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Kabul\",\n \"abbreviation\": \"+04:30 +0430\",\n \"current_time\": \"19:56\"\n}, {\n \"name\": \"Asia/Kamchatka\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Asia/Karachi\",\n \"abbreviation\": \"+05:00 PKT\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Kashgar\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Kathmandu\",\n \"abbreviation\": \"+05:45 +0545\",\n \"current_time\": \"21:11\"\n}, {\n \"name\": \"Asia/Katmandu\",\n \"abbreviation\": \"+05:45 +0545\",\n \"current_time\": \"21:11\"\n}, {\n \"name\": \"Asia/Khandyga\",\n \"abbreviation\": \"+09:00 +09\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Kolkata\",\n \"abbreviation\": \"+05:30 IST\",\n \"current_time\": \"20:56\"\n}, {\n \"name\": \"Asia/Krasnoyarsk\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Kuala_Lumpur\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Kuching\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Kuwait\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Macao\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Macau\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Magadan\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Asia/Makassar\",\n \"abbreviation\": \"+08:00 WITA\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Manila\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Muscat\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Asia/Nicosia\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Novokuznetsk\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Novosibirsk\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Omsk\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Oral\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Phnom_Penh\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Pontianak\",\n \"abbreviation\": \"+07:00 WIB\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Pyongyang\",\n \"abbreviation\": \"+09:00 KST\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Qatar\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Qyzylorda\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Rangoon\",\n \"abbreviation\": \"+06:30 +0630\",\n \"current_time\": \"21:56\"\n}, {\n \"name\": \"Asia/Riyadh\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Saigon\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Sakhalin\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Asia/Samarkand\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Seoul\",\n \"abbreviation\": \"+09:00 KST\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Shanghai\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Singapore\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Srednekolymsk\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Asia/Taipei\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Tashkent\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Tbilisi\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Asia/Tehran\",\n \"abbreviation\": \"+04:30 +0430\",\n \"current_time\": \"19:56\"\n}, {\n \"name\": \"Asia/Tel_Aviv\",\n \"abbreviation\": \"+03:00 IDT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Asia/Thimbu\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Thimphu\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Tokyo\",\n \"abbreviation\": \"+09:00 JST\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Tomsk\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Ujung_Pandang\",\n \"abbreviation\": \"+08:00 WITA\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Ulaanbaatar\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Ulan_Bator\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Asia/Urumqi\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Asia/Ust-Nera\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Asia/Vientiane\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Asia/Vladivostok\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Asia/Yakutsk\",\n \"abbreviation\": \"+09:00 +09\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Asia/Yangon\",\n \"abbreviation\": \"+06:30 +0630\",\n \"current_time\": \"21:56\"\n}, {\n \"name\": \"Asia/Yekaterinburg\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Asia/Yerevan\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Atlantic/Azores\",\n \"abbreviation\": \"+00:00 +00\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Atlantic/Bermuda\",\n \"abbreviation\": \"-03:00 ADT\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Atlantic/Canary\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Atlantic/Cape_Verde\",\n \"abbreviation\": \"-01:00 -01\",\n \"current_time\": \"14:26\"\n}, {\n \"name\": \"Atlantic/Faeroe\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Atlantic/Faroe\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Atlantic/Jan_Mayen\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Atlantic/Madeira\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Atlantic/Reykjavik\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Atlantic/South_Georgia\",\n \"abbreviation\": \"-02:00 -02\",\n \"current_time\": \"13:26\"\n}, {\n \"name\": \"Atlantic/St_Helena\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Atlantic/Stanley\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Australia/ACT\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/Adelaide\",\n \"abbreviation\": \"+09:30 ACST\",\n \"current_time\": \"00:56\"\n}, {\n \"name\": \"Australia/Brisbane\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/Broken_Hill\",\n \"abbreviation\": \"+09:30 ACST\",\n \"current_time\": \"00:56\"\n}, {\n \"name\": \"Australia/Canberra\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/Currie\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/Darwin\",\n \"abbreviation\": \"+09:30 ACST\",\n \"current_time\": \"00:56\"\n}, {\n \"name\": \"Australia/Eucla\",\n \"abbreviation\": \"+08:45 +0845\",\n \"current_time\": \"00:11\"\n}, {\n \"name\": \"Australia/Hobart\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/LHI\",\n \"abbreviation\": \"+10:30 +1030\",\n \"current_time\": \"01:56\"\n}, {\n \"name\": \"Australia/Lindeman\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/Lord_Howe\",\n \"abbreviation\": \"+10:30 +1030\",\n \"current_time\": \"01:56\"\n}, {\n \"name\": \"Australia/Melbourne\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/NSW\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/North\",\n \"abbreviation\": \"+09:30 ACST\",\n \"current_time\": \"00:56\"\n}, {\n \"name\": \"Australia/Perth\",\n \"abbreviation\": \"+08:00 AWST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Australia/Queensland\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/South\",\n \"abbreviation\": \"+09:30 ACST\",\n \"current_time\": \"00:56\"\n}, {\n \"name\": \"Australia/Sydney\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/Tasmania\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/Victoria\",\n \"abbreviation\": \"+10:00 AEST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Australia/West\",\n \"abbreviation\": \"+08:00 AWST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Australia/Yancowinna\",\n \"abbreviation\": \"+09:30 ACST\",\n \"current_time\": \"00:56\"\n}, {\n \"name\": \"Brazil/Acre\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"Brazil/DeNoronha\",\n \"abbreviation\": \"-02:00 -02\",\n \"current_time\": \"13:26\"\n}, {\n \"name\": \"Brazil/East\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Brazil/West\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"CET\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"CST6CDT\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"Canada/Atlantic\",\n \"abbreviation\": \"-03:00 ADT\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Canada/Central\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"Canada/Eastern\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"Canada/Mountain\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"Canada/Newfoundland\",\n \"abbreviation\": \"-02:30 NDT\",\n \"current_time\": \"12:56\"\n}, {\n \"name\": \"Canada/Pacific\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"Canada/Saskatchewan\",\n \"abbreviation\": \"-06:00 CST\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"Canada/Yukon\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"Chile/Continental\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Chile/EasterIsland\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"Cuba\",\n \"abbreviation\": \"-04:00 CDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"EET\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"EST\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"EST5EDT\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"Egypt\",\n \"abbreviation\": \"+02:00 EET\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Eire\",\n \"abbreviation\": \"+01:00 IST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Etc/GMT\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/GMT+0\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/GMT+1\",\n \"abbreviation\": \"-01:00 -01\",\n \"current_time\": \"14:26\"\n}, {\n \"name\": \"Etc/GMT+10\",\n \"abbreviation\": \"-10:00 -10\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Etc/GMT+11\",\n \"abbreviation\": \"-11:00 -11\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Etc/GMT+12\",\n \"abbreviation\": \"-12:00 -12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Etc/GMT+2\",\n \"abbreviation\": \"-02:00 -02\",\n \"current_time\": \"13:26\"\n}, {\n \"name\": \"Etc/GMT+3\",\n \"abbreviation\": \"-03:00 -03\",\n \"current_time\": \"12:26\"\n}, {\n \"name\": \"Etc/GMT+4\",\n \"abbreviation\": \"-04:00 -04\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"Etc/GMT+5\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"Etc/GMT+6\",\n \"abbreviation\": \"-06:00 -06\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"Etc/GMT+7\",\n \"abbreviation\": \"-07:00 -07\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"Etc/GMT+8\",\n \"abbreviation\": \"-08:00 -08\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"Etc/GMT+9\",\n \"abbreviation\": \"-09:00 -09\",\n \"current_time\": \"06:26\"\n}, {\n \"name\": \"Etc/GMT-0\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/GMT-1\",\n \"abbreviation\": \"+01:00 +01\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Etc/GMT-10\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Etc/GMT-11\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Etc/GMT-12\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Etc/GMT-13\",\n \"abbreviation\": \"+13:00 +13\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Etc/GMT-14\",\n \"abbreviation\": \"+14:00 +14\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Etc/GMT-2\",\n \"abbreviation\": \"+02:00 +02\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Etc/GMT-3\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Etc/GMT-4\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Etc/GMT-5\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Etc/GMT-6\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Etc/GMT-7\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Etc/GMT-8\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Etc/GMT-9\",\n \"abbreviation\": \"+09:00 +09\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Etc/GMT0\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/Greenwich\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/UCT\",\n \"abbreviation\": \"+00:00 UCT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/UTC\",\n \"abbreviation\": \"+00:00 UTC\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/Universal\",\n \"abbreviation\": \"+00:00 UTC\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Etc/Zulu\",\n \"abbreviation\": \"+00:00 UTC\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Europe/Amsterdam\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Andorra\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Astrakhan\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Europe/Athens\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Belfast\",\n \"abbreviation\": \"+01:00 BST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Europe/Belgrade\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Berlin\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Bratislava\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Brussels\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Bucharest\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Budapest\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Busingen\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Chisinau\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Copenhagen\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Dublin\",\n \"abbreviation\": \"+01:00 IST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Europe/Gibraltar\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Guernsey\",\n \"abbreviation\": \"+01:00 BST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Europe/Helsinki\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Isle_of_Man\",\n \"abbreviation\": \"+01:00 BST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Europe/Istanbul\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Jersey\",\n \"abbreviation\": \"+01:00 BST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Europe/Kaliningrad\",\n \"abbreviation\": \"+02:00 EET\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Kiev\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Kirov\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Lisbon\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Europe/Ljubljana\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/London\",\n \"abbreviation\": \"+01:00 BST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Europe/Luxembourg\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Madrid\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Malta\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Mariehamn\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Minsk\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Monaco\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Moscow\",\n \"abbreviation\": \"+03:00 MSK\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Nicosia\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Oslo\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Paris\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Podgorica\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Prague\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Riga\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Rome\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Samara\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Europe/San_Marino\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Sarajevo\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Saratov\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Europe/Simferopol\",\n \"abbreviation\": \"+03:00 MSK\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Skopje\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Sofia\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Stockholm\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Tallinn\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Tirane\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Tiraspol\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Ulyanovsk\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Europe/Uzhgorod\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Vaduz\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Vatican\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Vienna\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Vilnius\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Volgograd\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Warsaw\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Zagreb\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Europe/Zaporozhye\",\n \"abbreviation\": \"+03:00 EEST\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Europe/Zurich\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"GB\",\n \"abbreviation\": \"+01:00 BST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"GB-Eire\",\n \"abbreviation\": \"+01:00 BST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"GMT\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"GMT+0\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"GMT-0\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"GMT0\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Greenwich\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"HST\",\n \"abbreviation\": \"-10:00 HST\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Hongkong\",\n \"abbreviation\": \"+08:00 HKT\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Iceland\",\n \"abbreviation\": \"+00:00 GMT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Indian/Antananarivo\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Indian/Chagos\",\n \"abbreviation\": \"+06:00 +06\",\n \"current_time\": \"21:26\"\n}, {\n \"name\": \"Indian/Christmas\",\n \"abbreviation\": \"+07:00 +07\",\n \"current_time\": \"22:26\"\n}, {\n \"name\": \"Indian/Cocos\",\n \"abbreviation\": \"+06:30 +0630\",\n \"current_time\": \"21:56\"\n}, {\n \"name\": \"Indian/Comoro\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Indian/Kerguelen\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Indian/Mahe\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Indian/Maldives\",\n \"abbreviation\": \"+05:00 +05\",\n \"current_time\": \"20:26\"\n}, {\n \"name\": \"Indian/Mauritius\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Indian/Mayotte\",\n \"abbreviation\": \"+03:00 EAT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Indian/Reunion\",\n \"abbreviation\": \"+04:00 +04\",\n \"current_time\": \"19:26\"\n}, {\n \"name\": \"Iran\",\n \"abbreviation\": \"+04:30 +0430\",\n \"current_time\": \"19:56\"\n}, {\n \"name\": \"Israel\",\n \"abbreviation\": \"+03:00 IDT\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"Jamaica\",\n \"abbreviation\": \"-05:00 EST\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"Japan\",\n \"abbreviation\": \"+09:00 JST\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Kwajalein\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Libya\",\n \"abbreviation\": \"+02:00 EET\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"MET\",\n \"abbreviation\": \"+02:00 MEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"MST\",\n \"abbreviation\": \"-07:00 MST\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"MST7MDT\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"Mexico/BajaNorte\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"Mexico/BajaSur\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"Mexico/General\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"NZ\",\n \"abbreviation\": \"+12:00 NZST\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"NZ-CHAT\",\n \"abbreviation\": \"+12:45 +1245\",\n \"current_time\": \"04:11\"\n}, {\n \"name\": \"Navajo\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"PRC\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"PST8PDT\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"Pacific/Apia\",\n \"abbreviation\": \"+13:00 +13\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Auckland\",\n \"abbreviation\": \"+12:00 NZST\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Bougainville\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Chatham\",\n \"abbreviation\": \"+12:45 +1245\",\n \"current_time\": \"04:11\"\n}, {\n \"name\": \"Pacific/Chuuk\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Pacific/Easter\",\n \"abbreviation\": \"-05:00 -05\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"Pacific/Efate\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Enderbury\",\n \"abbreviation\": \"+13:00 +13\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Fakaofo\",\n \"abbreviation\": \"+13:00 +13\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Fiji\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Funafuti\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Galapagos\",\n \"abbreviation\": \"-06:00 -06\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"Pacific/Gambier\",\n \"abbreviation\": \"-09:00 -09\",\n \"current_time\": \"06:26\"\n}, {\n \"name\": \"Pacific/Guadalcanal\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Guam\",\n \"abbreviation\": \"+10:00 ChST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Pacific/Honolulu\",\n \"abbreviation\": \"-10:00 HST\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Pacific/Johnston\",\n \"abbreviation\": \"-10:00 HST\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Pacific/Kiritimati\",\n \"abbreviation\": \"+14:00 +14\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Pacific/Kosrae\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Kwajalein\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Majuro\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Marquesas\",\n \"abbreviation\": \"-09:30 -0930\",\n \"current_time\": \"05:56\"\n}, {\n \"name\": \"Pacific/Midway\",\n \"abbreviation\": \"-11:00 SST\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Nauru\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Niue\",\n \"abbreviation\": \"-11:00 -11\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Norfolk\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Noumea\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Pago_Pago\",\n \"abbreviation\": \"-11:00 SST\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Palau\",\n \"abbreviation\": \"+09:00 +09\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Pacific/Pitcairn\",\n \"abbreviation\": \"-08:00 -08\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"Pacific/Pohnpei\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Ponape\",\n \"abbreviation\": \"+11:00 +11\",\n \"current_time\": \"02:26\"\n}, {\n \"name\": \"Pacific/Port_Moresby\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Pacific/Rarotonga\",\n \"abbreviation\": \"-10:00 -10\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Pacific/Saipan\",\n \"abbreviation\": \"+10:00 ChST\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Pacific/Samoa\",\n \"abbreviation\": \"-11:00 SST\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Tahiti\",\n \"abbreviation\": \"-10:00 -10\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"Pacific/Tarawa\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Tongatapu\",\n \"abbreviation\": \"+13:00 +13\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"Pacific/Truk\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Pacific/Wake\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Wallis\",\n \"abbreviation\": \"+12:00 +12\",\n \"current_time\": \"03:26\"\n}, {\n \"name\": \"Pacific/Yap\",\n \"abbreviation\": \"+10:00 +10\",\n \"current_time\": \"01:26\"\n}, {\n \"name\": \"Poland\",\n \"abbreviation\": \"+02:00 CEST\",\n \"current_time\": \"17:26\"\n}, {\n \"name\": \"Portugal\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"ROC\",\n \"abbreviation\": \"+08:00 CST\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"ROK\",\n \"abbreviation\": \"+09:00 KST\",\n \"current_time\": \"00:26\"\n}, {\n \"name\": \"Singapore\",\n \"abbreviation\": \"+08:00 +08\",\n \"current_time\": \"23:26\"\n}, {\n \"name\": \"Turkey\",\n \"abbreviation\": \"+03:00 +03\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"UCT\",\n \"abbreviation\": \"+00:00 UCT\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"US/Alaska\",\n \"abbreviation\": \"-08:00 AKDT\",\n \"current_time\": \"07:26\"\n}, {\n \"name\": \"US/Aleutian\",\n \"abbreviation\": \"-09:00 HDT\",\n \"current_time\": \"06:26\"\n}, {\n \"name\": \"US/Arizona\",\n \"abbreviation\": \"-07:00 MST\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"US/Central\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"US/East-Indiana\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"US/Eastern\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"US/Hawaii\",\n \"abbreviation\": \"-10:00 HST\",\n \"current_time\": \"05:26\"\n}, {\n \"name\": \"US/Indiana-Starke\",\n \"abbreviation\": \"-05:00 CDT\",\n \"current_time\": \"10:26\"\n}, {\n \"name\": \"US/Michigan\",\n \"abbreviation\": \"-04:00 EDT\",\n \"current_time\": \"11:26\"\n}, {\n \"name\": \"US/Mountain\",\n \"abbreviation\": \"-06:00 MDT\",\n \"current_time\": \"09:26\"\n}, {\n \"name\": \"US/Pacific\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"US/Pacific-New\",\n \"abbreviation\": \"-07:00 PDT\",\n \"current_time\": \"08:26\"\n}, {\n \"name\": \"US/Samoa\",\n \"abbreviation\": \"-11:00 SST\",\n \"current_time\": \"04:26\"\n}, {\n \"name\": \"UTC\",\n \"abbreviation\": \"+00:00 UTC\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"Universal\",\n \"abbreviation\": \"+00:00 UTC\",\n \"current_time\": \"15:26\"\n}, {\n \"name\": \"W-SU\",\n \"abbreviation\": \"+03:00 MSK\",\n \"current_time\": \"18:26\"\n}, {\n \"name\": \"WET\",\n \"abbreviation\": \"+01:00 WEST\",\n \"current_time\": \"16:26\"\n}, {\n \"name\": \"Zulu\",\n \"abbreviation\": \"+00:00 UTC\",\n \"current_time\": \"15:26\"\n}];\nmodule.exports = conf;","module.exports = __webpack_public_path__ + \"fonts/Hind-Bold.ttf\";","module.exports = __webpack_public_path__ + \"fonts/Hind-Light.ttf\";","module.exports = __webpack_public_path__ + \"fonts/Hind-Medium.ttf\";","module.exports = __webpack_public_path__ + \"fonts/Hind-Regular.ttf\";","module.exports = __webpack_public_path__ + \"fonts/Hind-SemiBold.ttf\";","var axios = require('axios'),\n configFile = require('./config/index.js'),\n env = ENVIRONMENT;\n\nvar config = configFile.environments[env];\nwindow.smooth = config;\nvar pathName = location.pathname,\n orgID = pathName.replace('/', '');\nimport calendarApp from './js/calendarApp';\nimport './js/MainController';\nimport './js/RootController';\nimport './js/account/AccountController.js'; import './js/account/CustomerAccountAppointmentsController.js'; import './js/account/CustomerAccountController.js'; import './js/account/CustomerAccountManageInvoicesController.js'; import './js/account/CustomerAccountMembershipsController.js'; import './js/account/CustomerAccountPackagesController.js'; import './js/account/CustomerAccountTransactionsController.js'; import './js/account/CustomerAccountUpdatePaymentController.js'; import './js/account/EUGDPRController.js'; import './js/account/WaitlistController.js';\nimport './js/auth/eugdpRedirect.js'; import './js/auth/PasswordControllers.js'; import './js/auth/SuperloginController.js';\nimport './js/confirm/ConfirmController.js';\nimport './js/directives/advertisements/googleBannerAdsBottom.js'; import './js/directives/advertisements/googleBannerAdsTop.js'; import './js/directives/appointmentCountdown.js'; import './js/directives/appointments/appointmentList.js'; import './js/directives/auth/customerLogin.js'; import './js/directives/auth/customerLoginModal.js'; import './js/directives/auth/facebookLogin.js'; import './js/directives/calendarHeader.js'; import './js/directives/customer/customerAccountButton.js'; import './js/directives/customer/customerAccountLinks.js'; import './js/directives/customer/customerPackages.js'; import './js/directives/customer/customerTransactions.js'; import './js/directives/datePicker.js'; import './js/directives/formBuilder.js'; import './js/directives/header-container/headerContainer.js'; import './js/directives/header-container/logoContainer.js'; import './js/directives/home/costModal.js'; import './js/directives/home/costPopover.js'; import './js/directives/home/descriptionModal.js'; import './js/directives/home/descriptionPopover.js'; import './js/directives/numberFormat.js'; import './js/directives/paginationWidget.js'; import './js/directives/payments/membershipModal.js'; import './js/directives/payments/packageInfoPopover.js'; import './js/directives/payments/paymentSummary.js'; import './js/directives/payments/stripeCardPayment.js'; import './js/directives/payments/stripeCreateMembership.js'; import './js/directives/payments/stripePayInvoice.js'; import './js/directives/payments/stripePayInvoiceMethod.js'; import './js/directives/payments/stripeUpdatePaymentMethod.js'; import './js/directives/selectedSlotsDisplay.js'; import './js/directives/service-calendar/availabilityCalendar.js'; import './js/directives/service-calendar/CalendarService.js'; import './js/directives/settings/tsandcs.js'; import './js/directives/shiftsandtimeslots/chooseTimeslotContainer.js'; import './js/directives/shiftsandtimeslots/chooseTimeslotModal.js'; import './js/directives/shiftsandtimeslots/dayContainer.js'; import './js/directives/shiftsandtimeslots/waitlistModal.js'; import './js/directives/shiftsandtimeslots/yogaShiftContainer.js'; import './js/directives/throbber.js'; import './js/directives/tooltip.js';\nimport './js/filters/calendarLabel.js'; import './js/filters/SmoothDateFilter.js'; import './js/filters/SmoothDateTimeFilter.js'; import './js/filters/SmoothTimeFilter.js';\nimport './js/services/DaysToCountService.js'; import './js/services/FixedHeadingService.js'; import './js/services/PaymentOptionService.js'; import './js/services/ShiftService.js'; import './js/services/SingleSlotService.js'; import './js/services/TimeslotService.js';\nimport './js/home/footerVersion.js'; import './js/home/HomeController.js';\nimport './js/payment/ChoosePaymentController.js'; import './js/payment/PaymentController.js';\nimport './js/review/BookingFormController.js'; import './js/review/ConfirmRegoController.js'; import './js/review/OverbookedController.js'; import './js/review/PreviewController.js'; import './js/review/ReviewController.js';\nimport './js/service-availability/ServiceAvailabilityController.js';\nimport './js/service-calendar/ServiceCalendarController.js';\nimport './js/services/DaysToCountService.js'; import './js/services/FixedHeadingService.js'; import './js/services/PaymentOptionService.js'; import './js/services/ShiftService.js'; import './js/services/SingleSlotService.js'; import './js/services/TimeslotService.js';\nimport './js/timeslots/ChooseSlotsController.js'; import './js/timeslots/FutureSlotsController.js'; import './js/timeslots/FutureSlotsControllerOld.js';\nimport './fonts/Hind/Hind-Bold.ttf';\nimport './fonts/Hind/Hind-Light.ttf';\nimport './fonts/Hind/Hind-Medium.ttf';\nimport './fonts/Hind/Hind-Regular.ttf';\nimport './fonts/Hind/Hind-SemiBold.ttf';\nimport './less/style.less'; // For some reason Promise is undefined in IE11\n\nif (typeof Promise === 'undefined') {\n require('promise/lib/rejection-tracking').enable();\n\n window.Promise = require('promise/lib/es6-extensions.js');\n Object.assign = require('object-assign');\n}\n\nvar orgInvalid = function orgInvalid() {\n document.body.innerHTML = '
' + '

Sorry but a valid organisation was not found with this web address. A valid web address will look like:

' + 'https://cal.smoothbook/123456abcdef

' + '

If you are configuring Smoothbook please' + 'click on the \\'setup\\' menu item when you are logged into Smoothbook and follow the instructions there making sure to copy ' + 'the web address for your calendar carefully. Please contact support@smoothbook.co if you need more help

' + '
';\n};\n\nangular.element(document).ready(function () {\n if (!orgID) {\n return orgInvalid();\n }\n\n axios.get(\"\".concat(smooth.api_url, \"/api/v1/calendar/settings/\").concat(orgID)).then(function (response) {\n var settings = response.data.settings;\n window.smooth = Object.assign({}, window.smooth, settings);\n angular.bootstrap(document, ['calendarApp']);\n }).catch(function (err) {\n if (err.response && err.response.status === 404) orgInvalid();\n console.error(err);\n });\n});","angular.module('MainController', []).controller('MainController', [\"$window\", \"$scope\", \"$cookies\", \"$timeout\", \"$rootScope\", \"$location\", \"$route\", \"API_URL\", \"$http\", function ($window, $scope, $cookies, $timeout, $rootScope, $location, $route, API_URL, $http) {\n if (smooth.calendarSettings.logo && smooth.calendarSettings.logo.display) {\n $scope.logo = smooth.calendarSettings.logo.display.url;\n }\n\n if (smooth.calendarSettings.colours) {\n // Create a new css file and append at the end to override the existing styles.\n var styleDocs = document.getElementsByTagName('style'),\n lastStyle = styleDocs.item(styleDocs.length - 1);\n var newStyle = document.createElement('style');\n newStyle.type = 'text/css';\n var newCSS = \" \\n body, .smooth-header{\\n background: \".concat(smooth.calendarSettings.colours.background, \";\\n color: \").concat(smooth.calendarSettings.colours.bodytext, \";\\n }\\n \\n #cookie-consent-modal .modal-content .modal-header{\\n background: \").concat(smooth.calendarSettings.colours.background, \";\\n color: \").concat(smooth.calendarSettings.colours.bodytext, \";\\n }\\n \\n .btn.btn-primary{\\n background: \").concat(smooth.calendarSettings.colours.primary, \";\\n border-color: \").concat(smooth.calendarSettings.colours.primary, \";\\n color: \").concat(smooth.calendarSettings.colours.text1, \";\\n }\\n \\n .btn.btn-info, .btn.btn-info:hover, .btn.btn-info:active, .btn-info:active:hover, .open > .dropdown-toggle.btn-info:focus, .open > .dropdown-toggle.btn-info{\\n background: \").concat(smooth.calendarSettings.colours.info, \";\\n border-color: \").concat(smooth.calendarSettings.colours.info, \";\\n color: \").concat(smooth.calendarSettings.colours.text1, \";\\n }\\n \\n .btn.btn-default, .btn.btn-default:active {\\n background-color: \").concat(smooth.calendarSettings.colours.default, \";\\n border-color: lightgrey;\\n color: \").concat(smooth.calendarSettings.colours.text2, \";\\n }\\n \\n .btn-primary:active:hover, .btn-primary.active:hover, .open > .dropdown-toggle.btn-primary:hover, \\n .btn-primary:active:focus, .btn-primary.active:focus, .open > .dropdown-toggle.btn-primary:focus, .btn-primary:active.focus, \\n .btn-primary.active.focus, .open > .dropdown-toggle.btn-primary.focus {\\n background: \").concat(smooth.calendarSettings.colours.primary, \";\\n border-color: \").concat(smooth.calendarSettings.colours.primary, \";\\n filter: brightness(110%); \\n }\\n \\n .btn.btn-success, .btn.btn-success:active {\\n background-color: \").concat(smooth.calendarSettings.colours.success, \";\\n border-color: \").concat(smooth.calendarSettings.colours.success, \";\\n }\\n \\n .choose-slots-container .choose-slots-table-container .is-table .is-table-row.timeslot-selected {\\n background: inherit;\\n filter: brightness(110%);\\n }\\n \\n .payment-container .options-container .choose-payment-buttons button.add {\\n background: \").concat(smooth.calendarSettings.colours.primary, \";\\n border-radius: 5px;\\n }\\n \\n .payment-container .options-container .choose-payment-buttons button.use {\\n background: \").concat(smooth.calendarSettings.colours.primary, \";\\n }\\n \\n .payment-container .payment-options .payment-option h4 {\\n color: \").concat(smooth.calendarSettings.colours.bodytext, \";\\n }\\n \\n .payment-container .options-container .choose-payment-buttons button.subtract {\\n background: \").concat(smooth.calendarSettings.colours.danger, \";\\n border-radius: 5px;\\n }\\n \\n .payment-container .choose-payment-banner .continue-payment {\\n background: \").concat(smooth.calendarSettings.colours.success, \";\\n border-radius: 5px; \\n }\\n \\n .payment-container .choose-payment-banner .payment-total {\\n border-radius: 5px; \\n }\\n \\n .payment-container .choose-payment-banner .appointments-to-pay-for {\\n background: \").concat(smooth.calendarSettings.colours.info, \";\\n color: white;\\n }\\n \\n /*.payment-container .choose-payment-banner .payment-info {\\n box-shadow: none;\\n color: \").concat(smooth.calendarSettings.colours.bodytext, \"\\n }*/\\n \\n .alert.alert-info, .confirm-appointments .service-instructions {\\n background: \").concat(smooth.calendarSettings.colours.info, \";\\n color: white;\\n }\\n \\n .smooth-header .filter-list .filter-list-item {\\n background: \").concat(smooth.calendarSettings.colours.highlight, \";\\n }\\n \\n .sb-datepicker.days-available .day:not(.disabled) {\\n background: \").concat(smooth.calendarSettings.colours.primary, \";\\n border-radius: 10px;\\n cursor: pointer;\\n }\\n \\n .calendar-main .fixed-header-container .heading-fixed {\\n background: \").concat(smooth.calendarSettings.colours.info, \";\\n }\\n \\n .alert.alert-success {\\n background: \").concat(smooth.calendarSettings.colours.success, \";\\n }\\n \\n .choose-slots-container .choose-slots-continue {}\\n \\n .appointment-countdown {\\n background: \").concat(smooth.calendarSettings.colours.warning, \";\\n }\\n \\n .throbber{\\n background: \").concat(smooth.calendarSettings.colours.primary, \";\\n }\\n \\n .service-calendar .service-availability-container .service-list-item {\\n background: \").concat(smooth.calendarSettings.colours.primary, \";\\n }\\n \\n .availability-calendar .day-chooser-table tr > td a.selected {\\n background: \").concat(smooth.calendarSettings.colours.highlight, \";\\n }\\n \\n .login-page-container .customer-login label, .login-page-container .customer-login p.forgot-password, .login-page-container .customer-login p.forgot-password a {\\n color: \").concat(smooth.calendarSettings.colours.bodytext, \";\\n }\\n \\n \");\n newStyle.innerHTML = newCSS;\n lastStyle.parentNode.insertBefore(newStyle, lastStyle.nextSibling);\n }\n\n if (smooth.calendarSettings.customcss) {\n var _styleDocs = document.getElementsByTagName('style'),\n _lastStyle = _styleDocs.item(_styleDocs.length - 1),\n _newStyle = document.createElement('style');\n\n _newStyle.type = 'text/css';\n _newStyle.innerHTML = smooth.calendarSettings.customcss;\n\n _lastStyle.parentNode.insertBefore(_newStyle, _lastStyle.nextSibling);\n } // Facebook stuff\n\n\n $window.fbAsyncInit = function () {\n // customerInfo will have been set by the JWT token if it exists.\n // If it doesn't exist, see if the customer is logged in with Facebook\n if (!$rootScope.customerInfo) {\n FB.init(smooth.facebookConfig); // !!! N.B. If you're having trouble with this saying that the user is not connected when they are:\n // clear the local and session storage as Facebook seems to store a bunch of junk in there\n\n FB.getLoginStatus(function (response) {\n // If there's no token or the token has expired then check for authorisation with Facebook\n if (response.status === 'connected') {\n var params = {\n accesstoken: response.authResponse.accessToken,\n userid: response.authResponse.userID,\n orgid: smooth.orgid\n }; // User is not authenticated with Smoothbook but has authorised the app. Get the access token\n // and send it to the server for authentication with Smoothbook.\n\n $http.get(API_URL + '/facebook/auth/customer', {\n params: params\n }).then(function (reply) {\n var response = reply.data; // The customer may be connected but they're not in the db...\n\n if (!response.customer) {\n return;\n } // Attach customer info to rootScope for use in other places\n\n\n $rootScope.customerInfo = response.customer;\n });\n }\n }); // End getloginstatus\n }\n };\n\n $('#cookie-consent-modal').on('hidden.bs.modal', function () {\n localStorage.setItem('smoothbook-cookie-consent', 'true'); // document.cookie = 'smoothbook-cookie-consent=true; expires=' + new Date(2147483647 * 1000).toUTCString();\n\n $('#cookie-consent-modal').modal('hide');\n location.reload();\n });\n\n $scope.agreeCookies = function () {\n localStorage.setItem('smoothbook-cookie-consent', 'true'); // document.cookie = 'smoothbook-cookie-consent=true; expires=' + new Date(2147483647 * 1000).toUTCString();\n\n $('#cookie-consent-modal').modal('hide');\n };\n}]);","// Manage redirection depending on calendar type\n(function () {\n RootController.$inject = [\"$location\"];\n angular.module('calendarApp').controller('RootController', RootController);\n\n function RootController($location) {\n // The customer will be redirected depending on the calendar type chosen by the user\n var calendarType = smooth.calendarSettings.calendartype || 'SERVICE',\n calendarPath = ''; // 1. If the calendar type has been set in the config then that overrrides everything.\n\n if (calendarType === 'CLASS') {\n return $location.path('/class');\n }\n\n if (calendarType === 'SERVICE') {\n return $location.path('/service');\n } // If we reach this point then:\n // - The user has been directed to the root url. Their calendar type should have been stored in localStorage,\n // if not use the service calendar as the default.\n\n\n calendarType = localStorage.getItem('calendar-type');\n\n if (!calendarType) {\n return $location.path('/class');\n }\n\n switch (calendarType) {\n case 'CLASS':\n return $location.path('/class');\n\n case 'SERVICE':\n return $location.path('/service');\n\n default:\n return $location.path('/service');\n }\n }\n})();","(function () {\n customerAccountController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\n angular.module('calendarApp').controller('CustomerAccountController', customerAccountController);\n\n function customerAccountController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var account = this,\n throbber = $rootScope.throbber;\n\n var init = function init() {\n // Need customer appointment and transaction information.\n // Need calendar settings.\n // Need an api to delete appointments and refund credits if that is how the appointment was paid for.\n var promises = [$http.get(API_URL + '/api/v1/calendar/customer/appointment'), $http.get(API_URL + '/api/v1/calendar/customer/transaction')];\n throbber.show();\n account.paginationObject = {};\n $q.all(promises).then(function (replies) {\n throbber.hide();\n replies.forEach(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n var msg = $filter('calendarLabel')('Sorry but there was an error with this request: ') + response.msg;\n throbber.showError(msg);\n }\n });\n var appointmentInfo = replies[0].data;\n account.appointments = appointmentInfo.appointments;\n account.paginationObject = {\n count: appointmentInfo.count,\n page: appointmentInfo.page,\n limit: appointmentInfo.limit || 10\n };\n customerCanDeleteAppointments();\n account.transactions = replies[1].data.transactions;\n });\n $timeout(function () {\n initTabs();\n }, 0);\n };\n\n init();\n\n account.deleteAppointment = function ($index, appointment) {\n var confirmMessage = $filter('calendarLabel')('Please confirm you would like to delete this appointment');\n\n if (!confirm(confirmMessage)) {\n return;\n }\n\n throbber.show();\n $http.delete(API_URL + '/api/v1/calendar/customer/appointment/' + appointment._id).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError('Sorry but there was an error with this request. Please try again or contact support@smoothbook.co');\n return;\n }\n\n var deleteMessage = $filter('calendarLabel')('Appointment deleted successfully');\n throbber.hide(deleteMessage);\n account.appointments.splice($index, 1);\n });\n };\n\n account.getAppointments = function (options) {\n var params = {\n page: options.page || 0,\n perpage: options.perpage || 10,\n pastonly: typeof account.pastOnly !== 'undefined' ? account.pastOnly : false\n };\n throbber.show();\n $http.get(API_URL + '/api/v1/calendar/customer/appointment', {\n params: params\n }).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError(response.msg);\n return;\n }\n\n account.appointments = response.appointments;\n account.paginationObject = {\n count: response.count,\n page: response.page,\n limit: response.limit || 10\n };\n });\n };\n\n account.changePage = function (page) {\n account.getAppointments({\n page: page\n });\n };\n\n function customerCanDeleteAppointments() {\n var closestCanCancel = smooth.calendarSettings.closestcancancel; // Check if the customer is allowed to delete appointments\n\n if (!smooth.calendarSettings.customercancancel) {\n account.hideDelete = true;\n return;\n } // Now go through all of the appointments and determine which are allowed to be deleted according\n // to config.\n\n\n var cancelMoment = moment().add(closestCanCancel, 'hours');\n\n for (var i = 0; i < account.appointments.length; i++) {\n if (moment.unix(account.appointments[i].start).isBefore(cancelMoment)) {\n account.appointments[i].hideDelete = true;\n }\n }\n }\n\n function initTabs() {\n $('.tab-select').on('click', function (ev) {\n ev.preventDefault();\n var $parentContainer = $(this).closest('.tab-container');\n $parentContainer.find('.nav-tabs > li').removeClass('active');\n $parentContainer.find('.tab-pane').removeClass('active');\n var panelID = $(this).attr('id'); // Change content depending on which tab has been selected.\n\n if (panelID === 'tab_past_appointments') {\n account.pastOnly = true;\n account.getAppointments({});\n } else {\n account.pastOnly = false;\n account.getAppointments({});\n }\n\n $parentContainer.find('.' + panelID).addClass('active');\n $(this).closest('li').addClass('active');\n });\n }\n }\n})();","(function () {\n CustomerAccountAppointmentsController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\n angular.module('calendarApp').controller('CustomerAccountAppointmentsController', CustomerAccountAppointmentsController);\n\n function CustomerAccountAppointmentsController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var account = this,\n throbber = $rootScope.throbber;\n\n var init = function init() {\n // Need customer appointment and transaction information.\n // Need calendar settings.\n // Need an api to delete appointments and refund credits if that is how the appointment was paid for.\n var promises = [$http.get(API_URL + '/api/v1/calendar/customer/appointment'), $http.get(API_URL + '/api/v1/calendar/customer/transaction')];\n throbber.show();\n account.paginationObject = {};\n $http.get(API_URL + '/api/v1/calendar/customer/appointment').then(function (reply) {\n var response = reply.data;\n throbber.hide();\n\n if (!response.success) {\n var msg = $filter('calendarLabel')('Sorry but there was an error with this request: ') + response.msg;\n throbber.showError(msg);\n return;\n }\n\n account.appointments = response.appointments;\n account.paginationObject = {\n count: response.count,\n page: response.page,\n limit: response.limit || 10\n };\n customerCanDeleteAppointments();\n });\n $timeout(function () {\n initTabs();\n }, 0);\n };\n\n init();\n\n account.deleteAppointment = function ($index, appointment) {\n var confirmMessage = $filter('calendarLabel')('Please confirm you would like to delete this appointment');\n\n if (!confirm(confirmMessage)) {\n return;\n }\n\n throbber.show();\n $http.delete(API_URL + '/api/v1/calendar/customer/appointment/' + appointment._id).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError('Sorry but there was an error with this request: ' + response.msg + '. Please try again or contact support@smoothbook.co');\n return;\n }\n\n var deleteMessage = 'Appointment deleted successfully';\n\n if (response.creditRefunded) {\n deleteMessage = 'Appointment deleted. Your ' + response.packageName + ' package has been credited';\n }\n\n if (response.singleAppointment) {\n deleteMessage = 'Appointment deleted. You need to talk to your provider for a refund';\n }\n\n deleteMessage = $filter('calendarLabel')(deleteMessage);\n throbber.hide(deleteMessage);\n account.appointments.splice($index, 1);\n });\n };\n\n account.getAppointments = function (options) {\n var params = {\n page: options.page || 0,\n perpage: options.perpage || 10,\n pastonly: typeof account.pastOnly !== 'undefined' ? account.pastOnly : false\n };\n throbber.show();\n $http.get(API_URL + '/api/v1/calendar/customer/appointment', {\n params: params\n }).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError(response.msg);\n return;\n }\n\n account.appointments = response.appointments;\n account.paginationObject = {\n count: response.count,\n page: response.page,\n limit: response.limit || 10\n };\n });\n };\n\n account.changePage = function (page) {\n account.getAppointments({\n page: page\n });\n };\n\n function customerCanDeleteAppointments() {\n var closestCanCancel = smooth.calendarSettings.closestcancancel; // Check if the customer is allowed to delete appointments\n\n if (!smooth.calendarSettings.customercancancel) {\n account.hideDelete = true;\n return;\n } // Now go through all of the appointments and determine which are allowed to be deleted according\n // to config.\n\n\n moment.tz.setDefault(smooth.timeSettings.timezone);\n var cancelMoment = moment().add(closestCanCancel, 'hours');\n\n for (var i = 0; i < account.appointments.length; i++) {\n if (moment.unix(account.appointments[i].start).isBefore(cancelMoment)) {\n account.appointments[i].hideDelete = true;\n }\n }\n }\n\n function initTabs() {\n $('.tab-select').on('click', function (ev) {\n ev.preventDefault();\n var $parentContainer = $(this).closest('.tab-container');\n $parentContainer.find('.nav-tabs > li').removeClass('active');\n $parentContainer.find('.tab-pane').removeClass('active');\n var panelID = $(this).attr('id'); // Change content depending on which tab has been selected.\n\n if (panelID === 'tab_past_appointments') {\n account.pastOnly = true;\n account.getAppointments({});\n } else {\n account.pastOnly = false;\n account.getAppointments({});\n }\n\n $parentContainer.find('.' + panelID).addClass('active');\n $(this).closest('li').addClass('active');\n });\n }\n }\n})();","CustomerAccountController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\nangular.module('calendarApp').controller('CustomerAccountController', CustomerAccountController);\n\nfunction CustomerAccountController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var rego = this,\n throbber = $rootScope.throbber;\n rego.charging = smooth.charging;\n\n var init = function init() {\n throbber.show();\n $http.get(API_URL + '/api/v1/calendar/customer').then(function (_ref) {\n var response = _ref.data;\n throbber.hide();\n if (!response.success) return throbber.showError(response.msg);\n var customer = response.customer;\n rego.regoForm = angular.copy(smooth.forms.registration);\n rego.regoData = {};\n rego.form = {\n firstname: customer.firstname,\n lastname: customer.lastname,\n email: customer.email\n };\n\n if (response.customer.reginfo) {\n rego.regoData = response.customer.reginfo;\n }\n }).catch(function (err) {\n throbber.showError('Sorry but an error occurred: ' + err.message);\n });\n };\n\n init();\n\n rego.submitRego = function () {\n if (!rego.form.firstname || !rego.form.lastname || !rego.form.email) {\n alert('Please complete first name, last name and email fields');\n return;\n }\n\n rego.form.reginfo = rego.regoData || {};\n throbber && throbber.show();\n $http.put(API_URL + '/api/v1/calendar/customer', {\n customerinfo: rego.form\n }).then(function (_ref2) {\n var response = _ref2.data;\n if (!response.success) return throbber.showError('Sorry there was an error with this request: ' + response.msg);\n throbber.hide('Your details have been updated correctly');\n }).catch(function (err) {\n console.error(err.message);\n throbber.showError('Sorry but an error occurred with this request: ' + err.message);\n });\n };\n}","CustomerAccountManageInvoicesController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\nangular.module('calendarApp').controller('CustomerAccountManageInvoicesController', CustomerAccountManageInvoicesController);\n\nfunction CustomerAccountManageInvoicesController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var update = this,\n throbber = $rootScope.throbber;\n update.updatePaymentMethod = true;\n update.invoiceToPay = null;\n if (!window.Stripe) return $rootScope.throbber.showError(\"Sorry but an error occurred: could not connect to Stripe. Please try re-loading the page. \");\n\n update.chooseInvoice = function (index) {\n update.invoiceToPay = update.outstandingInvoices[index];\n };\n\n update.cancelInvoice = function (index) {\n if (!confirm('Please confirm you would like to cancel this invoice.')) return;\n var invoice = update.outstandingInvoices[index];\n $http.put(\"\".concat(API_URL, \"/api/v1/calendar/membership/payments/cancel-subscription/\").concat(invoice.stripesubscriptionid)).then(function (_ref) {\n var response = _ref.data;\n update.loading = false;\n throbber.hide('Invoice cancelled successfully');\n\n if (!response.success) {\n return throbber.showError(\"Sorry but an error occurred with this request: \".concat(response.msg));\n }\n\n init();\n }).catch(function (err) {\n update.loading = false;\n throbber.showError(\"Sorry but an error occurred with this request: \".concat(err.message));\n });\n };\n\n var init = function init() {\n throbber.show();\n update.loading = true;\n $http.get(\"\".concat(API_URL, \"/api/v1/calendar/membership/payments/unpaid-invoices\")).then(function (_ref2) {\n var response = _ref2.data;\n update.loading = false;\n throbber.hide();\n\n if (!response.success) {\n return throbber.showError(\"Sorry but an error occurred with this request: \".concat(response.msg));\n }\n\n update.outstandingInvoices = response.outstandingInvoices;\n }).catch(function (err) {\n update.loading = false;\n throbber.showError(\"Sorry but an error occurred with this request: \".concat(err.message));\n });\n };\n\n init();\n}","CustomerAccountMembershipsController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\nangular.module('calendarApp').controller('CustomerAccountMembershipsController', CustomerAccountMembershipsController);\n\nfunction CustomerAccountMembershipsController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var member = this,\n throbber = $rootScope.throbber;\n member.timeSettings = smooth.timeSettings;\n\n var init = function init() {\n throbber.show();\n $http.get(API_URL + '/api/v1/calendar/customer/membership').then(function (_ref) {\n var response = _ref.data;\n throbber.hide();\n\n if (!response.success) {\n var msg = $filter('calendarLabel')('Sorry but there was an error with this request: ') + response.msg;\n throbber.showError(msg);\n return;\n }\n\n member.memberships = response.memberships;\n }).catch(function (err) {\n throbber.showError(\"Sorry but an error has occurred: \".concat(err.message));\n });\n };\n\n init();\n\n member.cancelMembership = function (membershipID) {\n if (!confirm(\"Please confirm that you'd like to delete this membership. Your membership will remain active until the end of the billing cycle but you will not be billed again.\")) return;\n throbber.show();\n $http.put(API_URL + \"/api/v1/calendar/membership/delete/\".concat(membershipID)).then(function (_ref2) {\n var response = _ref2.data;\n if (!response.success) return throbber.showError(\"Sorry but an error occurred with this request: \".concat(response.msg));\n throbber.hide(\"Your membership has been cancelled successfully\");\n $timeout(function () {\n init();\n }, 2000);\n }).catch(function (err) {\n throbber.showError(\"Sorry but an error has occurred: \".concat(err.message));\n });\n };\n\n member.toggleHistory = function (membershipid) {\n $(\"#membership-transaction-history-table-\".concat(membershipid)).slideUp('slow');\n $(\"#membership-history-table-\".concat(membershipid)).slideToggle('slow');\n };\n\n member.toggleTransactionHistory = function (membershipid) {\n $(\"#membership-history-table-\".concat(membershipid)).slideUp('slow');\n $(\"#membership-transaction-history-table-\".concat(membershipid)).slideToggle('slow');\n };\n}","(function () {\n CustomerAccountPackagesController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\n angular.module('calendarApp').controller('CustomerAccountPackagesController', CustomerAccountPackagesController);\n\n function CustomerAccountPackagesController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var account = this,\n throbber = $rootScope.throbber;\n\n var init = function init() {\n throbber.show();\n account.paginationObject = {};\n $http.get(API_URL + '/api/v1/calendar/customer/package').then(function (reply) {\n var response = reply.data;\n throbber.hide();\n\n if (!response.success) {\n var msg = $filter('calendarLabel')('Sorry but there was an error with this request: ') + response.msg;\n throbber.showError(msg);\n return;\n }\n\n account.packages = response.packages;\n });\n $timeout(function () {\n initTabs();\n }, 0);\n };\n\n init();\n\n account.deleteAppointment = function ($index, appointment) {\n var confirmMessage = $filter('calendarLabel')('Please confirm you would like to delete this appointment');\n\n if (!confirm(confirmMessage)) {\n return;\n }\n\n throbber.show();\n $http.delete(API_URL + '/api/v1/calendar/customer/appointment/' + appointment._id).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError('Sorry but there was an error with this request. Please try again or contact support@smoothbook.co');\n return;\n }\n\n var deleteMessage = $filter('calendarLabel')('Appointment deleted successfully');\n throbber.hide(deleteMessage);\n account.appointments.splice($index, 1);\n });\n };\n\n account.getAppointments = function (options) {\n var params = {\n page: options.page || 0,\n perpage: options.perpage || 10,\n pastonly: typeof account.pastOnly !== 'undefined' ? account.pastOnly : false\n };\n throbber.show();\n $http.get(API_URL + '/api/v1/calendar/customer/appointment', {\n params: params\n }).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError(response.msg);\n return;\n }\n\n account.appointments = response.appointments;\n account.paginationObject = {\n count: response.count,\n page: response.page,\n limit: response.limit || 10\n };\n });\n };\n\n account.changePage = function (page) {\n account.getAppointments({\n page: page\n });\n };\n\n function customerCanDeleteAppointments() {\n var closestCanCancel = smooth.calendarSettings.closestcancancel; // Check if the customer is allowed to delete appointments\n\n if (!smooth.calendarSettings.customercancancel) {\n account.hideDelete = true;\n return;\n } // Now go through all of the appointments and determine which are allowed to be deleted according\n // to config.\n\n\n var cancelMoment = moment().add(closestCanCancel, 'hours');\n\n for (var i = 0; i < account.appointments.length; i++) {\n if (moment.unix(account.appointments[i].start).isBefore(cancelMoment)) {\n account.appointments[i].hideDelete = true;\n }\n }\n }\n\n function initTabs() {\n $('.tab-select').on('click', function (ev) {\n ev.preventDefault();\n var $parentContainer = $(this).closest('.tab-container');\n $parentContainer.find('.nav-tabs > li').removeClass('active');\n $parentContainer.find('.tab-pane').removeClass('active');\n var panelID = $(this).attr('id'); // Change content depending on which tab has been selected.\n\n if (panelID === 'tab_past_appointments') {\n account.pastOnly = true;\n account.getAppointments({});\n } else {\n account.pastOnly = false;\n account.getAppointments({});\n }\n\n $parentContainer.find('.' + panelID).addClass('active');\n $(this).closest('li').addClass('active');\n });\n }\n }\n})();","(function () {\n CustomerAccountTransactionsController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\n angular.module('calendarApp').controller('CustomerAccountTransactionsController', CustomerAccountTransactionsController);\n\n function CustomerAccountTransactionsController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var account = this,\n throbber = $rootScope.throbber;\n\n var init = function init() {\n throbber.show();\n account.paginationObject = {};\n $http.get(API_URL + '/api/v1/calendar/customer/transaction').then(function (reply) {\n var response = reply.data;\n throbber.hide();\n\n if (!response.success) {\n var msg = $filter('calendarLabel')('Sorry but there was an error with this request: ') + response.msg;\n throbber.showError(msg);\n return;\n }\n\n account.transactions = response.transactions;\n });\n $timeout(function () {\n initTabs();\n }, 0);\n };\n\n init();\n\n account.deleteAppointment = function ($index, appointment) {\n var confirmMessage = $filter('calendarLabel')('Please confirm you would like to delete this appointment');\n\n if (!confirm(confirmMessage)) {\n return;\n }\n\n throbber.show();\n $http.delete(API_URL + '/api/v1/calendar/customer/appointment/' + appointment._id).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError('Sorry but there was an error with this request. Please try again or contact support@smoothbook.co');\n return;\n }\n\n var deleteMessage = $filter('calendarLabel')('Appointment deleted successfully');\n throbber.hide(deleteMessage);\n account.appointments.splice($index, 1);\n });\n };\n\n account.getAppointments = function (options) {\n var params = {\n page: options.page || 0,\n perpage: options.perpage || 10,\n pastonly: typeof account.pastOnly !== 'undefined' ? account.pastOnly : false\n };\n throbber.show();\n $http.get(API_URL + '/api/v1/calendar/customer/appointment', {\n params: params\n }).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError(response.msg);\n return;\n }\n\n account.appointments = response.appointments;\n account.paginationObject = {\n count: response.count,\n page: response.page,\n limit: response.limit || 10\n };\n });\n };\n\n account.changePage = function (page) {\n account.getAppointments({\n page: page\n });\n };\n\n function customerCanDeleteAppointments() {\n var closestCanCancel = smooth.calendarSettings.closestcancancel; // Check if the customer is allowed to delete appointments\n\n if (!smooth.calendarSettings.customercancancel) {\n account.hideDelete = true;\n return;\n } // Now go through all of the appointments and determine which are allowed to be deleted according\n // to config.\n\n\n var cancelMoment = moment().add(closestCanCancel, 'hours');\n\n for (var i = 0; i < account.appointments.length; i++) {\n if (moment.unix(account.appointments[i].start).isBefore(cancelMoment)) {\n account.appointments[i].hideDelete = true;\n }\n }\n }\n\n function initTabs() {\n $('.tab-select').on('click', function (ev) {\n ev.preventDefault();\n var $parentContainer = $(this).closest('.tab-container');\n $parentContainer.find('.nav-tabs > li').removeClass('active');\n $parentContainer.find('.tab-pane').removeClass('active');\n var panelID = $(this).attr('id'); // Change content depending on which tab has been selected.\n\n if (panelID === 'tab_past_appointments') {\n account.pastOnly = true;\n account.getAppointments({});\n } else {\n account.pastOnly = false;\n account.getAppointments({});\n }\n\n $parentContainer.find('.' + panelID).addClass('active');\n $(this).closest('li').addClass('active');\n });\n }\n }\n})();","CustomerAccountUpdatePaymentController.$inject = [\"API_URL\", \"$http\", \"$q\", \"$timeout\", \"$rootScope\", \"$filter\"];\nangular.module('calendarApp').controller('CustomerAccountUpdatePaymentController', CustomerAccountUpdatePaymentController);\n\nfunction CustomerAccountUpdatePaymentController(API_URL, $http, $q, $timeout, $rootScope, $filter) {\n var update = this,\n throbber = $rootScope.throbber;\n update.updatePaymentMethod = true;\n update.invoiceToPay = null;\n if (!window.Stripe) return $rootScope.throbber.showError(\"Sorry but an error occurred: could not connect to Stripe. Please try re-loading the page. \");\n}","(function () {\n EUGDPRController.$inject = [\"API_URL\", \"$http\", \"$rootScope\", \"$location\", \"$cookies\", \"$timeout\"];\n angular.module('calendarApp').controller('EUGDPRController', EUGDPRController);\n\n function EUGDPRController(API_URL, $http, $rootScope, $location, $cookies, $timeout) {\n var eugdp = this;\n eugdp.isOwner = false;\n eugdp.orgName = smooth.orgName || '';\n eugdp.companyEugdpr = smooth.forms && smooth.forms.eugdpr ? smooth.forms.eugdpr : null; // Redirect if consent already obtained\n\n if ($rootScope.customerInfo && $rootScope.customerInfo.eugdprconsent) {\n redirect = true;\n $location.path('/');\n }\n\n eugdp.doConsent = function () {\n $rootScope.throbber.show();\n var customerInfo = {\n firstname: $rootScope.customerInfo.firstname,\n lastname: $rootScope.customerInfo.lastname,\n email: $rootScope.customerInfo.email,\n eugdprconsent: true\n };\n $http.put(API_URL + '/api/v1/calendar/customer', {\n customerinfo: customerInfo,\n newtoken: true\n }).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n return $rootScope.throbber.showError(response.msg);\n }\n\n $rootScope.throbber.hide('EUGDPR consent updated');\n $timeout(function () {\n $location.path('/');\n }, 2000);\n }).catch(function (err) {\n console.error(err.message);\n $rootScope.throbber.showError('Sorry but an error occurred: ' + err.message);\n });\n };\n\n eugdp.noConsent = function () {\n $('#no-consent-modal').modal('show');\n };\n\n eugdp.doLogout = function () {\n $('#no-consent-modal').modal('hide');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove(); // Delete jwt token from local storage and from cookie,\n // redirect to the login page.\n\n localStorage.removeItem('calendar-jwt-token');\n $cookies.remove('calendar-x-access-token');\n\n if (typeof $rootScope.customerInfo !== 'undefined') {\n delete $rootScope.customerInfo;\n }\n\n $location.path('/');\n };\n }\n})();","WaitlistController.$inject = [\"API_URL\", \"CALENDAR_URL\", \"$http\", \"$rootScope\", \"$location\", \"$routeParams\", \"$timeout\"];\nangular.module('calendarApp').controller('WaitlistController', WaitlistController);\n\nfunction WaitlistController(API_URL, CALENDAR_URL, $http, $rootScope, $location, $routeParams, $timeout) {\n var wait = this;\n wait.calendarHome = \"\".concat(CALENDAR_URL, \"/\").concat(smooth.orgid);\n var slotid = $routeParams.slotid,\n token = $routeParams.token,\n throbber = $rootScope.throbber;\n\n var init = function init() {\n throbber.show();\n $http.get(\"\".concat(API_URL, \"/api/v1/calendar/waitlist/authenticate/\").concat(slotid, \"/\").concat(token)).then(function (reply) {\n var response = reply.data;\n throbber.hide();\n if (response.errortype && response.errortype === 'NO_AVAILABILITY') return wait.noAvailability = true;\n\n if (!response.success) {\n wait.errorMessage = \"Sorry but there was an error with this request: \".concat(response.msg);\n return;\n }\n\n wait.success = true;\n console.log(response.chosenShift);\n $rootScope.chosenShift = response.chosenShift;\n }).catch(function (err) {\n throbber.showError(\"Sorry but there was an error with this request: \".concat(err.msg));\n });\n };\n\n init();\n\n wait.completeBooking = function () {\n $location.path('/chooseslots');\n };\n\n wait.cancelWaitlist = function () {\n $http.delete(\"\".concat(API_URL, \"/api/v1/calendar/waitlist/\").concat(slotid)).then(function (reply) {\n var response = reply.data;\n if (!response.success) return throbber.showError(\"Sorry but there was an error with this request: \".concat(response.msg));\n throbber.hide();\n wait.removeSuccess = true;\n $timeout(function () {\n $location.path('/');\n }, 3000);\n }).catch(function (err) {\n throbber.showError(\"Sorry but there was an error with this request: \".concat(err.msg));\n });\n };\n}","(function () {\n ResetPasswordController.$inject = [\"API_URL\", \"$http\", \"$timeout\", \"$routeParams\", \"$location\"];\n ForgotPasswordController.$inject = [\"API_URL\", \"CALENDAR_URL\", \"$http\", \"$timeout\"];\n angular.module('calendarApp').controller('ForgotPasswordController', ForgotPasswordController).controller('ResetPasswordController', ResetPasswordController);\n\n function ForgotPasswordController(API_URL, CALENDAR_URL, $http, $timeout) {\n var fog = this;\n fog.calendarUrl = CALENDAR_URL;\n\n fog.resetPassword = function () {\n fog.loading = true;\n fog.infoMessage = '';\n $http.post(API_URL + '/customerauth/forgotpassword', {\n emailaddress: fog.emailAddress,\n orgid: smooth.orgid\n }).then(function (reply) {\n var response = reply.data;\n fog.loading = false;\n\n if (!response.success) {\n fog.errorMessage = response.msg;\n $timeout(function () {\n fog.errorMessage = '';\n }, 3000);\n } else {\n fog.infoMessage = \"An email with instructions to reset your password has been sent to \" + fog.emailAddress + \". \" + \"Please check your spam folder if you don't receive the email within a minute or two.\";\n }\n }).catch(function (err) {\n fog.infoMessage = 'Sorry but there was an error with this request. Please contact support@smoothbook.co';\n });\n };\n }\n\n function ResetPasswordController(API_URL, $http, $timeout, $routeParams, $location) {\n var res = this,\n resetKey = $routeParams.resetkey;\n res.keyValid = false; // Remove any existing access token\n\n localStorage.removeItem('jwt-token'); // Check reset key\n\n $http.get(API_URL + '/customerauth/verifyresetkey/' + resetKey).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n res.failMessage = response.msg;\n return;\n }\n\n res.keyValid = true;\n });\n\n res.resetPassword = function () {\n if (res.password !== res.repeat) {\n res.noMatch = true;\n $timeout(function () {\n res.noMatch = false;\n }, 2000);\n return;\n }\n\n $http.post(API_URL + '/customerauth/resetpassword/', {\n newpassword: res.password,\n resetkey: resetKey\n }).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n res.failMessage = response.msg;\n return;\n } // Success. Token will be stored in local storage, redirect to dashboard.\n\n\n $location.path('#/login');\n });\n };\n }\n})();","(function () {\n SuperloginController.$inject = [\"API_URL\", \"$http\", \"$rootScope\", \"$location\"];\n angular.module('calendarApp').controller('SuperloginController', SuperloginController);\n\n function SuperloginController(API_URL, $http, $rootScope, $location) {\n var log = this,\n throbber = $rootScope.throbber;\n\n log.submitLogin = function () {\n throbber.show();\n log.loginForm.orgid = smooth.orgid;\n $http.post(API_URL + '/customerauth/superlogin', {\n customer: log.loginForm\n }).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError(response.msg);\n return;\n }\n\n $location.path('/');\n });\n };\n }\n})();","eugdpRedirect.$inject = [\"$rootScope\", \"$location\"];\nimport 'bootstrap/js/modal';\nangular.module('calendarApp').directive('eugdpRedirect', eugdpRedirect);\n\nfunction eugdpRedirect($rootScope, $location) {\n return {\n restrict: 'EA',\n replace: true,\n link: function link(scope, elem, attrs) {\n $rootScope.$watch('customerInfo', function () {\n if ($rootScope.customerInfo && !$rootScope.customerInfo.eugdprconsent) {\n $location.path('/account/eugdpr');\n }\n });\n }\n };\n}","import angular from 'angular';\nimport ngRoute from 'angular-route';\nimport angularJwt from 'angular-jwt';\nimport ngCookies from 'angular-cookies';\nimport ngTouch from 'angular-touch';\nimport ngAnimate from 'angular-animate';\nimport ngSanitize from 'angular-sanitize';\nimport 'babel-polyfill';\nimport moment from 'moment-timezone';\n\nvar configFile = require('../config/index.js');\n\nvar config = configFile.environments[ENVIRONMENT],\n smooth = config;\nRaven.config(\"https://1c13202c414b4b2aafc8917ea76b1a79@o485970.ingest.sentry.io/5542054\").install();\nwindow.smooth = config;\nwindow.moment = moment;\nvar calendarApp = angular.module('calendarApp', [// External libraries\n'ngRoute', 'angular-jwt', 'ngCookies', 'ngTouch', 'ngAnimate', 'ngSanitize', 'MainController', // Services\n'service.calendarService', // Directives\n'directive.dayContainer', 'directive.yogaShiftContainer', 'directive.throbber', 'directive.tooltip', 'directive.stripeCardPayment', 'directive.stripeCreateMembership', 'directive.stripeupdatepaymentmethod', 'directive.stripepayinvoice', // Filters\n'filter.smoothtime', 'filter.smoothdatetime', 'filter.smoothdate', // Services\n'service.paymentOptionService']).config([\"$routeProvider\", \"$locationProvider\", function ($routeProvider, $locationProvider) {\n $routeProvider.when('/', {\n template: ' ',\n controller: 'RootController'\n }) // Calendar one\n .when('/class', {\n templateUrl: smooth.calendar_url + '/partials/class-calendar.html',\n controller: 'HomeController',\n controllerAs: 'home'\n }).when('/home', {\n templateUrl: smooth.calendar_url + '/partials/class-calendar.html',\n controller: 'HomeController',\n controllerAs: 'home'\n }) // Calendar two\n .when('/service', {\n templateUrl: smooth.calendar_url + '/partials/service-calendar.html',\n controller: 'ServiceCalendarController',\n controllerAs: 'serv'\n }).when('/service-availability/:serviceid/:date', {\n templateUrl: smooth.calendar_url + '/partials/service-availability.html',\n controller: 'ServiceAvailabilityController',\n controllerAs: 'choose'\n }).when('/login', {\n template: ''\n }).when('/register', {\n template: ''\n }).when('/forgot-password', {\n templateUrl: smooth.calendar_url + '/partials/forgot-password.html',\n controller: 'ForgotPasswordController',\n controllerAs: 'fog'\n }).when('/reset-password/:resetkey', {\n templateUrl: smooth.calendar_url + '/partials/reset-password.html',\n controller: 'ResetPasswordController',\n controllerAs: 'res'\n }).when('/chooseslots', {\n templateUrl: smooth.calendar_url + '/partials/choose-slots.html',\n controller: 'ChooseSlotsController',\n controllerAs: 'choose'\n }).when('/futureslots', {\n templateUrl: smooth.calendar_url + '/partials/future-slots.html',\n controller: 'FutureSlotsController',\n controllerAs: 'future'\n }).when('/overbooked/:referrer', {\n templateUrl: smooth.calendar_url + '/partials/overbooked.html',\n controller: 'OverbookedController',\n controllerAs: 'over'\n }).when('/preview', {\n templateUrl: smooth.calendar_url + '/partials/preview.html',\n controller: 'PreviewController',\n controllerAs: 'preview'\n }).when('/review', {\n templateUrl: smooth.calendar_url + '/partials/review.html',\n controller: 'ReviewController',\n controllerAs: 'review'\n }).when('/confirmrego', {\n templateUrl: smooth.calendar_url + '/partials/confirm-rego.html',\n controller: 'ConfirmRegoController',\n controllerAs: 'rego'\n }).when('/bookingform', {\n templateUrl: smooth.calendar_url + '/partials/booking-form.html',\n controller: 'BookingFormController',\n controllerAs: 'book'\n }).when('/choose-payment', {\n templateUrl: smooth.calendar_url + '/partials/choose-payment.html',\n controller: 'ChoosePaymentController',\n controllerAs: 'pay'\n }).when('/payment', {\n templateUrl: smooth.calendar_url + '/partials/payment.html',\n controller: 'PaymentController',\n controllerAs: 'pay'\n }).when('/confirm', {\n templateUrl: smooth.calendar_url + '/partials/confirm.html',\n controller: 'ConfirmController',\n controllerAs: 'confirm'\n }).when('/account/appointments', {\n templateUrl: smooth.calendar_url + '/partials/customer-account-appointments.html',\n controller: 'CustomerAccountAppointmentsController',\n controllerAs: 'account'\n }).when('/account/transactions', {\n templateUrl: smooth.calendar_url + '/partials/customer-account-transactions.html',\n controller: 'CustomerAccountTransactionsController',\n controllerAs: 'account'\n }).when('/account/packages', {\n templateUrl: smooth.calendar_url + '/partials/customer-account-packages.html',\n controller: 'CustomerAccountPackagesController',\n controllerAs: 'account'\n }).when('/account/memberships', {\n templateUrl: smooth.calendar_url + '/partials/customer-account-memberships.html',\n controller: 'CustomerAccountMembershipsController',\n controllerAs: 'member'\n }).when('/account/update-payment-method', {\n templateUrl: smooth.calendar_url + '/partials/customer-account-update-payment.html',\n controller: 'CustomerAccountUpdatePaymentController',\n controllerAs: 'update'\n }).when('/account/manage-invoices', {\n templateUrl: smooth.calendar_url + '/partials/customer-account-manage-invoices.html',\n controller: 'CustomerAccountManageInvoicesController',\n controllerAs: 'update'\n }).when('/account/eugdpr', {\n templateUrl: smooth.calendar_url + '/partials/customer-eugdpr.html',\n controller: 'EUGDPRController',\n controllerAs: 'eugdp'\n }).when('/account', {\n templateUrl: smooth.calendar_url + '/partials/customer-account.html',\n controller: 'CustomerAccountController',\n controllerAs: 'rego'\n }).when('/waitlist/:slotid/:token', {\n templateUrl: smooth.calendar_url + '/partials/waitlist.html',\n controller: 'WaitlistController',\n controllerAs: 'wait'\n }).when('/superlogin', {\n templateUrl: smooth.calendar_url + '/partials/super-login.html',\n controller: 'SuperloginController',\n controllerAs: 'log'\n }).otherwise({\n redirectTo: '/'\n }); // $locationProvider.html5Mode(true); Not currently working\n\n $locationProvider.hashPrefix('');\n}]) // .constant('BASE_URL', smooth.base_url)\n.constant('CALENDAR_URL', smooth.calendar_url).constant('API_URL', smooth.api_url) // Monitor all requests and responses, check for and assign JWT token.\n.factory('AuthIntercept', [\"$window\", \"$rootScope\", \"$location\", \"API_URL\", \"jwtHelper\", function ($window, $rootScope, $location, API_URL, jwtHelper) {\n var authInterceptor = {\n request: function request(req) {\n var token = localStorage.getItem('calendar-jwt-token'); // Append token to header if it exists. Currently occurs on\n // every request.\n\n if (token) {\n req.headers['calendar-x-access-token'] = token; // Get user info from the token and store globally.\n\n var payload = jwtHelper.decodeToken(token); // Check for token expiry\n\n if (moment.unix(payload.exp).isBefore(moment())) {\n delete $rootScope.customerInfo;\n localStorage.removeItem('calendar-jwt-token');\n return req;\n }\n\n $rootScope.customerInfo = payload.customer && payload.customer;\n }\n\n return req;\n },\n response: function response(res) {\n // Token sent. Store it\n if (res.data.success && res.data.token) {\n localStorage.setItem('calendar-jwt-token', res.data.token);\n }\n\n return res;\n },\n responseError: function responseError(rejection) {\n if (rejection.status === 401) {\n // Remove existing token\n localStorage.removeItem('calendar-jwt-token');\n $location.path('/login');\n return;\n }\n\n return rejection;\n }\n };\n return authInterceptor;\n}]).config([\"$httpProvider\", function ($httpProvider) {\n $httpProvider.interceptors.push(\"AuthIntercept\");\n}]) // This function is helpful for global settings and settings specific to the page / context.\n.run([\"$rootScope\", \"$route\", \"$location\", \"jwtHelper\", \"$timeout\", \"$cookies\", function ($rootScope, $route, $location, jwtHelper, $timeout, $cookies) {\n $rootScope.$on('$routeChangeSuccess', function (e, current, pre) {\n var cookie = $cookies.get('smoothbook-cookie-consent') || localStorage.getItem('smoothbook-cookie-consent');\n\n if (!cookie) {\n $timeout(function () {\n $('#cookie-consent-modal').modal();\n }, 0);\n } else {\n if (!$rootScope.cookieConsent) {\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function () {\n dataLayer.push(arguments);\n };\n\n gtag('js', new Date());\n gtag('config', 'UA-172578396-1');\n $rootScope.cookieConsent = true;\n } // Don't start analytics or adsense without cookie consent\n\n\n gtag && gtag('config', 'UA-172578396-1', {\n 'page_path': location\n });\n\n try {\n if (smooth.env !== 'dev' && !smooth.subscribed) {\n (adsbygoogle = window.adsbygoogle || []).push({});\n }\n } catch (e) {}\n }\n\n var location = $location.path();\n var token = localStorage.getItem('calendar-jwt-token');\n $rootScope.authorising = false;\n\n if (token) {\n // Get user info from the token and store globally.\n var payload = jwtHelper.decodeToken(token);\n $rootScope.customerInfo = payload.customer;\n }\n\n $rootScope.safeApply = function safeApply(operation) {\n var phase = this.$root.$$phase;\n\n if (phase !== '$apply' && phase !== '$digest') {\n this.$apply(operation);\n return;\n }\n\n if (operation && typeof operation === 'function') operation();\n };\n\n var original = $location.path;\n\n $location.path = function (path, reload) {\n if (reload === false) {\n var lastRoute = $route.current;\n var un = $rootScope.$on('$locationChangeSuccess', function () {\n $route.current = lastRoute;\n un();\n });\n }\n\n return original.apply($location, [path]);\n };\n });\n}]);\nexport default calendarApp;","ConfirmController.$inject = [\"$location\", \"$rootScope\", \"$sce\"];\nimport 'font-awesome/css/font-awesome.css';\nimport 'bootstrap-social/bootstrap-social.css';\nangular.module('calendarApp').controller('ConfirmController', ConfirmController);\n\nfunction ConfirmController($location, $rootScope, $sce) {\n var confirm = this;\n\n confirm.init = function () {\n // Get appointments and payment info from storage\n var appointments = localStorage.getItem('new-appointments'),\n paymentState = localStorage.getItem('payment-state');\n\n if (!appointments || appointments === 'undefined') {\n localStorage.removeItem('confirmed-appointments');\n localStorage.removeItem('payment-state');\n $location.path('/');\n return;\n }\n\n confirm.paymentState = paymentState ? JSON.parse(paymentState) : null;\n confirm.appointments = JSON.parse(appointments);\n confirm.currencySettings = smooth.currencySettings;\n confirm.social = smooth.social && smooth.social.confirmationpage && (smooth.social.facebook || smooth.social.twitter || smooth.social.instagram || smooth.social.youtube || smooth.social.linkedin) ? smooth.social : null;\n var service = confirm.appointments[0].serviceid;\n service.instructions = service.instructions && service.instructions.trim();\n confirm.zoom = confirm.appointments.find(function (appt) {\n return appt.zoom && appt.zoom.join_url;\n });\n\n if (service.instructions && service.instructions.length > 10) {\n confirm.serviceInstructions = $sce.trustAsHtml(service.instructions);\n }\n\n gtag('event', 'appointment made', {\n event_category: 'appointments',\n event_label: 'appointment made',\n value: confirm.appointments.length\n });\n };\n\n confirm.init();\n\n confirm.backToHome = function () {\n delete $rootScope.newAppointments;\n localStorage.removeItem('new-appointments');\n localStorage.removeItem('payment-state');\n $location.path('/');\n };\n}","googleBannerAdsBottom.$inject = [\"$rootScope\", \"$timeout\"];\nangular.module('calendarApp').directive('googleBannerAdsBottom', googleBannerAdsBottom);\n\nfunction inIframe() {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\nfunction doAdsense(scope, $timeout) {\n try {\n scope.bannerCount = parseInt(Math.random() * 1000);\n\n if (smooth.env !== 'dev' && !smooth.subscribed) {\n $timeout(function () {\n try {\n (adsbygoogle = window.adsbygoogle || []).push({});\n } catch (err) {}\n }, 0);\n }\n } catch (e) {}\n}\n\nfunction doMonumetrics(scope, elem) {\n elem.ready(function () {\n console.log('initialising banner bottom');\n scope.bannerCount = parseInt(Math.random() * 1000);\n $MMT = window.$MMT || {};\n $MMT.cmd = $MMT.cmd || [];\n $MMT.cmd.push(function () {\n $MMT.display.slots.push([\"818b8d1a-b4ce-42f9-a9b7-83145166bad9\"]);\n });\n });\n}\n\nfunction googleBannerAdsBottom($rootScope, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/advertisements/google-ads-bottom.html',\n scope: true,\n link: function link(scope, elem, attrs) {\n scope.devMode = smooth.env === 'dev';\n scope.showBanner = smooth.globalCharging && !smooth.subscribed;\n scope.adsType = smooth.adsprovider || 'ADSENSE';\n if (!$rootScope.cookieConsent) return;\n\n if (!scope.showBanner) {\n gtag('event', 'banner hidden', {\n event_category: 'banners',\n event_label: 'bottom'\n });\n return;\n }\n\n if (scope.adsType === 'MONUMETRICS') {\n doMonumetrics($rootScope, elem);\n } else {\n doAdsense(scope, $timeout);\n }\n\n if (inIframe()) {\n gtag('event', 'banner launched in iframe', {\n event_category: 'banners',\n event_label: 'bottom'\n });\n } else {\n gtag('event', 'banner impression', {\n event_category: 'banners',\n event_label: 'bottom'\n });\n }\n }\n };\n}","googleBannerAdsTop.$inject = [\"$rootScope\", \"$timeout\"];\nangular.module('calendarApp').directive('googleBannerAdsTop', googleBannerAdsTop);\n\nfunction inIframe() {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\nfunction doAdsense(scope, $timeout) {\n try {\n scope.bannerCount = parseInt(Math.random() * 1000);\n\n if (smooth.env !== 'dev' && !smooth.subscribed) {\n $timeout(function () {\n try {\n (adsbygoogle = window.adsbygoogle || []).push({});\n } catch (err) {}\n }, 0);\n }\n } catch (e) {}\n}\n\nfunction doMonumetrics(rootScope, elem, scope) {\n elem.ready(function () {\n console.log('initialising banner');\n scope.bannerCount = parseInt(Math.random() * 1000);\n $MMT = window.$MMT || {};\n $MMT.cmd = $MMT.cmd || [];\n $MMT.cmd.push(function () {\n $MMT.display.slots.push([\"1e3d7623-8ec7-4927-b30d-5529f5c76ab4\"]);\n });\n });\n}\n\nfunction googleBannerAdsTop($rootScope, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/advertisements/google-ads-top.html',\n scope: true,\n link: function link(scope, elem, attrs) {\n scope.devMode = smooth.env === 'dev';\n scope.showBanner = smooth.globalCharging && !smooth.subscribed;\n scope.adsType = smooth.adsprovider || 'ADSENSE';\n if (!$rootScope.cookieConsent) return;\n\n if (!scope.showBanner) {\n gtag('event', 'banner hidden', {\n event_category: 'banners',\n event_label: 'top'\n });\n return;\n }\n\n if (scope.adsType === 'MONUMETRICS') {\n doMonumetrics($rootScope, elem, scope);\n } else {\n doAdsense(scope, $timeout);\n }\n\n if (inIframe()) {\n gtag('event', 'banner launched in iframe', {\n event_category: 'banners',\n event_label: 'top'\n });\n } else {\n gtag('event', 'banner impression', {\n event_category: 'banners',\n event_label: 'top'\n });\n }\n }\n };\n}","(function () {\n appointmentCountdown.$inject = [\"API_URL\", \"$interval\", \"$location\", \"$http\", \"$rootScope\"];\n angular.module('calendarApp').directive('appointmentCountdown', appointmentCountdown);\n\n function appointmentCountdown(API_URL, $interval, $location, $http, $rootScope) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/appointment-countdown.html',\n scope: {\n selectedSlots: '='\n },\n link: function link(scope, elem, attrs) {\n moment.tz.setDefault(smooth.timeSettings.timezone);\n var timerStarted = false,\n intervalPromise;\n\n if (!scope.selectedSlots || !scope.selectedSlots.length || !scope.selectedSlots[0].expiry || timerStarted) {\n return;\n } // Timer for timeleft\n\n\n scope.timeLeft = moment(new Date(scope.selectedSlots[0].expiry).toISOString());\n timerStarted = true;\n intervalPromise = $interval(function () {\n var diff = scope.timeLeft.diff(moment(), 'seconds');\n scope.showBlink = false;\n\n if (diff < 60) {\n scope.showBlink = true;\n }\n\n if (diff <= 0) {\n $interval.cancel(intervalPromise);\n localStorage.removeItem('reserved-appointments');\n $location.path('/');\n return;\n }\n\n var duration = moment.duration(diff, 'seconds'),\n secondsDisplay = duration.seconds();\n secondsDisplay = String(secondsDisplay).length < 2 ? '0' + secondsDisplay : secondsDisplay;\n scope.timeDisplay = duration.minutes() + ':' + secondsDisplay;\n }, 1000);\n scope.$on('$destroy', function () {\n if (intervalPromise) $interval.cancel(intervalPromise);\n });\n\n scope.renew = function () {\n $rootScope.throbber.show();\n var appointmentids = scope.selectedSlots.map(function (appointment) {\n return appointment._id;\n });\n $http.put(API_URL + '/api/v1/calendar/appointment/renewexpiry', {\n appointmentids: appointmentids\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError('Sorry but there was an error with this query ' + response.msg);\n return;\n }\n\n scope.selectedSlots = response.appointments;\n scope.timeLeft = moment(new Date(scope.selectedSlots[0].expiry).toISOString());\n localStorage.setItem('reserved-appointments', JSON.stringify(scope.selectedSlots));\n });\n };\n }\n };\n }\n})();","(function () {\n appointmentList.$inject = [\"API_URL\", \"$http\", \"$rootScope\", \"$location\"];\n angular.module('calendarApp').directive('appointmentList', appointmentList);\n\n function appointmentList(API_URL, $http, $rootScope, $location) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/appointment-list.html',\n scope: {\n appointments: '=',\n hideDelete: '=?',\n waitlist: '=?',\n // Don't show waitlist on review page, etc.\n chooseWaitlist: '=?',\n onDelete: '=?',\n showPayment: '=?'\n },\n link: function link(scope, elem, attrs) {\n scope.timeSettings = smooth.timeSettings;\n scope.hasResource = scope.appointments.find(function (appt) {\n return !!appt.resourceid;\n });\n scope.$watch('appointments', function () {\n if (!scope.appointments || !scope.appointments.length) {\n return;\n }\n\n scope.appointments.sort(function (app1, app2) {\n return app1.start > app2.start;\n });\n scope.showZoom = !!scope.appointments.find(function (appt) {\n return appt.zoom && appt.zoom.join_url;\n });\n });\n\n scope.doWaitlist = function (appointment) {\n scope.chooseWaitlist(appointment);\n };\n }\n };\n }\n})();","(function () {\n customerLogin.$inject = [\"API_URL\", \"CALENDAR_URL\", \"$http\", \"$sce\", \"$rootScope\", \"$filter\", \"$timeout\", \"$location\", \"SingleSlotService\"];\n angular.module('calendarApp').directive('customerLogin', customerLogin);\n\n function customerLogin(API_URL, CALENDAR_URL, $http, $sce, $rootScope, $filter, $timeout, $location, SingleSlotService) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/customer-login.html',\n scope: true,\n link: function link(scope, elem, attrs) {\n scope.loginScope = scope;\n var searchParams = $location.search();\n scope.customer = {};\n scope.showRego = false; // Show login form first\n\n scope.regoForm = smooth.forms.registration;\n scope.regoData = {};\n scope.loginForm = {\n orgid: smooth.orgid\n };\n scope.eugdpr = smooth.forms && smooth.forms.eugdpr ? smooth.forms.eugdpr : null;\n scope.orgName = smooth.orgName || '';\n scope.calendarUrl = \"\".concat(CALENDAR_URL, \"/\").concat(smooth.orgid);\n scope.rememberme = true;\n scope.mailchimplist = !!smooth.mailchimplist;\n scope.newsletterSubscribe = true; // User should not be able to browse to the login page if they're already logged in.\n // chosen shifts will be stored on rootScope\n\n scope.hasChosenShift = !!$rootScope.chosenShift;\n\n if ($location.path() === '/register') {\n scope.showRego = true;\n }\n\n scope.showEugdpr = function () {\n // EUGDPR\n $('#eugdpr-modal').modal('show');\n };\n\n scope.submitRego = function () {\n scope.customer.orgid = smooth.orgid;\n scope.customer.facebookid = scope.facebookID;\n scope.customer.reginfo = scope.regoData;\n scope.loading = true;\n $('#eugdpr-modal').modal('hide');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n getRecaptchaToken().then(function (token) {\n $http.post(API_URL + '/customerauth/register', {\n token: token,\n customerinfo: scope.customer,\n rememberme: !!scope.rememberme,\n newslettersubscribe: scope.newsletterSubscribe\n }).then(function (reply) {\n scope.loading = false;\n var response = reply.data;\n\n if (!response.success) {\n scope.errorMessage = $filter('calendarLabel')(response.msg);\n $timeout(function () {\n scope.errorMessage = '';\n }, 3000);\n console.error('Error: ' + response.msg);\n return;\n }\n\n scope.successMessage = $filter('calendarLabel')('Registration successful');\n $rootScope.customerInfo = response.customer;\n $timeout(function () {\n scope.successMessage = ''; // This will only be set if the customer is using calendar one.\n // Otherwise serviceid and date params will be set\n\n if (scope.hasChosenShift) {\n shift = $rootScope.chosenShift;\n\n if (shift.waitlist || shift.timeslots.length > 1 || shift.bookmulti > 1) {\n $location.path('/chooseslots');\n return;\n }\n\n SingleSlotService.reserveSlot(shift).then(function () {\n // No slot chooser, show future days?\n if (smooth.calendarSettings.bookfuturedays) {\n $location.path('/futureslots');\n return;\n }\n\n $location.path('/review');\n }, function () {// Probably overbooking. The user will have been redirected.\n });\n } else {\n var calendarType = localStorage.getItem('calendar-type');\n\n if (!calendarType || calendarType !== 'SERVICE_CALENDAR') {\n $location.path('/');\n } else {\n var serviceID = searchParams.serviceid,\n date = searchParams.date;\n $location.path('/service-availability/' + serviceID + '/' + date);\n }\n }\n }, 2000);\n }, function (error) {\n console.error('Error: ' + error.errorMessage);\n });\n });\n };\n\n scope.submitLogin = function () {\n scope.loading = true;\n scope.emailNotFound = false;\n $http.post(API_URL + '/customerauth/login', {\n customer: scope.loginForm,\n rememberme: scope.rememberme\n }).then(function (reply) {\n scope.loading = false;\n var response = reply.data;\n\n if (!response.success) {\n if (response.emailnotfound) {\n scope.emailNotFound = response.emailnotfound;\n return;\n }\n\n scope.errorMessage = $filter('calendarLabel')(response.msg);\n if (!scope.errorMessage) scope.errorMessage = 'Sorry but an expected error has occurred. Please try again and contact support@smoothbook.co ' + 'if this error persists';\n $timeout(function () {\n scope.errorMessage = '';\n }, 3000);\n console.error('Error: ' + response.msg);\n return;\n }\n\n $rootScope.customerInfo = response.customer;\n scope.successMessage = $filter('calendarLabel')('Login successful');\n $timeout(function () {\n scope.successMessage = '';\n\n if (scope.hasChosenShift) {\n shift = $rootScope.chosenShift;\n\n if (shift.waitlist || shift.timeslots.length > 1 || shift.bookmulti > 1) {\n $location.path('/chooseslots');\n return;\n } // Skip choose slots\n\n\n SingleSlotService.reserveSlot(shift).then(function () {\n // No slot chooser, show future days?\n if (smooth.calendarSettings.bookfuturedays) {\n $location.path('/futureslots');\n return;\n }\n\n $location.path('/review');\n }, function () {// Probably overbooking. The user will have been redirected.\n });\n } else {\n var calendarType = localStorage.getItem('calendar-type');\n\n if (!calendarType || calendarType !== 'SERVICE_CALENDAR') {\n $location.path('/');\n } else {\n var serviceID = searchParams.serviceid,\n date = searchParams.date;\n\n if (!serviceID || !date) {\n return $location.path('/');\n }\n\n $location.path('/service-availability/' + serviceID + '/' + date);\n }\n }\n }, 2000);\n }).catch(function (err) {\n console.error(err);\n });\n };\n\n scope.facebookUpdateRego = function (info) {\n scope.customer.firstname = info.first_name;\n scope.customer.lastname = info.last_name;\n scope.customer.email = info.email;\n scope.facebookID = info.id;\n scope.facebookEmail = info.email;\n $rootScope.safeApply();\n };\n\n scope.cancel = function () {\n delete $rootScope.chosenShift;\n $location.path('/');\n };\n }\n };\n }\n\n var getRecaptchaToken = function getRecaptchaToken() {\n return new Promise(function (resolve, reject) {\n grecaptcha.execute('6Ldq-K8UAAAAAJtC6lVsC9Rc-FJXd8UNDphcYtav', {\n action: 'homepage'\n }).then(function (token) {\n resolve(token);\n });\n });\n };\n})();","(function () {\n customerLoginModal.$inject = [\"API_URL\"];\n angular.module('calendarApp').directive('customerLoginModal', customerLoginModal);\n\n function customerLoginModal(API_URL) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/customer-login-modal.html',\n scope: {\n parentScope: '='\n },\n link: function link(scope, elem, attrs) {\n scope.loginModal = scope;\n\n scope.parentScope.showLoginModal = function () {\n $('#customer-login-modal').modal('show');\n };\n\n scope.hideModal = function () {\n $('#customer-login-modal').modal('hide');\n };\n }\n };\n }\n})();","(function () {\n loginWithFacebook.$inject = [\"API_URL\"];\n angular.module('calendarApp').directive('loginWithFacebook', loginWithFacebook);\n\n function loginWithFacebook(API_URL) {\n return {\n restrict: 'E',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/login-with-facebook.html',\n scope: {\n updateFunction: '='\n },\n link: function link(scope, elem, attrs) {\n scope.showLogout = true;\n\n scope.loginWithFacebook = function () {\n FB.login(function (response) {\n if (response.status === 'connected') {\n // Logged into your app and Facebook.\n // Now get name and email\n FB.api('/me', {\n fields: ['first_name', 'last_name', 'email']\n }, function (response) {\n console.log(response);\n scope.updateFunction(response);\n });\n } else if (response.status === 'not_authorized') {// The person is logged into Facebook, but not your app.\n } else {// The person is not logged into Facebook, so we're not sure if\n // they are logged into this app or not.\n }\n }, {\n scope: 'public_profile,email'\n });\n };\n\n scope.logoutOfFacebook = function () {\n // Check that application urls are valid if you get weird errors\n FB.logout(function (response) {\n console.log(response);\n });\n };\n }\n };\n }\n})();","(function () {\n calendarHeader.$inject = [\"API_URL\", \"$rootScope\", \"$cookies\", \"$location\"];\n angular.module('calendarApp').directive('calendarHeader', calendarHeader);\n\n function calendarHeader(API_URL, $rootScope, $cookies, $location) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/calendar-header.html',\n scope: {\n days: '=',\n home: '='\n },\n link: function link(scope, elem, attrs) {\n scope.header = scope;\n scope.customerInfo = $rootScope.customerInfo;\n scope.$watch('days', showNextPrevious);\n\n function showNextPrevious() {\n if (!scope.home.days || !scope.home.days.length) {\n return;\n }\n\n scope.showPrevious = true;\n scope.showNext = true;\n var startDate = moment(scope.home.days[0].date);\n\n if (startDate.isSameOrBefore(moment(scope.home.daysAvailable[0]))) {\n scope.showPrevious = false;\n }\n\n var lastAvailableDay = moment(scope.home.daysAvailable[scope.home.daysAvailable.length - 1]);\n\n if (moment(scope.home.days[scope.home.days.length - 1].date).isSameOrAfter(lastAvailableDay)) {\n scope.showNext = false;\n }\n }\n\n scope.removeFilter = function (type) {\n if (type === 'service') {\n scope.home.chosenService = '1';\n $location.search('serviceid', null);\n }\n\n if (type === 'resource') {\n scope.home.chosenResource = '1';\n $location.search('resourceid', null);\n }\n\n if (type == 'date') {\n scope.home.chosenDate = null;\n $location.search('date', null);\n }\n };\n\n $rootScope.$watch('customerInfo', function () {\n scope.customerInfo = $rootScope.customerInfo;\n });\n }\n };\n }\n})();","customerAccountButton.$inject = [\"API_URL\", \"$rootScope\", \"$http\", \"$cookies\", \"$location\"];\nimport 'bootstrap/js/dropdown';\nangular.module('calendarApp').directive('customerAccountButton', customerAccountButton);\n\nfunction customerAccountButton(API_URL, $rootScope, $http, $cookies, $location) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/customer-account-button.html',\n link: function link(scope, elem, attrs) {\n scope.charging = smooth.charging; // If the customer is logged in, check for any outstanding invoices.\n\n if (smooth.charging && $rootScope.customerInfo) {\n $http.get(\"\".concat(API_URL, \"/api/v1/calendar/membership/payments/unpaid-invoices\")).then(function (_ref) {\n var response = _ref.data;\n\n if (!response.success) {\n // Not 100% what to do here...\n return console.error('Could not retrieve customer invoices');\n }\n\n $rootScope.outstandingInvoices = response.outstandingInvoices;\n scope.outstandingInvoices = $rootScope.outstandingInvoices;\n $rootScope.safeApply && $rootScope.safeApply();\n }).catch(function (err) {\n console.error(\"Error retrieving customer invoices: \".concat(err.message));\n });\n }\n\n scope.logOut = function () {\n // Delete jwt token from local storage and from cookie,\n // redirect to the login page.\n localStorage.removeItem('calendar-jwt-token');\n $cookies.remove('calendar-x-access-token');\n\n if (typeof $rootScope.customerInfo !== 'undefined') {\n delete $rootScope.customerInfo;\n }\n\n $location.path('/');\n };\n }\n };\n}","customerAccountLinks.$inject = [\"API_URL\", \"$rootScope\", \"$cookies\", \"$location\"];\nimport 'bootstrap/js/dropdown';\nangular.module('calendarApp').directive('customerAccountLinks', customerAccountLinks);\n\nfunction customerAccountLinks(API_URL, $rootScope, $cookies, $location) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/customer-account-links.html',\n link: function link(scope, elem, attrs) {\n scope.charging = smooth.charging;\n }\n };\n}","(function () {\n customerPackages.$inject = [\"API_URL\"];\n angular.module('calendarApp').directive('customerPackages', customerPackages);\n\n function customerPackages(API_URL) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/customer/customer-packages.html',\n scope: {\n packages: '='\n },\n link: function link(scope, elem, attrs) {\n scope.viewHistory = function ($index) {\n $('.items-container-' + $index).slideToggle();\n };\n }\n };\n }\n})();","(function () {\n customerTransactions.$inject = [\"API_URL\"];\n angular.module('calendarApp').directive('customerTransactions', customerTransactions);\n\n function customerTransactions(API_URL) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/customer/customer-transactions.html',\n scope: {\n transactions: '='\n },\n link: function link(scope, elem, attrs) {\n scope.currencySettings = smooth.currencySettings;\n\n scope.viewItems = function ($index) {\n $('.items-container-' + $index).slideToggle();\n };\n }\n };\n }\n})();","datePicker.$inject = [\"API_URL\", \"$http\", \"$timeout\"];\n\nrequire('eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js');\n\nangular.module('calendarApp').directive('datePicker', datePicker);\n\nfunction datePicker(API_URL, $http, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/date-picker.html',\n scope: {\n days: '=',\n daysAvailable: '=',\n chosenDate: '=',\n dateChanged: '='\n },\n link: function link(scope, elem, attrs) {\n var init = function init() {\n $timeout(function () {\n var options = {\n format: 'MMMM Do YYYY',\n focusOnShow: false,\n enabledDates: [],\n useCurrent: false,\n locale: moment.locale(smooth.locale)\n };\n\n if (scope.chosenDate) {\n options.defaultDate = moment(scope.chosenDate);\n }\n\n $('.sb-datepicker').datetimepicker(options);\n $('.sb-datepicker').on('dp.change', function (event) {\n event.preventDefault();\n scope.chosenDate = event.date.format('YYYY-MM-DD');\n scope.dateChanged(scope.chosenDate);\n return false;\n });\n }, 0);\n }; // End init\n\n\n init();\n scope.$watch('daysAvailable', updatePickerDates);\n\n function updatePickerDates() {\n if (!scope.daysAvailable || !scope.daysAvailable.length) {\n return;\n }\n\n var momentDates = [],\n maxSettingsDate = moment().add(smooth.calendarSettings.showcalendardays, 'days').hours(23).minutes(59);\n\n for (var i = 0; i < scope.daysAvailable.length; i++) {\n if (moment(scope.daysAvailable).isSameOrAfter(maxSettingsDate)) {\n break;\n }\n\n momentDates.push(moment(scope.daysAvailable[i]));\n } // NB: $timeout is necessary\n\n\n $timeout(function () {\n if (!$('.sb-datepicker').data(\"DateTimePicker\")) {\n return;\n }\n\n $('.sb-datepicker').data(\"DateTimePicker\").enabledDates(momentDates).minDate(moment()).maxDate(moment(scope.daysAvailable[scope.daysAvailable.length - 1]));\n }, 0);\n }\n }\n };\n}","(function () {\n formBuilder.$inject = [\"API_URL\"];\n angular.module('calendarApp').directive('formBuilder', formBuilder);\n\n function formBuilder(API_URL) {\n return {\n restrict: 'EA',\n templateUrl: smooth.calendar_url + '/partials/directives/form-builder.html',\n scope: {\n formItems: '=',\n formData: '=',\n viewing: '=?'\n },\n link: function link(scope, elem, attrs) {}\n };\n }\n})();","headerContainer.$inject = [\"API_URL\", \"$rootScope\", \"$timeout\"];\nangular.module('calendarApp').directive('headerContainer', headerContainer);\n\nfunction headerContainer(API_URL, $rootScope, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n template: \"
\\n\\n \\n \\n \\n
\",\n link: function link(scope, elem, attrs) {}\n };\n}","logoContainer.$inject = [\"API_URL\", \"$rootScope\", \"$timeout\"];\nangular.module('calendarApp').directive('logoContainer', logoContainer);\n\nfunction logoContainer(API_URL, $rootScope, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n template: '',\n link: function link(scope, elem, attrs) {\n scope.orgID = smooth.orgid;\n scope.logoSrc = smooth.calendarSettings.logo && smooth.calendarSettings.logo.display && smooth.calendarSettings.logo.display.url;\n scope.logoWidth = smooth.calendarSettings.logowidth ? smooth.calendarSettings.logowidth : 1000;\n scope.logoWidth = smooth.calendarSettings.logowidth ? \"\".concat(smooth.calendarSettings.logowidth, \"px\") : '22%';\n }\n };\n}","angular.module('calendarApp').directive('costModal', function () {\n return {\n restrict: 'AE',\n scope: {\n costs: '=?'\n },\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/cost-modal.html',\n link: function link(scope, elem, attrs) {\n scope.modalID = uuidv4();\n scope.currencySettings = smooth.currencySettings;\n\n var init = function init() {\n scope.viewMemberships = false;\n scope.hasNonMembershipOptions = !!(scope.costs.workshop || scope.costs.packages && scope.costs.packages.length || scope.costs.singleappointment);\n\n if (scope.costs.memberships && scope.costs.memberships.length) {\n scope.form = {\n selectedMembershipIndex: 0\n };\n scope.selectedMembership = scope.costs.memberships[0];\n scope.costs.memberships[0].selected = true;\n if (!scope.hasNonMembershipOptions) scope.viewMemberships = true;\n }\n };\n\n scope.chooseMembership = function () {\n scope.selectedMembership = scope.costs.memberships[scope.form.selectedMembershipIndex];\n };\n\n scope.showModal = function () {\n $(\"#\".concat(scope.modalID)).modal();\n init();\n };\n\n scope.toggleViewMemberships = function () {\n scope.viewMemberships = !scope.viewMemberships;\n };\n\n function uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n }\n }\n };\n}); // End directive","(function () {\n angular.module('calendarApp').directive('costPopover', [\"API_URL\", \"$timeout\", function (API_URL, $timeout) {\n return {\n restrict: 'AE',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/cost-popover.html',\n scope: {\n costs: '='\n },\n link: function link(scope, elem, attrs) {\n function uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n }\n\n scope.currencySettings = smooth.currencySettings;\n scope.popoverID = uuidv4();\n $timeout(function () {\n $('#' + scope.popoverID).popover({\n 'container': '.days-display',\n 'content': $('.popover-content', elem).html(),\n 'placement': 'auto',\n 'html': true,\n 'trigger': 'hover'\n });\n }, 0);\n }\n };\n }]); // End directive\n})();","angular.module('calendarApp').directive('descriptionModal', function () {\n return {\n restrict: 'AE',\n scope: {\n service: '=?',\n resource: '=?'\n },\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/description-modal.html',\n link: function link(scope, elem, attrs) {\n scope.modalID = uuidv4();\n\n scope.showModal = function () {\n $(\"#\".concat(scope.modalID)).modal();\n };\n\n function uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n }\n }\n };\n}); // End directive","import 'bootstrap/js/tooltip.js';\nimport 'bootstrap/js/popover.js';\nangular.module('calendarApp').directive('descriptionPopover', function () {\n return {\n restrict: 'A',\n scope: {\n service: '=?',\n resource: '=?'\n },\n replace: false,\n link: function link(scope, elem, attrs) {\n var service = scope.service || null,\n resource = scope.resource || null;\n var $smoothPopover = $('
').addClass('smooth-popover'),\n $clearFix = $('
').addClass('clearfix'),\n $serviceSection = $('
').addClass('popover-section service-section'),\n $resourceSection = $('
').addClass('popover-section resource-section');\n var showService = service && service.name && (service.description || service.images && service.images.thumb);\n\n if (showService) {\n var $serviceHeading = $('
').addClass('popover-heading');\n $serviceHeading.text(service.name);\n $smoothPopover.append($serviceHeading);\n\n if (service.images && service.images.thumb) {\n var $img = $('').attr('src', service.images.thumb.url).addClass('popover-image service-popover-image');\n $serviceSection.append($img);\n }\n\n if (service.description) {\n var $serviceDescription = $('

').addClass('popover-description').html(service.description);\n $serviceSection.append($serviceDescription);\n }\n\n $serviceSection.append($clearFix);\n $smoothPopover.append($serviceSection);\n }\n\n var showResource = resource && resource.name && (resource.description || resource.images && resource.images.thumb);\n\n if (showResource) {\n var $resourceHeading = $('

').addClass('popover-heading');\n $resourceHeading.text(resource.name);\n $smoothPopover.append($resourceHeading);\n\n if (resource.description) {\n var $resourceDescription = $('

').addClass('popover-description').html(resource.description);\n $resourceSection.append($resourceDescription);\n }\n\n if (resource.images && resource.images.thumb) {\n var $img = $('').attr('src', resource.images.thumb.url).addClass('popover-image resource-popover-image');\n $resourceSection.append($img);\n }\n }\n\n if (!showService && !showResource) {\n $(elem).hide();\n return;\n }\n\n $smoothPopover.append($resourceSection);\n var $content = $('

').append($smoothPopover);\n $(elem).popover({\n 'content': $content.html(),\n 'placement': 'auto',\n 'html': true,\n 'trigger': 'hover'\n });\n }\n };\n}); // End directive","(function () {\n angular.module('calendarApp').directive('numberFormat', numberFormat);\n\n function numberFormat() {\n return {\n require: 'ngModel',\n restrict: 'A',\n scope: {\n decimals: '@?',\n // Integer - number of decimals allowed\n maxInt: '@?',\n minInt: '@?',\n numDigits: '@?'\n },\n link: function link(scope, element, attr, ctrl) {\n function inputValue(val) {\n if (val) {\n val = String(val); // Replace non numbers and / or decimal point\n\n var digits = scope.decimals ? val.replace(/[^0-9.]/g, '') : val.replace(/[^0-9]/g, ''),\n numDigits = scope.numDigits ? parseInt(scope.numDigits) : null;\n\n if (numDigits && digits.length > numDigits) {\n digits = digits.slice(0, numDigits);\n }\n\n if (scope.decimals) {\n var fractions = digits.split('.');\n\n if (fractions[1] && fractions[1].length > scope.decimals) {\n fractions[1] = fractions[1].slice(1, fractions[1].length);\n digits = fractions[0] + '.' + fractions[1];\n }\n }\n\n if (scope.maxInt && parseInt(digits) > parseInt(scope.maxInt)) {\n digits = parseInt(scope.maxInt);\n }\n\n if (scope.minInt && parseInt(digits) < parseInt(scope.minInt)) {\n digits = parseInt(scope.minInt);\n }\n\n if (digits !== val) {\n ctrl.$setViewValue(digits);\n ctrl.$render();\n }\n\n return parseFloat(digits);\n }\n\n return undefined;\n }\n\n ctrl.$parsers.push(inputValue);\n }\n };\n }\n})();","(function () {\n paginationWidget.$inject = [\"API_URL\"];\n angular.module('calendarApp').directive('paginationWidget', paginationWidget);\n\n function paginationWidget(API_URL) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/pagination-widget.html',\n scope: {\n paginationObject: '=',\n changePage: '=',\n widgetSize: '@?'\n },\n link: function link(scope, elem, attrs) {\n scope.$watch('paginationObject', function () {\n scope.currentPage = scope.paginationObject.page;\n var pages = Math.ceil(scope.paginationObject.count / scope.paginationObject.limit);\n scope.pages = [];\n\n for (var i = 1; i <= pages; i++) {\n scope.pages.push(i);\n }\n });\n\n scope.next = function () {\n if (scope.currentPage + 1 >= scope.pages.length) {\n return;\n }\n\n scope.changePage(scope.currentPage + 1);\n };\n\n scope.previous = function () {\n if (scope.currentPage == 0) {\n return;\n }\n\n scope.changePage(scope.currentPage - 1);\n };\n }\n };\n }\n})();","angular.module('calendarApp').directive('membershipModal', function () {\n return {\n restrict: 'AE',\n scope: {\n activationSuccess: '=',\n memberships: '=',\n defaultPayment: '='\n },\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/membership-modal.html',\n link: function link(scope, elem, attrs) {\n scope.currencySettings = smooth.currencySettings;\n scope.chosenPlan = null;\n\n var init = function init() {\n scope.form = {\n selectedMembershipIndex: 0\n };\n\n if (scope.memberships && scope.memberships.length) {\n scope.selectedMembership = scope.memberships[0];\n scope.memberships[0].selected = true;\n }\n\n scope.chosenPlan = null;\n };\n\n scope.chooseMembership = function () {\n scope.selectedMembership = scope.memberships[scope.form.selectedMembershipIndex];\n scope.chosenPlan = null;\n };\n\n scope.choosePlan = function (chosenPlan) {\n scope.chosenPlan = chosenPlan;\n };\n\n scope.showModal = function () {\n $('#choose-membership-modal').modal();\n init();\n };\n\n scope.toggleViewMemberships = function () {\n scope.viewMemberships = !scope.viewMemberships;\n }; // Membership successfully activated, just reload the payment options page.\n\n\n scope.membershipActivationSuccess = function () {};\n }\n };\n}); // End directive","(function () {\n angular.module('calendarApp').directive('packageInfoPopover', [\"$filter\", function ($filter) {\n return {\n restrict: 'A',\n scope: {\n package: '='\n },\n replace: false,\n link: function link(scope, elem, attrs) {\n var $packageInfo = $('
').addClass('package-info-popover'),\n $description = $('

').addClass('package-popover-description').text(scope.package.description);\n $packageInfo.append($description);\n var $expiry;\n\n if (scope.package.expirytype == 'date') {\n var packageText = $filter('calendarLabel')('package expires on');\n packageText += ' ' + $filter('smoothDate')(scope.package.expirydate, smooth.timeSettings);\n $expiry = $('

').addClass('package-popover-expiry').text(packageText);\n $packageInfo.append($expiry);\n } else if (scope.package.expirytype == 'days') {\n var text1 = $filter('calendarLabel')('package expires'),\n text2 = $filter('calendarLabel')('days after purchase'),\n expiryText = text1 + ' ' + scope.package.expirydays + ' ' + text2;\n $expiry = $('

').addClass('package-popover-expiry').text(expiryText);\n $packageInfo.append($expiry);\n }\n\n if (scope.package.requirescoupon) {\n var text3 = $filter('calendarLabel')('requires a coupon code');\n $coupon = $('

').addClass('package-popover-expiry').text(text3);\n $packageInfo.append($coupon);\n }\n\n $(elem).popover({\n 'content': $packageInfo,\n 'placement': 'auto',\n 'html': true,\n 'trigger': 'hover'\n });\n }\n };\n }]); // End directive\n})();","(function () {\n paymentSummary.$inject = [\"API_URL\"];\n angular.module('calendarApp').directive('paymentSummary', paymentSummary);\n\n function paymentSummary(API_URL) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/payment-summary.html',\n scope: {\n paymentState: '=',\n hasPaid: '@?'\n },\n link: function link(scope, elem, attrs) {\n scope.paymentMethods = {};\n scope.currencySettings = smooth.currencySettings;\n var paymentState = scope.paymentState;\n\n if (!scope.paymentState) {\n return;\n }\n\n var init = function init() {\n // Build a list of items that are being paid for\n scope.items = [];\n\n if (paymentState.paymentOptions.customerpackages && paymentState.paymentOptions.customerpackages.length) {\n var customerPackages = paymentState.paymentOptions.customerpackages;\n\n for (var i = 0; i < customerPackages.length; i++) {\n if (customerPackages[i].appointmentsPaidFor) {\n var item = 'your credit: ' + customerPackages[i].packageid.name;\n scope.items.push({\n item: item,\n cost: 0,\n appointmentsPaidFor: customerPackages[i].appointmentsPaidFor,\n quantity: 1,\n total: 0\n });\n }\n }\n }\n\n if (paymentState.paymentOptions.packages && paymentState.paymentOptions.packages.length) {\n var packages = paymentState.paymentOptions.packages;\n\n for (var i = 0; i < packages.length; i++) {\n if (packages[i].purchased) {\n var total = (packages[i].purchased * packages[i].cost).toFixed(2);\n scope.items.push({\n item: packages[i].name,\n cost: packages[i].cost,\n appointmentsPaidFor: packages[i].appointmentsPaidFor,\n quantity: packages[i].purchased,\n total: total\n });\n }\n }\n }\n\n if (paymentState.singleAppointments) {\n scope.items.push({\n item: 'Single Appointments',\n cost: paymentState.paymentOptions.singleappointmentcost,\n appointmentsPaidFor: paymentState.singleAppointments,\n quantity: paymentState.singleAppointments,\n total: (paymentState.singleAppointments * paymentState.paymentOptions.singleappointmentcost).toFixed(2)\n });\n }\n\n if (paymentState.workshopsPaidFor) {\n scope.items.push({\n item: 'Workshop',\n cost: paymentState.paymentOptions.workshopcost,\n appointmentsPaidFor: paymentState.workshopAppointments,\n quantity: paymentState.workshopsPaidFor,\n total: (paymentState.workshopsPaidFor * paymentState.paymentOptions.workshopcost).toFixed(2)\n });\n }\n\n scope.totalToPay = 0;\n scope.items.forEach(function (item) {\n scope.totalToPay += Number(item.total);\n });\n };\n\n init();\n }\n };\n }\n})();","(function () {\n stripeCardPayment.$inject = [\"API_URL\", \"$rootScope\", \"$http\", \"$filter\", \"$location\"];\n angular.module('directive.stripeCardPayment', []).directive('stripeCardPayment', stripeCardPayment);\n\n function stripeCardPayment(API_URL, $rootScope, $http, $filter, $location) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/stripe-card-payment.html',\n scope: {\n paymentState: '=?',\n success: '=',\n appointments: '='\n },\n link: function link(scope, elem, attrs) {\n var stripe = window.Stripe(smooth.stripePublicKey),\n elements = stripe.elements();\n var stripeCard = elements.create('card', cardStyle);\n stripeCard.mount('#card-element');\n stripeCard.addEventListener('change', function (event) {\n var displayError = document.getElementById('card-errors');\n\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n });\n\n var tryPayment = function tryPayment(paymentMethodID) {\n var paymentIntentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var appointmentids = [],\n bookinginfo = {};\n scope.appointments.forEach(function (appointment) {\n appointmentids.push(appointment._id);\n if (appointment.bookinginfo) bookinginfo[appointment._id] = appointment.bookinginfo;\n });\n var params = {\n paymentstate: scope.paymentState,\n appointmentids: appointmentids\n };\n if (Object.keys(bookinginfo)) params.bookinginfo = bookinginfo;\n\n if (paymentMethodID) {\n params.payment_method_id = paymentMethodID;\n }\n\n if (paymentIntentId) {\n params.payment_intent_id = paymentIntentId;\n }\n\n return new Promise(function (resolve, reject) {\n // The payment method may require additional authentication (or not).\n // If it doesn't the transaction will complete. If it does, Stripe will\n // take the user through the additional steps and then the client will reply\n // to the server again with a payment intent for confirmation.\n $http.post(API_URL + '/stripe/submitpayment', params).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (response.alreadydeleted) {\n $rootScope.throbber.showError(\"Unfortunately an error has occurred with this reservation. We're very sorry but you will need to restart the \\n reservation process. You have not been charged for this transaction.\", function () {\n localStorage.removeItem('reserved-appointments');\n $location.path('/');\n });\n return;\n }\n\n if (response.success && !response.requiresaction) {\n return scope.success(response.appointments);\n }\n\n if (!response.success) {\n return $rootScope.throbber.showError(response.msg);\n }\n\n if (response.requiresaction) {\n $rootScope.throbber.show();\n scope.processing = true;\n stripe.handleCardAction(response.intentsecret).then(function (result) {\n scope.processing = false;\n\n if (result.error) {\n return $rootScope.throbber.showError(result.error.message);\n }\n\n $rootScope.throbber.show();\n tryPayment(null, result.paymentIntent.id);\n resolve();\n });\n return;\n }\n\n console.error(response);\n alert('unhandled response');\n }).catch(function (error) {\n console.error(error.message);\n $rootScope.throbber.showError(\"Sorry but an error occurred with this request: \".concat(error.message));\n scope.processing = false;\n });\n });\n };\n\n scope.submitCard = function () {\n $rootScope.throbber.show();\n scope.processing = true; // Some payment methods and cards may require further authentication. In all cases\n // retrieve a payment intent from the server. If the transaction requires no further authentication\n // send back the payment intent ID to confirm the transaction.\n\n stripe.createPaymentMethod('card', stripeCard).then(function (result) {\n if (result.error) {\n scope.processing = false;\n return $rootScope.throbber.showError(result.error.message);\n }\n\n tryPayment(result.paymentMethod.id);\n });\n };\n\n scope.cancelPayment = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n }; // Style the Stripe elements component\n\n\n var cardStyle = {\n iconStyle: 'solid',\n style: {\n base: {\n iconColor: '#8898AA',\n color: '#000',\n lineHeight: '36px',\n fontWeight: 300,\n fontFamily: 'Hind, sans-serif',\n fontSize: '19px',\n '::placeholder': {\n color: '#8898AA'\n }\n },\n invalid: {\n iconColor: '#e85746',\n color: '#e85746'\n }\n },\n classes: {\n focus: 'is-focused',\n empty: 'is-empty'\n }\n };\n }\n };\n }\n})();","stripeCreateMembership.$inject = [\"API_URL\", \"$rootScope\", \"$http\", \"$filter\", \"$location\", \"$timeout\"];\nangular.module('directive.stripeCreateMembership', []).directive('stripeCreateMembership', stripeCreateMembership);\n\nfunction stripeCreateMembership(API_URL, $rootScope, $http, $filter, $location, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/stripe-create-membership.html',\n scope: {\n activationSuccess: '=',\n membership: '=',\n plan: '=',\n defaultPayment: '='\n },\n link: function link(scope, elem, attrs) {\n // Check if there is an open invoice for this plan; attach it to the\n // scope if there is.\n scope.$watch('plan', function () {\n if (scope.plan && $rootScope.outstandingInvoices && $rootScope.outstandingInvoices.length) {\n var chosenplanID = scope.plan.stripeplanid; // Check if there is already an unpaid invoice for this plan\n\n var invoice = $rootScope.outstandingInvoices.find(function (invoice) {\n return (invoice.invoicestatus === 'open' || invoice.invoicestatus === 'incomplete') && invoice.stripeplanid === chosenplanID;\n });\n scope.invoiceid = invoice && invoice.stripeinvoiceid;\n }\n });\n scope.membershipPayment = true; // scope.useDefaultPayment = !!scope.defaultPayment; Not working well with payment intents and SCA\n\n scope.useDefaultPayment = false; // The invoice may be paid successfully at the same time as the membership is created.\n // Or the invoice may require SCA or card may be declined.\n\n scope.invoiceid = null;\n var stripe = window.Stripe(smooth.stripePublicKey),\n elements = stripe.elements();\n var stripeCard = elements.create('card');\n stripeCard.mount('#membership-card-element');\n stripeCard.addEventListener('change', function (event) {\n var displayError = document.getElementById('card-errors');\n\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n });\n\n scope.submitCard = function () {\n $rootScope.throbber.show();\n scope.processing = true; // Some payment methods and cards may require further authentication. In all cases\n // retrieve a payment intent from the server. If the transaction requires no further authentication\n // send back the payment intent ID to confirm the transaction.\n\n stripe.createToken(stripeCard).then(function (result) {\n if (result.error) {\n scope.processing = false;\n return $rootScope.throbber.showError(result.error.message);\n }\n\n if (scope.invoiceid) {\n // There is an invoice that is unpaid and the payment method has been updated\n return payInvoice(result.token, scope.invoiceid);\n }\n\n createMembership(result.token);\n });\n };\n\n var handleSCA = function handleSCA(clientSecret) {\n $rootScope.throbber.show();\n scope.processing = true;\n stripe.handleCardPayment(clientSecret, stripeCard).then(function (response) {\n scope.processing = false;\n $rootScope.throbber.hide();\n\n if (response.error) {\n scope.stripeError = \"Sorry but an error occurred: \".concat(response.error.message);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n return;\n } // Unless there has been a problem, the invoice will now have been paid.\n // Also a webhook will have been generated that will have been sent to the backend to activate the membership\n\n\n scope.activationSuccessMessage = true;\n $timeout(function () {\n scope.activationSuccessMessage = false;\n scope.activationSuccess('PACKAGES_AWARDED');\n $('#choose-membership-modal').modal('hide');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n }, 6000);\n }).catch(function (err) {\n console.error(err);\n scope.stripeError = 'Sorry but an error occurred:' + err.msg;\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n });\n };\n\n var createMembership = function createMembership() {\n var token = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var params = {\n membership: scope.membership,\n plan: scope.plan,\n token: token\n };\n $http.post(API_URL + '/api/v1/calendar/membership/create', params).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (!response.success) {\n scope.stripeError = \"Sorry but an error occurred: \".concat(response.msg);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n return;\n } // Payment has been successful\n\n\n if (response.success && !response.requires_action) {\n scope.activationSuccessMessage = true;\n $timeout(function () {\n scope.activationSuccessMessage = false;\n scope.activationSuccess('PACKAGES_AWARDED');\n $('#choose-membership-modal').modal('hide');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n }, 6000);\n return;\n } // We now have an existing invoice for this sub that needs to be dealt with until it's paid or cancelled.\n\n\n if (response.requires_action) {\n scope.invoiceid = response.invoiceid;\n scope.payment_intent_client_secret = response.payment_intent_client_secret;\n return handleSCA(scope.payment_intent_client_secret);\n }\n\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(response.status);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n }).catch(function (error) {\n console.error(error.message);\n scope.stripeError = \"Sorry but an error occurred: \".concat(error.message);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n scope.processing = false;\n });\n };\n\n var payInvoice = function payInvoice(stripetoken, invoiceid) {\n scope.processing = true;\n $http.put(API_URL + \"/api/v1/calendar/membership/payments/update-card/\".concat(invoiceid), {\n stripetoken: stripetoken\n }).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (!response.success) {\n scope.stripeError = \"Sorry but an error occurred: \".concat(response.msg);\n $rootScope.safeApply();\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n return;\n }\n\n if (response.success && !response.requires_action) {\n scope.activationSuccessMessage = true;\n $timeout(function () {\n scope.activationSuccessMessage = false;\n scope.activationSuccess('PACKAGES_AWARDED');\n $('#choose-membership-modal').modal('hide');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n }, 6000);\n return;\n } // Do SCA. This is completed client side.\n\n\n if (response.requires_action) {\n return handleSCA(response.payment_intent_client_secret);\n }\n\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(response.status);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n }).catch(function (error) {\n console.error(error.message);\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(error.message);\n scope.processing = false;\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n });\n };\n\n scope.cancelPayment = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n }\n };\n}","stripePayInvoice.$inject = [\"API_URL\", \"$rootScope\", \"$http\", \"$filter\", \"$location\", \"$timeout\"];\nangular.module('directive.stripepayinvoice', []).directive('stripePayInvoice', stripePayInvoice); // Update customer payment method.\n// 1. The customer may simply want to update their payment card - not necessarily pay an invoice\n// 2. They may need to complete SCA for an invoice.\n// - Immediately pay invoice\n// 3. They may need to enter a new card to complete a failed payment.\n// - Immediately pay invoice\n\nfunction stripePayInvoice(API_URL, $rootScope, $http, $filter, $location, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/stripe-pay-invoice.html',\n scope: {\n invoiceToPay: '='\n },\n link: function link(scope, elem, attrs) {\n var stripeCard = null;\n var stripe = window.Stripe(smooth.stripePublicKey),\n elements = stripe.elements();\n\n scope.submitCard = function () {\n // What happens next depends on the payment intent.\n if (!scope.invoiceToPay) {\n return $rootScope.showError('Sorry but an error has occurred: invoice not found');\n } // invoiceToPay has come from the api\n\n\n if (scope.invoiceToPay.intent_next_action && scope.invoiceToPay.intent_next_action === 'use_stripe_sdk') {\n return handleSCA(scope.invoiceToPay.intent_client_secret);\n }\n\n $rootScope.throbber.show();\n scope.processing = true; // Some payment methods and cards may require further authentication. In all cases\n // retrieve a payment intent from the server. If the transaction requires no further authentication\n // send back the payment intent ID to confirm the transaction.\n\n stripe.createToken(stripeCard).then(function (result) {\n if (result.error) {\n scope.processing = false;\n $rootScope.throbber.hide();\n scope.stripeError = result.error.message;\n return $rootScope.safeApply();\n }\n\n payInvoice(result.token, scope.invoiceToPay.stripeinvoiceid);\n });\n };\n\n var payInvoice = function payInvoice(stripetoken, invoiceid) {\n scope.processing = true;\n $http.put(API_URL + \"/api/v1/calendar/membership/payments/update-card/\".concat(invoiceid), {\n stripetoken: stripetoken\n }).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (!response.success) {\n scope.stripeError = \"Sorry but an error occurred: \".concat(response.msg);\n $rootScope.safeApply();\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n return;\n }\n\n if (response.success && !response.requires_action) {\n scope.stripeSuccess = 'Thanks for your payment. You have successfully paid your invoice, your membership is active ' + 'and you will receive confirmation of your payment by email' + ' Please click the \\'ok\\' button to be re-directed back to the booking calendar';\n $rootScope.safeApply();\n return;\n } // Do SCA. This is completed client side.\n\n\n if (response.requires_action) {\n return handleSCA(response.payment_intent_client_secret);\n }\n\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(response.status);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n }).catch(function (error) {\n console.error(error.message);\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(error.message);\n scope.processing = false;\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n });\n };\n\n var handleSCA = function handleSCA(clientSecret) {\n $rootScope.throbber.show();\n scope.processing = true; // Handle SCA client side. Success here means a subscription.updated\n // event will be sent to the backend (because the invoice has changed).\n\n stripe.handleCardPayment(clientSecret, stripeCard).then(function (response) {\n scope.processing = false;\n $rootScope.throbber.hide();\n\n if (response.error) {\n scope.stripeError = \"\".concat(response.error.message);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n $rootScope.safeApply();\n return;\n }\n\n scope.stripeSuccess = 'You have successfully verified your payment card and paid your invoice - your membership will remain active. ' + +'You will receive confirmation of your payment by email' + ' Please click the \\'ok\\' button to be re-directed back to the booking calendar';\n $rootScope.safeApply();\n $timeout(function () {\n scope.stripeSuccess = '';\n $location.path('/');\n }, 3000);\n }).catch(function (err) {\n console.error(err);\n scope.processing = false;\n scope.stripeError = 'Sorry but an error occurred:' + err.msg;\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n });\n };\n\n scope.cancelPayment = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n\n scope.backToHome = function () {\n $location.path('/');\n };\n\n scope.$watch('invoiceToPay', function () {\n if (scope.invoiceToPay) {\n init();\n }\n });\n\n var init = function init() {\n stripeCard = elements.create('card');\n stripeCard.mount('#update-payment-card-element');\n stripeCard.addEventListener('change', function (event) {\n var displayError = document.getElementById('card-errors');\n\n if (event.error) {\n scope.stripeError = event.error.message;\n } else {\n scope.stripeError = '';\n }\n\n $rootScope.safeApply();\n });\n };\n }\n };\n}","stripeUpdatePaymentMethod.$inject = [\"API_URL\", \"$rootScope\", \"$http\", \"$filter\", \"$location\", \"$timeout\"];\nangular.module('directive.stripeupdatepaymentmethod', []).directive('stripeUpdatePaymentMethod', stripeUpdatePaymentMethod); // Update customer payment method.\n// 1. The customer may simply want to update their payment card - not necessarily pay an invoice\n// 2. They may need to complete SCA for an invoice.\n// - Immediately pay invoice\n// 3. They may need to enter a new card to complete a failed payment.\n// - Immediately pay invoice\n\nfunction stripeUpdatePaymentMethod(API_URL, $rootScope, $http, $filter, $location, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/stripe-update-payment-method.html',\n scope: {\n invoiceToPay: '='\n },\n link: function link(scope, elem, attrs) {\n var stripeCard = null;\n var stripe = window.Stripe(smooth.stripePublicKey),\n elements = stripe.elements();\n\n scope.submitCard = function () {\n // What happens next depends on the payment intent.\n if (!scope.invoiceToPay) {\n return $rootScope.showError('Sorry but an error has occurred: invoice not found');\n }\n\n if (scope.invoiceToPay.intent_next_action && scope.invoiceToPay.intent_next_action === 'use_stripe_sdk') {\n return handleSCA(scope.invoiceToPay.intent_client_secret);\n }\n\n $rootScope.throbber.show();\n scope.processing = true; // Some payment methods and cards may require further authentication. In all cases\n // retrieve a payment intent from the server. If the transaction requires no further authentication\n // send back the payment intent ID to confirm the transaction.\n\n stripe.createToken(stripeCard).then(function (result) {\n $rootScope.throbber.hide();\n\n if (result.error) {\n scope.processing = false;\n scope.stripeError = result.error.message;\n return $rootScope.safeApply();\n }\n\n tryUpdate(result.token);\n });\n };\n\n var init = function init() {\n stripeCard = elements.create('card');\n stripeCard.mount('#update-payment-card-element');\n stripeCard.addEventListener('change', function (event) {\n var displayError = document.getElementById('card-errors');\n\n if (event.error) {\n scope.stripeError = event.error.message;\n } else {\n scope.stripeError = '';\n }\n\n $rootScope.safeApply();\n });\n };\n\n var tryUpdate = function tryUpdate(stripetoken) {\n var params = {\n stripetoken: stripetoken\n };\n $http.put(API_URL + '/api/v1/calendar/membership/payments/update-card', params).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (!response.success) {\n scope.stripeError = \"Sorry but an error occurred: \".concat(response.msg);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n return;\n }\n\n if (response.success && !response.requires_action) {\n scope.activationSuccessMessage = true;\n $rootScope.safeApply();\n $timeout(function () {\n scope.activationSuccessMessage = false;\n }, 3000);\n return;\n } // Do SCA\n\n\n if (response.requires_action) {\n return handleSCA(response.payment_intent_client_secret);\n }\n\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(response.status);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n }).catch(function (error) {\n console.error(error.message);\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(response.status);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n scope.processing = false;\n });\n };\n\n var handleSCA = function handleSCA(clientSecret) {\n $rootScope.throbber.show();\n scope.processing = true;\n stripe.handleCardPayment(clientSecret, stripeCard).then(function (response) {\n if (response.error) {\n scope.stripeError = \"\".concat(response.error.message);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n $rootScope.safeApply();\n return;\n }\n\n scope.processing = false;\n $rootScope.throbber.hide();\n scope.stripeSuccess = 'You have successfully verified your payment card. Please wait, you will be redirected.';\n $rootScope.safeApply();\n $timeout(function () {\n scope.stripeSuccess = '';\n $location.path('/');\n }, 3000);\n }).catch(function (err) {\n console.error(err);\n scope.stripeError = 'Sorry but an error occurred:' + err.msg;\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n });\n };\n\n scope.cancelPayment = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n\n scope.$watch('invoiceToPay', function () {\n if (scope.invoiceToPay) {\n console.log(scope.invoiceToPay);\n init();\n }\n }); // Not currently in use. Payment intents not working well with stored cards.\n\n scope.toggleDefaultPayment = function () {\n var useDefault = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n scope.useDefaultPayment = useDefault;\n };\n\n var tryPaymentOld = function tryPaymentOld(paymentMethodID) {\n var paymentIntentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var params = {\n membership: scope.membership,\n plan: scope.plan\n };\n\n if (paymentMethodID) {\n params.payment_method_id = paymentMethodID;\n }\n\n if (paymentIntentId) {\n params.payment_intent_id = paymentIntentId;\n }\n\n return new Promise(function (resolve, reject) {\n // The payment method may require additional authentication (or not).\n // If it doesn't the transaction will complete. If it does, Stripe will\n // take the user through the additional steps and then the client will reply\n // to the server again with a payment intent for confirmation.\n $http.post(API_URL + '/api/v1/calendar/membership/create', params).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (response.success && !response.requiresaction) {\n return scope.success(response.appointments);\n }\n\n if (!response.success) {\n return $rootScope.throbber.showError(response.msg);\n }\n\n if (response.requiresaction) {\n $rootScope.throbber.show();\n scope.processing = true;\n stripe.handleCardAction(response.intentsecret).then(function (result) {\n scope.processing = true;\n\n if (result.error) {\n return $rootScope.throbber.showError(result.error.message);\n }\n\n $rootScope.throbber.show();\n scope.tryPayment(null, result.paymentIntent.id);\n resolve();\n });\n return;\n }\n\n console.error(response);\n alert('unhandled response');\n }).catch(function (error) {\n console.error(error.message);\n $rootScope.throbber.showError(\"Sorry but an error occurred with this request: \".concat(error.message));\n scope.processing = false;\n });\n });\n };\n }\n };\n}","stripeUpdatePaymentMethod.$inject = [\"API_URL\", \"$rootScope\", \"$http\", \"$filter\", \"$location\", \"$timeout\"];\nangular.module('directive.stripeupdatepaymentmethod', []).directive('stripeUpdatePaymentMethod', stripeUpdatePaymentMethod); // Update customer payment method.\n// 1. The customer may simply want to update their payment card - not necessarily pay an invoice\n// 2. They may need to complete SCA for an invoice.\n// - Immediately pay invoice\n// 3. They may need to enter a new card to complete a failed payment.\n// - Immediately pay invoice\n\nfunction stripeUpdatePaymentMethod(API_URL, $rootScope, $http, $filter, $location, $timeout) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/stripe-update-payment-method.html',\n scope: {},\n link: function link(scope, elem, attrs) {\n var stripeCard = null;\n var stripe = window.Stripe(smooth.stripePublicKey),\n elements = stripe.elements();\n\n scope.submitCard = function () {\n $rootScope.throbber.show();\n scope.processing = true; // Some payment methods and cards may require further authentication. In all cases\n // retrieve a payment intent from the server. If the transaction requires no further authentication\n // send back the payment intent ID to confirm the transaction.\n\n stripe.createToken(stripeCard).then(function (result) {\n $rootScope.throbber.hide();\n\n if (result.error) {\n scope.processing = false;\n scope.stripeError = result.error.message;\n return $rootScope.safeApply();\n }\n\n tryUpdate(result.token);\n });\n };\n\n var init = function init() {\n stripeCard = elements.create('card');\n stripeCard.mount('#update-payment-card-element');\n stripeCard.addEventListener('change', function (event) {\n var displayError = document.getElementById('card-errors');\n\n if (event.error) {\n scope.stripeError = event.error.message;\n } else {\n scope.stripeError = '';\n }\n\n $rootScope.safeApply();\n });\n };\n\n init();\n\n var tryUpdate = function tryUpdate(stripetoken) {\n var params = {\n stripetoken: stripetoken\n };\n $http.put(API_URL + '/api/v1/calendar/membership/payments/update-card', params).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (!response.success) {\n scope.stripeError = \"Sorry but an error occurred: \".concat(response.msg);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n return;\n }\n\n scope.stripeSuccess = 'Your Stripe card has been successfully updated.';\n $rootScope.safeApply();\n $timeout(function () {\n scope.stripeSuccess = '';\n }, 3000);\n }).catch(function (error) {\n console.error(error.message);\n scope.stripeError = \"Sorry but an error occurred - unhandled status: \".concat(response.status);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n scope.processing = false;\n });\n };\n\n var handleSCA = function handleSCA(clientSecret) {\n $rootScope.throbber.show();\n scope.processing = true;\n stripe.handleCardPayment(clientSecret, stripeCard).then(function (response) {\n if (response.error) {\n scope.stripeError = \"\".concat(response.error.message);\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n $rootScope.safeApply();\n return;\n }\n\n scope.processing = false;\n $rootScope.throbber.hide();\n scope.stripeSuccess = 'You have successfully verified your payment card. Please wait, you will be redirected.';\n $rootScope.safeApply();\n $timeout(function () {\n scope.stripeSuccess = '';\n $location.path('/');\n }, 3000);\n }).catch(function (err) {\n console.error(err);\n scope.stripeError = 'Sorry but an error occurred:' + err.msg;\n $timeout(function () {\n scope.stripeError = '';\n }, 3000);\n });\n };\n\n var tryPaymentOld = function tryPaymentOld(paymentMethodID) {\n var paymentIntentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var params = {\n membership: scope.membership,\n plan: scope.plan\n };\n\n if (paymentMethodID) {\n params.payment_method_id = paymentMethodID;\n }\n\n if (paymentIntentId) {\n params.payment_intent_id = paymentIntentId;\n }\n\n return new Promise(function (resolve, reject) {\n // The payment method may require additional authentication (or not).\n // If it doesn't the transaction will complete. If it does, Stripe will\n // take the user through the additional steps and then the client will reply\n // to the server again with a payment intent for confirmation.\n $http.post(API_URL + '/api/v1/calendar/membership/create', params).then(function (reply) {\n $rootScope.throbber.hide();\n scope.processing = false;\n var response = reply.data;\n\n if (response.success && !response.requiresaction) {\n return scope.success(response.appointments);\n }\n\n if (!response.success) {\n return $rootScope.throbber.showError(response.msg);\n }\n\n if (response.requiresaction) {\n $rootScope.throbber.show();\n scope.processing = true;\n stripe.handleCardAction(response.intentsecret).then(function (result) {\n scope.processing = true;\n\n if (result.error) {\n return $rootScope.throbber.showError(result.error.message);\n }\n\n $rootScope.throbber.show();\n scope.tryPayment(null, result.paymentIntent.id);\n resolve();\n });\n return;\n }\n\n console.error(response);\n alert('unhandled response');\n }).catch(function (error) {\n console.error(error.message);\n $rootScope.throbber.showError(\"Sorry but an error occurred with this request: \".concat(error.message));\n scope.processing = false;\n });\n });\n };\n }\n };\n}","(function () {\n selectedSlotsDisplay.$inject = [\"API_URL\", \"$interval\"];\n angular.module('calendarApp').directive('selectedSlotsDisplay', selectedSlotsDisplay);\n\n function selectedSlotsDisplay(API_URL, $interval) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/selected-slots-display.html',\n scope: {\n selectedSlots: '=',\n continue: '=',\n cancel: '=',\n showPreview: '@',\n mustAgreeTerms: '=?',\n termsAgreed: '=?'\n },\n link: function link(scope, elem, attrs) {}\n };\n }\n})();","(function () {\n angular.module('service.calendarService', []).service('CalendarService', CalendarService);\n\n function CalendarService() {\n if (typeof moment === 'undefined') {\n throw new Error('Moment has not been defined');\n }\n\n var _options = {\n locale: 'en-gb',\n startOfWeek: null\n },\n _moment = moment; // Keep a local copy of moment with global options set.\n\n this.setOptions = function (options) {\n $.extend(_options, options);\n this.init();\n };\n\n this.init = function () {\n _moment.locale(_options.locale);\n };\n\n this.init(); // Set things up with defaults. These can be overridden by setOptions().\n // Return an array with:\n // - All the days of the specified month\n // - Days of the previous month required to fill out the grid\n // - Days of the next month required to fill out the grid\n // ** Remember month is zero indexed! **\n\n this.getMonthGrid = function (month, year) {\n var daysAvailable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var waitlistDays = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n if (isNaN(month) || month < 0 || month > 11 || isNaN(year)) {\n throw new Error('Need month and year');\n }\n\n var grid = {\n locale: _options.locale,\n month: {\n number: month,\n name: _moment().month(month).format('MMMM') // Month formatted by locale\n\n },\n next: _moment().month(month).add(1, 'months').format('MMM'),\n previous: _moment().month(month).subtract(1, 'months').format('MMM')\n }; // Get the start and end dates for the calendar\n\n var dates = this.getStartAndEndDates(month, year),\n gridDates = [];\n\n var today = _moment().hour(0).minute(0).second(0); // Cycle through the dates *for the whole month*\n\n\n var _loop = function _loop(date) {\n var day = {\n date: date.format('YYYY-MM-DD'),\n day: date.format('D'),\n selected: false,\n waitlist: false,\n thisMonth: !(date.isBefore(dates.monthStart) || date.isAfter(dates.monthEnd)),\n notPast: moment(date).add(1, 'hours').isSameOrAfter(today)\n };\n\n if (day.date === '2020-11-17') {\n var _i = 0;\n }\n\n var dayIsAvailable = daysAvailable.indexOf(day.date) > -1;\n\n if (dayIsAvailable) {\n day.selected = true;\n } else if (waitlistDays.find(function (waitDay) {\n return waitDay.date === day.date;\n })) day.waitlist = true;\n\n gridDates.push(day);\n };\n\n for (var date = _moment(dates.startDate).hour(0).minute(0); date.isSameOrBefore(dates.endDate); date.add(1, 'days')) {\n _loop(date);\n } // Get days of week\n\n\n var weekDay = _moment(dates.startDate),\n days = [];\n\n days.push(weekDay.format('ddd'));\n\n for (var i = 0; i < 6; i++) {\n days.push(weekDay.add(1, 'days').format('ddd'));\n }\n\n grid.days = days;\n grid.dates = gridDates;\n return grid;\n }; // Get the start and end date for the calendar: the dates we're running from and to\n // - Beginning of the week of the start of the month\n // - End of the week of the end of the month\n\n\n this.getStartAndEndDates = function (month, year) {\n // Moment will use locale to determine which day starts the week unless this is overridden.\n var date = _moment().year(year).month(month).date(1),\n monthStart = date.format('YYYY-MM-DD'),\n startDate = date.clone(),\n // Necessary because moment dates are mutable\n endDate = date.clone(); // Get day of week number (locale aware) for first day of the month\n // - zero indexed\n\n\n var startDayOfWeek = date.weekday(); // Now rewind to the beginning of the week which is where we start our list\n\n startDate = startDate.subtract(startDayOfWeek, 'days').format('YYYY-MM-DD'); // We need the end of the week *after* the end of the month.\n\n var endDayOfWeek = _moment(endDate).endOf('month').weekday(),\n endDateOfMonth = _moment(endDate).endOf('month').format('YYYY-MM-DD');\n\n endDate = _moment(endDate).endOf('month').add(6 - endDayOfWeek, 'days').format('YYYY-MM-DD');\n return {\n startDate: startDate,\n endDate: endDate,\n monthStart: monthStart,\n monthEnd: endDateOfMonth,\n weekStart: moment.localeData(_options.locale).firstDayOfWeek()\n };\n };\n\n this.getDaysForMonth = function (month, year) {\n var dates = [];\n var start = moment().set('date', 1).set('month', month).set('year', year);\n\n for (var end = moment(start).add(1, 'month'); start.isBefore(end); start.add(1, 'day')) {\n dates.push(start.format('YYYY-MM-DD'));\n }\n\n return dates;\n };\n }\n})();","(function () {\n availabilityCalendar.$inject = [\"API_URL\", \"$http\", \"CalendarService\", \"$rootScope\", \"$location\"];\n angular.module('calendarApp').directive('availabilityCalendar', availabilityCalendar);\n\n function availabilityCalendar(API_URL, $http, CalendarService, $rootScope, $location) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/availability-calendar.html',\n scope: {\n serviceid: '='\n },\n link: function link(scope, elem, attrs) {\n scope.daysAvailable = []; // Delete any params\n\n var init = function init() {\n $http.get(API_URL + '/api/v1/daysavailable/' + smooth.orgid + '?getwaitlists=true&serviceid=' + scope.serviceid).then(function (reply) {\n var response = reply.data;\n\n if (!response.success) {\n console.error(response.msg);\n return;\n }\n\n if (!response.days.length) {\n scope.noAvailability = true;\n } else {\n scope.month = moment().month();\n scope.year = moment().year();\n scope.daysAvailable = response.days;\n scope.waitlistDays = response.dayswithwaitlists ? response.dayswithwaitlists.filter(function (day) {\n if (day.date && day.canwaitlist) {\n return day.date;\n }\n }) : [];\n displayDays();\n }\n\n $(elem).fadeIn('slow');\n }).catch(function (err) {\n console.error(err.message);\n });\n }; // Called when the calendar is first instantiated\n\n\n init(); // Only interested in days available for this month\n\n function displayDays() {\n var monthObject = CalendarService.getMonthGrid(scope.month, scope.year, scope.daysAvailable, scope.waitlistDays); // Determine whether to show next / previous months\n // - If none of the daysAvailable lie in the previous month don't show previous\n // - If none of the daysAvailable lie in the next month don't show next\n\n scope.showPrevious = false;\n scope.showNext = false;\n\n if (moment(scope.daysAvailable[0]).isBefore(moment().day(1).month(scope.month).year(scope.year))) {\n scope.showPrevious = true;\n }\n\n if (moment(scope.daysAvailable[scope.daysAvailable.length - 1]).isAfter(moment().month(scope.month).year(scope.year).endOf('month'))) {\n scope.showNext = true;\n }\n\n scope.rows = new Array(Math.floor(monthObject.dates.length / 7));\n scope.columns = new Array(7);\n scope.monthName = monthObject.month.name;\n scope.dates = monthObject.dates;\n scope.days = monthObject.days;\n }\n\n scope.showNextMonth = function () {\n var newMonth = moment().day(1).month(scope.month).year(scope.year).add(1, 'months');\n scope.month = newMonth.month();\n scope.year = newMonth.year();\n displayDays();\n };\n\n scope.showPreviousMonth = function () {\n var newMonth = moment().day(1).month(scope.month).year(scope.year).subtract(1, 'months');\n scope.month = newMonth.month();\n scope.year = newMonth.year();\n displayDays();\n };\n\n scope.chooseDate = function (serviceID, date) {\n // Must log the user in if they are not already.\n if (!$rootScope.customerInfo) {\n $location.search({\n serviceid: serviceID,\n date: date\n });\n return $location.path('/login');\n }\n\n $location.path('service-availability/' + serviceID + '/' + date);\n };\n }\n };\n }\n})();","tsandcs.$inject = [\"API_URL\", \"$sce\"];\nangular.module('calendarApp').directive('tsandcs', tsandcs);\n\nvar stripScripts = function stripScripts(a, b, c) {\n b = new Option();\n b.innerHTML = a;\n\n for (a = b.getElementsByTagName('script'); c = a[0];) {\n c.parentNode.removeChild(c);\n }\n\n return b.innerHTML;\n};\n\nfunction tsandcs(API_URL, $sce) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/settings/tsandcs.html',\n scope: {\n tsandcsText: '@',\n termsAgreed: '='\n },\n link: function link(scope, elem, attrs) {\n scope.tsandcsHtml = $sce.trustAsHtml(stripScripts(scope.tsandcsText));\n }\n };\n}","(function () {\n chooseTimeslotContainer.$inject = [\"API_URL\", \"$rootScope\"];\n angular.module('calendarApp').directive('chooseTimeslotContainer', chooseTimeslotContainer);\n\n function chooseTimeslotContainer(API_URL, $rootScope) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/choose-timeslot-container.html',\n scope: {\n initTimeslots: '='\n },\n link: function link(scope, elem, attrs) {\n scope.initTimeslots = function (shift) {\n scope.shift = shift;\n scope.timeSettings = $rootScope.timeSettings;\n scope.timeslotsAvailable = [];\n scope.chosenTimeslots = [];\n scope.shift.timeslots.forEach(function (timeslot) {\n var slot = {\n date: moment.unix(timeslot.start).format('ddd ll'),\n start: timeslot.start,\n end: timeslot.end + 1,\n service: shift.serviceName,\n resource: shift.hasresource ? shift.resource.name : null\n };\n scope.timeslotsAvailable.push(slot);\n });\n };\n\n scope.addTimeslot = function (index) {\n scope.chosenTimeslots.push(scope.timeslotsAvailable[index]);\n scope.timeslotsAvailable.splice(index, 1);\n };\n\n scope.removeTimeslot = function (index) {\n scope.timeslotsAvailable.push(scope.chosenTimeslots[index]);\n scope.chosenTimeslots.splice(index, 1);\n };\n }\n };\n }\n})();","(function () {\n angular.module('calendarApp').directive('chooseTimeslotModal', [\"API_URL\", \"$rootScope\", function (API_URL, $rootScope) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/choose-timeslot-modal.html',\n scope: {\n parentScope: '='\n },\n link: function link(scope, elem, attrs) {\n scope.timeslot = scope; // So that this scope can be inherited by descendants\n\n scope.parentScope.chooseTimeslots = function (shift) {\n scope.shift = shift;\n scope.initTimeslots(shift); // User must log in before continuing\n\n scope.userLoggedIn = $rootScope.customerInfo && $rootScope.customerInfo.firstname;\n scope.timeSettings = $rootScope.timeSettings;\n scope.clearRegoData();\n $('#choose-timeslot-modal').modal('show');\n }; // end chooseTimeslots\n\n\n scope.continue = function () {// Whether to choose future timeslots\n };\n }\n };\n }]);\n})();","dayContainer.$inject = [\"API_URL\", \"$rootScope\", \"$timeout\", \"FixedHeadingService\"];\nangular.module('directive.dayContainer', []).directive('dayContainer', dayContainer);\n\nfunction dayContainer(API_URL, $rootScope, $timeout, FixedHeadingService) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/day-container.html',\n scope: {\n day: '=',\n parentScope: '='\n },\n link: function link(scope, elem, attrs) {\n scope.timeSettings = $rootScope.timeSettings;\n $timeout(function () {\n // Sort headings when the columns render\n FixedHeadingService.fixHeading(); // Attach fixHeading to scroll event\n\n $(window).scroll(FixedHeadingService.fixHeading);\n }, 0);\n }\n };\n}","waitlistModal.$inject = [\"API_URL\", \"$http\", \"$rootScope\", \"$timeout\", \"$location\"];\n\nvar moment = require('moment-timezone');\n\nangular.module('calendarApp').directive('waitlistModal', waitlistModal);\n\nfunction waitlistModal(API_URL, $http, $rootScope, $timeout, $location) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/waitlist-modal.html',\n scope: {\n launchModal: '='\n },\n link: function link(scope, elem, attrs) {\n scope.launchModal = function (timeslot, shiftid) {\n scope.shiftid = shiftid || timeslot.shiftid;\n moment.tz.setDefault(timeslot.timezone);\n scope.service = timeslot.service;\n scope.resource = timeslot.resource;\n scope.start = moment.unix(timeslot.start).format('lll');\n scope.end = moment.unix(timeslot.end + 1).format('lll');\n scope.timeslot = timeslot;\n $('#waitlist-modal').modal();\n };\n\n scope.addToWaitlist = function () {\n var timeslotid = \"\".concat(scope.timeslot.start, \"-\").concat(scope.timeslot.end, \"-\").concat(scope.shiftid);\n scope.loading = true; // Add the customer to the waitlist\n\n $http.post(API_URL + \"/api/v1/calendar/waitlist/\", {\n timeslotid: timeslotid\n }).then(function (_ref) {\n var response = _ref.data;\n scope.loading = false;\n\n if (!response.success) {\n scope.apiError = \"Sorry but an error occurred: \".concat(response.msg);\n $timeout(function () {\n scope.apiError = '';\n }, 3000);\n return;\n }\n\n scope.addSuccess = true;\n $timeout(function () {\n scope.addSuccess = false;\n $('#waitlist-modal').modal('hide');\n $location.path('/');\n }, 5000);\n }).catch(function (err) {\n console.error(err);\n scope.apiError = \"Sorry but an error occurred: \".concat(err.message);\n });\n };\n }\n };\n}","yogaShiftContainer.$inject = [\"API_URL\", \"$rootScope\", \"$location\", \"SingleSlotService\"];\nangular.module('directive.yogaShiftContainer', []).directive('yogaShiftContainer', yogaShiftContainer);\n\nfunction yogaShiftContainer(API_URL, $rootScope, $location, SingleSlotService) {\n return {\n restrict: 'EA',\n replace: true,\n templateUrl: smooth.calendar_url + '/partials/directives/yoga-shift-container.html',\n scope: {\n shift: '='\n },\n link: function link(scope, elem, attrs) {\n scope.timeSettings = $rootScope.timeSettings;\n scope.shift.start = scope.shift.timeslots[0].start;\n scope.shift.end = scope.shift.timeslots[scope.shift.timeslots.length - 1].end + 1;\n scope.shift.timeslotsLength = scope.shift.timeslots.length;\n scope.shift.serviceName = scope.shift.service.name;\n scope.shift.resourceName = scope.shift.resource && scope.shift.resource.name;\n scope.waitlist = scope.shift.canwaitlist;\n\n function init() {\n // Figure out if there is any availability in this shift\n scope.shiftAvailable = false;\n\n for (var i = 0; i < scope.shift.timeslots.length; i++) {\n var timeslot = scope.shift.timeslots[i];\n\n if (timeslot.available > 0) {\n scope.shiftAvailable = true;\n break;\n }\n }\n }\n\n init();\n\n scope.chooseShift = function (shift) {\n var waitlist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n $rootScope.chosenShift = shift;\n $rootScope.chosenShift.waitlist = waitlist; // Record this here so it can be picked up on the login / register page\n // Must be authenticated to continue\n\n if (!$rootScope.customerInfo) {\n $location.path('/login');\n return;\n } // If the shift is full and there is a waitlist, take them to the choose slots\n // page automatically where they can choose the waitlist.\n\n\n if (waitlist) {\n return $location.path('/chooseslots');\n } // Don't show the slot chooser if there's only one slot.\n // But show the choose slots page if the user can book the timeslot\n // more than once.\n // - Also the only way the user can add themselves to the waitlist is on\n // the choose slots page so redirect automatically if this shift is full\n\n\n if (shift.timeslots.length > 1 || shift.bookmulti > 1) {\n return $location.path('/chooseslots');\n }\n\n SingleSlotService.reserveSlot(shift).then(function () {\n // No slot chooser, show future days?\n if (smooth.calendarSettings.bookfuturedays) {\n $location.path('/futureslots');\n return;\n }\n\n $location.path('/review');\n });\n };\n }\n };\n}","(function () {\n throbber.$inject = [\"API_URL\", \"$rootScope\", \"$timeout\"];\n angular.module('directive.throbber', []).directive('throbber', throbber);\n\n function throbber(API_URL, $rootScope, $timeout) {\n return {\n restrict: 'E',\n replace: true,\n templateUrl: 'throbber.html',\n link: function link(scope, elem, attrs) {\n scope.throbberMessage = \"\";\n $rootScope.throbber = {};\n\n $rootScope.throbber.show = function () {\n scope.showThrobber = true;\n scope.loading = true;\n };\n\n $rootScope.throbber.hide = function (message) {\n scope.loading = false;\n\n if (message) {\n scope.throbberMessage = message;\n $timeout(function () {\n scope.showThrobber = false;\n scope.throbberMessage = '';\n }, 3000);\n } else {\n scope.showThrobber = false;\n }\n };\n\n $rootScope.throbber.showError = function (errorMessage) {\n var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n scope.showThrobber = false;\n scope.showError = true;\n scope.throbberMessage = errorMessage;\n scope.callBack = cb;\n $timeout(function () {\n scope.showThrobber = false;\n scope.showError = false;\n scope.throbberMessage = '';\n scope.callBack && scope.callBack();\n }, 5000);\n };\n\n scope.hideError = function () {\n scope.showError = false;\n scope.throbberMessage = '';\n scope.callBack && scope.callBack();\n };\n }\n };\n }\n})();","angular.module('directive.tooltip', []).directive('tooltip', function () {\n return {\n restrict: 'E',\n replace: true,\n scope: {\n title: '@'\n },\n template: '',\n link: function link(scope, elem, attrs) {\n $(elem).tooltip({\n 'title': scope.title,\n 'placement': 'auto'\n });\n }\n };\n}); // End directive","(function () {\n angular.module('filter.smoothdate', []).filter('smoothDate', smoothDate); // A filter to transform a timestamp based on timezone, locale and whether the clock is\n // 24 hour or not\n\n function smoothDate() {\n return function (date, settings) {\n if (!settings || !settings.locale) {\n return;\n }\n\n moment.locale(settings.locale);\n moment.tz.setDefault(settings.timezone);\n return moment(date).format('ddd ll');\n };\n }\n})();","(function () {\n angular.module('filter.smoothdatetime', []).filter('smoothDateTime', smoothDateTime); // A filter to transform a timestamp based on timezone, locale and whether the clock is\n // 24 hour or not\n\n function smoothDateTime() {\n return function (timestamp, settings) {\n moment.locale(settings.locale);\n moment.tz.setDefault(settings.timezone);\n\n if (!settings.clock24) {\n return moment.unix(timestamp).format('ll LT');\n }\n\n return moment.unix(timestamp).format('ll HH');\n };\n }\n})();","(function () {\n angular.module('filter.smoothtime', []).filter('smoothTime', smoothTime); // A filter to transform a timestamp based on timezone, locale and whether the clock is\n // 24 hour or not\n\n function smoothTime() {\n return function (timestamp, settings) {\n // Get locale from the user's client\n var locale = window.navigator.userLanguage || window.navigator.language || 'en';\n moment.locale(settings.locale);\n moment.tz.setDefault(settings.timezone);\n\n if (!settings.clock24) {\n return moment.unix(timestamp).format('LT');\n }\n\n return moment.unix(timestamp).format('HH:mm');\n };\n }\n})();","/*\r\n 1. Take the string\r\n 2. The string is the default.\r\n 3. It can be overridden by:\r\n - a generic translation\r\n - a specific label set by the owner\r\n */\nangular.module('calendarApp').filter('calendarLabel', calendarLabel);\n\nfunction calendarLabel() {\n return function (label) {\n return smooth.translations && smooth.translations[label] || label;\n };\n}","HomeController.$inject = [\"API_URL\", \"$http\", \"$rootScope\", \"DaysToCountService\", \"TimeslotService\", \"FixedHeadingService\", \"$location\", \"$filter\"];\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nangular.module('calendarApp').controller('HomeController', HomeController);\n\nfunction HomeController(API_URL, $http, $rootScope, DaysToCountService, TimeslotService, FixedHeadingService, $location, $filter) {\n var home = this; // The customer has been directed to this calendar type. Store the calendar type - the user will always be directed to this\n // calendar.\n\n localStorage.setItem('calendar-type', 'CLASS');\n home.init =\n /*#__PURE__*/\n _asyncToGenerator(\n /*#__PURE__*/\n regeneratorRuntime.mark(function _callee() {\n var loggedIn, appointments, unreserve, searchParams, date, timeslotParams;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n home.finishedLoading = false;\n $rootScope.timeSettings = smooth.timeSettings;\n loggedIn = !!($rootScope.customerInfo && $rootScope.customerInfo.email); // Remove modal background if it's there\n\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n delete $rootScope.newAppointments;\n localStorage.removeItem('payment-state'); // If there are previously reserved appointments, delete them as it will cause a mess\n // if the user chooses a new service\n\n appointments = localStorage.getItem('reserved-appointments');\n\n try {\n appointments = JSON.parse(appointments);\n } catch (e) {\n localStorage.removeItem('reserved-appointments');\n appointments = null;\n } // Delete all tentative appointments against the customer\n\n\n _context.prev = 9;\n _context.t0 = loggedIn && appointments && appointments.length;\n\n if (!_context.t0) {\n _context.next = 15;\n break;\n }\n\n _context.next = 14;\n return $http.put(API_URL + '/api/v1/calendar/appointment/unreserve', {\n appointments: appointments\n });\n\n case 14:\n _context.t0 = _context.sent;\n\n case 15:\n unreserve = _context.t0;\n localStorage.removeItem('reserved-appointments');\n _context.next = 22;\n break;\n\n case 19:\n _context.prev = 19;\n _context.t1 = _context[\"catch\"](9);\n console.error(\"Error unreserving appointments\");\n\n case 22:\n searchParams = $location.search();\n home.chosenService = searchParams.serviceid || '1';\n home.chosenResource = searchParams.resourceid || '1';\n home.chosenDate = searchParams.date || null;\n date = $location.search().date; // date supplied as ?date= param\n\n if (date && moment(date).isSameOrAfter(moment())) {\n home.startDate = moment(date);\n } else {\n home.startDate = moment();\n }\n\n timeslotParams = {\n startdate: home.startDate.format('YYYY-MM-DD'),\n daystocount: DaysToCountService.getDaysToCount()\n };\n\n if (home.chosenService !== '1') {\n timeslotParams.serviceid = home.chosenService;\n }\n\n if (home.chosenResource !== '1') {\n timeslotParams.resourceid = home.chosenResource;\n }\n\n $rootScope.throbber && $rootScope.throbber.show();\n TimeslotService.getTimeslots(timeslotParams).then(function (response) {\n home.finishedLoading = true;\n $rootScope.throbber && $rootScope.throbber.hide();\n\n if (!response.success) {\n $rootScope.throbber && $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request'));\n console.error('Sorry but an error occurred with this request');\n return;\n }\n\n home.days = response.days;\n home.daysAvailable = response.daysAvailable;\n home.resources = response.resources;\n home.startDate = home.days.length ? moment(home.days[0].date) : moment();\n home.services = response.services;\n FixedHeadingService.fixHeading();\n }, function (error) {\n $rootScope.throbber && $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request: ' + error.msg));\n console.error('Sorry but an error occurred with this request');\n });\n\n case 33:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[9, 19]]);\n })); // end init\n\n home.init();\n\n home.filterService = function () {\n var params = {\n startdate: home.startDate.format('YYYY-MM-DD'),\n daystocount: DaysToCountService.getDaysToCount()\n };\n\n if (home.chosenService !== '1') {\n params.serviceid = home.chosenService;\n } // Reset the chosen resource\n\n\n home.chosenResource = '1';\n $rootScope.throbber.show();\n TimeslotService.getTimeslots(params).then(function (response) {\n $rootScope.throbber.hide();\n\n if (!response.success) {\n $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request:' + error.data.msg));\n return;\n }\n\n home.days = response.days;\n home.daysAvailable = response.daysAvailable;\n home.resources = response.resources;\n home.services = response.services;\n home.startDate = home.days.length ? moment(home.days[0].date) : moment();\n $location.search('resourceid', null);\n\n if (home.chosenService !== '1') {\n $location.search('serviceid', home.chosenService);\n } else {\n $location.search('serviceid', null);\n }\n }, function (error) {\n $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request:' + error.data.msg));\n throw new Error(error);\n });\n };\n\n home.filterResource = function () {\n var params = {\n startdate: home.startDate.format('YYYY-MM-DD'),\n daystocount: DaysToCountService.getDaysToCount()\n };\n\n if (home.chosenResource !== '1') {\n params.resourceid = home.chosenResource;\n } // Always filter on the service\n\n\n if (home.chosenService !== '1') {\n params.serviceid = home.chosenService;\n }\n\n TimeslotService.getTimeslots(params).then(function (response) {\n if (!response.success) {\n // $rootScope.throbber.showError(response.msg);\n return;\n }\n\n home.days = response.days;\n home.resources = response.resources;\n home.services = response.services;\n home.daysAvailable = response.daysAvailable;\n home.startDate = home.days.length ? moment(home.days[0].date) : moment();\n\n if (home.chosenResource !== '1') {\n $location.search('resourceid', home.chosenResource);\n } else {\n $location.search('resourceid', null);\n }\n }, function (error) {\n $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request'));\n throw new Error(error);\n });\n }; // Called by the datepicker\n\n\n home.dateChanged = function (date) {\n var params = {\n startdate: date,\n daystocount: DaysToCountService.getDaysToCount()\n };\n\n if (home.chosenService !== '1') {\n params.serviceid = home.chosenService;\n }\n\n if (home.chosenResource && home.chosenResource !== '1') {\n params.resourceid = home.chosenResource;\n }\n\n $rootScope.throbber.show();\n $http.get(API_URL + '/api/v1/calendar/timeslots/' + smooth.orgid, {\n params: params\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request'));\n console.error(response.msg);\n return;\n }\n\n home.days = response.timeslots;\n home.startDate = home.days.length ? moment(home.days[0].date) : moment();\n $location.search('date', moment(home.days[0].date).format('YYYY-MM-DD'));\n }, function (error) {\n $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request'));\n throw new Error(error);\n });\n }; // Remember that the days displayed may not be consecutive.\n // So if we're moving, we want to start at the day *after* the last one that is currently\n // being shown.\n\n\n home.moveDays = function (direction) {\n var daysToMove = DaysToCountService.getDaysToCount(); // Determine startDate\n\n var startDate;\n\n if (direction === 'forward') {\n // Get the date from the last of the currently showing days\n startDate = home.days[home.days.length - 1].date; // Add one day as starting point\n\n startDate = moment(startDate).add(1, 'days').format('YYYY-MM-DD');\n } else {\n startDate = home.days[0].date;\n }\n\n if (moment(startDate).isSameOrBefore(home.daysAvailable[0]) || moment(startDate).isSameOrAfter(home.daysAvailable[home.daysAvailable.length - 1])) {\n return;\n }\n\n var params = {\n startdate: startDate,\n daystocount: daysToMove,\n direction: direction\n };\n\n if (home.chosenService !== '1') {\n params.serviceid = home.chosenService;\n }\n\n if (home.chosenResource !== '1') {\n params.resourceid = home.chosenResource;\n }\n\n $rootScope.throbber && $rootScope.throbber.show();\n $http.get(API_URL + '/api/v1/calendar/timeslots/' + smooth.orgid, {\n params: params\n }).then(function (reply) {\n $rootScope.throbber && $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber && $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request'));\n console.error(response.msg);\n return;\n }\n\n home.days = response.timeslots;\n home.startDate = home.days.length ? moment(home.days[0].date) : moment();\n $location.search('date', moment(home.days[0].date).format('YYYY-MM-DD'));\n FixedHeadingService.fixHeading();\n }, function (error) {\n $rootScope.throbber.showError($filter('calendarLabel')('Sorry but an error occurred with this request'));\n throw new Error(error);\n });\n };\n}","angular.module('calendarApp').directive('footerVersion', footerVersion);\n\nfunction footerVersion() {\n return {\n restrict: 'EA',\n replace: true,\n template: '

v{{version}}
',\n link: function link(scope, elem, attrs) {\n scope.version = process.env.VERSION;\n }\n };\n}","ChoosePaymentController.$inject = [\"API_URL\", \"$http\", \"PaymentOptionService\", \"$rootScope\", \"$location\", \"$filter\", \"$timeout\"];\nangular.module('calendarApp').controller('ChoosePaymentController', ChoosePaymentController);\n\nfunction ChoosePaymentController(API_URL, $http, PaymentOptionService, $rootScope, $location, $filter, $timeout) {\n var pay = this;\n\n pay.init = function () {\n var updateType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n pay.updateType = updateType;\n pay.membershipProcessing = false; // All appointments at this stage must be in local storage\n\n var appointments = localStorage.getItem('reserved-appointments');\n\n if (!appointments) {\n $location.path('/');\n return;\n }\n\n appointments = JSON.parse(appointments);\n pay.appointments = appointments;\n pay.currencySettings = smooth.currencySettings;\n pay.couponLoading = [];\n pay.couponErrorMessage = [];\n pay.couponSuccessMessage = [];\n pay.serviceID = appointments[0].serviceid._id;\n pay.shiftID = appointments[0].shiftid._id || appointments[0].shiftid; // Retrieve payment options for this user and this service\n\n $rootScope.throbber && $rootScope.throbber.show();\n pay.loading = true;\n $http.get(API_URL + '/api/v1/calendar/payment/options/' + pay.shiftID).then(function (reply) {\n pay.loading = false;\n $rootScope.throbber && $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n var errorMessage = $filter('calendarLabel')('Sorry but an error occurred: ');\n $rootScope.throbber && $rootScope.throbber.showError(errorMessage + ' ' + response.msg);\n return;\n }\n\n pay.serviceMembership = PaymentOptionService.payByMembership(pay.serviceID, response.paymentoptions);\n\n if (!!pay.serviceMembership) {\n return;\n }\n\n pay.defaultPayment = response.defaultpayment || null;\n\n try {\n pay.paymentState = PaymentOptionService.init(response.paymentoptions, appointments.length, response.paymentoptions.appointmentsInWorkshop);\n } catch (e) {\n console.error('Error in payment option service: ' + e);\n }\n }).catch(function (error) {\n pay.loading = false;\n $rootScope.throbber && $rootScope.throbber.hide();\n var errorMessage = $filter('calendarLabel')('Sorry but an error occurred: ');\n $rootScope.throbber && $rootScope.throbber.showError(errorMessage + ' ' + response.msg);\n });\n };\n\n $rootScope.$watch('outstandingInvoices', function () {\n pay.outstandingInvoices = $rootScope.outstandingInvoices;\n });\n pay.init();\n\n pay.payWithMembership = function () {\n // All appointments at this stage must be in local storage\n var storedAppointments = localStorage.getItem('reserved-appointments');\n\n if (!storedAppointments) {\n $location.path('/');\n return;\n }\n\n pay.membershipProcessing = true;\n var appointments = JSON.parse(storedAppointments);\n if (!appointments || !appointments.length) return $rootScope.throbber.showError(\"We're sorry but we could not find any appointments to confirm. If this is in error please contact support@smoothbook.co\");\n var serviceMembership = pay.serviceMembership,\n throbber = $rootScope.throbber;\n\n if (!serviceMembership) {\n return alert('Sorry but your membership was not found. Please contact support@smoothbook.co if this problem persists');\n }\n\n throbber.show();\n $http.post(API_URL + '/api/v1/calendar/membership/payments/' + pay.serviceMembership.membershipid, {\n appointments: appointments\n }).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n pay.membershipProcessing = false;\n\n if (!response.success) {\n return throbber.showError(\"Sorry but there was an error with this request: \".concat(response.msg));\n }\n\n var newAppointments = response.newAppointments; // Update localStorage\n\n localStorage.removeItem('reserved-appointments');\n localStorage.setItem('new-appointments', JSON.stringify(newAppointments));\n $location.path('/confirm');\n }).catch(function (err) {\n pay.membershipProcessing = false;\n throbber.showError(\"Sorry but an unexpected error occurred: \".concat(err.message, \". Please contact support@smoothbook.co if this error persists\"));\n });\n };\n\n pay.continue = function () {\n // Store payment state\n localStorage.setItem('payment-state', JSON.stringify(pay.paymentState));\n $location.path('payment');\n };\n\n pay.updateCustomerCredit = function (packageID, number, direction) {\n pay.paymentState = PaymentOptionService.updateCustomerCredit(packageID, number, direction);\n };\n\n pay.updatePackage = function (packageID, direction) {\n pay.paymentState = PaymentOptionService.updatePackage(packageID, direction);\n };\n\n pay.updateSingleAppointment = function (add) {\n pay.paymentState = PaymentOptionService.updateSingleAppointment(add);\n };\n\n pay.updateWorkshop = function (add) {\n pay.paymentState = PaymentOptionService.updateWorkshop(add);\n };\n\n pay.validateCoupon = function (packageID, $index) {\n var couponValue = pay.couponValue[$index];\n\n if (!couponValue) {\n return;\n }\n\n pay.couponLoading[$index] = true;\n $http.get(API_URL + '/api/v1/calendar/payment/validatecoupon/' + packageID, {\n params: {\n coupon: couponValue\n }\n }).then(function (reply) {\n pay.couponLoading[$index] = false;\n var response = reply.data,\n paymentState;\n\n if (!response.success) {\n pay.couponErrorMessage[$index] = response.msg;\n $timeout(function () {\n pay.couponErrorMessage[$index] = '';\n }, 3000);\n return;\n }\n\n pay.couponSuccessMessage[$index] = $filter('calendarLabel')('Coupon valid. Please click buy to purchase this package');\n $timeout(function () {\n try {\n // Success. Update the payment state with the coupon.\n paymentState = PaymentOptionService.addCoupon(packageID, couponValue);\n } catch (e) {\n pay.couponErrorMessage[$index] = e;\n $timeout(function () {\n pay.couponErrorMessage[$index] = '';\n }, 3000);\n }\n\n pay.couponSuccessMessage[$index] = '';\n }, 3000);\n }, function (error) {\n pay.couponErrorMessage[$index] = error;\n $timeout(function () {\n pay.couponErrorMessage[$index] = '';\n }, 3000);\n });\n };\n\n pay.cancel = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n}","(function () {\n PaymentController.$inject = [\"API_URL\", \"$http\", \"$location\", \"$filter\", \"$rootScope\"];\n angular.module('calendarApp').controller('PaymentController', PaymentController);\n\n function PaymentController(API_URL, $http, $location, $filter, $rootScope) {\n var pay = this;\n\n pay.init = function () {\n localStorage.removeItem('confirmed-appointments'); // Get appointments and payment info from storage\n\n var appointments = localStorage.getItem('reserved-appointments'),\n paymentState = localStorage.getItem('payment-state');\n\n if (!appointments || !paymentState) {\n $location.path('/');\n return;\n }\n\n pay.paymentState = JSON.parse(paymentState);\n pay.appointments = JSON.parse(appointments);\n pay.currencySettings = smooth.currencySettings;\n };\n\n pay.init();\n\n pay.noChargeContinue = function () {\n var appointmentids = pay.appointments.map(function (appointment) {\n return appointment._id;\n });\n $rootScope.throbber.show();\n $http.post(API_URL + '/stripe/submitpayment', {\n paymentstate: pay.paymentState,\n appointmentids: appointmentids\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError(response.msg);\n return;\n }\n\n pay.success(response.appointments);\n }, function (error) {\n console.error(error);\n });\n }; // Called from Stripe payments directive\n\n\n pay.success = function (newAppointments) {\n // Update localStorage\n localStorage.removeItem('reserved-appointments');\n localStorage.setItem('new-appointments', JSON.stringify(newAppointments));\n $location.path('/confirm');\n };\n\n pay.toggleReview = function () {\n $('.pay-appointment-review').slideToggle();\n };\n\n pay.cancel = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n }\n})();","(function () {\n BookingFormController.$inject = [\"$location\", \"$filter\", \"API_URL\", \"$http\", \"$rootScope\"];\n angular.module('calendarApp').controller('BookingFormController', BookingFormController);\n\n function BookingFormController($location, $filter, API_URL, $http, $rootScope) {\n var book = this;\n\n book.init = function () {\n // All appointments at this stage must be in local storage\n var appointments = localStorage.getItem('reserved-appointments'); // Set on the review page\n\n book.requiresPayment = localStorage.getItem('requires-payment') ? JSON.parse(localStorage.getItem('requires-payment')) : false;\n\n if (!appointments) {\n $location.path('/');\n return;\n }\n\n appointments = JSON.parse(appointments);\n book.appointments = appointments;\n book.serviceID = appointments[0].serviceid._id;\n\n if (!smooth.forms.booking || !smooth.forms.booking.length) {\n // TODO:Record the error and redirect to next step\n console.error('Booking form not defined');\n return;\n }\n\n var serviceID = book.appointments[0].serviceid._id,\n bookingForms = smooth.forms.booking,\n newForm = null;\n\n for (var i = 0; i < bookingForms.length; i++) {\n // If a booking form has a service id then that one takes priority.\n if (bookingForms[i].serviceid === serviceID) {\n newForm = bookingForms[i];\n break;\n }\n\n if (bookingForms[i].serviceid === 'default') {\n newForm = bookingForms[i];\n }\n }\n\n if (!newForm) {\n throw new Error('No booking form defined'); // TODO: Go to next step\n }\n\n book.bookingForm = newForm.entities;\n book.bookingData = {};\n };\n\n book.init();\n\n book.submitBookingForm = function () {\n // Update appointments with booking data.\n if (book.requiresPayment) {\n $rootScope.throbber.show();\n $http.put(API_URL + '/api/v1/calendar/appointment/', {\n appointments: book.appointments,\n updatedata: {\n bookinginfo: book.bookingData\n }\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError('Sorry but there was an error with this query ' + response.msg);\n return;\n }\n\n localStorage.setItem('reserved-appointments', JSON.stringify(response.appointments)); // Go to payment page if required\n\n if (book.requiresPayment) {\n $location.path('/choose-payment');\n }\n });\n return;\n } // End if\n\n\n for (var i = 0; i < book.appointments.length; i++) {\n book.appointments[i].bookinginfo = book.bookingData;\n } // No payment required\n\n\n $rootScope.throbber && $rootScope.throbber.show();\n var appointmentIDs = [],\n bookingform = {};\n book.appointments.forEach(function (appointment) {\n appointmentIDs.push(appointment._id);\n bookingform[appointment._id] = appointment.bookinginfo;\n }); // No payment required. Confirm appointments and go to confirmation page.\n\n $http.put(API_URL + '/api/v1/calendar/appointment/confirmunpaid', {\n appointmentids: appointmentIDs,\n bookingform: bookingform\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n if (response.alreadydeleted) {\n $rootScope.throbber.showError(\"Unfortunately an error has occurred with this reservation. We're very sorry but you will need to restart the reservation process\", function () {\n localStorage.removeItem('reserved-appointments');\n $location.path('/');\n });\n return;\n }\n\n return $rootScope.throbber.showError('Sorry but there was an error with this query ' + response.msg);\n } // Update local storage, redirect to confirmation page\n\n\n localStorage.removeItem('reserved-appointments');\n localStorage.setItem('new-appointments', JSON.stringify(response.appointments));\n $location.path('/confirm');\n });\n };\n\n book.cancel = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n }\n})();","(function () {\n ConfirmRegoController.$inject = [\"$location\", \"$filter\", \"API_URL\", \"$http\", \"$rootScope\"];\n angular.module('calendarApp').controller('ConfirmRegoController', ConfirmRegoController);\n\n function ConfirmRegoController($location, $filter, API_URL, $http, $rootScope) {\n var rego = this;\n\n rego.init = function () {\n // All appointments at this stage must be in local storage\n var appointments = localStorage.getItem('reserved-appointments'); // Set on the review page\n\n rego.requiresPayment = localStorage.getItem('requires-payment') ? JSON.parse(localStorage.getItem('requires-payment')) : false;\n\n if (!appointments) {\n $location.path('/');\n return;\n }\n\n appointments = JSON.parse(appointments);\n rego.appointments = appointments;\n rego.serviceID = appointments[0].serviceid;\n rego.regoForm = angular.copy(smooth.forms.registration);\n rego.regoData = {};\n $rootScope.throbber && $rootScope.throbber.show();\n $http.get(API_URL + '/api/v1/calendar/customer').then(function (reply) {\n $rootScope.throbber && $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError('Sorry but an error occurred: ' + response.msg);\n return;\n }\n\n var customer = response.customer;\n delete customer._id; // Complete basic registration email\n\n rego.customer = customer;\n rego.form = {\n firstname: customer.firstname,\n lastname: customer.lastname,\n email: customer.email\n };\n\n if (response.customer.reginfo) {\n rego.regoData = response.customer.reginfo;\n }\n }, function (error) {\n console.error(error);\n $rootScope.throbber.showError('Sorry but an error occurred');\n });\n };\n\n rego.init();\n\n rego.submitRego = function () {\n if (!rego.form.firstname || !rego.form.lastname || !rego.form.email) {\n alert('Please complete first name, last name and email fields');\n return;\n }\n\n rego.form.reginfo = rego.regoData || {};\n $rootScope.throbber && $rootScope.throbber.show();\n $http.put(API_URL + '/api/v1/calendar/customer', {\n customerinfo: rego.form\n }).then(function (reply) {\n $rootScope.throbber && $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError('Sorry there was an error with this request: ' + response.msg);\n return;\n }\n\n if (smooth.forms.booking && smooth.forms.booking.length) {\n var doBooking = false;\n smooth.forms.booking.forEach(function (form) {\n if (form.serviceid === 'default' || form.serviceid === rego.serviceID) {\n doBooking = true;\n }\n });\n\n if (doBooking) {\n $location.path('/bookingform');\n return;\n }\n } // Go to payment page if required\n\n\n if (rego.requiresPayment) {\n $location.path('/choose-payment');\n return;\n }\n\n $rootScope.throbber && $rootScope.throbber.show();\n var appointmentIDs = rego.appointments.map(function (appointment) {\n return appointment._id;\n }); // No payment required. Confirm appointments and go to confirmation page.\n\n $http.put(API_URL + '/api/v1/calendar/appointment/confirmunpaid', {\n appointmentids: appointmentIDs\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n if (response.alreadydeleted) {\n $rootScope.throbber.showError(\"Unfortunately an error has occurred with this reservation. We're very sorry but you will need to restart the reservation process\", function () {\n localStorage.removeItem('reserved-appointments');\n $location.path('/');\n });\n return;\n }\n\n return $rootScope.throbber.showError('Sorry but there was an error with this query ' + response.msg);\n } // Update local storage, redirect to confirmation page\n\n\n localStorage.removeItem('reserved-appointments');\n localStorage.setItem('new-appointments', JSON.stringify(response.appointments));\n $location.path('/confirm');\n });\n }, function (error) {\n console.error(error);\n $rootScope.throbber.showError('Sorry but an error occurred with this request: ');\n });\n };\n\n rego.cancel = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n }\n})();","(function () {\n OverbookedController.$inject = [\"$routeParams\", \"$location\", \"$rootScope\", \"$filter\"];\n angular.module('calendarApp').controller('OverbookedController', OverbookedController);\n\n function OverbookedController($routeParams, $location, $rootScope, $filter) {\n var over = this;\n\n over.init = function () {\n if (!$rootScope.overBooked || !$rootScope.overBooked.length) {\n return $location.path($routeParams.referrer || '/');\n } // Show appointments which can be booked\n\n\n var appointments = localStorage.getItem('reserved-appointments');\n over.appointments = appointments ? JSON.parse(appointments) : [];\n over.doWaitlist = over.appointments.find(function (appt) {\n return appt.serviceid && appt.serviceid.waitlist;\n }); // Overbooked appointments\n\n over.overBooked = $rootScope.overBooked;\n over.timeSettings = smooth.timeSettings;\n moment.tz.setDefault(over.timeSettings.timezone);\n };\n\n over.init();\n\n over.continue = function () {\n // What happens next depends on who the referrer was\n delete $rootScope.overBooked;\n\n if (!over.appointments || !over.appointments.length) {\n return $location.path('/review');\n }\n\n if ($routeParams.referrer === 'chooseslots') {\n if (smooth.calendarSettings.bookfuturedays) {\n $location.path('/futureslots');\n } else {\n $location.path('/review');\n }\n } else {\n $location.path('/review');\n }\n };\n\n over.chooseWaitlist = function (timeslot, shift) {\n over.waitlistModal(timeslot, over.shift);\n };\n\n over.cancel = function () {\n if (over.appointments && over.appointments.length) {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n }\n\n $location.path('/');\n };\n }\n})();","(function () {\n PreviewController.$inject = [\"API_URL\", \"$http\", \"$window\", \"$location\"];\n angular.module('calendarApp').controller('PreviewController', PreviewController);\n\n function PreviewController(API_URL, $http, $window, $location) {\n var preview = this;\n\n preview.init = function () {\n // All appointments at this stage must be in local storage\n var appointments = localStorage.getItem('reserved-appointments');\n\n if (!appointments) {\n $location.path('/');\n return;\n }\n\n appointments = JSON.parse(appointments);\n preview.appointments = appointments;\n };\n\n preview.init();\n\n preview.unreserveAppointment = function ($index, appointment) {\n $rootScope.throbber.show();\n $http.put(API_URL + '/api/v1/calendar/appointment/unreserve', {\n appointments: [appointment]\n }).then(function () {\n $rootScope.throbber.hide();\n localStorage.removeItem('reserved-appointments');\n review.appointments.splice($index, 1);\n\n if (!review.appointments.length) {\n $location.path('/');\n }\n\n localStorage.setItem('reserved-appointments', JSON.stringify(review.appointments));\n });\n };\n\n preview.goBack = function () {\n $window.history.back();\n };\n }\n})();","(function () {\n ReviewController.$inject = [\"API_URL\", \"$http\", \"$location\", \"$filter\", \"$rootScope\"];\n angular.module('calendarApp').controller('ReviewController', ReviewController);\n\n function ReviewController(API_URL, $http, $location, $filter, $rootScope) {\n var review = this;\n\n review.init = function () {\n // All appointments at this stage must be in local storage\n var appointments = localStorage.getItem('reserved-appointments');\n localStorage.removeItem('requires-payment');\n\n try {\n appointments = JSON.parse(appointments);\n } catch (err) {\n console.error('Could not parse appointments');\n return $location.path('/');\n }\n\n if (!appointments || !appointments.length) {\n return $location.path('/');\n }\n\n review.appointments = appointments;\n review.serviceID = review.appointments[0].serviceid._id;\n review.shiftID = review.appointments[0].shiftid._id || review.appointments[0].shiftid;\n var shift = appointments[0].shiftid;\n review.shift = shift;\n review.calendarSettings = smooth.calendarSettings;\n review.mustAgreeTerms = !!(review.calendarSettings.tsandcsrequired && review.calendarSettings.tsandcs);\n review.termsAgreed = false; // Retrieve payment options for this user and this service\n\n $rootScope.throbber.show();\n $http.get(API_URL + '/api/v1/calendar/payment/options/' + review.shiftID).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n var errorMessage = $filter('calendarLabel')('Sorry but an error occurred: ');\n $rootScope.throbber.showError(errorMessage + ' ' + response);\n return;\n }\n\n review.requiresPayment = response.requirespayment;\n\n if (review.requiresPayment) {\n localStorage.setItem('requires-payment', JSON.stringify(review.requiresPayment));\n }\n }, function (error) {\n $rootScope.throbber.hide();\n var errorMessage = $filter('calendarLabel')('Sorry but an error occurred: ');\n $rootScope.throbber.showError(errorMessage + ' ' + error);\n });\n };\n\n review.init();\n\n review.continue = function () {\n // 1. Determine if forms need to be completed:\n // - Registration if its required\n // - Booking form if it exists for this service or a default has been defined\n // 2. If none of the above, determine if payment is required.\n // - If it is, redirect to payment page\n if (smooth.calendarSettings.regoformcompulsory) {\n $location.path('/confirmrego');\n return;\n }\n\n if (smooth.forms.booking && smooth.forms.booking.length) {\n var doBooking = false;\n smooth.forms.booking.forEach(function (form) {\n if (form.serviceid === 'default' || form.serviceid === review.serviceID) {\n doBooking = true;\n }\n });\n\n if (doBooking) {\n $location.path('/bookingform');\n return;\n }\n } // Go to payment page if required\n\n\n if (review.requiresPayment) {\n $location.path('/choose-payment');\n return;\n } // Don't send appointment objects to the server.\n\n\n var appointmentIDs = review.appointments.map(function (appointment) {\n return appointment._id;\n });\n $rootScope.throbber.show(); // No payment required. Confirm appointments and go to confirmation page.\n\n $http.put(API_URL + '/api/v1/calendar/appointment/confirmunpaid', {\n appointmentids: appointmentIDs\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n if (response.alreadydeleted) {\n $rootScope.throbber.showError(\"Unfortunately an error has occurred with this reservation. We're very sorry but you will need to restart the reservation process\", function () {\n localStorage.removeItem('reserved-appointments');\n $location.path('/');\n });\n return;\n }\n\n return $rootScope.throbber.showError('Sorry but there was an error with this query ' + response.msg);\n } // Update local storage, redirect to confirmation page\n\n\n localStorage.removeItem('reserved-appointments');\n localStorage.setItem('new-appointments', JSON.stringify(response.appointments));\n $location.path('/confirm');\n });\n };\n\n review.unreserveAppointment = function ($index, appointment) {\n $rootScope.throbber.show();\n $http.put(API_URL + '/api/v1/calendar/appointment/unreserve', {\n appointments: [appointment]\n }).then(function () {\n $rootScope.throbber.hide('Appointment unreserved');\n localStorage.removeItem('reserved-appointments');\n review.appointments.splice($index, 1);\n\n if (!review.appointments.length) {\n $location.path('/');\n }\n\n localStorage.setItem('reserved-appointments', JSON.stringify(review.appointments));\n });\n };\n\n review.cancel = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n }\n})();","(function () {\n ServiceAvailabilityController.$inject = [\"API_URL\", \"$http\", \"$routeParams\", \"$location\", \"$rootScope\", \"ShiftService\", \"$timeout\"];\n\n var moment = require('moment-timezone');\n\n angular.module('calendarApp').controller('ServiceAvailabilityController', ServiceAvailabilityController);\n\n function ServiceAvailabilityController(API_URL, $http, $routeParams, $location, $rootScope, ShiftService, $timeout) {\n var serviceID = $routeParams.serviceid,\n date = $routeParams.date,\n endDate = moment(date).add(1, 'days').format('YYYY-MM-DD'),\n throbber = $rootScope.throbber,\n choose = this; // Delete any existing search params\n\n $location.search({});\n choose.selectedSlots = [];\n choose.date = moment(date).format('ll');\n choose.timeSettings = smooth.timeSettings;\n moment.tz.setDefault(choose.timeSettings.timezone);\n\n if (!serviceID || !date) {\n $location.path('#/service-calendar');\n return;\n }\n\n function init() {\n throbber.show();\n $http.get(API_URL + '/api/v1/calendar/timeslots/' + smooth.orgid + '?serviceid=' + serviceID + '&startdate=' + date + '&enddate=' + endDate).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError(response.msg);\n return;\n }\n\n if (!response.timeslots || !response.timeslots.length) {\n throbber.showError('Sorry but there is no availability for this day');\n return;\n } // 'timeslots' is a complete misnomer: these are shifts by day\n // (and there should be only one day)\n\n\n var day = response.timeslots[0];\n choose.shifts = day.shifts;\n choose.shiftObject = ShiftService.getShiftsByResource(choose.shifts);\n choose.service = choose.shifts.length && choose.shifts[0].service;\n }).catch(function (err) {\n console.error(err.message);\n });\n }\n\n init();\n\n choose.continue = function () {\n // At this point we're beginning to build an array of appointments to book\n var newAppointments = [];\n choose.selectedSlots.forEach(function (key) {\n // var key = resourceID + '_' + shiftIndex + '_' + timeslotIndex;\n var elements = key.split('_'),\n resourceID = elements[0],\n shiftIndex = elements[1],\n timeslotIndex = elements[2],\n shift = choose.shiftObject[resourceID].shifts[shiftIndex],\n shiftID = shift._id,\n timeslot = choose.shiftObject[resourceID].shifts[shiftIndex].timeslots[timeslotIndex];\n var appointment = {\n shiftid: shiftID,\n serviceid: timeslot.serviceid,\n start: timeslot.start,\n end: timeslot.end,\n date: shift.date\n };\n\n if (timeslot.hasresource) {\n appointment.hasresource = true;\n appointment.resourceid = timeslot.resourceid;\n } else {\n appointment.hasresource = false;\n }\n\n if (shift.isworkshop) {\n appointment.workshopshiftid = shift._id;\n }\n\n newAppointments.push(appointment);\n });\n $rootScope.throbber.show(); // Now save the appointments tentatively to the server (and to local storage?)\n\n $http.post(API_URL + '/api/v1/calendar/appointment/reserve', {\n appointments: newAppointments\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data; // Show any overbooked timeslots\n\n if (response.overbooked) {\n $rootScope.overBooked = [];\n $rootScope.overBooked = response.overbookedappointments; // If some appointments were made and some were not, let the user choose which ones they\n // want to keep\n\n if (response.appointments.length) {\n // Store timeslots\n var reservedAppointments = response.appointments;\n localStorage.setItem('reserved-appointments', JSON.stringify(reservedAppointments));\n $location.path('/overbooked/chooseslots');\n } else {\n // None of the chosen appointments were allowed.\n choose.noneAllowed = true;\n $timeout(function () {\n choose.noneAllowed = false;\n }, 3000);\n }\n\n return;\n } // Store tentative appointments in local storage\n\n\n if (!response.appointments || !response.appointments.length) {\n return;\n } // Store appointments in all cases\n\n\n var reservedAppointments = response.appointments;\n localStorage.setItem('reserved-appointments', JSON.stringify(reservedAppointments)); // If settings allow, go to future slots\n\n if (smooth.calendarSettings.bookfuturedays) {\n $location.path('/futureslots');\n } else {\n $location.path('/review');\n }\n });\n };\n\n choose.addTimeslot = function (resourceID, shiftIndex, timeslotIndex) {\n if (choose.shiftObject[resourceID].shifts[shiftIndex].timeslots[timeslotIndex].selected === choose.shiftObject[resourceID].shifts[shiftIndex].bookmulti) {\n return;\n }\n\n choose.shiftObject[resourceID].shifts[shiftIndex].timeslots[timeslotIndex].selected = choose.shiftObject[resourceID].shifts[shiftIndex].timeslots[timeslotIndex].selected ? choose.shiftObject[resourceID].shifts[shiftIndex].timeslots[timeslotIndex].selected + 1 : 1; // Create a key for the selectedSlots array\n\n var key = resourceID + '_' + shiftIndex + '_' + timeslotIndex;\n choose.selectedSlots.push(key);\n };\n\n choose.removeTimeslot = function (resourceID, shiftIndex, timeslotIndex) {\n choose.shiftObject[resourceID].shifts[shiftIndex].timeslots[timeslotIndex].selected--;\n var key = resourceID + '_' + shiftIndex + '_' + timeslotIndex;\n choose.selectedSlots.splice(choose.selectedSlots.indexOf(key), 1);\n }; // Remove selected timeslots - unselect selected timeslots and empty the selected slots\n\n\n choose.cancelSelect = function () {\n for (var resourceID in choose.shiftObject) {\n for (var i = 0; i < choose.shiftObject[resourceID].shifts.length; i++) {\n for (var j = 0; j < choose.shiftObject[resourceID].shifts[i].timeslots.length; j++) {\n choose.shiftObject[resourceID].shifts[i].timeslots[j].selected = false;\n }\n }\n }\n\n choose.selectedSlots = [];\n };\n\n choose.joinWaitlist = function (timeslot) {\n choose.waitlistModal(timeslot);\n };\n\n choose.cancel = function () {\n $location.path('/');\n };\n }\n})();","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n(function () {\n ServiceCalendarController.$inject = [\"API_URL\", \"$http\", \"$rootScope\"];\n angular.module('calendarApp').controller('ServiceCalendarController', ServiceCalendarController);\n\n function ServiceCalendarController(API_URL, $http, $rootScope) {\n var serv = this,\n throbber = $rootScope.throbber;\n localStorage.setItem('calendar-type', 'SERVICE');\n serv.orgID = smooth.orgid;\n serv.chosenServices = {};\n serv.init =\n /*#__PURE__*/\n _asyncToGenerator(\n /*#__PURE__*/\n regeneratorRuntime.mark(function _callee() {\n var appointments, loggedIn, unreserve;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n serv.finishedLoading = false;\n $rootScope.timeSettings = smooth.timeSettings;\n delete $rootScope.newAppointments;\n localStorage.removeItem('payment-state'); // Delete all tentative appointments against the customer\n\n _context.prev = 4;\n // If there are previously reserved appointments, delete them as it will cause a mess\n // if the user chooses a new service\n appointments = localStorage.getItem('reserved-appointments') ? JSON.parse(localStorage.getItem('reserved-appointments')) : [], loggedIn = !!($rootScope.customerInfo && $rootScope.customerInfo.email);\n\n if (!appointments.length) {\n _context.next = 15;\n break;\n }\n\n appointments = appointments.map(function (appt) {\n return {\n _id: appt._id\n };\n });\n _context.t0 = loggedIn && appointments && appointments.length;\n\n if (!_context.t0) {\n _context.next = 13;\n break;\n }\n\n _context.next = 12;\n return $http.put(API_URL + '/api/v1/calendar/appointment/unreserve', {\n appointments: appointments\n });\n\n case 12:\n _context.t0 = _context.sent;\n\n case 13:\n unreserve = _context.t0;\n localStorage.removeItem('reserved-appointments');\n\n case 15:\n _context.next = 20;\n break;\n\n case 17:\n _context.prev = 17;\n _context.t1 = _context[\"catch\"](4);\n console.error(\"Error unreserving appointments\");\n\n case 20:\n throbber.show(); // To start with, only show a list of services / resources\n\n $http.get(API_URL + '/api/v1/services/' + smooth.orgid + '?getcost=true&enabledonly=true').then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError('Sorry there was an error with this request: ' + response.msg);\n return;\n }\n\n serv.services = response.services;\n });\n\n case 22:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[4, 17]]);\n })); // end init\n\n serv.init();\n\n serv.toggleService = function (serviceID) {\n serv.chosenServices[serviceID] = !serv.chosenServices[serviceID];\n };\n }\n})();","(function () {\n angular.module('calendarApp').service('DaysToCountService', DaysToCountService);\n\n function DaysToCountService() {\n // The number of days to return from the timeslots api is determined by the\n // client width.\n this.getDaysToCount = function () {\n if (window.matchMedia('(max-width: 767px)').matches) {\n return 1; // Tablet\n } else if (window.matchMedia('(min-width: 768px) and (max-width: 992px)').matches) {\n return 2;\n } else {\n return 4;\n }\n };\n }\n})();","(function () {\n angular.module('calendarApp').service('FixedHeadingService', FixedHeadingService);\n\n function FixedHeadingService() {\n this.fixHeading = function () {\n var scrollTop = $(window).scrollTop();\n\n if (scrollTop >= 180) {\n // $('.heading-not-fixed').css('visibility', 'hidden');\n $('.header-container').addClass('header-container-fixed');\n $('.fixed-header-container').show();\n $('.mobile-next-prev ').css('visibility', 'visible');\n } else {\n // $('.heading-not-fixed').css('visibility', 'visible');\n $('.header-container').removeClass('header-container-fixed');\n $('.fixed-header-container').hide();\n $('.mobile-next-prev ').css('visibility', 'hidden');\n }\n };\n }\n})();","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// angular will not be defined if we're testing.\nif (typeof angular !== 'undefined') {\n angular.module('service.paymentOptionService', []).service('PaymentOptionService', PaymentOptionService);\n}\n\nfunction PaymentOptionService() {\n var that = this,\n _initialised = false,\n _paymentState = {},\n _appointmentsInWorkshop;\n\n that.init = function (paymentOptions, appointmentsToPayFor) {\n var appointmentsInWorkshop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n _appointmentsInWorkshop = appointmentsInWorkshop; // Need to know how many appointments in workshop\n // for workshop costs.\n\n _paymentState = {\n singleAppointments: 0,\n workshopAppointments: 0,\n workshopsPaidFor: 0,\n totalAppointments: 0,\n creditAppointments: 0,\n packageAppointments: 0,\n appointmentsPaidFor: 0,\n appointmentsToPayFor: 0,\n totalCost: 0,\n formattedCost: ''\n };\n if (typeof appointmentsToPayFor === 'undefined') throw new Error('Bad initialisation');\n _paymentState.paymentOptions = paymentOptions;\n _paymentState.appointmentsPaidFor = 0;\n _paymentState.appointmentsToPayFor = appointmentsToPayFor;\n _paymentState.totalAppointments = appointmentsToPayFor; // If the customer has existing credit, then use as much as that as possible to pay for appointments.\n // NB: for workshops if there is a package for the workshop and the customer has credit then it probably\n // makes sense to use the credit.\n\n if (_paymentState.paymentOptions.customerpackages && _paymentState.paymentOptions.customerpackages.length) {\n var customerPackages = _paymentState.paymentOptions.customerpackages; // Customer packages need to be ordered by:\n // - expiry date ascending (if set)\n // - credits left\n\n for (var i = 0; i < customerPackages.length; i++) {\n customerPackages[i].appointmentsPaidFor = customerPackages[i].appointmentsPaidFor || 0;\n\n while (_paymentState.appointmentsToPayFor > 0 && customerPackages[i].credits > 0) {\n _paymentState.appointmentsToPayFor--;\n _paymentState.appointmentsPaidFor++;\n customerPackages[i].appointmentsPaidFor += 1;\n customerPackages[i].credits--;\n }\n }\n }\n\n if (_paymentState.paymentOptions.packages && _paymentState.paymentOptions.packages.length) {\n for (var j = 0; j < _paymentState.paymentOptions.packages.length; j++) {\n _paymentState.paymentOptions.packages[j]['appointmentsPaidFor'] = 0;\n _paymentState.paymentOptions.packages[j]['packagesPurchased'] = 0;\n }\n }\n\n that.verifyPaymentState();\n _initialised = true;\n return _paymentState;\n };\n\n that.verifyPaymentState = function () {\n // Get the number of appointments paid for with each customer package and each payment package.\n var creditAppointments = 0,\n packageAppointments = 0,\n totalCost = 0;\n totalCost += _paymentState.singleAppointments * _paymentState.paymentOptions.singleappointmentcost;\n totalCost += _paymentState.workshopsPaidFor * _paymentState.paymentOptions.workshopcost;\n\n _paymentState.paymentOptions.customerpackages.forEach(function (creditPackage) {\n creditAppointments += creditPackage.appointmentsPaidFor;\n });\n\n _paymentState.paymentOptions.packages.forEach(function (paymentPackage) {\n packageAppointments += paymentPackage.appointmentsPaidFor;\n\n if (paymentPackage.purchased) {\n totalCost += paymentPackage.cost * paymentPackage.purchased;\n }\n });\n\n if (_paymentState.singleAppointments + _paymentState.workshopAppointments + creditAppointments + packageAppointments !== _paymentState.appointmentsPaidFor) {\n throw new Error('Payment state invalid');\n }\n\n if (_paymentState.singleAppointments + _paymentState.workshopAppointments + creditAppointments + packageAppointments + _paymentState.appointmentsToPayFor !== _paymentState.totalAppointments) {\n throw new Error('Payment state invalid');\n }\n\n if (_paymentState.singleAppointments < 0 || creditAppointments < 0 || packageAppointments < 0) {\n throw new Error('Payment state invalid');\n } // Thought this function was supposed to be validating not calculating but anyway.\n\n\n _paymentState.totalCost = totalCost; // TODO: Do formatted cost.\n }; // Customer is adding or removing a single appointment as payment method\n\n\n that.updateSingleAppointment = function (add) {\n if (!_initialised) throw new Error('Service uninitialised');\n\n if (typeof add === 'undefined') {\n add = true;\n } // It's possible that single appointment cost could be zero\n\n\n if (typeof _paymentState.paymentOptions.singleappointmentcost === 'undefined') {\n throw new Error('Single appointment payment option is not available');\n } // Not paying for more appointments if there are none left to pay for\n\n\n if (add && _paymentState.appointmentsToPayFor <= 0) {\n return _paymentState;\n }\n\n if (add) {\n _paymentState.singleAppointments++;\n _paymentState.appointmentsToPayFor--;\n _paymentState.appointmentsPaidFor++;\n _paymentState.totalCost += _paymentState.paymentOptions.singleappointmentcost;\n } else if (_paymentState.singleAppointments >= 1) {\n _paymentState.singleAppointments = _paymentState.singleAppointments - 1;\n _paymentState.appointmentsToPayFor++;\n _paymentState.appointmentsPaidFor--;\n _paymentState.totalCost -= _paymentState.paymentOptions.singleappointmentcost;\n } else {\n return _paymentState;\n }\n\n that.verifyPaymentState();\n return _paymentState;\n }; // Remove all single appointments\n\n\n that.removeSingleAppointments = function () {\n if (!_initialised) throw new Error('Service uninitialised'); // It's possible that single appointment cost could be zero\n\n if (typeof _paymentState.paymentOptions.singleappointmentcost === 'undefined') {\n throw new Error('Single appointment payment option is not available');\n }\n\n var singleAppointments = _paymentState.singleAppointments;\n _paymentState.singleAppointments = 0;\n _paymentState.appointmentsToPayFor += singleAppointments;\n _paymentState.appointmentsPaidFor -= singleAppointments;\n _paymentState.totalCost -= _paymentState.paymentOptions.singleappointmentcost * singleAppointments;\n that.verifyPaymentState();\n return _paymentState;\n }; // Add or subtract appointments that are paid for with customer credit.\n\n\n that.updateCustomerCredit = function (packageID, numAppts, add) {\n that.removeSingleAppointments();\n add = typeof add === 'undefined' ? true : add;\n numAppts = parseInt(numAppts);\n var customerPackages = _paymentState.paymentOptions.customerpackages,\n customerPackage = null;\n\n for (var i = 0; i < customerPackages.length; i++) {\n if (customerPackages[i]._id === packageID) {\n customerPackage = customerPackages[i];\n break;\n }\n }\n\n if (!customerPackage) {\n throw new Error('Customer package not found');\n } // ** Adding appointments **, ** subtracting credit **\n\n\n if (add) {\n if (customerPackage.credits < numAppts) {\n return _paymentState;\n }\n\n customerPackage.appointmentsPaidFor = customerPackage.appointmentsPaidFor ? customerPackage.appointmentsPaidFor + numAppts : numAppts;\n customerPackage.credits -= numAppts;\n _paymentState.appointmentsToPayFor -= numAppts;\n _paymentState.appointmentsPaidFor += numAppts;\n _paymentState.packageAppointments += numAppts;\n } else {\n // ** Subtracting appointments, adding credit **\n if (customerPackage.appointmentsPaidFor < numAppts) {\n return _paymentState;\n }\n\n customerPackage.appointmentsPaidFor -= numAppts;\n customerPackage.credits += numAppts;\n _paymentState.appointmentsToPayFor += numAppts;\n _paymentState.appointmentsPaidFor -= numAppts;\n }\n\n that.verifyPaymentState();\n return _paymentState;\n }; // Either add or subtract a package. Customer can only add / subtract one at a time.\n\n\n that.updatePackage = function (packageID, add) {\n add = typeof add === 'undefined' ? true : add;\n that.removeSingleAppointments();\n var packages = _paymentState.paymentOptions.packages,\n newPackage = packages.find(function (testPackage) {\n return testPackage._id === packageID;\n });\n\n if (!newPackage) {\n throw new Error('Package not found');\n }\n\n if (add) {\n // Customer is purchasing a package\n // Don't allow the customer to add the package if the uses are limited.\n if (newPackage.packageuses && newPackage.purchased >= newPackage.packageuses) throw new Error('Package uses exceeded');\n var newAppts = newPackage.numappts;\n newPackage.purchased = newPackage.purchased ? newPackage.purchased + 1 : 1;\n newPackage.appointmentsPaidFor = newPackage.appointmentsPaidFor || 0; // Pay for any outstanding appointments with credits from this package.\n\n if (_paymentState.appointmentsToPayFor) {\n var toPayFor = _paymentState.appointmentsToPayFor; // There are more new appointments than appointments to pay for.\n\n if (toPayFor <= newAppts) {\n newPackage.appointmentsPaidFor += toPayFor;\n _paymentState.appointmentsPaidFor += toPayFor;\n _paymentState.appointmentsToPayFor = 0;\n } else {\n // There are fewer new appointments than appointments to pay for.\n newPackage.appointmentsPaidFor += newAppts;\n _paymentState.appointmentsToPayFor -= newAppts;\n _paymentState.appointmentsPaidFor += newAppts;\n }\n }\n } else {\n // Customer is returning a package from their selection\n // Make sure that this package is already in the selection\n var paymentPackage = null;\n\n for (var j = 0; j < _paymentState.paymentOptions.packages.length; j++) {\n if (_paymentState.paymentOptions.packages[j]._id === packageID && _paymentState.paymentOptions.packages[j].purchased) {\n paymentPackage = _paymentState.paymentOptions.packages[j];\n break;\n }\n }\n\n if (!paymentPackage) throw new Error('Payment package not found'); // Got the package, now update the totals\n\n var totalCredits = paymentPackage.purchased * newPackage.numappts,\n remainingCredits = totalCredits - newPackage.numappts;\n\n if (remainingCredits < paymentPackage.appointmentsPaidFor) {\n var difference = paymentPackage.appointmentsPaidFor - remainingCredits;\n paymentPackage.appointmentsPaidFor -= difference;\n _paymentState.appointmentsToPayFor += difference;\n _paymentState.appointmentsPaidFor -= difference;\n }\n\n paymentPackage.purchased--;\n }\n\n that.verifyPaymentState();\n return _paymentState;\n }; // Reset appointments that have been paid for with customer credit\n\n\n that.removeCustomerCredits = function () {\n var removedAppointments = 0;\n _paymentState.paymentOptions.customerpackages = _paymentState.paymentOptions.customerpackages.map(function (customerPackage) {\n removedAppointments += customerPackage.appointmentsPaidFor;\n return _objectSpread({}, customerPackage, {\n appointmentsPaidFor: 0\n });\n });\n _paymentState.appointmentsPaidFor -= removedAppointments;\n _paymentState.appointmentsToPayFor += removedAppointments;\n that.verifyPaymentState();\n return _paymentState;\n }; // The customer is adding or removing a workshop charge.\n // If they are adding a workshop then all appointments are paid for and appointments to pay for drops to zero.\n // If they're subtracting a workshop then reset everything to allow the other options.\n // !!! The customer may need to pay for more than one workshop - i.e. if they are booking for more than one person.\n\n\n that.updateWorkshop = function () {\n var addWorkshop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!_appointmentsInWorkshop) throw new Error('Workshops incorrectly initialised'); // No point in allowing single / credit appointments if the customer is paying for the whole workshop.\n // Remove all existing payment options.\n\n that.removeSingleAppointments();\n that.removeCustomerCredits();\n addWorkshop ? _paymentState.workshopsPaidFor++ : _paymentState.workshopsPaidFor--;\n addWorkshop ? _paymentState.appointmentsToPayFor -= _appointmentsInWorkshop : _paymentState.appointmentsToPayFor += _appointmentsInWorkshop;\n addWorkshop ? _paymentState.appointmentsPaidFor += _appointmentsInWorkshop : _paymentState.appointmentsPaidFor -= _appointmentsInWorkshop;\n addWorkshop ? _paymentState.totalCost += _paymentState.paymentOptions.workshopcost : _paymentState.totalCost += _paymentState.paymentOptions.workshopcost;\n addWorkshop ? _paymentState.workshopAppointments += _appointmentsInWorkshop : _paymentState.workshopAppointments -= _appointmentsInWorkshop;\n that.verifyPaymentState();\n return _paymentState;\n }; // A coupon has been added and validated. Attach it to the package so it can be verified again\n // when payment is made.\n\n\n that.addCoupon = function (packageID, coupon) {\n var packages = _paymentState.paymentOptions.packages;\n\n for (var i = 0; i < packages.length; i++) {\n if (packages[i]._id === packageID) {\n packages[i].couponvalid = true;\n packages[i].couponcode = coupon;\n break;\n }\n }\n\n that.verifyPaymentState();\n return _paymentState;\n };\n\n that.getPaymentState = function () {\n if (!_initialised) {\n throw new Error('service unitialised');\n }\n\n return _paymentState;\n }; // Determine if all appointments can be paid for with a membership\n\n\n that.payByMembership = function (serviceID, paymentOptions) {\n if (!paymentOptions.customerMemberships || !paymentOptions.customerMemberships.length) {\n return false;\n }\n\n var memberships = paymentOptions.customerMemberships;\n var validMemberships = memberships.filter(function (membership) {\n return membership.services.find(function (service) {\n return service === serviceID;\n });\n }); // There may be more than one membership that applies, just return the first in the list.\n\n return validMemberships[0];\n };\n}\n\nmodule.exports = PaymentOptionService;","// Carry out various operations related to organising shifts\n(function () {\n angular.module('calendarApp').service('ShiftService', ShiftService);\n\n function ShiftService() {\n // Take a list of shifts and:\n // - group by resource\n // - order by date\n this.getShiftsByResource = function (shifts, appointments) {\n var shiftObject = {};\n shifts.forEach(function (shift) {\n for (var i = 0; i < shift.timeslots.length; i++) {\n if (appointments && appointments.length) {\n for (var i = 0; i < appointments.length; i++) {\n if (appointments[i].serviceid === shift.timeslots[i].serviceid && appointments[i].resourceid === shift.timeslots[i].resourceid && appointments[i].start === shift.timeslots[i].start && appointments[i].end === shift.timeslots[i].end) {\n shift.timeslots[i].selected = shift.timeslots[i].selected ? shift.timeslots[i].selected + 1 : 1;\n } else {\n shift.timeslots[i].selected = 0;\n }\n }\n } else {\n shift.timeslots[i].selected = 0;\n }\n }\n\n if (shift.hasresource) {\n if (typeof shiftObject[shift.resourceid] === 'undefined') {\n shiftObject[shift.resourceid] = {\n resource: shift.resource,\n shifts: [shift],\n timeslots: shift.timeslots\n };\n } else {\n shiftObject[shift.resourceid].shifts.push(shift);\n }\n } else {\n if (typeof shiftObject['no-resource'] === 'undefined') {\n shiftObject['no-resource'] = {\n resource: {\n name: ''\n },\n shifts: [shift],\n timeslots: shift.timeslots\n };\n } else {\n shiftObject['no-resource'].shifts.push(shift);\n }\n }\n }); // End foreach\n\n return shiftObject;\n };\n }\n})();","(function () {\n SingleSlotService.$inject = [\"API_URL\", \"$http\", \"$q\", \"$location\", \"$timeout\", \"$rootScope\"];\n angular.module('calendarApp').service('SingleSlotService', SingleSlotService);\n\n function SingleSlotService(API_URL, $http, $q, $location, $timeout, $rootScope) {\n this.reserveSlot = function (shift) {\n var deferred = $q.defer();\n var appointment = {\n shiftid: shift._id,\n serviceid: shift.timeslots[0].serviceid,\n servicename: shift.serviceName,\n start: shift.timeslots[0].start,\n end: shift.timeslots[0].end,\n date: shift.date\n };\n\n if (shift.timeslots[0].hasresource) {\n appointment.hasresource = true;\n appointment.resourceid = shift.timeslots[0].resourceid;\n appointment.resourcename = shift.resourceName;\n } else {\n appointment.hasresource = false;\n }\n\n if (shift.isworkshop) {\n appointment.workshopshiftid = shift._id;\n }\n\n $rootScope.throbber.show(); // Now save the appointments tentatively to the server (and to local storage)\n\n $http.post(API_URL + '/api/v1/calendar/appointment/reserve', {\n appointments: [appointment],\n orgid: smooth.orgid\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (response.orgidmismatch) {\n $rootScope.throbber.showError('Sorry but you are logged into the calendar for the wrong organisation. You will need to login again.');\n $timeout(function () {\n $rootScope.customerInfo = null;\n localStorage.removeItem('calendar-jwt-token');\n $location.path('#/login');\n $rootScope.safeApply();\n }, 3000);\n return;\n }\n\n if (!response.success) {\n return $rootScope.throbber.showError(\"Sorry but an error occurred with this request: \".concat(response.msg, \". Please contact support@smoothbook.co if this error persists\"));\n } // It's possible that there are no allowable appointments and this is an empty array.\n\n\n if (!response.appointments || !Array.isArray(response.appointments)) {\n response.appointments = [];\n }\n\n localStorage.setItem('reserved-appointments', JSON.stringify(response.appointments)); // Handle overbooked appointments\n\n if (response.overbooked) {\n $rootScope.overBooked = [];\n $rootScope.overBooked = response.overbookedappointments;\n $location.path('/overbooked/chooseslots');\n return;\n }\n\n deferred.resolve();\n }).catch(function (err) {\n $rootScope.throbber.showError(\"Sorry but an error occurred with this request: \".concat(err.message, \". Please contact support@smoothbook.co if this error persists\"));\n });\n return deferred.promise;\n };\n }\n})();","(function () {\n TimeslotService.$inject = [\"API_URL\", \"$http\", \"$q\", \"$rootScope\", \"$filter\"];\n angular.module('calendarApp').service('TimeslotService', TimeslotService);\n\n function TimeslotService(API_URL, $http, $q, $rootScope, $filter) {\n function servicesWithShifts(services, days) {\n var validServices = [],\n shifts = [];\n days.forEach(function (day) {\n shifts = shifts.concat(day.shifts);\n });\n\n for (var i = 0; i < services.length; i++) {\n for (var j = 0; j < shifts.length; j++) {\n if (services[i]._id === shifts[j].serviceid) {\n validServices.push(services[i]);\n break;\n }\n }\n }\n\n return validServices;\n }\n\n this.getTimeslots = function (filters) {\n var deferred = $q.defer();\n var timeslotOptions = angular.copy(filters || {}),\n availableDayOptions = angular.copy(filters || {});\n availableDayOptions.startdate = moment().format('YYYY-MM-DD');\n availableDayOptions.ignorebooked = true; // Why??\n\n var promises = [$http.get(API_URL + '/api/v1/calendar/timeslots/' + smooth.orgid, {\n params: timeslotOptions\n }), $http.get(API_URL + '/api/v1/daysavailable/' + smooth.orgid, {\n params: availableDayOptions\n }), $http.get(API_URL + '/api/v1/availableresources/' + smooth.orgid, {\n params: filters\n }), $http.get(API_URL + '/api/v1/services/' + smooth.orgid + '?getcost=true&enabledonly=true')];\n $q.all(promises).then(function (responses) {\n var success = true,\n message = '';\n responses.forEach(function (response) {\n if (!response.data.success) {\n success = false;\n message = response.data.msg;\n }\n });\n\n if (!success) {\n deferred.reject({\n msg: message\n });\n return;\n }\n\n var days = responses[0].data,\n daysAvailable = responses[1].data,\n resourceResponse = responses[2].data,\n serviceResponse = responses[3].data; // var services = servicesWithShifts(serviceResponse.services, days.timeslots);\n\n deferred.resolve({\n success: true,\n days: days.timeslots,\n daysAvailable: daysAvailable.days,\n resources: resourceResponse.resources,\n services: serviceResponse.services\n });\n }, function (error) {\n deferred.reject({\n success: false,\n msg: error.message\n });\n });\n return deferred.promise;\n };\n }\n})();","ChooseSlotsController.$inject = [\"$http\", \"API_URL\", \"$rootScope\", \"$location\", \"$timeout\"];\nangular.module('calendarApp').controller('ChooseSlotsController', ChooseSlotsController);\n\nfunction ChooseSlotsController($http, API_URL, $rootScope, $location, $timeout) {\n var choose = this;\n\n function init() {\n if (!$rootScope.chosenShift) {\n $location.path('/');\n return;\n }\n\n choose.shift = null;\n choose.selectedSlots = []; // If there are previously reserved appointments, delete them as it will cause a mess\n // if the user chooses a new service\n\n var appointments = localStorage.getItem('reserved-appointments');\n\n if (appointments) {\n localStorage.removeItem('reserved-appointments');\n }\n\n $rootScope.chosenShift.timeslots.forEach(function (timeslot) {\n if (appointments && appointments.length) {\n for (var i = 0; i < appointments.length; i++) {\n if (appointments[i].serviceid === timeslot.serviceid && appointments[i].resourceid === timeslot.resourceid && appointments[i].start === timeslot.start && appointments[i].end === timeslot.end) {\n timeslot.selected = timeslot.selected ? timeslot.selected + 1 : 1;\n } else {\n timeslot.selected = 0;\n }\n }\n } else {\n timeslot.selected = 0;\n }\n });\n choose.timeSettings = smooth.timeSettings;\n moment.tz.setDefault(choose.timeSettings.timezone);\n choose.shift = $rootScope.chosenShift;\n choose.shift.date = moment.unix(choose.shift.start).format('YYYY-MM-DD');\n choose.waitlist = choose.shift && choose.shift.canwaitlist;\n\n if (choose.shift.isworkshop && choose.shift.dates.length > 1) {\n choose.shiftInfo = \"You are booking a workshop with \"; // ????\n } // If there is only one timeslot in the shift then don't show the chooser.\n // What happens next depends on whether the 'show future slots' config is set\n\n }\n\n init();\n\n choose.goBack = function () {\n $location.path('/');\n };\n\n choose.continue = function () {\n // At this point we're beginning to build an array of appointments to book\n var newAppointments = [];\n choose.selectedSlots.forEach(function (slotIndex) {\n var appointment = {\n serviceid: choose.shift.timeslots[slotIndex].serviceid,\n start: choose.shift.timeslots[slotIndex].start,\n end: choose.shift.timeslots[slotIndex].end,\n date: choose.shift.date,\n shiftid: choose.shift._id\n };\n\n if (choose.shift.timeslots[slotIndex].hasresource) {\n appointment.hasresource = true;\n appointment.resourceid = choose.shift.timeslots[slotIndex].resourceid;\n } else {\n appointment.hasresource = false;\n }\n\n if (choose.shift.isworkshop) {\n appointment.workshopshiftid = choose.shift._id;\n }\n\n newAppointments.push(appointment);\n });\n $rootScope.throbber.show(); // Now save the appointments tentatively to the server (and to local storage?)\n\n $http.post(API_URL + '/api/v1/calendar/appointment/reserve', {\n appointments: newAppointments,\n orgid: smooth.orgid\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (response.orgidmismatch) {\n $rootScope.throbber.showError('Sorry but you are logged into the calendar for the wrong organisation. You will need to login again.');\n $timeout(function () {\n $rootScope.customerInfo = null;\n localStorage.removeItem('calendar-jwt-token');\n $location.path('#/login');\n $rootScope.safeApply();\n }, 3000);\n return;\n } // Show any overbooked timeslots\n\n\n if (response.overbooked) {\n $rootScope.overBooked = [];\n $rootScope.overBooked = response.overbookedappointments; // If some appointments were made and some were not, let the user choose which ones they\n // want to keep\n\n if (response.appointments.length) {\n // Store timeslots\n var _reservedAppointments = response.appointments;\n localStorage.setItem('reserved-appointments', JSON.stringify(_reservedAppointments));\n $location.path('/overbooked/chooseslots');\n } else {\n // None of the chosen appointments were allowed.\n choose.noneAllowed = true;\n $timeout(function () {\n choose.noneAllowed = false;\n }, 3000);\n }\n\n return;\n } // Store tentative appointments in local storage\n\n\n if (!response.appointments || !response.appointments.length) {\n return;\n } // Store appointments in all cases\n\n\n var reservedAppointments = response.appointments;\n localStorage.setItem('reserved-appointments', JSON.stringify(reservedAppointments)); // If this is a workshop with 'bookall' or 'bookremaining' set, skip the futureslots page\n\n var shift = reservedAppointments[0].shiftid;\n if (shift.isworkshop && (shift.bookall || shift.bookremaining)) return $location.path('/review'); // If settings allow, go to future slots\n\n if (smooth.calendarSettings.bookfuturedays) {\n $location.path('/futureslots');\n } else {\n $location.path('/review');\n }\n }).catch(function (err) {\n $rootScope.throbber.showError(\"Sorry but an error occurred with this request: \".concat(err.message, \". Please contact support@smoothbook.co if this error persists\"));\n });\n };\n\n choose.addTimeslot = function ($index) {\n if (choose.shift.timeslots[$index].selected === choose.shift.bookmulti) {\n return;\n }\n\n choose.shift.timeslots[$index].selected = choose.shift.timeslots[$index].selected ? choose.shift.timeslots[$index].selected + 1 : 1;\n choose.selectedSlots.push($index);\n };\n\n choose.removeTimeslot = function ($index) {\n choose.shift.timeslots[$index].selected = choose.shift.timeslots[$index].selected - 1;\n choose.selectedSlots.splice(choose.selectedSlots.indexOf($index), 1);\n };\n\n choose.addToWaitlist = function ($index) {\n choose.waitlistModal(choose.shift.timeslots[$index]);\n };\n\n choose.cancel = function () {\n $location.path('/');\n };\n}","FutureSlotsController.$inject = [\"$rootScope\", \"$location\", \"$timeout\", \"API_URL\", \"$http\", \"$filter\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nangular.module('calendarApp').controller('FutureSlotsController', FutureSlotsController);\n\nfunction FutureSlotsController($rootScope, $location, $timeout, API_URL, $http, $filter) {\n var future = this,\n throbber = $rootScope.throbber;\n\n function init() {\n moment.tz.setDefault(smooth.timeSettings.timezone);\n future.futureDays = []; // Set up future weeks dropdown\n\n for (var i = 1; i <= smooth.calendarSettings.bookfuturedays; i++) {\n future.futureDays.push(i);\n }\n\n future.timeSettings = smooth.timeSettings;\n future.selectedSlots = [];\n var storageAppointments = localStorage.getItem('reserved-appointments'),\n customer = $rootScope.customerInfo;\n\n if (!storageAppointments || !customer) {\n $location.path('/');\n return;\n }\n\n future.reservedAppointments = JSON.parse(storageAppointments);\n\n if (!Array.isArray(future.reservedAppointments)) {\n throbber.showError('Sorry but an error has occurred. Please contact support@smoothbook.co');\n $timeout(function () {\n throbber.hide();\n $location.path('/');\n }, 3000);\n return;\n }\n\n future.totalReserved = future.reservedAppointments.length; // Check that appointments have not expired\n\n if (!future.reservedAppointments.length || moment().isAfter(moment(future.reservedAppointments[0].expiry))) {\n localStorage.removeItem('reserved-appointments');\n $location.path('/');\n return;\n }\n\n var reservedAppointmentType = future.reservedAppointments[0];\n future.isWorkshop = !!reservedAppointmentType.workshopshiftid;\n future.serviceName = reservedAppointmentType.serviceid.name; // We need to get a list of future available timeslots\n // Just get timeslots with the same service and resource, start date is the day after the first appointment's date\n\n var params = {\n serviceid: reservedAppointmentType.serviceid._id,\n daystocount: smooth.calendarSettings.bookfuturedays,\n startdate: moment(reservedAppointmentType.date).add(1, 'days').format('YYYY-MM-DD')\n }; // If a workshop is being reserved, retrieve *only* timeslots for that shift.\n\n if (reservedAppointmentType.workshopshiftid) {\n params = _objectSpread({}, params, {\n shiftid: reservedAppointmentType.workshopshiftid\n });\n }\n\n throbber && throbber.show();\n $http.get(API_URL + '/api/v1/calendar/timeslots/' + smooth.orgid, {\n params: params\n }).then(function (reply) {\n throbber && throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError(response.msg);\n return;\n }\n\n if (!response.timeslots || !response.timeslots.length) {\n $location.path('/review');\n return;\n }\n\n future.timeslots = getTimeslots(response.timeslots);\n future.hasResource = future.timeslots.find(function (timeslot) {\n return timeslot.resourceid;\n });\n }, function (error) {\n console.error('ALARM!!');\n console.error(error);\n });\n }\n\n init();\n\n future.addTimeslot = function ($index) {\n if (future.timeslots[$index].selected === future.timeslots[$index].bookmulti) {\n return;\n }\n\n future.timeslots[$index].selected++;\n future.totalReserved++;\n };\n\n future.removeTimeslot = function ($index) {\n future.timeslots[$index].selected--;\n future.totalReserved--;\n };\n\n future.toggleTimeslots = function (index) {\n $('.shift-id-' + index).find('.choose-timeslots-container').slideToggle();\n };\n\n future.continue = function () {\n var newAppointments = [];\n future.timeslots.forEach(function (timeslot) {\n if (!timeslot.selected) return; // Need to create a new appointment for every person that is being added to the timeslot\n\n for (var i = 0; i < timeslot.selected; i++) {\n newAppointments.push({\n start: timeslot.start,\n end: timeslot.end,\n serviceid: timeslot.serviceid,\n shiftid: timeslot.shiftid,\n hasresource: !!timeslot.resourceid,\n resourceid: timeslot.resourceid,\n date: timeslot.date,\n isworkshop: timeslot.isworkshop,\n workshopshiftid: timeslot.isworkshop ? timeslot.workshopshiftid : null\n });\n }\n });\n\n if (!newAppointments.length) {\n localStorage.setItem('reserved-appointments', JSON.stringify(future.reservedAppointments));\n return $location.path('/review');\n }\n\n throbber.show(); // Must reserve any appointments which have not already been reserved.\n\n $http.post(API_URL + '/api/v1/calendar/appointment/reserve', {\n appointments: newAppointments\n }).then(function (reply) {\n throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n throbber.showError('An error occurred: ' + response.msg);\n return;\n }\n\n localStorage.setItem('reserved-appointments', JSON.stringify(_toConsumableArray(future.reservedAppointments).concat(_toConsumableArray(response.appointments)))); // Show any overbooked timeslots\n\n if (response.overbooked) {\n $rootScope.overBooked = [];\n $rootScope.overBooked = response.overbookedappointments;\n $location.path('/overbooked/futureslots');\n return;\n }\n\n $location.path('/review');\n }).catch(function (err) {\n console.error(err);\n throbber.showError('An error occurred: ' + err);\n });\n };\n\n future.addToWaitlist = function (timeslot) {\n future.waitlistModal(timeslot, shiftid = null);\n };\n\n future.cancel = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n}\n\nfunction getTimeslots(dates) {\n var timeslots = [];\n dates.forEach(function (date) {\n date.shifts.forEach(function (shift) {\n shift.timeslots.forEach(function (timeslot) {\n timeslot.selected = 0;\n timeslots.push(timeslot);\n });\n });\n });\n return timeslots;\n}","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n(function () {\n FutureSlotsControllerOld.$inject = [\"$rootScope\", \"$location\", \"$timeout\", \"API_URL\", \"$http\", \"$filter\"];\n angular.module('calendarApp').controller('FutureSlotsControllerOld', FutureSlotsControllerOld);\n\n function FutureSlotsControllerOld($rootScope, $location, $timeout, API_URL, $http, $filter) {\n var future = this;\n\n function init() {\n moment.tz.setDefault(smooth.timeSettings.timezone);\n future.futureDays = []; // Set up future weeks dropdown\n\n for (var i = 1; i <= smooth.calendarSettings.bookfuturedays; i++) {\n future.futureDays.push(i);\n }\n\n future.timeSettings = smooth.timeSettings;\n future.selectedSlots = [];\n var storageAppointments = localStorage.getItem('reserved-appointments'),\n customer = $rootScope.customerInfo;\n\n if (!storageAppointments || !customer) {\n $location.path('/');\n return;\n }\n\n var reservedAppointments = JSON.parse(storageAppointments);\n\n if (!Array.isArray(reservedAppointments)) {\n $rootScope.throbber.showError('Sorry but an error has occurred. Please contact support@smoothbook.co');\n $timeout(function () {\n $rootScope.throbber.hide();\n $location.path('/');\n }, 3000);\n return;\n }\n\n future.selectedSlots = reservedAppointments; // Keep track of new and existing appointments as the new ones will have to be saved.\n\n future.existingAppointments = angular.copy(reservedAppointments);\n future.newAppointments = []; // Check that appointments have not expired\n\n if (!reservedAppointments.length || moment().isAfter(moment(reservedAppointments[0].expiry))) {\n localStorage.removeItem('reserved-appointments');\n $location.path('/');\n return;\n }\n\n future.isWorkshop = !!reservedAppointments[0].workshopshiftid; // We need to get a list of future available timeslots\n // Just get timeslots with the same service and resource, start date is the day after the first appointment's date\n\n var params = {\n serviceid: reservedAppointments[0].serviceid._id,\n daystocount: smooth.calendarSettings.bookfuturedays,\n startdate: moment(reservedAppointments[0].date).add(1, 'days').format('YYYY-MM-DD')\n }; // If a workshop is being reserved, retrieve *only* timeslots for that shift.\n\n if (reservedAppointments[0].workshopshiftid) {\n params = _objectSpread({}, params, {\n shiftid: reservedAppointments[0].workshopshiftid\n });\n }\n\n if (reservedAppointments[0].resourceid) {\n params.resourceid = reservedAppointments[0].resourceid._id;\n } else {\n params.hasresource = false;\n }\n\n $rootScope.throbber && $rootScope.throbber.show();\n $http.get(API_URL + '/api/v1/calendar/timeslots/' + smooth.orgid, {\n params: params\n }).then(function (reply) {\n $rootScope.throbber && $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError(response.msg);\n return;\n }\n\n if (!response.timeslots || !response.timeslots.length) {\n $location.path('/review');\n return;\n }\n\n future.shifts = [];\n response.timeslots.forEach(function (day) {\n for (var i = 0; i < day.shifts.length; i++) {\n var shift = day.shifts[i];\n shift.start = shift.timeslots[0].start;\n shift.end = shift.timeslots[shift.timeslots.length - 1].end;\n\n for (var j = 0; j < shift.timeslots.length; j++) {\n shift.timeslots[j].selected = 0;\n }\n\n future.shifts.push(shift);\n }\n });\n console.log(future.shifts);\n }, function (error) {\n console.error('ALARM!!');\n console.error(error);\n });\n }\n\n init();\n\n future.addTimeslot = function ($shiftIndex, $index) {\n if (future.shifts[$shiftIndex].timeslots[$index].selected === future.shifts[$shiftIndex].bookmulti) {\n return;\n }\n\n future.shifts[$shiftIndex].timeslots[$index].selected = future.shifts[$shiftIndex].timeslots[$index].selected ? future.shifts[$shiftIndex].timeslots[$index].selected + 1 : 1;\n future.selectedSlots.push($index);\n var key = $shiftIndex + '_' + $index;\n var timeslot = future.shifts[$shiftIndex].timeslots[$index],\n newAppointment = {\n start: timeslot.start,\n end: timeslot.end,\n serviceid: timeslot.serviceid,\n hasresource: timeslot.hasresource,\n resourceid: timeslot.resourceid\n };\n newAppointment.key = key;\n newAppointment.shiftid = future.shifts[$shiftIndex]._id;\n\n if (future.shifts[$shiftIndex].isworkshop) {\n newAppointment.workshopshiftid = future.shifts[$shiftIndex]._id;\n }\n\n newAppointment.date = moment.unix(newAppointment.start).format('YYYY-MM-DD');\n future.newAppointments.push(newAppointment);\n };\n\n future.removeTimeslot = function ($shiftIndex, $index) {\n future.shifts[$shiftIndex].timeslots[$index].selected = future.shifts[$shiftIndex].timeslots[$index].selected - 1;\n future.selectedSlots.splice(future.selectedSlots.indexOf($index), 1);\n\n for (var i = 0; i < future.newAppointments.length; i++) {\n if (future.newAppointments[i].key === $shiftIndex + '_' + $index) {\n future.newAppointments.splice(i, 1);\n break;\n }\n }\n };\n\n future.toggleTimeslots = function (index) {\n $('.shift-id-' + index).find('.choose-timeslots-container').slideToggle();\n };\n\n future.continue = function () {\n if (!future.newAppointments.length && future.existingAppointments.length) {\n localStorage.setItem('reserved-appointments', JSON.stringify(future.existingAppointments));\n $location.path('/review');\n return;\n }\n\n $rootScope.throbber.show(); // Must reserve any appointments which have not already been reserved.\n\n $http.post(API_URL + '/api/v1/calendar/appointment/reserve', {\n appointments: future.newAppointments\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError('An error occurred: ' + response.msg);\n return;\n }\n\n future.existingAppointments = future.existingAppointments.concat(response.appointments);\n var appointments = JSON.stringify(future.existingAppointments);\n localStorage.setItem('reserved-appointments', appointments); // Show any overbooked timeslots\n\n if (response.overbooked) {\n $rootScope.overBooked = [];\n $rootScope.overBooked = response.overbookedappointments;\n $location.path('/overbooked/futureslots');\n return;\n }\n\n $location.path('/review');\n }).catch(function (err) {\n console.error(err);\n $rootScope.throbber.showError('An error occurred: ' + err);\n });\n };\n\n future.bookFutureWeeks = function () {\n // Build a list of appointments. Should just be able to take the existing ones and add however many weeks\n var newAppointments = [];\n future.existingAppointments.forEach(function (appointment) {\n for (var i = 1; i <= future.bookFutureDays; i++) {\n var newAppointment = angular.copy(appointment);\n delete newAppointment._id;\n newAppointment.start = moment.unix(appointment.start).add(i, 'weeks').unix();\n newAppointment.end = moment.unix(appointment.end).add(i, 'weeks').unix();\n newAppointment.date = moment.unix(newAppointment.start).format('YYYY-MM-DD');\n newAppointment.serviceid = newAppointment.serviceid._id;\n\n if (newAppointment.resourceid) {\n newAppointment.resourceid = newAppointment.resourceid._id;\n } else {\n newAppointment.hasresource = false;\n }\n\n if (shift.isworkshop) {\n appointment.workshopshiftid = shift._id;\n }\n\n newAppointments.push(newAppointment);\n }\n });\n $http.post(API_URL + '/api/v1/calendar/appointment/reserve', {\n appointments: newAppointments\n }).then(function (reply) {\n $rootScope.throbber.hide();\n var response = reply.data;\n\n if (!response.success) {\n $rootScope.throbber.showError(\"Sorry but an error occurred: \".concat(response.msg));\n console.error(response.msg);\n return;\n } // Shouldn't happen\n\n\n if (!response.appointments || !response.appointments.length) {\n return;\n }\n\n future.existingAppointments = future.existingAppointments.concat(response.appointments);\n future.selectedSlots = future.existingAppointments;\n var appointments = JSON.stringify(future.existingAppointments);\n localStorage.setItem('reserved-appointments', appointments); // Show any overbooked timeslots\n\n if (response.overbooked) {\n $rootScope.overBooked = [];\n $rootScope.overBooked = response.overbookedappointments;\n $location.path('/overbooked/futureslots');\n return;\n }\n });\n };\n\n future.addToWaitlist = function (timeslot) {\n console.log(timeslot); // const timeslot = choose.shift.timeslots[$index];\n // choose.waitlistModal(timeslot, choose.shift);\n };\n\n future.cancel = function () {\n var cancelMessage = $filter('calendarLabel')('This will remove your reserved appointments. Continue?');\n\n if (!confirm(cancelMessage)) {\n return;\n }\n\n $location.path('/');\n };\n }\n})();","\nvar content = require(\"!!../node_modules/css-loader/index.js!../node_modules/less-loader/dist/cjs.js!./style.less\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../node_modules/css-loader/index.js!../node_modules/less-loader/dist/cjs.js!./style.less\", function() {\n\t\tvar newContent = require(\"!!../node_modules/css-loader/index.js!../node_modules/less-loader/dist/cjs.js!./style.less\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var escape = require(\"../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/*!\\n * Bootstrap v3.3.6 (http://getbootstrap.com)\\n * Copyright 2011-2015 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n */\\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\nhtml {\\n font-family: sans-serif;\\n -ms-text-size-adjust: 100%;\\n -webkit-text-size-adjust: 100%;\\n}\\nbody {\\n margin: 0;\\n}\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n display: block;\\n}\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n display: inline-block;\\n vertical-align: baseline;\\n}\\naudio:not([controls]) {\\n display: none;\\n height: 0;\\n}\\n[hidden],\\ntemplate {\\n display: none;\\n}\\na {\\n background-color: transparent;\\n}\\na:active,\\na:hover {\\n outline: 0;\\n}\\nabbr[title] {\\n border-bottom: 1px dotted;\\n}\\nb,\\nstrong {\\n font-weight: bold;\\n}\\ndfn {\\n font-style: italic;\\n}\\nh1 {\\n font-size: 2em;\\n margin: 0.67em 0;\\n}\\nmark {\\n background: #ff0;\\n color: #000;\\n}\\nsmall {\\n font-size: 80%;\\n}\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\nsup {\\n top: -0.5em;\\n}\\nsub {\\n bottom: -0.25em;\\n}\\nimg {\\n border: 0;\\n}\\nsvg:not(:root) {\\n overflow: hidden;\\n}\\nfigure {\\n margin: 1em 40px;\\n}\\nhr {\\n box-sizing: content-box;\\n height: 0;\\n}\\npre {\\n overflow: auto;\\n}\\ncode,\\nkbd,\\npre,\\nsamp {\\n font-family: monospace, monospace;\\n font-size: 1em;\\n}\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n color: inherit;\\n font: inherit;\\n margin: 0;\\n}\\nbutton {\\n overflow: visible;\\n}\\nbutton,\\nselect {\\n text-transform: none;\\n}\\nbutton,\\nhtml input[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n -webkit-appearance: button;\\n cursor: pointer;\\n}\\nbutton[disabled],\\nhtml input[disabled] {\\n cursor: default;\\n}\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n border: 0;\\n padding: 0;\\n}\\ninput {\\n line-height: normal;\\n}\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n box-sizing: border-box;\\n padding: 0;\\n}\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n height: auto;\\n}\\ninput[type=\\\"search\\\"] {\\n -webkit-appearance: textfield;\\n box-sizing: content-box;\\n}\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\nfieldset {\\n border: 1px solid #c0c0c0;\\n margin: 0 2px;\\n padding: 0.35em 0.625em 0.75em;\\n}\\nlegend {\\n border: 0;\\n padding: 0;\\n}\\ntextarea {\\n overflow: auto;\\n}\\noptgroup {\\n font-weight: bold;\\n}\\ntable {\\n border-collapse: collapse;\\n border-spacing: 0;\\n}\\ntd,\\nth {\\n padding: 0;\\n}\\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\\n@media print {\\n *,\\n *:before,\\n *:after {\\n background: transparent !important;\\n color: #000 !important;\\n box-shadow: none !important;\\n text-shadow: none !important;\\n }\\n a,\\n a:visited {\\n text-decoration: underline;\\n }\\n a[href]:after {\\n content: \\\" (\\\" attr(href) \\\")\\\";\\n }\\n abbr[title]:after {\\n content: \\\" (\\\" attr(title) \\\")\\\";\\n }\\n a[href^=\\\"#\\\"]:after,\\n a[href^=\\\"javascript:\\\"]:after {\\n content: \\\"\\\";\\n }\\n pre,\\n blockquote {\\n border: 1px solid #999;\\n page-break-inside: avoid;\\n }\\n thead {\\n display: table-header-group;\\n }\\n tr,\\n img {\\n page-break-inside: avoid;\\n }\\n img {\\n max-width: 100% !important;\\n }\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3;\\n }\\n h2,\\n h3 {\\n page-break-after: avoid;\\n }\\n .navbar {\\n display: none;\\n }\\n .btn > .caret,\\n .dropup > .btn > .caret {\\n border-top-color: #000 !important;\\n }\\n .label {\\n border: 1px solid #000;\\n }\\n .table {\\n border-collapse: collapse !important;\\n }\\n .table td,\\n .table th {\\n background-color: #fff !important;\\n }\\n .table-bordered th,\\n .table-bordered td {\\n border: 1px solid #ddd !important;\\n }\\n}\\n@font-face {\\n font-family: 'Glyphicons Halflings';\\n src: url(\" + escape(require(\"../node_modules/bootstrap/fonts/glyphicons-halflings-regular.eot\")) + \");\\n src: url(\" + escape(require(\"../node_modules/bootstrap/fonts/glyphicons-halflings-regular.eot\")) + \"?#iefix) format('embedded-opentype'), url(\" + escape(require(\"../node_modules/bootstrap/fonts/glyphicons-halflings-regular.woff2\")) + \") format('woff2'), url(\" + escape(require(\"../node_modules/bootstrap/fonts/glyphicons-halflings-regular.woff\")) + \") format('woff'), url(\" + escape(require(\"../node_modules/bootstrap/fonts/glyphicons-halflings-regular.ttf\")) + \") format('truetype'), url(\" + escape(require(\"../node_modules/bootstrap/fonts/glyphicons-halflings-regular.svg\")) + \"#glyphicons_halflingsregular) format('svg');\\n}\\n.glyphicon {\\n position: relative;\\n top: 1px;\\n display: inline-block;\\n font-family: 'Glyphicons Halflings';\\n font-style: normal;\\n font-weight: normal;\\n line-height: 1;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n.glyphicon-asterisk:before {\\n content: \\\"*\\\";\\n}\\n.glyphicon-plus:before {\\n content: \\\"+\\\";\\n}\\n.glyphicon-euro:before,\\n.glyphicon-eur:before {\\n content: \\\"\\\\20AC\\\";\\n}\\n.glyphicon-minus:before {\\n content: \\\"\\\\2212\\\";\\n}\\n.glyphicon-cloud:before {\\n content: \\\"\\\\2601\\\";\\n}\\n.glyphicon-envelope:before {\\n content: \\\"\\\\2709\\\";\\n}\\n.glyphicon-pencil:before {\\n content: \\\"\\\\270F\\\";\\n}\\n.glyphicon-glass:before {\\n content: \\\"\\\\E001\\\";\\n}\\n.glyphicon-music:before {\\n content: \\\"\\\\E002\\\";\\n}\\n.glyphicon-search:before {\\n content: \\\"\\\\E003\\\";\\n}\\n.glyphicon-heart:before {\\n content: \\\"\\\\E005\\\";\\n}\\n.glyphicon-star:before {\\n content: \\\"\\\\E006\\\";\\n}\\n.glyphicon-star-empty:before {\\n content: \\\"\\\\E007\\\";\\n}\\n.glyphicon-user:before {\\n content: \\\"\\\\E008\\\";\\n}\\n.glyphicon-film:before {\\n content: \\\"\\\\E009\\\";\\n}\\n.glyphicon-th-large:before {\\n content: \\\"\\\\E010\\\";\\n}\\n.glyphicon-th:before {\\n content: \\\"\\\\E011\\\";\\n}\\n.glyphicon-th-list:before {\\n content: \\\"\\\\E012\\\";\\n}\\n.glyphicon-ok:before {\\n content: \\\"\\\\E013\\\";\\n}\\n.glyphicon-remove:before {\\n content: \\\"\\\\E014\\\";\\n}\\n.glyphicon-zoom-in:before {\\n content: \\\"\\\\E015\\\";\\n}\\n.glyphicon-zoom-out:before {\\n content: \\\"\\\\E016\\\";\\n}\\n.glyphicon-off:before {\\n content: \\\"\\\\E017\\\";\\n}\\n.glyphicon-signal:before {\\n content: \\\"\\\\E018\\\";\\n}\\n.glyphicon-cog:before {\\n content: \\\"\\\\E019\\\";\\n}\\n.glyphicon-trash:before {\\n content: \\\"\\\\E020\\\";\\n}\\n.glyphicon-home:before {\\n content: \\\"\\\\E021\\\";\\n}\\n.glyphicon-file:before {\\n content: \\\"\\\\E022\\\";\\n}\\n.glyphicon-time:before {\\n content: \\\"\\\\E023\\\";\\n}\\n.glyphicon-road:before {\\n content: \\\"\\\\E024\\\";\\n}\\n.glyphicon-download-alt:before {\\n content: \\\"\\\\E025\\\";\\n}\\n.glyphicon-download:before {\\n content: \\\"\\\\E026\\\";\\n}\\n.glyphicon-upload:before {\\n content: \\\"\\\\E027\\\";\\n}\\n.glyphicon-inbox:before {\\n content: \\\"\\\\E028\\\";\\n}\\n.glyphicon-play-circle:before {\\n content: \\\"\\\\E029\\\";\\n}\\n.glyphicon-repeat:before {\\n content: \\\"\\\\E030\\\";\\n}\\n.glyphicon-refresh:before {\\n content: \\\"\\\\E031\\\";\\n}\\n.glyphicon-list-alt:before {\\n content: \\\"\\\\E032\\\";\\n}\\n.glyphicon-lock:before {\\n content: \\\"\\\\E033\\\";\\n}\\n.glyphicon-flag:before {\\n content: \\\"\\\\E034\\\";\\n}\\n.glyphicon-headphones:before {\\n content: \\\"\\\\E035\\\";\\n}\\n.glyphicon-volume-off:before {\\n content: \\\"\\\\E036\\\";\\n}\\n.glyphicon-volume-down:before {\\n content: \\\"\\\\E037\\\";\\n}\\n.glyphicon-volume-up:before {\\n content: \\\"\\\\E038\\\";\\n}\\n.glyphicon-qrcode:before {\\n content: \\\"\\\\E039\\\";\\n}\\n.glyphicon-barcode:before {\\n content: \\\"\\\\E040\\\";\\n}\\n.glyphicon-tag:before {\\n content: \\\"\\\\E041\\\";\\n}\\n.glyphicon-tags:before {\\n content: \\\"\\\\E042\\\";\\n}\\n.glyphicon-book:before {\\n content: \\\"\\\\E043\\\";\\n}\\n.glyphicon-bookmark:before {\\n content: \\\"\\\\E044\\\";\\n}\\n.glyphicon-print:before {\\n content: \\\"\\\\E045\\\";\\n}\\n.glyphicon-camera:before {\\n content: \\\"\\\\E046\\\";\\n}\\n.glyphicon-font:before {\\n content: \\\"\\\\E047\\\";\\n}\\n.glyphicon-bold:before {\\n content: \\\"\\\\E048\\\";\\n}\\n.glyphicon-italic:before {\\n content: \\\"\\\\E049\\\";\\n}\\n.glyphicon-text-height:before {\\n content: \\\"\\\\E050\\\";\\n}\\n.glyphicon-text-width:before {\\n content: \\\"\\\\E051\\\";\\n}\\n.glyphicon-align-left:before {\\n content: \\\"\\\\E052\\\";\\n}\\n.glyphicon-align-center:before {\\n content: \\\"\\\\E053\\\";\\n}\\n.glyphicon-align-right:before {\\n content: \\\"\\\\E054\\\";\\n}\\n.glyphicon-align-justify:before {\\n content: \\\"\\\\E055\\\";\\n}\\n.glyphicon-list:before {\\n content: \\\"\\\\E056\\\";\\n}\\n.glyphicon-indent-left:before {\\n content: \\\"\\\\E057\\\";\\n}\\n.glyphicon-indent-right:before {\\n content: \\\"\\\\E058\\\";\\n}\\n.glyphicon-facetime-video:before {\\n content: \\\"\\\\E059\\\";\\n}\\n.glyphicon-picture:before {\\n content: \\\"\\\\E060\\\";\\n}\\n.glyphicon-map-marker:before {\\n content: \\\"\\\\E062\\\";\\n}\\n.glyphicon-adjust:before {\\n content: \\\"\\\\E063\\\";\\n}\\n.glyphicon-tint:before {\\n content: \\\"\\\\E064\\\";\\n}\\n.glyphicon-edit:before {\\n content: \\\"\\\\E065\\\";\\n}\\n.glyphicon-share:before {\\n content: \\\"\\\\E066\\\";\\n}\\n.glyphicon-check:before {\\n content: \\\"\\\\E067\\\";\\n}\\n.glyphicon-move:before {\\n content: \\\"\\\\E068\\\";\\n}\\n.glyphicon-step-backward:before {\\n content: \\\"\\\\E069\\\";\\n}\\n.glyphicon-fast-backward:before {\\n content: \\\"\\\\E070\\\";\\n}\\n.glyphicon-backward:before {\\n content: \\\"\\\\E071\\\";\\n}\\n.glyphicon-play:before {\\n content: \\\"\\\\E072\\\";\\n}\\n.glyphicon-pause:before {\\n content: \\\"\\\\E073\\\";\\n}\\n.glyphicon-stop:before {\\n content: \\\"\\\\E074\\\";\\n}\\n.glyphicon-forward:before {\\n content: \\\"\\\\E075\\\";\\n}\\n.glyphicon-fast-forward:before {\\n content: \\\"\\\\E076\\\";\\n}\\n.glyphicon-step-forward:before {\\n content: \\\"\\\\E077\\\";\\n}\\n.glyphicon-eject:before {\\n content: \\\"\\\\E078\\\";\\n}\\n.glyphicon-chevron-left:before {\\n content: \\\"\\\\E079\\\";\\n}\\n.glyphicon-chevron-right:before {\\n content: \\\"\\\\E080\\\";\\n}\\n.glyphicon-plus-sign:before {\\n content: \\\"\\\\E081\\\";\\n}\\n.glyphicon-minus-sign:before {\\n content: \\\"\\\\E082\\\";\\n}\\n.glyphicon-remove-sign:before {\\n content: \\\"\\\\E083\\\";\\n}\\n.glyphicon-ok-sign:before {\\n content: \\\"\\\\E084\\\";\\n}\\n.glyphicon-question-sign:before {\\n content: \\\"\\\\E085\\\";\\n}\\n.glyphicon-info-sign:before {\\n content: \\\"\\\\E086\\\";\\n}\\n.glyphicon-screenshot:before {\\n content: \\\"\\\\E087\\\";\\n}\\n.glyphicon-remove-circle:before {\\n content: \\\"\\\\E088\\\";\\n}\\n.glyphicon-ok-circle:before {\\n content: \\\"\\\\E089\\\";\\n}\\n.glyphicon-ban-circle:before {\\n content: \\\"\\\\E090\\\";\\n}\\n.glyphicon-arrow-left:before {\\n content: \\\"\\\\E091\\\";\\n}\\n.glyphicon-arrow-right:before {\\n content: \\\"\\\\E092\\\";\\n}\\n.glyphicon-arrow-up:before {\\n content: \\\"\\\\E093\\\";\\n}\\n.glyphicon-arrow-down:before {\\n content: \\\"\\\\E094\\\";\\n}\\n.glyphicon-share-alt:before {\\n content: \\\"\\\\E095\\\";\\n}\\n.glyphicon-resize-full:before {\\n content: \\\"\\\\E096\\\";\\n}\\n.glyphicon-resize-small:before {\\n content: \\\"\\\\E097\\\";\\n}\\n.glyphicon-exclamation-sign:before {\\n content: \\\"\\\\E101\\\";\\n}\\n.glyphicon-gift:before {\\n content: \\\"\\\\E102\\\";\\n}\\n.glyphicon-leaf:before {\\n content: \\\"\\\\E103\\\";\\n}\\n.glyphicon-fire:before {\\n content: \\\"\\\\E104\\\";\\n}\\n.glyphicon-eye-open:before {\\n content: \\\"\\\\E105\\\";\\n}\\n.glyphicon-eye-close:before {\\n content: \\\"\\\\E106\\\";\\n}\\n.glyphicon-warning-sign:before {\\n content: \\\"\\\\E107\\\";\\n}\\n.glyphicon-plane:before {\\n content: \\\"\\\\E108\\\";\\n}\\n.glyphicon-calendar:before {\\n content: \\\"\\\\E109\\\";\\n}\\n.glyphicon-random:before {\\n content: \\\"\\\\E110\\\";\\n}\\n.glyphicon-comment:before {\\n content: \\\"\\\\E111\\\";\\n}\\n.glyphicon-magnet:before {\\n content: \\\"\\\\E112\\\";\\n}\\n.glyphicon-chevron-up:before {\\n content: \\\"\\\\E113\\\";\\n}\\n.glyphicon-chevron-down:before {\\n content: \\\"\\\\E114\\\";\\n}\\n.glyphicon-retweet:before {\\n content: \\\"\\\\E115\\\";\\n}\\n.glyphicon-shopping-cart:before {\\n content: \\\"\\\\E116\\\";\\n}\\n.glyphicon-folder-close:before {\\n content: \\\"\\\\E117\\\";\\n}\\n.glyphicon-folder-open:before {\\n content: \\\"\\\\E118\\\";\\n}\\n.glyphicon-resize-vertical:before {\\n content: \\\"\\\\E119\\\";\\n}\\n.glyphicon-resize-horizontal:before {\\n content: \\\"\\\\E120\\\";\\n}\\n.glyphicon-hdd:before {\\n content: \\\"\\\\E121\\\";\\n}\\n.glyphicon-bullhorn:before {\\n content: \\\"\\\\E122\\\";\\n}\\n.glyphicon-bell:before {\\n content: \\\"\\\\E123\\\";\\n}\\n.glyphicon-certificate:before {\\n content: \\\"\\\\E124\\\";\\n}\\n.glyphicon-thumbs-up:before {\\n content: \\\"\\\\E125\\\";\\n}\\n.glyphicon-thumbs-down:before {\\n content: \\\"\\\\E126\\\";\\n}\\n.glyphicon-hand-right:before {\\n content: \\\"\\\\E127\\\";\\n}\\n.glyphicon-hand-left:before {\\n content: \\\"\\\\E128\\\";\\n}\\n.glyphicon-hand-up:before {\\n content: \\\"\\\\E129\\\";\\n}\\n.glyphicon-hand-down:before {\\n content: \\\"\\\\E130\\\";\\n}\\n.glyphicon-circle-arrow-right:before {\\n content: \\\"\\\\E131\\\";\\n}\\n.glyphicon-circle-arrow-left:before {\\n content: \\\"\\\\E132\\\";\\n}\\n.glyphicon-circle-arrow-up:before {\\n content: \\\"\\\\E133\\\";\\n}\\n.glyphicon-circle-arrow-down:before {\\n content: \\\"\\\\E134\\\";\\n}\\n.glyphicon-globe:before {\\n content: \\\"\\\\E135\\\";\\n}\\n.glyphicon-wrench:before {\\n content: \\\"\\\\E136\\\";\\n}\\n.glyphicon-tasks:before {\\n content: \\\"\\\\E137\\\";\\n}\\n.glyphicon-filter:before {\\n content: \\\"\\\\E138\\\";\\n}\\n.glyphicon-briefcase:before {\\n content: \\\"\\\\E139\\\";\\n}\\n.glyphicon-fullscreen:before {\\n content: \\\"\\\\E140\\\";\\n}\\n.glyphicon-dashboard:before {\\n content: \\\"\\\\E141\\\";\\n}\\n.glyphicon-paperclip:before {\\n content: \\\"\\\\E142\\\";\\n}\\n.glyphicon-heart-empty:before {\\n content: \\\"\\\\E143\\\";\\n}\\n.glyphicon-link:before {\\n content: \\\"\\\\E144\\\";\\n}\\n.glyphicon-phone:before {\\n content: \\\"\\\\E145\\\";\\n}\\n.glyphicon-pushpin:before {\\n content: \\\"\\\\E146\\\";\\n}\\n.glyphicon-usd:before {\\n content: \\\"\\\\E148\\\";\\n}\\n.glyphicon-gbp:before {\\n content: \\\"\\\\E149\\\";\\n}\\n.glyphicon-sort:before {\\n content: \\\"\\\\E150\\\";\\n}\\n.glyphicon-sort-by-alphabet:before {\\n content: \\\"\\\\E151\\\";\\n}\\n.glyphicon-sort-by-alphabet-alt:before {\\n content: \\\"\\\\E152\\\";\\n}\\n.glyphicon-sort-by-order:before {\\n content: \\\"\\\\E153\\\";\\n}\\n.glyphicon-sort-by-order-alt:before {\\n content: \\\"\\\\E154\\\";\\n}\\n.glyphicon-sort-by-attributes:before {\\n content: \\\"\\\\E155\\\";\\n}\\n.glyphicon-sort-by-attributes-alt:before {\\n content: \\\"\\\\E156\\\";\\n}\\n.glyphicon-unchecked:before {\\n content: \\\"\\\\E157\\\";\\n}\\n.glyphicon-expand:before {\\n content: \\\"\\\\E158\\\";\\n}\\n.glyphicon-collapse-down:before {\\n content: \\\"\\\\E159\\\";\\n}\\n.glyphicon-collapse-up:before {\\n content: \\\"\\\\E160\\\";\\n}\\n.glyphicon-log-in:before {\\n content: \\\"\\\\E161\\\";\\n}\\n.glyphicon-flash:before {\\n content: \\\"\\\\E162\\\";\\n}\\n.glyphicon-log-out:before {\\n content: \\\"\\\\E163\\\";\\n}\\n.glyphicon-new-window:before {\\n content: \\\"\\\\E164\\\";\\n}\\n.glyphicon-record:before {\\n content: \\\"\\\\E165\\\";\\n}\\n.glyphicon-save:before {\\n content: \\\"\\\\E166\\\";\\n}\\n.glyphicon-open:before {\\n content: \\\"\\\\E167\\\";\\n}\\n.glyphicon-saved:before {\\n content: \\\"\\\\E168\\\";\\n}\\n.glyphicon-import:before {\\n content: \\\"\\\\E169\\\";\\n}\\n.glyphicon-export:before {\\n content: \\\"\\\\E170\\\";\\n}\\n.glyphicon-send:before {\\n content: \\\"\\\\E171\\\";\\n}\\n.glyphicon-floppy-disk:before {\\n content: \\\"\\\\E172\\\";\\n}\\n.glyphicon-floppy-saved:before {\\n content: \\\"\\\\E173\\\";\\n}\\n.glyphicon-floppy-remove:before {\\n content: \\\"\\\\E174\\\";\\n}\\n.glyphicon-floppy-save:before {\\n content: \\\"\\\\E175\\\";\\n}\\n.glyphicon-floppy-open:before {\\n content: \\\"\\\\E176\\\";\\n}\\n.glyphicon-credit-card:before {\\n content: \\\"\\\\E177\\\";\\n}\\n.glyphicon-transfer:before {\\n content: \\\"\\\\E178\\\";\\n}\\n.glyphicon-cutlery:before {\\n content: \\\"\\\\E179\\\";\\n}\\n.glyphicon-header:before {\\n content: \\\"\\\\E180\\\";\\n}\\n.glyphicon-compressed:before {\\n content: \\\"\\\\E181\\\";\\n}\\n.glyphicon-earphone:before {\\n content: \\\"\\\\E182\\\";\\n}\\n.glyphicon-phone-alt:before {\\n content: \\\"\\\\E183\\\";\\n}\\n.glyphicon-tower:before {\\n content: \\\"\\\\E184\\\";\\n}\\n.glyphicon-stats:before {\\n content: \\\"\\\\E185\\\";\\n}\\n.glyphicon-sd-video:before {\\n content: \\\"\\\\E186\\\";\\n}\\n.glyphicon-hd-video:before {\\n content: \\\"\\\\E187\\\";\\n}\\n.glyphicon-subtitles:before {\\n content: \\\"\\\\E188\\\";\\n}\\n.glyphicon-sound-stereo:before {\\n content: \\\"\\\\E189\\\";\\n}\\n.glyphicon-sound-dolby:before {\\n content: \\\"\\\\E190\\\";\\n}\\n.glyphicon-sound-5-1:before {\\n content: \\\"\\\\E191\\\";\\n}\\n.glyphicon-sound-6-1:before {\\n content: \\\"\\\\E192\\\";\\n}\\n.glyphicon-sound-7-1:before {\\n content: \\\"\\\\E193\\\";\\n}\\n.glyphicon-copyright-mark:before {\\n content: \\\"\\\\E194\\\";\\n}\\n.glyphicon-registration-mark:before {\\n content: \\\"\\\\E195\\\";\\n}\\n.glyphicon-cloud-download:before {\\n content: \\\"\\\\E197\\\";\\n}\\n.glyphicon-cloud-upload:before {\\n content: \\\"\\\\E198\\\";\\n}\\n.glyphicon-tree-conifer:before {\\n content: \\\"\\\\E199\\\";\\n}\\n.glyphicon-tree-deciduous:before {\\n content: \\\"\\\\E200\\\";\\n}\\n.glyphicon-cd:before {\\n content: \\\"\\\\E201\\\";\\n}\\n.glyphicon-save-file:before {\\n content: \\\"\\\\E202\\\";\\n}\\n.glyphicon-open-file:before {\\n content: \\\"\\\\E203\\\";\\n}\\n.glyphicon-level-up:before {\\n content: \\\"\\\\E204\\\";\\n}\\n.glyphicon-copy:before {\\n content: \\\"\\\\E205\\\";\\n}\\n.glyphicon-paste:before {\\n content: \\\"\\\\E206\\\";\\n}\\n.glyphicon-alert:before {\\n content: \\\"\\\\E209\\\";\\n}\\n.glyphicon-equalizer:before {\\n content: \\\"\\\\E210\\\";\\n}\\n.glyphicon-king:before {\\n content: \\\"\\\\E211\\\";\\n}\\n.glyphicon-queen:before {\\n content: \\\"\\\\E212\\\";\\n}\\n.glyphicon-pawn:before {\\n content: \\\"\\\\E213\\\";\\n}\\n.glyphicon-bishop:before {\\n content: \\\"\\\\E214\\\";\\n}\\n.glyphicon-knight:before {\\n content: \\\"\\\\E215\\\";\\n}\\n.glyphicon-baby-formula:before {\\n content: \\\"\\\\E216\\\";\\n}\\n.glyphicon-tent:before {\\n content: \\\"\\\\26FA\\\";\\n}\\n.glyphicon-blackboard:before {\\n content: \\\"\\\\E218\\\";\\n}\\n.glyphicon-bed:before {\\n content: \\\"\\\\E219\\\";\\n}\\n.glyphicon-apple:before {\\n content: \\\"\\\\F8FF\\\";\\n}\\n.glyphicon-erase:before {\\n content: \\\"\\\\E221\\\";\\n}\\n.glyphicon-hourglass:before {\\n content: \\\"\\\\231B\\\";\\n}\\n.glyphicon-lamp:before {\\n content: \\\"\\\\E223\\\";\\n}\\n.glyphicon-duplicate:before {\\n content: \\\"\\\\E224\\\";\\n}\\n.glyphicon-piggy-bank:before {\\n content: \\\"\\\\E225\\\";\\n}\\n.glyphicon-scissors:before {\\n content: \\\"\\\\E226\\\";\\n}\\n.glyphicon-bitcoin:before {\\n content: \\\"\\\\E227\\\";\\n}\\n.glyphicon-btc:before {\\n content: \\\"\\\\E227\\\";\\n}\\n.glyphicon-xbt:before {\\n content: \\\"\\\\E227\\\";\\n}\\n.glyphicon-yen:before {\\n content: \\\"\\\\A5\\\";\\n}\\n.glyphicon-jpy:before {\\n content: \\\"\\\\A5\\\";\\n}\\n.glyphicon-ruble:before {\\n content: \\\"\\\\20BD\\\";\\n}\\n.glyphicon-rub:before {\\n content: \\\"\\\\20BD\\\";\\n}\\n.glyphicon-scale:before {\\n content: \\\"\\\\E230\\\";\\n}\\n.glyphicon-ice-lolly:before {\\n content: \\\"\\\\E231\\\";\\n}\\n.glyphicon-ice-lolly-tasted:before {\\n content: \\\"\\\\E232\\\";\\n}\\n.glyphicon-education:before {\\n content: \\\"\\\\E233\\\";\\n}\\n.glyphicon-option-horizontal:before {\\n content: \\\"\\\\E234\\\";\\n}\\n.glyphicon-option-vertical:before {\\n content: \\\"\\\\E235\\\";\\n}\\n.glyphicon-menu-hamburger:before {\\n content: \\\"\\\\E236\\\";\\n}\\n.glyphicon-modal-window:before {\\n content: \\\"\\\\E237\\\";\\n}\\n.glyphicon-oil:before {\\n content: \\\"\\\\E238\\\";\\n}\\n.glyphicon-grain:before {\\n content: \\\"\\\\E239\\\";\\n}\\n.glyphicon-sunglasses:before {\\n content: \\\"\\\\E240\\\";\\n}\\n.glyphicon-text-size:before {\\n content: \\\"\\\\E241\\\";\\n}\\n.glyphicon-text-color:before {\\n content: \\\"\\\\E242\\\";\\n}\\n.glyphicon-text-background:before {\\n content: \\\"\\\\E243\\\";\\n}\\n.glyphicon-object-align-top:before {\\n content: \\\"\\\\E244\\\";\\n}\\n.glyphicon-object-align-bottom:before {\\n content: \\\"\\\\E245\\\";\\n}\\n.glyphicon-object-align-horizontal:before {\\n content: \\\"\\\\E246\\\";\\n}\\n.glyphicon-object-align-left:before {\\n content: \\\"\\\\E247\\\";\\n}\\n.glyphicon-object-align-vertical:before {\\n content: \\\"\\\\E248\\\";\\n}\\n.glyphicon-object-align-right:before {\\n content: \\\"\\\\E249\\\";\\n}\\n.glyphicon-triangle-right:before {\\n content: \\\"\\\\E250\\\";\\n}\\n.glyphicon-triangle-left:before {\\n content: \\\"\\\\E251\\\";\\n}\\n.glyphicon-triangle-bottom:before {\\n content: \\\"\\\\E252\\\";\\n}\\n.glyphicon-triangle-top:before {\\n content: \\\"\\\\E253\\\";\\n}\\n.glyphicon-console:before {\\n content: \\\"\\\\E254\\\";\\n}\\n.glyphicon-superscript:before {\\n content: \\\"\\\\E255\\\";\\n}\\n.glyphicon-subscript:before {\\n content: \\\"\\\\E256\\\";\\n}\\n.glyphicon-menu-left:before {\\n content: \\\"\\\\E257\\\";\\n}\\n.glyphicon-menu-right:before {\\n content: \\\"\\\\E258\\\";\\n}\\n.glyphicon-menu-down:before {\\n content: \\\"\\\\E259\\\";\\n}\\n.glyphicon-menu-up:before {\\n content: \\\"\\\\E260\\\";\\n}\\n* {\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n*:before,\\n*:after {\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\ninput,\\nbutton,\\nselect,\\ntextarea {\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n}\\nimg {\\n vertical-align: middle;\\n}\\n.img-responsive,\\n.thumbnail > img,\\n.thumbnail a > img,\\n.carousel-inner > .item > img,\\n.carousel-inner > .item > a > img {\\n display: block;\\n max-width: 100%;\\n height: auto;\\n}\\n.img-rounded {\\n border-radius: 6px;\\n}\\n.img-thumbnail {\\n padding: 4px;\\n line-height: 1.42857143;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-radius: 4px;\\n -webkit-transition: all 0.2s ease-in-out;\\n -o-transition: all 0.2s ease-in-out;\\n transition: all 0.2s ease-in-out;\\n display: inline-block;\\n max-width: 100%;\\n height: auto;\\n}\\n.img-circle {\\n border-radius: 50%;\\n}\\nhr {\\n margin-top: 20px;\\n margin-bottom: 20px;\\n border: 0;\\n border-top: 1px solid #eeeeee;\\n}\\n.sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n margin: -1px;\\n padding: 0;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n border: 0;\\n}\\n.sr-only-focusable:active,\\n.sr-only-focusable:focus {\\n position: static;\\n width: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n clip: auto;\\n}\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\n.h1,\\n.h2,\\n.h3,\\n.h4,\\n.h5,\\n.h6 {\\n font-family: inherit;\\n font-weight: 500;\\n line-height: 1.1;\\n color: inherit;\\n}\\nh1 small,\\nh2 small,\\nh3 small,\\nh4 small,\\nh5 small,\\nh6 small,\\n.h1 small,\\n.h2 small,\\n.h3 small,\\n.h4 small,\\n.h5 small,\\n.h6 small,\\nh1 .small,\\nh2 .small,\\nh3 .small,\\nh4 .small,\\nh5 .small,\\nh6 .small,\\n.h1 .small,\\n.h2 .small,\\n.h3 .small,\\n.h4 .small,\\n.h5 .small,\\n.h6 .small {\\n font-weight: normal;\\n line-height: 1;\\n color: #777777;\\n}\\nh1,\\n.h1,\\nh2,\\n.h2,\\nh3,\\n.h3 {\\n margin-top: 20px;\\n margin-bottom: 10px;\\n}\\nh1 small,\\n.h1 small,\\nh2 small,\\n.h2 small,\\nh3 small,\\n.h3 small,\\nh1 .small,\\n.h1 .small,\\nh2 .small,\\n.h2 .small,\\nh3 .small,\\n.h3 .small {\\n font-size: 65%;\\n}\\nh4,\\n.h4,\\nh5,\\n.h5,\\nh6,\\n.h6 {\\n margin-top: 10px;\\n margin-bottom: 10px;\\n}\\nh4 small,\\n.h4 small,\\nh5 small,\\n.h5 small,\\nh6 small,\\n.h6 small,\\nh4 .small,\\n.h4 .small,\\nh5 .small,\\n.h5 .small,\\nh6 .small,\\n.h6 .small {\\n font-size: 75%;\\n}\\nh1,\\n.h1 {\\n font-size: 36px;\\n}\\nh2,\\n.h2 {\\n font-size: 30px;\\n}\\nh3,\\n.h3 {\\n font-size: 24px;\\n}\\nh4,\\n.h4 {\\n font-size: 18px;\\n}\\nh5,\\n.h5 {\\n font-size: 14px;\\n}\\nh6,\\n.h6 {\\n font-size: 12px;\\n}\\np {\\n margin: 0 0 10px;\\n}\\n.lead {\\n margin-bottom: 20px;\\n font-size: 16px;\\n font-weight: 300;\\n line-height: 1.4;\\n}\\n@media (min-width: 768px) {\\n .lead {\\n font-size: 21px;\\n }\\n}\\nsmall,\\n.small {\\n font-size: 85%;\\n}\\nmark,\\n.mark {\\n background-color: #fcf8e3;\\n padding: 0.2em;\\n}\\n.text-left {\\n text-align: left;\\n}\\n.text-right {\\n text-align: right;\\n}\\n.text-center {\\n text-align: center;\\n}\\n.text-justify {\\n text-align: justify;\\n}\\n.text-nowrap {\\n white-space: nowrap;\\n}\\n.text-lowercase {\\n text-transform: lowercase;\\n}\\n.text-uppercase {\\n text-transform: uppercase;\\n}\\n.text-capitalize {\\n text-transform: capitalize;\\n}\\n.text-muted {\\n color: #777777;\\n}\\n.text-primary {\\n color: #337ab7;\\n}\\na.text-primary:hover,\\na.text-primary:focus {\\n color: #286090;\\n}\\n.text-success {\\n color: #3c763d;\\n}\\na.text-success:hover,\\na.text-success:focus {\\n color: #2b542c;\\n}\\n.text-info {\\n color: #31708f;\\n}\\na.text-info:hover,\\na.text-info:focus {\\n color: #245269;\\n}\\n.text-warning {\\n color: #8a6d3b;\\n}\\na.text-warning:hover,\\na.text-warning:focus {\\n color: #66512c;\\n}\\n.text-danger {\\n color: #a94442;\\n}\\na.text-danger:hover,\\na.text-danger:focus {\\n color: #843534;\\n}\\n.bg-primary {\\n color: #fff;\\n background-color: #337ab7;\\n}\\na.bg-primary:hover,\\na.bg-primary:focus {\\n background-color: #286090;\\n}\\n.bg-success {\\n background-color: #dff0d8;\\n}\\na.bg-success:hover,\\na.bg-success:focus {\\n background-color: #c1e2b3;\\n}\\n.bg-info {\\n background-color: #d9edf7;\\n}\\na.bg-info:hover,\\na.bg-info:focus {\\n background-color: #afd9ee;\\n}\\n.bg-warning {\\n background-color: #fcf8e3;\\n}\\na.bg-warning:hover,\\na.bg-warning:focus {\\n background-color: #f7ecb5;\\n}\\n.bg-danger {\\n background-color: #f2dede;\\n}\\na.bg-danger:hover,\\na.bg-danger:focus {\\n background-color: #e4b9b9;\\n}\\n.page-header {\\n padding-bottom: 9px;\\n margin: 40px 0 20px;\\n border-bottom: 1px solid #eeeeee;\\n}\\nul,\\nol {\\n margin-top: 0;\\n margin-bottom: 10px;\\n}\\nul ul,\\nol ul,\\nul ol,\\nol ol {\\n margin-bottom: 0;\\n}\\n.list-unstyled {\\n padding-left: 0;\\n list-style: none;\\n}\\n.list-inline {\\n padding-left: 0;\\n list-style: none;\\n margin-left: -5px;\\n}\\n.list-inline > li {\\n display: inline-block;\\n padding-left: 5px;\\n padding-right: 5px;\\n}\\ndl {\\n margin-top: 0;\\n margin-bottom: 20px;\\n}\\ndt,\\ndd {\\n line-height: 1.42857143;\\n}\\ndt {\\n font-weight: bold;\\n}\\ndd {\\n margin-left: 0;\\n}\\n@media (min-width: 768px) {\\n .dl-horizontal dt {\\n float: left;\\n width: 160px;\\n clear: left;\\n text-align: right;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n .dl-horizontal dd {\\n margin-left: 180px;\\n }\\n}\\nabbr[title],\\nabbr[data-original-title] {\\n cursor: help;\\n border-bottom: 1px dotted #777777;\\n}\\n.initialism {\\n font-size: 90%;\\n text-transform: uppercase;\\n}\\nblockquote {\\n padding: 10px 20px;\\n margin: 0 0 20px;\\n font-size: 17.5px;\\n border-left: 5px solid #eeeeee;\\n}\\nblockquote p:last-child,\\nblockquote ul:last-child,\\nblockquote ol:last-child {\\n margin-bottom: 0;\\n}\\nblockquote footer,\\nblockquote small,\\nblockquote .small {\\n display: block;\\n font-size: 80%;\\n line-height: 1.42857143;\\n color: #777777;\\n}\\nblockquote footer:before,\\nblockquote small:before,\\nblockquote .small:before {\\n content: '\\\\2014 \\\\A0';\\n}\\n.blockquote-reverse,\\nblockquote.pull-right {\\n padding-right: 15px;\\n padding-left: 0;\\n border-right: 5px solid #eeeeee;\\n border-left: 0;\\n text-align: right;\\n}\\n.blockquote-reverse footer:before,\\nblockquote.pull-right footer:before,\\n.blockquote-reverse small:before,\\nblockquote.pull-right small:before,\\n.blockquote-reverse .small:before,\\nblockquote.pull-right .small:before {\\n content: '';\\n}\\n.blockquote-reverse footer:after,\\nblockquote.pull-right footer:after,\\n.blockquote-reverse small:after,\\nblockquote.pull-right small:after,\\n.blockquote-reverse .small:after,\\nblockquote.pull-right .small:after {\\n content: '\\\\A0 \\\\2014';\\n}\\naddress {\\n margin-bottom: 20px;\\n font-style: normal;\\n line-height: 1.42857143;\\n}\\ncode,\\nkbd,\\npre,\\nsamp {\\n font-family: Menlo, Monaco, Consolas, \\\"Courier New\\\", monospace;\\n}\\ncode {\\n padding: 2px 4px;\\n font-size: 90%;\\n color: #c7254e;\\n background-color: #f9f2f4;\\n border-radius: 4px;\\n}\\nkbd {\\n padding: 2px 4px;\\n font-size: 90%;\\n color: #fff;\\n background-color: #333;\\n border-radius: 3px;\\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\\n}\\nkbd kbd {\\n padding: 0;\\n font-size: 100%;\\n font-weight: bold;\\n box-shadow: none;\\n}\\npre {\\n display: block;\\n padding: 9.5px;\\n margin: 0 0 10px;\\n font-size: 13px;\\n line-height: 1.42857143;\\n word-break: break-all;\\n word-wrap: break-word;\\n color: #333333;\\n background-color: #f5f5f5;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n}\\npre code {\\n padding: 0;\\n font-size: inherit;\\n color: inherit;\\n white-space: pre-wrap;\\n background-color: transparent;\\n border-radius: 0;\\n}\\n.pre-scrollable {\\n max-height: 340px;\\n overflow-y: scroll;\\n}\\n.container {\\n margin-right: auto;\\n margin-left: auto;\\n padding-left: 15px;\\n padding-right: 15px;\\n}\\n@media (min-width: 768px) {\\n .container {\\n width: 750px;\\n }\\n}\\n@media (min-width: 992px) {\\n .container {\\n width: 970px;\\n }\\n}\\n@media (min-width: 1200px) {\\n .container {\\n width: 1170px;\\n }\\n}\\n.container-fluid {\\n margin-right: auto;\\n margin-left: auto;\\n padding-left: 15px;\\n padding-right: 15px;\\n}\\n.row {\\n margin-left: -15px;\\n margin-right: -15px;\\n}\\n.col-xs-1,\\n.col-sm-1,\\n.col-md-1,\\n.col-lg-1,\\n.col-xs-2,\\n.col-sm-2,\\n.col-md-2,\\n.col-lg-2,\\n.col-xs-3,\\n.col-sm-3,\\n.col-md-3,\\n.col-lg-3,\\n.col-xs-4,\\n.col-sm-4,\\n.col-md-4,\\n.col-lg-4,\\n.col-xs-5,\\n.col-sm-5,\\n.col-md-5,\\n.col-lg-5,\\n.col-xs-6,\\n.col-sm-6,\\n.col-md-6,\\n.col-lg-6,\\n.col-xs-7,\\n.col-sm-7,\\n.col-md-7,\\n.col-lg-7,\\n.col-xs-8,\\n.col-sm-8,\\n.col-md-8,\\n.col-lg-8,\\n.col-xs-9,\\n.col-sm-9,\\n.col-md-9,\\n.col-lg-9,\\n.col-xs-10,\\n.col-sm-10,\\n.col-md-10,\\n.col-lg-10,\\n.col-xs-11,\\n.col-sm-11,\\n.col-md-11,\\n.col-lg-11,\\n.col-xs-12,\\n.col-sm-12,\\n.col-md-12,\\n.col-lg-12 {\\n position: relative;\\n min-height: 1px;\\n padding-left: 15px;\\n padding-right: 15px;\\n}\\n.col-xs-1,\\n.col-xs-2,\\n.col-xs-3,\\n.col-xs-4,\\n.col-xs-5,\\n.col-xs-6,\\n.col-xs-7,\\n.col-xs-8,\\n.col-xs-9,\\n.col-xs-10,\\n.col-xs-11,\\n.col-xs-12 {\\n float: left;\\n}\\n.col-xs-12 {\\n width: 100%;\\n}\\n.col-xs-11 {\\n width: 91.66666667%;\\n}\\n.col-xs-10 {\\n width: 83.33333333%;\\n}\\n.col-xs-9 {\\n width: 75%;\\n}\\n.col-xs-8 {\\n width: 66.66666667%;\\n}\\n.col-xs-7 {\\n width: 58.33333333%;\\n}\\n.col-xs-6 {\\n width: 50%;\\n}\\n.col-xs-5 {\\n width: 41.66666667%;\\n}\\n.col-xs-4 {\\n width: 33.33333333%;\\n}\\n.col-xs-3 {\\n width: 25%;\\n}\\n.col-xs-2 {\\n width: 16.66666667%;\\n}\\n.col-xs-1 {\\n width: 8.33333333%;\\n}\\n.col-xs-pull-12 {\\n right: 100%;\\n}\\n.col-xs-pull-11 {\\n right: 91.66666667%;\\n}\\n.col-xs-pull-10 {\\n right: 83.33333333%;\\n}\\n.col-xs-pull-9 {\\n right: 75%;\\n}\\n.col-xs-pull-8 {\\n right: 66.66666667%;\\n}\\n.col-xs-pull-7 {\\n right: 58.33333333%;\\n}\\n.col-xs-pull-6 {\\n right: 50%;\\n}\\n.col-xs-pull-5 {\\n right: 41.66666667%;\\n}\\n.col-xs-pull-4 {\\n right: 33.33333333%;\\n}\\n.col-xs-pull-3 {\\n right: 25%;\\n}\\n.col-xs-pull-2 {\\n right: 16.66666667%;\\n}\\n.col-xs-pull-1 {\\n right: 8.33333333%;\\n}\\n.col-xs-pull-0 {\\n right: auto;\\n}\\n.col-xs-push-12 {\\n left: 100%;\\n}\\n.col-xs-push-11 {\\n left: 91.66666667%;\\n}\\n.col-xs-push-10 {\\n left: 83.33333333%;\\n}\\n.col-xs-push-9 {\\n left: 75%;\\n}\\n.col-xs-push-8 {\\n left: 66.66666667%;\\n}\\n.col-xs-push-7 {\\n left: 58.33333333%;\\n}\\n.col-xs-push-6 {\\n left: 50%;\\n}\\n.col-xs-push-5 {\\n left: 41.66666667%;\\n}\\n.col-xs-push-4 {\\n left: 33.33333333%;\\n}\\n.col-xs-push-3 {\\n left: 25%;\\n}\\n.col-xs-push-2 {\\n left: 16.66666667%;\\n}\\n.col-xs-push-1 {\\n left: 8.33333333%;\\n}\\n.col-xs-push-0 {\\n left: auto;\\n}\\n.col-xs-offset-12 {\\n margin-left: 100%;\\n}\\n.col-xs-offset-11 {\\n margin-left: 91.66666667%;\\n}\\n.col-xs-offset-10 {\\n margin-left: 83.33333333%;\\n}\\n.col-xs-offset-9 {\\n margin-left: 75%;\\n}\\n.col-xs-offset-8 {\\n margin-left: 66.66666667%;\\n}\\n.col-xs-offset-7 {\\n margin-left: 58.33333333%;\\n}\\n.col-xs-offset-6 {\\n margin-left: 50%;\\n}\\n.col-xs-offset-5 {\\n margin-left: 41.66666667%;\\n}\\n.col-xs-offset-4 {\\n margin-left: 33.33333333%;\\n}\\n.col-xs-offset-3 {\\n margin-left: 25%;\\n}\\n.col-xs-offset-2 {\\n margin-left: 16.66666667%;\\n}\\n.col-xs-offset-1 {\\n margin-left: 8.33333333%;\\n}\\n.col-xs-offset-0 {\\n margin-left: 0%;\\n}\\n@media (min-width: 768px) {\\n .col-sm-1,\\n .col-sm-2,\\n .col-sm-3,\\n .col-sm-4,\\n .col-sm-5,\\n .col-sm-6,\\n .col-sm-7,\\n .col-sm-8,\\n .col-sm-9,\\n .col-sm-10,\\n .col-sm-11,\\n .col-sm-12 {\\n float: left;\\n }\\n .col-sm-12 {\\n width: 100%;\\n }\\n .col-sm-11 {\\n width: 91.66666667%;\\n }\\n .col-sm-10 {\\n width: 83.33333333%;\\n }\\n .col-sm-9 {\\n width: 75%;\\n }\\n .col-sm-8 {\\n width: 66.66666667%;\\n }\\n .col-sm-7 {\\n width: 58.33333333%;\\n }\\n .col-sm-6 {\\n width: 50%;\\n }\\n .col-sm-5 {\\n width: 41.66666667%;\\n }\\n .col-sm-4 {\\n width: 33.33333333%;\\n }\\n .col-sm-3 {\\n width: 25%;\\n }\\n .col-sm-2 {\\n width: 16.66666667%;\\n }\\n .col-sm-1 {\\n width: 8.33333333%;\\n }\\n .col-sm-pull-12 {\\n right: 100%;\\n }\\n .col-sm-pull-11 {\\n right: 91.66666667%;\\n }\\n .col-sm-pull-10 {\\n right: 83.33333333%;\\n }\\n .col-sm-pull-9 {\\n right: 75%;\\n }\\n .col-sm-pull-8 {\\n right: 66.66666667%;\\n }\\n .col-sm-pull-7 {\\n right: 58.33333333%;\\n }\\n .col-sm-pull-6 {\\n right: 50%;\\n }\\n .col-sm-pull-5 {\\n right: 41.66666667%;\\n }\\n .col-sm-pull-4 {\\n right: 33.33333333%;\\n }\\n .col-sm-pull-3 {\\n right: 25%;\\n }\\n .col-sm-pull-2 {\\n right: 16.66666667%;\\n }\\n .col-sm-pull-1 {\\n right: 8.33333333%;\\n }\\n .col-sm-pull-0 {\\n right: auto;\\n }\\n .col-sm-push-12 {\\n left: 100%;\\n }\\n .col-sm-push-11 {\\n left: 91.66666667%;\\n }\\n .col-sm-push-10 {\\n left: 83.33333333%;\\n }\\n .col-sm-push-9 {\\n left: 75%;\\n }\\n .col-sm-push-8 {\\n left: 66.66666667%;\\n }\\n .col-sm-push-7 {\\n left: 58.33333333%;\\n }\\n .col-sm-push-6 {\\n left: 50%;\\n }\\n .col-sm-push-5 {\\n left: 41.66666667%;\\n }\\n .col-sm-push-4 {\\n left: 33.33333333%;\\n }\\n .col-sm-push-3 {\\n left: 25%;\\n }\\n .col-sm-push-2 {\\n left: 16.66666667%;\\n }\\n .col-sm-push-1 {\\n left: 8.33333333%;\\n }\\n .col-sm-push-0 {\\n left: auto;\\n }\\n .col-sm-offset-12 {\\n margin-left: 100%;\\n }\\n .col-sm-offset-11 {\\n margin-left: 91.66666667%;\\n }\\n .col-sm-offset-10 {\\n margin-left: 83.33333333%;\\n }\\n .col-sm-offset-9 {\\n margin-left: 75%;\\n }\\n .col-sm-offset-8 {\\n margin-left: 66.66666667%;\\n }\\n .col-sm-offset-7 {\\n margin-left: 58.33333333%;\\n }\\n .col-sm-offset-6 {\\n margin-left: 50%;\\n }\\n .col-sm-offset-5 {\\n margin-left: 41.66666667%;\\n }\\n .col-sm-offset-4 {\\n margin-left: 33.33333333%;\\n }\\n .col-sm-offset-3 {\\n margin-left: 25%;\\n }\\n .col-sm-offset-2 {\\n margin-left: 16.66666667%;\\n }\\n .col-sm-offset-1 {\\n margin-left: 8.33333333%;\\n }\\n .col-sm-offset-0 {\\n margin-left: 0%;\\n }\\n}\\n@media (min-width: 992px) {\\n .col-md-1,\\n .col-md-2,\\n .col-md-3,\\n .col-md-4,\\n .col-md-5,\\n .col-md-6,\\n .col-md-7,\\n .col-md-8,\\n .col-md-9,\\n .col-md-10,\\n .col-md-11,\\n .col-md-12 {\\n float: left;\\n }\\n .col-md-12 {\\n width: 100%;\\n }\\n .col-md-11 {\\n width: 91.66666667%;\\n }\\n .col-md-10 {\\n width: 83.33333333%;\\n }\\n .col-md-9 {\\n width: 75%;\\n }\\n .col-md-8 {\\n width: 66.66666667%;\\n }\\n .col-md-7 {\\n width: 58.33333333%;\\n }\\n .col-md-6 {\\n width: 50%;\\n }\\n .col-md-5 {\\n width: 41.66666667%;\\n }\\n .col-md-4 {\\n width: 33.33333333%;\\n }\\n .col-md-3 {\\n width: 25%;\\n }\\n .col-md-2 {\\n width: 16.66666667%;\\n }\\n .col-md-1 {\\n width: 8.33333333%;\\n }\\n .col-md-pull-12 {\\n right: 100%;\\n }\\n .col-md-pull-11 {\\n right: 91.66666667%;\\n }\\n .col-md-pull-10 {\\n right: 83.33333333%;\\n }\\n .col-md-pull-9 {\\n right: 75%;\\n }\\n .col-md-pull-8 {\\n right: 66.66666667%;\\n }\\n .col-md-pull-7 {\\n right: 58.33333333%;\\n }\\n .col-md-pull-6 {\\n right: 50%;\\n }\\n .col-md-pull-5 {\\n right: 41.66666667%;\\n }\\n .col-md-pull-4 {\\n right: 33.33333333%;\\n }\\n .col-md-pull-3 {\\n right: 25%;\\n }\\n .col-md-pull-2 {\\n right: 16.66666667%;\\n }\\n .col-md-pull-1 {\\n right: 8.33333333%;\\n }\\n .col-md-pull-0 {\\n right: auto;\\n }\\n .col-md-push-12 {\\n left: 100%;\\n }\\n .col-md-push-11 {\\n left: 91.66666667%;\\n }\\n .col-md-push-10 {\\n left: 83.33333333%;\\n }\\n .col-md-push-9 {\\n left: 75%;\\n }\\n .col-md-push-8 {\\n left: 66.66666667%;\\n }\\n .col-md-push-7 {\\n left: 58.33333333%;\\n }\\n .col-md-push-6 {\\n left: 50%;\\n }\\n .col-md-push-5 {\\n left: 41.66666667%;\\n }\\n .col-md-push-4 {\\n left: 33.33333333%;\\n }\\n .col-md-push-3 {\\n left: 25%;\\n }\\n .col-md-push-2 {\\n left: 16.66666667%;\\n }\\n .col-md-push-1 {\\n left: 8.33333333%;\\n }\\n .col-md-push-0 {\\n left: auto;\\n }\\n .col-md-offset-12 {\\n margin-left: 100%;\\n }\\n .col-md-offset-11 {\\n margin-left: 91.66666667%;\\n }\\n .col-md-offset-10 {\\n margin-left: 83.33333333%;\\n }\\n .col-md-offset-9 {\\n margin-left: 75%;\\n }\\n .col-md-offset-8 {\\n margin-left: 66.66666667%;\\n }\\n .col-md-offset-7 {\\n margin-left: 58.33333333%;\\n }\\n .col-md-offset-6 {\\n margin-left: 50%;\\n }\\n .col-md-offset-5 {\\n margin-left: 41.66666667%;\\n }\\n .col-md-offset-4 {\\n margin-left: 33.33333333%;\\n }\\n .col-md-offset-3 {\\n margin-left: 25%;\\n }\\n .col-md-offset-2 {\\n margin-left: 16.66666667%;\\n }\\n .col-md-offset-1 {\\n margin-left: 8.33333333%;\\n }\\n .col-md-offset-0 {\\n margin-left: 0%;\\n }\\n}\\n@media (min-width: 1200px) {\\n .col-lg-1,\\n .col-lg-2,\\n .col-lg-3,\\n .col-lg-4,\\n .col-lg-5,\\n .col-lg-6,\\n .col-lg-7,\\n .col-lg-8,\\n .col-lg-9,\\n .col-lg-10,\\n .col-lg-11,\\n .col-lg-12 {\\n float: left;\\n }\\n .col-lg-12 {\\n width: 100%;\\n }\\n .col-lg-11 {\\n width: 91.66666667%;\\n }\\n .col-lg-10 {\\n width: 83.33333333%;\\n }\\n .col-lg-9 {\\n width: 75%;\\n }\\n .col-lg-8 {\\n width: 66.66666667%;\\n }\\n .col-lg-7 {\\n width: 58.33333333%;\\n }\\n .col-lg-6 {\\n width: 50%;\\n }\\n .col-lg-5 {\\n width: 41.66666667%;\\n }\\n .col-lg-4 {\\n width: 33.33333333%;\\n }\\n .col-lg-3 {\\n width: 25%;\\n }\\n .col-lg-2 {\\n width: 16.66666667%;\\n }\\n .col-lg-1 {\\n width: 8.33333333%;\\n }\\n .col-lg-pull-12 {\\n right: 100%;\\n }\\n .col-lg-pull-11 {\\n right: 91.66666667%;\\n }\\n .col-lg-pull-10 {\\n right: 83.33333333%;\\n }\\n .col-lg-pull-9 {\\n right: 75%;\\n }\\n .col-lg-pull-8 {\\n right: 66.66666667%;\\n }\\n .col-lg-pull-7 {\\n right: 58.33333333%;\\n }\\n .col-lg-pull-6 {\\n right: 50%;\\n }\\n .col-lg-pull-5 {\\n right: 41.66666667%;\\n }\\n .col-lg-pull-4 {\\n right: 33.33333333%;\\n }\\n .col-lg-pull-3 {\\n right: 25%;\\n }\\n .col-lg-pull-2 {\\n right: 16.66666667%;\\n }\\n .col-lg-pull-1 {\\n right: 8.33333333%;\\n }\\n .col-lg-pull-0 {\\n right: auto;\\n }\\n .col-lg-push-12 {\\n left: 100%;\\n }\\n .col-lg-push-11 {\\n left: 91.66666667%;\\n }\\n .col-lg-push-10 {\\n left: 83.33333333%;\\n }\\n .col-lg-push-9 {\\n left: 75%;\\n }\\n .col-lg-push-8 {\\n left: 66.66666667%;\\n }\\n .col-lg-push-7 {\\n left: 58.33333333%;\\n }\\n .col-lg-push-6 {\\n left: 50%;\\n }\\n .col-lg-push-5 {\\n left: 41.66666667%;\\n }\\n .col-lg-push-4 {\\n left: 33.33333333%;\\n }\\n .col-lg-push-3 {\\n left: 25%;\\n }\\n .col-lg-push-2 {\\n left: 16.66666667%;\\n }\\n .col-lg-push-1 {\\n left: 8.33333333%;\\n }\\n .col-lg-push-0 {\\n left: auto;\\n }\\n .col-lg-offset-12 {\\n margin-left: 100%;\\n }\\n .col-lg-offset-11 {\\n margin-left: 91.66666667%;\\n }\\n .col-lg-offset-10 {\\n margin-left: 83.33333333%;\\n }\\n .col-lg-offset-9 {\\n margin-left: 75%;\\n }\\n .col-lg-offset-8 {\\n margin-left: 66.66666667%;\\n }\\n .col-lg-offset-7 {\\n margin-left: 58.33333333%;\\n }\\n .col-lg-offset-6 {\\n margin-left: 50%;\\n }\\n .col-lg-offset-5 {\\n margin-left: 41.66666667%;\\n }\\n .col-lg-offset-4 {\\n margin-left: 33.33333333%;\\n }\\n .col-lg-offset-3 {\\n margin-left: 25%;\\n }\\n .col-lg-offset-2 {\\n margin-left: 16.66666667%;\\n }\\n .col-lg-offset-1 {\\n margin-left: 8.33333333%;\\n }\\n .col-lg-offset-0 {\\n margin-left: 0%;\\n }\\n}\\ntable {\\n background-color: transparent;\\n}\\ncaption {\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: #777777;\\n text-align: left;\\n}\\nth {\\n text-align: left;\\n}\\n.table {\\n width: 100%;\\n max-width: 100%;\\n margin-bottom: 20px;\\n}\\n.table > thead > tr > th,\\n.table > tbody > tr > th,\\n.table > tfoot > tr > th,\\n.table > thead > tr > td,\\n.table > tbody > tr > td,\\n.table > tfoot > tr > td {\\n padding: 8px;\\n line-height: 1.42857143;\\n vertical-align: top;\\n border-top: 1px solid #ddd;\\n}\\n.table > thead > tr > th {\\n vertical-align: bottom;\\n border-bottom: 2px solid #ddd;\\n}\\n.table > caption + thead > tr:first-child > th,\\n.table > colgroup + thead > tr:first-child > th,\\n.table > thead:first-child > tr:first-child > th,\\n.table > caption + thead > tr:first-child > td,\\n.table > colgroup + thead > tr:first-child > td,\\n.table > thead:first-child > tr:first-child > td {\\n border-top: 0;\\n}\\n.table > tbody + tbody {\\n border-top: 2px solid #ddd;\\n}\\n.table .table {\\n background-color: #fff;\\n}\\n.table-condensed > thead > tr > th,\\n.table-condensed > tbody > tr > th,\\n.table-condensed > tfoot > tr > th,\\n.table-condensed > thead > tr > td,\\n.table-condensed > tbody > tr > td,\\n.table-condensed > tfoot > tr > td {\\n padding: 5px;\\n}\\n.table-bordered {\\n border: 1px solid #ddd;\\n}\\n.table-bordered > thead > tr > th,\\n.table-bordered > tbody > tr > th,\\n.table-bordered > tfoot > tr > th,\\n.table-bordered > thead > tr > td,\\n.table-bordered > tbody > tr > td,\\n.table-bordered > tfoot > tr > td {\\n border: 1px solid #ddd;\\n}\\n.table-bordered > thead > tr > th,\\n.table-bordered > thead > tr > td {\\n border-bottom-width: 2px;\\n}\\n.table-striped > tbody > tr:nth-of-type(odd) {\\n background-color: #f9f9f9;\\n}\\n.table-hover > tbody > tr:hover {\\n background-color: #f5f5f5;\\n}\\ntable col[class*=\\\"col-\\\"] {\\n position: static;\\n float: none;\\n display: table-column;\\n}\\ntable td[class*=\\\"col-\\\"],\\ntable th[class*=\\\"col-\\\"] {\\n position: static;\\n float: none;\\n display: table-cell;\\n}\\n.table > thead > tr > td.active,\\n.table > tbody > tr > td.active,\\n.table > tfoot > tr > td.active,\\n.table > thead > tr > th.active,\\n.table > tbody > tr > th.active,\\n.table > tfoot > tr > th.active,\\n.table > thead > tr.active > td,\\n.table > tbody > tr.active > td,\\n.table > tfoot > tr.active > td,\\n.table > thead > tr.active > th,\\n.table > tbody > tr.active > th,\\n.table > tfoot > tr.active > th {\\n background-color: #f5f5f5;\\n}\\n.table-hover > tbody > tr > td.active:hover,\\n.table-hover > tbody > tr > th.active:hover,\\n.table-hover > tbody > tr.active:hover > td,\\n.table-hover > tbody > tr:hover > .active,\\n.table-hover > tbody > tr.active:hover > th {\\n background-color: #e8e8e8;\\n}\\n.table > thead > tr > td.success,\\n.table > tbody > tr > td.success,\\n.table > tfoot > tr > td.success,\\n.table > thead > tr > th.success,\\n.table > tbody > tr > th.success,\\n.table > tfoot > tr > th.success,\\n.table > thead > tr.success > td,\\n.table > tbody > tr.success > td,\\n.table > tfoot > tr.success > td,\\n.table > thead > tr.success > th,\\n.table > tbody > tr.success > th,\\n.table > tfoot > tr.success > th {\\n background-color: #dff0d8;\\n}\\n.table-hover > tbody > tr > td.success:hover,\\n.table-hover > tbody > tr > th.success:hover,\\n.table-hover > tbody > tr.success:hover > td,\\n.table-hover > tbody > tr:hover > .success,\\n.table-hover > tbody > tr.success:hover > th {\\n background-color: #d0e9c6;\\n}\\n.table > thead > tr > td.info,\\n.table > tbody > tr > td.info,\\n.table > tfoot > tr > td.info,\\n.table > thead > tr > th.info,\\n.table > tbody > tr > th.info,\\n.table > tfoot > tr > th.info,\\n.table > thead > tr.info > td,\\n.table > tbody > tr.info > td,\\n.table > tfoot > tr.info > td,\\n.table > thead > tr.info > th,\\n.table > tbody > tr.info > th,\\n.table > tfoot > tr.info > th {\\n background-color: #d9edf7;\\n}\\n.table-hover > tbody > tr > td.info:hover,\\n.table-hover > tbody > tr > th.info:hover,\\n.table-hover > tbody > tr.info:hover > td,\\n.table-hover > tbody > tr:hover > .info,\\n.table-hover > tbody > tr.info:hover > th {\\n background-color: #c4e3f3;\\n}\\n.table > thead > tr > td.warning,\\n.table > tbody > tr > td.warning,\\n.table > tfoot > tr > td.warning,\\n.table > thead > tr > th.warning,\\n.table > tbody > tr > th.warning,\\n.table > tfoot > tr > th.warning,\\n.table > thead > tr.warning > td,\\n.table > tbody > tr.warning > td,\\n.table > tfoot > tr.warning > td,\\n.table > thead > tr.warning > th,\\n.table > tbody > tr.warning > th,\\n.table > tfoot > tr.warning > th {\\n background-color: #fcf8e3;\\n}\\n.table-hover > tbody > tr > td.warning:hover,\\n.table-hover > tbody > tr > th.warning:hover,\\n.table-hover > tbody > tr.warning:hover > td,\\n.table-hover > tbody > tr:hover > .warning,\\n.table-hover > tbody > tr.warning:hover > th {\\n background-color: #faf2cc;\\n}\\n.table > thead > tr > td.danger,\\n.table > tbody > tr > td.danger,\\n.table > tfoot > tr > td.danger,\\n.table > thead > tr > th.danger,\\n.table > tbody > tr > th.danger,\\n.table > tfoot > tr > th.danger,\\n.table > thead > tr.danger > td,\\n.table > tbody > tr.danger > td,\\n.table > tfoot > tr.danger > td,\\n.table > thead > tr.danger > th,\\n.table > tbody > tr.danger > th,\\n.table > tfoot > tr.danger > th {\\n background-color: #f2dede;\\n}\\n.table-hover > tbody > tr > td.danger:hover,\\n.table-hover > tbody > tr > th.danger:hover,\\n.table-hover > tbody > tr.danger:hover > td,\\n.table-hover > tbody > tr:hover > .danger,\\n.table-hover > tbody > tr.danger:hover > th {\\n background-color: #ebcccc;\\n}\\n.table-responsive {\\n overflow-x: auto;\\n min-height: 0.01%;\\n}\\n@media screen and (max-width: 767px) {\\n .table-responsive {\\n width: 100%;\\n margin-bottom: 15px;\\n overflow-y: hidden;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n border: 1px solid #ddd;\\n }\\n .table-responsive > .table {\\n margin-bottom: 0;\\n }\\n .table-responsive > .table > thead > tr > th,\\n .table-responsive > .table > tbody > tr > th,\\n .table-responsive > .table > tfoot > tr > th,\\n .table-responsive > .table > thead > tr > td,\\n .table-responsive > .table > tbody > tr > td,\\n .table-responsive > .table > tfoot > tr > td {\\n white-space: nowrap;\\n }\\n .table-responsive > .table-bordered {\\n border: 0;\\n }\\n .table-responsive > .table-bordered > thead > tr > th:first-child,\\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\\n .table-responsive > .table-bordered > thead > tr > td:first-child,\\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\\n border-left: 0;\\n }\\n .table-responsive > .table-bordered > thead > tr > th:last-child,\\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\\n .table-responsive > .table-bordered > thead > tr > td:last-child,\\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\\n border-right: 0;\\n }\\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\\n border-bottom: 0;\\n }\\n}\\nfieldset {\\n padding: 0;\\n margin: 0;\\n border: 0;\\n min-width: 0;\\n}\\nlegend {\\n display: block;\\n width: 100%;\\n padding: 0;\\n margin-bottom: 20px;\\n font-size: 21px;\\n line-height: inherit;\\n color: #333333;\\n border: 0;\\n border-bottom: 1px solid #e5e5e5;\\n}\\nlabel {\\n display: inline-block;\\n max-width: 100%;\\n margin-bottom: 5px;\\n font-weight: bold;\\n}\\ninput[type=\\\"search\\\"] {\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\ninput[type=\\\"radio\\\"],\\ninput[type=\\\"checkbox\\\"] {\\n margin: 4px 0 0;\\n margin-top: 1px \\\\9;\\n line-height: normal;\\n}\\ninput[type=\\\"file\\\"] {\\n display: block;\\n}\\ninput[type=\\\"range\\\"] {\\n display: block;\\n width: 100%;\\n}\\nselect[multiple],\\nselect[size] {\\n height: auto;\\n}\\ninput[type=\\\"file\\\"]:focus,\\ninput[type=\\\"radio\\\"]:focus,\\ninput[type=\\\"checkbox\\\"]:focus {\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: -2px;\\n}\\noutput {\\n display: block;\\n padding-top: 7px;\\n font-size: 14px;\\n line-height: 1.42857143;\\n color: #555555;\\n}\\n.form-control {\\n display: block;\\n width: 100%;\\n height: 34px;\\n padding: 6px 12px;\\n font-size: 14px;\\n line-height: 1.42857143;\\n color: #555555;\\n background-color: #fff;\\n background-image: none;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\\n}\\n.form-control:focus {\\n border-color: #66afe9;\\n outline: 0;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\\n}\\n.form-control::-moz-placeholder {\\n color: #999;\\n opacity: 1;\\n}\\n.form-control:-ms-input-placeholder {\\n color: #999;\\n}\\n.form-control::-webkit-input-placeholder {\\n color: #999;\\n}\\n.form-control::-ms-expand {\\n border: 0;\\n background-color: transparent;\\n}\\n.form-control[disabled],\\n.form-control[readonly],\\nfieldset[disabled] .form-control {\\n background-color: #eeeeee;\\n opacity: 1;\\n}\\n.form-control[disabled],\\nfieldset[disabled] .form-control {\\n cursor: not-allowed;\\n}\\ntextarea.form-control {\\n height: auto;\\n}\\ninput[type=\\\"search\\\"] {\\n -webkit-appearance: none;\\n}\\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\\n input[type=\\\"date\\\"].form-control,\\n input[type=\\\"time\\\"].form-control,\\n input[type=\\\"datetime-local\\\"].form-control,\\n input[type=\\\"month\\\"].form-control {\\n line-height: 34px;\\n }\\n input[type=\\\"date\\\"].input-sm,\\n input[type=\\\"time\\\"].input-sm,\\n input[type=\\\"datetime-local\\\"].input-sm,\\n input[type=\\\"month\\\"].input-sm,\\n .input-group-sm input[type=\\\"date\\\"],\\n .input-group-sm input[type=\\\"time\\\"],\\n .input-group-sm input[type=\\\"datetime-local\\\"],\\n .input-group-sm input[type=\\\"month\\\"] {\\n line-height: 30px;\\n }\\n input[type=\\\"date\\\"].input-lg,\\n input[type=\\\"time\\\"].input-lg,\\n input[type=\\\"datetime-local\\\"].input-lg,\\n input[type=\\\"month\\\"].input-lg,\\n .input-group-lg input[type=\\\"date\\\"],\\n .input-group-lg input[type=\\\"time\\\"],\\n .input-group-lg input[type=\\\"datetime-local\\\"],\\n .input-group-lg input[type=\\\"month\\\"] {\\n line-height: 46px;\\n }\\n}\\n.form-group {\\n margin-bottom: 15px;\\n}\\n.radio,\\n.checkbox {\\n position: relative;\\n display: block;\\n margin-top: 10px;\\n margin-bottom: 10px;\\n}\\n.radio label,\\n.checkbox label {\\n min-height: 20px;\\n padding-left: 20px;\\n margin-bottom: 0;\\n font-weight: normal;\\n cursor: pointer;\\n}\\n.radio input[type=\\\"radio\\\"],\\n.radio-inline input[type=\\\"radio\\\"],\\n.checkbox input[type=\\\"checkbox\\\"],\\n.checkbox-inline input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n margin-left: -20px;\\n margin-top: 4px \\\\9;\\n}\\n.radio + .radio,\\n.checkbox + .checkbox {\\n margin-top: -5px;\\n}\\n.radio-inline,\\n.checkbox-inline {\\n position: relative;\\n display: inline-block;\\n padding-left: 20px;\\n margin-bottom: 0;\\n vertical-align: middle;\\n font-weight: normal;\\n cursor: pointer;\\n}\\n.radio-inline + .radio-inline,\\n.checkbox-inline + .checkbox-inline {\\n margin-top: 0;\\n margin-left: 10px;\\n}\\ninput[type=\\\"radio\\\"][disabled],\\ninput[type=\\\"checkbox\\\"][disabled],\\ninput[type=\\\"radio\\\"].disabled,\\ninput[type=\\\"checkbox\\\"].disabled,\\nfieldset[disabled] input[type=\\\"radio\\\"],\\nfieldset[disabled] input[type=\\\"checkbox\\\"] {\\n cursor: not-allowed;\\n}\\n.radio-inline.disabled,\\n.checkbox-inline.disabled,\\nfieldset[disabled] .radio-inline,\\nfieldset[disabled] .checkbox-inline {\\n cursor: not-allowed;\\n}\\n.radio.disabled label,\\n.checkbox.disabled label,\\nfieldset[disabled] .radio label,\\nfieldset[disabled] .checkbox label {\\n cursor: not-allowed;\\n}\\n.form-control-static {\\n padding-top: 7px;\\n padding-bottom: 7px;\\n margin-bottom: 0;\\n min-height: 34px;\\n}\\n.form-control-static.input-lg,\\n.form-control-static.input-sm {\\n padding-left: 0;\\n padding-right: 0;\\n}\\n.input-sm {\\n height: 30px;\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\nselect.input-sm {\\n height: 30px;\\n line-height: 30px;\\n}\\ntextarea.input-sm,\\nselect[multiple].input-sm {\\n height: auto;\\n}\\n.form-group-sm .form-control {\\n height: 30px;\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\n.form-group-sm select.form-control {\\n height: 30px;\\n line-height: 30px;\\n}\\n.form-group-sm textarea.form-control,\\n.form-group-sm select[multiple].form-control {\\n height: auto;\\n}\\n.form-group-sm .form-control-static {\\n height: 30px;\\n min-height: 32px;\\n padding: 6px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n}\\n.input-lg {\\n height: 46px;\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\nselect.input-lg {\\n height: 46px;\\n line-height: 46px;\\n}\\ntextarea.input-lg,\\nselect[multiple].input-lg {\\n height: auto;\\n}\\n.form-group-lg .form-control {\\n height: 46px;\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\n.form-group-lg select.form-control {\\n height: 46px;\\n line-height: 46px;\\n}\\n.form-group-lg textarea.form-control,\\n.form-group-lg select[multiple].form-control {\\n height: auto;\\n}\\n.form-group-lg .form-control-static {\\n height: 46px;\\n min-height: 38px;\\n padding: 11px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n}\\n.has-feedback {\\n position: relative;\\n}\\n.has-feedback .form-control {\\n padding-right: 42.5px;\\n}\\n.form-control-feedback {\\n position: absolute;\\n top: 0;\\n right: 0;\\n z-index: 2;\\n display: block;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n pointer-events: none;\\n}\\n.input-lg + .form-control-feedback,\\n.input-group-lg + .form-control-feedback,\\n.form-group-lg .form-control + .form-control-feedback {\\n width: 46px;\\n height: 46px;\\n line-height: 46px;\\n}\\n.input-sm + .form-control-feedback,\\n.input-group-sm + .form-control-feedback,\\n.form-group-sm .form-control + .form-control-feedback {\\n width: 30px;\\n height: 30px;\\n line-height: 30px;\\n}\\n.has-success .help-block,\\n.has-success .control-label,\\n.has-success .radio,\\n.has-success .checkbox,\\n.has-success .radio-inline,\\n.has-success .checkbox-inline,\\n.has-success.radio label,\\n.has-success.checkbox label,\\n.has-success.radio-inline label,\\n.has-success.checkbox-inline label {\\n color: #3c763d;\\n}\\n.has-success .form-control {\\n border-color: #3c763d;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n}\\n.has-success .form-control:focus {\\n border-color: #2b542c;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\\n}\\n.has-success .input-group-addon {\\n color: #3c763d;\\n border-color: #3c763d;\\n background-color: #dff0d8;\\n}\\n.has-success .form-control-feedback {\\n color: #3c763d;\\n}\\n.has-warning .help-block,\\n.has-warning .control-label,\\n.has-warning .radio,\\n.has-warning .checkbox,\\n.has-warning .radio-inline,\\n.has-warning .checkbox-inline,\\n.has-warning.radio label,\\n.has-warning.checkbox label,\\n.has-warning.radio-inline label,\\n.has-warning.checkbox-inline label {\\n color: #8a6d3b;\\n}\\n.has-warning .form-control {\\n border-color: #8a6d3b;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n}\\n.has-warning .form-control:focus {\\n border-color: #66512c;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\\n}\\n.has-warning .input-group-addon {\\n color: #8a6d3b;\\n border-color: #8a6d3b;\\n background-color: #fcf8e3;\\n}\\n.has-warning .form-control-feedback {\\n color: #8a6d3b;\\n}\\n.has-error .help-block,\\n.has-error .control-label,\\n.has-error .radio,\\n.has-error .checkbox,\\n.has-error .radio-inline,\\n.has-error .checkbox-inline,\\n.has-error.radio label,\\n.has-error.checkbox label,\\n.has-error.radio-inline label,\\n.has-error.checkbox-inline label {\\n color: #a94442;\\n}\\n.has-error .form-control {\\n border-color: #a94442;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n}\\n.has-error .form-control:focus {\\n border-color: #843534;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\\n}\\n.has-error .input-group-addon {\\n color: #a94442;\\n border-color: #a94442;\\n background-color: #f2dede;\\n}\\n.has-error .form-control-feedback {\\n color: #a94442;\\n}\\n.has-feedback label ~ .form-control-feedback {\\n top: 25px;\\n}\\n.has-feedback label.sr-only ~ .form-control-feedback {\\n top: 0;\\n}\\n.help-block {\\n display: block;\\n margin-top: 5px;\\n margin-bottom: 10px;\\n color: #737373;\\n}\\n@media (min-width: 768px) {\\n .form-inline .form-group {\\n display: inline-block;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .form-inline .form-control {\\n display: inline-block;\\n width: auto;\\n vertical-align: middle;\\n }\\n .form-inline .form-control-static {\\n display: inline-block;\\n }\\n .form-inline .input-group {\\n display: inline-table;\\n vertical-align: middle;\\n }\\n .form-inline .input-group .input-group-addon,\\n .form-inline .input-group .input-group-btn,\\n .form-inline .input-group .form-control {\\n width: auto;\\n }\\n .form-inline .input-group > .form-control {\\n width: 100%;\\n }\\n .form-inline .control-label {\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .form-inline .radio,\\n .form-inline .checkbox {\\n display: inline-block;\\n margin-top: 0;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .form-inline .radio label,\\n .form-inline .checkbox label {\\n padding-left: 0;\\n }\\n .form-inline .radio input[type=\\\"radio\\\"],\\n .form-inline .checkbox input[type=\\\"checkbox\\\"] {\\n position: relative;\\n margin-left: 0;\\n }\\n .form-inline .has-feedback .form-control-feedback {\\n top: 0;\\n }\\n}\\n.form-horizontal .radio,\\n.form-horizontal .checkbox,\\n.form-horizontal .radio-inline,\\n.form-horizontal .checkbox-inline {\\n margin-top: 0;\\n margin-bottom: 0;\\n padding-top: 7px;\\n}\\n.form-horizontal .radio,\\n.form-horizontal .checkbox {\\n min-height: 27px;\\n}\\n.form-horizontal .form-group {\\n margin-left: -15px;\\n margin-right: -15px;\\n}\\n@media (min-width: 768px) {\\n .form-horizontal .control-label {\\n text-align: right;\\n margin-bottom: 0;\\n padding-top: 7px;\\n }\\n}\\n.form-horizontal .has-feedback .form-control-feedback {\\n right: 15px;\\n}\\n@media (min-width: 768px) {\\n .form-horizontal .form-group-lg .control-label {\\n padding-top: 11px;\\n font-size: 18px;\\n }\\n}\\n@media (min-width: 768px) {\\n .form-horizontal .form-group-sm .control-label {\\n padding-top: 6px;\\n font-size: 12px;\\n }\\n}\\n.btn {\\n display: inline-block;\\n margin-bottom: 0;\\n font-weight: normal;\\n text-align: center;\\n vertical-align: middle;\\n touch-action: manipulation;\\n cursor: pointer;\\n background-image: none;\\n border: 1px solid transparent;\\n white-space: nowrap;\\n padding: 6px 12px;\\n font-size: 14px;\\n line-height: 1.42857143;\\n border-radius: 4px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.btn:focus,\\n.btn:active:focus,\\n.btn.active:focus,\\n.btn.focus,\\n.btn:active.focus,\\n.btn.active.focus {\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: -2px;\\n}\\n.btn:hover,\\n.btn:focus,\\n.btn.focus {\\n color: #333;\\n text-decoration: none;\\n}\\n.btn:active,\\n.btn.active {\\n outline: 0;\\n background-image: none;\\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\\n}\\n.btn.disabled,\\n.btn[disabled],\\nfieldset[disabled] .btn {\\n cursor: not-allowed;\\n opacity: 0.65;\\n filter: alpha(opacity=65);\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\na.btn.disabled,\\nfieldset[disabled] a.btn {\\n pointer-events: none;\\n}\\n.btn-default {\\n color: #333;\\n background-color: #fff;\\n border-color: #ccc;\\n}\\n.btn-default:focus,\\n.btn-default.focus {\\n color: #333;\\n background-color: #e6e6e6;\\n border-color: #8c8c8c;\\n}\\n.btn-default:hover {\\n color: #333;\\n background-color: #e6e6e6;\\n border-color: #adadad;\\n}\\n.btn-default:active,\\n.btn-default.active,\\n.open > .dropdown-toggle.btn-default {\\n color: #333;\\n background-color: #e6e6e6;\\n border-color: #adadad;\\n}\\n.btn-default:active:hover,\\n.btn-default.active:hover,\\n.open > .dropdown-toggle.btn-default:hover,\\n.btn-default:active:focus,\\n.btn-default.active:focus,\\n.open > .dropdown-toggle.btn-default:focus,\\n.btn-default:active.focus,\\n.btn-default.active.focus,\\n.open > .dropdown-toggle.btn-default.focus {\\n color: #333;\\n background-color: #d4d4d4;\\n border-color: #8c8c8c;\\n}\\n.btn-default:active,\\n.btn-default.active,\\n.open > .dropdown-toggle.btn-default {\\n background-image: none;\\n}\\n.btn-default.disabled:hover,\\n.btn-default[disabled]:hover,\\nfieldset[disabled] .btn-default:hover,\\n.btn-default.disabled:focus,\\n.btn-default[disabled]:focus,\\nfieldset[disabled] .btn-default:focus,\\n.btn-default.disabled.focus,\\n.btn-default[disabled].focus,\\nfieldset[disabled] .btn-default.focus {\\n background-color: #fff;\\n border-color: #ccc;\\n}\\n.btn-default .badge {\\n color: #fff;\\n background-color: #333;\\n}\\n.btn-primary {\\n color: #fff;\\n background-color: #337ab7;\\n border-color: #2e6da4;\\n}\\n.btn-primary:focus,\\n.btn-primary.focus {\\n color: #fff;\\n background-color: #286090;\\n border-color: #122b40;\\n}\\n.btn-primary:hover {\\n color: #fff;\\n background-color: #286090;\\n border-color: #204d74;\\n}\\n.btn-primary:active,\\n.btn-primary.active,\\n.open > .dropdown-toggle.btn-primary {\\n color: #fff;\\n background-color: #286090;\\n border-color: #204d74;\\n}\\n.btn-primary:active:hover,\\n.btn-primary.active:hover,\\n.open > .dropdown-toggle.btn-primary:hover,\\n.btn-primary:active:focus,\\n.btn-primary.active:focus,\\n.open > .dropdown-toggle.btn-primary:focus,\\n.btn-primary:active.focus,\\n.btn-primary.active.focus,\\n.open > .dropdown-toggle.btn-primary.focus {\\n color: #fff;\\n background-color: #204d74;\\n border-color: #122b40;\\n}\\n.btn-primary:active,\\n.btn-primary.active,\\n.open > .dropdown-toggle.btn-primary {\\n background-image: none;\\n}\\n.btn-primary.disabled:hover,\\n.btn-primary[disabled]:hover,\\nfieldset[disabled] .btn-primary:hover,\\n.btn-primary.disabled:focus,\\n.btn-primary[disabled]:focus,\\nfieldset[disabled] .btn-primary:focus,\\n.btn-primary.disabled.focus,\\n.btn-primary[disabled].focus,\\nfieldset[disabled] .btn-primary.focus {\\n background-color: #337ab7;\\n border-color: #2e6da4;\\n}\\n.btn-primary .badge {\\n color: #337ab7;\\n background-color: #fff;\\n}\\n.btn-success {\\n color: #fff;\\n background-color: #5cb85c;\\n border-color: #4cae4c;\\n}\\n.btn-success:focus,\\n.btn-success.focus {\\n color: #fff;\\n background-color: #449d44;\\n border-color: #255625;\\n}\\n.btn-success:hover {\\n color: #fff;\\n background-color: #449d44;\\n border-color: #398439;\\n}\\n.btn-success:active,\\n.btn-success.active,\\n.open > .dropdown-toggle.btn-success {\\n color: #fff;\\n background-color: #449d44;\\n border-color: #398439;\\n}\\n.btn-success:active:hover,\\n.btn-success.active:hover,\\n.open > .dropdown-toggle.btn-success:hover,\\n.btn-success:active:focus,\\n.btn-success.active:focus,\\n.open > .dropdown-toggle.btn-success:focus,\\n.btn-success:active.focus,\\n.btn-success.active.focus,\\n.open > .dropdown-toggle.btn-success.focus {\\n color: #fff;\\n background-color: #398439;\\n border-color: #255625;\\n}\\n.btn-success:active,\\n.btn-success.active,\\n.open > .dropdown-toggle.btn-success {\\n background-image: none;\\n}\\n.btn-success.disabled:hover,\\n.btn-success[disabled]:hover,\\nfieldset[disabled] .btn-success:hover,\\n.btn-success.disabled:focus,\\n.btn-success[disabled]:focus,\\nfieldset[disabled] .btn-success:focus,\\n.btn-success.disabled.focus,\\n.btn-success[disabled].focus,\\nfieldset[disabled] .btn-success.focus {\\n background-color: #5cb85c;\\n border-color: #4cae4c;\\n}\\n.btn-success .badge {\\n color: #5cb85c;\\n background-color: #fff;\\n}\\n.btn-info {\\n color: #fff;\\n background-color: #5bc0de;\\n border-color: #46b8da;\\n}\\n.btn-info:focus,\\n.btn-info.focus {\\n color: #fff;\\n background-color: #31b0d5;\\n border-color: #1b6d85;\\n}\\n.btn-info:hover {\\n color: #fff;\\n background-color: #31b0d5;\\n border-color: #269abc;\\n}\\n.btn-info:active,\\n.btn-info.active,\\n.open > .dropdown-toggle.btn-info {\\n color: #fff;\\n background-color: #31b0d5;\\n border-color: #269abc;\\n}\\n.btn-info:active:hover,\\n.btn-info.active:hover,\\n.open > .dropdown-toggle.btn-info:hover,\\n.btn-info:active:focus,\\n.btn-info.active:focus,\\n.open > .dropdown-toggle.btn-info:focus,\\n.btn-info:active.focus,\\n.btn-info.active.focus,\\n.open > .dropdown-toggle.btn-info.focus {\\n color: #fff;\\n background-color: #269abc;\\n border-color: #1b6d85;\\n}\\n.btn-info:active,\\n.btn-info.active,\\n.open > .dropdown-toggle.btn-info {\\n background-image: none;\\n}\\n.btn-info.disabled:hover,\\n.btn-info[disabled]:hover,\\nfieldset[disabled] .btn-info:hover,\\n.btn-info.disabled:focus,\\n.btn-info[disabled]:focus,\\nfieldset[disabled] .btn-info:focus,\\n.btn-info.disabled.focus,\\n.btn-info[disabled].focus,\\nfieldset[disabled] .btn-info.focus {\\n background-color: #5bc0de;\\n border-color: #46b8da;\\n}\\n.btn-info .badge {\\n color: #5bc0de;\\n background-color: #fff;\\n}\\n.btn-warning {\\n color: #fff;\\n background-color: #f0ad4e;\\n border-color: #eea236;\\n}\\n.btn-warning:focus,\\n.btn-warning.focus {\\n color: #fff;\\n background-color: #ec971f;\\n border-color: #985f0d;\\n}\\n.btn-warning:hover {\\n color: #fff;\\n background-color: #ec971f;\\n border-color: #d58512;\\n}\\n.btn-warning:active,\\n.btn-warning.active,\\n.open > .dropdown-toggle.btn-warning {\\n color: #fff;\\n background-color: #ec971f;\\n border-color: #d58512;\\n}\\n.btn-warning:active:hover,\\n.btn-warning.active:hover,\\n.open > .dropdown-toggle.btn-warning:hover,\\n.btn-warning:active:focus,\\n.btn-warning.active:focus,\\n.open > .dropdown-toggle.btn-warning:focus,\\n.btn-warning:active.focus,\\n.btn-warning.active.focus,\\n.open > .dropdown-toggle.btn-warning.focus {\\n color: #fff;\\n background-color: #d58512;\\n border-color: #985f0d;\\n}\\n.btn-warning:active,\\n.btn-warning.active,\\n.open > .dropdown-toggle.btn-warning {\\n background-image: none;\\n}\\n.btn-warning.disabled:hover,\\n.btn-warning[disabled]:hover,\\nfieldset[disabled] .btn-warning:hover,\\n.btn-warning.disabled:focus,\\n.btn-warning[disabled]:focus,\\nfieldset[disabled] .btn-warning:focus,\\n.btn-warning.disabled.focus,\\n.btn-warning[disabled].focus,\\nfieldset[disabled] .btn-warning.focus {\\n background-color: #f0ad4e;\\n border-color: #eea236;\\n}\\n.btn-warning .badge {\\n color: #f0ad4e;\\n background-color: #fff;\\n}\\n.btn-danger {\\n color: #fff;\\n background-color: #d9534f;\\n border-color: #d43f3a;\\n}\\n.btn-danger:focus,\\n.btn-danger.focus {\\n color: #fff;\\n background-color: #c9302c;\\n border-color: #761c19;\\n}\\n.btn-danger:hover {\\n color: #fff;\\n background-color: #c9302c;\\n border-color: #ac2925;\\n}\\n.btn-danger:active,\\n.btn-danger.active,\\n.open > .dropdown-toggle.btn-danger {\\n color: #fff;\\n background-color: #c9302c;\\n border-color: #ac2925;\\n}\\n.btn-danger:active:hover,\\n.btn-danger.active:hover,\\n.open > .dropdown-toggle.btn-danger:hover,\\n.btn-danger:active:focus,\\n.btn-danger.active:focus,\\n.open > .dropdown-toggle.btn-danger:focus,\\n.btn-danger:active.focus,\\n.btn-danger.active.focus,\\n.open > .dropdown-toggle.btn-danger.focus {\\n color: #fff;\\n background-color: #ac2925;\\n border-color: #761c19;\\n}\\n.btn-danger:active,\\n.btn-danger.active,\\n.open > .dropdown-toggle.btn-danger {\\n background-image: none;\\n}\\n.btn-danger.disabled:hover,\\n.btn-danger[disabled]:hover,\\nfieldset[disabled] .btn-danger:hover,\\n.btn-danger.disabled:focus,\\n.btn-danger[disabled]:focus,\\nfieldset[disabled] .btn-danger:focus,\\n.btn-danger.disabled.focus,\\n.btn-danger[disabled].focus,\\nfieldset[disabled] .btn-danger.focus {\\n background-color: #d9534f;\\n border-color: #d43f3a;\\n}\\n.btn-danger .badge {\\n color: #d9534f;\\n background-color: #fff;\\n}\\n.btn-link {\\n color: #337ab7;\\n font-weight: normal;\\n border-radius: 0;\\n}\\n.btn-link,\\n.btn-link:active,\\n.btn-link.active,\\n.btn-link[disabled],\\nfieldset[disabled] .btn-link {\\n background-color: transparent;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.btn-link,\\n.btn-link:hover,\\n.btn-link:focus,\\n.btn-link:active {\\n border-color: transparent;\\n}\\n.btn-link:hover,\\n.btn-link:focus {\\n color: #23527c;\\n text-decoration: underline;\\n background-color: transparent;\\n}\\n.btn-link[disabled]:hover,\\nfieldset[disabled] .btn-link:hover,\\n.btn-link[disabled]:focus,\\nfieldset[disabled] .btn-link:focus {\\n color: #777777;\\n text-decoration: none;\\n}\\n.btn-lg,\\n.btn-group-lg > .btn {\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\n.btn-sm,\\n.btn-group-sm > .btn {\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\n.btn-xs,\\n.btn-group-xs > .btn {\\n padding: 1px 5px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\n.btn-block {\\n display: block;\\n width: 100%;\\n}\\n.btn-block + .btn-block {\\n margin-top: 5px;\\n}\\ninput[type=\\\"submit\\\"].btn-block,\\ninput[type=\\\"reset\\\"].btn-block,\\ninput[type=\\\"button\\\"].btn-block {\\n width: 100%;\\n}\\n.fade {\\n opacity: 0;\\n -webkit-transition: opacity 0.15s linear;\\n -o-transition: opacity 0.15s linear;\\n transition: opacity 0.15s linear;\\n}\\n.fade.in {\\n opacity: 1;\\n}\\n.collapse {\\n display: none;\\n}\\n.collapse.in {\\n display: block;\\n}\\ntr.collapse.in {\\n display: table-row;\\n}\\ntbody.collapse.in {\\n display: table-row-group;\\n}\\n.collapsing {\\n position: relative;\\n height: 0;\\n overflow: hidden;\\n -webkit-transition-property: height, visibility;\\n transition-property: height, visibility;\\n -webkit-transition-duration: 0.35s;\\n transition-duration: 0.35s;\\n -webkit-transition-timing-function: ease;\\n transition-timing-function: ease;\\n}\\n.caret {\\n display: inline-block;\\n width: 0;\\n height: 0;\\n margin-left: 2px;\\n vertical-align: middle;\\n border-top: 4px dashed;\\n border-top: 4px solid \\\\9;\\n border-right: 4px solid transparent;\\n border-left: 4px solid transparent;\\n}\\n.dropup,\\n.dropdown {\\n position: relative;\\n}\\n.dropdown-toggle:focus {\\n outline: 0;\\n}\\n.dropdown-menu {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 1000;\\n display: none;\\n float: left;\\n min-width: 160px;\\n padding: 5px 0;\\n margin: 2px 0 0;\\n list-style: none;\\n font-size: 14px;\\n text-align: left;\\n background-color: #fff;\\n border: 1px solid #ccc;\\n border: 1px solid rgba(0, 0, 0, 0.15);\\n border-radius: 4px;\\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\\n background-clip: padding-box;\\n}\\n.dropdown-menu.pull-right {\\n right: 0;\\n left: auto;\\n}\\n.dropdown-menu .divider {\\n height: 1px;\\n margin: 9px 0;\\n overflow: hidden;\\n background-color: #e5e5e5;\\n}\\n.dropdown-menu > li > a {\\n display: block;\\n padding: 3px 20px;\\n clear: both;\\n font-weight: normal;\\n line-height: 1.42857143;\\n color: #333333;\\n white-space: nowrap;\\n}\\n.dropdown-menu > li > a:hover,\\n.dropdown-menu > li > a:focus {\\n text-decoration: none;\\n color: #262626;\\n background-color: #f5f5f5;\\n}\\n.dropdown-menu > .active > a,\\n.dropdown-menu > .active > a:hover,\\n.dropdown-menu > .active > a:focus {\\n color: #fff;\\n text-decoration: none;\\n outline: 0;\\n background-color: #337ab7;\\n}\\n.dropdown-menu > .disabled > a,\\n.dropdown-menu > .disabled > a:hover,\\n.dropdown-menu > .disabled > a:focus {\\n color: #777777;\\n}\\n.dropdown-menu > .disabled > a:hover,\\n.dropdown-menu > .disabled > a:focus {\\n text-decoration: none;\\n background-color: transparent;\\n background-image: none;\\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\\n cursor: not-allowed;\\n}\\n.open > .dropdown-menu {\\n display: block;\\n}\\n.open > a {\\n outline: 0;\\n}\\n.dropdown-menu-right {\\n left: auto;\\n right: 0;\\n}\\n.dropdown-menu-left {\\n left: 0;\\n right: auto;\\n}\\n.dropdown-header {\\n display: block;\\n padding: 3px 20px;\\n font-size: 12px;\\n line-height: 1.42857143;\\n color: #777777;\\n white-space: nowrap;\\n}\\n.dropdown-backdrop {\\n position: fixed;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n top: 0;\\n z-index: 990;\\n}\\n.pull-right > .dropdown-menu {\\n right: 0;\\n left: auto;\\n}\\n.dropup .caret,\\n.navbar-fixed-bottom .dropdown .caret {\\n border-top: 0;\\n border-bottom: 4px dashed;\\n border-bottom: 4px solid \\\\9;\\n content: \\\"\\\";\\n}\\n.dropup .dropdown-menu,\\n.navbar-fixed-bottom .dropdown .dropdown-menu {\\n top: auto;\\n bottom: 100%;\\n margin-bottom: 2px;\\n}\\n@media (min-width: 768px) {\\n .navbar-right .dropdown-menu {\\n left: auto;\\n right: 0;\\n }\\n .navbar-right .dropdown-menu-left {\\n left: 0;\\n right: auto;\\n }\\n}\\n.btn-group,\\n.btn-group-vertical {\\n position: relative;\\n display: inline-block;\\n vertical-align: middle;\\n}\\n.btn-group > .btn,\\n.btn-group-vertical > .btn {\\n position: relative;\\n float: left;\\n}\\n.btn-group > .btn:hover,\\n.btn-group-vertical > .btn:hover,\\n.btn-group > .btn:focus,\\n.btn-group-vertical > .btn:focus,\\n.btn-group > .btn:active,\\n.btn-group-vertical > .btn:active,\\n.btn-group > .btn.active,\\n.btn-group-vertical > .btn.active {\\n z-index: 2;\\n}\\n.btn-group .btn + .btn,\\n.btn-group .btn + .btn-group,\\n.btn-group .btn-group + .btn,\\n.btn-group .btn-group + .btn-group {\\n margin-left: -1px;\\n}\\n.btn-toolbar {\\n margin-left: -5px;\\n}\\n.btn-toolbar .btn,\\n.btn-toolbar .btn-group,\\n.btn-toolbar .input-group {\\n float: left;\\n}\\n.btn-toolbar > .btn,\\n.btn-toolbar > .btn-group,\\n.btn-toolbar > .input-group {\\n margin-left: 5px;\\n}\\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\\n border-radius: 0;\\n}\\n.btn-group > .btn:first-child {\\n margin-left: 0;\\n}\\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\\n border-bottom-right-radius: 0;\\n border-top-right-radius: 0;\\n}\\n.btn-group > .btn:last-child:not(:first-child),\\n.btn-group > .dropdown-toggle:not(:first-child) {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n}\\n.btn-group > .btn-group {\\n float: left;\\n}\\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\\n border-radius: 0;\\n}\\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\\n border-bottom-right-radius: 0;\\n border-top-right-radius: 0;\\n}\\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n}\\n.btn-group .dropdown-toggle:active,\\n.btn-group.open .dropdown-toggle {\\n outline: 0;\\n}\\n.btn-group > .btn + .dropdown-toggle {\\n padding-left: 8px;\\n padding-right: 8px;\\n}\\n.btn-group > .btn-lg + .dropdown-toggle {\\n padding-left: 12px;\\n padding-right: 12px;\\n}\\n.btn-group.open .dropdown-toggle {\\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\\n}\\n.btn-group.open .dropdown-toggle.btn-link {\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.btn .caret {\\n margin-left: 0;\\n}\\n.btn-lg .caret {\\n border-width: 5px 5px 0;\\n border-bottom-width: 0;\\n}\\n.dropup .btn-lg .caret {\\n border-width: 0 5px 5px;\\n}\\n.btn-group-vertical > .btn,\\n.btn-group-vertical > .btn-group,\\n.btn-group-vertical > .btn-group > .btn {\\n display: block;\\n float: none;\\n width: 100%;\\n max-width: 100%;\\n}\\n.btn-group-vertical > .btn-group > .btn {\\n float: none;\\n}\\n.btn-group-vertical > .btn + .btn,\\n.btn-group-vertical > .btn + .btn-group,\\n.btn-group-vertical > .btn-group + .btn,\\n.btn-group-vertical > .btn-group + .btn-group {\\n margin-top: -1px;\\n margin-left: 0;\\n}\\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\\n border-radius: 0;\\n}\\n.btn-group-vertical > .btn:first-child:not(:last-child) {\\n border-top-right-radius: 4px;\\n border-top-left-radius: 4px;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.btn-group-vertical > .btn:last-child:not(:first-child) {\\n border-top-right-radius: 0;\\n border-top-left-radius: 0;\\n border-bottom-right-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\\n border-radius: 0;\\n}\\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\\n border-top-right-radius: 0;\\n border-top-left-radius: 0;\\n}\\n.btn-group-justified {\\n display: table;\\n width: 100%;\\n table-layout: fixed;\\n border-collapse: separate;\\n}\\n.btn-group-justified > .btn,\\n.btn-group-justified > .btn-group {\\n float: none;\\n display: table-cell;\\n width: 1%;\\n}\\n.btn-group-justified > .btn-group .btn {\\n width: 100%;\\n}\\n.btn-group-justified > .btn-group .dropdown-menu {\\n left: auto;\\n}\\n[data-toggle=\\\"buttons\\\"] > .btn input[type=\\\"radio\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn-group > .btn input[type=\\\"radio\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn input[type=\\\"checkbox\\\"],\\n[data-toggle=\\\"buttons\\\"] > .btn-group > .btn input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n clip: rect(0, 0, 0, 0);\\n pointer-events: none;\\n}\\n.input-group {\\n position: relative;\\n display: table;\\n border-collapse: separate;\\n}\\n.input-group[class*=\\\"col-\\\"] {\\n float: none;\\n padding-left: 0;\\n padding-right: 0;\\n}\\n.input-group .form-control {\\n position: relative;\\n z-index: 2;\\n float: left;\\n width: 100%;\\n margin-bottom: 0;\\n}\\n.input-group .form-control:focus {\\n z-index: 3;\\n}\\n.input-group-lg > .form-control,\\n.input-group-lg > .input-group-addon,\\n.input-group-lg > .input-group-btn > .btn {\\n height: 46px;\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n border-radius: 6px;\\n}\\nselect.input-group-lg > .form-control,\\nselect.input-group-lg > .input-group-addon,\\nselect.input-group-lg > .input-group-btn > .btn {\\n height: 46px;\\n line-height: 46px;\\n}\\ntextarea.input-group-lg > .form-control,\\ntextarea.input-group-lg > .input-group-addon,\\ntextarea.input-group-lg > .input-group-btn > .btn,\\nselect[multiple].input-group-lg > .form-control,\\nselect[multiple].input-group-lg > .input-group-addon,\\nselect[multiple].input-group-lg > .input-group-btn > .btn {\\n height: auto;\\n}\\n.input-group-sm > .form-control,\\n.input-group-sm > .input-group-addon,\\n.input-group-sm > .input-group-btn > .btn {\\n height: 30px;\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n border-radius: 3px;\\n}\\nselect.input-group-sm > .form-control,\\nselect.input-group-sm > .input-group-addon,\\nselect.input-group-sm > .input-group-btn > .btn {\\n height: 30px;\\n line-height: 30px;\\n}\\ntextarea.input-group-sm > .form-control,\\ntextarea.input-group-sm > .input-group-addon,\\ntextarea.input-group-sm > .input-group-btn > .btn,\\nselect[multiple].input-group-sm > .form-control,\\nselect[multiple].input-group-sm > .input-group-addon,\\nselect[multiple].input-group-sm > .input-group-btn > .btn {\\n height: auto;\\n}\\n.input-group-addon,\\n.input-group-btn,\\n.input-group .form-control {\\n display: table-cell;\\n}\\n.input-group-addon:not(:first-child):not(:last-child),\\n.input-group-btn:not(:first-child):not(:last-child),\\n.input-group .form-control:not(:first-child):not(:last-child) {\\n border-radius: 0;\\n}\\n.input-group-addon,\\n.input-group-btn {\\n width: 1%;\\n white-space: nowrap;\\n vertical-align: middle;\\n}\\n.input-group-addon {\\n padding: 6px 12px;\\n font-size: 14px;\\n font-weight: normal;\\n line-height: 1;\\n color: #555555;\\n text-align: center;\\n background-color: #eeeeee;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n}\\n.input-group-addon.input-sm {\\n padding: 5px 10px;\\n font-size: 12px;\\n border-radius: 3px;\\n}\\n.input-group-addon.input-lg {\\n padding: 10px 16px;\\n font-size: 18px;\\n border-radius: 6px;\\n}\\n.input-group-addon input[type=\\\"radio\\\"],\\n.input-group-addon input[type=\\\"checkbox\\\"] {\\n margin-top: 0;\\n}\\n.input-group .form-control:first-child,\\n.input-group-addon:first-child,\\n.input-group-btn:first-child > .btn,\\n.input-group-btn:first-child > .btn-group > .btn,\\n.input-group-btn:first-child > .dropdown-toggle,\\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\\n border-bottom-right-radius: 0;\\n border-top-right-radius: 0;\\n}\\n.input-group-addon:first-child {\\n border-right: 0;\\n}\\n.input-group .form-control:last-child,\\n.input-group-addon:last-child,\\n.input-group-btn:last-child > .btn,\\n.input-group-btn:last-child > .btn-group > .btn,\\n.input-group-btn:last-child > .dropdown-toggle,\\n.input-group-btn:first-child > .btn:not(:first-child),\\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n}\\n.input-group-addon:last-child {\\n border-left: 0;\\n}\\n.input-group-btn {\\n position: relative;\\n font-size: 0;\\n white-space: nowrap;\\n}\\n.input-group-btn > .btn {\\n position: relative;\\n}\\n.input-group-btn > .btn + .btn {\\n margin-left: -1px;\\n}\\n.input-group-btn > .btn:hover,\\n.input-group-btn > .btn:focus,\\n.input-group-btn > .btn:active {\\n z-index: 2;\\n}\\n.input-group-btn:first-child > .btn,\\n.input-group-btn:first-child > .btn-group {\\n margin-right: -1px;\\n}\\n.input-group-btn:last-child > .btn,\\n.input-group-btn:last-child > .btn-group {\\n z-index: 2;\\n margin-left: -1px;\\n}\\n.nav {\\n margin-bottom: 0;\\n padding-left: 0;\\n list-style: none;\\n}\\n.nav > li {\\n position: relative;\\n display: block;\\n}\\n.nav > li > a {\\n position: relative;\\n display: block;\\n padding: 10px 15px;\\n}\\n.nav > li > a:hover,\\n.nav > li > a:focus {\\n text-decoration: none;\\n background-color: #eeeeee;\\n}\\n.nav > li.disabled > a {\\n color: #777777;\\n}\\n.nav > li.disabled > a:hover,\\n.nav > li.disabled > a:focus {\\n color: #777777;\\n text-decoration: none;\\n background-color: transparent;\\n cursor: not-allowed;\\n}\\n.nav .open > a,\\n.nav .open > a:hover,\\n.nav .open > a:focus {\\n background-color: #eeeeee;\\n border-color: #337ab7;\\n}\\n.nav .nav-divider {\\n height: 1px;\\n margin: 9px 0;\\n overflow: hidden;\\n background-color: #e5e5e5;\\n}\\n.nav > li > a > img {\\n max-width: none;\\n}\\n.nav-tabs {\\n border-bottom: 1px solid #ddd;\\n}\\n.nav-tabs > li {\\n float: left;\\n margin-bottom: -1px;\\n}\\n.nav-tabs > li > a {\\n margin-right: 2px;\\n line-height: 1.42857143;\\n border: 1px solid transparent;\\n border-radius: 4px 4px 0 0;\\n}\\n.nav-tabs > li > a:hover {\\n border-color: #eeeeee #eeeeee #ddd;\\n}\\n.nav-tabs > li.active > a,\\n.nav-tabs > li.active > a:hover,\\n.nav-tabs > li.active > a:focus {\\n color: #555555;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-bottom-color: transparent;\\n cursor: default;\\n}\\n.nav-tabs.nav-justified {\\n width: 100%;\\n border-bottom: 0;\\n}\\n.nav-tabs.nav-justified > li {\\n float: none;\\n}\\n.nav-tabs.nav-justified > li > a {\\n text-align: center;\\n margin-bottom: 5px;\\n}\\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\\n top: auto;\\n left: auto;\\n}\\n@media (min-width: 768px) {\\n .nav-tabs.nav-justified > li {\\n display: table-cell;\\n width: 1%;\\n }\\n .nav-tabs.nav-justified > li > a {\\n margin-bottom: 0;\\n }\\n}\\n.nav-tabs.nav-justified > li > a {\\n margin-right: 0;\\n border-radius: 4px;\\n}\\n.nav-tabs.nav-justified > .active > a,\\n.nav-tabs.nav-justified > .active > a:hover,\\n.nav-tabs.nav-justified > .active > a:focus {\\n border: 1px solid #ddd;\\n}\\n@media (min-width: 768px) {\\n .nav-tabs.nav-justified > li > a {\\n border-bottom: 1px solid #ddd;\\n border-radius: 4px 4px 0 0;\\n }\\n .nav-tabs.nav-justified > .active > a,\\n .nav-tabs.nav-justified > .active > a:hover,\\n .nav-tabs.nav-justified > .active > a:focus {\\n border-bottom-color: #fff;\\n }\\n}\\n.nav-pills > li {\\n float: left;\\n}\\n.nav-pills > li > a {\\n border-radius: 4px;\\n}\\n.nav-pills > li + li {\\n margin-left: 2px;\\n}\\n.nav-pills > li.active > a,\\n.nav-pills > li.active > a:hover,\\n.nav-pills > li.active > a:focus {\\n color: #fff;\\n background-color: #337ab7;\\n}\\n.nav-stacked > li {\\n float: none;\\n}\\n.nav-stacked > li + li {\\n margin-top: 2px;\\n margin-left: 0;\\n}\\n.nav-justified {\\n width: 100%;\\n}\\n.nav-justified > li {\\n float: none;\\n}\\n.nav-justified > li > a {\\n text-align: center;\\n margin-bottom: 5px;\\n}\\n.nav-justified > .dropdown .dropdown-menu {\\n top: auto;\\n left: auto;\\n}\\n@media (min-width: 768px) {\\n .nav-justified > li {\\n display: table-cell;\\n width: 1%;\\n }\\n .nav-justified > li > a {\\n margin-bottom: 0;\\n }\\n}\\n.nav-tabs-justified {\\n border-bottom: 0;\\n}\\n.nav-tabs-justified > li > a {\\n margin-right: 0;\\n border-radius: 4px;\\n}\\n.nav-tabs-justified > .active > a,\\n.nav-tabs-justified > .active > a:hover,\\n.nav-tabs-justified > .active > a:focus {\\n border: 1px solid #ddd;\\n}\\n@media (min-width: 768px) {\\n .nav-tabs-justified > li > a {\\n border-bottom: 1px solid #ddd;\\n border-radius: 4px 4px 0 0;\\n }\\n .nav-tabs-justified > .active > a,\\n .nav-tabs-justified > .active > a:hover,\\n .nav-tabs-justified > .active > a:focus {\\n border-bottom-color: #fff;\\n }\\n}\\n.tab-content > .tab-pane {\\n display: none;\\n}\\n.tab-content > .active {\\n display: block;\\n}\\n.nav-tabs .dropdown-menu {\\n margin-top: -1px;\\n border-top-right-radius: 0;\\n border-top-left-radius: 0;\\n}\\n.navbar {\\n position: relative;\\n min-height: 50px;\\n margin-bottom: 20px;\\n border: 1px solid transparent;\\n}\\n@media (min-width: 768px) {\\n .navbar {\\n border-radius: 4px;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-header {\\n float: left;\\n }\\n}\\n.navbar-collapse {\\n overflow-x: visible;\\n padding-right: 15px;\\n padding-left: 15px;\\n border-top: 1px solid transparent;\\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\\n -webkit-overflow-scrolling: touch;\\n}\\n.navbar-collapse.in {\\n overflow-y: auto;\\n}\\n@media (min-width: 768px) {\\n .navbar-collapse {\\n width: auto;\\n border-top: 0;\\n box-shadow: none;\\n }\\n .navbar-collapse.collapse {\\n display: block !important;\\n height: auto !important;\\n padding-bottom: 0;\\n overflow: visible !important;\\n }\\n .navbar-collapse.in {\\n overflow-y: visible;\\n }\\n .navbar-fixed-top .navbar-collapse,\\n .navbar-static-top .navbar-collapse,\\n .navbar-fixed-bottom .navbar-collapse {\\n padding-left: 0;\\n padding-right: 0;\\n }\\n}\\n.navbar-fixed-top .navbar-collapse,\\n.navbar-fixed-bottom .navbar-collapse {\\n max-height: 340px;\\n}\\n@media (max-device-width: 480px) and (orientation: landscape) {\\n .navbar-fixed-top .navbar-collapse,\\n .navbar-fixed-bottom .navbar-collapse {\\n max-height: 200px;\\n }\\n}\\n.container > .navbar-header,\\n.container-fluid > .navbar-header,\\n.container > .navbar-collapse,\\n.container-fluid > .navbar-collapse {\\n margin-right: -15px;\\n margin-left: -15px;\\n}\\n@media (min-width: 768px) {\\n .container > .navbar-header,\\n .container-fluid > .navbar-header,\\n .container > .navbar-collapse,\\n .container-fluid > .navbar-collapse {\\n margin-right: 0;\\n margin-left: 0;\\n }\\n}\\n.navbar-static-top {\\n z-index: 1000;\\n border-width: 0 0 1px;\\n}\\n@media (min-width: 768px) {\\n .navbar-static-top {\\n border-radius: 0;\\n }\\n}\\n.navbar-fixed-top,\\n.navbar-fixed-bottom {\\n position: fixed;\\n right: 0;\\n left: 0;\\n z-index: 1030;\\n}\\n@media (min-width: 768px) {\\n .navbar-fixed-top,\\n .navbar-fixed-bottom {\\n border-radius: 0;\\n }\\n}\\n.navbar-fixed-top {\\n top: 0;\\n border-width: 0 0 1px;\\n}\\n.navbar-fixed-bottom {\\n bottom: 0;\\n margin-bottom: 0;\\n border-width: 1px 0 0;\\n}\\n.navbar-brand {\\n float: left;\\n padding: 15px 15px;\\n font-size: 18px;\\n line-height: 20px;\\n height: 50px;\\n}\\n.navbar-brand:hover,\\n.navbar-brand:focus {\\n text-decoration: none;\\n}\\n.navbar-brand > img {\\n display: block;\\n}\\n@media (min-width: 768px) {\\n .navbar > .container .navbar-brand,\\n .navbar > .container-fluid .navbar-brand {\\n margin-left: -15px;\\n }\\n}\\n.navbar-toggle {\\n position: relative;\\n float: right;\\n margin-right: 15px;\\n padding: 9px 10px;\\n margin-top: 8px;\\n margin-bottom: 8px;\\n background-color: transparent;\\n background-image: none;\\n border: 1px solid transparent;\\n border-radius: 4px;\\n}\\n.navbar-toggle:focus {\\n outline: 0;\\n}\\n.navbar-toggle .icon-bar {\\n display: block;\\n width: 22px;\\n height: 2px;\\n border-radius: 1px;\\n}\\n.navbar-toggle .icon-bar + .icon-bar {\\n margin-top: 4px;\\n}\\n@media (min-width: 768px) {\\n .navbar-toggle {\\n display: none;\\n }\\n}\\n.navbar-nav {\\n margin: 7.5px -15px;\\n}\\n.navbar-nav > li > a {\\n padding-top: 10px;\\n padding-bottom: 10px;\\n line-height: 20px;\\n}\\n@media (max-width: 767px) {\\n .navbar-nav .open .dropdown-menu {\\n position: static;\\n float: none;\\n width: auto;\\n margin-top: 0;\\n background-color: transparent;\\n border: 0;\\n box-shadow: none;\\n }\\n .navbar-nav .open .dropdown-menu > li > a,\\n .navbar-nav .open .dropdown-menu .dropdown-header {\\n padding: 5px 15px 5px 25px;\\n }\\n .navbar-nav .open .dropdown-menu > li > a {\\n line-height: 20px;\\n }\\n .navbar-nav .open .dropdown-menu > li > a:hover,\\n .navbar-nav .open .dropdown-menu > li > a:focus {\\n background-image: none;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-nav {\\n float: left;\\n margin: 0;\\n }\\n .navbar-nav > li {\\n float: left;\\n }\\n .navbar-nav > li > a {\\n padding-top: 15px;\\n padding-bottom: 15px;\\n }\\n}\\n.navbar-form {\\n margin-left: -15px;\\n margin-right: -15px;\\n padding: 10px 15px;\\n border-top: 1px solid transparent;\\n border-bottom: 1px solid transparent;\\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\\n margin-top: 8px;\\n margin-bottom: 8px;\\n}\\n@media (min-width: 768px) {\\n .navbar-form .form-group {\\n display: inline-block;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .navbar-form .form-control {\\n display: inline-block;\\n width: auto;\\n vertical-align: middle;\\n }\\n .navbar-form .form-control-static {\\n display: inline-block;\\n }\\n .navbar-form .input-group {\\n display: inline-table;\\n vertical-align: middle;\\n }\\n .navbar-form .input-group .input-group-addon,\\n .navbar-form .input-group .input-group-btn,\\n .navbar-form .input-group .form-control {\\n width: auto;\\n }\\n .navbar-form .input-group > .form-control {\\n width: 100%;\\n }\\n .navbar-form .control-label {\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .navbar-form .radio,\\n .navbar-form .checkbox {\\n display: inline-block;\\n margin-top: 0;\\n margin-bottom: 0;\\n vertical-align: middle;\\n }\\n .navbar-form .radio label,\\n .navbar-form .checkbox label {\\n padding-left: 0;\\n }\\n .navbar-form .radio input[type=\\\"radio\\\"],\\n .navbar-form .checkbox input[type=\\\"checkbox\\\"] {\\n position: relative;\\n margin-left: 0;\\n }\\n .navbar-form .has-feedback .form-control-feedback {\\n top: 0;\\n }\\n}\\n@media (max-width: 767px) {\\n .navbar-form .form-group {\\n margin-bottom: 5px;\\n }\\n .navbar-form .form-group:last-child {\\n margin-bottom: 0;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-form {\\n width: auto;\\n border: 0;\\n margin-left: 0;\\n margin-right: 0;\\n padding-top: 0;\\n padding-bottom: 0;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n }\\n}\\n.navbar-nav > li > .dropdown-menu {\\n margin-top: 0;\\n border-top-right-radius: 0;\\n border-top-left-radius: 0;\\n}\\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\\n margin-bottom: 0;\\n border-top-right-radius: 4px;\\n border-top-left-radius: 4px;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.navbar-btn {\\n margin-top: 8px;\\n margin-bottom: 8px;\\n}\\n.navbar-btn.btn-sm {\\n margin-top: 10px;\\n margin-bottom: 10px;\\n}\\n.navbar-btn.btn-xs {\\n margin-top: 14px;\\n margin-bottom: 14px;\\n}\\n.navbar-text {\\n margin-top: 15px;\\n margin-bottom: 15px;\\n}\\n@media (min-width: 768px) {\\n .navbar-text {\\n float: left;\\n margin-left: 15px;\\n margin-right: 15px;\\n }\\n}\\n@media (min-width: 768px) {\\n .navbar-left {\\n float: left !important;\\n }\\n .navbar-right {\\n float: right !important;\\n margin-right: -15px;\\n }\\n .navbar-right ~ .navbar-right {\\n margin-right: 0;\\n }\\n}\\n.navbar-default {\\n background-color: #f8f8f8;\\n border-color: #e7e7e7;\\n}\\n.navbar-default .navbar-brand {\\n color: #777;\\n}\\n.navbar-default .navbar-brand:hover,\\n.navbar-default .navbar-brand:focus {\\n color: #5e5e5e;\\n background-color: transparent;\\n}\\n.navbar-default .navbar-text {\\n color: #777;\\n}\\n.navbar-default .navbar-nav > li > a {\\n color: #777;\\n}\\n.navbar-default .navbar-nav > li > a:hover,\\n.navbar-default .navbar-nav > li > a:focus {\\n color: #333;\\n background-color: transparent;\\n}\\n.navbar-default .navbar-nav > .active > a,\\n.navbar-default .navbar-nav > .active > a:hover,\\n.navbar-default .navbar-nav > .active > a:focus {\\n color: #555;\\n background-color: #e7e7e7;\\n}\\n.navbar-default .navbar-nav > .disabled > a,\\n.navbar-default .navbar-nav > .disabled > a:hover,\\n.navbar-default .navbar-nav > .disabled > a:focus {\\n color: #ccc;\\n background-color: transparent;\\n}\\n.navbar-default .navbar-toggle {\\n border-color: #ddd;\\n}\\n.navbar-default .navbar-toggle:hover,\\n.navbar-default .navbar-toggle:focus {\\n background-color: #ddd;\\n}\\n.navbar-default .navbar-toggle .icon-bar {\\n background-color: #888;\\n}\\n.navbar-default .navbar-collapse,\\n.navbar-default .navbar-form {\\n border-color: #e7e7e7;\\n}\\n.navbar-default .navbar-nav > .open > a,\\n.navbar-default .navbar-nav > .open > a:hover,\\n.navbar-default .navbar-nav > .open > a:focus {\\n background-color: #e7e7e7;\\n color: #555;\\n}\\n@media (max-width: 767px) {\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\\n color: #777;\\n }\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\\n color: #333;\\n background-color: transparent;\\n }\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\\n color: #555;\\n background-color: #e7e7e7;\\n }\\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\\n color: #ccc;\\n background-color: transparent;\\n }\\n}\\n.navbar-default .navbar-link {\\n color: #777;\\n}\\n.navbar-default .navbar-link:hover {\\n color: #333;\\n}\\n.navbar-default .btn-link {\\n color: #777;\\n}\\n.navbar-default .btn-link:hover,\\n.navbar-default .btn-link:focus {\\n color: #333;\\n}\\n.navbar-default .btn-link[disabled]:hover,\\nfieldset[disabled] .navbar-default .btn-link:hover,\\n.navbar-default .btn-link[disabled]:focus,\\nfieldset[disabled] .navbar-default .btn-link:focus {\\n color: #ccc;\\n}\\n.navbar-inverse {\\n background-color: #222;\\n border-color: #080808;\\n}\\n.navbar-inverse .navbar-brand {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-brand:hover,\\n.navbar-inverse .navbar-brand:focus {\\n color: #fff;\\n background-color: transparent;\\n}\\n.navbar-inverse .navbar-text {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-nav > li > a {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-nav > li > a:hover,\\n.navbar-inverse .navbar-nav > li > a:focus {\\n color: #fff;\\n background-color: transparent;\\n}\\n.navbar-inverse .navbar-nav > .active > a,\\n.navbar-inverse .navbar-nav > .active > a:hover,\\n.navbar-inverse .navbar-nav > .active > a:focus {\\n color: #fff;\\n background-color: #080808;\\n}\\n.navbar-inverse .navbar-nav > .disabled > a,\\n.navbar-inverse .navbar-nav > .disabled > a:hover,\\n.navbar-inverse .navbar-nav > .disabled > a:focus {\\n color: #444;\\n background-color: transparent;\\n}\\n.navbar-inverse .navbar-toggle {\\n border-color: #333;\\n}\\n.navbar-inverse .navbar-toggle:hover,\\n.navbar-inverse .navbar-toggle:focus {\\n background-color: #333;\\n}\\n.navbar-inverse .navbar-toggle .icon-bar {\\n background-color: #fff;\\n}\\n.navbar-inverse .navbar-collapse,\\n.navbar-inverse .navbar-form {\\n border-color: #101010;\\n}\\n.navbar-inverse .navbar-nav > .open > a,\\n.navbar-inverse .navbar-nav > .open > a:hover,\\n.navbar-inverse .navbar-nav > .open > a:focus {\\n background-color: #080808;\\n color: #fff;\\n}\\n@media (max-width: 767px) {\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\\n border-color: #080808;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\\n background-color: #080808;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\\n color: #9d9d9d;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\\n color: #fff;\\n background-color: transparent;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\\n color: #fff;\\n background-color: #080808;\\n }\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\\n color: #444;\\n background-color: transparent;\\n }\\n}\\n.navbar-inverse .navbar-link {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .navbar-link:hover {\\n color: #fff;\\n}\\n.navbar-inverse .btn-link {\\n color: #9d9d9d;\\n}\\n.navbar-inverse .btn-link:hover,\\n.navbar-inverse .btn-link:focus {\\n color: #fff;\\n}\\n.navbar-inverse .btn-link[disabled]:hover,\\nfieldset[disabled] .navbar-inverse .btn-link:hover,\\n.navbar-inverse .btn-link[disabled]:focus,\\nfieldset[disabled] .navbar-inverse .btn-link:focus {\\n color: #444;\\n}\\n.breadcrumb {\\n padding: 8px 15px;\\n margin-bottom: 20px;\\n list-style: none;\\n background-color: #f5f5f5;\\n border-radius: 4px;\\n}\\n.breadcrumb > li {\\n display: inline-block;\\n}\\n.breadcrumb > li + li:before {\\n content: \\\"/\\\\A0\\\";\\n padding: 0 5px;\\n color: #ccc;\\n}\\n.breadcrumb > .active {\\n color: #777777;\\n}\\n.pagination {\\n display: inline-block;\\n padding-left: 0;\\n margin: 20px 0;\\n border-radius: 4px;\\n}\\n.pagination > li {\\n display: inline;\\n}\\n.pagination > li > a,\\n.pagination > li > span {\\n position: relative;\\n float: left;\\n padding: 6px 12px;\\n line-height: 1.42857143;\\n text-decoration: none;\\n color: #337ab7;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n margin-left: -1px;\\n}\\n.pagination > li:first-child > a,\\n.pagination > li:first-child > span {\\n margin-left: 0;\\n border-bottom-left-radius: 4px;\\n border-top-left-radius: 4px;\\n}\\n.pagination > li:last-child > a,\\n.pagination > li:last-child > span {\\n border-bottom-right-radius: 4px;\\n border-top-right-radius: 4px;\\n}\\n.pagination > li > a:hover,\\n.pagination > li > span:hover,\\n.pagination > li > a:focus,\\n.pagination > li > span:focus {\\n z-index: 2;\\n color: #23527c;\\n background-color: #eeeeee;\\n border-color: #ddd;\\n}\\n.pagination > .active > a,\\n.pagination > .active > span,\\n.pagination > .active > a:hover,\\n.pagination > .active > span:hover,\\n.pagination > .active > a:focus,\\n.pagination > .active > span:focus {\\n z-index: 3;\\n color: #fff;\\n background-color: #337ab7;\\n border-color: #337ab7;\\n cursor: default;\\n}\\n.pagination > .disabled > span,\\n.pagination > .disabled > span:hover,\\n.pagination > .disabled > span:focus,\\n.pagination > .disabled > a,\\n.pagination > .disabled > a:hover,\\n.pagination > .disabled > a:focus {\\n color: #777777;\\n background-color: #fff;\\n border-color: #ddd;\\n cursor: not-allowed;\\n}\\n.pagination-lg > li > a,\\n.pagination-lg > li > span {\\n padding: 10px 16px;\\n font-size: 18px;\\n line-height: 1.3333333;\\n}\\n.pagination-lg > li:first-child > a,\\n.pagination-lg > li:first-child > span {\\n border-bottom-left-radius: 6px;\\n border-top-left-radius: 6px;\\n}\\n.pagination-lg > li:last-child > a,\\n.pagination-lg > li:last-child > span {\\n border-bottom-right-radius: 6px;\\n border-top-right-radius: 6px;\\n}\\n.pagination-sm > li > a,\\n.pagination-sm > li > span {\\n padding: 5px 10px;\\n font-size: 12px;\\n line-height: 1.5;\\n}\\n.pagination-sm > li:first-child > a,\\n.pagination-sm > li:first-child > span {\\n border-bottom-left-radius: 3px;\\n border-top-left-radius: 3px;\\n}\\n.pagination-sm > li:last-child > a,\\n.pagination-sm > li:last-child > span {\\n border-bottom-right-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.pager {\\n padding-left: 0;\\n margin: 20px 0;\\n list-style: none;\\n text-align: center;\\n}\\n.pager li {\\n display: inline;\\n}\\n.pager li > a,\\n.pager li > span {\\n display: inline-block;\\n padding: 5px 14px;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-radius: 15px;\\n}\\n.pager li > a:hover,\\n.pager li > a:focus {\\n text-decoration: none;\\n background-color: #eeeeee;\\n}\\n.pager .next > a,\\n.pager .next > span {\\n float: right;\\n}\\n.pager .previous > a,\\n.pager .previous > span {\\n float: left;\\n}\\n.pager .disabled > a,\\n.pager .disabled > a:hover,\\n.pager .disabled > a:focus,\\n.pager .disabled > span {\\n color: #777777;\\n background-color: #fff;\\n cursor: not-allowed;\\n}\\n.label {\\n display: inline;\\n padding: 0.2em 0.6em 0.3em;\\n font-size: 75%;\\n font-weight: bold;\\n line-height: 1;\\n color: #fff;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: baseline;\\n border-radius: 0.25em;\\n}\\na.label:hover,\\na.label:focus {\\n color: #fff;\\n text-decoration: none;\\n cursor: pointer;\\n}\\n.label:empty {\\n display: none;\\n}\\n.btn .label {\\n position: relative;\\n top: -1px;\\n}\\n.label-default {\\n background-color: #777777;\\n}\\n.label-default[href]:hover,\\n.label-default[href]:focus {\\n background-color: #5e5e5e;\\n}\\n.label-primary {\\n background-color: #337ab7;\\n}\\n.label-primary[href]:hover,\\n.label-primary[href]:focus {\\n background-color: #286090;\\n}\\n.label-success {\\n background-color: #5cb85c;\\n}\\n.label-success[href]:hover,\\n.label-success[href]:focus {\\n background-color: #449d44;\\n}\\n.label-info {\\n background-color: #5bc0de;\\n}\\n.label-info[href]:hover,\\n.label-info[href]:focus {\\n background-color: #31b0d5;\\n}\\n.label-warning {\\n background-color: #f0ad4e;\\n}\\n.label-warning[href]:hover,\\n.label-warning[href]:focus {\\n background-color: #ec971f;\\n}\\n.label-danger {\\n background-color: #d9534f;\\n}\\n.label-danger[href]:hover,\\n.label-danger[href]:focus {\\n background-color: #c9302c;\\n}\\n.badge {\\n display: inline-block;\\n min-width: 10px;\\n padding: 3px 7px;\\n font-size: 12px;\\n font-weight: bold;\\n color: #fff;\\n line-height: 1;\\n vertical-align: middle;\\n white-space: nowrap;\\n text-align: center;\\n background-color: #777777;\\n border-radius: 10px;\\n}\\n.badge:empty {\\n display: none;\\n}\\n.btn .badge {\\n position: relative;\\n top: -1px;\\n}\\n.btn-xs .badge,\\n.btn-group-xs > .btn .badge {\\n top: 0;\\n padding: 1px 5px;\\n}\\na.badge:hover,\\na.badge:focus {\\n color: #fff;\\n text-decoration: none;\\n cursor: pointer;\\n}\\n.list-group-item.active > .badge,\\n.nav-pills > .active > a > .badge {\\n color: #337ab7;\\n background-color: #fff;\\n}\\n.list-group-item > .badge {\\n float: right;\\n}\\n.list-group-item > .badge + .badge {\\n margin-right: 5px;\\n}\\n.nav-pills > li > a > .badge {\\n margin-left: 3px;\\n}\\n.jumbotron {\\n padding-top: 30px;\\n padding-bottom: 30px;\\n margin-bottom: 30px;\\n color: inherit;\\n background-color: #eeeeee;\\n}\\n.jumbotron h1,\\n.jumbotron .h1 {\\n color: inherit;\\n}\\n.jumbotron p {\\n margin-bottom: 15px;\\n font-size: 21px;\\n font-weight: 200;\\n}\\n.jumbotron > hr {\\n border-top-color: #d5d5d5;\\n}\\n.container .jumbotron,\\n.container-fluid .jumbotron {\\n border-radius: 6px;\\n padding-left: 15px;\\n padding-right: 15px;\\n}\\n.jumbotron .container {\\n max-width: 100%;\\n}\\n@media screen and (min-width: 768px) {\\n .jumbotron {\\n padding-top: 48px;\\n padding-bottom: 48px;\\n }\\n .container .jumbotron,\\n .container-fluid .jumbotron {\\n padding-left: 60px;\\n padding-right: 60px;\\n }\\n .jumbotron h1,\\n .jumbotron .h1 {\\n font-size: 63px;\\n }\\n}\\n.thumbnail {\\n display: block;\\n padding: 4px;\\n margin-bottom: 20px;\\n line-height: 1.42857143;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n border-radius: 4px;\\n -webkit-transition: border 0.2s ease-in-out;\\n -o-transition: border 0.2s ease-in-out;\\n transition: border 0.2s ease-in-out;\\n}\\n.thumbnail > img,\\n.thumbnail a > img {\\n margin-left: auto;\\n margin-right: auto;\\n}\\na.thumbnail:hover,\\na.thumbnail:focus,\\na.thumbnail.active {\\n border-color: #337ab7;\\n}\\n.thumbnail .caption {\\n padding: 9px;\\n color: #333333;\\n}\\n.alert {\\n padding: 15px;\\n margin-bottom: 20px;\\n border: 1px solid transparent;\\n border-radius: 4px;\\n}\\n.alert h4 {\\n margin-top: 0;\\n color: inherit;\\n}\\n.alert .alert-link {\\n font-weight: bold;\\n}\\n.alert > p,\\n.alert > ul {\\n margin-bottom: 0;\\n}\\n.alert > p + p {\\n margin-top: 5px;\\n}\\n.alert-dismissable,\\n.alert-dismissible {\\n padding-right: 35px;\\n}\\n.alert-dismissable .close,\\n.alert-dismissible .close {\\n position: relative;\\n top: -2px;\\n right: -21px;\\n color: inherit;\\n}\\n.alert-success {\\n background-color: #dff0d8;\\n border-color: #d6e9c6;\\n color: #3c763d;\\n}\\n.alert-success hr {\\n border-top-color: #c9e2b3;\\n}\\n.alert-success .alert-link {\\n color: #2b542c;\\n}\\n.alert-info {\\n background-color: #d9edf7;\\n border-color: #bce8f1;\\n color: #31708f;\\n}\\n.alert-info hr {\\n border-top-color: #a6e1ec;\\n}\\n.alert-info .alert-link {\\n color: #245269;\\n}\\n.alert-warning {\\n background-color: #fcf8e3;\\n border-color: #faebcc;\\n color: #8a6d3b;\\n}\\n.alert-warning hr {\\n border-top-color: #f7e1b5;\\n}\\n.alert-warning .alert-link {\\n color: #66512c;\\n}\\n.alert-danger {\\n background-color: #f2dede;\\n border-color: #ebccd1;\\n color: #a94442;\\n}\\n.alert-danger hr {\\n border-top-color: #e4b9c0;\\n}\\n.alert-danger .alert-link {\\n color: #843534;\\n}\\n@-webkit-keyframes progress-bar-stripes {\\n from {\\n background-position: 40px 0;\\n }\\n to {\\n background-position: 0 0;\\n }\\n}\\n@keyframes progress-bar-stripes {\\n from {\\n background-position: 40px 0;\\n }\\n to {\\n background-position: 0 0;\\n }\\n}\\n.progress {\\n overflow: hidden;\\n height: 20px;\\n margin-bottom: 20px;\\n background-color: #f5f5f5;\\n border-radius: 4px;\\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\\n}\\n.progress-bar {\\n float: left;\\n width: 0%;\\n height: 100%;\\n font-size: 12px;\\n line-height: 20px;\\n color: #fff;\\n text-align: center;\\n background-color: #337ab7;\\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\\n -webkit-transition: width 0.6s ease;\\n -o-transition: width 0.6s ease;\\n transition: width 0.6s ease;\\n}\\n.progress-striped .progress-bar,\\n.progress-bar-striped {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-size: 40px 40px;\\n}\\n.progress.active .progress-bar,\\n.progress-bar.active {\\n -webkit-animation: progress-bar-stripes 2s linear infinite;\\n -o-animation: progress-bar-stripes 2s linear infinite;\\n animation: progress-bar-stripes 2s linear infinite;\\n}\\n.progress-bar-success {\\n background-color: #5cb85c;\\n}\\n.progress-striped .progress-bar-success {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n}\\n.progress-bar-info {\\n background-color: #5bc0de;\\n}\\n.progress-striped .progress-bar-info {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n}\\n.progress-bar-warning {\\n background-color: #f0ad4e;\\n}\\n.progress-striped .progress-bar-warning {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n}\\n.progress-bar-danger {\\n background-color: #d9534f;\\n}\\n.progress-striped .progress-bar-danger {\\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n}\\n.media {\\n margin-top: 15px;\\n}\\n.media:first-child {\\n margin-top: 0;\\n}\\n.media,\\n.media-body {\\n zoom: 1;\\n overflow: hidden;\\n}\\n.media-body {\\n width: 10000px;\\n}\\n.media-object {\\n display: block;\\n}\\n.media-object.img-thumbnail {\\n max-width: none;\\n}\\n.media-right,\\n.media > .pull-right {\\n padding-left: 10px;\\n}\\n.media-left,\\n.media > .pull-left {\\n padding-right: 10px;\\n}\\n.media-left,\\n.media-right,\\n.media-body {\\n display: table-cell;\\n vertical-align: top;\\n}\\n.media-middle {\\n vertical-align: middle;\\n}\\n.media-bottom {\\n vertical-align: bottom;\\n}\\n.media-heading {\\n margin-top: 0;\\n margin-bottom: 5px;\\n}\\n.media-list {\\n padding-left: 0;\\n list-style: none;\\n}\\n.list-group {\\n margin-bottom: 20px;\\n padding-left: 0;\\n}\\n.list-group-item {\\n position: relative;\\n display: block;\\n padding: 10px 15px;\\n margin-bottom: -1px;\\n background-color: #fff;\\n border: 1px solid #ddd;\\n}\\n.list-group-item:first-child {\\n border-top-right-radius: 4px;\\n border-top-left-radius: 4px;\\n}\\n.list-group-item:last-child {\\n margin-bottom: 0;\\n border-bottom-right-radius: 4px;\\n border-bottom-left-radius: 4px;\\n}\\na.list-group-item,\\nbutton.list-group-item {\\n color: #555;\\n}\\na.list-group-item .list-group-item-heading,\\nbutton.list-group-item .list-group-item-heading {\\n color: #333;\\n}\\na.list-group-item:hover,\\nbutton.list-group-item:hover,\\na.list-group-item:focus,\\nbutton.list-group-item:focus {\\n text-decoration: none;\\n color: #555;\\n background-color: #f5f5f5;\\n}\\nbutton.list-group-item {\\n width: 100%;\\n text-align: left;\\n}\\n.list-group-item.disabled,\\n.list-group-item.disabled:hover,\\n.list-group-item.disabled:focus {\\n background-color: #eeeeee;\\n color: #777777;\\n cursor: not-allowed;\\n}\\n.list-group-item.disabled .list-group-item-heading,\\n.list-group-item.disabled:hover .list-group-item-heading,\\n.list-group-item.disabled:focus .list-group-item-heading {\\n color: inherit;\\n}\\n.list-group-item.disabled .list-group-item-text,\\n.list-group-item.disabled:hover .list-group-item-text,\\n.list-group-item.disabled:focus .list-group-item-text {\\n color: #777777;\\n}\\n.list-group-item.active,\\n.list-group-item.active:hover,\\n.list-group-item.active:focus {\\n z-index: 2;\\n color: #fff;\\n background-color: #337ab7;\\n border-color: #337ab7;\\n}\\n.list-group-item.active .list-group-item-heading,\\n.list-group-item.active:hover .list-group-item-heading,\\n.list-group-item.active:focus .list-group-item-heading,\\n.list-group-item.active .list-group-item-heading > small,\\n.list-group-item.active:hover .list-group-item-heading > small,\\n.list-group-item.active:focus .list-group-item-heading > small,\\n.list-group-item.active .list-group-item-heading > .small,\\n.list-group-item.active:hover .list-group-item-heading > .small,\\n.list-group-item.active:focus .list-group-item-heading > .small {\\n color: inherit;\\n}\\n.list-group-item.active .list-group-item-text,\\n.list-group-item.active:hover .list-group-item-text,\\n.list-group-item.active:focus .list-group-item-text {\\n color: #c7ddef;\\n}\\n.list-group-item-success {\\n color: #3c763d;\\n background-color: #dff0d8;\\n}\\na.list-group-item-success,\\nbutton.list-group-item-success {\\n color: #3c763d;\\n}\\na.list-group-item-success .list-group-item-heading,\\nbutton.list-group-item-success .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-success:hover,\\nbutton.list-group-item-success:hover,\\na.list-group-item-success:focus,\\nbutton.list-group-item-success:focus {\\n color: #3c763d;\\n background-color: #d0e9c6;\\n}\\na.list-group-item-success.active,\\nbutton.list-group-item-success.active,\\na.list-group-item-success.active:hover,\\nbutton.list-group-item-success.active:hover,\\na.list-group-item-success.active:focus,\\nbutton.list-group-item-success.active:focus {\\n color: #fff;\\n background-color: #3c763d;\\n border-color: #3c763d;\\n}\\n.list-group-item-info {\\n color: #31708f;\\n background-color: #d9edf7;\\n}\\na.list-group-item-info,\\nbutton.list-group-item-info {\\n color: #31708f;\\n}\\na.list-group-item-info .list-group-item-heading,\\nbutton.list-group-item-info .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-info:hover,\\nbutton.list-group-item-info:hover,\\na.list-group-item-info:focus,\\nbutton.list-group-item-info:focus {\\n color: #31708f;\\n background-color: #c4e3f3;\\n}\\na.list-group-item-info.active,\\nbutton.list-group-item-info.active,\\na.list-group-item-info.active:hover,\\nbutton.list-group-item-info.active:hover,\\na.list-group-item-info.active:focus,\\nbutton.list-group-item-info.active:focus {\\n color: #fff;\\n background-color: #31708f;\\n border-color: #31708f;\\n}\\n.list-group-item-warning {\\n color: #8a6d3b;\\n background-color: #fcf8e3;\\n}\\na.list-group-item-warning,\\nbutton.list-group-item-warning {\\n color: #8a6d3b;\\n}\\na.list-group-item-warning .list-group-item-heading,\\nbutton.list-group-item-warning .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-warning:hover,\\nbutton.list-group-item-warning:hover,\\na.list-group-item-warning:focus,\\nbutton.list-group-item-warning:focus {\\n color: #8a6d3b;\\n background-color: #faf2cc;\\n}\\na.list-group-item-warning.active,\\nbutton.list-group-item-warning.active,\\na.list-group-item-warning.active:hover,\\nbutton.list-group-item-warning.active:hover,\\na.list-group-item-warning.active:focus,\\nbutton.list-group-item-warning.active:focus {\\n color: #fff;\\n background-color: #8a6d3b;\\n border-color: #8a6d3b;\\n}\\n.list-group-item-danger {\\n color: #a94442;\\n background-color: #f2dede;\\n}\\na.list-group-item-danger,\\nbutton.list-group-item-danger {\\n color: #a94442;\\n}\\na.list-group-item-danger .list-group-item-heading,\\nbutton.list-group-item-danger .list-group-item-heading {\\n color: inherit;\\n}\\na.list-group-item-danger:hover,\\nbutton.list-group-item-danger:hover,\\na.list-group-item-danger:focus,\\nbutton.list-group-item-danger:focus {\\n color: #a94442;\\n background-color: #ebcccc;\\n}\\na.list-group-item-danger.active,\\nbutton.list-group-item-danger.active,\\na.list-group-item-danger.active:hover,\\nbutton.list-group-item-danger.active:hover,\\na.list-group-item-danger.active:focus,\\nbutton.list-group-item-danger.active:focus {\\n color: #fff;\\n background-color: #a94442;\\n border-color: #a94442;\\n}\\n.list-group-item-heading {\\n margin-top: 0;\\n margin-bottom: 5px;\\n}\\n.list-group-item-text {\\n margin-bottom: 0;\\n line-height: 1.3;\\n}\\n.panel {\\n margin-bottom: 20px;\\n background-color: #fff;\\n border: 1px solid transparent;\\n border-radius: 4px;\\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\\n}\\n.panel-body {\\n padding: 15px;\\n}\\n.panel-heading {\\n padding: 10px 15px;\\n border-bottom: 1px solid transparent;\\n border-top-right-radius: 3px;\\n border-top-left-radius: 3px;\\n}\\n.panel-heading > .dropdown .dropdown-toggle {\\n color: inherit;\\n}\\n.panel-title {\\n margin-top: 0;\\n margin-bottom: 0;\\n font-size: 16px;\\n color: inherit;\\n}\\n.panel-title > a,\\n.panel-title > small,\\n.panel-title > .small,\\n.panel-title > small > a,\\n.panel-title > .small > a {\\n color: inherit;\\n}\\n.panel-footer {\\n padding: 10px 15px;\\n background-color: #f5f5f5;\\n border-top: 1px solid #ddd;\\n border-bottom-right-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .list-group,\\n.panel > .panel-collapse > .list-group {\\n margin-bottom: 0;\\n}\\n.panel > .list-group .list-group-item,\\n.panel > .panel-collapse > .list-group .list-group-item {\\n border-width: 1px 0;\\n border-radius: 0;\\n}\\n.panel > .list-group:first-child .list-group-item:first-child,\\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\\n border-top: 0;\\n border-top-right-radius: 3px;\\n border-top-left-radius: 3px;\\n}\\n.panel > .list-group:last-child .list-group-item:last-child,\\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\\n border-bottom: 0;\\n border-bottom-right-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\\n border-top-right-radius: 0;\\n border-top-left-radius: 0;\\n}\\n.panel-heading + .list-group .list-group-item:first-child {\\n border-top-width: 0;\\n}\\n.list-group + .panel-footer {\\n border-top-width: 0;\\n}\\n.panel > .table,\\n.panel > .table-responsive > .table,\\n.panel > .panel-collapse > .table {\\n margin-bottom: 0;\\n}\\n.panel > .table caption,\\n.panel > .table-responsive > .table caption,\\n.panel > .panel-collapse > .table caption {\\n padding-left: 15px;\\n padding-right: 15px;\\n}\\n.panel > .table:first-child,\\n.panel > .table-responsive:first-child > .table:first-child {\\n border-top-right-radius: 3px;\\n border-top-left-radius: 3px;\\n}\\n.panel > .table:first-child > thead:first-child > tr:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\\n border-top-left-radius: 3px;\\n border-top-right-radius: 3px;\\n}\\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\\n border-top-left-radius: 3px;\\n}\\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\\n border-top-right-radius: 3px;\\n}\\n.panel > .table:last-child,\\n.panel > .table-responsive:last-child > .table:last-child {\\n border-bottom-right-radius: 3px;\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .table:last-child > tbody:last-child > tr:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\\n border-bottom-left-radius: 3px;\\n border-bottom-right-radius: 3px;\\n}\\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\\n border-bottom-left-radius: 3px;\\n}\\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\\n border-bottom-right-radius: 3px;\\n}\\n.panel > .panel-body + .table,\\n.panel > .panel-body + .table-responsive,\\n.panel > .table + .panel-body,\\n.panel > .table-responsive + .panel-body {\\n border-top: 1px solid #ddd;\\n}\\n.panel > .table > tbody:first-child > tr:first-child th,\\n.panel > .table > tbody:first-child > tr:first-child td {\\n border-top: 0;\\n}\\n.panel > .table-bordered,\\n.panel > .table-responsive > .table-bordered {\\n border: 0;\\n}\\n.panel > .table-bordered > thead > tr > th:first-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\\n.panel > .table-bordered > tbody > tr > th:first-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\\n.panel > .table-bordered > tfoot > tr > th:first-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\\n.panel > .table-bordered > thead > tr > td:first-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\\n.panel > .table-bordered > tbody > tr > td:first-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\\n.panel > .table-bordered > tfoot > tr > td:first-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\\n border-left: 0;\\n}\\n.panel > .table-bordered > thead > tr > th:last-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\\n.panel > .table-bordered > tbody > tr > th:last-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\\n.panel > .table-bordered > tfoot > tr > th:last-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\\n.panel > .table-bordered > thead > tr > td:last-child,\\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\\n.panel > .table-bordered > tbody > tr > td:last-child,\\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\\n.panel > .table-bordered > tfoot > tr > td:last-child,\\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\\n border-right: 0;\\n}\\n.panel > .table-bordered > thead > tr:first-child > td,\\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\\n.panel > .table-bordered > tbody > tr:first-child > td,\\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\\n.panel > .table-bordered > thead > tr:first-child > th,\\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\\n.panel > .table-bordered > tbody > tr:first-child > th,\\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\\n border-bottom: 0;\\n}\\n.panel > .table-bordered > tbody > tr:last-child > td,\\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\\n.panel > .table-bordered > tfoot > tr:last-child > td,\\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\\n.panel > .table-bordered > tbody > tr:last-child > th,\\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\\n.panel > .table-bordered > tfoot > tr:last-child > th,\\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\\n border-bottom: 0;\\n}\\n.panel > .table-responsive {\\n border: 0;\\n margin-bottom: 0;\\n}\\n.panel-group {\\n margin-bottom: 20px;\\n}\\n.panel-group .panel {\\n margin-bottom: 0;\\n border-radius: 4px;\\n}\\n.panel-group .panel + .panel {\\n margin-top: 5px;\\n}\\n.panel-group .panel-heading {\\n border-bottom: 0;\\n}\\n.panel-group .panel-heading + .panel-collapse > .panel-body,\\n.panel-group .panel-heading + .panel-collapse > .list-group {\\n border-top: 1px solid #ddd;\\n}\\n.panel-group .panel-footer {\\n border-top: 0;\\n}\\n.panel-group .panel-footer + .panel-collapse .panel-body {\\n border-bottom: 1px solid #ddd;\\n}\\n.panel-default {\\n border-color: #ddd;\\n}\\n.panel-default > .panel-heading {\\n color: #333333;\\n background-color: #f5f5f5;\\n border-color: #ddd;\\n}\\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #ddd;\\n}\\n.panel-default > .panel-heading .badge {\\n color: #f5f5f5;\\n background-color: #333333;\\n}\\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #ddd;\\n}\\n.panel-primary {\\n border-color: #337ab7;\\n}\\n.panel-primary > .panel-heading {\\n color: #fff;\\n background-color: #337ab7;\\n border-color: #337ab7;\\n}\\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #337ab7;\\n}\\n.panel-primary > .panel-heading .badge {\\n color: #337ab7;\\n background-color: #fff;\\n}\\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #337ab7;\\n}\\n.panel-success {\\n border-color: #d6e9c6;\\n}\\n.panel-success > .panel-heading {\\n color: #3c763d;\\n background-color: #dff0d8;\\n border-color: #d6e9c6;\\n}\\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #d6e9c6;\\n}\\n.panel-success > .panel-heading .badge {\\n color: #dff0d8;\\n background-color: #3c763d;\\n}\\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #d6e9c6;\\n}\\n.panel-info {\\n border-color: #bce8f1;\\n}\\n.panel-info > .panel-heading {\\n color: #31708f;\\n background-color: #d9edf7;\\n border-color: #bce8f1;\\n}\\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #bce8f1;\\n}\\n.panel-info > .panel-heading .badge {\\n color: #d9edf7;\\n background-color: #31708f;\\n}\\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #bce8f1;\\n}\\n.panel-warning {\\n border-color: #faebcc;\\n}\\n.panel-warning > .panel-heading {\\n color: #8a6d3b;\\n background-color: #fcf8e3;\\n border-color: #faebcc;\\n}\\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #faebcc;\\n}\\n.panel-warning > .panel-heading .badge {\\n color: #fcf8e3;\\n background-color: #8a6d3b;\\n}\\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #faebcc;\\n}\\n.panel-danger {\\n border-color: #ebccd1;\\n}\\n.panel-danger > .panel-heading {\\n color: #a94442;\\n background-color: #f2dede;\\n border-color: #ebccd1;\\n}\\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\\n border-top-color: #ebccd1;\\n}\\n.panel-danger > .panel-heading .badge {\\n color: #f2dede;\\n background-color: #a94442;\\n}\\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\\n border-bottom-color: #ebccd1;\\n}\\n.embed-responsive {\\n position: relative;\\n display: block;\\n height: 0;\\n padding: 0;\\n overflow: hidden;\\n}\\n.embed-responsive .embed-responsive-item,\\n.embed-responsive iframe,\\n.embed-responsive embed,\\n.embed-responsive object,\\n.embed-responsive video {\\n position: absolute;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n height: 100%;\\n width: 100%;\\n border: 0;\\n}\\n.embed-responsive-16by9 {\\n padding-bottom: 56.25%;\\n}\\n.embed-responsive-4by3 {\\n padding-bottom: 75%;\\n}\\n.well {\\n min-height: 20px;\\n padding: 19px;\\n margin-bottom: 20px;\\n background-color: #f5f5f5;\\n border: 1px solid #e3e3e3;\\n border-radius: 4px;\\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\\n}\\n.well blockquote {\\n border-color: #ddd;\\n border-color: rgba(0, 0, 0, 0.15);\\n}\\n.well-lg {\\n padding: 24px;\\n border-radius: 6px;\\n}\\n.well-sm {\\n padding: 9px;\\n border-radius: 3px;\\n}\\n.close {\\n float: right;\\n font-size: 21px;\\n font-weight: bold;\\n line-height: 1;\\n color: #000;\\n text-shadow: 0 1px 0 #fff;\\n opacity: 0.2;\\n filter: alpha(opacity=20);\\n}\\n.close:hover,\\n.close:focus {\\n color: #000;\\n text-decoration: none;\\n cursor: pointer;\\n opacity: 0.5;\\n filter: alpha(opacity=50);\\n}\\nbutton.close {\\n padding: 0;\\n cursor: pointer;\\n background: transparent;\\n border: 0;\\n -webkit-appearance: none;\\n}\\n.modal-open {\\n overflow: hidden;\\n}\\n.modal {\\n display: none;\\n overflow: hidden;\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1050;\\n -webkit-overflow-scrolling: touch;\\n outline: 0;\\n}\\n.modal.fade .modal-dialog {\\n -webkit-transform: translate(0, -25%);\\n -ms-transform: translate(0, -25%);\\n -o-transform: translate(0, -25%);\\n transform: translate(0, -25%);\\n -webkit-transition: -webkit-transform 0.3s ease-out;\\n -moz-transition: -moz-transform 0.3s ease-out;\\n -o-transition: -o-transform 0.3s ease-out;\\n transition: transform 0.3s ease-out;\\n}\\n.modal.in .modal-dialog {\\n -webkit-transform: translate(0, 0);\\n -ms-transform: translate(0, 0);\\n -o-transform: translate(0, 0);\\n transform: translate(0, 0);\\n}\\n.modal-open .modal {\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n.modal-dialog {\\n position: relative;\\n width: auto;\\n margin: 10px;\\n}\\n.modal-content {\\n position: relative;\\n background-color: #fff;\\n border: 1px solid #999;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 6px;\\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\\n background-clip: padding-box;\\n outline: 0;\\n}\\n.modal-backdrop {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1040;\\n background-color: #000;\\n}\\n.modal-backdrop.fade {\\n opacity: 0;\\n filter: alpha(opacity=0);\\n}\\n.modal-backdrop.in {\\n opacity: 0.5;\\n filter: alpha(opacity=50);\\n}\\n.modal-header {\\n padding: 15px;\\n border-bottom: 1px solid #e5e5e5;\\n}\\n.modal-header .close {\\n margin-top: -2px;\\n}\\n.modal-title {\\n margin: 0;\\n line-height: 1.42857143;\\n}\\n.modal-body {\\n position: relative;\\n padding: 15px;\\n}\\n.modal-footer {\\n padding: 15px;\\n text-align: right;\\n border-top: 1px solid #e5e5e5;\\n}\\n.modal-footer .btn + .btn {\\n margin-left: 5px;\\n margin-bottom: 0;\\n}\\n.modal-footer .btn-group .btn + .btn {\\n margin-left: -1px;\\n}\\n.modal-footer .btn-block + .btn-block {\\n margin-left: 0;\\n}\\n.modal-scrollbar-measure {\\n position: absolute;\\n top: -9999px;\\n width: 50px;\\n height: 50px;\\n overflow: scroll;\\n}\\n@media (min-width: 768px) {\\n .modal-dialog {\\n width: 600px;\\n margin: 30px auto;\\n }\\n .modal-content {\\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\\n }\\n .modal-sm {\\n width: 300px;\\n }\\n}\\n@media (min-width: 992px) {\\n .modal-lg {\\n width: 900px;\\n }\\n}\\n.tooltip {\\n position: absolute;\\n z-index: 1070;\\n display: block;\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n line-break: auto;\\n line-height: 1.42857143;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n white-space: normal;\\n word-break: normal;\\n word-spacing: normal;\\n word-wrap: normal;\\n font-size: 12px;\\n opacity: 0;\\n filter: alpha(opacity=0);\\n}\\n.tooltip.in {\\n opacity: 0.9;\\n filter: alpha(opacity=90);\\n}\\n.tooltip.top {\\n margin-top: -3px;\\n padding: 5px 0;\\n}\\n.tooltip.right {\\n margin-left: 3px;\\n padding: 0 5px;\\n}\\n.tooltip.bottom {\\n margin-top: 3px;\\n padding: 5px 0;\\n}\\n.tooltip.left {\\n margin-left: -3px;\\n padding: 0 5px;\\n}\\n.tooltip-inner {\\n max-width: 200px;\\n padding: 3px 8px;\\n color: #fff;\\n text-align: center;\\n background-color: #000;\\n border-radius: 4px;\\n}\\n.tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-color: transparent;\\n border-style: solid;\\n}\\n.tooltip.top .tooltip-arrow {\\n bottom: 0;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 5px 5px 0;\\n border-top-color: #000;\\n}\\n.tooltip.top-left .tooltip-arrow {\\n bottom: 0;\\n right: 5px;\\n margin-bottom: -5px;\\n border-width: 5px 5px 0;\\n border-top-color: #000;\\n}\\n.tooltip.top-right .tooltip-arrow {\\n bottom: 0;\\n left: 5px;\\n margin-bottom: -5px;\\n border-width: 5px 5px 0;\\n border-top-color: #000;\\n}\\n.tooltip.right .tooltip-arrow {\\n top: 50%;\\n left: 0;\\n margin-top: -5px;\\n border-width: 5px 5px 5px 0;\\n border-right-color: #000;\\n}\\n.tooltip.left .tooltip-arrow {\\n top: 50%;\\n right: 0;\\n margin-top: -5px;\\n border-width: 5px 0 5px 5px;\\n border-left-color: #000;\\n}\\n.tooltip.bottom .tooltip-arrow {\\n top: 0;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 0 5px 5px;\\n border-bottom-color: #000;\\n}\\n.tooltip.bottom-left .tooltip-arrow {\\n top: 0;\\n right: 5px;\\n margin-top: -5px;\\n border-width: 0 5px 5px;\\n border-bottom-color: #000;\\n}\\n.tooltip.bottom-right .tooltip-arrow {\\n top: 0;\\n left: 5px;\\n margin-top: -5px;\\n border-width: 0 5px 5px;\\n border-bottom-color: #000;\\n}\\n.popover {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 1060;\\n display: none;\\n max-width: 276px;\\n padding: 1px;\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n line-break: auto;\\n line-height: 1.42857143;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n white-space: normal;\\n word-break: normal;\\n word-spacing: normal;\\n word-wrap: normal;\\n font-size: 14px;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid #ccc;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 6px;\\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\\n}\\n.popover.top {\\n margin-top: -10px;\\n}\\n.popover.right {\\n margin-left: 10px;\\n}\\n.popover.bottom {\\n margin-top: 10px;\\n}\\n.popover.left {\\n margin-left: -10px;\\n}\\n.popover-title {\\n margin: 0;\\n padding: 8px 14px;\\n font-size: 14px;\\n background-color: #f7f7f7;\\n border-bottom: 1px solid #ebebeb;\\n border-radius: 5px 5px 0 0;\\n}\\n.popover-content {\\n padding: 9px 14px;\\n}\\n.popover > .arrow,\\n.popover > .arrow:after {\\n position: absolute;\\n display: block;\\n width: 0;\\n height: 0;\\n border-color: transparent;\\n border-style: solid;\\n}\\n.popover > .arrow {\\n border-width: 11px;\\n}\\n.popover > .arrow:after {\\n border-width: 10px;\\n content: \\\"\\\";\\n}\\n.popover.top > .arrow {\\n left: 50%;\\n margin-left: -11px;\\n border-bottom-width: 0;\\n border-top-color: #999999;\\n border-top-color: rgba(0, 0, 0, 0.25);\\n bottom: -11px;\\n}\\n.popover.top > .arrow:after {\\n content: \\\" \\\";\\n bottom: 1px;\\n margin-left: -10px;\\n border-bottom-width: 0;\\n border-top-color: #fff;\\n}\\n.popover.right > .arrow {\\n top: 50%;\\n left: -11px;\\n margin-top: -11px;\\n border-left-width: 0;\\n border-right-color: #999999;\\n border-right-color: rgba(0, 0, 0, 0.25);\\n}\\n.popover.right > .arrow:after {\\n content: \\\" \\\";\\n left: 1px;\\n bottom: -10px;\\n border-left-width: 0;\\n border-right-color: #fff;\\n}\\n.popover.bottom > .arrow {\\n left: 50%;\\n margin-left: -11px;\\n border-top-width: 0;\\n border-bottom-color: #999999;\\n border-bottom-color: rgba(0, 0, 0, 0.25);\\n top: -11px;\\n}\\n.popover.bottom > .arrow:after {\\n content: \\\" \\\";\\n top: 1px;\\n margin-left: -10px;\\n border-top-width: 0;\\n border-bottom-color: #fff;\\n}\\n.popover.left > .arrow {\\n top: 50%;\\n right: -11px;\\n margin-top: -11px;\\n border-right-width: 0;\\n border-left-color: #999999;\\n border-left-color: rgba(0, 0, 0, 0.25);\\n}\\n.popover.left > .arrow:after {\\n content: \\\" \\\";\\n right: 1px;\\n border-right-width: 0;\\n border-left-color: #fff;\\n bottom: -10px;\\n}\\n.carousel {\\n position: relative;\\n}\\n.carousel-inner {\\n position: relative;\\n overflow: hidden;\\n width: 100%;\\n}\\n.carousel-inner > .item {\\n display: none;\\n position: relative;\\n -webkit-transition: 0.6s ease-in-out left;\\n -o-transition: 0.6s ease-in-out left;\\n transition: 0.6s ease-in-out left;\\n}\\n.carousel-inner > .item > img,\\n.carousel-inner > .item > a > img {\\n line-height: 1;\\n}\\n@media all and (transform-3d), (-webkit-transform-3d) {\\n .carousel-inner > .item {\\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\\n -moz-transition: -moz-transform 0.6s ease-in-out;\\n -o-transition: -o-transform 0.6s ease-in-out;\\n transition: transform 0.6s ease-in-out;\\n -webkit-backface-visibility: hidden;\\n -moz-backface-visibility: hidden;\\n backface-visibility: hidden;\\n -webkit-perspective: 1000px;\\n -moz-perspective: 1000px;\\n perspective: 1000px;\\n }\\n .carousel-inner > .item.next,\\n .carousel-inner > .item.active.right {\\n -webkit-transform: translate3d(100%, 0, 0);\\n transform: translate3d(100%, 0, 0);\\n left: 0;\\n }\\n .carousel-inner > .item.prev,\\n .carousel-inner > .item.active.left {\\n -webkit-transform: translate3d(-100%, 0, 0);\\n transform: translate3d(-100%, 0, 0);\\n left: 0;\\n }\\n .carousel-inner > .item.next.left,\\n .carousel-inner > .item.prev.right,\\n .carousel-inner > .item.active {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n left: 0;\\n }\\n}\\n.carousel-inner > .active,\\n.carousel-inner > .next,\\n.carousel-inner > .prev {\\n display: block;\\n}\\n.carousel-inner > .active {\\n left: 0;\\n}\\n.carousel-inner > .next,\\n.carousel-inner > .prev {\\n position: absolute;\\n top: 0;\\n width: 100%;\\n}\\n.carousel-inner > .next {\\n left: 100%;\\n}\\n.carousel-inner > .prev {\\n left: -100%;\\n}\\n.carousel-inner > .next.left,\\n.carousel-inner > .prev.right {\\n left: 0;\\n}\\n.carousel-inner > .active.left {\\n left: -100%;\\n}\\n.carousel-inner > .active.right {\\n left: 100%;\\n}\\n.carousel-control {\\n position: absolute;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n width: 15%;\\n opacity: 0.5;\\n filter: alpha(opacity=50);\\n font-size: 20px;\\n color: #fff;\\n text-align: center;\\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\\n background-color: rgba(0, 0, 0, 0);\\n}\\n.carousel-control.left {\\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\\n}\\n.carousel-control.right {\\n left: auto;\\n right: 0;\\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\\n}\\n.carousel-control:hover,\\n.carousel-control:focus {\\n outline: 0;\\n color: #fff;\\n text-decoration: none;\\n opacity: 0.9;\\n filter: alpha(opacity=90);\\n}\\n.carousel-control .icon-prev,\\n.carousel-control .icon-next,\\n.carousel-control .glyphicon-chevron-left,\\n.carousel-control .glyphicon-chevron-right {\\n position: absolute;\\n top: 50%;\\n margin-top: -10px;\\n z-index: 5;\\n display: inline-block;\\n}\\n.carousel-control .icon-prev,\\n.carousel-control .glyphicon-chevron-left {\\n left: 50%;\\n margin-left: -10px;\\n}\\n.carousel-control .icon-next,\\n.carousel-control .glyphicon-chevron-right {\\n right: 50%;\\n margin-right: -10px;\\n}\\n.carousel-control .icon-prev,\\n.carousel-control .icon-next {\\n width: 20px;\\n height: 20px;\\n line-height: 1;\\n font-family: serif;\\n}\\n.carousel-control .icon-prev:before {\\n content: '\\\\2039';\\n}\\n.carousel-control .icon-next:before {\\n content: '\\\\203A';\\n}\\n.carousel-indicators {\\n position: absolute;\\n bottom: 10px;\\n left: 50%;\\n z-index: 15;\\n width: 60%;\\n margin-left: -30%;\\n padding-left: 0;\\n list-style: none;\\n text-align: center;\\n}\\n.carousel-indicators li {\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n margin: 1px;\\n text-indent: -999px;\\n border: 1px solid #fff;\\n border-radius: 10px;\\n cursor: pointer;\\n background-color: #000 \\\\9;\\n background-color: rgba(0, 0, 0, 0);\\n}\\n.carousel-indicators .active {\\n margin: 0;\\n width: 12px;\\n height: 12px;\\n background-color: #fff;\\n}\\n.carousel-caption {\\n position: absolute;\\n left: 15%;\\n right: 15%;\\n bottom: 20px;\\n z-index: 10;\\n padding-top: 20px;\\n padding-bottom: 20px;\\n color: #fff;\\n text-align: center;\\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\\n}\\n.carousel-caption .btn {\\n text-shadow: none;\\n}\\n@media screen and (min-width: 768px) {\\n .carousel-control .glyphicon-chevron-left,\\n .carousel-control .glyphicon-chevron-right,\\n .carousel-control .icon-prev,\\n .carousel-control .icon-next {\\n width: 30px;\\n height: 30px;\\n margin-top: -10px;\\n font-size: 30px;\\n }\\n .carousel-control .glyphicon-chevron-left,\\n .carousel-control .icon-prev {\\n margin-left: -10px;\\n }\\n .carousel-control .glyphicon-chevron-right,\\n .carousel-control .icon-next {\\n margin-right: -10px;\\n }\\n .carousel-caption {\\n left: 20%;\\n right: 20%;\\n padding-bottom: 30px;\\n }\\n .carousel-indicators {\\n bottom: 20px;\\n }\\n}\\n.clearfix:before,\\n.clearfix:after,\\n.dl-horizontal dd:before,\\n.dl-horizontal dd:after,\\n.container:before,\\n.container:after,\\n.container-fluid:before,\\n.container-fluid:after,\\n.row:before,\\n.row:after,\\n.form-horizontal .form-group:before,\\n.form-horizontal .form-group:after,\\n.btn-toolbar:before,\\n.btn-toolbar:after,\\n.btn-group-vertical > .btn-group:before,\\n.btn-group-vertical > .btn-group:after,\\n.nav:before,\\n.nav:after,\\n.navbar:before,\\n.navbar:after,\\n.navbar-header:before,\\n.navbar-header:after,\\n.navbar-collapse:before,\\n.navbar-collapse:after,\\n.pager:before,\\n.pager:after,\\n.panel-body:before,\\n.panel-body:after,\\n.modal-header:before,\\n.modal-header:after,\\n.modal-footer:before,\\n.modal-footer:after {\\n content: \\\" \\\";\\n display: table;\\n}\\n.clearfix:after,\\n.dl-horizontal dd:after,\\n.container:after,\\n.container-fluid:after,\\n.row:after,\\n.form-horizontal .form-group:after,\\n.btn-toolbar:after,\\n.btn-group-vertical > .btn-group:after,\\n.nav:after,\\n.navbar:after,\\n.navbar-header:after,\\n.navbar-collapse:after,\\n.pager:after,\\n.panel-body:after,\\n.modal-header:after,\\n.modal-footer:after {\\n clear: both;\\n}\\n.center-block {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.pull-right {\\n float: right !important;\\n}\\n.pull-left {\\n float: left !important;\\n}\\n.hide {\\n display: none !important;\\n}\\n.show {\\n display: block !important;\\n}\\n.invisible {\\n visibility: hidden;\\n}\\n.text-hide {\\n font: 0/0 a;\\n color: transparent;\\n text-shadow: none;\\n background-color: transparent;\\n border: 0;\\n}\\n.hidden {\\n display: none !important;\\n}\\n.affix {\\n position: fixed;\\n}\\n@-ms-viewport {\\n width: device-width;\\n}\\n.visible-xs,\\n.visible-sm,\\n.visible-md,\\n.visible-lg {\\n display: none !important;\\n}\\n.visible-xs-block,\\n.visible-xs-inline,\\n.visible-xs-inline-block,\\n.visible-sm-block,\\n.visible-sm-inline,\\n.visible-sm-inline-block,\\n.visible-md-block,\\n.visible-md-inline,\\n.visible-md-inline-block,\\n.visible-lg-block,\\n.visible-lg-inline,\\n.visible-lg-inline-block {\\n display: none !important;\\n}\\n@media (max-width: 767px) {\\n .visible-xs {\\n display: block !important;\\n }\\n table.visible-xs {\\n display: table !important;\\n }\\n tr.visible-xs {\\n display: table-row !important;\\n }\\n th.visible-xs,\\n td.visible-xs {\\n display: table-cell !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .visible-xs-block {\\n display: block !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .visible-xs-inline {\\n display: inline !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .visible-xs-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm {\\n display: block !important;\\n }\\n table.visible-sm {\\n display: table !important;\\n }\\n tr.visible-sm {\\n display: table-row !important;\\n }\\n th.visible-sm,\\n td.visible-sm {\\n display: table-cell !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm-block {\\n display: block !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm-inline {\\n display: inline !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .visible-sm-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md {\\n display: block !important;\\n }\\n table.visible-md {\\n display: table !important;\\n }\\n tr.visible-md {\\n display: table-row !important;\\n }\\n th.visible-md,\\n td.visible-md {\\n display: table-cell !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md-block {\\n display: block !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md-inline {\\n display: inline !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .visible-md-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg {\\n display: block !important;\\n }\\n table.visible-lg {\\n display: table !important;\\n }\\n tr.visible-lg {\\n display: table-row !important;\\n }\\n th.visible-lg,\\n td.visible-lg {\\n display: table-cell !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg-block {\\n display: block !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg-inline {\\n display: inline !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .visible-lg-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media (max-width: 767px) {\\n .hidden-xs {\\n display: none !important;\\n }\\n}\\n@media (min-width: 768px) and (max-width: 991px) {\\n .hidden-sm {\\n display: none !important;\\n }\\n}\\n@media (min-width: 992px) and (max-width: 1199px) {\\n .hidden-md {\\n display: none !important;\\n }\\n}\\n@media (min-width: 1200px) {\\n .hidden-lg {\\n display: none !important;\\n }\\n}\\n.visible-print {\\n display: none !important;\\n}\\n@media print {\\n .visible-print {\\n display: block !important;\\n }\\n table.visible-print {\\n display: table !important;\\n }\\n tr.visible-print {\\n display: table-row !important;\\n }\\n th.visible-print,\\n td.visible-print {\\n display: table-cell !important;\\n }\\n}\\n.visible-print-block {\\n display: none !important;\\n}\\n@media print {\\n .visible-print-block {\\n display: block !important;\\n }\\n}\\n.visible-print-inline {\\n display: none !important;\\n}\\n@media print {\\n .visible-print-inline {\\n display: inline !important;\\n }\\n}\\n.visible-print-inline-block {\\n display: none !important;\\n}\\n@media print {\\n .visible-print-inline-block {\\n display: inline-block !important;\\n }\\n}\\n@media print {\\n .hidden-print {\\n display: none !important;\\n }\\n}\\nbody {\\n font-family: 'Hind', sans-serif;\\n font-size: 15px;\\n color: #080808;\\n background: #F7F8FA;\\n}\\n.content-main {\\n padding-bottom: 40px;\\n}\\n.display-table {\\n display: table;\\n}\\n.display-table .display-tr {\\n display: table-row;\\n}\\n.display-table .display-tr .display-td {\\n display: table-cell;\\n}\\n.margin-bottom {\\n margin-bottom: 20px;\\n}\\n.margin-bottom-half {\\n margin-bottom: 10px;\\n}\\n.no-margin-bottom {\\n margin-bottom: 0;\\n}\\n.modal-content .modal-body {\\n color: black;\\n}\\n.btn {\\n border-radius: 0;\\n font-weight: normal;\\n padding: 5px 8px 2px;\\n text-decoration: none;\\n}\\n.btn.btn-small {\\n padding: 3px 10px 0;\\n}\\n.btn.btn-success,\\n.btn.btn-success:active {\\n background-color: #5DC9B1;\\n border-color: #5DC9B1;\\n color: white;\\n text-transform: uppercase;\\n text-shadow: 1px 1px 1px grey;\\n}\\n.btn.btn-success.dropdown-toggle,\\n.btn.btn-success.dropdown-toggle:active,\\n.btn.btn-success.dropdown-toggle:hover {\\n background-color: #5DC9B1;\\n border-color: #5DC9B1;\\n color: #080808;\\n text-transform: uppercase;\\n}\\n.btn.btn-primary {\\n background: #1784D1;\\n}\\n.btn.btn-danger {\\n background: #EC8F4C;\\n}\\n.text-align-right {\\n text-align: right;\\n}\\n.alert {\\n text-shadow: 1px 1px 1px grey;\\n}\\n.alert.alert-loading {\\n background: #FFCC38;\\n}\\n.alert.alert-loading img {\\n width: 20px;\\n}\\n.alert.alert-info {\\n background: #1784D1;\\n color: white;\\n}\\n.alert.alert-info a {\\n color: white;\\n}\\n.alert.alert-success {\\n background: #0BD87B;\\n color: white;\\n}\\n.alert.alert-danger {\\n background: #FF8B60;\\n color: white;\\n}\\n.alert.alert-danger a {\\n color: white;\\n}\\n#eugdpr-modal .modal-header {\\n background: #0769AE;\\n color: white;\\n}\\n#eugdpr-modal .modal-body {\\n background: white;\\n color: #080808;\\n}\\n.header-container {\\n display: flex;\\n align-items: flex-end;\\n}\\n.header-container a.logo-image {\\n max-width: 22%;\\n}\\n.header-container img {\\n width: 100%;\\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\\n}\\n.account-button-container {\\n flex: 1;\\n justify-content: flex-end;\\n align-content: flex-end;\\n display: flex;\\n margin-bottom: 10px;\\n}\\n.account-button-container .user-dropdown .dropdown-menu li a {\\n text-decoration: none;\\n}\\n.smooth-header {\\n background: #F7F8FA;\\n border-bottom: 1px solid #AEB3B7;\\n padding: 20px;\\n min-height: 58px;\\n}\\n.smooth-header .btn-group.open .dropdown-toggle,\\n.smooth-header .btn-active,\\n.smooth-header .btn:active {\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n}\\n.smooth-header .header-section {\\n position: relative;\\n text-align: center;\\n}\\n.smooth-header .header-section button.prev-next-days {\\n color: white;\\n position: absolute;\\n bottom: 0;\\n left: 33%;\\n}\\n.smooth-header button.mobile-next-prev {\\n position: fixed;\\n top: 275px;\\n background: rgba(0, 0, 0, 0.3);\\n color: #fff;\\n border: 0;\\n padding: 18px;\\n font-size: 1.5em;\\n font-weight: bold;\\n z-index: 100;\\n -webkit-backface-visibility: hidden;\\n}\\n.smooth-header button.mobile-next-prev.mobile-prev-btn {\\n left: 0px;\\n}\\n.smooth-header button.mobile-next-prev.mobile-next-btn {\\n right: 0px;\\n}\\n.smooth-header .filter-options {\\n padding: 10px 0;\\n text-align: left;\\n}\\n.smooth-header .filter-options .resource-service-picker {\\n display: inline;\\n width: 49.5%;\\n float: left;\\n}\\n.smooth-header .filter-options .resource-service-picker:last-of-type {\\n float: right;\\n}\\n.smooth-header .filter-list {\\n text-align: left;\\n}\\n.smooth-header .filter-list .filter-list-item {\\n position: relative;\\n cursor: pointer;\\n background: #FF8B60;\\n color: white;\\n font-size: 0.9em;\\n padding: 0 5px;\\n margin-right: 10px;\\n border-radius: 5px;\\n}\\n.smooth-header .filter-list .filter-list-item .glyphicon {\\n top: 3px;\\n font-size: 0.9em;\\n}\\n.customer-account a.tab-select {\\n text-decoration: none;\\n color: inherit;\\n}\\n.customer-account .real-tab-content {\\n padding: 20px 0;\\n}\\n.eugdpr-consent .smooth-header h3 {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.customer-buttons-container {\\n display: flex;\\n margin-bottom: 10px;\\n justify-content: space-evenly;\\n flex-wrap: wrap;\\n}\\n.customer-buttons-container .btn {\\n width: 143px;\\n margin-bottom: 10px;\\n}\\n@media (max-width: 480px) {\\n .customer-buttons-container {\\n width: 100%;\\n margin-left: 0;\\n flex-wrap: wrap;\\n }\\n .customer-buttons-container .btn {\\n margin: 0 10px 5px;\\n }\\n}\\n.customer-transactions {\\n overflow-x: auto;\\n}\\n.customer-transactions .transaction-header {\\n min-height: 40px;\\n}\\n.customer-transactions .transactions-container {\\n min-width: 25em;\\n}\\n.customer-transactions .transactions-container.packages-container {\\n min-width: 40em;\\n}\\n.customer-transactions label {\\n font-weight: bold;\\n}\\n.customer-transactions .transaction-cell {\\n display: inline-block;\\n padding: 3px 0;\\n}\\n.customer-transactions .col-md-4,\\n.customer-transactions .col-sm-4,\\n.customer-transactions .col-xs-4,\\n.customer-transactions .transactions-column {\\n border-bottom: 1px solid #ddd;\\n}\\n.customer-transactions a {\\n text-decoration: underline;\\n}\\n.customer-transactions .transaction-items {\\n display: none;\\n font-size: 0.9em;\\n padding: 20px 0 20px 10px;\\n}\\n.customer-transactions .view-transaction-link a {\\n color: inherit;\\n text-decoration: none;\\n}\\n.customer-transactions .view-transaction-link a .glyphicon {\\n position: relative;\\n font-size: 0.9em;\\n left: 5px;\\n top: 3px;\\n}\\n.content-main {\\n border: 1px solid #AEB3B7;\\n}\\n#cookie-consent-modal .modal-content .modal-header {\\n background: #1784D1;\\n color: white;\\n}\\n#cookie-consent-modal ul {\\n margin: 10px 0;\\n}\\nh3 {\\n margin: 20px 0;\\n}\\n#datepicker-launch {\\n cursor: pointer;\\n}\\n.calendar-main .no-availability {\\n text-align: center;\\n}\\n.calendar-main .day-heading {\\n text-align: center;\\n}\\n.calendar-main .fixed-header-container {\\n width: inherit;\\n display: none;\\n position: relative;\\n left: -15px;\\n color: white;\\n}\\n.calendar-main .fixed-header-container .heading-fixed {\\n position: fixed;\\n width: inherit;\\n padding: 10px 0;\\n top: -20px;\\n background: #8DC6EF;\\n z-index: 1000;\\n box-shadow: 0 1px 1px 1px #808080;\\n}\\n.calendar-main .shift-container {\\n padding: 10px;\\n margin-bottom: 10px;\\n}\\n.calendar-main .shift-container .shift-unavailable {\\n background: #FFAE90;\\n color: #fff;\\n margin: 0;\\n padding: 3px 11px;\\n font-size: 0.9em;\\n position: relative;\\n float: right;\\n cursor: not-allowed;\\n}\\n.calendar-main .shift-container .shift-too-far {\\n background: #FFAE90;\\n color: #fff;\\n margin: 0;\\n margin-bottom: 5px;\\n width: 100%;\\n padding: 1px 11px;\\n font-size: 0.8em;\\n cursor: not-allowed;\\n display: block;\\n position: relative;\\n bottom: 8px;\\n text-align: center;\\n}\\n.calendar-main .shift-container .btn.btn-primary {\\n padding: 3px 11px;\\n font-size: 0.95em;\\n}\\n.calendar-main .shift-container .shift-time {\\n text-align: center;\\n}\\n.calendar-main .shift-container .service-name {\\n opacity: 0.7;\\n padding: 20px 10px 10px;\\n}\\n.calendar-main .shift-container .resource-name {\\n color: inherit;\\n padding: 0 20px 10px;\\n}\\n.calendar-main .shift-container .is-workshop {\\n padding: 0 0 10px;\\n}\\n.calendar-main .shift-container .is-workshop span {\\n display: inline-block;\\n float: right;\\n padding: 1px 10px;\\n margin-left: 5px;\\n font-style: italic;\\n color: white;\\n background: #FFAE90;\\n font-size: 0.9em;\\n}\\n.calendar-main .shift-container:not(:last-of-type) {\\n border-bottom: 1px solid #AEB3B7;\\n}\\n#choose-timeslot-modal .modal-header {\\n padding: 10px 15px 5px;\\n font-weight: bold;\\n}\\n#choose-timeslot-modal .timeslot-table-container {\\n max-height: 150px;\\n overflow-y: auto;\\n /*padding: 10px 0 0;\\n margin-bottom: 10px;*/\\n}\\n#choose-timeslot-modal .choose-timeslots-table {\\n width: 100%;\\n font-size: 0.9em;\\n}\\n#choose-timeslot-modal .choose-timeslots-table tr {\\n cursor: pointer;\\n}\\n#choose-timeslot-modal .choose-timeslots-table tr:hover {\\n background: lightyellow;\\n}\\n#choose-timeslot-modal .choose-timeslots-table td {\\n padding: 1px 0;\\n color: #898989;\\n}\\n#choose-timeslot-modal .choose-timeslots-table .timeslot-button-td {\\n text-align: right;\\n}\\n#choose-timeslot-modal .available-timeslots-header {\\n margin: 10px 0;\\n padding: 10px 0;\\n border-bottom: 1px solid #AEB3B7;\\n}\\n#choose-timeslot-modal button.timeslot-add {\\n background: #5DC9B1;\\n border: 1px solid #5DC9B1;\\n padding: 1px 5px;\\n color: white;\\n}\\n#choose-timeslot-modal button.timeslot-remove {\\n background: #EC8F4C;\\n border: 1px solid #EC8F4C;\\n padding: 1px 5px;\\n color: white;\\n}\\n.pagination > .active > a,\\n.pagination > .active > a:focus,\\n.pagination > .active > a:hover,\\n.pagination > .active > span,\\n.pagination > .active > span:focus,\\n.pagination > .active > span:hover {\\n z-index: 3;\\n color: #fff;\\n background-color: #0BD87B;\\n border-color: #0BD87B;\\n cursor: default;\\n}\\n.appointment-confirm-message {\\n text-align: center;\\n font-size: 1.2em;\\n}\\nfooter .smoothbook-link {\\n width: 60%;\\n float: right;\\n padding: 20px;\\n text-align: right;\\n}\\nfooter .smoothbook-link img {\\n width: 180px;\\n margin-left: 10px;\\n}\\n@media (max-width: 992px) {\\n footer .smoothbook-link {\\n width: 100%;\\n float: none;\\n text-align: center;\\n }\\n .choose-slots-container .choose-slots-continue {\\n width: 94%;\\n left: 3%;\\n }\\n}\\n.popover-content {\\n color: #212121;\\n}\\n.sb-datepicker {\\n position: relative;\\n color: black;\\n}\\n.sb-datepicker table {\\n border: none !important;\\n border-spacing: 2px 2px !important;\\n /* override bootstrap default */\\n border-collapse: separate !important;\\n}\\n.sb-datepicker .picker-switch {\\n text-align: center;\\n}\\n.sb-datepicker .datepicker-text {\\n padding: 17px 10px;\\n}\\n.sb-datepicker .bootstrap-datetimepicker-widget table td.day {\\n height: 10px;\\n line-height: 15px;\\n width: 10px;\\n}\\n.sb-datepicker .day {\\n text-align: center;\\n padding: 5px;\\n line-height: 10px;\\n}\\n.sb-datepicker.days-available .day:not(.disabled) {\\n background: #EC8F4C;\\n border-radius: 10px;\\n cursor: pointer;\\n}\\n.throbber {\\n position: fixed;\\n bottom: 10px;\\n min-width: 40%;\\n left: 50%;\\n transform: translate(-50%, 0);\\n background: #3B99DC;\\n z-index: 10;\\n padding: 10px 0;\\n font-size: 1.2em;\\n border: 1px solid #ccc;\\n text-align: center;\\n border-radius: 5px;\\n color: white;\\n}\\n.throbber .throbber-loading span.loading-message {\\n margin-left: 13px;\\n position: relative;\\n top: 1px;\\n}\\n.throbber .throbber-message {\\n padding: 0 20px;\\n}\\n.throbber.throbber-error {\\n color: white;\\n background: #FF8B60;\\n}\\n.throbber.throbber-error .throbber-message {\\n padding-right: 20px;\\n}\\n.login-page-container {\\n margin-bottom: 20px;\\n}\\n.login-page-container .login-header {\\n height: 60px;\\n background: inherit;\\n margin-bottom: 20px;\\n}\\n.login-page-container .login-heading {\\n margin-bottom: 20px;\\n}\\n.login-page-container .login-footer {\\n text-align: right;\\n}\\n.login-page-container .login-footer input[type=checkbox] {\\n position: relative;\\n top: 2px;\\n}\\n.login-page-container .login-footer label {\\n float: left;\\n font-weight: normal;\\n margin-left: 15px;\\n}\\n.login-page-container .customer-login .top-buttons {\\n margin: 20px 0;\\n}\\n.login-page-container .customer-login .login-with-facebook img {\\n width: 68%;\\n float: right;\\n max-width: 190px;\\n}\\n.login-page-container .customer-login .alert {\\n padding: 10px;\\n margin-bottom: 10px;\\n display: block;\\n text-decoration: none;\\n text-align: center;\\n}\\n.login-page-container .customer-login .alert.no-margin-bottom {\\n margin-bottom: 0;\\n}\\n.login-page-container .customer-login .rego-form {\\n color: #080808;\\n}\\n.login-page-container .customer-login label {\\n color: #080808;\\n font-weight: normal;\\n}\\n.login-page-container .customer-login p.forgot-password {\\n font-size: 0.9em;\\n text-align: right;\\n}\\n.login-page-container .newsletter-subscribe {\\n float: left;\\n}\\n.login-page-container p.customer-email-confirm {\\n background: black;\\n color: white;\\n text-align: center;\\n font-size: 1.5em;\\n}\\n.modal-content {\\n border-radius: 0;\\n}\\n.modal-content .modal-header,\\n.modal-content .modal-footer {\\n padding: 12px 12px 8px;\\n border-radius: 0;\\n}\\n.modal-content .modal-header {\\n background: #F7F8FA;\\n color: #080808;\\n}\\n.modal-content .modal-footer {\\n text-align: right;\\n border-top: 1px solid #e5e5e5;\\n}\\n.waitlist-modal .waitlist-info {\\n font-size: 17px;\\n text-align: center;\\n margin: 20px 0;\\n}\\n@media (max-width: 480px) {\\n .calendar-main .smooth-header .filter-options .resource-service-picker {\\n display: block;\\n float: none;\\n width: 100%;\\n }\\n .calendar-main .smooth-header .filter-options .resource-service-picker:first-of-type {\\n margin-bottom: 5px;\\n }\\n .header-container {\\n margin-bottom: 20px;\\n }\\n}\\n@media (max-width: 992px) {\\n .throbber {\\n min-width: 90%;\\n }\\n .mobile-next-prev {\\n visibility: visible !important;\\n }\\n}\\n@media (min-width: 768px) {\\n .is-table {\\n display: table;\\n width: 100%;\\n }\\n .is-table-row {\\n display: table-row;\\n }\\n .is-table-row [class*=\\\"col-\\\"] {\\n float: none;\\n display: table-cell;\\n vertical-align: top;\\n }\\n .is-table-cell {\\n display: table-cell;\\n }\\n .mobile-next-prev {\\n visibility: hidden;\\n }\\n .popover .popover-image {\\n max-width: 30%;\\n }\\n}\\n.angular-fade.ng-hide {\\n opacity: 0;\\n}\\n.angular-fade.ng-hide-remove,\\n.angular-fade.ng-hide-add {\\n display: block !important;\\n}\\n.angular-fade.ng-hide-remove {\\n transition: all ease-in-out 1000ms;\\n}\\n.angular-fade.ng-hide-add {\\n transition: all ease-in-out 0ms;\\n}\\n.blink {\\n animation: blink-animation 1.5s steps(5, start) infinite;\\n -webkit-animation: blink-animation 1.5s steps(5, start) infinite;\\n}\\n@keyframes blink-animation {\\n to {\\n visibility: hidden;\\n }\\n}\\n@-webkit-keyframes blink-animation {\\n to {\\n visibility: hidden;\\n }\\n}\\n.description-popover-btn {\\n position: relative;\\n bottom: 3px;\\n}\\n.smooth-popover .popover-heading {\\n font-weight: bold;\\n text-align: center;\\n margin: 10px 0 20px;\\n}\\n.smooth-popover .popover-section {\\n clear: both;\\n display: flex;\\n align-items: center;\\n margin-bottom: 20px;\\n}\\n.smooth-popover .popover-section:last-of-type {\\n margin-bottom: 10px;\\n}\\n.smooth-popover .popover-image {\\n box-shadow: 1px 1px 1px #898989;\\n float: left;\\n}\\n.smooth-popover .resource-popover-image {\\n float: right;\\n margin-left: auto;\\n}\\n.smooth-popover .popover-description {\\n text-align: center;\\n padding: 0 5px;\\n}\\n.choose-future-slots-container {\\n width: 100%;\\n}\\n.choose-future-slots-container .future-shifts-super-container {\\n border-top: 1px solid grey;\\n margin-top: 10px;\\n padding-top: 20px;\\n border-bottom: 1px solid grey;\\n padding-bottom: 20px;\\n margin-bottom: 20px;\\n}\\n.choose-future-slots-container .future-shifts-super-container h3.h3-service-name {\\n text-align: center;\\n margin-top: 5px;\\n}\\n.choose-future-slots-container .future-slots-dropdown {\\n margin-bottom: 20px;\\n border-bottom: 1px solid #555555;\\n padding-bottom: 20px;\\n}\\n.choose-future-slots-container .future-slots-dropdown span {\\n font-weight: bold;\\n}\\n.choose-future-slots-container .future-slots-dropdown button {\\n margin-left: 5px;\\n}\\n.choose-future-slots-container h5.book-individually-heading {\\n margin-bottom: 20px;\\n font-size: 1em;\\n font-weight: bold;\\n}\\n.choose-future-slots-container .date-cell {\\n font-weight: bold;\\n}\\n.choose-future-slots-container .choose-future-slots-table {\\n text-align: center;\\n}\\n.choose-future-slots-container .choose-future-slots-table .future-buttons {\\n text-align: right;\\n}\\n.choose-future-slots-container .choose-future-slots-table .future-buttons .btn {\\n line-height: 1.2;\\n}\\n.choose-future-slots-container .choose-future-slots-table .future-buttons button:last-of-type {\\n margin-left: 3px;\\n}\\n.choose-future-slots-container .choose-future-slots-table .slot-too-far {\\n padding: 0 10px;\\n font-size: 0.9em;\\n font-style: italic;\\n}\\n.appointment-countdown {\\n position: fixed;\\n left: 18%;\\n top: 22px;\\n background: #FF6E38;\\n color: white;\\n padding: 5px 10px;\\n box-shadow: 1px 1px 1px #898989;\\n z-index: 10;\\n}\\n.appointment-countdown .time-left {\\n width: 2.5em;\\n text-align: center;\\n display: inline-block;\\n}\\n.appointment-countdown .countdown-renew a,\\n.appointment-countdown .countdown-renew a:visited,\\n.appointment-countdown .countdown-renew a:hover {\\n color: white;\\n}\\n.overbooking-continue-booking button:last-of-type {\\n margin-right: 5px;\\n}\\n@media (max-width: 480px) {\\n .future-slots-dropdown select {\\n margin-bottom: 10px;\\n }\\n .appointment-countdown {\\n width: 90%;\\n left: 5%;\\n top: 3%;\\n }\\n}\\n@media (max-width: 992px) {\\n .choose-future-slots-container .choose-future-slots-table {\\n width: 100%;\\n }\\n .future-shifts-container {\\n padding: 10px 0;\\n margin-bottom: 10px;\\n border-bottom: 1px solid #898989;\\n }\\n}\\n@media (min-width: 768px) {\\n .choose-future-slots-table .is-table-cell {\\n padding: 3px 0;\\n }\\n .choose-future-slots-table .choose-timeslots-container {\\n margin-left: 5%;\\n }\\n}\\n.review-appointments-container h3 {\\n margin-bottom: 20px;\\n}\\n.review-appointments-container .workshop-info {\\n margin: 20px 0;\\n}\\n.review-appointments-container .workshop-info p {\\n font-size: 0.9em;\\n}\\n.review-appointments-container .appointment-list {\\n padding: 10px;\\n border: 1px solid #AEB3B7;\\n border-radius: 5px;\\n}\\n.is-table-row .is-table-cell,\\n.is-table-row .date-cell {\\n text-align: left;\\n}\\n.appointment-list .appointment-list-table .is-table-cell {\\n padding: 5px;\\n}\\n.appointment-list .appointment-list-table .is-table-row:not(:last-of-type) .is-table-cell {\\n border-bottom: 1px solid #ddd;\\n}\\n.appointment-list .appointment-list-table .button-container {\\n text-align: right;\\n}\\n@media (max-width: 992px) {\\n .appointment-list .is-table-row {\\n padding-bottom: 10px;\\n margin-bottom: 10px;\\n border-bottom: 1px solid #ddd;\\n }\\n .appointment-list .is-table-row .is-table-cell {\\n border-bottom: none !important;\\n }\\n .appointment-list .appointment-date {\\n font-weight: bold;\\n text-align: center;\\n }\\n .appointment-list .button-container {\\n text-align: right;\\n }\\n}\\n.payment-container {\\n margin-bottom: 60px;\\n}\\n.payment-container h4 {\\n margin-top: 0;\\n}\\n.payment-container .pay-by-membership {\\n display: flex;\\n flex-direction: column;\\n height: 300px;\\n}\\n.payment-container .pay-by-membership .membership-info {\\n flex: 1;\\n align-items: center;\\n justify-content: center;\\n display: flex;\\n flex-direction: column;\\n}\\n.payment-container .pay-by-membership span {\\n text-align: center;\\n display: block;\\n}\\n.payment-container .payment-instructions {\\n text-align: center;\\n margin-bottom: 20px;\\n font-weight: 200;\\n}\\n.payment-container .payment-chooser {\\n margin-bottom: 20px;\\n}\\n.payment-container .options-container {\\n padding: 0 20px;\\n}\\n.payment-container .options-container .payment-button-cell {\\n position: relative;\\n width: 11em;\\n}\\n.payment-container .options-container .payment-button-cell .choose-payment-buttons {\\n position: absolute;\\n}\\n.payment-container .options-container .choose-payment-buttons button {\\n border: none;\\n color: white;\\n height: 30px;\\n font-size: 0.8em;\\n padding: 0 25px;\\n}\\n.payment-container .options-container .choose-payment-buttons button.add:before {\\n content: 'add';\\n}\\n.payment-container .options-container .choose-payment-buttons button.add {\\n background: #3B99DC;\\n}\\n.payment-container .options-container .choose-payment-buttons button.use {\\n border-radius: 3px;\\n}\\n.payment-container .options-container .choose-payment-buttons button.use:before {\\n content: 'use';\\n}\\n.payment-container .options-container .choose-payment-buttons button.use {\\n background: #3B99DC;\\n}\\n.payment-container .options-container .choose-payment-buttons button.subtract:before {\\n content: 'remove';\\n}\\n.payment-container .options-container .choose-payment-buttons button.subtract {\\n background: #FF4F0E;\\n}\\n.payment-container .is-table-row.table-headings {\\n font-weight: bold;\\n}\\n.payment-container .is-table-row .is-table-cell {\\n padding: 5px 0;\\n}\\n.payment-container .is-table-row .is-table-cell:last-child {\\n text-align: right;\\n}\\n.payment-container .payment-options {\\n padding: 10px 0;\\n}\\n.payment-container .payment-options .payment-option {\\n padding: 20px 0;\\n border-bottom: 1px solid #898989;\\n}\\n.payment-container .payment-options .payment-option h4 {\\n font-weight: bold;\\n color: #555555;\\n}\\n.payment-container .payment-options .payment-option:first-of-type {\\n padding-top: 20px;\\n border-top: 1px solid #898989;\\n}\\n.payment-container .single-appointment-payment .is-table {\\n margin-bottom: 10px;\\n}\\n.payment-container .single-appointment-payment .choose-payment-buttons {\\n text-align: right;\\n}\\n.payment-container .package-payment-option h5 {\\n font-size: 1.1em;\\n font-weight: bold;\\n}\\n.payment-container .package-payment-option .package-cost {\\n padding: 10px 0 10px 10px;\\n}\\n.payment-container .package-payment-option .package-buttons {\\n padding: 10px 0;\\n}\\n.payment-container .package-payment-option .choose-payment-buttons {\\n float: right;\\n}\\n.payment-container .package-payment-option .coupon-submit {\\n display: block;\\n padding: 10px 0;\\n}\\n.payment-container .package-payment-option .coupon-submit input {\\n display: inline-block;\\n width: 60%;\\n}\\n.payment-container .package-payment-option .coupon-submit button {\\n display: inline-block;\\n width: 30%;\\n padding: 5px;\\n}\\n.payment-container .package-payment-option .purchased-package-cost {\\n padding-bottom: 10px;\\n}\\n.payment-container .package-payment-option .purchased-package-cost .is-table {\\n width: 90%;\\n margin-left: 10%;\\n font-size: 0.9em;\\n}\\n.payment-container .package-payment-option .purchased-package-cost .is-table .is-table-cell {\\n padding: 1px 2px;\\n}\\n.payment-container .package-payment-option .purchased-package-cost .package-total-cost {\\n text-decoration: underline;\\n}\\n.payment-container .choose-payment-banner {\\n color: white;\\n margin-bottom: 20px;\\n}\\n.payment-container .choose-payment-banner .payment-info {\\n display: inline-block;\\n padding: 10px 0;\\n text-align: center;\\n}\\n.payment-container .choose-payment-banner .appointments-to-pay-for {\\n background: #1784D1;\\n color: white;\\n width: 48%;\\n border-radius: 5px;\\n}\\n.payment-container .choose-payment-banner .payment-total {\\n display: inline-block;\\n width: 48%;\\n font-weight: bold;\\n font-size: 1.1em;\\n color: #333333;\\n}\\n.payment-container .choose-payment-banner .continue-payment {\\n display: inline-block;\\n background: #3B99DC;\\n width: 48%;\\n margin-left: 2%;\\n cursor: pointer;\\n}\\n.popover-content p:last-of-type {\\n margin-bottom: 0;\\n}\\n.popover-content .package-popover-expiry {\\n font-size: 0.9em;\\n font-style: italic;\\n margin-bottom: 0;\\n}\\n.coupon-submit .alert {\\n padding: 3px;\\n margin: 5px 0 0;\\n text-align: center;\\n width: 91%;\\n}\\n@media (max-width: 480px) {\\n .payment-container .choose-payment-banner .payment-info {\\n width: 48%;\\n }\\n}\\n@media (max-width: 992px) {\\n .payment-container .choose-payment-banner {\\n width: 96%;\\n left: 2%;\\n }\\n .payment-option .options-container .purchased-package-cost .is-table {\\n display: table;\\n }\\n .payment-option .options-container .purchased-package-cost .is-table-row {\\n display: table-row;\\n }\\n .payment-option .options-container .purchased-package-cost .is-table-cell {\\n display: table-cell;\\n }\\n .single-appointment-payment.payment-option {\\n padding-bottom: 40px;\\n }\\n .payment-option.single-appointment-payment .is-table {\\n display: table;\\n }\\n .payment-option.single-appointment-payment .is-table-row {\\n display: table-row;\\n }\\n .payment-option.single-appointment-payment .is-table-cell {\\n display: table-cell;\\n }\\n}\\n.payment-final h4.review-appointment-final {\\n color: #555555;\\n text-align: right;\\n}\\n.payment-final h4.review-appointment-final a {\\n color: #555555;\\n}\\n.payment-final .pay-appointment-review {\\n display: none;\\n padding: 20px 0;\\n}\\n.payment-summary {\\n padding-top: 10px;\\n}\\n.payment-summary .table {\\n margin-bottom: 0;\\n}\\n.payment-summary .payment-total-row {\\n font-weight: bold;\\n font-size: 1.2em;\\n}\\n.payment-summary .mobile-total-to-pay {\\n font-weight: bold;\\n margin: 20px 0;\\n font-size: 1.2em;\\n text-align: center;\\n}\\n.unpaid-memberships {\\n margin: 20px 0;\\n}\\n.stripe-card-payment .operation-success {\\n padding: 5px 0 3px;\\n text-align: center;\\n margin: 15px 0 10px;\\n}\\n.stripe-card-payment.stripe-membership-payment .stripe-payment-methods .use-default-card label {\\n display: block;\\n}\\n.stripe-card-payment.stripe-membership-payment .stripe-payment-methods .use-default-card .btn {\\n padding: 3px 5px 2px;\\n font-size: 13px;\\n}\\n.stripe-card-payment.stripe-membership-payment .stripe-payment-methods .use-default-card .btn-primary {\\n margin-right: 5px;\\n}\\n.stripe-card-payment.stripe-membership-payment .stripe-payment-methods .use-default-card .default-card-details {\\n text-align: center;\\n margin: 15px 0;\\n background: lightslategray;\\n color: white;\\n padding: 5px 0 4px;\\n}\\n.stripe-card-payment.stripe-membership-payment .stripe-payment-methods .unpaid-memberships {\\n margin: 10px 0 20px;\\n}\\n.stripe-card-payment.stripe-membership-payment .stripe-payment-methods .unpaid-memberships input[type='checkbox'] {\\n position: relative;\\n top: 2px;\\n}\\n.stripe-card-payment.stripe-membership-payment .stripe-payment-methods .unpaid-memberships .update-membership-names {\\n list-style-type: none;\\n}\\n.stripe-card-payment .sca-alert {\\n margin: 20px 0;\\n}\\n.stripe-card-payment .stripe-card-form {\\n margin-bottom: 20px;\\n}\\n.stripe-card-payment .stripe-card-error,\\n.stripe-card-payment .stripe-card-success {\\n display: block;\\n padding: 3px;\\n text-align: center;\\n margin: 15px 0 5px;\\n}\\n.stripe-card-payment .bottom-section {\\n padding-top: 10px;\\n}\\n.stripe-card-payment .btn {\\n padding: 10px 10px 6px;\\n border-radius: 3px;\\n}\\n.stripe-card-payment .btn:last-of-type {\\n margin-left: 5px;\\n}\\n.stripe-card-payment .pay-now-button {\\n background: #00B965;\\n}\\n.stripe-card-payment .powered-by-stripe {\\n float: left;\\n max-width: 30%;\\n}\\n.stripe-card-payment .control-short {\\n width: 5em;\\n display: inline-block;\\n}\\n.stripe-card-payment .StripeElement {\\n background-color: white;\\n height: 40px;\\n padding: 10px 12px;\\n border-radius: 4px;\\n border: 1px solid transparent;\\n box-shadow: 0 1px 3px 0 #e6ebf1;\\n -webkit-transition: box-shadow 150ms ease;\\n transition: box-shadow 150ms ease;\\n}\\n.stripe-card-payment .StripeElement--focus {\\n box-shadow: 0 1px 3px 0 #cfd7df;\\n}\\n.stripe-card-payment .StripeElement--invalid {\\n border-color: #fa755a;\\n}\\n.stripe-card-payment .StripeElement--webkit-autofill {\\n background-color: #fefde5 !important;\\n}\\n.tsandcs-container .tsandcs {\\n font-size: 1em;\\n background: white;\\n color: darkslategrey;\\n max-height: 12em;\\n overflow-y: auto;\\n border: 1px solid #AEB3B7;\\n padding: 10px;\\n border-radius: 5px;\\n}\\n.days-display .popover {\\n min-width: 40%;\\n}\\n@media (max-width: 480px) {\\n .days-display .popover {\\n min-width: 100%;\\n }\\n}\\n.cost-modal .modal-header h4 {\\n margin: 0;\\n display: inline;\\n}\\n.cost-modal .modal-body {\\n position: relative;\\n padding: 15px 15px 5px;\\n font-size: 0.9em;\\n}\\n.cost-modal .modal-body .membership-title {\\n display: flex;\\n align-items: center;\\n margin-bottom: 15px;\\n}\\n.cost-modal .modal-body .membership-title .membership-name {\\n font-size: 17px;\\n font-weight: bold;\\n flex: 1;\\n}\\n.cost-modal .modal-body .membership-title .membership-options select {\\n height: 21px;\\n border: 1px solid lightgray;\\n margin-left: 5px;\\n}\\n.cost-modal .modal-body .membership-title .membership-options label {\\n display: inline-block;\\n background: #1784D1;\\n color: white;\\n font-weight: normal;\\n margin: 0;\\n position: relative;\\n top: -1px;\\n padding: 2px 5px 1px;\\n}\\n.cost-modal .modal-body table,\\n.cost-modal .modal-body tr,\\n.cost-modal .modal-body th,\\n.cost-modal .modal-body td {\\n font-size: inherit;\\n}\\n.cost-modal .modal-body table.membership-plans-list.table {\\n margin-bottom: 0;\\n}\\n.cost-modal .modal-body .membership-description {\\n margin: 15px 0;\\n text-align: center;\\n font-style: italic;\\n}\\n.cost-modal .modal-body label {\\n font-weight: normal;\\n}\\n.cost-modal .modal-body .membership-options-div {\\n border-bottom: 1px solid lightgrey;\\n margin-bottom: 20px;\\n}\\n.cost-modal .modal-body .membership-options-div h5 {\\n margin: 5px 0 20px;\\n}\\n.cost-modal .modal-body .membership-assets-list {\\n margin: 10px 0;\\n}\\n.cost-modal .modal-body .membership-assets-list .packages-table-container {\\n padding: 3%;\\n}\\n.cost-modal .modal-body .membership-assets-list .packages-table-container table {\\n margin: 0 10px;\\n width: 96%;\\n}\\n.cost-modal .modal-body .view-memberships-link {\\n color: inherit;\\n text-decoration: underline;\\n}\\n.cost-modal .payment-options-table {\\n margin-bottom: 0;\\n}\\n.membership-modal .modal-header h4 {\\n margin: 0;\\n display: inline;\\n}\\n.membership-modal .modal-body {\\n position: relative;\\n padding: 15px 15px 5px;\\n font-size: 0.9em;\\n}\\n.membership-modal .modal-body .membership-title {\\n margin-bottom: 15px;\\n}\\n.membership-modal .modal-body .membership-title .membership-options {\\n text-align: right;\\n padding: 0 0 12px;\\n border-bottom: 1px solid grey;\\n margin-bottom: 15px;\\n}\\n.membership-modal .modal-body .membership-title .membership-name {\\n font-size: 17px;\\n font-weight: bold;\\n flex: 1;\\n}\\n.membership-modal .modal-body .membership-title .membership-options select {\\n height: 21px;\\n border: 1px solid lightgray;\\n margin-left: 5px;\\n}\\n.membership-modal .modal-body .membership-title .membership-options label {\\n display: inline-block;\\n background: #1784D1;\\n color: white;\\n font-weight: normal;\\n margin: 0;\\n position: relative;\\n top: -1px;\\n padding: 2px 5px 1px;\\n}\\n.membership-modal .modal-body .chosen-plan .chosen-plan-text {\\n display: block;\\n margin: 10px 0;\\n font-weight: bold;\\n text-align: center;\\n}\\n.membership-modal .modal-body .membership-already-purchased,\\n.membership-modal .modal-body .membership-purchase-success {\\n padding: 5px 0 3px;\\n text-align: center;\\n}\\n.membership-modal .modal-body .membership-purchase-success {\\n margin: 15px 0 10px;\\n}\\n.membership-modal .modal-body table,\\n.membership-modal .modal-body tr,\\n.membership-modal .modal-body th,\\n.membership-modal .modal-body td {\\n font-size: inherit;\\n}\\n.membership-modal .modal-body table.membership-plans-list.table {\\n margin-bottom: 0;\\n}\\n.membership-modal .modal-body .membership-description {\\n margin: 15px 0 30px;\\n text-align: center;\\n font-style: italic;\\n}\\n.membership-modal .modal-body label {\\n font-weight: normal;\\n}\\n.membership-modal .modal-body .membership-options-div {\\n margin-bottom: 10px;\\n}\\n.membership-modal .modal-body .membership-options-div h5 {\\n margin: 5px 0 20px;\\n}\\n.membership-modal .modal-body .membership-assets-list {\\n margin: 10px 0;\\n}\\n.membership-modal .modal-body .membership-assets-list .packages-table-container {\\n padding: 3%;\\n}\\n.membership-modal .modal-body .membership-assets-list .packages-table-container table {\\n margin: 0 10px;\\n width: 96%;\\n}\\n.review-continue button:last-of-type {\\n margin-right: 5px;\\n}\\n.confirm-appointments {\\n padding-bottom: 40px;\\n}\\n.confirm-appointments .confirm-container {\\n padding: 20px 0;\\n}\\n.confirm-appointments .confirmation-message {\\n font-style: italic;\\n padding: 20px 0;\\n text-align: center;\\n}\\n.confirm-appointments .service-instructions {\\n font-size: 0.9em;\\n background: white;\\n max-height: 12em;\\n overflow-y: auto;\\n border: 1px solid #AEB3B7;\\n padding: 10px;\\n border-radius: 5px;\\n}\\n.confirm-appointments .confirm-social {\\n text-align: center;\\n}\\n.confirm-appointments .confirm-social h5 {\\n font-size: 1em;\\n font-weight: bold;\\n}\\n.service-calendar .service-availability-container {\\n margin: 0 0 10px;\\n border-radius: 5px;\\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\\n}\\n.service-calendar .service-availability-container .service-list-item {\\n padding: 5px 20px;\\n background: #5DC9B1;\\n color: white;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n}\\n.service-calendar .service-availability-container .service-list-item .service-item.service-name {\\n flex: 1;\\n}\\n.service-calendar .service-availability-container .service-list-item .service-item.service-button-item {\\n flex-basis: 10%;\\n}\\n.service-calendar .service-availability-container .service-list-item .service-item .description-popover-btn {\\n position: static;\\n}\\n.service-calendar .service-availability-container .service-list-item .list-service-availability {\\n background: white;\\n}\\n.availability-calendar {\\n padding: 5px 10px;\\n display: none;\\n}\\n.availability-calendar .month-chooser {\\n display: flex;\\n align-items: center;\\n margin: 15px 0;\\n}\\n.availability-calendar .month-chooser h4 {\\n margin: 0;\\n padding: 0;\\n font-weight: bold;\\n}\\n.availability-calendar .month-chooser .next-previous {\\n flex: 1;\\n text-align: center;\\n}\\n.availability-calendar .month-chooser .next-previous button {\\n width: 100%;\\n}\\n.availability-calendar .service-calendar-key {\\n text-align: right;\\n font-size: 0.9em;\\n display: flex;\\n align-items: center;\\n padding: 10px;\\n}\\n.availability-calendar .service-calendar-key .key-available {\\n width: 16px;\\n height: 16px;\\n background: #FFE290;\\n display: inline-block;\\n margin-left: auto;\\n border-radius: 5px;\\n}\\n.availability-calendar .service-calendar-key .glyphicon {\\n margin-left: 5px;\\n}\\n.availability-calendar .day-chooser-table {\\n width: 100%;\\n border-collapse: separate;\\n border-spacing: 5px;\\n}\\n.availability-calendar .day-chooser-table th {\\n text-align: center;\\n}\\n.availability-calendar .day-chooser-table tr,\\n.availability-calendar .day-chooser-table td {\\n width: 15%;\\n text-align: right;\\n}\\n.availability-calendar .day-chooser-table tr > td.td-waitlist .a-waitlist .glyphicon {\\n position: relative;\\n top: 0px;\\n}\\n.availability-calendar .day-chooser-table tr > td.td-selected {\\n background: #FFE290;\\n}\\n.availability-calendar .day-chooser-table tr > td.not-past {\\n border: 1px solid #AEB3B7;\\n border-radius: 5px;\\n}\\n.availability-calendar .day-chooser-table tr > td a,\\n.availability-calendar .day-chooser-table tr > td span {\\n padding: 0 10px;\\n}\\n.availability-calendar .day-chooser-table tr > td a {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n text-decoration: none;\\n color: inherit;\\n}\\n.availability-calendar .day-chooser-table tr > td a span {\\n margin-right: auto;\\n}\\n.service-availability .service-header-container {\\n margin: 20px 0 20px;\\n}\\n.service-availability .service-header-container h3,\\n.service-availability .service-header-container h4 {\\n text-align: center;\\n}\\n.service-availability .resource-name {\\n font-weight: bold;\\n}\\n.service-availability .choose-slots-container .choose-slots-table-container {\\n padding: 0;\\n}\\n.service-availability .choose-slots-container .choose-slots-table-container .is-table {\\n border-top: none;\\n margin-top: 0;\\n}\\n.service-availability .choose-slots-container .choose-slots-table-container .choose-slots-table {\\n margin-bottom: 0;\\n}\\n.service-availability .is-table {\\n margin: 0;\\n}\\n.service-availability .is-table-cell {\\n padding: 2px 0;\\n}\\n.service-availability .is-table-cell.timeslot-length {\\n width: 30%;\\n}\\n.service-availability .is-table-cell:last-child {\\n text-align: right;\\n}\\n.choose-slots-container {\\n padding-bottom: 50px;\\n}\\n.choose-slots-container .resource-shifts-container {\\n margin-bottom: 40px;\\n}\\n.choose-slots-container h3 {\\n margin: 20px 0;\\n}\\n.choose-slots-container h2 {\\n text-align: center;\\n}\\n.choose-slots-container p {\\n margin-bottom: 10px;\\n}\\n.choose-slots-container .choose-slots-instructions {\\n font-style: italic;\\n margin-bottom: 10px;\\n display: inline-block;\\n font-size: 0.9em;\\n}\\n.choose-slots-container .choose-slots-table-container {\\n padding: 20px 0 0;\\n}\\n.choose-slots-container .choose-slots-table-container .workshop-info {\\n margin: 20px 0;\\n}\\n.choose-slots-container .choose-slots-table-container .workshop-info p {\\n font-size: 0.9em;\\n}\\n.choose-slots-container .choose-slots-table-container button {\\n padding: 1px 10px;\\n text-decoration: none;\\n}\\n.choose-slots-container .choose-slots-table-container .choose-slots-table {\\n margin-bottom: 20px;\\n}\\n.choose-slots-container .choose-slots-table-container .is-table {\\n width: 100%;\\n border-top: 1px solid grey;\\n margin-top: 10px;\\n padding-top: 20px;\\n border-bottom: 1px solid grey;\\n padding-bottom: 20px;\\n margin-bottom: 20px;\\n}\\n.choose-slots-container .choose-slots-table-container .is-table .is-table-cell {\\n font-size: 15px;\\n padding: 5px;\\n}\\n.choose-slots-container .choose-slots-table-container .is-table .is-table-row > .is-table-cell:last-child {\\n text-align: right;\\n}\\n.choose-slots-container .choose-slots-continue {\\n padding: 13px;\\n text-align: right;\\n}\\n.choose-slots-container .choose-slots-continue .timeslot-text {\\n margin-right: 10px;\\n font-weight: bold;\\n}\\n.choose-slots-container .choose-slots-cancel {\\n position: relative;\\n right: 8px;\\n}\\n.choose-slots-container.future-slots p.choose-future-slots-para {\\n margin-bottom: 5px;\\n}\\n.choose-slots-container.future-slots span.continue-span {\\n display: block;\\n text-align: center;\\n margin-bottom: 20px;\\n}\\n.choose-slots-container.future-slots span.continue-span a {\\n color: inherit;\\n}\\n@media (min-width: 992px) {\\n .choose-slots-main .is-table-row {\\n margin-bottom: 5px;\\n }\\n}\\nfooter {\\n position: relative;\\n}\\nfooter .footer-version {\\n font-size: 0.8em;\\n width: 10%;\\n float: right;\\n text-align: right;\\n padding: 5px 10px;\\n font-style: italic;\\n}\\n.description-modal {\\n color: #565555;\\n}\\n.description-modal button.btn-default {\\n margin-right: 5px;\\n}\\n.description-modal .modal-content {\\n border-radius: 10px;\\n}\\n.description-modal .modal-content .modal-header {\\n background: inherit;\\n border-radius: 10px;\\n}\\n.description-modal .resource-service-description h3.description-modal-heading {\\n font-size: 20px;\\n margin: 10px 0 20px;\\n color: black;\\n}\\n.description-modal .resource-service-description .description-modal-description {\\n margin-bottom: 10px;\\n font-size: 13px;\\n display: flex;\\n align-items: center;\\n justify-content: space-evenly;\\n}\\n@media (max-width: 480px) {\\n .description-modal .resource-service-description .description-modal-description {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: center;\\n }\\n}\\n.description-modal .resource-service-description .description-modal-description p {\\n width: 53%;\\n}\\n@media (max-width: 480px) {\\n .description-modal .resource-service-description .description-modal-description p {\\n order: 1;\\n text-align: center;\\n }\\n}\\n.description-modal .resource-service-description .description-modal-description img {\\n box-shadow: 1px 1px 4px grey;\\n border-radius: 5px;\\n}\\n@media (max-width: 480px) {\\n .description-modal .resource-service-description .description-modal-description img {\\n margin: 10px 0;\\n order: 0;\\n }\\n}\\n@media (max-width: 480px) {\\n .description-modal .resource-service-description .description-modal-description .description-modal-service-image {\\n margin: 0 0 20px;\\n }\\n}\\n@media (max-width: 480px) {\\n .description-modal .resource-service-description .description-modal-description .description-modal-resource-image {\\n margin: 0 0 20px;\\n }\\n}\\n.waitlist-modal .modal-title {\\n font-weight: normal;\\n font-size: 1em;\\n}\\n.waitlist-modal .waitlist-description {\\n margin: 20px 0;\\n font-weight: bold;\\n}\\n.waitlist-modal p {\\n margin: 0;\\n font-size: 1em;\\n}\\n.waitlist-modal p.waitlist-description-prompt {\\n font-size: 0.95em;\\n margin-bottom: 10px;\\n}\\n.waitlist-modal .alert {\\n margin: 20px 0 10px;\\n}\\n.customer-account.memberships-page .memberships-container .membership-top-level-info h3 {\\n margin: 0 0 6px;\\n}\\n.customer-account.memberships-page .memberships-container .membership-top-level-info .membership-status-info {\\n display: flex;\\n margin: 15px 0;\\n padding: 5px 0;\\n border-bottom: 1px solid grey;\\n border-top: 1px solid grey;\\n}\\n.customer-account.memberships-page .memberships-container .membership-top-level-info .membership-status-info .status-label,\\n.customer-account.memberships-page .memberships-container .membership-top-level-info .membership-status-info .expires-label {\\n margin-right: 5px;\\n font-weight: bold;\\n}\\n.customer-account.memberships-page .memberships-container .membership-top-level-info .membership-status-info .expires-span {\\n flex: 1;\\n margin-left: 20px;\\n}\\n.customer-account.memberships-page .memberships-container .membership-history-buttons {\\n display: flex;\\n justify-content: space-evenly;\\n}\\n.customer-account.memberships-page .memberships-container .membership-history-buttons .membership-history-header {\\n cursor: pointer;\\n}\\n.customer-account.memberships-page .memberships-container .membership-history-buttons .membership-history-header .glyphicon {\\n font-size: 11px;\\n}\\n.customer-account.memberships-page .memberships-container .membership-history-section {\\n padding-top: 15px;\\n}\\n.customer-account.memberships-page .memberships-container .membership-history-section .membership-table {\\n font-size: inherit;\\n display: none;\\n}\\n.customer-account.memberships-page .memberships-container .membership-history-section .membership-table td a {\\n color: inherit;\\n}\\n.google-ad-container {\\n padding: 5px;\\n backdrop-filter: brightness(80%);\\n}\\n.google-ad-container.dev-mode .google-banner {\\n background: yellow;\\n}\\n.google-ad-container .mmtwrappos {\\n margin-bottom: 0 !important;\\n}\\n.google-ad-container.ad-container-top {\\n border-bottom: 1px solid #AEB3B7;\\n}\\n.google-ad-container.ad-container-bottom {\\n margin-top: 20px;\\n border-top: 1px solid #AEB3B7;\\n}\\n@media (max-width: 768px) {\\n .google-ad-container .google-banner-top {\\n width: 100%;\\n height: 50px;\\n }\\n .google-ad-container .google-banner-bottom {\\n width: 100%;\\n height: 250px;\\n }\\n}\\n@media (min-width: 768px) {\\n .google-ad-container .google-banner-top,\\n .google-ad-container .google-banner-bottom {\\n min-width: 400px;\\n max-width: 970px;\\n width: 100%;\\n height: 100px;\\n margin: auto;\\n }\\n}\\n.btn {\\n border-radius: 5px;\\n}\\n\", \"\"]);\n\n// exports\n","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";"],"sourceRoot":""}