UNPKG

merchi_checkout

Version:
461 lines (459 loc) 85.8 kB
'use client'; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import * as React from 'react'; import { createContext, useContext, useEffect, useState } from 'react'; import { tabsInit } from '../tabs_utils'; import { Merchi } from 'merchi_sdk_ts'; import { jsx as _jsx } from "react/jsx-runtime"; var MerchiCheckoutContext = /*#__PURE__*/createContext({ activeTabIndex: 0, alerts: [], alertClose: function alertClose() {}, alertErrorShow: function alertErrorShow() {}, classNameMerchiCheckoutAlertsContainer: undefined, classNameMerchiCheckoutAlert: undefined, classNameMerchiCheckoutAlertError: undefined, classNameMerchiCheckoutAlertSuccess: undefined, classNameMerchiCheckoutButtonPrimary: undefined, classNameMerchiCheckoutButtonPrimaryBlock: undefined, classNameMerchiCheckoutButtonSecondary: undefined, classNameMerchiCheckoutButtonSecondaryBlock: undefined, classNameMerchiCheckoutButtonDownloadInvoice: undefined, classNameMerchiCheckoutConfirmInfoPanel: undefined, classNameMerchiCheckoutFooterActionsContainer: undefined, classNameMerchiCheckoutFormCheckbox: undefined, classNameMerchiCheckoutFormGroup: undefined, classNameMerchiCheckoutFormGroupCheckbox: undefined, classNameMerchiCheckoutFormInput: undefined, classNameMerchiCheckoutFormSelect: undefined, classNameMerchiCheckoutGoogleSuggestList: undefined, classNameMerchiCheckoutGoogleSuggestListItem: undefined, classNameMerchiCheckoutListGroupItemLoader: undefined, classNameMerchiCheckoutFormLabelCheckbox: undefined, classNameMerchiCheckoutInputError: undefined, classNameMerchiCheckoutListGroup: undefined, classNameMerchiCheckoutListGroupItem: undefined, classNameMerchiCheckoutRow: undefined, classNameMerchiCheckoutRowColumn: undefined, classNameMerchiCheckoutSubtitle: undefined, classNameMerchiCheckoutTabsContainer: undefined, classNameMerchiCheckoutTab: undefined, classNameMerchiCheckoutTabPane: undefined, classNameMerchiCheckoutTabPaneContainer: undefined, classNameMerchiCheckoutTabButton: undefined, classNameMerchiInvoiceButtonPayInvoice: undefined, clearCustomer: function clearCustomer() {}, currentUser: undefined, customer: undefined, discountButtonText: undefined, discountCallbackError: function discountCallbackError() {}, discountCallbackSuccess: function discountCallbackSuccess() {}, discountClassName: undefined, discountClassNameButton: undefined, discountClassNameButtonContainer: undefined, discountClassNameButtonItemRemove: undefined, discountClassNameErrorMessage: undefined, discountClassNameInput: undefined, discountClassNameInputContainer: undefined, discountClassNameInputdiscountLabel: undefined, discountClassNameListItem: undefined, discountClassNameListItems: undefined, discountClassNameMainContainer: undefined, discountLabel: undefined, discountShowAppliedItems: true, domain: undefined, editDraftTemplate: function editDraftTemplate() {}, googlePlacesApiKey: undefined, googlePlacesLoaded: false, isBuyRequest: false, isOpen: false, loading: false, merchi: undefined, messageSuccessBuyRequest: undefined, messageSuccessQuoteRequest: undefined, nextTab: function nextTab() {}, includeDomainSignup: false, invoice: {}, isProductEmbedForm: false, job: {}, product: {}, redirectAfterSuccessUrl: undefined, redirectAfterQuoteSuccessUrl: undefined, redirectWithValue: true, setActiveTabById: function setActiveTabById() {}, setActiveTabIndex: function setActiveTabIndex() {}, setCustomer: function setCustomer() {}, setDomain: function setDomain() {}, setInvoice: function setInvoice() {}, setJob: function setJob() {}, showDiscountCode: true, showUserTermsAndConditions: true, tabs: [], toggleMerchiCheckout: function toggleMerchiCheckout() {}, urlFrontend: '', urlApi: '' }); export var useMerchiCheckboutContext = function useMerchiCheckboutContext() { return useContext(MerchiCheckoutContext); }; export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) { var children = _ref.children, _ref$classNameMerchiC = _ref.classNameMerchiCheckoutAlertsContainer, classNameMerchiCheckoutAlertsContainer = _ref$classNameMerchiC === void 0 ? 'd-flex justify-content-center flex-column alerts-container-sm' : _ref$classNameMerchiC, _ref$classNameMerchiC2 = _ref.classNameMerchiCheckoutAlert, classNameMerchiCheckoutAlert = _ref$classNameMerchiC2 === void 0 ? 'alert alert-dismissible alert-notify' : _ref$classNameMerchiC2, _ref$classNameMerchiC3 = _ref.classNameMerchiCheckoutAlertError, classNameMerchiCheckoutAlertError = _ref$classNameMerchiC3 === void 0 ? 'alert-danger' : _ref$classNameMerchiC3, _ref$classNameMerchiC4 = _ref.classNameMerchiCheckoutAlertSuccess, classNameMerchiCheckoutAlertSuccess = _ref$classNameMerchiC4 === void 0 ? 'alert-success' : _ref$classNameMerchiC4, _ref$classNameMerchiC5 = _ref.classNameMerchiCheckoutButtonPrimary, classNameMerchiCheckoutButtonPrimary = _ref$classNameMerchiC5 === void 0 ? 'btn btn-lmd btn-primary d-flex align-items-center justify-content-center' : _ref$classNameMerchiC5, _ref$classNameMerchiC6 = _ref.classNameMerchiCheckoutButtonPrimaryBlock, classNameMerchiCheckoutButtonPrimaryBlock = _ref$classNameMerchiC6 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref$classNameMerchiC6, _ref$classNameMerchiC7 = _ref.classNameMerchiCheckoutButtonSecondary, classNameMerchiCheckoutButtonSecondary = _ref$classNameMerchiC7 === void 0 ? 'btn btn-lg btn-secondary' : _ref$classNameMerchiC7, _ref$classNameMerchiC8 = _ref.classNameMerchiCheckoutButtonSecondaryBlock, classNameMerchiCheckoutButtonSecondaryBlock = _ref$classNameMerchiC8 === void 0 ? 'btn btn-lg btn-secondary btn-block' : _ref$classNameMerchiC8, _ref$classNameMerchiC9 = _ref.classNameMerchiCheckoutButtonDownloadInvoice, classNameMerchiCheckoutButtonDownloadInvoice = _ref$classNameMerchiC9 === void 0 ? 'btn btn-lg btn-primary' : _ref$classNameMerchiC9, _ref$classNameMerchiC10 = _ref.classNameMerchiCheckoutConfirmInfoPanel, classNameMerchiCheckoutConfirmInfoPanel = _ref$classNameMerchiC10 === void 0 ? 'd-flex align-items-center' : _ref$classNameMerchiC10, _ref$classNameMerchiC11 = _ref.classNameMerchiCheckoutFooterActionsContainer, classNameMerchiCheckoutFooterActionsContainer = _ref$classNameMerchiC11 === void 0 ? 'd-flex justify-content-between mt-4' : _ref$classNameMerchiC11, _ref$classNameMerchiC12 = _ref.classNameMerchiCheckoutFormCheckbox, classNameMerchiCheckoutFormCheckbox = _ref$classNameMerchiC12 === void 0 ? 'form-check-input' : _ref$classNameMerchiC12, _ref$classNameMerchiC13 = _ref.classNameMerchiCheckoutFormGroup, classNameMerchiCheckoutFormGroup = _ref$classNameMerchiC13 === void 0 ? 'form-group' : _ref$classNameMerchiC13, _ref$classNameMerchiC14 = _ref.classNameMerchiCheckoutFormGroupCheckbox, classNameMerchiCheckoutFormGroupCheckbox = _ref$classNameMerchiC14 === void 0 ? 'form-check' : _ref$classNameMerchiC14, _ref$classNameMerchiC15 = _ref.classNameMerchiCheckoutFormInput, classNameMerchiCheckoutFormInput = _ref$classNameMerchiC15 === void 0 ? 'form-control' : _ref$classNameMerchiC15, _ref$classNameMerchiC16 = _ref.classNameMerchiCheckoutFormSelect, classNameMerchiCheckoutFormSelect = _ref$classNameMerchiC16 === void 0 ? 'form-control' : _ref$classNameMerchiC16, _ref$classNameMerchiC17 = _ref.classNameMerchiCheckoutGoogleSuggestList, classNameMerchiCheckoutGoogleSuggestList = _ref$classNameMerchiC17 === void 0 ? 'list-group m-b-0' : _ref$classNameMerchiC17, _ref$classNameMerchiC18 = _ref.classNameMerchiCheckoutGoogleSuggestListItem, classNameMerchiCheckoutGoogleSuggestListItem = _ref$classNameMerchiC18 === void 0 ? 'list-group-item cursor-pointer' : _ref$classNameMerchiC18, _ref$classNameMerchiC19 = _ref.classNameMerchiCheckoutListGroupItemLoader, classNameMerchiCheckoutListGroupItemLoader = _ref$classNameMerchiC19 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref$classNameMerchiC19, _ref$classNameMerchiC20 = _ref.classNameMerchiCheckoutInputError, classNameMerchiCheckoutInputError = _ref$classNameMerchiC20 === void 0 ? 'text-danger' : _ref$classNameMerchiC20, _ref$classNameMerchiC21 = _ref.classNameMerchiCheckoutFormLabelCheckbox, classNameMerchiCheckoutFormLabelCheckbox = _ref$classNameMerchiC21 === void 0 ? '' : _ref$classNameMerchiC21, _ref$classNameMerchiC22 = _ref.classNameMerchiCheckoutListGroup, classNameMerchiCheckoutListGroup = _ref$classNameMerchiC22 === void 0 ? 'modal-merchi-checkout-shipment-option' : _ref$classNameMerchiC22, _ref$classNameMerchiC23 = _ref.classNameMerchiCheckoutListGroupItem, classNameMerchiCheckoutListGroupItem = _ref$classNameMerchiC23 === void 0 ? 'list-group-item' : _ref$classNameMerchiC23, _ref$classNameMerchiC24 = _ref.classNameMerchiCheckoutRow, classNameMerchiCheckoutRow = _ref$classNameMerchiC24 === void 0 ? 'merchi-row' : _ref$classNameMerchiC24, _ref$classNameMerchiC25 = _ref.classNameMerchiCheckoutRowColumn, classNameMerchiCheckoutRowColumn = _ref$classNameMerchiC25 === void 0 ? 'merchi-column' : _ref$classNameMerchiC25, _ref$classNameMerchiC26 = _ref.classNameMerchiCheckoutSubtitle, classNameMerchiCheckoutSubtitle = _ref$classNameMerchiC26 === void 0 ? 'merchi-checkout-subtitle' : _ref$classNameMerchiC26, _ref$classNameMerchiC27 = _ref.classNameMerchiCheckoutTabsContainer, classNameMerchiCheckoutTabsContainer = _ref$classNameMerchiC27 === void 0 ? 'merchi-checkout-tabs-container' : _ref$classNameMerchiC27, _ref$classNameMerchiC28 = _ref.classNameMerchiCheckoutTab, classNameMerchiCheckoutTab = _ref$classNameMerchiC28 === void 0 ? 'merchi-checkout-tab' : _ref$classNameMerchiC28, _ref$classNameMerchiC29 = _ref.classNameMerchiCheckoutTabButton, classNameMerchiCheckoutTabButton = _ref$classNameMerchiC29 === void 0 ? 'btn merchi-checkout-tab-btn' : _ref$classNameMerchiC29, _ref$classNameMerchiC30 = _ref.classNameMerchiCheckoutTabPane, classNameMerchiCheckoutTabPane = _ref$classNameMerchiC30 === void 0 ? 'tab-pane' : _ref$classNameMerchiC30, _ref$classNameMerchiC31 = _ref.classNameMerchiCheckoutTabPaneContainer, classNameMerchiCheckoutTabPaneContainer = _ref$classNameMerchiC31 === void 0 ? 'tab-content' : _ref$classNameMerchiC31, _ref$classNameMerchiI = _ref.classNameMerchiInvoiceButtonPayInvoice, classNameMerchiInvoiceButtonPayInvoice = _ref$classNameMerchiI === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref$classNameMerchiI, currentUser = _ref.currentUser, _ref$discountButtonTe = _ref.discountButtonText, discountButtonText = _ref$discountButtonTe === void 0 ? 'Apply' : _ref$discountButtonTe, _ref$discountClassNam = _ref.discountClassName, discountClassName = _ref$discountClassNam === void 0 ? 'merchi-checkout-discount-code-container' : _ref$discountClassNam, _ref$discountClassNam2 = _ref.discountClassNameButton, discountClassNameButton = _ref$discountClassNam2 === void 0 ? 'btn btn-primary' : _ref$discountClassNam2, _ref$discountClassNam3 = _ref.discountClassNameButtonContainer, discountClassNameButtonContainer = _ref$discountClassNam3 === void 0 ? '' : _ref$discountClassNam3, _ref$discountClassNam4 = _ref.discountClassNameButtonItemRemove, discountClassNameButtonItemRemove = _ref$discountClassNam4 === void 0 ? 'btn btn-sm btn-link' : _ref$discountClassNam4, _ref$discountClassNam5 = _ref.discountClassNameErrorMessage, discountClassNameErrorMessage = _ref$discountClassNam5 === void 0 ? 'text-danger' : _ref$discountClassNam5, _ref$discountClassNam6 = _ref.discountClassNameInput, discountClassNameInput = _ref$discountClassNam6 === void 0 ? 'form-control' : _ref$discountClassNam6, _ref$discountClassNam7 = _ref.discountClassNameInputContainer, discountClassNameInputContainer = _ref$discountClassNam7 === void 0 ? 'merchi-checkout-discount-code-field-container' : _ref$discountClassNam7, _ref$discountClassNam8 = _ref.discountClassNameInputdiscountLabel, discountClassNameInputdiscountLabel = _ref$discountClassNam8 === void 0 ? 'visually-hidden' : _ref$discountClassNam8, _ref$discountClassNam9 = _ref.discountClassNameListItem, discountClassNameListItem = _ref$discountClassNam9 === void 0 ? 'list-group-item d-flex align-items-center justify-content-between mt-2' : _ref$discountClassNam9, _ref$discountClassNam10 = _ref.discountClassNameListItems, discountClassNameListItems = _ref$discountClassNam10 === void 0 ? 'list-group' : _ref$discountClassNam10, discountClassNameMainContainer = _ref.discountClassNameMainContainer, _ref$discountLabel = _ref.discountLabel, discountLabel = _ref$discountLabel === void 0 ? 'Discount code' : _ref$discountLabel, _ref$discountShowAppl = _ref.discountShowAppliedItems, discountShowAppliedItems = _ref$discountShowAppl === void 0 ? true : _ref$discountShowAppl, googlePlacesApiKey = _ref.googlePlacesApiKey, _ref$includeDomainSig = _ref.includeDomainSignup, includeDomainSignup = _ref$includeDomainSig === void 0 ? false : _ref$includeDomainSig, invoice = _ref.invoice, isBuyRequest = _ref.isBuyRequest, isOpen = _ref.isOpen, _ref$isProductEmbedFo = _ref.isProductEmbedForm, isProductEmbedForm = _ref$isProductEmbedFo === void 0 ? false : _ref$isProductEmbedFo, job = _ref.job, product = _ref.product, messageSuccessBuyRequest = _ref.messageSuccessBuyRequest, messageSuccessQuoteRequest = _ref.messageSuccessQuoteRequest, redirectAfterSuccessUrl = _ref.redirectAfterSuccessUrl, redirectAfterQuoteSuccessUrl = _ref.redirectAfterQuoteSuccessUrl, redirectWithValue = _ref.redirectWithValue, setInvoice = _ref.setInvoice, setJob = _ref.setJob, _ref$showDiscountCode = _ref.showDiscountCode, showDiscountCode = _ref$showDiscountCode === void 0 ? true : _ref$showDiscountCode, _ref$showUserTermsAnd = _ref.showUserTermsAndConditions, showUserTermsAndConditions = _ref$showUserTermsAnd === void 0 ? true : _ref$showUserTermsAnd, toggleMerchiCheckout = _ref.toggleMerchiCheckout, _ref$urlApi = _ref.urlApi, urlApi = _ref$urlApi === void 0 ? 'https://api.merchi.co/v6/' : _ref$urlApi, _ref$urlFrontend = _ref.urlFrontend, urlFrontend = _ref$urlFrontend === void 0 ? 'https://merchi.co/' : _ref$urlFrontend; var _useState = useState(0), _useState2 = _slicedToArray(_useState, 2), activeTabIndex = _useState2[0], setActiveTabIndex = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), loading = _useState4[0], setLoading = _useState4[1]; var _useState5 = useState([]), _useState6 = _slicedToArray(_useState5, 2), alerts = _useState6[0], setAlerts = _useState6[1]; var _useState7 = useState(null), _useState8 = _slicedToArray(_useState7, 2), domain = _useState8[0], setDomain = _useState8[1]; var _useState9 = useState([]), _useState10 = _slicedToArray(_useState9, 2), tabs = _useState10[0], setTabs = _useState10[1]; var _useState11 = useState(false), _useState12 = _slicedToArray(_useState11, 2), googlePlacesLoaded = _useState12[0], setGoogleMapsLoaded = _useState12[1]; var merchi = new Merchi(undefined, undefined, undefined, undefined, urlApi); function editDraftTemplate(index, draft) { var jobJson = _objectSpread({}, job); var draftTemplates = product.draftTemplates || []; var draftTemplateFiles = draftTemplates.map(function (d) { return d.file; }); var ownDraft = jobJson.ownDrafts && jobJson.ownDrafts[0] || { images: draftTemplateFiles }; if (ownDraft.images) { ownDraft.images[index] = draft; } else { ownDraft.images = [draft]; } jobJson.ownDrafts = [ownDraft]; setJob(jobJson); } function alertClose(index) { var updatedAlerts = alerts.filter(function (_, idx) { return idx !== index; }); setAlerts(updatedAlerts); } function alertErrorShow(message) { var newAlerts = [].concat(_toConsumableArray(alerts), [{ alertType: 'error', message: message, title: 'Error!' }]); setAlerts(newAlerts); } function resetTabs() { var _tabs = tabsInit({ job: job, includeDomainSignup: includeDomainSignup, isBuyRequest: isBuyRequest }); setTabs(_tabs); } function setCustomer(customer) { setJob(_objectSpread(_objectSpread({}, job), {}, { client: customer })); resetTabs(); } function clearCustomer() { setCustomer({}); resetTabs(); } function nextTab() { var ndextIndex = activeTabIndex + 1; var _tabs = _toConsumableArray(tabs); _tabs[ndextIndex].disabled = false; setTabs(_tabs); setActiveTabIndex(ndextIndex); } function setActiveTabById(tabId) { var index = tabs.findIndex(function (t) { return t.id === tabId; }); setActiveTabIndex(index); } // Persistent callback setup if (typeof window !== 'undefined') { if (!window.googleMapsScriptLoaded) { window.googleMapsScriptLoaded = function () { setGoogleMapsLoaded(true); }; } } useEffect(function () { if (job.product && !tabs.length) { resetTabs(); } if (!job.client) { setCustomer(currentUser || {}); } }, [job]); useEffect(function () { // Use an ID for easier detection if (googlePlacesApiKey) { var scriptId = 'googleMapsScript'; // Check if the script already exists var existingScript = document.getElementById(scriptId); // Check if any script from maps.googleapis.com already exists in the document var existingScript2 = document.querySelector("script[src^=\"https://maps.googleapis.com/maps-api-v3/api/js/\"]"); if (!existingScript && !existingScript2) { var script = document.createElement('script'); script.id = scriptId; script.src = "https://maps.googleapis.com/maps/api/js?key=".concat(googlePlacesApiKey, "&libraries=places&callback=googleMapsScriptLoaded"); script.async = true; script.defer = true; // Append the script to the head document.head.appendChild(script); } else { setGoogleMapsLoaded(true); } } }, [googlePlacesApiKey]); function discountCallbackSuccess(items) { setJob(_objectSpread(_objectSpread({}, job), {}, { items: items })); } function discountCallbackError() { setJob(_objectSpread(_objectSpread({}, job), {}, { items: [] })); } return /*#__PURE__*/_jsx(MerchiCheckoutContext.Provider, { value: { activeTabIndex: activeTabIndex, alerts: alerts, alertClose: alertClose, alertErrorShow: alertErrorShow, classNameMerchiCheckoutAlertsContainer: classNameMerchiCheckoutAlertsContainer, classNameMerchiCheckoutAlert: classNameMerchiCheckoutAlert, classNameMerchiCheckoutAlertError: classNameMerchiCheckoutAlertError, classNameMerchiCheckoutAlertSuccess: classNameMerchiCheckoutAlertSuccess, classNameMerchiCheckoutButtonPrimary: classNameMerchiCheckoutButtonPrimary, classNameMerchiCheckoutButtonPrimaryBlock: classNameMerchiCheckoutButtonPrimaryBlock, classNameMerchiCheckoutButtonSecondary: classNameMerchiCheckoutButtonSecondary, classNameMerchiCheckoutButtonSecondaryBlock: classNameMerchiCheckoutButtonSecondaryBlock, classNameMerchiCheckoutButtonDownloadInvoice: classNameMerchiCheckoutButtonDownloadInvoice, classNameMerchiCheckoutConfirmInfoPanel: classNameMerchiCheckoutConfirmInfoPanel, classNameMerchiCheckoutFooterActionsContainer: classNameMerchiCheckoutFooterActionsContainer, classNameMerchiCheckoutFormCheckbox: classNameMerchiCheckoutFormCheckbox, classNameMerchiCheckoutFormGroup: classNameMerchiCheckoutFormGroup, classNameMerchiCheckoutFormGroupCheckbox: classNameMerchiCheckoutFormGroupCheckbox, classNameMerchiCheckoutFormInput: classNameMerchiCheckoutFormInput, classNameMerchiCheckoutFormSelect: classNameMerchiCheckoutFormSelect, classNameMerchiCheckoutGoogleSuggestList: classNameMerchiCheckoutGoogleSuggestList, classNameMerchiCheckoutGoogleSuggestListItem: classNameMerchiCheckoutGoogleSuggestListItem, classNameMerchiCheckoutListGroupItemLoader: classNameMerchiCheckoutListGroupItemLoader, classNameMerchiCheckoutFormLabelCheckbox: classNameMerchiCheckoutFormLabelCheckbox, classNameMerchiCheckoutInputError: classNameMerchiCheckoutInputError, classNameMerchiCheckoutListGroup: classNameMerchiCheckoutListGroup, classNameMerchiCheckoutListGroupItem: classNameMerchiCheckoutListGroupItem, classNameMerchiCheckoutRow: classNameMerchiCheckoutRow, classNameMerchiCheckoutRowColumn: classNameMerchiCheckoutRowColumn, classNameMerchiCheckoutSubtitle: classNameMerchiCheckoutSubtitle, classNameMerchiCheckoutTabsContainer: classNameMerchiCheckoutTabsContainer, classNameMerchiCheckoutTab: classNameMerchiCheckoutTab, classNameMerchiCheckoutTabButton: classNameMerchiCheckoutTabButton, classNameMerchiCheckoutTabPane: classNameMerchiCheckoutTabPane, classNameMerchiCheckoutTabPaneContainer: classNameMerchiCheckoutTabPaneContainer, classNameMerchiInvoiceButtonPayInvoice: classNameMerchiInvoiceButtonPayInvoice, clearCustomer: clearCustomer, currentUser: currentUser, customer: job.client || {}, discountButtonText: discountButtonText, discountCallbackError: discountCallbackError, discountCallbackSuccess: discountCallbackSuccess, discountClassName: discountClassName, discountClassNameButton: discountClassNameButton, discountClassNameButtonContainer: discountClassNameButtonContainer, discountClassNameButtonItemRemove: discountClassNameButtonItemRemove, discountClassNameErrorMessage: discountClassNameErrorMessage, discountClassNameInput: discountClassNameInput, discountClassNameInputContainer: discountClassNameInputContainer, discountClassNameInputdiscountLabel: discountClassNameInputdiscountLabel, discountClassNameListItem: discountClassNameListItem, discountClassNameListItems: discountClassNameListItems, discountClassNameMainContainer: discountClassNameMainContainer, discountLabel: discountLabel, discountShowAppliedItems: discountShowAppliedItems, domain: domain, editDraftTemplate: editDraftTemplate, googlePlacesLoaded: googlePlacesLoaded, includeDomainSignup: includeDomainSignup, invoice: invoice, isBuyRequest: isBuyRequest, isOpen: isOpen, isProductEmbedForm: isProductEmbedForm, job: job, loading: loading, merchi: merchi, messageSuccessBuyRequest: messageSuccessBuyRequest, messageSuccessQuoteRequest: messageSuccessQuoteRequest, nextTab: nextTab, product: product, redirectAfterSuccessUrl: redirectAfterSuccessUrl, redirectAfterQuoteSuccessUrl: redirectAfterQuoteSuccessUrl, redirectWithValue: redirectWithValue, setActiveTabById: setActiveTabById, setActiveTabIndex: setActiveTabIndex, setCustomer: setCustomer, setDomain: setDomain, setInvoice: setInvoice, setJob: setJob, showDiscountCode: showDiscountCode, showUserTermsAndConditions: showUserTermsAndConditions, tabs: tabs, toggleMerchiCheckout: toggleMerchiCheckout, urlApi: urlApi, urlFrontend: urlFrontend }, children: children }); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiaXRlciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJuIiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJ0ZXN0IiwibGVuIiwiYXJyMiIsImwiLCJ1IiwiYSIsImYiLCJuZXh0IiwiZG9uZSIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInRhYnNJbml0IiwiTWVyY2hpIiwianN4IiwiX2pzeCIsIk1lcmNoaUNoZWNrb3V0Q29udGV4dCIsImFjdGl2ZVRhYkluZGV4IiwiYWxlcnRzIiwiYWxlcnRDbG9zZSIsImFsZXJ0RXJyb3JTaG93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiIsImNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlIiwiY2xlYXJDdXN0b21lciIsImN1cnJlbnRVc2VyIiwiY3VzdG9tZXIiLCJkaXNjb3VudEJ1dHRvblRleHQiLCJkaXNjb3VudENhbGxiYWNrRXJyb3IiLCJkaXNjb3VudENhbGxiYWNrU3VjY2VzcyIsImRpc2NvdW50Q2xhc3NOYW1lIiwiZGlzY291bnRDbGFzc05hbWVCdXR0b24iLCJkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lciIsImRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZSIsImRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlIiwiZGlzY291bnRDbGFzc05hbWVJbnB1dCIsImRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXIiLCJkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbCIsImRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0iLCJkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcyIsImRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lciIsImRpc2NvdW50TGFiZWwiLCJkaXNjb3VudFNob3dBcHBsaWVkSXRlbXMiLCJkb21haW4iLCJlZGl0RHJhZnRUZW1wbGF0ZSIsImdvb2dsZVBsYWNlc0FwaUtleSIsImdvb2dsZVBsYWNlc0xvYWRlZCIsImlzQnV5UmVxdWVzdCIsImlzT3BlbiIsImxvYWRpbmciLCJtZXJjaGkiLCJtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3QiLCJtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdCIsIm5leHRUYWIiLCJpbmNsdWRlRG9tYWluU2lnbnVwIiwiaW52b2ljZSIsImlzUHJvZHVjdEVtYmVkRm9ybSIsImpvYiIsInByb2R1Y3QiLCJyZWRpcmVjdEFmdGVyU3VjY2Vzc1VybCIsInJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmwiLCJyZWRpcmVjdFdpdGhWYWx1ZSIsInNldEFjdGl2ZVRhYkJ5SWQiLCJzZXRBY3RpdmVUYWJJbmRleCIsInNldEN1c3RvbWVyIiwic2V0RG9tYWluIiwic2V0SW52b2ljZSIsInNldEpvYiIsInNob3dEaXNjb3VudENvZGUiLCJzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyIsInRhYnMiLCJ0b2dnbGVNZXJjaGlDaGVja291dCIsInVybEZyb250ZW5kIiwidXJsQXBpIiwidXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCIsIk1lcmNoaUNoZWNrb3V0UHJvdmlkZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMyIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzQiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUM1IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDNiIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzciLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUM4IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDOSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzEwIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTEiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxMiIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzEzIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTQiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxNSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzE2IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTciLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxOCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzE5IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjAiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyMSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzIyIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjMiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyNCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzI1IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjYiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyNyIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzI4IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjkiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMzMCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzMxIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlJIiwiX3JlZiRkaXNjb3VudEJ1dHRvblRlIiwiX3JlZiRkaXNjb3VudENsYXNzTmFtIiwiX3JlZiRkaXNjb3VudENsYXNzTmFtMiIsIl9yZWYkZGlzY291bnRDbGFzc05hbTMiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW00IiwiX3JlZiRkaXNjb3VudENsYXNzTmFtNSIsIl9yZWYkZGlzY291bnRDbGFzc05hbTYiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW03IiwiX3JlZiRkaXNjb3VudENsYXNzTmFtOCIsIl9yZWYkZGlzY291bnRDbGFzc05hbTkiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW0xMCIsIl9yZWYkZGlzY291bnRMYWJlbCIsIl9yZWYkZGlzY291bnRTaG93QXBwbCIsIl9yZWYkaW5jbHVkZURvbWFpblNpZyIsIl9yZWYkaXNQcm9kdWN0RW1iZWRGbyIsIl9yZWYkc2hvd0Rpc2NvdW50Q29kZSIsIl9yZWYkc2hvd1VzZXJUZXJtc0FuZCIsIl9yZWYkdXJsQXBpIiwiX3JlZiR1cmxGcm9udGVuZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldEFsZXJ0cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2V0VGFicyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJzZXRHb29nbGVNYXBzTG9hZGVkIiwiaW5kZXgiLCJkcmFmdCIsImpvYkpzb24iLCJkcmFmdFRlbXBsYXRlcyIsImRyYWZ0VGVtcGxhdGVGaWxlcyIsIm1hcCIsImQiLCJmaWxlIiwib3duRHJhZnQiLCJvd25EcmFmdHMiLCJpbWFnZXMiLCJ1cGRhdGVkQWxlcnRzIiwiXyIsImlkeCIsIm1lc3NhZ2UiLCJuZXdBbGVydHMiLCJjb25jYXQiLCJhbGVydFR5cGUiLCJ0aXRsZSIsInJlc2V0VGFicyIsIl90YWJzIiwiY2xpZW50IiwibmRleHRJbmRleCIsImRpc2FibGVkIiwidGFiSWQiLCJmaW5kSW5kZXgiLCJpZCIsIndpbmRvdyIsImdvb2dsZU1hcHNTY3JpcHRMb2FkZWQiLCJzY3JpcHRJZCIsImV4aXN0aW5nU2NyaXB0IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImV4aXN0aW5nU2NyaXB0MiIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JpcHQiLCJjcmVhdGVFbGVtZW50Iiwic3JjIiwiYXN5bmMiLCJkZWZlciIsImhlYWQiLCJhcHBlbmRDaGlsZCIsIml0ZW1zIiwiUHJvdmlkZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9NZXJjaGlDaGVja291dFByb3ZpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCBSZWFjdE5vZGUsIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNZXJjaGlDaGVja291dFRhYiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHRhYnNJbml0IH0gZnJvbSAnLi4vdGFic191dGlscyc7XG5pbXBvcnQgeyBNZXJjaGkgfSBmcm9tICdtZXJjaGlfc2RrX3RzJztcblxuaW50ZXJmYWNlIElNZXJjaGlDaGVja291dCB7XG4gIGFjdGl2ZVRhYkluZGV4OiBudW1iZXI7XG4gIGFsZXJ0czogYW55W107XG4gIGFsZXJ0Q2xvc2U6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICBhbGVydEVycm9yU2hvdzogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRFcnJvcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3M/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeUJsb2NrPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvb3RlckFjdGlvbnNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtTGFiZWxDaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRJbnB1dEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2U/OiBzdHJpbmc7XG4gIGNsZWFyQ3VzdG9tZXI6ICgpID0+IHZvaWQ7XG4gIGN1cnJlbnRVc2VyPzogYW55O1xuICBjdXN0b21lcj86IGFueTtcbiAgZGlzY291bnRCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBkaXNjb3VudENhbGxiYWNrRXJyb3I6ICgpID0+IHZvaWQ7XG4gIGRpc2NvdW50Q2FsbGJhY2tTdWNjZXNzOiAoaXRlbXM6IGFueVtdKSA9PiB2b2lkO1xuICBkaXNjb3VudENsYXNzTmFtZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVNYWluQ29udGFpbmVyPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQ/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbD86IHN0cmluZztcbiAgZGlzY291bnRMYWJlbD86IHN0cmluZztcbiAgZGlzY291bnRTaG93QXBwbGllZEl0ZW1zPzogYm9vbGVhbjtcbiAgZG9tYWluPzogYW55O1xuICBlZGl0RHJhZnRUZW1wbGF0ZTogKGluZGV4OiBudW1iZXIsIGRyYWZ0OiBhbnkpID0+IHZvaWQ7XG4gIGdvb2dsZVBsYWNlc0FwaUtleT86IHN0cmluZztcbiAgZ29vZ2xlUGxhY2VzTG9hZGVkPzogYm9vbGVhbjtcbiAgaW5jbHVkZURvbWFpblNpZ251cD86IGJvb2xlYW47XG4gIGludm9pY2U6IGFueTtcbiAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbjtcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAgaXNQcm9kdWN0RW1iZWRGb3JtPzogYm9vbGVhbjtcbiAgam9iOiBhbnk7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIG1lcmNoaTogTWVyY2hpO1xuICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0Pzogc3RyaW5nO1xuICBuZXh0VGFiOiAoKSA9PiB2b2lkO1xuICBwcm9kdWN0OiBhbnk7XG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdFdpdGhWYWx1ZT86IGJvb2xlYW47XG4gIHNldEFjdGl2ZVRhYkJ5SWQ6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRBY3RpdmVUYWJJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIHNldEN1c3RvbWVyOiAoY3VzdG9tZXI6IGFueSkgPT4gdm9pZDtcbiAgc2V0RG9tYWluOiAoZG9tYWluOiBhbnkpID0+IHZvaWQ7XG4gIHNldEludm9pY2U6IChpbnZvaWNlOiBhbnkpID0+IHZvaWQ7XG4gIHNldEpvYjogKGpvYjogYW55KSA9PiB2b2lkO1xuICBzaG93RGlzY291bnRDb2RlPzogYm9vbGVhbjtcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM/OiBib29sZWFuO1xuICB0YWJzOiBNZXJjaGlDaGVja291dFRhYltdO1xuICB0b2dnbGVNZXJjaGlDaGVja291dDogKCkgPT4gdm9pZDtcbiAgdXJsRnJvbnRlbmQ6IHN0cmluZztcbiAgdXJsQXBpOiBzdHJpbmc7XG59XG5cbmNvbnN0IE1lcmNoaUNoZWNrb3V0Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8SU1lcmNoaUNoZWNrb3V0Pih7XG4gIGFjdGl2ZVRhYkluZGV4OiAwLFxuICBhbGVydHM6IFtdLFxuICBhbGVydENsb3NlKCkge30sXG4gIGFsZXJ0RXJyb3JTaG93KCkge30sXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRzQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jazogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeUJsb2NrOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvb3RlckFjdGlvbnNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXA6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3Q6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtTGFiZWxDaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXA6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b246IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2U6IHVuZGVmaW5lZCxcbiAgY2xlYXJDdXN0b21lcigpIHt9LFxuICBjdXJyZW50VXNlcjogdW5kZWZpbmVkLFxuICBjdXN0b21lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudEJ1dHRvblRleHQ6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDYWxsYmFja0Vycm9yKCkge30sXG4gIGRpc2NvdW50Q2FsbGJhY2tTdWNjZXNzKCkge30sXG4gIGRpc2NvdW50Q2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZTogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZTogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0OiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbTogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtczogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRMYWJlbDogdW5kZWZpbmVkLFxuICBkaXNjb3VudFNob3dBcHBsaWVkSXRlbXM6IHRydWUsXG4gIGRvbWFpbjogdW5kZWZpbmVkLFxuICBlZGl0RHJhZnRUZW1wbGF0ZSgpIHt9LFxuICBnb29nbGVQbGFjZXNBcGlLZXk6IHVuZGVmaW5lZCxcbiAgZ29vZ2xlUGxhY2VzTG9hZGVkOiBmYWxzZSxcbiAgaXNCdXlSZXF1ZXN0OiBmYWxzZSxcbiAgaXNPcGVuOiBmYWxzZSxcbiAgbG9hZGluZzogZmFsc2UsXG4gIG1lcmNoaTogdW5kZWZpbmVkLFxuICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgbmV4dFRhYigpIHt9LFxuICBpbmNsdWRlRG9tYWluU2lnbnVwOiBmYWxzZSxcbiAgaW52b2ljZToge30sXG4gIGlzUHJvZHVjdEVtYmVkRm9ybTogZmFsc2UsXG4gIGpvYjoge30sXG4gIHByb2R1Y3Q6IHt9LFxuICByZWRpcmVjdEFmdGVyU3VjY2Vzc1VybDogdW5kZWZpbmVkLFxuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsOiB1bmRlZmluZWQsXG4gIHJlZGlyZWN0V2l0aFZhbHVlOiB0cnVlLFxuICBzZXRBY3RpdmVUYWJCeUlkKCkge30sXG4gIHNldEFjdGl2ZVRhYkluZGV4KCkge30sXG4gIHNldEN1c3RvbWVyKCkge30sXG4gIHNldERvbWFpbigpIHt9LFxuICBzZXRJbnZvaWNlKCkge30sXG4gIHNldEpvYigpIHt9LFxuICBzaG93RGlzY291bnRDb2RlOiB0cnVlLFxuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgdGFiczogW10sXG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0KCkge30sXG4gIHVybEZyb250ZW5kOiAnJyxcbiAgdXJsQXBpOiAnJyxcbn0pO1xuXG5leHBvcnQgY29uc3QgdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCA9ICgpID0+XG4gIHVzZUNvbnRleHQoTWVyY2hpQ2hlY2tvdXRDb250ZXh0KTtcblxuaW50ZXJmYWNlIFByb3BzTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlciB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlPzogc3RyaW5nO1xuICBjdXJyZW50VXNlcj86IGFueTtcbiAgZGlzY291bnRCdXR0b25UZXh0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVNYWluQ29udGFpbmVyPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQ/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbD86IHN0cmluZztcbiAgZGlzY291bnRMYWJlbD86IHN0cmluZztcbiAgZGlzY291bnRTaG93QXBwbGllZEl0ZW1zPzogYm9vbGVhbjtcbiAgZ29vZ2xlUGxhY2VzQXBpS2V5Pzogc3RyaW5nO1xuICBnb29nbGVQbGFjZXNMb2FkZWQ/OiBib29sZWFuO1xuICBpbmNsdWRlRG9tYWluU2lnbnVwPzogYm9vbGVhbjtcbiAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbjtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBpc1Byb2R1Y3RFbWJlZEZvcm0/OiBib29sZWFuO1xuICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0Pzogc3RyaW5nO1xuICBzaG93RGlzY291bnRDb2RlPzogYm9vbGVhbjtcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM/OiBib29sZWFuO1xuICBpbnZvaWNlOiBhbnk7XG4gIGpvYjogYW55O1xuICBwcm9kdWN0OiBhbnk7XG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdFdpdGhWYWx1ZT86IGJvb2xlYW47XG4gIHNldEludm9pY2U6IChpbnZvaWNlOiBhbnkpID0+IHZvaWQ7XG4gIHNldEpvYjogKGpvYjogYW55KSA9PiB2b2lkO1xuICB0b2dnbGVNZXJjaGlDaGVja291dDogKCkgPT4gdm9pZDtcbiAgdXJsQXBpPzogc3RyaW5nO1xuICB1cmxGcm9udGVuZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IE1lcmNoaUNoZWNrb3V0UHJvdmlkZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIgPSAnZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxlcnRzLWNvbnRhaW5lci1zbScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnQgPSAnYWxlcnQgYWxlcnQtZGlzbWlzc2libGUgYWxlcnQtbm90aWZ5JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yID0gJ2FsZXJ0LWRhbmdlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzID0gJ2FsZXJ0LXN1Y2Nlc3MnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkgPSAnYnRuIGJ0bi1sbWQgYnRuLXByaW1hcnkgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2sgPSAnYnRuIGJ0bi1sZyBidG4tcHJpbWFyeSBidG4tYmxvY2snLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeSA9ICdidG4gYnRuLWxnIGJ0bi1zZWNvbmRhcnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeUJsb2NrID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeSBidG4tYmxvY2snLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZSA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsID0gJ2QtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvb3RlckFjdGlvbnNDb250YWluZXIgPSAnZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTQnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveCA9ICdmb3JtLWNoZWNrLWlucHV0JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXAgPSAnZm9ybS1ncm91cCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3ggPSAnZm9ybS1jaGVjaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0ID0gJ2Zvcm0tY29udHJvbCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdCA9ICdmb3JtLWNvbnRyb2wnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0ID0gJ2xpc3QtZ3JvdXAgbS1iLTAnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0gY3Vyc29yLXBvaW50ZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXIgPSAnb