@dintero/checkout-web-sdk 0.7.4 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ require('native-promise-only');
6
6
 
7
7
  var pkg = {
8
8
  name: "@dintero/checkout-web-sdk",
9
- version: "0.7.4",
9
+ version: "0.8.1",
10
10
  description: "Dintero Checkout SDK for web frontends",
11
11
  main: "dist/dintero-checkout-web-sdk.cjs.js",
12
12
  module: "dist/dintero-checkout-web-sdk.esm.js",
@@ -38,7 +38,7 @@ var pkg = {
38
38
  url: "https://github.com/Dintero/Dintero.Checkout.Web.SDK/issues"
39
39
  },
40
40
  devDependencies: {
41
- "@babel/core": "7.23.9",
41
+ "@babel/core": "7.24.0",
42
42
  "@babel/preset-typescript": "7.23.3",
43
43
  "@preconstruct/cli": "2.8.3",
44
44
  "@semantic-release/exec": "6.0.3",
@@ -46,9 +46,9 @@ var pkg = {
46
46
  "@vitest/browser": "1.3.1",
47
47
  prettier: "3.2.5",
48
48
  "semantic-release": "23.0.2",
49
- typescript: "5.3.3",
49
+ typescript: "5.4.2",
50
50
  vitest: "1.3.1",
51
- webdriverio: "8.32.3"
51
+ webdriverio: "8.33.1"
52
52
  },
53
53
  dependencies: {
54
54
  "native-promise-only": "0.8.1"
@@ -115,6 +115,9 @@ const getSessionUrl = options => {
115
115
  if (popOut) {
116
116
  params.append("role", "pop_out_launcher");
117
117
  }
118
+ if (options.hasOwnProperty("hideTestMessage") && options["hideTestMessage"] !== undefined && options["hideTestMessage"] === true) {
119
+ params.append("hide_test_message", "true");
120
+ }
118
121
  if (endpoint === "https://checkout.dintero.com") {
119
122
  // Default endpoint will redirect via the view endpoint
120
123
  return `${endpoint}/v1/view/${sid}?${params.toString()}`;
@@ -1226,7 +1229,10 @@ const embed = async options => {
1226
1229
  language,
1227
1230
  ui: options.ui || "inline",
1228
1231
  shouldCallValidateSession: onValidateSession !== undefined,
1229
- popOut
1232
+ popOut,
1233
+ ...(options.hasOwnProperty("hideTestMessage") && {
1234
+ hideTestMessage: options["hideTestMessage"]
1235
+ })
1230
1236
  }));
1231
1237
 
1232
1238
  /**
@@ -6,7 +6,7 @@ require('native-promise-only');
6
6
 
7
7
  var pkg = {
8
8
  name: "@dintero/checkout-web-sdk",
9
- version: "0.7.4",
9
+ version: "0.8.1",
10
10
  description: "Dintero Checkout SDK for web frontends",
11
11
  main: "dist/dintero-checkout-web-sdk.cjs.js",
12
12
  module: "dist/dintero-checkout-web-sdk.esm.js",
@@ -38,7 +38,7 @@ var pkg = {
38
38
  url: "https://github.com/Dintero/Dintero.Checkout.Web.SDK/issues"
39
39
  },
40
40
  devDependencies: {
41
- "@babel/core": "7.23.9",
41
+ "@babel/core": "7.24.0",
42
42
  "@babel/preset-typescript": "7.23.3",
43
43
  "@preconstruct/cli": "2.8.3",
44
44
  "@semantic-release/exec": "6.0.3",
@@ -46,9 +46,9 @@ var pkg = {
46
46
  "@vitest/browser": "1.3.1",
47
47
  prettier: "3.2.5",
48
48
  "semantic-release": "23.0.2",
49
- typescript: "5.3.3",
49
+ typescript: "5.4.2",
50
50
  vitest: "1.3.1",
51
- webdriverio: "8.32.3"
51
+ webdriverio: "8.33.1"
52
52
  },
53
53
  dependencies: {
54
54
  "native-promise-only": "0.8.1"
@@ -115,6 +115,9 @@ const getSessionUrl = options => {
115
115
  if (popOut) {
116
116
  params.append("role", "pop_out_launcher");
117
117
  }
118
+ if (options.hasOwnProperty("hideTestMessage") && options["hideTestMessage"] !== undefined && options["hideTestMessage"] === true) {
119
+ params.append("hide_test_message", "true");
120
+ }
118
121
  if (endpoint === "https://checkout.dintero.com") {
119
122
  // Default endpoint will redirect via the view endpoint
120
123
  return `${endpoint}/v1/view/${sid}?${params.toString()}`;
@@ -1226,7 +1229,10 @@ const embed = async options => {
1226
1229
  language,
1227
1230
  ui: options.ui || "inline",
1228
1231
  shouldCallValidateSession: onValidateSession !== undefined,
1229
- popOut
1232
+ popOut,
1233
+ ...(options.hasOwnProperty("hideTestMessage") && {
1234
+ hideTestMessage: options["hideTestMessage"]
1235
+ })
1230
1236
  }));
1231
1237
 
1232
1238
  /**
@@ -2,7 +2,7 @@ import 'native-promise-only';
2
2
 
3
3
  var pkg = {
4
4
  name: "@dintero/checkout-web-sdk",
5
- version: "0.7.4",
5
+ version: "0.8.1",
6
6
  description: "Dintero Checkout SDK for web frontends",
7
7
  main: "dist/dintero-checkout-web-sdk.cjs.js",
8
8
  module: "dist/dintero-checkout-web-sdk.esm.js",
@@ -34,7 +34,7 @@ var pkg = {
34
34
  url: "https://github.com/Dintero/Dintero.Checkout.Web.SDK/issues"
35
35
  },
36
36
  devDependencies: {
37
- "@babel/core": "7.23.9",
37
+ "@babel/core": "7.24.0",
38
38
  "@babel/preset-typescript": "7.23.3",
39
39
  "@preconstruct/cli": "2.8.3",
40
40
  "@semantic-release/exec": "6.0.3",
@@ -42,9 +42,9 @@ var pkg = {
42
42
  "@vitest/browser": "1.3.1",
43
43
  prettier: "3.2.5",
44
44
  "semantic-release": "23.0.2",
45
- typescript: "5.3.3",
45
+ typescript: "5.4.2",
46
46
  vitest: "1.3.1",
47
- webdriverio: "8.32.3"
47
+ webdriverio: "8.33.1"
48
48
  },
49
49
  dependencies: {
50
50
  "native-promise-only": "0.8.1"
@@ -111,6 +111,9 @@ const getSessionUrl = options => {
111
111
  if (popOut) {
112
112
  params.append("role", "pop_out_launcher");
113
113
  }
114
+ if (options.hasOwnProperty("hideTestMessage") && options["hideTestMessage"] !== undefined && options["hideTestMessage"] === true) {
115
+ params.append("hide_test_message", "true");
116
+ }
114
117
  if (endpoint === "https://checkout.dintero.com") {
115
118
  // Default endpoint will redirect via the view endpoint
116
119
  return `${endpoint}/v1/view/${sid}?${params.toString()}`;
@@ -1222,7 +1225,10 @@ const embed = async options => {
1222
1225
  language,
1223
1226
  ui: options.ui || "inline",
1224
1227
  shouldCallValidateSession: onValidateSession !== undefined,
1225
- popOut
1228
+ popOut,
1229
+ ...(options.hasOwnProperty("hideTestMessage") && {
1230
+ hideTestMessage: options["hideTestMessage"]
1231
+ })
1226
1232
  }));
1227
1233
 
1228
1234
  /**
@@ -3,5 +3,5 @@
3
3
  v0.8.1 (c) Kyle Simpson
4
4
  MIT License: http://getify.mit-license.org
5
5
  */
6
- var t,o,i;i=function(){var e,n,t,o=Object.prototype.toString,i="undefined"!=typeof setImmediate?function(e){return setImmediate(e)}:setTimeout;try{Object.defineProperty({},"x",{}),e=function(e,n,t,o){return Object.defineProperty(e,n,{value:t,writable:!0,configurable:!1!==o})}}catch(n){e=function(e,n,t){return e[n]=t,e}}function r(e,o){t.add(e,o),n||(n=i(t.drain))}function s(e){var n,t=typeof e;return null==e||"object"!=t&&"function"!=t||(n=e.then),"function"==typeof n&&n}function a(){for(var e=0;e<this.chain.length;e++)d(this,1===this.state?this.chain[e].success:this.chain[e].failure,this.chain[e]);this.chain.length=0}function d(e,n,t){var o,i;try{!1===n?t.reject(e.msg):(o=!0===n?e.msg:n.call(void 0,e.msg))===t.promise?t.reject(TypeError("Promise-chain cycle")):(i=s(o))?i.call(o,t.resolve,t.reject):t.resolve(o)}catch(e){t.reject(e)}}function c(e){var n,t=this;if(!t.triggered){t.triggered=!0,t.def&&(t=t.def);try{(n=s(e))?r((function(){var o=new u(t);try{n.call(e,(function(){c.apply(o,arguments)}),(function(){l.apply(o,arguments)}))}catch(e){l.call(o,e)}})):(t.msg=e,t.state=1,t.chain.length>0&&r(a,t))}catch(e){l.call(new u(t),e)}}}function l(e){var n=this;n.triggered||(n.triggered=!0,n.def&&(n=n.def),n.msg=e,n.state=2,n.chain.length>0&&r(a,n))}function p(e,n,t,o){for(var i=0;i<n.length;i++)!function(i){e.resolve(n[i]).then((function(e){t(i,e)}),o)}(i)}function u(e){this.def=e,this.triggered=!1}function f(e){this.promise=e,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function h(e){if("function"!=typeof e)throw TypeError("Not a function");if(0!==this.__NPO__)throw TypeError("Not a promise");this.__NPO__=1;var n=new f(this);this.then=function(e,t){var o={success:"function"!=typeof e||e,failure:"function"==typeof t&&t};return o.promise=new this.constructor((function(e,n){if("function"!=typeof e||"function"!=typeof n)throw TypeError("Not a function");o.resolve=e,o.reject=n})),n.chain.push(o),0!==n.state&&r(a,n),o.promise},this.catch=function(e){return this.then(void 0,e)};try{e.call(void 0,(function(e){c.call(n,e)}),(function(e){l.call(n,e)}))}catch(e){l.call(n,e)}}t=function(){var e,t,o;function i(e,n){this.fn=e,this.self=n,this.next=void 0}return{add:function(n,r){o=new i(n,r),t?t.next=o:e=o,t=o,o=void 0},drain:function(){var o=e;for(e=t=n=void 0;o;)o.fn.call(o.self),o=o.next}}}();var m=e({},"constructor",h,!1);return h.prototype=m,e(m,"__NPO__",0,!1),e(h,"resolve",(function(e){return e&&"object"==typeof e&&1===e.__NPO__?e:new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");n(e)}))})),e(h,"reject",(function(e){return new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");t(e)}))})),e(h,"all",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):0===e.length?n.resolve([]):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");var i=e.length,r=Array(i),s=0;p(n,e,(function(e,n){r[e]=n,++s===i&&t(r)}),o)}))})),e(h,"race",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");p(n,e,(function(e,n){t(n)}),o)}))})),h},(o=n)[t="Promise"]=o[t]||i(),e.exports&&(e.exports=o[t])}));var t="0.7.4";let o=function(e){return e.SessionNotFound="SessionNotFound",e.SessionLoaded="SessionLoaded",e.SessionUpdated="SessionUpdated",e.SessionCancel="SessionCancel",e.SessionPaymentOnHold="SessionPaymentOnHold",e.SessionPaymentAuthorized="SessionPaymentAuthorized",e.SessionPaymentError="SessionPaymentError",e.SessionLocked="SessionLocked",e.SessionLockFailed="SessionLockFailed",e.ActivePaymentProductType="ActivePaymentProductType",e.ValidateSession="ValidateSession",e}({}),i=function(e){return e.HeightChanged="HeightChanged",e.LanguageChanged="LanguageChanged",e.ScrollToTop="ScrollToTop",e.ShowPopOutButton="ShowPopOutButton",e.HidePopOutButton="HidePopOutButton",e}({});const r=e=>e.endsWith("/")?e:`${e}/`,s=({sid:e,endpoint:n,language:o,shouldCallValidateSession:i})=>{const s=new URLSearchParams;return s.append("ui","fullscreen"),s.append("role","pop_out_payment"),s.append("sid",e),s.append("sdk",t),o&&s.append("language",o),i?(s.append("loader","true"),`${r(n)}?${s.toString()}`):`${r(n)}?${s.toString()}`},a=e=>{const{sid:n,endpoint:o,language:i,ui:s,shouldCallValidateSession:a,popOut:d}=e;if(!o)throw new Error("Invalid endpoint");const c=new URLSearchParams;return c.append("sdk",t),s&&c.append("ui",s),i&&c.append("language",i),a&&c.append("client_side_validation","true"),d&&c.append("role","pop_out_launcher"),"https://checkout.dintero.com"===o?`${o}/v1/view/${n}?${c.toString()}`:(c.append("sid",n),`${r(o)}?${c.toString()}`)},d=e=>{window.location.assign(e)},c=(e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"ValidationResult",sid:n,...t},"*")},l=e=>{const{sid:n,endpoint:t,handler:o,eventTypes:i,checkout:r}=e,s=new URL(t),a=e=>{const t=e.origin===s.origin,a=e.source===r.iframe.contentWindow,d=e.data&&e.data.sid===n,c=-1!==i.indexOf(e.data&&e.data.type);t&&a&&d&&c&&(((e,n)=>{n.data.mid&&e&&e.postMessage({ack:n.data.mid},n.origin||"*")})(r.iframe.contentWindow,e),o(e.data,r))};window.addEventListener("message",a,!1);return{unsubscribe:()=>{window.removeEventListener("message",a,!1)}}},p="dintero-checkout-sdk-style",u="dintero-checkout-sdk-backdrop",f="dintero-checkout-sdk-backdrop-description",h="dintero-checkout-sdk-backdrop-focus",m="dintero-checkout-sdk-backdrop-close",g=e=>n=>(n.preventDefault(),n.stopPropagation(),e(),!1),y=()=>{const e=document.createElement("div");return e.setAttribute("id",u),e.setAttribute("role","dialog"),e.style.zIndex=(()=>{const e=document.getElementsByTagName("*"),n=Array.from(e).reduce(((e,n)=>{try{const t=document.defaultView.getComputedStyle(n,null).getPropertyValue("z-index"),o=parseInt(t||"0");if(!isNaN(o)&&o>e)return o}catch(e){console.error(e)}return e}),0);return n<9999?"9999":(n+1).toString()})(),e},w=e=>{const n=document.getElementById(h),t=document.getElementById(m);"Tab"!==e.key&&"Tab"!==e.code||(document.activeElement===n?(t.focus(),e.preventDefault()):(n.focus(),e.preventDefault()))},v=e=>{(()=>{if(document.getElementById(p))return;const e=document.createElement("style");e.setAttribute("id",p),e.innerHTML=`\n @keyframes ${u}-fade-in {\n from {opacity: 0;}\n to {opacity: 1;}\n }\n\n #${u} {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.9);\n background: radial-gradient(rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.8) 100%);\n cursor: pointer;\n animation: 20ms ease-out ${u}-fade-in;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 20px;\n color: #ffffff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n font-size: 18px;\n font-weight: 400;\n line-height: normal;\n text-rendering: geometricPrecision;\n margin: 0;\n padding: 0;\n border: 0;\n vertical-align: baseline;\n line-height: normal;\n }\n\n #${u} p {\n padding: 0;\n margin: 0;\n border: 0;\n user-select: none;\n }\n\n #${h} {\n background-color: #efefef !important;\n color: #000000 !important;\n font-size: 16px !important;\n font-weight: 600 !important;\n border-radius: 200px !important;\n margin: 0 !important;\n line-height: normal !important;\n border: none !important;\n padding: 10px 20px !important;\n user-select: none !important;\n cursor: pointer !important;\n }\n #${h}:hover,\n #${h}:focus {\n outline: none !important;\n background-color: #ffffff !important;\n border: none !important;\n color: #000000 !important;\n padding: 10px 20px !important;\n margin: 0 !important;\n }\n #${h}:focus{\n outline-offset: 2px;\n outline: 1px #ffffff solid !important;\n }\n\n #${m} {\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n border-radius: 4px !important;\n height: 24px !important;\n width: 24px !important;\n color: #efefef !important;\n position: absolute !important;\n top: 16px !important;\n right: 24px !important;\n transition: all 200ms ease-out !important;\n cursor: pointer !important;\n }\n\n #${m}:hover,\n #${m}:focus {\n outline: none !important;\n color: #ffffff !important;\n border: none !important;\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n position: absolute;\n top: 16px;\n right: 24px;\n }\n #${m}:focus{\n outline: 1px #ffffff solid !important;\n }\n\n #${u}:before,\n #${u}:after,\n #${u} > *:before,\n #${u} > *:after {\n content: '';\n content: none;\n }\n `,document.head.appendChild(e)})();const n=y(),t=(e=>{const n=document.createElement("button");return n.setAttribute("id",m),n.setAttribute("type","button"),n.setAttribute("aria-label",e),n.innerHTML='\n <svg\n xmlns="http://www.w3.org/2000/svg"\n width="24"\n height="24"\n viewBox="0 0 24 24"\n fill="none"\n stroke="currentColor"\n stroke-width="2"\n stroke-linecap="round"\n stroke-linejoin="round"\n alt="close icon"\n >\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>',n})(e.event.closeLabel),o=(()=>{const e=document.createElement("div");return e.innerHTML='\n <svg width="120px" height="22px" viewBox="0 0 630 111" version="1.1" >\n <g id="Page-1" stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">\n <g id="Dintero" fill="#ffffff" fillRule="nonzero">\n <path d="M376.23,60.48 L376.23,73.54 L454.13,73.54 C456.31,41.55 435.85,23.71 410.61,23.71 C385.37,23.71 367.09,41.77 367.09,66.79 C367.09,92.03 386.02,110.31 411.91,110.31 C433.02,110.31 448.9,97.25 453.25,82.24 L436.5,82.24 C432.37,89.42 423.88,95.51 411.91,95.51 C395.16,95.51 382.75,83.11 382.75,66.79 C382.75,50.69 394.72,38.5 410.6,38.5 C426.48,38.5 438.45,50.68 438.45,66.79 L444.54,60.48 L376.23,60.48 Z M154.29,17.83 L171.7,17.83 L171.7,0.42 L154.29,0.42 L154.29,17.83 Z M120.34,108.13 L191.27,108.13 L191.27,93.77 L120.34,93.77 L120.34,108.13 Z M156.46,40.24 L156.46,108.13 L171.69,108.13 L171.69,45.47 C171.69,32.85 165.82,25.89 151.89,25.89 L120.34,25.89 L120.34,40.25 L156.46,40.25 L156.46,40.24 Z M499.17,25.88 L464.36,25.88 L464.36,40.24 L483.94,40.24 L484.16,108.13 L499.39,108.13 L499.17,62.44 C499.17,48.51 508.53,40.25 521.58,40.25 L535.29,40.25 L535.29,25.89 L524.41,25.89 C509.18,25.89 501.78,31.33 497.65,41.56 L495.47,47 L499.17,47.65 L499.17,25.88 Z M288.76,25.88 L310.52,25.88 L310.52,6.3 L325.75,6.3 L325.75,25.88 L359.69,25.88 L359.69,40.24 L325.75,40.24 L325.75,93.77 L359.69,93.77 L359.69,108.13 L332.49,108.13 C318.56,108.13 310.51,98.99 310.51,86.37 L310.51,40.24 L288.75,40.24 L288.75,25.88 L288.76,25.88 Z M464.35,108.13 L535.28,108.13 L535.28,93.77 L464.35,93.77 L464.35,108.13 Z M108.6,54.17 C108.6,23.06 85.54,0.43 53.77,0.43 L0.9,0.43 L0.9,108.14 L53.77,108.14 C85.53,108.13 108.6,85.5 108.6,54.17 M248.07,23.71 C234.58,23.71 223.92,31.98 220,41.55 L220,25.88 L204.77,25.88 L204.77,108.13 L220,108.13 L220,66.35 C220,53.08 224.79,38.93 243.72,38.93 C259.39,38.93 267.44,48.07 267.44,67.43 L267.44,108.12 L282.67,108.12 L282.67,64.6 C282.67,35.02 265.91,23.71 248.07,23.71 M586.2,110.31 C611.22,110.31 629.72,92.03 629.72,67.01 C629.72,41.99 611.23,23.71 586.2,23.71 C560.96,23.71 542.68,41.99 542.68,67.01 C542.68,92.03 560.96,110.31 586.2,110.31 M586.2,95.51 C570.32,95.51 558.35,83.33 558.35,67.01 C558.35,50.69 570.32,38.51 586.2,38.51 C602.08,38.51 614.05,50.69 614.05,67.01 C614.05,83.33 602.08,95.51 586.2,95.51 M16.99,92.9 L16.99,15.66 L51.8,15.66 C75.3,15.66 92.05,31.98 92.05,54.61 C92.05,76.8 75.3,92.91 51.8,92.91 L16.99,92.91 L16.99,92.9 Z" id="Shape"></path>\n </g>\n </g>\n </svg>',e})(),i=(e=>{const n=document.createElement("p");return n.setAttribute("id",f),n.innerText=e,n})(e.event.descriptionLabel),r=(e=>{const n=document.createElement("button");return n.setAttribute("id",h),n.setAttribute("type","button"),n.innerText=e,n})(e.event.focusLabel);return n.onclick=g(e.focus),r.onclick=g(e.focus),t.onclick=g(e.close),document.addEventListener("keydown",w),n.appendChild(t),n.appendChild(o),n.appendChild(i),n.appendChild(r),document.body.appendChild(n),n.focus(),n},b=()=>{try{const e=document.getElementById(u);e&&document.body.removeChild(e),document.removeEventListener("keydown",w)}catch(e){console.error(e)}},L="dintero-checkout-sdk-launch-pop-out",S=(e,n)=>{if(!e&&!n)return;const t=`${L}-styles`;if(document.getElementById(t))return;const o=document.createElement("style");o.setAttribute("id",t);let i=[];e&&i.push(C(`#${L}:hover:not(:disabled)`,e)),n&&i.push(C(`#${L}:focus-visible`,n)),o.textContent=i.join("\n"),document.head.appendChild(o)},C=(e,n)=>[`${e} {`,k(n),"}"].join("\n"),k=e=>Object.entries(e).map((([e,n])=>` ${x(e)}: ${n} !important;`)).join("\n"),x=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),E=e=>{const{container:n}=e,t=document.getElementById(L),o=t||document.createElement("button");((e,{label:n,disabled:t,top:o,left:i,right:r,styles:s,onClick:a,stylesHover:d,stylesFocusVisible:c})=>{e.setAttribute("id",L),e.setAttribute("type","button"),"true"===t?e.setAttribute("disabled",t):e.removeAttribute("disabled"),e.onclick=n=>{n.preventDefault(),n.stopPropagation(),e.style.boxShadow="inset 0 0 10px rgba(34, 84, 65, 0.9)",a(),window.setTimeout((()=>{e.style.boxShadow="none"}),200)},e.innerText=n,e.style.position="absolute",e.style.top=o+"px",e.style.left=i+"px",e.style.right=r+"px";const{...l}=s;for(const[n,t]of Object.entries(l))e.style[n]=t;try{S(d,c)}catch(e){console.error(e)}})(o,e),t||n.appendChild(o)},T=()=>{try{const e=document.getElementById(L);e&&e.remove()}catch(e){console.error(e)}},P=Math.min(480,window.screen.width),O=Math.min(840,window.screen.height);let $;const A=async e=>{let n,t=-1;if($&&!$.closed)return;const o=s(e);$=await((e,n,t,o)=>new Promise((i=>{try{const r=window.screenX+(window.outerWidth-t)/2,s=window.screenY+(window.outerHeight-o)/2,a=`width=${t},height=${o},left=${r},top=${s},location=no,menubar=no,toolbar=no,status=no`;let d,c=-1;const l=t=>{const o=t.source===d,r=t.origin===new URL(n).origin,s=t.data&&"AppLoaded"===t.data.type,a="popOut"===t.data.context,p=t.data.sid===e;o&&r&&s&&a&&p&&(clearTimeout(c),i(d),window.removeEventListener("message",l))};if(window.addEventListener("message",l),d=window.open(n,"dintero-checkout",a),!d)return console.log("createPopOutWindow no popOut"),void i(void 0);c=window.setTimeout((()=>{console.log("createPopOutWindow timeout"),i(void 0)}),3e3)}catch(e){i(void 0)}})))(e.sid,o,P,O);const i=()=>{window.clearInterval(t),t=-1,window.removeEventListener("beforeunload",r),$=void 0,e.onClose(),n&&n()},r=()=>{$&&$.close(),i()};return window.addEventListener("beforeunload",r),t=window.setInterval((()=>{$&&$.closed&&i()}),200),n=e.onOpen($),{close:r,focus:()=>{$&&$.focus()},popOutWindow:$}},W=(e,n)=>{F(n),e.href&&d(e.href)},M=(e,n)=>{(e.height||0===e.height)&&n.iframe.setAttribute("style",`width:100%; height:${e.height}px;`)},j=(e,n)=>{try{n.iframe.scrollIntoView({block:"start",behavior:"smooth"})}catch(e){console.error(e)}},V=(e,n)=>{e.language&&(n.language=e.language)},_=(e,n)=>{const t={internalPopOutHandler:!0,eventTypes:[i.LanguageChanged],handler:(e,n)=>{var t,o,i;t=n.iframe,o=n.options.sid,i=e.language,t.contentWindow&&t.contentWindow.postMessage({type:"SetLanguage",sid:o,language:i},"*")}},r={internalPopOutHandler:!0,eventTypes:[o.SessionCancel,o.SessionPaymentOnHold,o.SessionPaymentAuthorized,o.SessionPaymentError],handler:(n,t)=>{if(n.href){T();try{e.close()}catch(e){console.error(e)}}else console.error("Payment Complete event missing href property")}},s=o=>{o.source===e&&"popOut"===o.data.context&&o.data.sid===n.options.sid&&[t,r,...n.handlers].forEach((e=>{e.eventTypes.includes(o.data.type)&&e.handler&&(e=>{try{e()}catch(e){console.error(e)}})((()=>{e.handler(o.data,n)}))}))};return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},B=async(e,n)=>{const{close:t,focus:o,popOutWindow:i}=await A({sid:n.options.sid,endpoint:n.options.endpoint,shouldCallValidateSession:Boolean(n.options.onValidateSession),language:e.language,onOpen:e=>_(e,n),onClose:()=>{var e,t;b(),e=n.iframe,t=n.options.sid,e.contentWindow&&e.contentWindow.postMessage({type:"ClosedPopOut",sid:t},"*"),(e=>{try{const n=document.getElementById(L);n&&(e?n.setAttribute("disabled",e.toString()):n.removeAttribute("disabled"))}catch(e){console.error(e)}})(!1),n.popOutWindow=void 0}});return i?(r=n.iframe,s=n.options.sid,r.contentWindow&&r.contentWindow.postMessage({type:"OpenedPopOut",sid:s},"*"),n.popOutWindow=i,(e=>{try{if(document.getElementById(u))return;return v(e)}catch(e){console.error(e)}})({focus:o,close:t,event:e}),!0):(((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"OpenPopOutFailed",sid:n},"*")})(n.iframe,n.options.sid),!1);var r,s},I=async(e,n)=>{if(await B(e,n)&&n.options.onValidateSession){t=n.iframe,i=n.options.sid,t.contentWindow&&t.contentWindow.postMessage({type:"ValidatingPopOut",sid:i},"*");const r=((e,n)=>t=>{c(n.iframe,n.options.sid,t),t.success&&n.popOutWindow?n.popOutWindow.location.href=s({sid:n.options.sid,endpoint:n.options.endpoint,shouldCallValidateSession:!1,language:e.language}):(n.popOutWindow&&n.popOutWindow.close(),console.error(t.clientValidationError))})(e,n);try{n.options.onValidateSession({type:o.ValidateSession,session:n.session,callback:r},n,r)}catch(e){console.error(e),c(n.iframe,n.options.sid,{success:!1,clientValidationError:"Validation runtime error"})}}var t,i},H=(e,n)=>{(e=>e&&e.type===i.ShowPopOutButton)(e)&&(E({container:n.options.innerContainer,label:e.openLabel,top:e.top,left:e.left,right:e.right,styles:e.styles,stylesHover:e.stylesHover,stylesFocusVisible:e.stylesFocusVisible,disabled:e.disabled,onClick:()=>I(e,n)}),(e=>{const n=document.getElementById(h);n&&(n.innerText=e.focusLabel);const t=document.getElementById(f);t&&(t.innerText=e.descriptionLabel);const o=document.getElementById(m);o&&o.setAttribute("aria-label",e.descriptionLabel)})(e))},N=(e,n)=>{e.type===i.HidePopOutButton&&T()},F=e=>{if(T(),b(),e.popOutWindow)try{e.popOutWindow.close()}catch(e){console.error(e)}};e.embed=async e=>{const n=document.createElement("div");n.style.position="relative",n.style["box-sizing"]="border-box";const r={endpoint:"https://checkout.dintero.com",innerContainer:n,...e},{container:s,sid:d,language:p,endpoint:u,onSession:f,onSessionCancel:h,onPayment:m,onPaymentAuthorized:g,onPaymentError:y,onSessionNotFound:w,onSessionLocked:v,onSessionLockFailed:L,onActivePaymentType:S,onValidateSession:C,popOut:k}=r;let x;const E=[];let T=!1;s.appendChild(n);const{iframe:P,initiate:O}=((e,n,t)=>{if(!e||!e.appendChild)throw new Error("Invalid container");const o=document.createElement("iframe");return o.setAttribute("frameborder","0"),o.setAttribute("allowTransparency","true"),o.setAttribute("style","width:100%; height:0;"),o.setAttribute("sandbox","allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox"),o.setAttribute("allow","payment"),o.setAttribute("importance","high"),o.setAttribute("src",t),{iframe:o,initiate:async()=>new Promise(((n,t)=>{o.onload=()=>n(),o.onerror=()=>t(),e.appendChild(o)}))}})(n,0,a({sid:d,endpoint:u,language:p,ui:e.ui||"inline",shouldCallValidateSession:void 0!==C,popOut:k})),$=(e,n,t)=>{if(!x)throw new Error("Unable to create action promise: checkout is undefined");return new Promise(((o,i)=>{const r=[];r.push(l({sid:d,endpoint:u,handler:e=>{r.forEach((e=>e.unsubscribe())),o(e)},eventTypes:[n],checkout:x,source:x.iframe.contentWindow})),r.push(l({sid:d,endpoint:u,handler:()=>{r.forEach((e=>e.unsubscribe())),i(`Received unexpected event: ${t}`)},eventTypes:[t],checkout:x,source:x.iframe.contentWindow})),e()}))},A=()=>$((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"RefreshSession",sid:n},"*")})(P,d)}),o.SessionUpdated,o.SessionNotFound),_=e=>{c(P,d,e)},B=(e,n,i)=>(e,r)=>{if(!T){T=!0,F(r);const s=["sid","merchant_reference","transaction_id","error"].map((n=>[n,e[n]]));e.type!==o.SessionCancel||e.error||s.push(["error","cancelled"]),s.push(["language",r.language]),s.push(["sdk",t]);const a=s.filter((([e,n])=>n)).map((([e,n])=>`${e}=${n}`)).join("&");r.iframe.setAttribute("src",((e,n,t)=>{const o=e.endsWith("/")?"":"/";return`${e}${o}${n}?${t}`})(n,"embedResult/",a)),i(e,r)}},I=[{handler:V,eventTypes:[i.LanguageChanged]},{handler:M,eventTypes:[i.HeightChanged]},{handler:j,eventTypes:[i.ScrollToTop]},{handler:(e,n)=>{n.session=e.session,f&&f(e,n)},eventTypes:[o.SessionLoaded,o.SessionUpdated]},{eventTypes:[o.SessionPaymentOnHold],handler:B(0,u,m||W)},{eventTypes:[o.SessionPaymentAuthorized],handler:B(0,u,g||m||W)},{handler:B(0,u,h||W),eventTypes:[o.SessionCancel]},{handler:B(0,u,y||W),eventTypes:[o.SessionPaymentError]},{handler:w,eventTypes:[o.SessionNotFound]},{handler:(e,n)=>{v&&v(e,n,A)},eventTypes:[o.SessionLocked]},{handler:L,eventTypes:[o.SessionLockFailed]},{handler:S,eventTypes:[o.ActivePaymentProductType]},{handler:(e,n)=>{if(C)try{C({...e,callback:_},n,_)}catch(e){console.error(e),_({success:!1,clientValidationError:"Validation runtime error"})}},eventTypes:[o.ValidateSession]},{handler:H,eventTypes:[i.ShowPopOutButton]},{handler:N,eventTypes:[i.HidePopOutButton]}];return x={destroy:()=>{F(x),P&&(r.popOut&&b(),E.forEach((e=>e.unsubscribe())),P.parentElement&&n.removeChild(P)),n.parentElement&&s.removeChild(n)},iframe:P,language:p,lockSession:()=>$((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"LockSession",sid:n},"*")})(P,d)}),o.SessionLocked,o.SessionLockFailed),refreshSession:A,setActivePaymentProductType:e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"SetActivePaymentProductType",sid:n,payment_product_type:t},"*")})(P,d,e)},submitValidationResult:_,options:r,handlers:I,session:void 0,popOutWindow:void 0},I.forEach((({handler:e,eventTypes:n})=>{e&&E.push(l({sid:d,endpoint:u,handler:e,eventTypes:n,checkout:x,source:x.iframe.contentWindow}))})),await O(),x},e.redirect=e=>{const{sid:n,language:t,endpoint:o="https://checkout.dintero.com"}=e;d(a({sid:n,endpoint:o,language:t,shouldCallValidateSession:!1}))},Object.defineProperty(e,"__esModule",{value:!0})}));
6
+ var t,o,i;i=function(){var e,n,t,o=Object.prototype.toString,i="undefined"!=typeof setImmediate?function(e){return setImmediate(e)}:setTimeout;try{Object.defineProperty({},"x",{}),e=function(e,n,t,o){return Object.defineProperty(e,n,{value:t,writable:!0,configurable:!1!==o})}}catch(n){e=function(e,n,t){return e[n]=t,e}}function r(e,o){t.add(e,o),n||(n=i(t.drain))}function s(e){var n,t=typeof e;return null==e||"object"!=t&&"function"!=t||(n=e.then),"function"==typeof n&&n}function a(){for(var e=0;e<this.chain.length;e++)d(this,1===this.state?this.chain[e].success:this.chain[e].failure,this.chain[e]);this.chain.length=0}function d(e,n,t){var o,i;try{!1===n?t.reject(e.msg):(o=!0===n?e.msg:n.call(void 0,e.msg))===t.promise?t.reject(TypeError("Promise-chain cycle")):(i=s(o))?i.call(o,t.resolve,t.reject):t.resolve(o)}catch(e){t.reject(e)}}function c(e){var n,t=this;if(!t.triggered){t.triggered=!0,t.def&&(t=t.def);try{(n=s(e))?r((function(){var o=new u(t);try{n.call(e,(function(){c.apply(o,arguments)}),(function(){l.apply(o,arguments)}))}catch(e){l.call(o,e)}})):(t.msg=e,t.state=1,t.chain.length>0&&r(a,t))}catch(e){l.call(new u(t),e)}}}function l(e){var n=this;n.triggered||(n.triggered=!0,n.def&&(n=n.def),n.msg=e,n.state=2,n.chain.length>0&&r(a,n))}function p(e,n,t,o){for(var i=0;i<n.length;i++)!function(i){e.resolve(n[i]).then((function(e){t(i,e)}),o)}(i)}function u(e){this.def=e,this.triggered=!1}function f(e){this.promise=e,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function h(e){if("function"!=typeof e)throw TypeError("Not a function");if(0!==this.__NPO__)throw TypeError("Not a promise");this.__NPO__=1;var n=new f(this);this.then=function(e,t){var o={success:"function"!=typeof e||e,failure:"function"==typeof t&&t};return o.promise=new this.constructor((function(e,n){if("function"!=typeof e||"function"!=typeof n)throw TypeError("Not a function");o.resolve=e,o.reject=n})),n.chain.push(o),0!==n.state&&r(a,n),o.promise},this.catch=function(e){return this.then(void 0,e)};try{e.call(void 0,(function(e){c.call(n,e)}),(function(e){l.call(n,e)}))}catch(e){l.call(n,e)}}t=function(){var e,t,o;function i(e,n){this.fn=e,this.self=n,this.next=void 0}return{add:function(n,r){o=new i(n,r),t?t.next=o:e=o,t=o,o=void 0},drain:function(){var o=e;for(e=t=n=void 0;o;)o.fn.call(o.self),o=o.next}}}();var m=e({},"constructor",h,!1);return h.prototype=m,e(m,"__NPO__",0,!1),e(h,"resolve",(function(e){return e&&"object"==typeof e&&1===e.__NPO__?e:new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");n(e)}))})),e(h,"reject",(function(e){return new this((function(n,t){if("function"!=typeof n||"function"!=typeof t)throw TypeError("Not a function");t(e)}))})),e(h,"all",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):0===e.length?n.resolve([]):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");var i=e.length,r=Array(i),s=0;p(n,e,(function(e,n){r[e]=n,++s===i&&t(r)}),o)}))})),e(h,"race",(function(e){var n=this;return"[object Array]"!=o.call(e)?n.reject(TypeError("Not an array")):new n((function(t,o){if("function"!=typeof t||"function"!=typeof o)throw TypeError("Not a function");p(n,e,(function(e,n){t(n)}),o)}))})),h},(o=n)[t="Promise"]=o[t]||i(),e.exports&&(e.exports=o[t])}));var t="0.8.1";let o=function(e){return e.SessionNotFound="SessionNotFound",e.SessionLoaded="SessionLoaded",e.SessionUpdated="SessionUpdated",e.SessionCancel="SessionCancel",e.SessionPaymentOnHold="SessionPaymentOnHold",e.SessionPaymentAuthorized="SessionPaymentAuthorized",e.SessionPaymentError="SessionPaymentError",e.SessionLocked="SessionLocked",e.SessionLockFailed="SessionLockFailed",e.ActivePaymentProductType="ActivePaymentProductType",e.ValidateSession="ValidateSession",e}({}),i=function(e){return e.HeightChanged="HeightChanged",e.LanguageChanged="LanguageChanged",e.ScrollToTop="ScrollToTop",e.ShowPopOutButton="ShowPopOutButton",e.HidePopOutButton="HidePopOutButton",e}({});const r=e=>e.endsWith("/")?e:`${e}/`,s=({sid:e,endpoint:n,language:o,shouldCallValidateSession:i})=>{const s=new URLSearchParams;return s.append("ui","fullscreen"),s.append("role","pop_out_payment"),s.append("sid",e),s.append("sdk",t),o&&s.append("language",o),i?(s.append("loader","true"),`${r(n)}?${s.toString()}`):`${r(n)}?${s.toString()}`},a=e=>{const{sid:n,endpoint:o,language:i,ui:s,shouldCallValidateSession:a,popOut:d}=e;if(!o)throw new Error("Invalid endpoint");const c=new URLSearchParams;return c.append("sdk",t),s&&c.append("ui",s),i&&c.append("language",i),a&&c.append("client_side_validation","true"),d&&c.append("role","pop_out_launcher"),e.hasOwnProperty("hideTestMessage")&&void 0!==e.hideTestMessage&&!0===e.hideTestMessage&&c.append("hide_test_message","true"),"https://checkout.dintero.com"===o?`${o}/v1/view/${n}?${c.toString()}`:(c.append("sid",n),`${r(o)}?${c.toString()}`)},d=e=>{window.location.assign(e)},c=(e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"ValidationResult",sid:n,...t},"*")},l=e=>{const{sid:n,endpoint:t,handler:o,eventTypes:i,checkout:r}=e,s=new URL(t),a=e=>{const t=e.origin===s.origin,a=e.source===r.iframe.contentWindow,d=e.data&&e.data.sid===n,c=-1!==i.indexOf(e.data&&e.data.type);t&&a&&d&&c&&(((e,n)=>{n.data.mid&&e&&e.postMessage({ack:n.data.mid},n.origin||"*")})(r.iframe.contentWindow,e),o(e.data,r))};window.addEventListener("message",a,!1);return{unsubscribe:()=>{window.removeEventListener("message",a,!1)}}},p="dintero-checkout-sdk-style",u="dintero-checkout-sdk-backdrop",f="dintero-checkout-sdk-backdrop-description",h="dintero-checkout-sdk-backdrop-focus",m="dintero-checkout-sdk-backdrop-close",g=e=>n=>(n.preventDefault(),n.stopPropagation(),e(),!1),y=()=>{const e=document.createElement("div");return e.setAttribute("id",u),e.setAttribute("role","dialog"),e.style.zIndex=(()=>{const e=document.getElementsByTagName("*"),n=Array.from(e).reduce(((e,n)=>{try{const t=document.defaultView.getComputedStyle(n,null).getPropertyValue("z-index"),o=parseInt(t||"0");if(!isNaN(o)&&o>e)return o}catch(e){console.error(e)}return e}),0);return n<9999?"9999":(n+1).toString()})(),e},w=e=>{const n=document.getElementById(h),t=document.getElementById(m);"Tab"!==e.key&&"Tab"!==e.code||(document.activeElement===n?(t.focus(),e.preventDefault()):(n.focus(),e.preventDefault()))},v=e=>{(()=>{if(document.getElementById(p))return;const e=document.createElement("style");e.setAttribute("id",p),e.innerHTML=`\n @keyframes ${u}-fade-in {\n from {opacity: 0;}\n to {opacity: 1;}\n }\n\n #${u} {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.9);\n background: radial-gradient(rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.8) 100%);\n cursor: pointer;\n animation: 20ms ease-out ${u}-fade-in;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 20px;\n color: #ffffff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n font-size: 18px;\n font-weight: 400;\n line-height: normal;\n text-rendering: geometricPrecision;\n margin: 0;\n padding: 0;\n border: 0;\n vertical-align: baseline;\n line-height: normal;\n }\n\n #${u} p {\n padding: 0;\n margin: 0;\n border: 0;\n user-select: none;\n }\n\n #${h} {\n background-color: #efefef !important;\n color: #000000 !important;\n font-size: 16px !important;\n font-weight: 600 !important;\n border-radius: 200px !important;\n margin: 0 !important;\n line-height: normal !important;\n border: none !important;\n padding: 10px 20px !important;\n user-select: none !important;\n cursor: pointer !important;\n }\n #${h}:hover,\n #${h}:focus {\n outline: none !important;\n background-color: #ffffff !important;\n border: none !important;\n color: #000000 !important;\n padding: 10px 20px !important;\n margin: 0 !important;\n }\n #${h}:focus{\n outline-offset: 2px;\n outline: 1px #ffffff solid !important;\n }\n\n #${m} {\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n border-radius: 4px !important;\n height: 24px !important;\n width: 24px !important;\n color: #efefef !important;\n position: absolute !important;\n top: 16px !important;\n right: 24px !important;\n transition: all 200ms ease-out !important;\n cursor: pointer !important;\n }\n\n #${m}:hover,\n #${m}:focus {\n outline: none !important;\n color: #ffffff !important;\n border: none !important;\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n position: absolute;\n top: 16px;\n right: 24px;\n }\n #${m}:focus{\n outline: 1px #ffffff solid !important;\n }\n\n #${u}:before,\n #${u}:after,\n #${u} > *:before,\n #${u} > *:after {\n content: '';\n content: none;\n }\n `,document.head.appendChild(e)})();const n=y(),t=(e=>{const n=document.createElement("button");return n.setAttribute("id",m),n.setAttribute("type","button"),n.setAttribute("aria-label",e),n.innerHTML='\n <svg\n xmlns="http://www.w3.org/2000/svg"\n width="24"\n height="24"\n viewBox="0 0 24 24"\n fill="none"\n stroke="currentColor"\n stroke-width="2"\n stroke-linecap="round"\n stroke-linejoin="round"\n alt="close icon"\n >\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>',n})(e.event.closeLabel),o=(()=>{const e=document.createElement("div");return e.innerHTML='\n <svg width="120px" height="22px" viewBox="0 0 630 111" version="1.1" >\n <g id="Page-1" stroke="none" strokeWidth="1" fill="none" fillRule="evenodd">\n <g id="Dintero" fill="#ffffff" fillRule="nonzero">\n <path d="M376.23,60.48 L376.23,73.54 L454.13,73.54 C456.31,41.55 435.85,23.71 410.61,23.71 C385.37,23.71 367.09,41.77 367.09,66.79 C367.09,92.03 386.02,110.31 411.91,110.31 C433.02,110.31 448.9,97.25 453.25,82.24 L436.5,82.24 C432.37,89.42 423.88,95.51 411.91,95.51 C395.16,95.51 382.75,83.11 382.75,66.79 C382.75,50.69 394.72,38.5 410.6,38.5 C426.48,38.5 438.45,50.68 438.45,66.79 L444.54,60.48 L376.23,60.48 Z M154.29,17.83 L171.7,17.83 L171.7,0.42 L154.29,0.42 L154.29,17.83 Z M120.34,108.13 L191.27,108.13 L191.27,93.77 L120.34,93.77 L120.34,108.13 Z M156.46,40.24 L156.46,108.13 L171.69,108.13 L171.69,45.47 C171.69,32.85 165.82,25.89 151.89,25.89 L120.34,25.89 L120.34,40.25 L156.46,40.25 L156.46,40.24 Z M499.17,25.88 L464.36,25.88 L464.36,40.24 L483.94,40.24 L484.16,108.13 L499.39,108.13 L499.17,62.44 C499.17,48.51 508.53,40.25 521.58,40.25 L535.29,40.25 L535.29,25.89 L524.41,25.89 C509.18,25.89 501.78,31.33 497.65,41.56 L495.47,47 L499.17,47.65 L499.17,25.88 Z M288.76,25.88 L310.52,25.88 L310.52,6.3 L325.75,6.3 L325.75,25.88 L359.69,25.88 L359.69,40.24 L325.75,40.24 L325.75,93.77 L359.69,93.77 L359.69,108.13 L332.49,108.13 C318.56,108.13 310.51,98.99 310.51,86.37 L310.51,40.24 L288.75,40.24 L288.75,25.88 L288.76,25.88 Z M464.35,108.13 L535.28,108.13 L535.28,93.77 L464.35,93.77 L464.35,108.13 Z M108.6,54.17 C108.6,23.06 85.54,0.43 53.77,0.43 L0.9,0.43 L0.9,108.14 L53.77,108.14 C85.53,108.13 108.6,85.5 108.6,54.17 M248.07,23.71 C234.58,23.71 223.92,31.98 220,41.55 L220,25.88 L204.77,25.88 L204.77,108.13 L220,108.13 L220,66.35 C220,53.08 224.79,38.93 243.72,38.93 C259.39,38.93 267.44,48.07 267.44,67.43 L267.44,108.12 L282.67,108.12 L282.67,64.6 C282.67,35.02 265.91,23.71 248.07,23.71 M586.2,110.31 C611.22,110.31 629.72,92.03 629.72,67.01 C629.72,41.99 611.23,23.71 586.2,23.71 C560.96,23.71 542.68,41.99 542.68,67.01 C542.68,92.03 560.96,110.31 586.2,110.31 M586.2,95.51 C570.32,95.51 558.35,83.33 558.35,67.01 C558.35,50.69 570.32,38.51 586.2,38.51 C602.08,38.51 614.05,50.69 614.05,67.01 C614.05,83.33 602.08,95.51 586.2,95.51 M16.99,92.9 L16.99,15.66 L51.8,15.66 C75.3,15.66 92.05,31.98 92.05,54.61 C92.05,76.8 75.3,92.91 51.8,92.91 L16.99,92.91 L16.99,92.9 Z" id="Shape"></path>\n </g>\n </g>\n </svg>',e})(),i=(e=>{const n=document.createElement("p");return n.setAttribute("id",f),n.innerText=e,n})(e.event.descriptionLabel),r=(e=>{const n=document.createElement("button");return n.setAttribute("id",h),n.setAttribute("type","button"),n.innerText=e,n})(e.event.focusLabel);return n.onclick=g(e.focus),r.onclick=g(e.focus),t.onclick=g(e.close),document.addEventListener("keydown",w),n.appendChild(t),n.appendChild(o),n.appendChild(i),n.appendChild(r),document.body.appendChild(n),n.focus(),n},b=()=>{try{const e=document.getElementById(u);e&&document.body.removeChild(e),document.removeEventListener("keydown",w)}catch(e){console.error(e)}},L="dintero-checkout-sdk-launch-pop-out",S=(e,n)=>{if(!e&&!n)return;const t=`${L}-styles`;if(document.getElementById(t))return;const o=document.createElement("style");o.setAttribute("id",t);let i=[];e&&i.push(C(`#${L}:hover:not(:disabled)`,e)),n&&i.push(C(`#${L}:focus-visible`,n)),o.textContent=i.join("\n"),document.head.appendChild(o)},C=(e,n)=>[`${e} {`,T(n),"}"].join("\n"),T=e=>Object.entries(e).map((([e,n])=>` ${k(e)}: ${n} !important;`)).join("\n"),k=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),x=e=>{const{container:n}=e,t=document.getElementById(L),o=t||document.createElement("button");((e,{label:n,disabled:t,top:o,left:i,right:r,styles:s,onClick:a,stylesHover:d,stylesFocusVisible:c})=>{e.setAttribute("id",L),e.setAttribute("type","button"),"true"===t?e.setAttribute("disabled",t):e.removeAttribute("disabled"),e.onclick=n=>{n.preventDefault(),n.stopPropagation(),e.style.boxShadow="inset 0 0 10px rgba(34, 84, 65, 0.9)",a(),window.setTimeout((()=>{e.style.boxShadow="none"}),200)},e.innerText=n,e.style.position="absolute",e.style.top=o+"px",e.style.left=i+"px",e.style.right=r+"px";const{...l}=s;for(const[n,t]of Object.entries(l))e.style[n]=t;try{S(d,c)}catch(e){console.error(e)}})(o,e),t||n.appendChild(o)},E=()=>{try{const e=document.getElementById(L);e&&e.remove()}catch(e){console.error(e)}},P=Math.min(480,window.screen.width),O=Math.min(840,window.screen.height);let $;const A=async e=>{let n,t=-1;if($&&!$.closed)return;const o=s(e);$=await((e,n,t,o)=>new Promise((i=>{try{const r=window.screenX+(window.outerWidth-t)/2,s=window.screenY+(window.outerHeight-o)/2,a=`width=${t},height=${o},left=${r},top=${s},location=no,menubar=no,toolbar=no,status=no`;let d,c=-1;const l=t=>{const o=t.source===d,r=t.origin===new URL(n).origin,s=t.data&&"AppLoaded"===t.data.type,a="popOut"===t.data.context,p=t.data.sid===e;o&&r&&s&&a&&p&&(clearTimeout(c),i(d),window.removeEventListener("message",l))};if(window.addEventListener("message",l),d=window.open(n,"dintero-checkout",a),!d)return console.log("createPopOutWindow no popOut"),void i(void 0);c=window.setTimeout((()=>{console.log("createPopOutWindow timeout"),i(void 0)}),3e3)}catch(e){i(void 0)}})))(e.sid,o,P,O);const i=()=>{window.clearInterval(t),t=-1,window.removeEventListener("beforeunload",r),$=void 0,e.onClose(),n&&n()},r=()=>{$&&$.close(),i()};return window.addEventListener("beforeunload",r),t=window.setInterval((()=>{$&&$.closed&&i()}),200),n=e.onOpen($),{close:r,focus:()=>{$&&$.focus()},popOutWindow:$}},W=(e,n)=>{F(n),e.href&&d(e.href)},M=(e,n)=>{(e.height||0===e.height)&&n.iframe.setAttribute("style",`width:100%; height:${e.height}px;`)},_=(e,n)=>{try{n.iframe.scrollIntoView({block:"start",behavior:"smooth"})}catch(e){console.error(e)}},j=(e,n)=>{e.language&&(n.language=e.language)},V=(e,n)=>{const t={internalPopOutHandler:!0,eventTypes:[i.LanguageChanged],handler:(e,n)=>{var t,o,i;t=n.iframe,o=n.options.sid,i=e.language,t.contentWindow&&t.contentWindow.postMessage({type:"SetLanguage",sid:o,language:i},"*")}},r={internalPopOutHandler:!0,eventTypes:[o.SessionCancel,o.SessionPaymentOnHold,o.SessionPaymentAuthorized,o.SessionPaymentError],handler:(n,t)=>{if(n.href){E();try{e.close()}catch(e){console.error(e)}}else console.error("Payment Complete event missing href property")}},s=o=>{o.source===e&&"popOut"===o.data.context&&o.data.sid===n.options.sid&&[t,r,...n.handlers].forEach((e=>{e.eventTypes.includes(o.data.type)&&e.handler&&(e=>{try{e()}catch(e){console.error(e)}})((()=>{e.handler(o.data,n)}))}))};return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},B=async(e,n)=>{const{close:t,focus:o,popOutWindow:i}=await A({sid:n.options.sid,endpoint:n.options.endpoint,shouldCallValidateSession:Boolean(n.options.onValidateSession),language:e.language,onOpen:e=>V(e,n),onClose:()=>{var e,t;b(),e=n.iframe,t=n.options.sid,e.contentWindow&&e.contentWindow.postMessage({type:"ClosedPopOut",sid:t},"*"),(e=>{try{const n=document.getElementById(L);n&&(e?n.setAttribute("disabled",e.toString()):n.removeAttribute("disabled"))}catch(e){console.error(e)}})(!1),n.popOutWindow=void 0}});return i?(r=n.iframe,s=n.options.sid,r.contentWindow&&r.contentWindow.postMessage({type:"OpenedPopOut",sid:s},"*"),n.popOutWindow=i,(e=>{try{if(document.getElementById(u))return;return v(e)}catch(e){console.error(e)}})({focus:o,close:t,event:e}),!0):(((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"OpenPopOutFailed",sid:n},"*")})(n.iframe,n.options.sid),!1);var r,s},I=async(e,n)=>{if(await B(e,n)&&n.options.onValidateSession){t=n.iframe,i=n.options.sid,t.contentWindow&&t.contentWindow.postMessage({type:"ValidatingPopOut",sid:i},"*");const r=((e,n)=>t=>{c(n.iframe,n.options.sid,t),t.success&&n.popOutWindow?n.popOutWindow.location.href=s({sid:n.options.sid,endpoint:n.options.endpoint,shouldCallValidateSession:!1,language:e.language}):(n.popOutWindow&&n.popOutWindow.close(),console.error(t.clientValidationError))})(e,n);try{n.options.onValidateSession({type:o.ValidateSession,session:n.session,callback:r},n,r)}catch(e){console.error(e),c(n.iframe,n.options.sid,{success:!1,clientValidationError:"Validation runtime error"})}}var t,i},H=(e,n)=>{(e=>e&&e.type===i.ShowPopOutButton)(e)&&(x({container:n.options.innerContainer,label:e.openLabel,top:e.top,left:e.left,right:e.right,styles:e.styles,stylesHover:e.stylesHover,stylesFocusVisible:e.stylesFocusVisible,disabled:e.disabled,onClick:()=>I(e,n)}),(e=>{const n=document.getElementById(h);n&&(n.innerText=e.focusLabel);const t=document.getElementById(f);t&&(t.innerText=e.descriptionLabel);const o=document.getElementById(m);o&&o.setAttribute("aria-label",e.descriptionLabel)})(e))},N=(e,n)=>{e.type===i.HidePopOutButton&&E()},F=e=>{if(E(),b(),e.popOutWindow)try{e.popOutWindow.close()}catch(e){console.error(e)}};e.embed=async e=>{const n=document.createElement("div");n.style.position="relative",n.style["box-sizing"]="border-box";const r={endpoint:"https://checkout.dintero.com",innerContainer:n,...e},{container:s,sid:d,language:p,endpoint:u,onSession:f,onSessionCancel:h,onPayment:m,onPaymentAuthorized:g,onPaymentError:y,onSessionNotFound:w,onSessionLocked:v,onSessionLockFailed:L,onActivePaymentType:S,onValidateSession:C,popOut:T}=r;let k;const x=[];let E=!1;s.appendChild(n);const{iframe:P,initiate:O}=((e,n,t)=>{if(!e||!e.appendChild)throw new Error("Invalid container");const o=document.createElement("iframe");return o.setAttribute("frameborder","0"),o.setAttribute("allowTransparency","true"),o.setAttribute("style","width:100%; height:0;"),o.setAttribute("sandbox","allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox"),o.setAttribute("allow","payment"),o.setAttribute("importance","high"),o.setAttribute("src",t),{iframe:o,initiate:async()=>new Promise(((n,t)=>{o.onload=()=>n(),o.onerror=()=>t(),e.appendChild(o)}))}})(n,0,a({sid:d,endpoint:u,language:p,ui:e.ui||"inline",shouldCallValidateSession:void 0!==C,popOut:T,...e.hasOwnProperty("hideTestMessage")&&{hideTestMessage:e.hideTestMessage}})),$=(e,n,t)=>{if(!k)throw new Error("Unable to create action promise: checkout is undefined");return new Promise(((o,i)=>{const r=[];r.push(l({sid:d,endpoint:u,handler:e=>{r.forEach((e=>e.unsubscribe())),o(e)},eventTypes:[n],checkout:k,source:k.iframe.contentWindow})),r.push(l({sid:d,endpoint:u,handler:()=>{r.forEach((e=>e.unsubscribe())),i(`Received unexpected event: ${t}`)},eventTypes:[t],checkout:k,source:k.iframe.contentWindow})),e()}))},A=()=>$((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"RefreshSession",sid:n},"*")})(P,d)}),o.SessionUpdated,o.SessionNotFound),V=e=>{c(P,d,e)},B=(e,n,i)=>(e,r)=>{if(!E){E=!0,F(r);const s=["sid","merchant_reference","transaction_id","error"].map((n=>[n,e[n]]));e.type!==o.SessionCancel||e.error||s.push(["error","cancelled"]),s.push(["language",r.language]),s.push(["sdk",t]);const a=s.filter((([e,n])=>n)).map((([e,n])=>`${e}=${n}`)).join("&");r.iframe.setAttribute("src",((e,n,t)=>{const o=e.endsWith("/")?"":"/";return`${e}${o}${n}?${t}`})(n,"embedResult/",a)),i(e,r)}},I=[{handler:j,eventTypes:[i.LanguageChanged]},{handler:M,eventTypes:[i.HeightChanged]},{handler:_,eventTypes:[i.ScrollToTop]},{handler:(e,n)=>{n.session=e.session,f&&f(e,n)},eventTypes:[o.SessionLoaded,o.SessionUpdated]},{eventTypes:[o.SessionPaymentOnHold],handler:B(0,u,m||W)},{eventTypes:[o.SessionPaymentAuthorized],handler:B(0,u,g||m||W)},{handler:B(0,u,h||W),eventTypes:[o.SessionCancel]},{handler:B(0,u,y||W),eventTypes:[o.SessionPaymentError]},{handler:w,eventTypes:[o.SessionNotFound]},{handler:(e,n)=>{v&&v(e,n,A)},eventTypes:[o.SessionLocked]},{handler:L,eventTypes:[o.SessionLockFailed]},{handler:S,eventTypes:[o.ActivePaymentProductType]},{handler:(e,n)=>{if(C)try{C({...e,callback:V},n,V)}catch(e){console.error(e),V({success:!1,clientValidationError:"Validation runtime error"})}},eventTypes:[o.ValidateSession]},{handler:H,eventTypes:[i.ShowPopOutButton]},{handler:N,eventTypes:[i.HidePopOutButton]}];return k={destroy:()=>{F(k),P&&(r.popOut&&b(),x.forEach((e=>e.unsubscribe())),P.parentElement&&n.removeChild(P)),n.parentElement&&s.removeChild(n)},iframe:P,language:p,lockSession:()=>$((()=>{((e,n)=>{e.contentWindow&&e.contentWindow.postMessage({type:"LockSession",sid:n},"*")})(P,d)}),o.SessionLocked,o.SessionLockFailed),refreshSession:A,setActivePaymentProductType:e=>{((e,n,t)=>{e.contentWindow&&e.contentWindow.postMessage({type:"SetActivePaymentProductType",sid:n,payment_product_type:t},"*")})(P,d,e)},submitValidationResult:V,options:r,handlers:I,session:void 0,popOutWindow:void 0},I.forEach((({handler:e,eventTypes:n})=>{e&&x.push(l({sid:d,endpoint:u,handler:e,eventTypes:n,checkout:k,source:k.iframe.contentWindow}))})),await O(),k},e.redirect=e=>{const{sid:n,language:t,endpoint:o="https://checkout.dintero.com"}=e;d(a({sid:n,endpoint:o,language:t,shouldCallValidateSession:!1}))},Object.defineProperty(e,"__esModule",{value:!0})}));
7
7
  //# sourceMappingURL=dintero-checkout-web-sdk.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dintero-checkout-web-sdk.umd.min.js","sources":["../node_modules/native-promise-only/lib/npo.src.js","../src/checkout.ts","../src/url.ts","../src/subscribe.ts","../src/popOutBackdrop.ts","../src/popOutButton.ts","../src/popOut.ts","../src/index.ts","../src/createIframeAsync.ts"],"sourcesContent":["/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n\n(function UMD(name,context,definition){\n\t// special form of UMD for polyfilling across evironments\n\tcontext[name] = context[name] || definition();\n\tif (typeof module != \"undefined\" && module.exports) { module.exports = context[name]; }\n\telse if (typeof define == \"function\" && define.amd) { define(function $AMD$(){ return context[name]; }); }\n})(\"Promise\",typeof global != \"undefined\" ? global : this,function DEF(){\n\t/*jshint validthis:true */\n\t\"use strict\";\n\n\tvar builtInProp, cycle, scheduling_queue,\n\t\tToString = Object.prototype.toString,\n\t\ttimer = (typeof setImmediate != \"undefined\") ?\n\t\t\tfunction timer(fn) { return setImmediate(fn); } :\n\t\t\tsetTimeout\n\t;\n\n\t// dammit, IE8.\n\ttry {\n\t\tObject.defineProperty({},\"x\",{});\n\t\tbuiltInProp = function builtInProp(obj,name,val,config) {\n\t\t\treturn Object.defineProperty(obj,name,{\n\t\t\t\tvalue: val,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: config !== false\n\t\t\t});\n\t\t};\n\t}\n\tcatch (err) {\n\t\tbuiltInProp = function builtInProp(obj,name,val) {\n\t\t\tobj[name] = val;\n\t\t\treturn obj;\n\t\t};\n\t}\n\n\t// Note: using a queue instead of array for efficiency\n\tscheduling_queue = (function Queue() {\n\t\tvar first, last, item;\n\n\t\tfunction Item(fn,self) {\n\t\t\tthis.fn = fn;\n\t\t\tthis.self = self;\n\t\t\tthis.next = void 0;\n\t\t}\n\n\t\treturn {\n\t\t\tadd: function add(fn,self) {\n\t\t\t\titem = new Item(fn,self);\n\t\t\t\tif (last) {\n\t\t\t\t\tlast.next = item;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfirst = item;\n\t\t\t\t}\n\t\t\t\tlast = item;\n\t\t\t\titem = void 0;\n\t\t\t},\n\t\t\tdrain: function drain() {\n\t\t\t\tvar f = first;\n\t\t\t\tfirst = last = cycle = void 0;\n\n\t\t\t\twhile (f) {\n\t\t\t\t\tf.fn.call(f.self);\n\t\t\t\t\tf = f.next;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tfunction schedule(fn,self) {\n\t\tscheduling_queue.add(fn,self);\n\t\tif (!cycle) {\n\t\t\tcycle = timer(scheduling_queue.drain);\n\t\t}\n\t}\n\n\t// promise duck typing\n\tfunction isThenable(o) {\n\t\tvar _then, o_type = typeof o;\n\n\t\tif (o != null &&\n\t\t\t(\n\t\t\t\to_type == \"object\" || o_type == \"function\"\n\t\t\t)\n\t\t) {\n\t\t\t_then = o.then;\n\t\t}\n\t\treturn typeof _then == \"function\" ? _then : false;\n\t}\n\n\tfunction notify() {\n\t\tfor (var i=0; i<this.chain.length; i++) {\n\t\t\tnotifyIsolated(\n\t\t\t\tthis,\n\t\t\t\t(this.state === 1) ? this.chain[i].success : this.chain[i].failure,\n\t\t\t\tthis.chain[i]\n\t\t\t);\n\t\t}\n\t\tthis.chain.length = 0;\n\t}\n\n\t// NOTE: This is a separate function to isolate\n\t// the `try..catch` so that other code can be\n\t// optimized better\n\tfunction notifyIsolated(self,cb,chain) {\n\t\tvar ret, _then;\n\t\ttry {\n\t\t\tif (cb === false) {\n\t\t\t\tchain.reject(self.msg);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (cb === true) {\n\t\t\t\t\tret = self.msg;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tret = cb.call(void 0,self.msg);\n\t\t\t\t}\n\n\t\t\t\tif (ret === chain.promise) {\n\t\t\t\t\tchain.reject(TypeError(\"Promise-chain cycle\"));\n\t\t\t\t}\n\t\t\t\telse if (_then = isThenable(ret)) {\n\t\t\t\t\t_then.call(ret,chain.resolve,chain.reject);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchain.resolve(ret);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tchain.reject(err);\n\t\t}\n\t}\n\n\tfunction resolve(msg) {\n\t\tvar _then, self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\ttry {\n\t\t\tif (_then = isThenable(msg)) {\n\t\t\t\tschedule(function(){\n\t\t\t\t\tvar def_wrapper = new MakeDefWrapper(self);\n\t\t\t\t\ttry {\n\t\t\t\t\t\t_then.call(msg,\n\t\t\t\t\t\t\tfunction $resolve$(){ resolve.apply(def_wrapper,arguments); },\n\t\t\t\t\t\t\tfunction $reject$(){ reject.apply(def_wrapper,arguments); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\treject.call(def_wrapper,err);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\telse {\n\t\t\t\tself.msg = msg;\n\t\t\t\tself.state = 1;\n\t\t\t\tif (self.chain.length > 0) {\n\t\t\t\t\tschedule(notify,self);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(new MakeDefWrapper(self),err);\n\t\t}\n\t}\n\n\tfunction reject(msg) {\n\t\tvar self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\tself.msg = msg;\n\t\tself.state = 2;\n\t\tif (self.chain.length > 0) {\n\t\t\tschedule(notify,self);\n\t\t}\n\t}\n\n\tfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n\t\tfor (var idx=0; idx<arr.length; idx++) {\n\t\t\t(function IIFE(idx){\n\t\t\t\tConstructor.resolve(arr[idx])\n\t\t\t\t.then(\n\t\t\t\t\tfunction $resolver$(msg){\n\t\t\t\t\t\tresolver(idx,msg);\n\t\t\t\t\t},\n\t\t\t\t\trejecter\n\t\t\t\t);\n\t\t\t})(idx);\n\t\t}\n\t}\n\n\tfunction MakeDefWrapper(self) {\n\t\tthis.def = self;\n\t\tthis.triggered = false;\n\t}\n\n\tfunction MakeDef(self) {\n\t\tthis.promise = self;\n\t\tthis.state = 0;\n\t\tthis.triggered = false;\n\t\tthis.chain = [];\n\t\tthis.msg = void 0;\n\t}\n\n\tfunction Promise(executor) {\n\t\tif (typeof executor != \"function\") {\n\t\t\tthrow TypeError(\"Not a function\");\n\t\t}\n\n\t\tif (this.__NPO__ !== 0) {\n\t\t\tthrow TypeError(\"Not a promise\");\n\t\t}\n\n\t\t// instance shadowing the inherited \"brand\"\n\t\t// to signal an already \"initialized\" promise\n\t\tthis.__NPO__ = 1;\n\n\t\tvar def = new MakeDef(this);\n\n\t\tthis[\"then\"] = function then(success,failure) {\n\t\t\tvar o = {\n\t\t\t\tsuccess: typeof success == \"function\" ? success : true,\n\t\t\t\tfailure: typeof failure == \"function\" ? failure : false\n\t\t\t};\n\t\t\t// Note: `then(..)` itself can be borrowed to be used against\n\t\t\t// a different promise constructor for making the chained promise,\n\t\t\t// by substituting a different `this` binding.\n\t\t\to.promise = new this.constructor(function extractChain(resolve,reject) {\n\t\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t\t}\n\n\t\t\t\to.resolve = resolve;\n\t\t\t\to.reject = reject;\n\t\t\t});\n\t\t\tdef.chain.push(o);\n\n\t\t\tif (def.state !== 0) {\n\t\t\t\tschedule(notify,def);\n\t\t\t}\n\n\t\t\treturn o.promise;\n\t\t};\n\t\tthis[\"catch\"] = function $catch$(failure) {\n\t\t\treturn this.then(void 0,failure);\n\t\t};\n\n\t\ttry {\n\t\t\texecutor.call(\n\t\t\t\tvoid 0,\n\t\t\t\tfunction publicResolve(msg){\n\t\t\t\t\tresolve.call(def,msg);\n\t\t\t\t},\n\t\t\t\tfunction publicReject(msg) {\n\t\t\t\t\treject.call(def,msg);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(def,err);\n\t\t}\n\t}\n\n\tvar PromisePrototype = builtInProp({},\"constructor\",Promise,\n\t\t/*configurable=*/false\n\t);\n\n\t// Note: Android 4 cannot use `Object.defineProperty(..)` here\n\tPromise.prototype = PromisePrototype;\n\n\t// built-in \"brand\" to signal an \"uninitialized\" promise\n\tbuiltInProp(PromisePrototype,\"__NPO__\",0,\n\t\t/*configurable=*/false\n\t);\n\n\tbuiltInProp(Promise,\"resolve\",function Promise$resolve(msg) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\t// note: best \"isPromise\" check that's practical for now\n\t\tif (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n\t\t\treturn msg;\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tresolve(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"reject\",function Promise$reject(msg) {\n\t\treturn new this(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\treject(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"all\",function Promise$all(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\t\tif (arr.length === 0) {\n\t\t\treturn Constructor.resolve([]);\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tvar len = arr.length, msgs = Array(len), count = 0;\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg) {\n\t\t\t\tmsgs[idx] = msg;\n\t\t\t\tif (++count === len) {\n\t\t\t\t\tresolve(msgs);\n\t\t\t\t}\n\t\t\t},reject);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"race\",function Promise$race(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg){\n\t\t\t\tresolve(msg);\n\t\t\t},reject);\n\t\t});\n\t});\n\n\treturn Promise;\n});\n","import type { Session } from \"./session\";\n\nexport enum CheckoutEvents {\n SessionNotFound = \"SessionNotFound\",\n SessionLoaded = \"SessionLoaded\",\n SessionUpdated = \"SessionUpdated\",\n SessionCancel = \"SessionCancel\",\n SessionPaymentOnHold = \"SessionPaymentOnHold\",\n SessionPaymentAuthorized = \"SessionPaymentAuthorized\",\n SessionPaymentError = \"SessionPaymentError\",\n SessionLocked = \"SessionLocked\",\n SessionLockFailed = \"SessionLockFailed\",\n ActivePaymentProductType = \"ActivePaymentProductType\",\n ValidateSession = \"ValidateSession\",\n}\nexport enum InternalCheckoutEvents {\n HeightChanged = \"HeightChanged\",\n LanguageChanged = \"LanguageChanged\",\n ScrollToTop = \"ScrollToTop\",\n ShowPopOutButton = \"ShowPopOutButton\",\n HidePopOutButton = \"HidePopOutButton\",\n}\n\nexport type SessionNotFound = {\n type: CheckoutEvents.SessionNotFound;\n};\n\nexport type SessionLoaded = {\n type: CheckoutEvents.SessionLoaded;\n session: Session;\n};\n\nexport type SessionUpdated = {\n type: CheckoutEvents.SessionUpdated;\n session: Session;\n};\n\nexport type SessionCancel = {\n type: CheckoutEvents.SessionCancel;\n href: string;\n};\n\nexport type SessionPaymentOnHold = {\n type: CheckoutEvents.SessionPaymentOnHold;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionPaymentAuthorized = {\n type: CheckoutEvents.SessionPaymentAuthorized;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionLocked = {\n type: CheckoutEvents.SessionLocked;\n pay_lock_id: string;\n callback: () => void;\n};\n\nexport type ShowPopOutButton = {\n type: \"ShowPopOutButton\";\n styles: {\n font: string;\n height: string;\n color: string;\n background: string;\n textAlign: string;\n padding: string;\n margin: string;\n border: string;\n borderRadius: string;\n cursor: string;\n fontWeight: string;\n lineHeight: string;\n transition: string;\n outline: string;\n };\n stylesHover?: { [key: string]: string };\n stylesFocusVisible?: { [key: string]: string };\n openLabel: string;\n focusLabel: string;\n closeLabel: string;\n descriptionLabel: string;\n top: string;\n left: string;\n right: string;\n language: string;\n disabled: \"true\" | \"false\";\n};\n\nexport type SessionLockFailed = {\n type: CheckoutEvents.SessionLockFailed;\n};\nexport type ActivePaymentProductType = {\n type: CheckoutEvents.ActivePaymentProductType;\n payment_product_type: string | undefined;\n};\n\nexport type ValidateSession = {\n type: CheckoutEvents.ValidateSession;\n session: Session;\n callback: (result: SessionValidationCallback) => void;\n};\n\nexport interface SessionValidationCallback {\n success: boolean;\n clientValidationError?: string;\n}\n\nexport type WrappedValidateSession = Pick<ValidateSession, \"type\" | \"session\">;\nexport type WrappedSessionLocked = Pick<SessionLocked, \"type\" | \"pay_lock_id\">;\n\nexport type SessionPayment = SessionPaymentAuthorized | SessionPaymentOnHold;\n\nexport type SessionPaymentError = {\n type: CheckoutEvents.SessionPaymentError;\n error: string;\n href: string;\n};\n\nexport type SessionEvent =\n | SessionNotFound\n | SessionLoaded\n | SessionUpdated\n | SessionCancel\n | SessionPaymentOnHold\n | SessionPaymentAuthorized\n | SessionPaymentError\n | WrappedSessionLocked\n | SessionLockFailed\n | ActivePaymentProductType\n | WrappedValidateSession;\n","import pkg from \"../package.json\";\n\n/**\n * Wraps window.location.assign()\n */\nconst windowLocationAssign = (url: string) => {\n window.location.assign(url);\n};\n\n/**\n * Get the url for the session\n */\nexport interface SessionUrlOptions {\n sid: string;\n endpoint: string;\n language: string | undefined;\n ui?: \"fullscreen\" | \"inline\";\n shouldCallValidateSession: boolean;\n popOut?: boolean;\n}\n\nconst getSessionUrl = (options: SessionUrlOptions): string => {\n const { sid, endpoint, language, ui, shouldCallValidateSession, popOut } =\n options;\n if (!endpoint) {\n throw new Error(\"Invalid endpoint\");\n }\n const params = new URLSearchParams();\n params.append(\"sdk\", pkg.version);\n if (ui) {\n params.append(\"ui\", ui);\n }\n if (language) {\n params.append(\"language\", language);\n }\n if (shouldCallValidateSession) {\n params.append(\"client_side_validation\", \"true\");\n }\n if (popOut) {\n params.append(\"role\", \"pop_out_launcher\");\n }\n if (endpoint === \"https://checkout.dintero.com\") {\n // Default endpoint will redirect via the view endpoint\n return `${endpoint}/v1/view/${sid}?${params.toString()}`;\n }\n // When a custom endpoint is set skip the view redirect endpoint since\n // custom endpoints like localhost and PR builds does not support the\n // serverside view flow.\n params.append(\"sid\", sid);\n return `${padTralingSlash(endpoint)}?${params.toString()}`;\n};\n\nconst padTralingSlash = (endpoint: string) =>\n endpoint.endsWith(\"/\") ? endpoint : `${endpoint}/`;\n\nconst getPopOutUrl = ({\n sid,\n endpoint,\n language,\n shouldCallValidateSession,\n}: SessionUrlOptions) => {\n const params = new URLSearchParams();\n params.append(\"ui\", \"fullscreen\");\n params.append(\"role\", \"pop_out_payment\");\n params.append(\"sid\", sid);\n params.append(\"sdk\", pkg.version);\n if (language) {\n params.append(\"language\", language);\n }\n if (shouldCallValidateSession) {\n params.append(\"loader\", \"true\");\n return `${padTralingSlash(endpoint)}?${params.toString()}`;\n }\n return `${padTralingSlash(endpoint)}?${params.toString()}`;\n};\n\nexport const url = {\n getPopOutUrl,\n getSessionUrl,\n windowLocationAssign,\n};\n","import {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionEvent,\n SessionValidationCallback,\n} from \"./checkout\";\nimport { DinteroCheckoutInstance } from \".\";\n\n/**\n * Unsubscribe handler from event(s).\n */\nexport type SubscriptionHandler = (\n sessionEvent: SessionEvent,\n checkout: DinteroCheckoutInstance,\n) => void;\n\ninterface SubscriptionOptions {\n sid: string;\n endpoint: string;\n handler: SubscriptionHandler;\n eventTypes: (CheckoutEvents | InternalCheckoutEvents)[];\n checkout: DinteroCheckoutInstance;\n source: Window;\n}\n\nexport type Subscription = {\n /**\n * Unsubscribe handler from event(s).\n */\n unsubscribe: () => void;\n};\n\n/**\n * Post a message acknowledgement to the checkout iframe.\n */\nconst postAck = (source: Window, event: MessageEvent) => {\n if (event.data.mid && source) {\n source.postMessage({ ack: event.data.mid }, event.origin || \"*\");\n }\n};\n\n/**\n * Post a SessionLock-event to the checkout iframe.\n */\nexport const postSessionLock = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"LockSession\", sid }, \"*\");\n }\n};\n\n/**\n * Post the validation result to the checkout iframe\n */\nexport const postValidationResult = (\n iframe: HTMLIFrameElement,\n sid: string,\n result: SessionValidationCallback,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"ValidationResult\", sid, ...result },\n \"*\",\n );\n }\n};\n\n/**\n * Post RefreshSession-event to the checkout iframe.\n */\nexport const postSessionRefresh = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"RefreshSession\", sid }, \"*\");\n }\n};\n\n/**\n * Post SetActivePaymentProductType-event to the checkout iframe.\n */\nexport const postActivePaymentProductType = (\n iframe: HTMLIFrameElement,\n sid: string,\n paymentProductType?: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n {\n type: \"SetActivePaymentProductType\",\n sid,\n payment_product_type: paymentProductType,\n },\n \"*\",\n );\n }\n};\n\n/**\n * Post ClosePopOut-event to the checkout iframe.\n */\nexport const postValidatePopOutEvent = (\n iframe: HTMLIFrameElement,\n sid: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"ValidatingPopOut\", sid },\n \"*\",\n );\n }\n};\n\n/**\n * Post OpenPopOutFailed-event to the checkout iframe.\n */\nexport const postOpenPopOutFailedEvent = (\n iframe: HTMLIFrameElement,\n sid: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"OpenPopOutFailed\", sid },\n \"*\",\n );\n }\n};\n\n/**\n * Post OpenedPopOut-event to the checkout iframe.\n */\nexport const postOpenPopOutEvent = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"OpenedPopOut\", sid }, \"*\");\n }\n};\n\n/**\n * Post ClosePopOut-event to the checkout iframe.\n */\nexport const postClosePopOutEvent = (\n iframe: HTMLIFrameElement,\n sid: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"ClosedPopOut\", sid }, \"*\");\n }\n};\n\n/**\n * Post SetLanguage-event to the checkout iframe.\n */\nexport const postSetLanguage = (\n iframe: HTMLIFrameElement,\n sid: string,\n language: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"SetLanguage\", sid, language },\n \"*\",\n );\n }\n};\n\n/**\n * Subscribe to events from an iframe given a handler and a set\n * of event types.\n */\nexport const subscribe = (options: SubscriptionOptions): Subscription => {\n const { sid, endpoint, handler, eventTypes, checkout } = options;\n\n // Wrap event handler in a function that checks for correct origin and\n // filters on event type(s) in the event data.\n const endpointUrl = new URL(endpoint);\n\n const wrappedHandler = (event: MessageEvent) => {\n const correctOrigin = event.origin === endpointUrl.origin;\n const correctWindow = event.source === checkout.iframe.contentWindow;\n const correctSid = event.data && event.data.sid === sid;\n const correctMessageType =\n eventTypes.indexOf(event.data && event.data.type) !== -1;\n\n if (\n correctOrigin &&\n correctWindow &&\n correctSid &&\n correctMessageType\n ) {\n postAck(checkout.iframe.contentWindow, event);\n handler(event.data, checkout);\n }\n };\n\n // Add event listener to the iframe.\n window.addEventListener(\"message\", wrappedHandler as any, false);\n\n // Function to remove the event listener from the iframe.\n const unsubscribe = () => {\n window.removeEventListener(\"message\", wrappedHandler as any, false);\n };\n\n // Return object with unsubscribe function.\n return {\n unsubscribe,\n };\n};\n","import { ShowPopOutButton } from \"./checkout\";\n\ntype BackdropOptions = {\n close: () => void;\n focus: () => void;\n event: ShowPopOutButton;\n};\n\nconst getBackdropZIndex = () => {\n // Iterate all DOM items to get current highest element.\n const elements = document.getElementsByTagName(\"*\");\n const highest = Array.from(elements).reduce((acc, element) => {\n try {\n const zIndexStr = document.defaultView\n .getComputedStyle(element, null)\n .getPropertyValue(\"z-index\");\n const zIndex = parseInt(zIndexStr || \"0\");\n if (!isNaN(zIndex) && zIndex > acc) {\n return zIndex;\n }\n } catch (e) {\n // Ignore errors when getting z-index\n console.error(e);\n }\n return acc;\n }, 0);\n if (highest < 9999) {\n return \"9999\";\n }\n return (highest + 1).toString();\n};\n\nconst STYLE_ID = \"dintero-checkout-sdk-style\";\nconst BACKDROP_ID = \"dintero-checkout-sdk-backdrop\";\nconst BACKDROP_DESCRIPTION = \"dintero-checkout-sdk-backdrop-description\";\nconst FOCUS_CHECKOUT_BUTTON_ID = \"dintero-checkout-sdk-backdrop-focus\";\nconst CLOSE_BACKDROP_BUTTON_ID = \"dintero-checkout-sdk-backdrop-close\";\n\nconst wrapPreventDefault = (fn: () => void) => {\n // Creates a wrapped function that will invoke preventDefault() to stop\n // the event from bubbling up the DOM tree.\n return (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n fn();\n return false;\n };\n};\n\nconst appendBackdropStyles = () => {\n // Check if exists before appending to DOM\n if (document.getElementById(STYLE_ID)) {\n return;\n }\n // Add style to DOM\n const style = document.createElement(\"style\");\n style.setAttribute(\"id\", STYLE_ID);\n style.innerHTML = `\n @keyframes ${BACKDROP_ID}-fade-in {\n from {opacity: 0;}\n to {opacity: 1;}\n }\n\n #${BACKDROP_ID} {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.9);\n background: radial-gradient(rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.8) 100%);\n cursor: pointer;\n animation: 20ms ease-out ${BACKDROP_ID}-fade-in;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 20px;\n color: #ffffff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n font-size: 18px;\n font-weight: 400;\n line-height: normal;\n text-rendering: geometricPrecision;\n margin: 0;\n padding: 0;\n border: 0;\n vertical-align: baseline;\n line-height: normal;\n }\n\n #${BACKDROP_ID} p {\n padding: 0;\n margin: 0;\n border: 0;\n user-select: none;\n }\n\n #${FOCUS_CHECKOUT_BUTTON_ID} {\n background-color: #efefef !important;\n color: #000000 !important;\n font-size: 16px !important;\n font-weight: 600 !important;\n border-radius: 200px !important;\n margin: 0 !important;\n line-height: normal !important;\n border: none !important;\n padding: 10px 20px !important;\n user-select: none !important;\n cursor: pointer !important;\n }\n #${FOCUS_CHECKOUT_BUTTON_ID}:hover,\n #${FOCUS_CHECKOUT_BUTTON_ID}:focus {\n outline: none !important;\n background-color: #ffffff !important;\n border: none !important;\n color: #000000 !important;\n padding: 10px 20px !important;\n margin: 0 !important;\n }\n #${FOCUS_CHECKOUT_BUTTON_ID}:focus{\n outline-offset: 2px;\n outline: 1px #ffffff solid !important;\n }\n\n #${CLOSE_BACKDROP_BUTTON_ID} {\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n border-radius: 4px !important;\n height: 24px !important;\n width: 24px !important;\n color: #efefef !important;\n position: absolute !important;\n top: 16px !important;\n right: 24px !important;\n transition: all 200ms ease-out !important;\n cursor: pointer !important;\n }\n\n #${CLOSE_BACKDROP_BUTTON_ID}:hover,\n #${CLOSE_BACKDROP_BUTTON_ID}:focus {\n outline: none !important;\n color: #ffffff !important;\n border: none !important;\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n position: absolute;\n top: 16px;\n right: 24px;\n }\n #${CLOSE_BACKDROP_BUTTON_ID}:focus{\n outline: 1px #ffffff solid !important;\n }\n\n #${BACKDROP_ID}:before,\n #${BACKDROP_ID}:after,\n #${BACKDROP_ID} > *:before,\n #${BACKDROP_ID} > *:after {\n content: '';\n content: none;\n }\n `;\n document.head.appendChild(style);\n};\n\nconst createBackdropDOM = () => {\n // Dark translucent backdrop element\n const backdrop = document.createElement(\"div\");\n backdrop.setAttribute(\"id\", BACKDROP_ID);\n backdrop.setAttribute(\"role\", \"dialog\");\n backdrop.style.zIndex = getBackdropZIndex();\n return backdrop;\n};\n\nconst createCloseButtonDOM = (label: string) => {\n // Close button for the top right corner\n const button = document.createElement(\"button\");\n button.setAttribute(\"id\", CLOSE_BACKDROP_BUTTON_ID);\n button.setAttribute(\"type\", \"button\");\n button.setAttribute(\"aria-label\", label);\n button.innerHTML = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n alt=\"close icon\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>`;\n return button;\n};\n\nconst createDinteroLogoDOM = () => {\n // Close button for the top right corner\n const div = document.createElement(\"div\");\n div.innerHTML = `\n <svg width=\"120px\" height=\"22px\" viewBox=\"0 0 630 111\" version=\"1.1\" >\n <g id=\"Page-1\" stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g id=\"Dintero\" fill=\"#ffffff\" fillRule=\"nonzero\">\n <path d=\"M376.23,60.48 L376.23,73.54 L454.13,73.54 C456.31,41.55 435.85,23.71 410.61,23.71 C385.37,23.71 367.09,41.77 367.09,66.79 C367.09,92.03 386.02,110.31 411.91,110.31 C433.02,110.31 448.9,97.25 453.25,82.24 L436.5,82.24 C432.37,89.42 423.88,95.51 411.91,95.51 C395.16,95.51 382.75,83.11 382.75,66.79 C382.75,50.69 394.72,38.5 410.6,38.5 C426.48,38.5 438.45,50.68 438.45,66.79 L444.54,60.48 L376.23,60.48 Z M154.29,17.83 L171.7,17.83 L171.7,0.42 L154.29,0.42 L154.29,17.83 Z M120.34,108.13 L191.27,108.13 L191.27,93.77 L120.34,93.77 L120.34,108.13 Z M156.46,40.24 L156.46,108.13 L171.69,108.13 L171.69,45.47 C171.69,32.85 165.82,25.89 151.89,25.89 L120.34,25.89 L120.34,40.25 L156.46,40.25 L156.46,40.24 Z M499.17,25.88 L464.36,25.88 L464.36,40.24 L483.94,40.24 L484.16,108.13 L499.39,108.13 L499.17,62.44 C499.17,48.51 508.53,40.25 521.58,40.25 L535.29,40.25 L535.29,25.89 L524.41,25.89 C509.18,25.89 501.78,31.33 497.65,41.56 L495.47,47 L499.17,47.65 L499.17,25.88 Z M288.76,25.88 L310.52,25.88 L310.52,6.3 L325.75,6.3 L325.75,25.88 L359.69,25.88 L359.69,40.24 L325.75,40.24 L325.75,93.77 L359.69,93.77 L359.69,108.13 L332.49,108.13 C318.56,108.13 310.51,98.99 310.51,86.37 L310.51,40.24 L288.75,40.24 L288.75,25.88 L288.76,25.88 Z M464.35,108.13 L535.28,108.13 L535.28,93.77 L464.35,93.77 L464.35,108.13 Z M108.6,54.17 C108.6,23.06 85.54,0.43 53.77,0.43 L0.9,0.43 L0.9,108.14 L53.77,108.14 C85.53,108.13 108.6,85.5 108.6,54.17 M248.07,23.71 C234.58,23.71 223.92,31.98 220,41.55 L220,25.88 L204.77,25.88 L204.77,108.13 L220,108.13 L220,66.35 C220,53.08 224.79,38.93 243.72,38.93 C259.39,38.93 267.44,48.07 267.44,67.43 L267.44,108.12 L282.67,108.12 L282.67,64.6 C282.67,35.02 265.91,23.71 248.07,23.71 M586.2,110.31 C611.22,110.31 629.72,92.03 629.72,67.01 C629.72,41.99 611.23,23.71 586.2,23.71 C560.96,23.71 542.68,41.99 542.68,67.01 C542.68,92.03 560.96,110.31 586.2,110.31 M586.2,95.51 C570.32,95.51 558.35,83.33 558.35,67.01 C558.35,50.69 570.32,38.51 586.2,38.51 C602.08,38.51 614.05,50.69 614.05,67.01 C614.05,83.33 602.08,95.51 586.2,95.51 M16.99,92.9 L16.99,15.66 L51.8,15.66 C75.3,15.66 92.05,31.98 92.05,54.61 C92.05,76.8 75.3,92.91 51.8,92.91 L16.99,92.91 L16.99,92.9 Z\" id=\"Shape\"></path>\n </g>\n </g>\n </svg>`;\n return div;\n};\n\nconst createLabelDOM = (text: string) => {\n // Text about the pop out\n const p = document.createElement(\"p\");\n p.setAttribute(\"id\", BACKDROP_DESCRIPTION);\n p.innerText = text;\n return p;\n};\n\nconst createFocusButtonDOM = (text: string) => {\n // Mock button to give the user a call to action element to click, even\n // though the entire backdrop (except the close button) returns focus to the\n // checkout.\n const button = document.createElement(\"button\");\n button.setAttribute(\"id\", FOCUS_CHECKOUT_BUTTON_ID);\n button.setAttribute(\"type\", \"button\");\n button.innerText = text;\n return button;\n};\n\nconst focusTrap = (e: KeyboardEvent) => {\n // Prevent the user focusing outside of the backdrop while it is visible\n const focusButton = document.getElementById(FOCUS_CHECKOUT_BUTTON_ID);\n const closeButton = document.getElementById(CLOSE_BACKDROP_BUTTON_ID);\n if (e.key === \"Tab\" || e.code === \"Tab\") {\n if (document.activeElement === focusButton) {\n closeButton.focus();\n e.preventDefault();\n } else {\n // Tab\n focusButton.focus();\n e.preventDefault();\n }\n }\n};\n\nconst createBackdropView = (options: BackdropOptions) => {\n // Add styles needed for the backdrop;\n appendBackdropStyles();\n // Create DOM nodes\n const backdrop = createBackdropDOM();\n const closeButton = createCloseButtonDOM(options.event.closeLabel);\n const dinteroLogo = createDinteroLogoDOM();\n const label = createLabelDOM(options.event.descriptionLabel);\n const focusButton = createFocusButtonDOM(options.event.focusLabel);\n\n // Add click handlers\n backdrop.onclick = wrapPreventDefault(options.focus);\n focusButton.onclick = wrapPreventDefault(options.focus);\n closeButton.onclick = wrapPreventDefault(options.close);\n\n // Add focus trap when backdrop is visible\n document.addEventListener(\"keydown\", focusTrap);\n\n // Append to document\n backdrop.appendChild(closeButton);\n backdrop.appendChild(dinteroLogo);\n backdrop.appendChild(label);\n backdrop.appendChild(focusButton);\n document.body.appendChild(backdrop);\n backdrop.focus();\n return backdrop;\n};\n\nexport const setBackdropLabels = (event: ShowPopOutButton) => {\n const focusButton = document.getElementById(FOCUS_CHECKOUT_BUTTON_ID);\n if (focusButton) {\n focusButton.innerText = event.focusLabel;\n }\n const description = document.getElementById(BACKDROP_DESCRIPTION);\n if (description) {\n description.innerText = event.descriptionLabel;\n }\n const closeButton = document.getElementById(CLOSE_BACKDROP_BUTTON_ID);\n if (closeButton) {\n closeButton.setAttribute(\"aria-label\", event.descriptionLabel);\n }\n};\n\nexport const createBackdrop = (options: BackdropOptions) => {\n try {\n // Check if backdrop already exists\n const backdrop = document.getElementById(BACKDROP_ID);\n if (backdrop) {\n return;\n }\n return createBackdropView(options);\n } catch (e) {\n // Ignore errors when creating backdrop. If it fails we should not\n // block the payment.\n console.error(e);\n }\n};\n\nexport const removeBackdrop = () => {\n try {\n const backdrop = document.getElementById(BACKDROP_ID);\n if (backdrop) {\n document.body.removeChild(backdrop);\n }\n document.removeEventListener(\"keydown\", focusTrap);\n } catch (e) {\n // Ignore errors when closing backdrop. If it fails we should not stop\n // the rest of the application from working.\n console.error(e);\n }\n};\n","const OPEN_POP_OUT_BUTTON_ID = \"dintero-checkout-sdk-launch-pop-out\";\n\ntype PopOutButtonOptions = {\n container: HTMLElement;\n label: string;\n disabled: string;\n top: string;\n left: string;\n right: string;\n styles: {\n [key: string]: string;\n };\n stylesHover?: { [key: string]: string };\n stylesFocusVisible?: { [key: string]: string };\n onClick: () => void;\n};\n\nconst configureButton = (\n button: HTMLElement,\n {\n label,\n disabled,\n top,\n left,\n right,\n styles,\n onClick,\n stylesHover,\n stylesFocusVisible,\n }: PopOutButtonOptions,\n) => {\n button.setAttribute(\"id\", OPEN_POP_OUT_BUTTON_ID);\n button.setAttribute(\"type\", \"button\");\n\n // Is clickable\n if (disabled === \"true\") {\n button.setAttribute(\"disabled\", disabled);\n } else {\n button.removeAttribute(\"disabled\");\n }\n\n // Click handler\n button.onclick = (event) => {\n // Do not submit any form on the page using the SDK\n event.preventDefault();\n event.stopPropagation();\n\n // Update look\n button.style.boxShadow = \"inset 0 0 10px rgba(34, 84, 65, 0.9)\";\n\n // Invoke handler\n onClick();\n\n // Reset look\n window.setTimeout(() => {\n button.style.boxShadow = \"none\";\n }, 200);\n };\n\n // Label\n button.innerText = label;\n\n // Position\n button.style.position = \"absolute\";\n button.style.top = top + \"px\";\n button.style.left = left + \"px\";\n button.style.right = right + \"px\";\n\n // Appearance from checkout\n const { ...directStyles } = styles;\n\n for (const [key, value] of Object.entries(directStyles)) {\n button.style[key] = value;\n }\n\n // Add hover and focus-visible styles\n try {\n addHoverAndFocusVisibleStyles(stylesHover, stylesFocusVisible);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst addHoverAndFocusVisibleStyles = (\n stylesHover?: { [key: string]: string },\n stylesFocusVisible?: { [key: string]: string },\n) => {\n if (!stylesHover && !stylesFocusVisible) {\n return;\n }\n const styleId = `${OPEN_POP_OUT_BUTTON_ID}-styles`;\n const hasStyles = document.getElementById(styleId);\n if (hasStyles) {\n return;\n }\n const style = document.createElement(\"style\");\n style.setAttribute(\"id\", styleId);\n let content = [];\n if (stylesHover) {\n content.push(\n toCssEntity(\n `#${OPEN_POP_OUT_BUTTON_ID}:hover:not(:disabled)`,\n stylesHover,\n ),\n );\n }\n if (stylesFocusVisible) {\n content.push(\n toCssEntity(\n `#${OPEN_POP_OUT_BUTTON_ID}:focus-visible`,\n stylesFocusVisible,\n ),\n );\n }\n style.textContent = content.join(\"\\n\");\n document.head.appendChild(style);\n};\n\nconst toCssEntity = (\n selector: string,\n keyValues: { [key: string]: string },\n) => {\n return [`${selector} {`, toCssParameters(keyValues), `}`].join(\"\\n\");\n};\n\nconst toCssParameters = (keyValues: { [key: string]: string }) => {\n return Object.entries(keyValues)\n .map(([key, value]) => ` ${slugify(key)}: ${value} !important;`)\n .join(\"\\n\");\n};\n\nconst slugify = (str: string) => {\n return str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n};\n\nexport const addPopOutButton = (options: PopOutButtonOptions) => {\n // Will add or update existing button\n const { container } = options;\n const exists = document.getElementById(OPEN_POP_OUT_BUTTON_ID);\n const button = exists || document.createElement(\"button\");\n configureButton(button, options);\n if (!exists) {\n container.appendChild(button);\n }\n};\n\nexport const setPopOutButtonDisabled = (disabled: boolean) => {\n try {\n const button = document.getElementById(OPEN_POP_OUT_BUTTON_ID);\n if (button) {\n if (disabled) {\n button.setAttribute(\"disabled\", disabled.toString());\n } else {\n button.removeAttribute(\"disabled\");\n }\n }\n } catch (e) {\n // Ignore error and continue\n console.error(e);\n }\n};\n\nexport const removePopOutButton = () => {\n try {\n const button = document.getElementById(OPEN_POP_OUT_BUTTON_ID);\n if (button) {\n button.remove();\n }\n } catch (e) {\n // Ignore error and continue\n console.error(e);\n }\n};\n","import { url, type SessionUrlOptions } from \"./url\";\n\nconst WIDTH = Math.min(480, window.screen.width);\nconst HEIGHT = Math.min(840, window.screen.height);\nlet popOutWindow: undefined | Window;\n\nconst createPopOutWindow = (\n sid: string,\n url: string,\n width: number,\n height: number,\n) => {\n return new Promise<Window | undefined>((resolve) => {\n try {\n // Creates a centered pop up window\n const left = window.screenX + (window.outerWidth - width) / 2;\n const top = window.screenY + (window.outerHeight - height) / 2;\n const features = `width=${width},height=${height},left=${left},top=${top},location=no,menubar=no,toolbar=no,status=no`;\n let popOut: undefined | Window;\n let timeout = -1;\n // Set up listener for application loaded message from pop out window\n const handleAppLoaded = (event: MessageEvent) => {\n const correctSource = event.source === popOut;\n const correctOrigin = event.origin === new URL(url).origin;\n const correctMessage =\n event.data && event.data.type === \"AppLoaded\";\n const correctContext = event.data.context === \"popOut\";\n const correctSid = event.data.sid === sid;\n if (\n correctSource &&\n correctOrigin &&\n correctMessage &&\n correctContext &&\n correctSid\n ) {\n clearTimeout(timeout);\n resolve(popOut);\n window.removeEventListener(\"message\", handleAppLoaded);\n }\n };\n window.addEventListener(\"message\", handleAppLoaded);\n // Open pop out\n popOut = window.open(url, \"dintero-checkout\", features);\n // Check that pop out was opened\n if (!popOut) {\n console.log(\"createPopOutWindow no popOut\");\n resolve(undefined);\n return;\n }\n // Trigger timeout if pop out is not loaded\n timeout = window.setTimeout(() => {\n console.log(\"createPopOutWindow timeout\");\n resolve(undefined);\n }, 3000);\n } catch (err) {\n resolve(undefined);\n }\n });\n};\n\ntype Unsubscribe = () => void;\n\ntype PopOutOptions = SessionUrlOptions & {\n onOpen: (popOut: Window) => Unsubscribe;\n onClose: () => void;\n};\n\nexport const openPopOut = async (options: PopOutOptions) => {\n let unsubscribe: undefined | Unsubscribe;\n let intervalId = -1;\n if (popOutWindow && !popOutWindow.closed) {\n // Skip if already open.\n return;\n }\n\n // Open popup window\n const popOutUrl = url.getPopOutUrl(options);\n popOutWindow = await createPopOutWindow(\n options.sid,\n popOutUrl,\n WIDTH,\n HEIGHT,\n );\n\n const focusPopOut = () => {\n if (popOutWindow) {\n popOutWindow.focus();\n }\n };\n\n const cleanUpClosed = () => {\n window.clearInterval(intervalId);\n intervalId = -1;\n window.removeEventListener(\"beforeunload\", closePopOut);\n popOutWindow = undefined;\n options.onClose();\n if (unsubscribe) {\n unsubscribe();\n }\n };\n\n const closePopOut = () => {\n if (popOutWindow) {\n popOutWindow.close();\n }\n cleanUpClosed();\n };\n\n const checkIfPopupClosed = () => {\n if (popOutWindow && popOutWindow.closed) {\n cleanUpClosed();\n }\n };\n\n // Close pop out if current window is closed\n window.addEventListener(\"beforeunload\", closePopOut);\n\n // Check if checkout is still open\n intervalId = window.setInterval(checkIfPopupClosed, 200);\n\n // Set up pub/sub of messages from pop out to SDK\n unsubscribe = options.onOpen(popOutWindow);\n\n return {\n close: closePopOut,\n focus: focusPopOut,\n popOutWindow,\n };\n};\n\nexport const popOut = { openPopOut };\n","import \"native-promise-only\";\n\nimport pkg from \"../package.json\";\nimport {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionNotFound,\n SessionLoaded,\n SessionUpdated,\n SessionCancel,\n SessionPaymentOnHold,\n SessionPaymentAuthorized,\n SessionPaymentError,\n SessionLocked,\n SessionLockFailed,\n ActivePaymentProductType,\n ValidateSession,\n SessionValidationCallback,\n SessionEvent,\n ShowPopOutButton,\n} from \"./checkout\";\nimport { url } from \"./url\";\nimport { createIframeAsync } from \"./createIframeAsync\";\nimport {\n subscribe,\n SubscriptionHandler,\n Subscription,\n postSessionLock,\n postSessionRefresh,\n postActivePaymentProductType,\n postValidationResult,\n postSetLanguage,\n postOpenPopOutEvent,\n postClosePopOutEvent,\n postValidatePopOutEvent,\n postOpenPopOutFailedEvent,\n} from \"./subscribe\";\nimport {\n createBackdrop,\n removeBackdrop,\n setBackdropLabels,\n} from \"./popOutBackdrop\";\nimport {\n addPopOutButton,\n removePopOutButton,\n setPopOutButtonDisabled,\n} from \"./popOutButton\";\nimport { popOut } from \"./popOut\";\nimport { Session } from \"./session\";\n\nexport interface DinteroCheckoutInstance {\n /**\n * Remove iframe and all event listeners.\n */\n destroy: () => void;\n iframe: HTMLIFrameElement;\n language: string;\n lockSession: () => Promise<SessionEvent>;\n refreshSession: () => Promise<SessionEvent>;\n setActivePaymentProductType: (paymentProductType: string) => void;\n submitValidationResult: (result: SessionValidationCallback) => void;\n options: InternalDinteroEmbedCheckoutOptions;\n handlers: (\n | {\n handler: SubscriptionHandler;\n eventTypes: InternalCheckoutEvents[];\n }\n | {\n handler: SubscriptionHandler;\n eventTypes: CheckoutEvents[];\n }\n )[];\n session: Session | undefined;\n popOutWindow: Window | undefined;\n}\n\nexport interface DinteroCheckoutOptions {\n sid: string;\n endpoint?: string;\n language?: string;\n}\n\nexport interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {\n container: HTMLDivElement;\n popOut?: boolean;\n ui?: \"inline\" | \"fullscreen\";\n onPayment?: (\n event: SessionPaymentAuthorized | SessionPaymentOnHold,\n checkout: DinteroCheckoutInstance,\n ) => void;\n /**\n * @deprecated Since version 0.0.1. Will be deleted in version 1.0.0. Use onPayment instead.\n */\n onPaymentAuthorized?: (\n event: SessionPaymentAuthorized,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSession?: (\n event: SessionLoaded | SessionUpdated,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onPaymentError?: (\n event: SessionPaymentError,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSessionCancel?: (\n event: SessionCancel,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSessionNotFound?: (\n event: SessionNotFound,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSessionLocked?: (\n event: SessionLocked,\n checkout: DinteroCheckoutInstance,\n callback: () => void,\n ) => void;\n onSessionLockFailed?: (\n event: SessionLockFailed,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onActivePaymentType?: (\n event: ActivePaymentProductType,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onValidateSession?: (\n event: ValidateSession,\n checkout: DinteroCheckoutInstance,\n callback: (result: SessionValidationCallback) => void,\n ) => void;\n}\n\ninterface InternalDinteroEmbedCheckoutOptions\n extends DinteroEmbedCheckoutOptions {\n innerContainer: HTMLDivElement;\n}\n\n/**\n * An event handler that navigates to the href in the event.\n */\nconst followHref: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n cleanUpPopOut(checkout);\n if (event.href) {\n url.windowLocationAssign(event.href);\n }\n};\n\n/**\n * An event handler that sets height of the iframe.\n */\nconst setIframeHeight: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (event.height || event.height === 0) {\n checkout.iframe.setAttribute(\n \"style\",\n `width:100%; height:${event.height}px;`,\n );\n }\n};\n\n/**\n * An event handler that scrolls to the top of the iframe. This is useful when the user\n * is navigated to another page.\n */\nconst scrollToIframeTop: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n try {\n checkout.iframe.scrollIntoView({\n block: \"start\",\n behavior: \"smooth\",\n });\n } catch (e) {\n // Ignore error silently bug log it to the console.\n console.error(e);\n }\n};\n\n/**\n * An event handler that sets language in the iframe.\n */\nconst setLanguage: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (event.language) {\n checkout.language = event.language;\n }\n};\n\n/**\n * Wrap function with try catch so an error in a single function won't short circuit other code in the current context.\n */\nconst safelyInvoke = (fn: () => void) => {\n try {\n fn();\n } catch (e) {\n console.error(e);\n }\n};\n\n/**\n * Handle messages sendt to the SDK from the pop out.\n */\nconst createPopOutMessageHandler = (\n source: Window,\n checkout: DinteroCheckoutInstance,\n) => {\n // Change language in embed if changed in pop out\n const popOutChangedLanguageHandler = {\n internalPopOutHandler: true,\n eventTypes: [InternalCheckoutEvents.LanguageChanged],\n handler: (eventData: any, checkout: DinteroCheckoutInstance) => {\n // Tell the embedded checkout to change language.\n postSetLanguage(\n checkout.iframe,\n checkout.options.sid,\n eventData.language,\n );\n },\n };\n\n // Close pop out, and remove SDK rendered button when payment is completed.\n const paymentCompletedEvents = [\n CheckoutEvents.SessionCancel,\n CheckoutEvents.SessionPaymentOnHold,\n CheckoutEvents.SessionPaymentAuthorized,\n CheckoutEvents.SessionPaymentError,\n ];\n const popOutCompletedHandler = {\n internalPopOutHandler: true,\n eventTypes: paymentCompletedEvents,\n handler: (eventData: any, checkout: DinteroCheckoutInstance) => {\n if (eventData.href) {\n // Remove open pop out button rendered by SDK\n removePopOutButton();\n\n // Close checkout\n try {\n source.close();\n } catch (e) {\n console.error(e);\n }\n } else {\n console.error(\"Payment Complete event missing href property\");\n }\n },\n };\n\n // Listens to messages from pop out window and routes the events to dedicated handlers\n const messageRouter = (event: MessageEvent) => {\n // Check that we should handle the message\n if (\n event.source === source &&\n event.data.context === \"popOut\" &&\n event.data.sid === checkout.options.sid\n ) {\n // Check if handler matches incoming event and trigger the handler if so.\n [\n // SDK events for managing the pop out flow.\n popOutChangedLanguageHandler,\n popOutCompletedHandler,\n\n // Events configured when the checkout was embedded.\n ...checkout.handlers,\n ].forEach((handlerObject) => {\n if (\n (handlerObject.eventTypes as string[]).includes(\n event.data.type,\n ) &&\n handlerObject.handler\n ) {\n // Invoking the handler function if the event type matches the handler.\n safelyInvoke(() => {\n handlerObject.handler(event.data, checkout);\n });\n }\n });\n }\n };\n // Add messageRouter event listener to the Pop Out\n window.addEventListener(\"message\", messageRouter);\n\n // Return unsubscribe function\n return () => {\n window.removeEventListener(\"message\", messageRouter);\n };\n};\n\n/**\n * Configures and shows the pop out with the payment options.\n */\nconst showPopOut = async (\n event: ShowPopOutButton,\n checkout: DinteroCheckoutInstance,\n) => {\n const { close, focus, popOutWindow } = await popOut.openPopOut({\n sid: checkout.options.sid,\n endpoint: checkout.options.endpoint,\n shouldCallValidateSession: Boolean(checkout.options.onValidateSession),\n language: event.language,\n onOpen: (popOutWindow: Window) =>\n createPopOutMessageHandler(popOutWindow, checkout),\n onClose: () => {\n removeBackdrop();\n postClosePopOutEvent(checkout.iframe, checkout.options.sid);\n setPopOutButtonDisabled(false);\n checkout.popOutWindow = undefined;\n },\n });\n if (popOutWindow) {\n postOpenPopOutEvent(checkout.iframe, checkout.options.sid);\n // Add pop out window to checkout instance\n checkout.popOutWindow = popOutWindow;\n createBackdrop({ focus, close, event });\n return true;\n } else {\n postOpenPopOutFailedEvent(checkout.iframe, checkout.options.sid);\n return false;\n }\n};\n\n/**\n * Create callback function for the client side validation flow. It allows the\n * host application to validate the content of the payment session before the\n * pop out is opened.\n */\nconst createPopOutValidationCallback = (\n event: ShowPopOutButton,\n checkout: DinteroCheckoutInstance,\n) => {\n return (result: SessionValidationCallback) => {\n // Tell the embedded iframe about the validation result so it can show an error message if\n // the validation failed.\n postValidationResult(checkout.iframe, checkout.options.sid, result);\n if (result.success && checkout.popOutWindow) {\n // Redirect user to session in pop out window\n checkout.popOutWindow.location.href = url.getPopOutUrl({\n sid: checkout.options.sid,\n endpoint: checkout.options.endpoint,\n shouldCallValidateSession: false,\n language: event.language,\n });\n } else {\n // Close pop out\n if (checkout.popOutWindow) {\n checkout.popOutWindow.close();\n }\n // Log validation error to console log.\n console.error(result.clientValidationError);\n }\n };\n};\n\n/**\n * Handle click event on the SDK rendered pop out button\n */\nconst handlePopOutButtonClick = async (\n event: ShowPopOutButton,\n checkout: DinteroCheckoutInstance,\n) => {\n // Disable button while pop out is open\n const opened = await showPopOut(event, checkout);\n\n if (opened && checkout.options.onValidateSession) {\n // Let the host application validate the payment session before opening checkout.\n\n // Tell the embedded iframe that we are validating the session\n postValidatePopOutEvent(checkout.iframe, checkout.options.sid);\n\n // Create callback function added to the SDK event and onValidateSession attributes\n const callback = createPopOutValidationCallback(event, checkout);\n\n // Invoke onValidateSession function defined in checkout options\n try {\n checkout.options.onValidateSession(\n {\n type: CheckoutEvents.ValidateSession,\n session: checkout.session,\n callback,\n },\n checkout,\n callback,\n );\n } catch (e) {\n console.error(e);\n postValidationResult(checkout.iframe, checkout.options.sid, {\n success: false,\n clientValidationError: \"Validation runtime error\",\n });\n }\n }\n};\n\n/**\n * Type guard for ShowPopOutButton\n */\nconst isShowPopOutButton = (event: any): event is ShowPopOutButton => {\n return event && event.type === InternalCheckoutEvents.ShowPopOutButton;\n};\n\n/**\n * Display the SDK rendered pop out button on top of the embedded iframe\n */\nconst handleShowButton: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (isShowPopOutButton(event)) {\n addPopOutButton({\n container: checkout.options.innerContainer,\n label: event.openLabel,\n top: event.top,\n left: event.left,\n right: event.right,\n styles: event.styles,\n stylesHover: event.stylesHover,\n stylesFocusVisible: event.stylesFocusVisible,\n disabled: event.disabled,\n onClick: () => handlePopOutButtonClick(event, checkout),\n });\n setBackdropLabels(event);\n }\n};\n\n/**\n * Remove the pop out button above the embedded iframe\n */\nconst handleRemoveButton: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (event.type === InternalCheckoutEvents.HidePopOutButton) {\n removePopOutButton();\n }\n};\n\nconst cleanUpPopOut = (checkout: DinteroCheckoutInstance) => {\n // Ensures that the pop out is no longer open when the payment is completed or the checkout is destroyed.\n removePopOutButton();\n removeBackdrop();\n if (checkout.popOutWindow) {\n try {\n checkout.popOutWindow.close();\n // Pop out message handlers will be removed when the pop out window is closed\n // via the interval created by openPopOut.\n } catch (e) {\n console.error(e);\n }\n }\n};\n\nconst composeUrl = (base: string, path: string, query: string) => {\n const slash = base.endsWith(\"/\") ? \"\" : \"/\";\n return `${base}${slash}${path}?${query}`;\n};\n\n/**\n * Show a dintero payment session in an embedded iframe.\n */\nexport const embed = async (\n options: DinteroEmbedCheckoutOptions,\n): Promise<DinteroCheckoutInstance> => {\n // Create inner container to offset any styling on the container.\n const innerContainer = document.createElement(\"div\");\n innerContainer.style.position = \"relative\";\n innerContainer.style[\"box-sizing\"] = \"border-box\";\n\n const internalOptions = {\n endpoint: \"https://checkout.dintero.com\",\n innerContainer: innerContainer,\n ...options,\n };\n const {\n container,\n sid,\n language,\n endpoint,\n onSession,\n onSessionCancel,\n onPayment,\n onPaymentAuthorized,\n onPaymentError,\n onSessionNotFound,\n onSessionLocked,\n onSessionLockFailed,\n onActivePaymentType,\n onValidateSession,\n popOut,\n } = internalOptions;\n\n let checkout: DinteroCheckoutInstance | undefined;\n const subscriptions: Subscription[] = [];\n let has_delivered_final_event = false;\n\n // Create iframe\n container.appendChild(innerContainer);\n const { iframe, initiate } = createIframeAsync(\n innerContainer,\n endpoint,\n url.getSessionUrl({\n sid,\n endpoint,\n language,\n ui: options.ui || \"inline\",\n shouldCallValidateSession: onValidateSession !== undefined,\n popOut,\n }),\n );\n\n /**\n * Function that removes the iframe, pop out and all event listeners.\n */\n const destroy = () => {\n cleanUpPopOut(checkout);\n if (iframe) {\n if (internalOptions.popOut) {\n // Try to remove backdrop if it exists\n removeBackdrop();\n }\n subscriptions.forEach((sub) => sub.unsubscribe());\n if (iframe.parentElement) {\n innerContainer.removeChild(iframe);\n }\n }\n if (innerContainer.parentElement) {\n container.removeChild(innerContainer);\n }\n };\n\n /**\n * Turn an action into a promise by specifying resolve and\n * reject events.\n */\n const promisifyAction = (\n action: () => void,\n resolveEvent: CheckoutEvents,\n rejectEvent: CheckoutEvents,\n ) => {\n if (!checkout) {\n throw new Error(\n \"Unable to create action promise: checkout is undefined\",\n );\n }\n return new Promise<SessionEvent>((resolve, reject) => {\n const eventSubscriptions: Subscription[] = [];\n eventSubscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler: (sessionEvent) => {\n eventSubscriptions.forEach((sub) => sub.unsubscribe());\n resolve(sessionEvent);\n },\n eventTypes: [resolveEvent],\n checkout,\n source: checkout.iframe.contentWindow,\n }),\n );\n eventSubscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler: () => {\n eventSubscriptions.forEach((sub) => sub.unsubscribe());\n reject(`Received unexpected event: ${rejectEvent}`);\n },\n eventTypes: [rejectEvent],\n checkout,\n source: checkout.iframe.contentWindow,\n }),\n );\n action();\n });\n };\n\n const lockSession = () => {\n return promisifyAction(\n () => {\n postSessionLock(iframe, sid);\n },\n CheckoutEvents.SessionLocked,\n CheckoutEvents.SessionLockFailed,\n );\n };\n\n const refreshSession = () => {\n return promisifyAction(\n () => {\n postSessionRefresh(iframe, sid);\n },\n CheckoutEvents.SessionUpdated,\n CheckoutEvents.SessionNotFound,\n );\n };\n\n const setActivePaymentProductType = (paymentProductType?: string) => {\n postActivePaymentProductType(iframe, sid, paymentProductType);\n };\n\n const submitValidationResult = (result: SessionValidationCallback) => {\n postValidationResult(iframe, sid, result);\n };\n\n /**\n * Internal result event message handler wrapper, to replace the content of the iframe with a success/or\n * error message. Only used when the embed function in the SDK has a dedicated handler for onPayment, onError etc.\n * If no custom handler is set the followHref handler is used instead.\n */\n const handleWithResult = (\n sid: string,\n endpoint: string,\n handler: SubscriptionHandler,\n ): SubscriptionHandler => {\n return (event: any, checkout: DinteroCheckoutInstance) => {\n if (!has_delivered_final_event) {\n has_delivered_final_event = true;\n cleanUpPopOut(checkout);\n\n const eventKeys = [\n \"sid\",\n \"merchant_reference\",\n \"transaction_id\",\n \"error\",\n ];\n const pairs = eventKeys.map((key) => [key, event[key]]);\n if (\n event.type === CheckoutEvents.SessionCancel &&\n !event.error\n ) {\n pairs.push([\"error\", \"cancelled\"]);\n }\n pairs.push([\"language\", checkout.language]);\n pairs.push([\"sdk\", pkg.version]);\n const urlQuery = pairs\n .filter(([key, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join(\"&\");\n checkout.iframe.setAttribute(\n \"src\",\n composeUrl(endpoint, \"embedResult/\", urlQuery),\n );\n handler(event, checkout);\n }\n };\n };\n\n const wrappedOnValidateSession = (\n event: ValidateSession,\n checkout: DinteroCheckoutInstance,\n ) => {\n if (onValidateSession) {\n try {\n onValidateSession(\n {\n ...event,\n callback: submitValidationResult,\n },\n checkout,\n submitValidationResult,\n );\n } catch (e) {\n console.error(e);\n submitValidationResult({\n success: false,\n clientValidationError: \"Validation runtime error\",\n });\n }\n }\n };\n\n const wrappedOnSessionLocked = (\n event: SessionLocked,\n checkout: DinteroCheckoutInstance,\n ) => {\n if (onSessionLocked) {\n onSessionLocked(event, checkout, refreshSession);\n }\n };\n\n const wrappedOnLoadedOrUpdated = (\n event: SessionLoaded | SessionUpdated,\n checkout: DinteroCheckoutInstance,\n ) => {\n // Update the checkout instance to include the session object\n checkout.session = event.session;\n if (onSession) {\n onSession(event, checkout);\n }\n };\n\n // Add event handlers (or in some cases add a fallback href handler).\n const handlers = [\n {\n handler: setLanguage,\n eventTypes: [InternalCheckoutEvents.LanguageChanged],\n },\n {\n handler: setIframeHeight,\n eventTypes: [InternalCheckoutEvents.HeightChanged],\n },\n {\n handler: scrollToIframeTop,\n eventTypes: [InternalCheckoutEvents.ScrollToTop],\n },\n {\n handler: wrappedOnLoadedOrUpdated as\n | SubscriptionHandler\n | undefined,\n eventTypes: [\n CheckoutEvents.SessionLoaded,\n CheckoutEvents.SessionUpdated,\n ],\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentOnHold],\n handler: handleWithResult(sid, endpoint, onPayment || followHref),\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentAuthorized],\n handler: handleWithResult(\n sid,\n endpoint,\n onPaymentAuthorized || onPayment || followHref,\n ),\n },\n {\n handler: handleWithResult(\n sid,\n endpoint,\n onSessionCancel || followHref,\n ),\n eventTypes: [CheckoutEvents.SessionCancel],\n },\n {\n handler: handleWithResult(\n sid,\n endpoint,\n onPaymentError || followHref,\n ),\n eventTypes: [CheckoutEvents.SessionPaymentError],\n },\n {\n handler: onSessionNotFound as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionNotFound],\n },\n {\n handler: wrappedOnSessionLocked as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLocked],\n },\n {\n handler: onSessionLockFailed as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLockFailed],\n },\n {\n handler: onActivePaymentType as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.ActivePaymentProductType],\n },\n {\n handler: wrappedOnValidateSession as\n | SubscriptionHandler\n | undefined,\n eventTypes: [CheckoutEvents.ValidateSession],\n },\n {\n handler: handleShowButton as SubscriptionHandler,\n eventTypes: [InternalCheckoutEvents.ShowPopOutButton],\n },\n {\n handler: handleRemoveButton as SubscriptionHandler,\n eventTypes: [InternalCheckoutEvents.HidePopOutButton],\n },\n ];\n // Create checkout object that wraps the destroy function.\n checkout = {\n destroy,\n iframe,\n language,\n lockSession,\n refreshSession,\n setActivePaymentProductType,\n submitValidationResult,\n options: internalOptions,\n handlers,\n session: undefined,\n popOutWindow: undefined,\n };\n\n handlers.forEach(({ handler, eventTypes }) => {\n if (handler) {\n subscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler,\n eventTypes,\n checkout,\n source: checkout.iframe.contentWindow,\n }),\n );\n }\n });\n\n // Add iframe to DOM\n await initiate();\n // Return object with function to destroy the checkout.\n return checkout;\n};\n\n/**\n * Redirect the customer to a payment session in the Dintero Checkout.\n */\nexport const redirect = (options: DinteroCheckoutOptions) => {\n const {\n sid,\n language,\n endpoint = \"https://checkout.dintero.com\",\n } = options;\n // Redirect the current browser window to the checkout session url.\n url.windowLocationAssign(\n url.getSessionUrl({\n sid,\n endpoint,\n language,\n shouldCallValidateSession: false,\n }),\n );\n};\n\nexport type {\n SessionNotFound,\n SessionLoaded,\n SessionUpdated,\n SessionCancel,\n SessionPaymentOnHold,\n SessionPaymentAuthorized,\n SessionPaymentError,\n SessionLocked,\n SessionLockFailed,\n ActivePaymentProductType,\n ValidateSession,\n SessionValidationCallback,\n} from \"./checkout\";\n","/**\n * Creates an iframe and adds it to the container.\n *\n * Returns a promise that resolves to the iframe when the iframe has loaded.\n * Rejects the promise if there is a problem loading the iframe.\n */\nexport const createIframeAsync = (\n container: HTMLDivElement,\n endpoint: string,\n url: string,\n): { iframe: HTMLIFrameElement; initiate: () => void } => {\n if (!container || !container.appendChild) {\n throw new Error(\"Invalid container\");\n }\n const iframe = document.createElement(\"iframe\");\n\n // No border, transparent and stretch to 100% of the container width.\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"style\", \"width:100%; height:0;\");\n\n // TODO: Get this to work as expected, might be tricky with current\n // tests since they will require the csp to be \"unsafe-inline\".\n // The server needs to add the same property in the Content Security\n // Policy headers in the response for this to work. A CSP header set by\n // a meta tag in the iframe target will not be detected as a valid\n // CSP from the iframe host.\n // Content Security Policy, should be limited to \"endpoint\".\n // iframe.setAttribute(\"csp\", `default-src ${endpoint}`);\n\n // Apply extra restrictions to the content in the iframe.\n // allow popups is needed to open terms in new window\n iframe.setAttribute(\n \"sandbox\",\n \"allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox\",\n );\n\n // Needed for to allow apple pay from iframe\n iframe.setAttribute(\"allow\", \"payment\");\n\n // The download priority of the resource in the <iframe>'s src attribute.\n iframe.setAttribute(\"importance\", \"high\");\n\n // Set the iframe source to the url.\n iframe.setAttribute(\"src\", url);\n\n // Resolve or reject promise when iframe loads.\n\n // // Add iframe to the container.\n // container.appendChild(iframe);\n return {\n iframe,\n initiate: async () => {\n return new Promise<void>((resolve, reject) => {\n iframe.onload = () => resolve();\n iframe.onerror = () => reject();\n container.appendChild(iframe);\n });\n },\n };\n};\n"],"names":["name","context","definition","builtInProp","cycle","scheduling_queue","ToString","Object","prototype","toString","timer","setImmediate","fn","setTimeout","defineProperty","obj","val","config","value","writable","configurable","err","schedule","self","add","drain","isThenable","o","_then","o_type","then","notify","i","this","chain","length","notifyIsolated","state","success","failure","cb","ret","reject","msg","call","promise","TypeError","resolve","triggered","def","def_wrapper","MakeDefWrapper","apply","arguments","iteratePromises","Constructor","arr","resolver","rejecter","idx","MakeDef","Promise","executor","__NPO__","constructor","push","first","last","item","Item","next","f","PromisePrototype","len","msgs","Array","count","global","module","exports","CheckoutEvents","InternalCheckoutEvents","padTralingSlash","endpoint","endsWith","url","getPopOutUrl","sid","language","shouldCallValidateSession","params","URLSearchParams","append","pkg","options","ui","popOut","Error","window","location","assign","postValidationResult","iframe","result","contentWindow","postMessage","type","subscribe","handler","eventTypes","checkout","endpointUrl","URL","wrappedHandler","event","correctOrigin","origin","correctWindow","source","correctSid","data","correctMessageType","indexOf","postAck","mid","ack","addEventListener","unsubscribe","removeEventListener","STYLE_ID","BACKDROP_ID","BACKDROP_DESCRIPTION","FOCUS_CHECKOUT_BUTTON_ID","CLOSE_BACKDROP_BUTTON_ID","wrapPreventDefault","e","preventDefault","stopPropagation","createBackdropDOM","backdrop","document","createElement","setAttribute","style","zIndex","getBackdropZIndex","elements","getElementsByTagName","highest","from","reduce","acc","element","zIndexStr","defaultView","getComputedStyle","getPropertyValue","parseInt","isNaN","console","error","focusTrap","focusButton","getElementById","closeButton","key","code","activeElement","focus","createBackdropView","appendBackdropStyles","innerHTML","head","appendChild","label","button","createCloseButtonDOM","closeLabel","dinteroLogo","createDinteroLogoDOM","div","text","p","innerText","createLabelDOM","descriptionLabel","createFocusButtonDOM","focusLabel","onclick","close","body","removeBackdrop","removeChild","OPEN_POP_OUT_BUTTON_ID","addHoverAndFocusVisibleStyles","stylesHover","stylesFocusVisible","styleId","content","toCssEntity","textContent","join","selector","keyValues","toCssParameters","entries","map","slugify","str","replace","toLowerCase","addPopOutButton","container","exists","configureButton","disabled","top","left","right","styles","onClick","removeAttribute","boxShadow","position","directStyles","removePopOutButton","remove","WIDTH","Math","min","screen","width","HEIGHT","height","popOutWindow","async","intervalId","closed","popOutUrl","createPopOutWindow","screenX","outerWidth","screenY","outerHeight","features","timeout","handleAppLoaded","correctSource","correctMessage","correctContext","clearTimeout","open","log","undefined","cleanUpClosed","clearInterval","closePopOut","onClose","setInterval","checkIfPopupClosed","onOpen","focusPopOut","followHref","cleanUpPopOut","href","setIframeHeight","scrollToIframeTop","scrollIntoView","block","behavior","setLanguage","createPopOutMessageHandler","popOutChangedLanguageHandler","internalPopOutHandler","LanguageChanged","eventData","postSetLanguage","popOutCompletedHandler","SessionCancel","SessionPaymentOnHold","SessionPaymentAuthorized","SessionPaymentError","messageRouter","handlers","forEach","handlerObject","includes","safelyInvoke","showPopOut","Boolean","onValidateSession","postClosePopOutEvent","setPopOutButtonDisabled","createBackdrop","postOpenPopOutFailedEvent","postOpenPopOutEvent","handlePopOutButtonClick","callback","createPopOutValidationCallback","clientValidationError","ValidateSession","session","postValidatePopOutEvent","handleShowButton","ShowPopOutButton","isShowPopOutButton","innerContainer","openLabel","description","setBackdropLabels","handleRemoveButton","HidePopOutButton","internalOptions","onSession","onSessionCancel","onPayment","onPaymentAuthorized","onPaymentError","onSessionNotFound","onSessionLocked","onSessionLockFailed","onActivePaymentType","subscriptions","has_delivered_final_event","initiate","createIframeAsync","onload","onerror","promisifyAction","action","resolveEvent","rejectEvent","eventSubscriptions","sessionEvent","sub","refreshSession","postSessionRefresh","SessionUpdated","SessionNotFound","submitValidationResult","handleWithResult","pairs","urlQuery","filter","composeUrl","base","path","query","slash","HeightChanged","ScrollToTop","wrappedOnLoadedOrUpdated","SessionLoaded","wrappedOnSessionLocked","SessionLocked","SessionLockFailed","ActivePaymentProductType","wrappedOnValidateSession","destroy","parentElement","lockSession","postSessionLock","setActivePaymentProductType","paymentProductType","postActivePaymentProductType","payment_product_type"],"mappings":";;;;;AAKA,CAAA,CAAA,CAAA,CAAcA,EAAKC,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAK+B,WAIzD,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,EAAOC,CACvBC,CAAAA,CAAAA,CAAWC,OAAOC,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5BC,EAAgC,CAAhBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACf,SAAeC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,aAAaC,CAAM,CAAA,CAAA,CAC/CC,WAIF,CACCN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOO,eAAe,CAAA,CAAA,CAAG,IAAI,CAAE,CAAA,CAAA,CAC/BX,EAAc,CAAqBY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIf,EAAKgB,CAAIC,CAAAA,CAAAA,CAAAA,CAC/C,OAAOV,CAAOO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,EAAIf,CAAK,CAAA,CACrCkB,MAAOF,CACPG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,EACVC,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXH,GAElB,CACE,CACD,MAAOI,CACNlB,CAAAA,CAAAA,CAAAA,CAAc,SAAqBY,CAAIf,CAAAA,CAAAA,CAAKgB,GAE3C,CADAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIf,GAAQgB,CACLD,CAAAA,CACV,CACE,CAoCD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASO,EAASV,CAAGW,CAAAA,CAAAA,CAAAA,CACpBlB,EAAiBmB,CAAIZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAGW,GACnBnB,CACJA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQM,EAAML,CAAiBoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEhC,CAGD,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,GACnB,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,SAAgBF,CAS3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAPS,MAALA,CAEQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVE,GAAgC,CAAVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGvBD,CAAQD,CAAAA,CAAAA,CAAEG,MAEY,CAATF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsBA,CACpC,CAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,IACR,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIC,EAAE,CAAGA,CAAAA,CAAAA,CAAEC,KAAKC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQH,IAClCI,CACCH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACgB,IAAfA,CAAKI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeJ,KAAKC,CAAMF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGM,QAAUL,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMF,GAAGO,CAC3DN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,MAAMF,CAGbC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,MAAMC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpB,CAKD,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeb,EAAKiB,CAAGN,CAAAA,CAAAA,CAAAA,CAC/B,IAAIO,CAAKb,CAAAA,CAAAA,CACT,KACY,CAAPY,CAAAA,CAAAA,CAAAA,CAAAA,CACHN,EAAMQ,CAAOnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoB,MAIjBF,CADU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPD,EACGjB,CAAKoB,CAAAA,CAAAA,CAAAA,CAAAA,CAGLH,EAAGI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOrB,EAAKoB,CAGfT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMW,QACjBX,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOI,UAAU,CAEflB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQF,EAAWe,CAC3Bb,CAAAA,CAAAA,CAAAA,CAAAA,CAAMgB,KAAKH,CAAIP,CAAAA,CAAAA,CAAMa,QAAQb,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGnCR,EAAMa,CAAQN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGhB,CACD,CAAOpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACNa,EAAMQ,CAAOrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACb,CACD,CAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS0B,EAAQJ,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIf,CAAOL,CAAAA,CAAAA,CAAOU,KAGlB,CAAIV,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyB,UAAT,CAEAzB,CAAAA,CAAKyB,WAAY,CAGbzB,CAAAA,CAAAA,CAAK0B,MACR1B,CAAOA,CAAAA,CAAAA,CAAK0B,KAGb,CACKrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQF,EAAWiB,CACtBrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,WACR,CAAI4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,IAAIC,CAAe5B,CAAAA,CAAAA,CAAAA,CACrC,IACCK,CAAMgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKD,GACV,CAAsBI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQK,MAAMF,CAAYG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,IAC7D,CAAqBX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOU,MAAMF,CAAYG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,GAE5D,CACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhC,GACNqB,CAAOE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKM,EAAY7B,CACxB,CAAA,CACN,KAGIE,CAAKoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,EACXpB,CAAKc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EACTd,CAAKW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,OAAS,CACvBb,CAAAA,CAAAA,CAAAA,CAASS,EAAOR,CAGlB,CAAA,CAAA,CACD,MAAOF,CACNqB,CAAAA,CAAAA,CAAAA,CAAOE,KAAK,CAAIO,CAAAA,CAAAA,CAAAA,CAAAA,CAAe5B,GAAMF,CACrC,CAAA,CAlC8B,CAmC/B,CAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqB,EAAOC,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIpB,EAAOU,CAGPV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyB,YAETzB,CAAKyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAGbzB,CAAK0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACR1B,EAAOA,CAAK0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGb1B,EAAKoB,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CACXpB,EAAKc,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACTd,EAAKW,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,GACvBb,CAASS,CAAAA,CAAAA,CAAOR,GAEjB,CAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS+B,EAAgBC,CAAYC,CAAAA,CAAAA,CAAIC,EAASC,CACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,IAAIC,CAAI,CAAA,CAAA,CAAGA,EAAIH,CAAIrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQwB,KAC/B,CAAeA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdJ,EAAYR,CAAQS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIG,IACvB7B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoBa,GACnBc,CAASE,CAAAA,CAAAA,CAAIhB,EACb,CACDe,CAAAA,CAAAA,CAAAA,CAED,CARD,CAQGC,CAAAA,CAEJ,CAED,CAASR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe5B,GACvBU,CAAKgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM1B,EACXU,CAAKe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CACjB,CAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASY,EAAQrC,CAChBU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKY,QAAUtB,CACfU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKI,MAAQ,CACbJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKe,WAAY,CACjBf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,MAAQ,CACbD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKU,SAAM,CACX,CAED,SAASkB,CAAQC,CAAAA,CAAAA,CAAAA,CAChB,GAAuB,CAAZA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACV,MAAMhB,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGjB,GAAqB,CAAjBb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK8B,QACR,CAAMjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,iBAKjBb,CAAK8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,EAEf,CAAId,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,IAAIW,CAAQ3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEtBA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAcK,CAAQC,CAAAA,CAAAA,CAAAA,CACpC,IAAIZ,CAAI,CAAA,CACPW,QAA2B,CAAXA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBA,EACxCC,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXA,GAAwBA,CAmBzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAdAZ,EAAEkB,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIZ,KAAK+B,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBjB,EAAQL,CAC9D,CAAA,CAAA,CAAA,CAAA,CAAsB,mBAAXK,CAA0C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVL,EAC1C,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,kBAGjBnB,CAAEoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,EACZpB,CAAEe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CACf,CACGO,CAAAA,CAAAA,CAAAA,CAAAA,CAAIf,MAAM+B,CAAKtC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEG,IAAdsB,CAAIZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACPf,EAASS,CAAOkB,CAAAA,CAAAA,CAAAA,CAGVtB,EAAEkB,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEZ,KAAY,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBM,GAChC,CAAON,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKH,UAAK,CAAOS,CAAAA,CAAAA,CAC3B,EAEE,CACCuB,CAAAA,CAAAA,CAAAA,CAAAA,CAASlB,UACR,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBD,GACtBI,CAAQH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKK,EAAIN,CACjB,CAAA,CAAA,CAAA,CAAA,CACD,SAAsBA,CACrBD,CAAAA,CAAAA,CAAAA,CAAOE,KAAKK,CAAIN,CAAAA,CAAAA,CAChB,GAEF,CACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOtB,GACNqB,CAAOE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKK,EAAI5B,CAChB,CAAA,CACD,CAnPDhB,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClB,IAAI6D,CAAOC,CAAAA,CAAAA,CAAMC,EAEjB,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKzD,EAAGW,CAChBU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKrB,GAAKA,CACVqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKV,KAAOA,CACZU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqC,UAAO,CACZ,CAED,MAAO,CACN9C,CAAAA,CAAAA,CAAAA,CAAK,SAAaZ,CAAGW,CAAAA,CAAAA,CAAAA,CACpB6C,EAAO,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKzD,EAAGW,CACf4C,CAAAA,CAAAA,CAAAA,CACHA,EAAKG,CAAOF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGZF,EAAQE,CAETD,CAAAA,CAAAA,CAAOC,EACPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACP,EACD3C,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACN,IAAI8C,CAAIL,CAAAA,CAAAA,CAGR,IAFAA,CAAQC,CAAAA,CAAAA,CAAO/D,OAAQ,CAEhBmE,CAAAA,CAAAA,CAAAA,CACNA,EAAE3D,CAAGgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2B,EAAEhD,CACZgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIA,EAAED,CAEP,CAAA,CAAA,CAAA,CAAA,CAEF,CA/BkB,CAqPnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIE,EAAmBrE,CAAY,CAAA,CAAE,EAAC,CAAc0D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClC,GAqFlB,CAjFAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQrD,UAAYgE,CAGpBrE,CAAAA,CAAAA,CAAYqE,EAAiB,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,GAGlBrE,CAAY0D,CAAAA,CAAAA,CAAQ,WAAU,CAAyBlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAKtD,OAAIA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPA,GAAmC,CAAhBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIoB,QACjCpB,CAGD,CAAA,CAAA,CAAA,CAAA,CARWV,MAQK,CAAkBc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQL,GAChD,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXK,CAA0C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVL,EAC1C,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,kBAGjBC,CAAQJ,CAAAA,CAAAA,CACX,GACA,CAECxC,CAAAA,CAAAA,CAAAA,CAAAA,CAAY0D,EAAQ,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwBlB,GACpD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIV,MAAK,CAAkBc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQL,GACzC,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXK,GAA0C,CAAVL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1C,MAAMI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGjBJ,EAAOC,CACV,CAAA,CAAA,CAAA,CACA,IAECxC,CAAY0D,CAAAA,CAAAA,CAAQ,OAAM,CAAqBL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9C,IAAID,CAActB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGlB,MAA0B,CAAtB3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASsC,KAAKY,CACVD,CAAAA,CAAAA,CAAAA,CAAYb,OAAOI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAElB,IAAfU,CAAIrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAoB,EAAYR,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGrB,IAAIQ,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBR,EAAQL,CAChD,CAAA,CAAA,CAAA,CAAA,CAAsB,mBAAXK,CAA0C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVL,EAC1C,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,kBAGjB,CAAI2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAMjB,EAAIrB,CAAQuC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,MAAMF,CAAMG,CAAAA,CAAAA,CAAAA,CAAQ,EAEjDtB,CAAgBC,CAAAA,CAAAA,CAAYC,GAAI,CAAkBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIhB,GACrD+B,CAAKf,CAAAA,CAAAA,CAAAA,CAAOhB,IACNiC,CAAUH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACf1B,EAAQ2B,CAET,CAAA,CAAA,CAAA,CAAChC,EACL,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAECvC,EAAY0D,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,SAAsBL,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAID,EAActB,CAGlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,kBAAtB3B,CAASsC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKY,GACVD,CAAYb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOI,UAAU,CAG9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIS,GAAY,CAAkBR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQL,GAChD,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXK,GAA0C,CAAVL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1C,MAAMI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGjBQ,EAAgBC,CAAYC,CAAAA,CAAAA,CAAAA,CAAI,SAAkBG,CAAIhB,CAAAA,CAAAA,CAAAA,CACrDI,EAAQJ,CACR,CAAA,CAAA,CAAA,CAACD,EACL,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEQmB,CACR,CA/WmB5D,CAAAA,CAAAA,CAAAA,CAKyB4E,GAL9B7E,CAKX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHcC,EAAQD,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACG4E,EAAOC,CAAWD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAiB7E,CAAQD,CAAAA,CAAAA,CAAAA,mBCNpEgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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Aa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMb,GACzBc,CAAM4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,wBACFzC,CAKVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAW6BA,+qBAmB7BA,CAOAE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAaAA,sBACAA,CAQAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAKAC,gjBAgBAA,CACAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAWAA,uFAIAH,CACAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,2BACAA,CAKPU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgC,KAAKC,CAAY9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAwFhC2B,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM/B,EAAWD,CACX0B,CAAAA,CAAAA,CAAAA,CAAAA,CA/EoBU,KAE1B,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASnC,SAASC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAoBtC,OAnBAkC,CAAOjC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,KAAMT,CAC1B0C,CAAAA,CAAAA,CAAAA,CAAOjC,aAAa,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5BiC,EAAOjC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAcgC,GAClCC,CAAOJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,ieAgBbI,CAAM,CAAA,CAyDOC,CAAqBlF,CAAQoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM+D,YACjDC,CAvDmBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEzB,MAAMC,CAAMxC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,cAAc,CASnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CARAuC,EAAIT,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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"}
1
+ {"version":3,"file":"dintero-checkout-web-sdk.umd.min.js","sources":["../node_modules/native-promise-only/lib/npo.src.js","../src/checkout.ts","../src/url.ts","../src/subscribe.ts","../src/popOutBackdrop.ts","../src/popOutButton.ts","../src/popOut.ts","../src/index.ts","../src/createIframeAsync.ts"],"sourcesContent":["/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n\n(function UMD(name,context,definition){\n\t// special form of UMD for polyfilling across evironments\n\tcontext[name] = context[name] || definition();\n\tif (typeof module != \"undefined\" && module.exports) { module.exports = context[name]; }\n\telse if (typeof define == \"function\" && define.amd) { define(function $AMD$(){ return context[name]; }); }\n})(\"Promise\",typeof global != \"undefined\" ? global : this,function DEF(){\n\t/*jshint validthis:true */\n\t\"use strict\";\n\n\tvar builtInProp, cycle, scheduling_queue,\n\t\tToString = Object.prototype.toString,\n\t\ttimer = (typeof setImmediate != \"undefined\") ?\n\t\t\tfunction timer(fn) { return setImmediate(fn); } :\n\t\t\tsetTimeout\n\t;\n\n\t// dammit, IE8.\n\ttry {\n\t\tObject.defineProperty({},\"x\",{});\n\t\tbuiltInProp = function builtInProp(obj,name,val,config) {\n\t\t\treturn Object.defineProperty(obj,name,{\n\t\t\t\tvalue: val,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: config !== false\n\t\t\t});\n\t\t};\n\t}\n\tcatch (err) {\n\t\tbuiltInProp = function builtInProp(obj,name,val) {\n\t\t\tobj[name] = val;\n\t\t\treturn obj;\n\t\t};\n\t}\n\n\t// Note: using a queue instead of array for efficiency\n\tscheduling_queue = (function Queue() {\n\t\tvar first, last, item;\n\n\t\tfunction Item(fn,self) {\n\t\t\tthis.fn = fn;\n\t\t\tthis.self = self;\n\t\t\tthis.next = void 0;\n\t\t}\n\n\t\treturn {\n\t\t\tadd: function add(fn,self) {\n\t\t\t\titem = new Item(fn,self);\n\t\t\t\tif (last) {\n\t\t\t\t\tlast.next = item;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfirst = item;\n\t\t\t\t}\n\t\t\t\tlast = item;\n\t\t\t\titem = void 0;\n\t\t\t},\n\t\t\tdrain: function drain() {\n\t\t\t\tvar f = first;\n\t\t\t\tfirst = last = cycle = void 0;\n\n\t\t\t\twhile (f) {\n\t\t\t\t\tf.fn.call(f.self);\n\t\t\t\t\tf = f.next;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tfunction schedule(fn,self) {\n\t\tscheduling_queue.add(fn,self);\n\t\tif (!cycle) {\n\t\t\tcycle = timer(scheduling_queue.drain);\n\t\t}\n\t}\n\n\t// promise duck typing\n\tfunction isThenable(o) {\n\t\tvar _then, o_type = typeof o;\n\n\t\tif (o != null &&\n\t\t\t(\n\t\t\t\to_type == \"object\" || o_type == \"function\"\n\t\t\t)\n\t\t) {\n\t\t\t_then = o.then;\n\t\t}\n\t\treturn typeof _then == \"function\" ? _then : false;\n\t}\n\n\tfunction notify() {\n\t\tfor (var i=0; i<this.chain.length; i++) {\n\t\t\tnotifyIsolated(\n\t\t\t\tthis,\n\t\t\t\t(this.state === 1) ? this.chain[i].success : this.chain[i].failure,\n\t\t\t\tthis.chain[i]\n\t\t\t);\n\t\t}\n\t\tthis.chain.length = 0;\n\t}\n\n\t// NOTE: This is a separate function to isolate\n\t// the `try..catch` so that other code can be\n\t// optimized better\n\tfunction notifyIsolated(self,cb,chain) {\n\t\tvar ret, _then;\n\t\ttry {\n\t\t\tif (cb === false) {\n\t\t\t\tchain.reject(self.msg);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (cb === true) {\n\t\t\t\t\tret = self.msg;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tret = cb.call(void 0,self.msg);\n\t\t\t\t}\n\n\t\t\t\tif (ret === chain.promise) {\n\t\t\t\t\tchain.reject(TypeError(\"Promise-chain cycle\"));\n\t\t\t\t}\n\t\t\t\telse if (_then = isThenable(ret)) {\n\t\t\t\t\t_then.call(ret,chain.resolve,chain.reject);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchain.resolve(ret);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tchain.reject(err);\n\t\t}\n\t}\n\n\tfunction resolve(msg) {\n\t\tvar _then, self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\ttry {\n\t\t\tif (_then = isThenable(msg)) {\n\t\t\t\tschedule(function(){\n\t\t\t\t\tvar def_wrapper = new MakeDefWrapper(self);\n\t\t\t\t\ttry {\n\t\t\t\t\t\t_then.call(msg,\n\t\t\t\t\t\t\tfunction $resolve$(){ resolve.apply(def_wrapper,arguments); },\n\t\t\t\t\t\t\tfunction $reject$(){ reject.apply(def_wrapper,arguments); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\treject.call(def_wrapper,err);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\telse {\n\t\t\t\tself.msg = msg;\n\t\t\t\tself.state = 1;\n\t\t\t\tif (self.chain.length > 0) {\n\t\t\t\t\tschedule(notify,self);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(new MakeDefWrapper(self),err);\n\t\t}\n\t}\n\n\tfunction reject(msg) {\n\t\tvar self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) { return; }\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\tself.msg = msg;\n\t\tself.state = 2;\n\t\tif (self.chain.length > 0) {\n\t\t\tschedule(notify,self);\n\t\t}\n\t}\n\n\tfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n\t\tfor (var idx=0; idx<arr.length; idx++) {\n\t\t\t(function IIFE(idx){\n\t\t\t\tConstructor.resolve(arr[idx])\n\t\t\t\t.then(\n\t\t\t\t\tfunction $resolver$(msg){\n\t\t\t\t\t\tresolver(idx,msg);\n\t\t\t\t\t},\n\t\t\t\t\trejecter\n\t\t\t\t);\n\t\t\t})(idx);\n\t\t}\n\t}\n\n\tfunction MakeDefWrapper(self) {\n\t\tthis.def = self;\n\t\tthis.triggered = false;\n\t}\n\n\tfunction MakeDef(self) {\n\t\tthis.promise = self;\n\t\tthis.state = 0;\n\t\tthis.triggered = false;\n\t\tthis.chain = [];\n\t\tthis.msg = void 0;\n\t}\n\n\tfunction Promise(executor) {\n\t\tif (typeof executor != \"function\") {\n\t\t\tthrow TypeError(\"Not a function\");\n\t\t}\n\n\t\tif (this.__NPO__ !== 0) {\n\t\t\tthrow TypeError(\"Not a promise\");\n\t\t}\n\n\t\t// instance shadowing the inherited \"brand\"\n\t\t// to signal an already \"initialized\" promise\n\t\tthis.__NPO__ = 1;\n\n\t\tvar def = new MakeDef(this);\n\n\t\tthis[\"then\"] = function then(success,failure) {\n\t\t\tvar o = {\n\t\t\t\tsuccess: typeof success == \"function\" ? success : true,\n\t\t\t\tfailure: typeof failure == \"function\" ? failure : false\n\t\t\t};\n\t\t\t// Note: `then(..)` itself can be borrowed to be used against\n\t\t\t// a different promise constructor for making the chained promise,\n\t\t\t// by substituting a different `this` binding.\n\t\t\to.promise = new this.constructor(function extractChain(resolve,reject) {\n\t\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t\t}\n\n\t\t\t\to.resolve = resolve;\n\t\t\t\to.reject = reject;\n\t\t\t});\n\t\t\tdef.chain.push(o);\n\n\t\t\tif (def.state !== 0) {\n\t\t\t\tschedule(notify,def);\n\t\t\t}\n\n\t\t\treturn o.promise;\n\t\t};\n\t\tthis[\"catch\"] = function $catch$(failure) {\n\t\t\treturn this.then(void 0,failure);\n\t\t};\n\n\t\ttry {\n\t\t\texecutor.call(\n\t\t\t\tvoid 0,\n\t\t\t\tfunction publicResolve(msg){\n\t\t\t\t\tresolve.call(def,msg);\n\t\t\t\t},\n\t\t\t\tfunction publicReject(msg) {\n\t\t\t\t\treject.call(def,msg);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\treject.call(def,err);\n\t\t}\n\t}\n\n\tvar PromisePrototype = builtInProp({},\"constructor\",Promise,\n\t\t/*configurable=*/false\n\t);\n\n\t// Note: Android 4 cannot use `Object.defineProperty(..)` here\n\tPromise.prototype = PromisePrototype;\n\n\t// built-in \"brand\" to signal an \"uninitialized\" promise\n\tbuiltInProp(PromisePrototype,\"__NPO__\",0,\n\t\t/*configurable=*/false\n\t);\n\n\tbuiltInProp(Promise,\"resolve\",function Promise$resolve(msg) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\t// note: best \"isPromise\" check that's practical for now\n\t\tif (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n\t\t\treturn msg;\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tresolve(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"reject\",function Promise$reject(msg) {\n\t\treturn new this(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\treject(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"all\",function Promise$all(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\t\tif (arr.length === 0) {\n\t\t\treturn Constructor.resolve([]);\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tvar len = arr.length, msgs = Array(len), count = 0;\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg) {\n\t\t\t\tmsgs[idx] = msg;\n\t\t\t\tif (++count === len) {\n\t\t\t\t\tresolve(msgs);\n\t\t\t\t}\n\t\t\t},reject);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise,\"race\",function Promise$race(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve,reject){\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\titeratePromises(Constructor,arr,function resolver(idx,msg){\n\t\t\t\tresolve(msg);\n\t\t\t},reject);\n\t\t});\n\t});\n\n\treturn Promise;\n});\n","import type { Session } from \"./session\";\n\nexport enum CheckoutEvents {\n SessionNotFound = \"SessionNotFound\",\n SessionLoaded = \"SessionLoaded\",\n SessionUpdated = \"SessionUpdated\",\n SessionCancel = \"SessionCancel\",\n SessionPaymentOnHold = \"SessionPaymentOnHold\",\n SessionPaymentAuthorized = \"SessionPaymentAuthorized\",\n SessionPaymentError = \"SessionPaymentError\",\n SessionLocked = \"SessionLocked\",\n SessionLockFailed = \"SessionLockFailed\",\n ActivePaymentProductType = \"ActivePaymentProductType\",\n ValidateSession = \"ValidateSession\",\n}\nexport enum InternalCheckoutEvents {\n HeightChanged = \"HeightChanged\",\n LanguageChanged = \"LanguageChanged\",\n ScrollToTop = \"ScrollToTop\",\n ShowPopOutButton = \"ShowPopOutButton\",\n HidePopOutButton = \"HidePopOutButton\",\n}\n\nexport type SessionNotFound = {\n type: CheckoutEvents.SessionNotFound;\n};\n\nexport type SessionLoaded = {\n type: CheckoutEvents.SessionLoaded;\n session: Session;\n};\n\nexport type SessionUpdated = {\n type: CheckoutEvents.SessionUpdated;\n session: Session;\n};\n\nexport type SessionCancel = {\n type: CheckoutEvents.SessionCancel;\n href: string;\n};\n\nexport type SessionPaymentOnHold = {\n type: CheckoutEvents.SessionPaymentOnHold;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionPaymentAuthorized = {\n type: CheckoutEvents.SessionPaymentAuthorized;\n transaction_id: string;\n merchant_reference: string;\n href: string;\n};\n\nexport type SessionLocked = {\n type: CheckoutEvents.SessionLocked;\n pay_lock_id: string;\n callback: () => void;\n};\n\nexport type ShowPopOutButton = {\n type: \"ShowPopOutButton\";\n styles: {\n font: string;\n height: string;\n color: string;\n background: string;\n textAlign: string;\n padding: string;\n margin: string;\n border: string;\n borderRadius: string;\n cursor: string;\n fontWeight: string;\n lineHeight: string;\n transition: string;\n outline: string;\n };\n stylesHover?: { [key: string]: string };\n stylesFocusVisible?: { [key: string]: string };\n openLabel: string;\n focusLabel: string;\n closeLabel: string;\n descriptionLabel: string;\n top: string;\n left: string;\n right: string;\n language: string;\n disabled: \"true\" | \"false\";\n};\n\nexport type SessionLockFailed = {\n type: CheckoutEvents.SessionLockFailed;\n};\nexport type ActivePaymentProductType = {\n type: CheckoutEvents.ActivePaymentProductType;\n payment_product_type: string | undefined;\n};\n\nexport type ValidateSession = {\n type: CheckoutEvents.ValidateSession;\n session: Session;\n callback: (result: SessionValidationCallback) => void;\n};\n\nexport interface SessionValidationCallback {\n success: boolean;\n clientValidationError?: string;\n}\n\nexport type WrappedValidateSession = Pick<ValidateSession, \"type\" | \"session\">;\nexport type WrappedSessionLocked = Pick<SessionLocked, \"type\" | \"pay_lock_id\">;\n\nexport type SessionPayment = SessionPaymentAuthorized | SessionPaymentOnHold;\n\nexport type SessionPaymentError = {\n type: CheckoutEvents.SessionPaymentError;\n error: string;\n href: string;\n};\n\nexport type SessionEvent =\n | SessionNotFound\n | SessionLoaded\n | SessionUpdated\n | SessionCancel\n | SessionPaymentOnHold\n | SessionPaymentAuthorized\n | SessionPaymentError\n | WrappedSessionLocked\n | SessionLockFailed\n | ActivePaymentProductType\n | WrappedValidateSession;\n","import pkg from \"../package.json\";\n\n/**\n * Wraps window.location.assign()\n */\nconst windowLocationAssign = (url: string) => {\n window.location.assign(url);\n};\n\n/**\n * Get the url for the session\n */\nexport interface SessionUrlOptions {\n sid: string;\n endpoint: string;\n language: string | undefined;\n ui?: \"fullscreen\" | \"inline\";\n shouldCallValidateSession: boolean;\n popOut?: boolean;\n}\n\nconst getSessionUrl = (options: SessionUrlOptions): string => {\n const { sid, endpoint, language, ui, shouldCallValidateSession, popOut } =\n options;\n if (!endpoint) {\n throw new Error(\"Invalid endpoint\");\n }\n const params = new URLSearchParams();\n params.append(\"sdk\", pkg.version);\n if (ui) {\n params.append(\"ui\", ui);\n }\n if (language) {\n params.append(\"language\", language);\n }\n if (shouldCallValidateSession) {\n params.append(\"client_side_validation\", \"true\");\n }\n if (popOut) {\n params.append(\"role\", \"pop_out_launcher\");\n }\n if (\n options.hasOwnProperty(\"hideTestMessage\") &&\n options[\"hideTestMessage\"] !== undefined &&\n options[\"hideTestMessage\"] === true\n ) {\n params.append(\"hide_test_message\", \"true\");\n }\n if (endpoint === \"https://checkout.dintero.com\") {\n // Default endpoint will redirect via the view endpoint\n return `${endpoint}/v1/view/${sid}?${params.toString()}`;\n }\n // When a custom endpoint is set skip the view redirect endpoint since\n // custom endpoints like localhost and PR builds does not support the\n // serverside view flow.\n params.append(\"sid\", sid);\n return `${padTralingSlash(endpoint)}?${params.toString()}`;\n};\n\nconst padTralingSlash = (endpoint: string) =>\n endpoint.endsWith(\"/\") ? endpoint : `${endpoint}/`;\n\nconst getPopOutUrl = ({\n sid,\n endpoint,\n language,\n shouldCallValidateSession,\n}: SessionUrlOptions) => {\n const params = new URLSearchParams();\n params.append(\"ui\", \"fullscreen\");\n params.append(\"role\", \"pop_out_payment\");\n params.append(\"sid\", sid);\n params.append(\"sdk\", pkg.version);\n if (language) {\n params.append(\"language\", language);\n }\n if (shouldCallValidateSession) {\n params.append(\"loader\", \"true\");\n return `${padTralingSlash(endpoint)}?${params.toString()}`;\n }\n return `${padTralingSlash(endpoint)}?${params.toString()}`;\n};\n\nexport const url = {\n getPopOutUrl,\n getSessionUrl,\n windowLocationAssign,\n};\n","import {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionEvent,\n SessionValidationCallback,\n} from \"./checkout\";\nimport { DinteroCheckoutInstance } from \".\";\n\n/**\n * Unsubscribe handler from event(s).\n */\nexport type SubscriptionHandler = (\n sessionEvent: SessionEvent,\n checkout: DinteroCheckoutInstance,\n) => void;\n\ninterface SubscriptionOptions {\n sid: string;\n endpoint: string;\n handler: SubscriptionHandler;\n eventTypes: (CheckoutEvents | InternalCheckoutEvents)[];\n checkout: DinteroCheckoutInstance;\n source: Window;\n}\n\nexport type Subscription = {\n /**\n * Unsubscribe handler from event(s).\n */\n unsubscribe: () => void;\n};\n\n/**\n * Post a message acknowledgement to the checkout iframe.\n */\nconst postAck = (source: Window, event: MessageEvent) => {\n if (event.data.mid && source) {\n source.postMessage({ ack: event.data.mid }, event.origin || \"*\");\n }\n};\n\n/**\n * Post a SessionLock-event to the checkout iframe.\n */\nexport const postSessionLock = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"LockSession\", sid }, \"*\");\n }\n};\n\n/**\n * Post the validation result to the checkout iframe\n */\nexport const postValidationResult = (\n iframe: HTMLIFrameElement,\n sid: string,\n result: SessionValidationCallback,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"ValidationResult\", sid, ...result },\n \"*\",\n );\n }\n};\n\n/**\n * Post RefreshSession-event to the checkout iframe.\n */\nexport const postSessionRefresh = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"RefreshSession\", sid }, \"*\");\n }\n};\n\n/**\n * Post SetActivePaymentProductType-event to the checkout iframe.\n */\nexport const postActivePaymentProductType = (\n iframe: HTMLIFrameElement,\n sid: string,\n paymentProductType?: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n {\n type: \"SetActivePaymentProductType\",\n sid,\n payment_product_type: paymentProductType,\n },\n \"*\",\n );\n }\n};\n\n/**\n * Post ClosePopOut-event to the checkout iframe.\n */\nexport const postValidatePopOutEvent = (\n iframe: HTMLIFrameElement,\n sid: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"ValidatingPopOut\", sid },\n \"*\",\n );\n }\n};\n\n/**\n * Post OpenPopOutFailed-event to the checkout iframe.\n */\nexport const postOpenPopOutFailedEvent = (\n iframe: HTMLIFrameElement,\n sid: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"OpenPopOutFailed\", sid },\n \"*\",\n );\n }\n};\n\n/**\n * Post OpenedPopOut-event to the checkout iframe.\n */\nexport const postOpenPopOutEvent = (iframe: HTMLIFrameElement, sid: string) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"OpenedPopOut\", sid }, \"*\");\n }\n};\n\n/**\n * Post ClosePopOut-event to the checkout iframe.\n */\nexport const postClosePopOutEvent = (\n iframe: HTMLIFrameElement,\n sid: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage({ type: \"ClosedPopOut\", sid }, \"*\");\n }\n};\n\n/**\n * Post SetLanguage-event to the checkout iframe.\n */\nexport const postSetLanguage = (\n iframe: HTMLIFrameElement,\n sid: string,\n language: string,\n) => {\n if (iframe.contentWindow) {\n iframe.contentWindow.postMessage(\n { type: \"SetLanguage\", sid, language },\n \"*\",\n );\n }\n};\n\n/**\n * Subscribe to events from an iframe given a handler and a set\n * of event types.\n */\nexport const subscribe = (options: SubscriptionOptions): Subscription => {\n const { sid, endpoint, handler, eventTypes, checkout } = options;\n\n // Wrap event handler in a function that checks for correct origin and\n // filters on event type(s) in the event data.\n const endpointUrl = new URL(endpoint);\n\n const wrappedHandler = (event: MessageEvent) => {\n const correctOrigin = event.origin === endpointUrl.origin;\n const correctWindow = event.source === checkout.iframe.contentWindow;\n const correctSid = event.data && event.data.sid === sid;\n const correctMessageType =\n eventTypes.indexOf(event.data && event.data.type) !== -1;\n\n if (\n correctOrigin &&\n correctWindow &&\n correctSid &&\n correctMessageType\n ) {\n postAck(checkout.iframe.contentWindow, event);\n handler(event.data, checkout);\n }\n };\n\n // Add event listener to the iframe.\n window.addEventListener(\"message\", wrappedHandler as any, false);\n\n // Function to remove the event listener from the iframe.\n const unsubscribe = () => {\n window.removeEventListener(\"message\", wrappedHandler as any, false);\n };\n\n // Return object with unsubscribe function.\n return {\n unsubscribe,\n };\n};\n","import { ShowPopOutButton } from \"./checkout\";\n\ntype BackdropOptions = {\n close: () => void;\n focus: () => void;\n event: ShowPopOutButton;\n};\n\nconst getBackdropZIndex = () => {\n // Iterate all DOM items to get current highest element.\n const elements = document.getElementsByTagName(\"*\");\n const highest = Array.from(elements).reduce((acc, element) => {\n try {\n const zIndexStr = document.defaultView\n .getComputedStyle(element, null)\n .getPropertyValue(\"z-index\");\n const zIndex = parseInt(zIndexStr || \"0\");\n if (!isNaN(zIndex) && zIndex > acc) {\n return zIndex;\n }\n } catch (e) {\n // Ignore errors when getting z-index\n console.error(e);\n }\n return acc;\n }, 0);\n if (highest < 9999) {\n return \"9999\";\n }\n return (highest + 1).toString();\n};\n\nconst STYLE_ID = \"dintero-checkout-sdk-style\";\nconst BACKDROP_ID = \"dintero-checkout-sdk-backdrop\";\nconst BACKDROP_DESCRIPTION = \"dintero-checkout-sdk-backdrop-description\";\nconst FOCUS_CHECKOUT_BUTTON_ID = \"dintero-checkout-sdk-backdrop-focus\";\nconst CLOSE_BACKDROP_BUTTON_ID = \"dintero-checkout-sdk-backdrop-close\";\n\nconst wrapPreventDefault = (fn: () => void) => {\n // Creates a wrapped function that will invoke preventDefault() to stop\n // the event from bubbling up the DOM tree.\n return (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n fn();\n return false;\n };\n};\n\nconst appendBackdropStyles = () => {\n // Check if exists before appending to DOM\n if (document.getElementById(STYLE_ID)) {\n return;\n }\n // Add style to DOM\n const style = document.createElement(\"style\");\n style.setAttribute(\"id\", STYLE_ID);\n style.innerHTML = `\n @keyframes ${BACKDROP_ID}-fade-in {\n from {opacity: 0;}\n to {opacity: 1;}\n }\n\n #${BACKDROP_ID} {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100vh;\n width: 100vw;\n background-color: rgba(0,0,0,0.9);\n background: radial-gradient(rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.8) 100%);\n cursor: pointer;\n animation: 20ms ease-out ${BACKDROP_ID}-fade-in;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 20px;\n color: #ffffff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n font-size: 18px;\n font-weight: 400;\n line-height: normal;\n text-rendering: geometricPrecision;\n margin: 0;\n padding: 0;\n border: 0;\n vertical-align: baseline;\n line-height: normal;\n }\n\n #${BACKDROP_ID} p {\n padding: 0;\n margin: 0;\n border: 0;\n user-select: none;\n }\n\n #${FOCUS_CHECKOUT_BUTTON_ID} {\n background-color: #efefef !important;\n color: #000000 !important;\n font-size: 16px !important;\n font-weight: 600 !important;\n border-radius: 200px !important;\n margin: 0 !important;\n line-height: normal !important;\n border: none !important;\n padding: 10px 20px !important;\n user-select: none !important;\n cursor: pointer !important;\n }\n #${FOCUS_CHECKOUT_BUTTON_ID}:hover,\n #${FOCUS_CHECKOUT_BUTTON_ID}:focus {\n outline: none !important;\n background-color: #ffffff !important;\n border: none !important;\n color: #000000 !important;\n padding: 10px 20px !important;\n margin: 0 !important;\n }\n #${FOCUS_CHECKOUT_BUTTON_ID}:focus{\n outline-offset: 2px;\n outline: 1px #ffffff solid !important;\n }\n\n #${CLOSE_BACKDROP_BUTTON_ID} {\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n border-radius: 4px !important;\n height: 24px !important;\n width: 24px !important;\n color: #efefef !important;\n position: absolute !important;\n top: 16px !important;\n right: 24px !important;\n transition: all 200ms ease-out !important;\n cursor: pointer !important;\n }\n\n #${CLOSE_BACKDROP_BUTTON_ID}:hover,\n #${CLOSE_BACKDROP_BUTTON_ID}:focus {\n outline: none !important;\n color: #ffffff !important;\n border: none !important;\n background: transparent !important;\n padding: 0 !important;\n margin: 0 !important;\n position: absolute;\n top: 16px;\n right: 24px;\n }\n #${CLOSE_BACKDROP_BUTTON_ID}:focus{\n outline: 1px #ffffff solid !important;\n }\n\n #${BACKDROP_ID}:before,\n #${BACKDROP_ID}:after,\n #${BACKDROP_ID} > *:before,\n #${BACKDROP_ID} > *:after {\n content: '';\n content: none;\n }\n `;\n document.head.appendChild(style);\n};\n\nconst createBackdropDOM = () => {\n // Dark translucent backdrop element\n const backdrop = document.createElement(\"div\");\n backdrop.setAttribute(\"id\", BACKDROP_ID);\n backdrop.setAttribute(\"role\", \"dialog\");\n backdrop.style.zIndex = getBackdropZIndex();\n return backdrop;\n};\n\nconst createCloseButtonDOM = (label: string) => {\n // Close button for the top right corner\n const button = document.createElement(\"button\");\n button.setAttribute(\"id\", CLOSE_BACKDROP_BUTTON_ID);\n button.setAttribute(\"type\", \"button\");\n button.setAttribute(\"aria-label\", label);\n button.innerHTML = `\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n alt=\"close icon\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>`;\n return button;\n};\n\nconst createDinteroLogoDOM = () => {\n // Close button for the top right corner\n const div = document.createElement(\"div\");\n div.innerHTML = `\n <svg width=\"120px\" height=\"22px\" viewBox=\"0 0 630 111\" version=\"1.1\" >\n <g id=\"Page-1\" stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g id=\"Dintero\" fill=\"#ffffff\" fillRule=\"nonzero\">\n <path d=\"M376.23,60.48 L376.23,73.54 L454.13,73.54 C456.31,41.55 435.85,23.71 410.61,23.71 C385.37,23.71 367.09,41.77 367.09,66.79 C367.09,92.03 386.02,110.31 411.91,110.31 C433.02,110.31 448.9,97.25 453.25,82.24 L436.5,82.24 C432.37,89.42 423.88,95.51 411.91,95.51 C395.16,95.51 382.75,83.11 382.75,66.79 C382.75,50.69 394.72,38.5 410.6,38.5 C426.48,38.5 438.45,50.68 438.45,66.79 L444.54,60.48 L376.23,60.48 Z M154.29,17.83 L171.7,17.83 L171.7,0.42 L154.29,0.42 L154.29,17.83 Z M120.34,108.13 L191.27,108.13 L191.27,93.77 L120.34,93.77 L120.34,108.13 Z M156.46,40.24 L156.46,108.13 L171.69,108.13 L171.69,45.47 C171.69,32.85 165.82,25.89 151.89,25.89 L120.34,25.89 L120.34,40.25 L156.46,40.25 L156.46,40.24 Z M499.17,25.88 L464.36,25.88 L464.36,40.24 L483.94,40.24 L484.16,108.13 L499.39,108.13 L499.17,62.44 C499.17,48.51 508.53,40.25 521.58,40.25 L535.29,40.25 L535.29,25.89 L524.41,25.89 C509.18,25.89 501.78,31.33 497.65,41.56 L495.47,47 L499.17,47.65 L499.17,25.88 Z M288.76,25.88 L310.52,25.88 L310.52,6.3 L325.75,6.3 L325.75,25.88 L359.69,25.88 L359.69,40.24 L325.75,40.24 L325.75,93.77 L359.69,93.77 L359.69,108.13 L332.49,108.13 C318.56,108.13 310.51,98.99 310.51,86.37 L310.51,40.24 L288.75,40.24 L288.75,25.88 L288.76,25.88 Z M464.35,108.13 L535.28,108.13 L535.28,93.77 L464.35,93.77 L464.35,108.13 Z M108.6,54.17 C108.6,23.06 85.54,0.43 53.77,0.43 L0.9,0.43 L0.9,108.14 L53.77,108.14 C85.53,108.13 108.6,85.5 108.6,54.17 M248.07,23.71 C234.58,23.71 223.92,31.98 220,41.55 L220,25.88 L204.77,25.88 L204.77,108.13 L220,108.13 L220,66.35 C220,53.08 224.79,38.93 243.72,38.93 C259.39,38.93 267.44,48.07 267.44,67.43 L267.44,108.12 L282.67,108.12 L282.67,64.6 C282.67,35.02 265.91,23.71 248.07,23.71 M586.2,110.31 C611.22,110.31 629.72,92.03 629.72,67.01 C629.72,41.99 611.23,23.71 586.2,23.71 C560.96,23.71 542.68,41.99 542.68,67.01 C542.68,92.03 560.96,110.31 586.2,110.31 M586.2,95.51 C570.32,95.51 558.35,83.33 558.35,67.01 C558.35,50.69 570.32,38.51 586.2,38.51 C602.08,38.51 614.05,50.69 614.05,67.01 C614.05,83.33 602.08,95.51 586.2,95.51 M16.99,92.9 L16.99,15.66 L51.8,15.66 C75.3,15.66 92.05,31.98 92.05,54.61 C92.05,76.8 75.3,92.91 51.8,92.91 L16.99,92.91 L16.99,92.9 Z\" id=\"Shape\"></path>\n </g>\n </g>\n </svg>`;\n return div;\n};\n\nconst createLabelDOM = (text: string) => {\n // Text about the pop out\n const p = document.createElement(\"p\");\n p.setAttribute(\"id\", BACKDROP_DESCRIPTION);\n p.innerText = text;\n return p;\n};\n\nconst createFocusButtonDOM = (text: string) => {\n // Mock button to give the user a call to action element to click, even\n // though the entire backdrop (except the close button) returns focus to the\n // checkout.\n const button = document.createElement(\"button\");\n button.setAttribute(\"id\", FOCUS_CHECKOUT_BUTTON_ID);\n button.setAttribute(\"type\", \"button\");\n button.innerText = text;\n return button;\n};\n\nconst focusTrap = (e: KeyboardEvent) => {\n // Prevent the user focusing outside of the backdrop while it is visible\n const focusButton = document.getElementById(FOCUS_CHECKOUT_BUTTON_ID);\n const closeButton = document.getElementById(CLOSE_BACKDROP_BUTTON_ID);\n if (e.key === \"Tab\" || e.code === \"Tab\") {\n if (document.activeElement === focusButton) {\n closeButton.focus();\n e.preventDefault();\n } else {\n // Tab\n focusButton.focus();\n e.preventDefault();\n }\n }\n};\n\nconst createBackdropView = (options: BackdropOptions) => {\n // Add styles needed for the backdrop;\n appendBackdropStyles();\n // Create DOM nodes\n const backdrop = createBackdropDOM();\n const closeButton = createCloseButtonDOM(options.event.closeLabel);\n const dinteroLogo = createDinteroLogoDOM();\n const label = createLabelDOM(options.event.descriptionLabel);\n const focusButton = createFocusButtonDOM(options.event.focusLabel);\n\n // Add click handlers\n backdrop.onclick = wrapPreventDefault(options.focus);\n focusButton.onclick = wrapPreventDefault(options.focus);\n closeButton.onclick = wrapPreventDefault(options.close);\n\n // Add focus trap when backdrop is visible\n document.addEventListener(\"keydown\", focusTrap);\n\n // Append to document\n backdrop.appendChild(closeButton);\n backdrop.appendChild(dinteroLogo);\n backdrop.appendChild(label);\n backdrop.appendChild(focusButton);\n document.body.appendChild(backdrop);\n backdrop.focus();\n return backdrop;\n};\n\nexport const setBackdropLabels = (event: ShowPopOutButton) => {\n const focusButton = document.getElementById(FOCUS_CHECKOUT_BUTTON_ID);\n if (focusButton) {\n focusButton.innerText = event.focusLabel;\n }\n const description = document.getElementById(BACKDROP_DESCRIPTION);\n if (description) {\n description.innerText = event.descriptionLabel;\n }\n const closeButton = document.getElementById(CLOSE_BACKDROP_BUTTON_ID);\n if (closeButton) {\n closeButton.setAttribute(\"aria-label\", event.descriptionLabel);\n }\n};\n\nexport const createBackdrop = (options: BackdropOptions) => {\n try {\n // Check if backdrop already exists\n const backdrop = document.getElementById(BACKDROP_ID);\n if (backdrop) {\n return;\n }\n return createBackdropView(options);\n } catch (e) {\n // Ignore errors when creating backdrop. If it fails we should not\n // block the payment.\n console.error(e);\n }\n};\n\nexport const removeBackdrop = () => {\n try {\n const backdrop = document.getElementById(BACKDROP_ID);\n if (backdrop) {\n document.body.removeChild(backdrop);\n }\n document.removeEventListener(\"keydown\", focusTrap);\n } catch (e) {\n // Ignore errors when closing backdrop. If it fails we should not stop\n // the rest of the application from working.\n console.error(e);\n }\n};\n","const OPEN_POP_OUT_BUTTON_ID = \"dintero-checkout-sdk-launch-pop-out\";\n\ntype PopOutButtonOptions = {\n container: HTMLElement;\n label: string;\n disabled: string;\n top: string;\n left: string;\n right: string;\n styles: {\n [key: string]: string;\n };\n stylesHover?: { [key: string]: string };\n stylesFocusVisible?: { [key: string]: string };\n onClick: () => void;\n};\n\nconst configureButton = (\n button: HTMLElement,\n {\n label,\n disabled,\n top,\n left,\n right,\n styles,\n onClick,\n stylesHover,\n stylesFocusVisible,\n }: PopOutButtonOptions,\n) => {\n button.setAttribute(\"id\", OPEN_POP_OUT_BUTTON_ID);\n button.setAttribute(\"type\", \"button\");\n\n // Is clickable\n if (disabled === \"true\") {\n button.setAttribute(\"disabled\", disabled);\n } else {\n button.removeAttribute(\"disabled\");\n }\n\n // Click handler\n button.onclick = (event) => {\n // Do not submit any form on the page using the SDK\n event.preventDefault();\n event.stopPropagation();\n\n // Update look\n button.style.boxShadow = \"inset 0 0 10px rgba(34, 84, 65, 0.9)\";\n\n // Invoke handler\n onClick();\n\n // Reset look\n window.setTimeout(() => {\n button.style.boxShadow = \"none\";\n }, 200);\n };\n\n // Label\n button.innerText = label;\n\n // Position\n button.style.position = \"absolute\";\n button.style.top = top + \"px\";\n button.style.left = left + \"px\";\n button.style.right = right + \"px\";\n\n // Appearance from checkout\n const { ...directStyles } = styles;\n\n for (const [key, value] of Object.entries(directStyles)) {\n button.style[key] = value;\n }\n\n // Add hover and focus-visible styles\n try {\n addHoverAndFocusVisibleStyles(stylesHover, stylesFocusVisible);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst addHoverAndFocusVisibleStyles = (\n stylesHover?: { [key: string]: string },\n stylesFocusVisible?: { [key: string]: string },\n) => {\n if (!stylesHover && !stylesFocusVisible) {\n return;\n }\n const styleId = `${OPEN_POP_OUT_BUTTON_ID}-styles`;\n const hasStyles = document.getElementById(styleId);\n if (hasStyles) {\n return;\n }\n const style = document.createElement(\"style\");\n style.setAttribute(\"id\", styleId);\n let content = [];\n if (stylesHover) {\n content.push(\n toCssEntity(\n `#${OPEN_POP_OUT_BUTTON_ID}:hover:not(:disabled)`,\n stylesHover,\n ),\n );\n }\n if (stylesFocusVisible) {\n content.push(\n toCssEntity(\n `#${OPEN_POP_OUT_BUTTON_ID}:focus-visible`,\n stylesFocusVisible,\n ),\n );\n }\n style.textContent = content.join(\"\\n\");\n document.head.appendChild(style);\n};\n\nconst toCssEntity = (\n selector: string,\n keyValues: { [key: string]: string },\n) => {\n return [`${selector} {`, toCssParameters(keyValues), `}`].join(\"\\n\");\n};\n\nconst toCssParameters = (keyValues: { [key: string]: string }) => {\n return Object.entries(keyValues)\n .map(([key, value]) => ` ${slugify(key)}: ${value} !important;`)\n .join(\"\\n\");\n};\n\nconst slugify = (str: string) => {\n return str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n};\n\nexport const addPopOutButton = (options: PopOutButtonOptions) => {\n // Will add or update existing button\n const { container } = options;\n const exists = document.getElementById(OPEN_POP_OUT_BUTTON_ID);\n const button = exists || document.createElement(\"button\");\n configureButton(button, options);\n if (!exists) {\n container.appendChild(button);\n }\n};\n\nexport const setPopOutButtonDisabled = (disabled: boolean) => {\n try {\n const button = document.getElementById(OPEN_POP_OUT_BUTTON_ID);\n if (button) {\n if (disabled) {\n button.setAttribute(\"disabled\", disabled.toString());\n } else {\n button.removeAttribute(\"disabled\");\n }\n }\n } catch (e) {\n // Ignore error and continue\n console.error(e);\n }\n};\n\nexport const removePopOutButton = () => {\n try {\n const button = document.getElementById(OPEN_POP_OUT_BUTTON_ID);\n if (button) {\n button.remove();\n }\n } catch (e) {\n // Ignore error and continue\n console.error(e);\n }\n};\n","import { url, type SessionUrlOptions } from \"./url\";\n\nconst WIDTH = Math.min(480, window.screen.width);\nconst HEIGHT = Math.min(840, window.screen.height);\nlet popOutWindow: undefined | Window;\n\nconst createPopOutWindow = (\n sid: string,\n url: string,\n width: number,\n height: number,\n) => {\n return new Promise<Window | undefined>((resolve) => {\n try {\n // Creates a centered pop up window\n const left = window.screenX + (window.outerWidth - width) / 2;\n const top = window.screenY + (window.outerHeight - height) / 2;\n const features = `width=${width},height=${height},left=${left},top=${top},location=no,menubar=no,toolbar=no,status=no`;\n let popOut: undefined | Window;\n let timeout = -1;\n // Set up listener for application loaded message from pop out window\n const handleAppLoaded = (event: MessageEvent) => {\n const correctSource = event.source === popOut;\n const correctOrigin = event.origin === new URL(url).origin;\n const correctMessage =\n event.data && event.data.type === \"AppLoaded\";\n const correctContext = event.data.context === \"popOut\";\n const correctSid = event.data.sid === sid;\n if (\n correctSource &&\n correctOrigin &&\n correctMessage &&\n correctContext &&\n correctSid\n ) {\n clearTimeout(timeout);\n resolve(popOut);\n window.removeEventListener(\"message\", handleAppLoaded);\n }\n };\n window.addEventListener(\"message\", handleAppLoaded);\n // Open pop out\n popOut = window.open(url, \"dintero-checkout\", features);\n // Check that pop out was opened\n if (!popOut) {\n console.log(\"createPopOutWindow no popOut\");\n resolve(undefined);\n return;\n }\n // Trigger timeout if pop out is not loaded\n timeout = window.setTimeout(() => {\n console.log(\"createPopOutWindow timeout\");\n resolve(undefined);\n }, 3000);\n } catch (err) {\n resolve(undefined);\n }\n });\n};\n\ntype Unsubscribe = () => void;\n\ntype PopOutOptions = SessionUrlOptions & {\n onOpen: (popOut: Window) => Unsubscribe;\n onClose: () => void;\n};\n\nexport const openPopOut = async (options: PopOutOptions) => {\n let unsubscribe: undefined | Unsubscribe;\n let intervalId = -1;\n if (popOutWindow && !popOutWindow.closed) {\n // Skip if already open.\n return;\n }\n\n // Open popup window\n const popOutUrl = url.getPopOutUrl(options);\n popOutWindow = await createPopOutWindow(\n options.sid,\n popOutUrl,\n WIDTH,\n HEIGHT,\n );\n\n const focusPopOut = () => {\n if (popOutWindow) {\n popOutWindow.focus();\n }\n };\n\n const cleanUpClosed = () => {\n window.clearInterval(intervalId);\n intervalId = -1;\n window.removeEventListener(\"beforeunload\", closePopOut);\n popOutWindow = undefined;\n options.onClose();\n if (unsubscribe) {\n unsubscribe();\n }\n };\n\n const closePopOut = () => {\n if (popOutWindow) {\n popOutWindow.close();\n }\n cleanUpClosed();\n };\n\n const checkIfPopupClosed = () => {\n if (popOutWindow && popOutWindow.closed) {\n cleanUpClosed();\n }\n };\n\n // Close pop out if current window is closed\n window.addEventListener(\"beforeunload\", closePopOut);\n\n // Check if checkout is still open\n intervalId = window.setInterval(checkIfPopupClosed, 200);\n\n // Set up pub/sub of messages from pop out to SDK\n unsubscribe = options.onOpen(popOutWindow);\n\n return {\n close: closePopOut,\n focus: focusPopOut,\n popOutWindow,\n };\n};\n\nexport const popOut = { openPopOut };\n","import \"native-promise-only\";\n\nimport pkg from \"../package.json\";\nimport {\n CheckoutEvents,\n InternalCheckoutEvents,\n SessionNotFound,\n SessionLoaded,\n SessionUpdated,\n SessionCancel,\n SessionPaymentOnHold,\n SessionPaymentAuthorized,\n SessionPaymentError,\n SessionLocked,\n SessionLockFailed,\n ActivePaymentProductType,\n ValidateSession,\n SessionValidationCallback,\n SessionEvent,\n ShowPopOutButton,\n} from \"./checkout\";\nimport { url } from \"./url\";\nimport { createIframeAsync } from \"./createIframeAsync\";\nimport {\n subscribe,\n SubscriptionHandler,\n Subscription,\n postSessionLock,\n postSessionRefresh,\n postActivePaymentProductType,\n postValidationResult,\n postSetLanguage,\n postOpenPopOutEvent,\n postClosePopOutEvent,\n postValidatePopOutEvent,\n postOpenPopOutFailedEvent,\n} from \"./subscribe\";\nimport {\n createBackdrop,\n removeBackdrop,\n setBackdropLabels,\n} from \"./popOutBackdrop\";\nimport {\n addPopOutButton,\n removePopOutButton,\n setPopOutButtonDisabled,\n} from \"./popOutButton\";\nimport { popOut } from \"./popOut\";\nimport { Session } from \"./session\";\n\nexport interface DinteroCheckoutInstance {\n /**\n * Remove iframe and all event listeners.\n */\n destroy: () => void;\n iframe: HTMLIFrameElement;\n language: string;\n lockSession: () => Promise<SessionEvent>;\n refreshSession: () => Promise<SessionEvent>;\n setActivePaymentProductType: (paymentProductType: string) => void;\n submitValidationResult: (result: SessionValidationCallback) => void;\n options: InternalDinteroEmbedCheckoutOptions;\n handlers: (\n | {\n handler: SubscriptionHandler;\n eventTypes: InternalCheckoutEvents[];\n }\n | {\n handler: SubscriptionHandler;\n eventTypes: CheckoutEvents[];\n }\n )[];\n session: Session | undefined;\n popOutWindow: Window | undefined;\n}\n\nexport interface DinteroCheckoutOptions {\n sid: string;\n endpoint?: string;\n language?: string;\n}\n\nexport interface DinteroEmbedCheckoutOptions extends DinteroCheckoutOptions {\n container: HTMLDivElement;\n popOut?: boolean;\n ui?: \"inline\" | \"fullscreen\";\n onPayment?: (\n event: SessionPaymentAuthorized | SessionPaymentOnHold,\n checkout: DinteroCheckoutInstance,\n ) => void;\n /**\n * @deprecated Since version 0.0.1. Will be deleted in version 1.0.0. Use onPayment instead.\n */\n onPaymentAuthorized?: (\n event: SessionPaymentAuthorized,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSession?: (\n event: SessionLoaded | SessionUpdated,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onPaymentError?: (\n event: SessionPaymentError,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSessionCancel?: (\n event: SessionCancel,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSessionNotFound?: (\n event: SessionNotFound,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onSessionLocked?: (\n event: SessionLocked,\n checkout: DinteroCheckoutInstance,\n callback: () => void,\n ) => void;\n onSessionLockFailed?: (\n event: SessionLockFailed,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onActivePaymentType?: (\n event: ActivePaymentProductType,\n checkout: DinteroCheckoutInstance,\n ) => void;\n onValidateSession?: (\n event: ValidateSession,\n checkout: DinteroCheckoutInstance,\n callback: (result: SessionValidationCallback) => void,\n ) => void;\n}\n\ninterface InternalDinteroEmbedCheckoutOptions\n extends DinteroEmbedCheckoutOptions {\n innerContainer: HTMLDivElement;\n}\n\n/**\n * An event handler that navigates to the href in the event.\n */\nconst followHref: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n cleanUpPopOut(checkout);\n if (event.href) {\n url.windowLocationAssign(event.href);\n }\n};\n\n/**\n * An event handler that sets height of the iframe.\n */\nconst setIframeHeight: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (event.height || event.height === 0) {\n checkout.iframe.setAttribute(\n \"style\",\n `width:100%; height:${event.height}px;`,\n );\n }\n};\n\n/**\n * An event handler that scrolls to the top of the iframe. This is useful when the user\n * is navigated to another page.\n */\nconst scrollToIframeTop: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n try {\n checkout.iframe.scrollIntoView({\n block: \"start\",\n behavior: \"smooth\",\n });\n } catch (e) {\n // Ignore error silently bug log it to the console.\n console.error(e);\n }\n};\n\n/**\n * An event handler that sets language in the iframe.\n */\nconst setLanguage: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (event.language) {\n checkout.language = event.language;\n }\n};\n\n/**\n * Wrap function with try catch so an error in a single function won't short circuit other code in the current context.\n */\nconst safelyInvoke = (fn: () => void) => {\n try {\n fn();\n } catch (e) {\n console.error(e);\n }\n};\n\n/**\n * Handle messages sendt to the SDK from the pop out.\n */\nconst createPopOutMessageHandler = (\n source: Window,\n checkout: DinteroCheckoutInstance,\n) => {\n // Change language in embed if changed in pop out\n const popOutChangedLanguageHandler = {\n internalPopOutHandler: true,\n eventTypes: [InternalCheckoutEvents.LanguageChanged],\n handler: (eventData: any, checkout: DinteroCheckoutInstance) => {\n // Tell the embedded checkout to change language.\n postSetLanguage(\n checkout.iframe,\n checkout.options.sid,\n eventData.language,\n );\n },\n };\n\n // Close pop out, and remove SDK rendered button when payment is completed.\n const paymentCompletedEvents = [\n CheckoutEvents.SessionCancel,\n CheckoutEvents.SessionPaymentOnHold,\n CheckoutEvents.SessionPaymentAuthorized,\n CheckoutEvents.SessionPaymentError,\n ];\n const popOutCompletedHandler = {\n internalPopOutHandler: true,\n eventTypes: paymentCompletedEvents,\n handler: (eventData: any, checkout: DinteroCheckoutInstance) => {\n if (eventData.href) {\n // Remove open pop out button rendered by SDK\n removePopOutButton();\n\n // Close checkout\n try {\n source.close();\n } catch (e) {\n console.error(e);\n }\n } else {\n console.error(\"Payment Complete event missing href property\");\n }\n },\n };\n\n // Listens to messages from pop out window and routes the events to dedicated handlers\n const messageRouter = (event: MessageEvent) => {\n // Check that we should handle the message\n if (\n event.source === source &&\n event.data.context === \"popOut\" &&\n event.data.sid === checkout.options.sid\n ) {\n // Check if handler matches incoming event and trigger the handler if so.\n [\n // SDK events for managing the pop out flow.\n popOutChangedLanguageHandler,\n popOutCompletedHandler,\n\n // Events configured when the checkout was embedded.\n ...checkout.handlers,\n ].forEach((handlerObject) => {\n if (\n (handlerObject.eventTypes as string[]).includes(\n event.data.type,\n ) &&\n handlerObject.handler\n ) {\n // Invoking the handler function if the event type matches the handler.\n safelyInvoke(() => {\n handlerObject.handler(event.data, checkout);\n });\n }\n });\n }\n };\n // Add messageRouter event listener to the Pop Out\n window.addEventListener(\"message\", messageRouter);\n\n // Return unsubscribe function\n return () => {\n window.removeEventListener(\"message\", messageRouter);\n };\n};\n\n/**\n * Configures and shows the pop out with the payment options.\n */\nconst showPopOut = async (\n event: ShowPopOutButton,\n checkout: DinteroCheckoutInstance,\n) => {\n const { close, focus, popOutWindow } = await popOut.openPopOut({\n sid: checkout.options.sid,\n endpoint: checkout.options.endpoint,\n shouldCallValidateSession: Boolean(checkout.options.onValidateSession),\n language: event.language,\n onOpen: (popOutWindow: Window) =>\n createPopOutMessageHandler(popOutWindow, checkout),\n onClose: () => {\n removeBackdrop();\n postClosePopOutEvent(checkout.iframe, checkout.options.sid);\n setPopOutButtonDisabled(false);\n checkout.popOutWindow = undefined;\n },\n });\n if (popOutWindow) {\n postOpenPopOutEvent(checkout.iframe, checkout.options.sid);\n // Add pop out window to checkout instance\n checkout.popOutWindow = popOutWindow;\n createBackdrop({ focus, close, event });\n return true;\n } else {\n postOpenPopOutFailedEvent(checkout.iframe, checkout.options.sid);\n return false;\n }\n};\n\n/**\n * Create callback function for the client side validation flow. It allows the\n * host application to validate the content of the payment session before the\n * pop out is opened.\n */\nconst createPopOutValidationCallback = (\n event: ShowPopOutButton,\n checkout: DinteroCheckoutInstance,\n) => {\n return (result: SessionValidationCallback) => {\n // Tell the embedded iframe about the validation result so it can show an error message if\n // the validation failed.\n postValidationResult(checkout.iframe, checkout.options.sid, result);\n if (result.success && checkout.popOutWindow) {\n // Redirect user to session in pop out window\n checkout.popOutWindow.location.href = url.getPopOutUrl({\n sid: checkout.options.sid,\n endpoint: checkout.options.endpoint,\n shouldCallValidateSession: false,\n language: event.language,\n });\n } else {\n // Close pop out\n if (checkout.popOutWindow) {\n checkout.popOutWindow.close();\n }\n // Log validation error to console log.\n console.error(result.clientValidationError);\n }\n };\n};\n\n/**\n * Handle click event on the SDK rendered pop out button\n */\nconst handlePopOutButtonClick = async (\n event: ShowPopOutButton,\n checkout: DinteroCheckoutInstance,\n) => {\n // Disable button while pop out is open\n const opened = await showPopOut(event, checkout);\n\n if (opened && checkout.options.onValidateSession) {\n // Let the host application validate the payment session before opening checkout.\n\n // Tell the embedded iframe that we are validating the session\n postValidatePopOutEvent(checkout.iframe, checkout.options.sid);\n\n // Create callback function added to the SDK event and onValidateSession attributes\n const callback = createPopOutValidationCallback(event, checkout);\n\n // Invoke onValidateSession function defined in checkout options\n try {\n checkout.options.onValidateSession(\n {\n type: CheckoutEvents.ValidateSession,\n session: checkout.session,\n callback,\n },\n checkout,\n callback,\n );\n } catch (e) {\n console.error(e);\n postValidationResult(checkout.iframe, checkout.options.sid, {\n success: false,\n clientValidationError: \"Validation runtime error\",\n });\n }\n }\n};\n\n/**\n * Type guard for ShowPopOutButton\n */\nconst isShowPopOutButton = (event: any): event is ShowPopOutButton => {\n return event && event.type === InternalCheckoutEvents.ShowPopOutButton;\n};\n\n/**\n * Display the SDK rendered pop out button on top of the embedded iframe\n */\nconst handleShowButton: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (isShowPopOutButton(event)) {\n addPopOutButton({\n container: checkout.options.innerContainer,\n label: event.openLabel,\n top: event.top,\n left: event.left,\n right: event.right,\n styles: event.styles,\n stylesHover: event.stylesHover,\n stylesFocusVisible: event.stylesFocusVisible,\n disabled: event.disabled,\n onClick: () => handlePopOutButtonClick(event, checkout),\n });\n setBackdropLabels(event);\n }\n};\n\n/**\n * Remove the pop out button above the embedded iframe\n */\nconst handleRemoveButton: SubscriptionHandler = (\n event: any,\n checkout: DinteroCheckoutInstance,\n): void => {\n if (event.type === InternalCheckoutEvents.HidePopOutButton) {\n removePopOutButton();\n }\n};\n\nconst cleanUpPopOut = (checkout: DinteroCheckoutInstance) => {\n // Ensures that the pop out is no longer open when the payment is completed or the checkout is destroyed.\n removePopOutButton();\n removeBackdrop();\n if (checkout.popOutWindow) {\n try {\n checkout.popOutWindow.close();\n // Pop out message handlers will be removed when the pop out window is closed\n // via the interval created by openPopOut.\n } catch (e) {\n console.error(e);\n }\n }\n};\n\nconst composeUrl = (base: string, path: string, query: string) => {\n const slash = base.endsWith(\"/\") ? \"\" : \"/\";\n return `${base}${slash}${path}?${query}`;\n};\n\n/**\n * Show a dintero payment session in an embedded iframe.\n */\nexport const embed = async (\n options: DinteroEmbedCheckoutOptions,\n): Promise<DinteroCheckoutInstance> => {\n // Create inner container to offset any styling on the container.\n const innerContainer = document.createElement(\"div\");\n innerContainer.style.position = \"relative\";\n innerContainer.style[\"box-sizing\"] = \"border-box\";\n\n const internalOptions = {\n endpoint: \"https://checkout.dintero.com\",\n innerContainer: innerContainer,\n ...options,\n };\n const {\n container,\n sid,\n language,\n endpoint,\n onSession,\n onSessionCancel,\n onPayment,\n onPaymentAuthorized,\n onPaymentError,\n onSessionNotFound,\n onSessionLocked,\n onSessionLockFailed,\n onActivePaymentType,\n onValidateSession,\n popOut,\n } = internalOptions;\n\n let checkout: DinteroCheckoutInstance | undefined;\n const subscriptions: Subscription[] = [];\n let has_delivered_final_event = false;\n\n // Create iframe\n container.appendChild(innerContainer);\n const { iframe, initiate } = createIframeAsync(\n innerContainer,\n endpoint,\n url.getSessionUrl({\n sid,\n endpoint,\n language,\n ui: options.ui || \"inline\",\n shouldCallValidateSession: onValidateSession !== undefined,\n popOut,\n ...(options.hasOwnProperty(\"hideTestMessage\") && {\n hideTestMessage: options[\"hideTestMessage\"],\n }),\n }),\n );\n\n /**\n * Function that removes the iframe, pop out and all event listeners.\n */\n const destroy = () => {\n cleanUpPopOut(checkout);\n if (iframe) {\n if (internalOptions.popOut) {\n // Try to remove backdrop if it exists\n removeBackdrop();\n }\n subscriptions.forEach((sub) => sub.unsubscribe());\n if (iframe.parentElement) {\n innerContainer.removeChild(iframe);\n }\n }\n if (innerContainer.parentElement) {\n container.removeChild(innerContainer);\n }\n };\n\n /**\n * Turn an action into a promise by specifying resolve and\n * reject events.\n */\n const promisifyAction = (\n action: () => void,\n resolveEvent: CheckoutEvents,\n rejectEvent: CheckoutEvents,\n ) => {\n if (!checkout) {\n throw new Error(\n \"Unable to create action promise: checkout is undefined\",\n );\n }\n return new Promise<SessionEvent>((resolve, reject) => {\n const eventSubscriptions: Subscription[] = [];\n eventSubscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler: (sessionEvent) => {\n eventSubscriptions.forEach((sub) => sub.unsubscribe());\n resolve(sessionEvent);\n },\n eventTypes: [resolveEvent],\n checkout,\n source: checkout.iframe.contentWindow,\n }),\n );\n eventSubscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler: () => {\n eventSubscriptions.forEach((sub) => sub.unsubscribe());\n reject(`Received unexpected event: ${rejectEvent}`);\n },\n eventTypes: [rejectEvent],\n checkout,\n source: checkout.iframe.contentWindow,\n }),\n );\n action();\n });\n };\n\n const lockSession = () => {\n return promisifyAction(\n () => {\n postSessionLock(iframe, sid);\n },\n CheckoutEvents.SessionLocked,\n CheckoutEvents.SessionLockFailed,\n );\n };\n\n const refreshSession = () => {\n return promisifyAction(\n () => {\n postSessionRefresh(iframe, sid);\n },\n CheckoutEvents.SessionUpdated,\n CheckoutEvents.SessionNotFound,\n );\n };\n\n const setActivePaymentProductType = (paymentProductType?: string) => {\n postActivePaymentProductType(iframe, sid, paymentProductType);\n };\n\n const submitValidationResult = (result: SessionValidationCallback) => {\n postValidationResult(iframe, sid, result);\n };\n\n /**\n * Internal result event message handler wrapper, to replace the content of the iframe with a success/or\n * error message. Only used when the embed function in the SDK has a dedicated handler for onPayment, onError etc.\n * If no custom handler is set the followHref handler is used instead.\n */\n const handleWithResult = (\n sid: string,\n endpoint: string,\n handler: SubscriptionHandler,\n ): SubscriptionHandler => {\n return (event: any, checkout: DinteroCheckoutInstance) => {\n if (!has_delivered_final_event) {\n has_delivered_final_event = true;\n cleanUpPopOut(checkout);\n\n const eventKeys = [\n \"sid\",\n \"merchant_reference\",\n \"transaction_id\",\n \"error\",\n ];\n const pairs = eventKeys.map((key) => [key, event[key]]);\n if (\n event.type === CheckoutEvents.SessionCancel &&\n !event.error\n ) {\n pairs.push([\"error\", \"cancelled\"]);\n }\n pairs.push([\"language\", checkout.language]);\n pairs.push([\"sdk\", pkg.version]);\n const urlQuery = pairs\n .filter(([key, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join(\"&\");\n checkout.iframe.setAttribute(\n \"src\",\n composeUrl(endpoint, \"embedResult/\", urlQuery),\n );\n handler(event, checkout);\n }\n };\n };\n\n const wrappedOnValidateSession = (\n event: ValidateSession,\n checkout: DinteroCheckoutInstance,\n ) => {\n if (onValidateSession) {\n try {\n onValidateSession(\n {\n ...event,\n callback: submitValidationResult,\n },\n checkout,\n submitValidationResult,\n );\n } catch (e) {\n console.error(e);\n submitValidationResult({\n success: false,\n clientValidationError: \"Validation runtime error\",\n });\n }\n }\n };\n\n const wrappedOnSessionLocked = (\n event: SessionLocked,\n checkout: DinteroCheckoutInstance,\n ) => {\n if (onSessionLocked) {\n onSessionLocked(event, checkout, refreshSession);\n }\n };\n\n const wrappedOnLoadedOrUpdated = (\n event: SessionLoaded | SessionUpdated,\n checkout: DinteroCheckoutInstance,\n ) => {\n // Update the checkout instance to include the session object\n checkout.session = event.session;\n if (onSession) {\n onSession(event, checkout);\n }\n };\n\n // Add event handlers (or in some cases add a fallback href handler).\n const handlers = [\n {\n handler: setLanguage,\n eventTypes: [InternalCheckoutEvents.LanguageChanged],\n },\n {\n handler: setIframeHeight,\n eventTypes: [InternalCheckoutEvents.HeightChanged],\n },\n {\n handler: scrollToIframeTop,\n eventTypes: [InternalCheckoutEvents.ScrollToTop],\n },\n {\n handler: wrappedOnLoadedOrUpdated as\n | SubscriptionHandler\n | undefined,\n eventTypes: [\n CheckoutEvents.SessionLoaded,\n CheckoutEvents.SessionUpdated,\n ],\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentOnHold],\n handler: handleWithResult(sid, endpoint, onPayment || followHref),\n },\n {\n eventTypes: [CheckoutEvents.SessionPaymentAuthorized],\n handler: handleWithResult(\n sid,\n endpoint,\n onPaymentAuthorized || onPayment || followHref,\n ),\n },\n {\n handler: handleWithResult(\n sid,\n endpoint,\n onSessionCancel || followHref,\n ),\n eventTypes: [CheckoutEvents.SessionCancel],\n },\n {\n handler: handleWithResult(\n sid,\n endpoint,\n onPaymentError || followHref,\n ),\n eventTypes: [CheckoutEvents.SessionPaymentError],\n },\n {\n handler: onSessionNotFound as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionNotFound],\n },\n {\n handler: wrappedOnSessionLocked as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLocked],\n },\n {\n handler: onSessionLockFailed as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.SessionLockFailed],\n },\n {\n handler: onActivePaymentType as SubscriptionHandler | undefined,\n eventTypes: [CheckoutEvents.ActivePaymentProductType],\n },\n {\n handler: wrappedOnValidateSession as\n | SubscriptionHandler\n | undefined,\n eventTypes: [CheckoutEvents.ValidateSession],\n },\n {\n handler: handleShowButton as SubscriptionHandler,\n eventTypes: [InternalCheckoutEvents.ShowPopOutButton],\n },\n {\n handler: handleRemoveButton as SubscriptionHandler,\n eventTypes: [InternalCheckoutEvents.HidePopOutButton],\n },\n ];\n // Create checkout object that wraps the destroy function.\n checkout = {\n destroy,\n iframe,\n language,\n lockSession,\n refreshSession,\n setActivePaymentProductType,\n submitValidationResult,\n options: internalOptions,\n handlers,\n session: undefined,\n popOutWindow: undefined,\n };\n\n handlers.forEach(({ handler, eventTypes }) => {\n if (handler) {\n subscriptions.push(\n subscribe({\n sid,\n endpoint,\n handler,\n eventTypes,\n checkout,\n source: checkout.iframe.contentWindow,\n }),\n );\n }\n });\n\n // Add iframe to DOM\n await initiate();\n // Return object with function to destroy the checkout.\n return checkout;\n};\n\n/**\n * Redirect the customer to a payment session in the Dintero Checkout.\n */\nexport const redirect = (options: DinteroCheckoutOptions) => {\n const {\n sid,\n language,\n endpoint = \"https://checkout.dintero.com\",\n } = options;\n // Redirect the current browser window to the checkout session url.\n url.windowLocationAssign(\n url.getSessionUrl({\n sid,\n endpoint,\n language,\n shouldCallValidateSession: false,\n }),\n );\n};\n\nexport type {\n SessionNotFound,\n SessionLoaded,\n SessionUpdated,\n SessionCancel,\n SessionPaymentOnHold,\n SessionPaymentAuthorized,\n SessionPaymentError,\n SessionLocked,\n SessionLockFailed,\n ActivePaymentProductType,\n ValidateSession,\n SessionValidationCallback,\n} from \"./checkout\";\n","/**\n * Creates an iframe and adds it to the container.\n *\n * Returns a promise that resolves to the iframe when the iframe has loaded.\n * Rejects the promise if there is a problem loading the iframe.\n */\nexport const createIframeAsync = (\n container: HTMLDivElement,\n endpoint: string,\n url: string,\n): { iframe: HTMLIFrameElement; initiate: () => void } => {\n if (!container || !container.appendChild) {\n throw new Error(\"Invalid container\");\n }\n const iframe = document.createElement(\"iframe\");\n\n // No border, transparent and stretch to 100% of the container width.\n iframe.setAttribute(\"frameborder\", \"0\");\n iframe.setAttribute(\"allowTransparency\", \"true\");\n iframe.setAttribute(\"style\", \"width:100%; height:0;\");\n\n // TODO: Get this to work as expected, might be tricky with current\n // tests since they will require the csp to be \"unsafe-inline\".\n // The server needs to add the same property in the Content Security\n // Policy headers in the response for this to work. A CSP header set by\n // a meta tag in the iframe target will not be detected as a valid\n // CSP from the iframe host.\n // Content Security Policy, should be limited to \"endpoint\".\n // iframe.setAttribute(\"csp\", `default-src ${endpoint}`);\n\n // Apply extra restrictions to the content in the iframe.\n // allow popups is needed to open terms in new window\n iframe.setAttribute(\n \"sandbox\",\n \"allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox\",\n );\n\n // Needed for to allow apple pay from iframe\n iframe.setAttribute(\"allow\", \"payment\");\n\n // The download priority of the resource in the <iframe>'s src attribute.\n iframe.setAttribute(\"importance\", \"high\");\n\n // Set the iframe source to the url.\n iframe.setAttribute(\"src\", url);\n\n // Resolve or reject promise when iframe loads.\n\n // // Add iframe to the container.\n // container.appendChild(iframe);\n return {\n iframe,\n initiate: async () => {\n return new Promise<void>((resolve, reject) => {\n iframe.onload = () => resolve();\n iframe.onerror = () => reject();\n container.appendChild(iframe);\n });\n },\n };\n};\n"],"names":["name","context","definition","builtInProp","cycle","scheduling_queue","ToString","Object","prototype","toString","timer","setImmediate","fn","setTimeout","defineProperty","obj","val","config","value","writable","configurable","err","schedule","self","add","drain","isThenable","o","_then","o_type","then","notify","i","this","chain","length","notifyIsolated","state","success","failure","cb","ret","reject","msg","call","promise","TypeError","resolve","triggered","def","def_wrapper","MakeDefWrapper","apply","arguments","iteratePromises","Constructor","arr","resolver","rejecter","idx","MakeDef","Promise","executor","__NPO__","constructor","push","first","last","item","Item","next","f","PromisePrototype","len","msgs","Array","count","global","module","exports","CheckoutEvents","InternalCheckoutEvents","padTralingSlash","endpoint","endsWith","url","getPopOutUrl","sid","language","shouldCallValidateSession","params","URLSearchParams","append","pkg","options","ui","popOut","Error","hasOwnProperty","undefined","window","location","assign","postValidationResult","iframe","result","contentWindow","postMessage","type","subscribe","handler","eventTypes","checkout","endpointUrl","URL","wrappedHandler","event","correctOrigin","origin","correctWindow","source","correctSid","data","correctMessageType","indexOf","postAck","mid","ack","addEventListener","unsubscribe","removeEventListener","STYLE_ID","BACKDROP_ID","BACKDROP_DESCRIPTION","FOCUS_CHECKOUT_BUTTON_ID","CLOSE_BACKDROP_BUTTON_ID","wrapPreventDefault","e","preventDefault","stopPropagation","createBackdropDOM","backdrop","document","createElement","setAttribute","style","zIndex","getBackdropZIndex","elements","getElementsByTagName","highest","from","reduce","acc","element","zIndexStr","defaultView","getComputedStyle","getPropertyValue","parseInt","isNaN","console","error","focusTrap","focusButton","getElementById","closeButton","key","code","activeElement","focus","createBackdropView","appendBackdropStyles","innerHTML","head","appendChild","label","button","createCloseButtonDOM","closeLabel","dinteroLogo","createDinteroLogoDOM","div","text","p","innerText","createLabelDOM","descriptionLabel","createFocusButtonDOM","focusLabel","onclick","close","body","removeBackdrop","removeChild","OPEN_POP_OUT_BUTTON_ID","addHoverAndFocusVisibleStyles","stylesHover","stylesFocusVisible","styleId","content","toCssEntity","textContent","join","selector","keyValues","toCssParameters","entries","map","slugify","str","replace","toLowerCase","addPopOutButton","container","exists","configureButton","disabled","top","left","right","styles","onClick","removeAttribute","boxShadow","position","directStyles","removePopOutButton","remove","WIDTH","Math","min","screen","width","HEIGHT","height","popOutWindow","async","intervalId","closed","popOutUrl","createPopOutWindow","screenX","outerWidth","screenY","outerHeight","features","timeout","handleAppLoaded","correctSource","correctMessage","correctContext","clearTimeout","open","log","cleanUpClosed","clearInterval","closePopOut","onClose","setInterval","checkIfPopupClosed","onOpen","focusPopOut","followHref","cleanUpPopOut","href","setIframeHeight","scrollToIframeTop","scrollIntoView","block","behavior","setLanguage","createPopOutMessageHandler","popOutChangedLanguageHandler","internalPopOutHandler","LanguageChanged","eventData","postSetLanguage","popOutCompletedHandler","SessionCancel","SessionPaymentOnHold","SessionPaymentAuthorized","SessionPaymentError","messageRouter","handlers","forEach","handlerObject","includes","safelyInvoke","showPopOut","Boolean","onValidateSession","postClosePopOutEvent","setPopOutButtonDisabled","createBackdrop","postOpenPopOutFailedEvent","postOpenPopOutEvent","handlePopOutButtonClick","callback","createPopOutValidationCallback","clientValidationError","ValidateSession","session","postValidatePopOutEvent","handleShowButton","ShowPopOutButton","isShowPopOutButton","innerContainer","openLabel","description","setBackdropLabels","handleRemoveButton","HidePopOutButton","internalOptions","onSession","onSessionCancel","onPayment","onPaymentAuthorized","onPaymentError","onSessionNotFound","onSessionLocked","onSessionLockFailed","onActivePaymentType","subscriptions","has_delivered_final_event","initiate","createIframeAsync","onload","onerror","hideTestMessage","promisifyAction","action","resolveEvent","rejectEvent","eventSubscriptions","sessionEvent","sub","refreshSession","postSessionRefresh","SessionUpdated","SessionNotFound","submitValidationResult","handleWithResult","pairs","urlQuery","filter","composeUrl","base","path","query","slash","HeightChanged","ScrollToTop","wrappedOnLoadedOrUpdated","SessionLoaded","wrappedOnSessionLocked","SessionLocked","SessionLockFailed","ActivePaymentProductType","wrappedOnValidateSession","destroy","parentElement","lockSession","postSessionLock","setActivePaymentProductType","paymentProductType","postActivePaymentProductType","payment_product_type"],"mappings":"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,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAmB7BA,yIAOAE,CAaAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,yRAQAA,CAKAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAgBAA,sBACAA,CAWAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIAH,uBACAA,CACAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,uFAKPU,CAASgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,YAAY9B,CAAM,CAAA,CAAA,CAwFhC2B,GAEA,CAAM/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWD,IACX0B,CA/EoBU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE1B,MAAMC,CAASnC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,cAAc,CAoBtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAnBAkC,EAAOjC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMT,GAC1B0C,CAAOjC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,OAAQ,CAC5BiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOjC,aAAa,CAAcgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClCC,EAAOJ,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dintero/checkout-web-sdk",
3
- "version": "0.7.4",
3
+ "version": "0.8.1",
4
4
  "description": "Dintero Checkout SDK for web frontends",
5
5
  "main": "dist/dintero-checkout-web-sdk.cjs.js",
6
6
  "module": "dist/dintero-checkout-web-sdk.esm.js",
@@ -32,7 +32,7 @@
32
32
  "url": "https://github.com/Dintero/Dintero.Checkout.Web.SDK/issues"
33
33
  },
34
34
  "devDependencies": {
35
- "@babel/core": "7.23.9",
35
+ "@babel/core": "7.24.0",
36
36
  "@babel/preset-typescript": "7.23.3",
37
37
  "@preconstruct/cli": "2.8.3",
38
38
  "@semantic-release/exec": "6.0.3",
@@ -40,9 +40,9 @@
40
40
  "@vitest/browser": "1.3.1",
41
41
  "prettier": "3.2.5",
42
42
  "semantic-release": "23.0.2",
43
- "typescript": "5.3.3",
43
+ "typescript": "5.4.2",
44
44
  "vitest": "1.3.1",
45
- "webdriverio": "8.32.3"
45
+ "webdriverio": "8.33.1"
46
46
  },
47
47
  "dependencies": {
48
48
  "native-promise-only": "0.8.1"