Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@yoonit/yoox-store-js

Package Overview
Dependencies
Maintainers
11
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@yoonit/yoox-store-js - npm Package Compare versions

Comparing version 0.0.1-alpha.7 to 0.0.1-alpha.8

4

dist/main.bundle.js

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Yoox=t():e.Yoox=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,t){e.exports=require("rxjs/operators")},function(e,t){e.exports=require("rxjs")},function(e,t){e.exports=require("pouchdb")},,function(e,t,r){"use strict";r.r(t),r.d(t,"store",(function(){return q}));var n=r(1),o=r(0),i=r(2),c=r.n(i);function u(){this.code=404,this.message="Registry was not found"}function s(){this.code=409,this.message="Document update conflict"}function a(e){this.message=e}function f(e){return 404===e.status?new u:409===e.status?new s:new a(e.message)}var l=["_id","_rev"];function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function v(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function d(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function O(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){d(i,n,o,c,u,"next",e)}function u(e){d(i,n,o,c,u,"throw",e)}c(void 0)}))}}function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function g(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){j(i,n,o,c,u,"next",e)}function u(e){j(i,n,o,c,u,"throw",e)}c(void 0)}))}}var P=function(){var e,t,r,n=function(){var e,t,r,n,o=new c.a("state",{revs_limit:1}),i="global_state";return{get:(n=O((function*(){try{var e=yield o.get(i),{_id:t,_rev:r}=e,n=b(e,l);return Promise.resolve(n)}catch(e){throw f(e)}})),function(){return n.apply(this,arguments)}),update:(r=O((function*(e){try{var t=yield o.get(i),r=yield o.put(y({_id:t._id,_rev:t._rev},e),{force:!0});return Promise.resolve(r)}catch(e){throw f(e)}})),function(e){return r.apply(this,arguments)}),create:(t=O((function*(e){try{var t=yield o.put(y({_id:i},e));return Promise.resolve(t)}catch(e){throw f(e)}})),function(e){return t.apply(this,arguments)}),remove:(e=O((function*(){try{var e=yield o.get(i,{revs:!0,open_revs:"all"});return yield Promise.all(e.map(e=>{if(e.ok)return o.remove(e.ok._id,e.ok._rev)})),Promise.resolve(!0)}catch(e){throw f(e)}})),function(){return e.apply(this,arguments)})}}();function o(){return(o=g((function*(e){try{return yield n.create(e),Promise.resolve(!0)}catch(t){if(t instanceof s)return yield n.update(e),Promise.resolve(!0)}}))).apply(this,arguments)}return{get:(r=g((function*(){return n.get()})),function(){return r.apply(this,arguments)}),set:(t=g((function*(e){try{return yield n.update(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){m(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e)),Promise.resolve(!0)}catch(t){return t instanceof u?function(e){return o.apply(this,arguments)}(e):Promise.reject(t)}})),function(e){return t.apply(this,arguments)}),clear:(e=g((function*(){try{return yield n.remove(),Promise.resolve(!0)}catch(e){return e instanceof u?(console.warn("Empty Database"),Promise.resolve(!1)):Promise.reject(e)}})),function(){return e.apply(this,arguments)})}}(),w=P;function x(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){D(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function D(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function L(e,t){var r={};return Object.keys(e).forEach(n=>{r["".concat(t,"/").concat(n)]=e[n]}),r}var k=function(){var e,t=(e=function*(e){try{var t=yield P.get();return e?!(Object.keys(t).join("")!==e.join(""))&&t:Promise.resolve(t)}catch(e){return!1}},function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){x(i,n,o,c,u,"next",e)}function u(e){x(i,n,o,c,u,"throw",e)}c(void 0)}))});return function(e){return t.apply(this,arguments)}}();var E=function(e){var{store:t,storeAccessors:r,storeObservable:n}=e,o=t,i=r,c=n;return{get:function(e){var t={};if(e.split("").includes("/")){var r=e.split("/")[0]||"";t={state:o.state[r],rootState:o.state}}else t.state=o.state;return i.getterList[e]?i.getterList[e](t):console.warn("[Perse SDK Store] The get method ",e," does not exist.")},mix:function(e,t){if(t)return c.next({type:e,payload:t});c.next({type:e})},set:function(e,r){return i.actionList[e]?i.actionList[e](t,r):console.warn("[Perse SDK Store] The set method ",e," does not exist.")}}};var T=function(e){var t=e;return{mixerHandler:function(e,r){return(t.mixerList[r.type]||(e=>e))(e,r),e},persistStoreState:function(e,t){return w.set(t),t}}};function M(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}var q=(e,t)=>{var{persist:r=!1,onLoad:i=(()=>({}))}=t,c=new n.Subject,u=function(e){var t,r,n,o=Object.keys(e),i=o.includes("get")&&o.includes("set")&&o.includes("mix")&&o.includes("state"),c={};if(i)return{getterList:e.get,actionList:e.set,initialState:e.state,mixerList:e.mix};var u=[];return o.forEach(o=>{t=_(_({},t),{},{[o]:_({},e[o].state)}),r=_(_({},r),L(e[o].get,o)),n=_(_({},n),L(e[o].mix,o)),c=_(_({},c),L(e[o].set,o)),u.push(o)}),{initialState:t,getterList:r,mixerList:n,actionList:c,modules:u}}(e),s=T(u),a=r?s.persistStoreState:(e,t)=>t,f=c.pipe(Object(o.startWith)({type:"__INIT__"}),Object(o.scan)(s.mixerHandler,u.initialState),Object(o.shareReplay)(1),Object(o.scan)(a,{}));r&&k(u.modules).then(e=>{e&&(u.initialState=e,i())});var l=E({store:f,storeAccessors:u,storeObservable:c});f.get=l.get,f.mix=l.mix,f.set=l.set;var p=function(){var e,t=(e=function*(e){return yield f.subscribe(e)},function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){M(i,n,o,c,u,"next",e)}function u(e){M(i,n,o,c,u,"throw",e)}c(void 0)}))});return function(e){return t.apply(this,arguments)}}();return f.observe=p,p(e=>f.state=e),f};t.default={store:q}}])}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL1lvb3gvZXh0ZXJuYWwgXCJyeGpzL29wZXJhdG9yc1wiIiwid2VicGFjazovL1lvb3gvZXh0ZXJuYWwgXCJyeGpzXCIiLCJ3ZWJwYWNrOi8vWW9veC9leHRlcm5hbCBcInBvdWNoZGJcIiIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3BlcnNpc3QvZXhjZXB0aW9ucy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3BlcnNpc3QvcGVyc2lzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3BlcnNpc3QvZGIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vWW9veC8uL3NyYy9wZXJzaXN0L21haW4uanMiLCJ3ZWJwYWNrOi8vWW9veC8uL3NyYy91dGlscy9pbmRleC5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3lvb3gvbWV0aG9kcy5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3lvb3gvb2JzZXJ2ZXJIYW5kbGVycy5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3lvb3gvaW5kZXguanMiLCJ3ZWJwYWNrOi8vWW9veC8uL3NyYy9tYWluLmpzIl0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsInRoaXMiLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwicmVxdWlyZSIsIk5vdEZvdW5kRXhjZXB0aW9uIiwiY29kZSIsIm1lc3NhZ2UiLCJDb25mbGljdEV4Y2VwdGlvbiIsIlVuZXhwZWN0ZWRFcnJvckV4Y2VwdGlvbiIsImNhdGNoRXJyb3IiLCJlcnJvciIsInN0YXR1cyIsIlBlcnNpc3QiLCJkYiIsIlBvdWNoREIiLCJyZXZzX2xpbWl0IiwiaWQiLCJfaWQiLCJfcmV2IiwiZ2xvYmFsU3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImUiLCJ1cGRhdGUiLCJwYXlsb2FkIiwiY2FjaGVkRGF0YSIsImRiUmVzcG9uc2UiLCJwdXQiLCJmb3JjZSIsInJlbW92ZSIsInJldnMiLCJvcGVuX3JldnMiLCJhbGwiLCJtYXAiLCJkb2MiLCJvayIsImxvY2FsRGF0YWJhc2UiLCJzZXQiLCJyZWplY3QiLCJjbGVhciIsImNvbnNvbGUiLCJ3YXJuIiwiQ3JlYXRlUGVyc2lzdGVuY2UiLCJtb2R1bGFyaXplRnVuY3Rpb25OYW1lcyIsImFjY2Vzc29ycyIsIm1vZHVsZU5hbWUiLCJtb2R1bGFyaXplZEZ1bmN0aW9ucyIsImtleXMiLCJmb3JFYWNoIiwiZnVuY3Rpb25OYW1lIiwibG9hZFBlcnNpc3RlZERhdGEiLCJwZXJzaXN0ZWREYXRhIiwiam9pbiIsImNyZWF0ZVN0b3JlTWV0aG9kcyIsInN0b3JlIiwic3RvcmVBY2Nlc3NvcnMiLCJzdG9yZU9ic2VydmFibGUiLCJfc3RvcmUiLCJfc3RvcmVBY2Nlc3NvcnMiLCJfc3RvcmVPYnNlcnZhYmxlIiwiYWN0aW9uIiwic3BsaXQiLCJpbmNsdWRlcyIsInN0YXRlIiwicm9vdFN0YXRlIiwiZ2V0dGVyTGlzdCIsIm1peCIsIm5leHQiLCJ0eXBlIiwiYWN0aW9uTGlzdCIsImNyZWF0ZU9ic2VydmVySGFuZGxlcnMiLCJtaXhlckhhbmRsZXIiLCJtaXhlckxpc3QiLCJwZXJzaXN0U3RvcmVTdGF0ZSIsImFjY3VtdWxhdG9yIiwicGVyc2lzdCIsIm9uTG9hZCIsIlN1YmplY3QiLCJpbml0aWFsU3RhdGUiLCJtb2R1bGVLZXlzIiwiaXNBY2Nlc3NvcnNPblJvb3QiLCJtb2R1bGVzS2V5cyIsIm1vZHVsZUtleSIsInB1c2giLCJjcmVhdGVTdG9yZUFjY2Vzc29ycyIsIm9ic2VydmVySGFuZGxlcnMiLCJhY2MiLCJwaXBlIiwic3RhcnRXaXRoIiwic2NhbiIsInNoYXJlUmVwbGF5IiwidGhlbiIsInBlcnNpc3RlZFN0YXRlIiwic3RvcmVNZXRob2RzIiwic3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9uSGFuZGxlciIsInN1YnNjcmliZSIsIm9ic2VydmUiXSwibWFwcGluZ3MiOiJDQUFBLFNBQTJDQSxFQUFNQyxHQUMxQixpQkFBWkMsU0FBMEMsaUJBQVhDLE9BQ3hDQSxPQUFPRCxRQUFVRCxJQUNRLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDOUNELE9BQU8sR0FBSUgsR0FDZSxpQkFBWkMsUUFDZEEsUUFBYyxLQUFJRCxJQUVsQkQsRUFBVyxLQUFJQyxJQVJqQixDQVNHSyxNQUFNLFdBQ1QsTyxZQ1RFLElBQUlDLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVQLFFBR25DLElBQUlDLEVBQVNJLEVBQWlCRSxHQUFZLENBQ3pDQyxFQUFHRCxFQUNIRSxHQUFHLEVBQ0hULFFBQVMsSUFVVixPQU5BVSxFQUFRSCxHQUFVSSxLQUFLVixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTTSxHQUcvREwsRUFBT1EsR0FBSSxFQUdKUixFQUFPRCxRQTBEZixPQXJEQU0sRUFBb0JNLEVBQUlGLEVBR3hCSixFQUFvQk8sRUFBSVIsRUFHeEJDLEVBQW9CUSxFQUFJLFNBQVNkLEVBQVNlLEVBQU1DLEdBQzNDVixFQUFvQlcsRUFBRWpCLEVBQVNlLElBQ2xDRyxPQUFPQyxlQUFlbkIsRUFBU2UsRUFBTSxDQUFFSyxZQUFZLEVBQU1DLElBQUtMLEtB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QkFDakIsQ0FBQ2EsRUFBS2xHLElBQW1CQSxFQU12QmtFLEVBQVFFLEVBQWdCK0IsS0FDNUJDLG9CQUFVLENBQUNwQixLQUFNLGFBQ2pCcUIsZUFBS0osRUFBaUJkLGFBQWNoQixFQUFldUIsY0FDbkRZLHNCQUFZLEdBQ1pELGVBQUtoQixFQUFtQixLQUlwQkUsR0FDRnpCLEVBQWtCSyxFQUFlbEYsU0FBU3NILEtBQU1DLElBQ3pDQSxJQUVMckMsRUFBZXVCLGFBQWVjLEVBQzlCaEIsT0FJSixJQUFNaUIsRUFBZXhDLEVBQW1CLENBQ3RDQyxRQUNBQyxpQkFDQUMsb0JBR0ZGLEVBQU10RSxJQUFNNkcsRUFBYTdHLElBRXpCc0UsRUFBTVksSUFBTTJCLEVBQWEzQixJQUV6QlosRUFBTWpCLElBQU13RCxFQUFheEQsSUFPekIsSUFBTXlELEVBQVksZSxFQUFBLEcsRUFBRyxVQUFPQyxHQUFQLGFBQXFDekMsRUFBTTBDLFVBQVVELEksK0tBQXhELHNEQWFsQixPQVBBekMsRUFBTTJDLFFBQVVILEVBS2hCQSxFQUFjL0IsR0FBVVQsRUFBTVMsTUFBUUEsR0FFL0JULEdDdEVJLFdBQUVBIiwiZmlsZSI6Im1haW4uYnVuZGxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiWW9veFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJZb294XCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDQpO1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicnhqcy9vcGVyYXRvcnNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicnhqc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJwb3VjaGRiXCIpOyIsImZ1bmN0aW9uIE5vdEZvdW5kRXhjZXB0aW9uICgpIHtcbiAgdGhpcy5jb2RlID0gNDA0XG4gIHRoaXMubWVzc2FnZSA9ICdSZWdpc3RyeSB3YXMgbm90IGZvdW5kJ1xufVxuXG5mdW5jdGlvbiBDb25mbGljdEV4Y2VwdGlvbiAoKSB7XG4gIHRoaXMuY29kZSA9IDQwOVxuICB0aGlzLm1lc3NhZ2UgPSAnRG9jdW1lbnQgdXBkYXRlIGNvbmZsaWN0J1xufVxuXG5mdW5jdGlvbiBVbmV4cGVjdGVkRXJyb3JFeGNlcHRpb24gKG1lc3NhZ2UpIHtcbiAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxufVxuXG4vKipcbiAqIEBmdW5jdGlvbiBjYXRjaEVycm9yXG4gKiBAZGVzY3JpcHRpb24gSGFuZGxlIGVycm9yIGFuZCB0aHJvdyBjdXN0b20gZXJyb3IgZXhjZXB0aW9uLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAqIEByZXR1cm5zIHtVbmV4cGVjdGVkRXJyb3JFeGNlcHRpb258Tm90Rm91bmRFeGNlcHRpb258Q29uZmxpY3RFeGNlcHRpb259XG4gKi9cbmZ1bmN0aW9uIGNhdGNoRXJyb3IgKGVycm9yKSB7XG4gIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgIHJldHVybiBuZXcgTm90Rm91bmRFeGNlcHRpb24oKVxuICB9XG5cbiAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgcmV0dXJuIG5ldyBDb25mbGljdEV4Y2VwdGlvbigpXG4gIH1cblxuICByZXR1cm4gbmV3IFVuZXhwZWN0ZWRFcnJvckV4Y2VwdGlvbihlcnJvci5tZXNzYWdlKVxufVxuXG5leHBvcnQge1xuICBOb3RGb3VuZEV4Y2VwdGlvbixcbiAgVW5leHBlY3RlZEVycm9yRXhjZXB0aW9uLFxuICBDb25mbGljdEV4Y2VwdGlvbixcbiAgY2F0Y2hFcnJvclxufVxuIiwiaW1wb3J0IHsgbG9jYWxEYXRhYmFzZSB9IGZyb20gXCIuLi9kYlwiO1xuaW1wb3J0IHtDb25mbGljdEV4Y2VwdGlvbiwgTm90Rm91bmRFeGNlcHRpb259IGZyb20gXCIuLi9leGNlcHRpb25zXCI7XG5cbmZ1bmN0aW9uIENyZWF0ZVBlcnNpc3RlbmNlICgpIHtcbiAgY29uc3QgZGIgPSBsb2NhbERhdGFiYXNlKClcblxuICBhc3luYyBmdW5jdGlvbiBjcmVhdGUgKHBheWxvYWQpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGIuY3JlYXRlKHBheWxvYWQpXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBDb25mbGljdEV4Y2VwdGlvbikge1xuICAgICAgICBhd2FpdCBkYi51cGRhdGUocGF5bG9hZClcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpXG4gICAgICB9XG4gICAgfVxuXG4gIH1cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBAbWV0aG9kIGdldFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZSBwZXJzaXN0ZWQgdmFsdWVzXG4gICAgICogQHJldHVybnMge1Byb21pc2U8UGljazwqLCBuZXZlcj58dW5kZWZpbmVkPn1cbiAgICAgKi9cbiAgICBnZXQ6IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBkYi5nZXQoKVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAbWV0aG9kIHNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXQgdmFsdWUgdG8gYmUgcGVyc2lzdGVkLCBpZiBubyB2YWx1ZSBoYXMgYmVlbiBzdG9yZWQsIGl0IGNyZWF0ZXMgdGhlIHBheWxvYWQuXG4gICAgICogQHBhcmFtIHBheWxvYWRcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn1cbiAgICAgKi9cbiAgICBzZXQ6IGFzeW5jIGZ1bmN0aW9uIChwYXlsb2FkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBkYi51cGRhdGUoeyAuLi5wYXlsb2FkIH0pXG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXhjZXB0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZShwYXlsb2FkKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpXG4gICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBtZXRob2QgY2xlYXJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2xlYXIgcGVyc2lzdGVkIHZhbHVlXG4gICAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59XG4gICAgICovXG4gICAgY2xlYXI6IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGRiLnJlbW92ZSgpXG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXhjZXB0aW9uKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdFbXB0eSBEYXRhYmFzZScpXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBQZXJzaXN0ID0gQ3JlYXRlUGVyc2lzdGVuY2UoKVxuXG5leHBvcnQgeyBQZXJzaXN0IH1cbiIsImltcG9ydCBQb3VjaERCIGZyb20gJ3BvdWNoZGInXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBDb25mbGljdEV4Y2VwdGlvbiB9IGZyb20gXCIuLi9leGNlcHRpb25zXCI7XG5cbmZ1bmN0aW9uIGxvY2FsRGF0YWJhc2UgKCkge1xuICBjb25zdCBkYiA9IG5ldyBQb3VjaERCKCdzdGF0ZScsIHsgcmV2c19saW1pdDogMSB9KVxuICBjb25zdCBpZCA9ICdnbG9iYWxfc3RhdGUnXG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBAbWV0aG9kIGdldFxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm94eSBQb3VjaERCIGdldCB0byBhYnN0cmFjdCBsaWIgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gR2V0IHBlcnNpc3RlZCB2YWx1ZVxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPFBpY2s8KiwgbmV2ZXI+Pn1cbiAgICAgKi9cbiAgICBnZXQ6IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgX2lkLCBfcmV2LCAuLi5nbG9iYWxTdGF0ZSB9ID0gYXdhaXQgZGIuZ2V0KGlkKVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2xvYmFsU3RhdGUpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IGNhdGNoRXJyb3IoZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8qKlxuICAgICAqIEBtZXRob2QgdXBkYXRlXG4gICAgICogQGRlc2NyaXB0aW9uIFByb3h5IFBvdWNoREIgdXBkYXRlIHRvIGFic3RyYWN0IGxpYiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBVcGRhdGUgcGVyc2lzdGVkIHZhbHVlXG4gICAgICogQHBhcmFtIHthbnl9IHBheWxvYWRcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTwqPn1cbiAgICAgKi9cbiAgICB1cGRhdGU6IGFzeW5jIGZ1bmN0aW9uIChwYXlsb2FkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjYWNoZWREYXRhID0gYXdhaXQgZGIuZ2V0KGlkKVxuXG4gICAgICAgIC8vIEZvcmNlIHRydWUgaWdub3JlcyBfcmV2XG4gICAgICAgIGNvbnN0IGRiUmVzcG9uc2UgPSBhd2FpdCBkYi5wdXQoe1xuICAgICAgICAgIF9pZDogY2FjaGVkRGF0YS5faWQsXG4gICAgICAgICAgX3JldjogY2FjaGVkRGF0YS5fcmV2LFxuICAgICAgICAgIC4uLnBheWxvYWRcbiAgICAgICAgfSwgeyBmb3JjZTogdHJ1ZSB9KVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZGJSZXNwb25zZSlcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgY2F0Y2hFcnJvcihlKVxuICAgICAgfVxuICAgIH0sXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb3h5IFBvdWNoREIgY3JlYXRlIHRvIGFic3RyYWN0IGxpYiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBDcmVhdGUgcmVnaXN0cnkgb24gcGVyc2lzdCBkYXRhYmFzZVxuICAgICAqIEBwYXJhbSB7YW55fSBwYXlsb2FkXG4gICAgICogQHJldHVybnMge1Byb21pc2U8Kj59XG4gICAgICovXG4gICAgY3JlYXRlOiBhc3luYyBmdW5jdGlvbiAocGF5bG9hZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGJSZXNwb25zZSA9IGF3YWl0IGRiLnB1dCh7XG4gICAgICAgICAgX2lkOiBpZCxcbiAgICAgICAgICAuLi5wYXlsb2FkXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYlJlc3BvbnNlKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBjYXRjaEVycm9yKGUpXG4gICAgICB9XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBAbWV0aG9kIHJlbW92ZVxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm94eSBQb3VjaERCIHJlbW92ZSB0byBhYnN0cmFjdCBsaWIgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gUmVtb3ZlIHN0b3JlZCBkYXRhIHdpdGggYWxsIGl0cyByZXZpc2lvbnMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8Kj59XG4gICAgICovXG4gICAgcmVtb3ZlOiBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjYWNoZWREYXRhID0gYXdhaXQgZGIuZ2V0KGlkLCB7XG4gICAgICAgICAgcmV2czogdHJ1ZSxcbiAgICAgICAgICBvcGVuX3JldnM6ICdhbGwnXG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoY2FjaGVkRGF0YS5tYXAoKGRvYykgPT4ge1xuICAgICAgICAgIGlmICghZG9jLm9rKSByZXR1cm5cblxuICAgICAgICAgIHJldHVybiBkYi5yZW1vdmUoZG9jLm9rLl9pZCwgZG9jLm9rLl9yZXYpXG4gICAgICAgIH0pKVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSlcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgY2F0Y2hFcnJvcihlKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgeyBsb2NhbERhdGFiYXNlIH1cbiIsImltcG9ydCB7IFBlcnNpc3QgfSBmcm9tIFwiLi9wZXJzaXN0XCI7XG5cbmV4cG9ydCB7IFBlcnNpc3QgfVxuXG5leHBvcnQgZGVmYXVsdCBQZXJzaXN0XG4iLCJpbXBvcnQgeyBQZXJzaXN0IH0gZnJvbSAnLi4vcGVyc2lzdC9tYWluJ1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3JlYXRlIG9iamVjdCB3aXRoIGRvbWFpbiBuYW1lICcvJyBmdW5jdGlvbidzIG5hbWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBhY2Nlc3NvcnMgT2JqZWN0IHdpdGggZ2V0dGVycywgc2V0dGVycyBvciBtaXhlcnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGVOYW1lIE1vZHVsZSBuYW1lLlxuICogQHJldHVybnMgT2JqZWN0XG4gKi9cblxuZnVuY3Rpb24gbW9kdWxhcml6ZUZ1bmN0aW9uTmFtZXMgKGFjY2Vzc29ycywgbW9kdWxlTmFtZSkge1xuICBjb25zdCBtb2R1bGFyaXplZEZ1bmN0aW9ucyA9IHt9XG4gIE9iamVjdC5rZXlzKGFjY2Vzc29ycykuZm9yRWFjaCgoZnVuY3Rpb25OYW1lKSA9PiB7XG4gICAgbW9kdWxhcml6ZWRGdW5jdGlvbnNbYCR7bW9kdWxlTmFtZX0vJHtmdW5jdGlvbk5hbWV9YF0gPSBhY2Nlc3NvcnNbZnVuY3Rpb25OYW1lXVxuICB9KVxuXG4gIHJldHVybiBtb2R1bGFyaXplZEZ1bmN0aW9uc1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgc3RvcmUgYWNjZXNzb3JzXG4gKiBAcGFyYW0ge09iamVjdH0gbW9kdWxlc1xuICogQHJldHVybnMge3ttaXhlckxpc3Q6ICosIGdldHRlckxpc3QsIGluaXRpYWxTdGF0ZSwgYWN0aW9uTGlzdH18e21peGVyTGlzdCwgZ2V0dGVyTGlzdCwgaW5pdGlhbFN0YXRlLCBhY3Rpb25MaXN0OiB7fSwgbW9kdWxlc319XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlQWNjZXNzb3JzIChtb2R1bGVzKSB7XG4gIGNvbnN0IG1vZHVsZUtleXMgPSBPYmplY3Qua2V5cyhtb2R1bGVzKVxuICBjb25zdCBpc0FjY2Vzc29yc09uUm9vdCA9IG1vZHVsZUtleXMuaW5jbHVkZXMoJ2dldCcpICYmXG4gICAgbW9kdWxlS2V5cy5pbmNsdWRlcygnc2V0JykgJiZcbiAgICBtb2R1bGVLZXlzLmluY2x1ZGVzKCdtaXgnKSAmJlxuICAgIG1vZHVsZUtleXMuaW5jbHVkZXMoJ3N0YXRlJylcblxuICBsZXQgaW5pdGlhbFN0YXRlLCBnZXR0ZXJMaXN0LCBtaXhlckxpc3QsIGFjdGlvbkxpc3QgPSB7fVxuXG4gIGlmIChpc0FjY2Vzc29yc09uUm9vdCkge1xuICAgIHJldHVybiB7XG4gICAgICBnZXR0ZXJMaXN0OiBtb2R1bGVzLmdldCxcbiAgICAgIGFjdGlvbkxpc3Q6IG1vZHVsZXMuc2V0LFxuICAgICAgaW5pdGlhbFN0YXRlOiBtb2R1bGVzLnN0YXRlLFxuICAgICAgbWl4ZXJMaXN0OiBtb2R1bGVzLm1peFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG1vZHVsZXNLZXlzID0gW11cbiAgLy8gUG9wdWxhdGUgbWl4ZXJMaXN0IGFuZCBpbml0aWFsU3RhdGUgb2JqZWN0IGFjY29yZGluZyB0byBtb2R1bGVzXG4gIG1vZHVsZUtleXMuZm9yRWFjaCgobW9kdWxlS2V5KSA9PiB7XG4gICAgaW5pdGlhbFN0YXRlID0geyAuLi5pbml0aWFsU3RhdGUsIFttb2R1bGVLZXldOiB7IC4uLm1vZHVsZXNbbW9kdWxlS2V5XS5zdGF0ZSB9IH1cbiAgICBnZXR0ZXJMaXN0ID0geyAuLi5nZXR0ZXJMaXN0LCAuLi5tb2R1bGFyaXplRnVuY3Rpb25OYW1lcyhtb2R1bGVzW21vZHVsZUtleV0uZ2V0LCBtb2R1bGVLZXkpIH1cbiAgICBtaXhlckxpc3QgPSB7IC4uLm1peGVyTGlzdCwgLi4ubW9kdWxhcml6ZUZ1bmN0aW9uTmFtZXMobW9kdWxlc1ttb2R1bGVLZXldLm1peCwgbW9kdWxlS2V5KSB9XG4gICAgYWN0aW9uTGlzdCA9IHsgLi4uYWN0aW9uTGlzdCwgLi4ubW9kdWxhcml6ZUZ1bmN0aW9uTmFtZXMobW9kdWxlc1ttb2R1bGVLZXldLnNldCwgbW9kdWxlS2V5KSB9XG4gICAgbW9kdWxlc0tleXMucHVzaChtb2R1bGVLZXkpXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgZ2V0dGVyTGlzdCxcbiAgICBtaXhlckxpc3QsXG4gICAgYWN0aW9uTGlzdCxcbiAgICBtb2R1bGVzOiBtb2R1bGVzS2V5c1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBAcGFyYW0gbW9kdWxlc1xuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbnxPYmplY3Q+fVxuICovXG5jb25zdCBsb2FkUGVyc2lzdGVkRGF0YSA9IGFzeW5jIChtb2R1bGVzKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGVyc2lzdGVkRGF0YSA9IGF3YWl0IFBlcnNpc3QuZ2V0KClcblxuICAgIGlmICghbW9kdWxlcykge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwZXJzaXN0ZWREYXRhKVxuICAgIH1cblxuICAgIGNvbnN0IHBlcnNpc3RlZEtleXMgPSBPYmplY3Qua2V5cyhwZXJzaXN0ZWREYXRhKVxuICAgIGNvbnN0IGlzU2FtZU1vZHVsZSA9IHBlcnNpc3RlZEtleXMuam9pbignJykgPT09ICBtb2R1bGVzLmpvaW4oJycpXG5cbiAgICBpZiAoaXNTYW1lTW9kdWxlKSB7XG4gICAgICByZXR1cm4gcGVyc2lzdGVkRGF0YVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgY3JlYXRlU3RvcmVBY2Nlc3NvcnMsXG4gIG1vZHVsYXJpemVGdW5jdGlvbk5hbWVzLFxuICBsb2FkUGVyc2lzdGVkRGF0YVxufVxuIiwiLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVjZWl2ZSBTdG9yZSBhcyBwYXJhbWV0ZXIgYW5kIGNyZWF0ZSBzdG9yZSBtZXRob2RzIHRvIGJlIHVzZWQgYnkgdXNlci5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzdG9yZSAtIFJhdyBzdGF0ZSB2YWx1ZXNcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdG9yZUFjY2Vzc29ycyAtIEFjY2Vzc29ycyBtZXRob2RzIHBhc3NlZCBhcyBwYXJhbXMgdG8gY3JlYXRlU3RvcmUgbWV0aG9kXG4gKiBAcGFyYW0ge09ic2VydmFibGV9IHN0b3JlT2JzZXJ2YWJsZSAtIE9ic2VydmFibGUgdGhhdCB1cGRhdGVzIHN0b3JlIHN0YXRlXG4gKiBAcmV0dXJucyB7e3NldDogKGZ1bmN0aW9uKCo9LCAqPSk6ICp8dm9pZCksIGdldDogKGZ1bmN0aW9uKCo9KTogKnx2b2lkKSwgbWl4OiAoKGZ1bmN0aW9uKCo9LCAqPSk6ICgqfHVuZGVmaW5lZCkpfCopfX1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RvcmVNZXRob2RzICh7IHN0b3JlLCBzdG9yZUFjY2Vzc29ycywgc3RvcmVPYnNlcnZhYmxlIH0pIHtcbiAgY29uc3QgX3N0b3JlID0gc3RvcmVcbiAgY29uc3QgX3N0b3JlQWNjZXNzb3JzID0gc3RvcmVBY2Nlc3NvcnNcbiAgY29uc3QgX3N0b3JlT2JzZXJ2YWJsZSA9IHN0b3JlT2JzZXJ2YWJsZVxuXG4gIHJldHVybiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgZ2V0IGV2ZW50IGFzIGFsaWFzIHNob3J0aGFuZCBmb3IgcmV0dXJuaW5nIGdldCBmdW5jdGlvbnMgZnJvbSBtb2R1bGVzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGFjdGlvblxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGdldDogZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgY29uc3QgaXNNb2R1bGFyaXplZEZ1bmN0aW9uID0gYWN0aW9uLnNwbGl0KCcnKS5pbmNsdWRlcygnLycpXG4gICAgICBsZXQgZ2xvYmFsU3RhdGUgPSB7fVxuXG4gICAgICBpZiAoaXNNb2R1bGFyaXplZEZ1bmN0aW9uKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBhY3Rpb24uc3BsaXQoJy8nKVswXSB8fCAnJ1xuICAgICAgICBnbG9iYWxTdGF0ZSA9IHsgc3RhdGU6IF9zdG9yZS5zdGF0ZVttb2R1bGVOYW1lXSwgcm9vdFN0YXRlOiBfc3RvcmUuc3RhdGUgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ2xvYmFsU3RhdGUuc3RhdGUgPSBfc3RvcmUuc3RhdGVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIF9zdG9yZUFjY2Vzc29ycy5nZXR0ZXJMaXN0W2FjdGlvbl1cbiAgICAgICAgPyBfc3RvcmVBY2Nlc3NvcnMuZ2V0dGVyTGlzdFthY3Rpb25dKGdsb2JhbFN0YXRlKVxuICAgICAgICA6IGNvbnNvbGUud2FybignW1BlcnNlIFNESyBTdG9yZV0gVGhlIGdldCBtZXRob2QgJywgYWN0aW9uLCAnIGRvZXMgbm90IGV4aXN0LicpXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG1peCBldmVudCBhcyBhbGlhcyBzaG9ydGhhbmQgZm9yIG5leHQvZGlzcGF0Y2hcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHBheWxvYWRcbiAgICAgKi9cbiAgICBtaXg6IGZ1bmN0aW9uIChhY3Rpb24sIHBheWxvYWQpIHtcbiAgICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgIHJldHVybiBfc3RvcmVPYnNlcnZhYmxlLm5leHQoeyB0eXBlOiBhY3Rpb24sIHBheWxvYWQgfSlcbiAgICAgIH1cblxuICAgICAgX3N0b3JlT2JzZXJ2YWJsZS5uZXh0KHsgdHlwZTogYWN0aW9uIH0pXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIHNldCBhY3Rpb24gZXZlbnRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHBheWxvYWRcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uIChhY3Rpb24sIHBheWxvYWQpIHtcbiAgICAgIHJldHVybiBfc3RvcmVBY2Nlc3NvcnMuYWN0aW9uTGlzdFthY3Rpb25dXG4gICAgICAgID8gX3N0b3JlQWNjZXNzb3JzLmFjdGlvbkxpc3RbYWN0aW9uXShzdG9yZSwgcGF5bG9hZClcbiAgICAgICAgOiBjb25zb2xlLndhcm4oJ1tQZXJzZSBTREsgU3RvcmVdIFRoZSBzZXQgbWV0aG9kICcsIGFjdGlvbiwgJyBkb2VzIG5vdCBleGlzdC4nKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVTdG9yZU1ldGhvZHNcbiIsImltcG9ydCBQZXJzaXN0IGZyb20gXCIuLi9wZXJzaXN0L21haW5cIjtcblxuZnVuY3Rpb24gY3JlYXRlT2JzZXJ2ZXJIYW5kbGVycyAoc3RvcmVBY2Nlc3NvcnMpIHtcbiAgY29uc3QgX3N0b3JlQWNjZXNzb3JzID0gc3RvcmVBY2Nlc3NvcnNcblxuICByZXR1cm4ge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIGhhbmRsZXIgdG8gZXhlY3V0ZSBtaXhlclxuICAgICAqIEBwYXJhbSB7T2JzZXJ2YWJsZX0gc3RhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgbWl4ZXJIYW5kbGVyOiBmdW5jdGlvbiAoc3RhdGUsIGFjdGlvbikge1xuICAgICAgY29uc3QgREVGQVVMVF9TVEFURSA9IHN0YXRlID0+IHN0YXRlXG4gICAgICBjb25zdCBoYW5kbGVyID0gX3N0b3JlQWNjZXNzb3JzLm1peGVyTGlzdFthY3Rpb24udHlwZV0gfHwgREVGQVVMVF9TVEFURVxuICAgICAgaGFuZGxlcihzdGF0ZSwgYWN0aW9uKVxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFBlcnNpc3QgdmFsdWUgaW5zaWRlIHN0b3JlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjY3VtdWxhdG9yXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHZhbHVlXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgcGVyc2lzdFN0b3JlU3RhdGU6IGZ1bmN0aW9uIChhY2N1bXVsYXRvciwgdmFsdWUpIHtcbiAgICAgIFBlcnNpc3Quc2V0KHZhbHVlKVxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZU9ic2VydmVySGFuZGxlcnNcbiIsImltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc2Nhbiwgc3RhcnRXaXRoLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgY3JlYXRlU3RvcmVBY2Nlc3NvcnMsIGxvYWRQZXJzaXN0ZWREYXRhIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgY3JlYXRlU3RvcmVNZXRob2RzIGZyb20gJy4vbWV0aG9kcydcbmltcG9ydCBjcmVhdGVPYnNlcnZlckhhbmRsZXJzIGZyb20gJy4vb2JzZXJ2ZXJIYW5kbGVycydcblxuLyoqXG4gKiBDcmVhdGUgYSByeGpzIHJlZHV4LWxpa2UgeW9veFxuICogQHBhcmFtIHtPYmplY3R9IG1vZHVsZXNcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWdcbiAqIEByZXR1cm5zIHtPYnNlcnZhYmxlfVxuICovXG5jb25zdCBzdG9yZSA9IChtb2R1bGVzLCB7IHBlcnNpc3QgPSBmYWxzZSwgb25Mb2FkID0gKCkgPT4gKHt9KSB9KSA9PiB7XG4gICAgY29uc3Qgc3RvcmVPYnNlcnZhYmxlID0gbmV3IFN1YmplY3QoKVxuICAgIGNvbnN0IHN0b3JlQWNjZXNzb3JzID0gY3JlYXRlU3RvcmVBY2Nlc3NvcnMobW9kdWxlcylcbiAgICBjb25zdCBvYnNlcnZlckhhbmRsZXJzID0gY3JlYXRlT2JzZXJ2ZXJIYW5kbGVycyhzdG9yZUFjY2Vzc29ycylcblxuICBjb25zdCBwZXJzaXN0U3RvcmVTdGF0ZSA9IHBlcnNpc3RcbiAgICA/IG9ic2VydmVySGFuZGxlcnMucGVyc2lzdFN0b3JlU3RhdGVcbiAgICA6IChhY2MsIHZhbHVlKSA9PiB7IHJldHVybiB2YWx1ZSB9XG5cbiAgLyoqXG4gICAqIENyZWF0aW5nIGEgeW9veCBpbnN0YW5jZSB3aXRoIHBpcGUgcnhqcyBtZXRob2RzXG4gICAqIEB0eXBlIHtPYnNlcnZhYmxlfVxuICAgKi9cbiAgY29uc3Qgc3RvcmUgPSBzdG9yZU9ic2VydmFibGUucGlwZShcbiAgICBzdGFydFdpdGgoe3R5cGU6ICdfX0lOSVRfXyd9KSxcbiAgICBzY2FuKG9ic2VydmVySGFuZGxlcnMubWl4ZXJIYW5kbGVyLCBzdG9yZUFjY2Vzc29ycy5pbml0aWFsU3RhdGUpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHNjYW4ocGVyc2lzdFN0b3JlU3RhdGUsIHt9KVxuICApXG5cbiAgICAvLyBMb2FkIHBlcnNpc3RlZCBkYXRhXG4gICAgaWYgKHBlcnNpc3QpIHtcbiAgICAgIGxvYWRQZXJzaXN0ZWREYXRhKHN0b3JlQWNjZXNzb3JzLm1vZHVsZXMpLnRoZW4oKHBlcnNpc3RlZFN0YXRlKSA9PiB7XG4gICAgICAgIGlmICghcGVyc2lzdGVkU3RhdGUpIHJldHVyblxuXG4gICAgICAgIHN0b3JlQWNjZXNzb3JzLmluaXRpYWxTdGF0ZSA9IHBlcnNpc3RlZFN0YXRlXG4gICAgICAgIG9uTG9hZCgpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlTWV0aG9kcyA9IGNyZWF0ZVN0b3JlTWV0aG9kcyh7XG4gICAgICBzdG9yZSxcbiAgICAgIHN0b3JlQWNjZXNzb3JzLFxuICAgICAgc3RvcmVPYnNlcnZhYmxlXG4gICAgfSlcblxuICAgIHN0b3JlLmdldCA9IHN0b3JlTWV0aG9kcy5nZXRcblxuICAgIHN0b3JlLm1peCA9IHN0b3JlTWV0aG9kcy5taXhcblxuICAgIHN0b3JlLnNldCA9IHN0b3JlTWV0aG9kcy5zZXRcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIHN1YnNjcmlwdGlvbiBzdHJlYW0gY29uc3QgdG8gYmUgcmV1c2VkXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc3Vic2NyaXB0aW9uSGFuZGxlclxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGFzeW5jIChzdWJzY3JpcHRpb25IYW5kbGVyKSA9PiBhd2FpdCBzdG9yZS5zdWJzY3JpYmUoc3Vic2NyaXB0aW9uSGFuZGxlcilcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG9ic2VydmUgbWV0aG9kIHRvIHJldHVybiBvdXIgc3Vic2NyaXB0aW9uIGNoYW5nZXNcbiAgICAgKiBAdHlwZSB7ZnVuY3Rpb24oKj0pOiAqfVxuICAgICAqL1xuICAgIHN0b3JlLm9ic2VydmUgPSBzdWJzY3JpcHRpb25cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhIGxvY2FsIHN0YXRlIG9iamVjdCBpbiB5b294IG9uIHN1YnNjcmlwdGlvbiBjaGFuZ2VcbiAgICAgKi9cbiAgICBzdWJzY3JpcHRpb24oKHN0YXRlKSA9PiBzdG9yZS5zdGF0ZSA9IHN0YXRlKVxuXG4gICAgcmV0dXJuIHN0b3JlXG59XG5cbmV4cG9ydCB7IHN0b3JlIH1cbiIsImltcG9ydCB7IHN0b3JlIH0gZnJvbSAnLi95b294J1xuXG5leHBvcnQgZGVmYXVsdCB7IHN0b3JlIH1cblxuZXhwb3J0IHsgc3RvcmUgfVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Yoox=t():e.Yoox=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,t,r){"use strict";r.r(t),r.d(t,"VueInstall",(function(){return n}));var n={install(e,t){e.prototype.$Yoox=new e({data:()=>({localState:{},localStore:void 0}),methods:{get(e){return this.localStore.get(e)},mix(e,t){return this.localStore.mix(e,t)},set(e,t){return this.localStore.set(e,t)}},computed:{state(){return this.localState}},created(){t.observe(e=>{this.localStore=t,this.localState=e})}})}};t.default=n},function(e,t){e.exports=require("rxjs/operators")},function(e,t){e.exports=require("rxjs")},function(e,t){e.exports=require("pouchdb")},function(e,t,r){"use strict";r.r(t),r.d(t,"store",(function(){return V})),r.d(t,"VueInstall",(function(){return T.VueInstall})),r.d(t,"VueNextInstall",(function(){return A}));var n=r(2),o=r(1),i=r(3),c=r.n(i);function u(){this.code=404,this.message="Registry was not found"}function s(){this.code=409,this.message="Document update conflict"}function a(e){this.message=e}function l(e){return 404===e.status?new u:409===e.status?new s:new a(e.message)}var f=["_id","_rev"];function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function v(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function d(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function O(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){d(i,n,o,c,u,"next",e)}function u(e){d(i,n,o,c,u,"throw",e)}c(void 0)}))}}function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function g(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){j(i,n,o,c,u,"next",e)}function u(e){j(i,n,o,c,u,"throw",e)}c(void 0)}))}}var P=function(){var e,t,r,n=function(){var e,t,r,n,o=new c.a("state",{revs_limit:1}),i="global_state";return{get:(n=O((function*(){try{var e=yield o.get(i),{_id:t,_rev:r}=e,n=v(e,f);return Promise.resolve(n)}catch(e){throw l(e)}})),function(){return n.apply(this,arguments)}),update:(r=O((function*(e){try{var t=yield o.get(i),r=yield o.put(y({_id:t._id,_rev:t._rev},e),{force:!0});return Promise.resolve(r)}catch(e){throw l(e)}})),function(e){return r.apply(this,arguments)}),create:(t=O((function*(e){try{var t=yield o.put(y({_id:i},e));return Promise.resolve(t)}catch(e){throw l(e)}})),function(e){return t.apply(this,arguments)}),remove:(e=O((function*(){try{var e=yield o.get(i,{revs:!0,open_revs:"all"});return yield Promise.all(e.map(e=>{if(e.ok)return o.remove(e.ok._id,e.ok._rev)})),Promise.resolve(!0)}catch(e){throw l(e)}})),function(){return e.apply(this,arguments)})}}();function o(){return(o=g((function*(e){try{return yield n.create(e),Promise.resolve(!0)}catch(t){if(t instanceof s)return yield n.update(e),Promise.resolve(!0)}}))).apply(this,arguments)}return{get:(r=g((function*(){return n.get()})),function(){return r.apply(this,arguments)}),set:(t=g((function*(e){try{return yield n.update(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){m(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e)),Promise.resolve(!0)}catch(t){return t instanceof u?function(e){return o.apply(this,arguments)}(e):Promise.reject(t)}})),function(e){return t.apply(this,arguments)}),clear:(e=g((function*(){try{return yield n.remove(),Promise.resolve(!0)}catch(e){return e instanceof u?(console.warn("Empty Database"),Promise.resolve(!1)):Promise.reject(e)}})),function(){return e.apply(this,arguments)})}}(),w=P;function x(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){D(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function D(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E(e,t){var r={};return Object.keys(e).forEach(n=>{r["".concat(t,"/").concat(n)]=e[n]}),r}var L=function(){var e,t=(e=function*(e){try{var t=yield P.get();return e?!(Object.keys(t).join("")!==e.join(""))&&t:Promise.resolve(t)}catch(e){return!1}},function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){x(i,n,o,c,u,"next",e)}function u(e){x(i,n,o,c,u,"throw",e)}c(void 0)}))});return function(e){return t.apply(this,arguments)}}();var k=function(e){var{store:t,storeAccessors:r,storeObservable:n}=e,o=t,i=r,c=n;return{get:function(e){var t={};if(e.split("").includes("/")){var r=e.split("/")[0]||"";t={state:o.state[r],rootState:o.state}}else t.state=o.state;return i.getterList[e]?i.getterList[e](t):console.warn("[Perse SDK Store] The get method ",e," does not exist.")},mix:function(e,t){if(t)return c.next({type:e,payload:t});c.next({type:e})},set:function(e,r){return i.actionList[e]?i.actionList[e](t,r):console.warn("[Perse SDK Store] The set method ",e," does not exist.")}}};var I=function(e){var t=e;return{mixerHandler:function(e,r){return(t.mixerList[r.type]||(e=>e))(e,r),e},persistStoreState:function(e,t){return w.set(t),t}}};function Y(e,t,r,n,o,i,c){try{var u=e[i](c),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}var V=(e,t)=>{var{persist:r=!1,onLoad:i=(()=>({}))}=t,c=new n.Subject,u=function(e){var t,r,n,o=Object.keys(e),i=o.includes("get")&&o.includes("set")&&o.includes("mix")&&o.includes("state"),c={};if(i)return{getterList:e.get,actionList:e.set,initialState:e.state,mixerList:e.mix};var u=[];return o.forEach(o=>{t=_(_({},t),{},{[o]:_({},e[o].state)}),r=_(_({},r),E(e[o].get,o)),n=_(_({},n),E(e[o].mix,o)),c=_(_({},c),E(e[o].set,o)),u.push(o)}),{initialState:t,getterList:r,mixerList:n,actionList:c,modules:u}}(e),s=I(u),a=r?s.persistStoreState:(e,t)=>t,l=c.pipe(Object(o.startWith)({type:"__INIT__"}),Object(o.scan)(s.mixerHandler,u.initialState),Object(o.shareReplay)(1),Object(o.scan)(a,{}));r&&L(u.modules).then(e=>{e&&(u.initialState=e,i())});var f=k({store:l,storeAccessors:u,storeObservable:c});l.get=f.get,l.mix=f.mix,l.set=f.set;var p=function(){var e,t=(e=function*(e){return yield l.subscribe(e)},function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function c(e){Y(i,n,o,c,u,"next",e)}function u(e){Y(i,n,o,c,u,"throw",e)}c(void 0)}))});return function(e){return t.apply(this,arguments)}}();return l.observe=p,p(e=>l.state=e),l},T=r(0);function M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?M(Object(r),!0).forEach((function(t){N(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var A={install:(e,t)=>{e.mixin({data:()=>({localState:{},__Yoox:void 0}),created(){t.observe(e=>{this.localState=q({},e),this.__Yoox=q({},t)})},computed:{state(){return this.localState}},methods:{get(e){return this.__Yoox.get(e)},mix(e,t){return this.__Yoox.mix(e,t)},set(e,t){return this.__Yoox.set(e,t)}}})}};t.default={store:V,VueInstall:T.VueInstall,VueNextInstall:A}}])}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL1lvb3gvLi9zcmMvcGx1Z2lucy92dWUuanMiLCJ3ZWJwYWNrOi8vWW9veC9leHRlcm5hbCBcInJ4anMvb3BlcmF0b3JzXCIiLCJ3ZWJwYWNrOi8vWW9veC9leHRlcm5hbCBcInJ4anNcIiIsIndlYnBhY2s6Ly9Zb294L2V4dGVybmFsIFwicG91Y2hkYlwiIiwid2VicGFjazovL1lvb3gvLi9zcmMvcGVyc2lzdC9leGNlcHRpb25zL2luZGV4LmpzIiwid2VicGFjazovL1lvb3gvLi9zcmMvcGVyc2lzdC9wZXJzaXN0L2luZGV4LmpzIiwid2VicGFjazovL1lvb3gvLi9zcmMvcGVyc2lzdC9kYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3BlcnNpc3QvbWFpbi5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3V0aWxzL2luZGV4LmpzIiwid2VicGFjazovL1lvb3gvLi9zcmMveW9veC9tZXRob2RzLmpzIiwid2VicGFjazovL1lvb3gvLi9zcmMveW9veC9vYnNlcnZlckhhbmRsZXJzLmpzIiwid2VicGFjazovL1lvb3gvLi9zcmMveW9veC9pbmRleC5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL3BsdWdpbnMvdnVlMy5qcyIsIndlYnBhY2s6Ly9Zb294Ly4vc3JjL21haW4uanMiXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwidGhpcyIsImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJWdWVJbnN0YWxsIiwiaW5zdGFsbCIsIlZ1ZSIsInN0b3JlSW5zdGFuY2UiLCIkWW9veCIsImRhdGEiLCJsb2NhbFN0YXRlIiwibG9jYWxTdG9yZSIsInVuZGVmaW5lZCIsIm1ldGhvZHMiLCJwYXlsb2FkIiwibWl4IiwiYWN0aW9uIiwic2V0IiwiY29tcHV0ZWQiLCJzdGF0ZSIsImNyZWF0ZWQiLCJvYnNlcnZlIiwicmVxdWlyZSIsIk5vdEZvdW5kRXhjZXB0aW9uIiwiY29kZSIsIm1lc3NhZ2UiLCJDb25mbGljdEV4Y2VwdGlvbiIsIlVuZXhwZWN0ZWRFcnJvckV4Y2VwdGlvbiIsImNhdGNoRXJyb3IiLCJlcnJvciIsInN0YXR1cyIsIlBlcnNpc3QiLCJkYiIsIlBvdWNoREIiLCJyZXZzX2xpbWl0IiwiaWQiLCJfaWQiLCJfcmV2IiwiZ2xvYmFsU3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImUiLCJ1cGRhdGUiLCJjYWNoZWREYXRhIiwiZGJSZXNwb25zZSIsInB1dCIsImZvcmNlIiwicmVtb3ZlIiwicmV2cyIsIm9wZW5fcmV2cyIsImFsbCIsIm1hcCIsImRvYyIsIm9rIiwibG9jYWxEYXRhYmFzZSIsInJlamVjdCIsImNsZWFyIiwiY29uc29sZSIsIndhcm4iLCJDcmVhdGVQZXJzaXN0ZW5jZSIsIm1vZHVsYXJpemVGdW5jdGlvbk5hbWVzIiwiYWNjZXNzb3JzIiwibW9kdWxlTmFtZSIsIm1vZHVsYXJpemVkRnVuY3Rpb25zIiwia2V5cyIsImZvckVhY2giLCJmdW5jdGlvbk5hbWUiLCJsb2FkUGVyc2lzdGVkRGF0YSIsInBlcnNpc3RlZERhdGEiLCJqb2luIiwiY3JlYXRlU3RvcmVNZXRob2RzIiwic3RvcmUiLCJzdG9yZUFjY2Vzc29ycyIsInN0b3JlT2JzZXJ2YWJsZSIsIl9zdG9yZSIsIl9zdG9yZUFjY2Vzc29ycyIsIl9zdG9yZU9ic2VydmFibGUiLCJzcGxpdCIsImluY2x1ZGVzIiwicm9vdFN0YXRlIiwiZ2V0dGVyTGlzdCIsIm5leHQiLCJ0eXBlIiwiYWN0aW9uTGlzdCIsImNyZWF0ZU9ic2VydmVySGFuZGxlcnMiLCJtaXhlckhhbmRsZXIiLCJtaXhlckxpc3QiLCJwZXJzaXN0U3RvcmVTdGF0ZSIsImFjY3VtdWxhdG9yIiwicGVyc2lzdCIsIm9uTG9hZCIsIlN1YmplY3QiLCJpbml0aWFsU3RhdGUiLCJtb2R1bGVLZXlzIiwiaXNBY2Nlc3NvcnNPblJvb3QiLCJtb2R1bGVzS2V5cyIsIm1vZHVsZUtleSIsInB1c2giLCJjcmVhdGVTdG9yZUFjY2Vzc29ycyIsIm9ic2VydmVySGFuZGxlcnMiLCJhY2MiLCJwaXBlIiwic3RhcnRXaXRoIiwic2NhbiIsInNoYXJlUmVwbGF5IiwidGhlbiIsInBlcnNpc3RlZFN0YXRlIiwic3RvcmVNZXRob2RzIiwic3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9uSGFuZGxlciIsInN1YnNjcmliZSIsIlZ1ZU5leHRJbnN0YWxsIiwiYXBwIiwibWl4aW4iLCJfX1lvb3giXSwibWFwcGluZ3MiOiJDQUFBLFNBQTJDQSxFQUFNQyxHQUMxQixpQkFBWkMsU0FBMEMsaUJBQVhDLE9BQ3hDQSxPQUFPRCxRQUFVRCxJQUNRLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDOUNELE9BQU8sR0FBSUgsR0FDZSxpQkFBWkMsUUFDZEEsUUFBYyxLQUFJRCxJQUVsQkQsRUFBVyxLQUFJQyxJQVJqQixDQVNHSyxNQUFNLFdBQ1QsTyxZQ1RFLElBQUlDLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVQLFFBR25DLElBQUlDLEVBQVNJLEVBQWlCRSxHQUFZLENBQ3pDQyxFQUFHRCxFQUNIRSxHQUFHLEVBQ0hULFFBQVMsSUFVVixPQU5BVSxFQUFRSCxHQUFVSSxLQUFLVixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTTSxHQUcvREwsRUFBT1EsR0FBSSxFQUdKUixFQUFPRCxRQTBEZixPQXJEQU0sRUFBb0JNLEVBQUlGLEVBR3hCSixFQUFvQk8sRUFBSVIsRUFHeEJDLEVBQW9CUSxFQUFJLFNBQVNkLEVBQVNlLEVBQU1DLEdBQzNDVixFQUFvQlcsRUFBRWpCLEVBQVNlLElBQ2xDRyxPQUFPQyxlQUFlbkIsRUFBU2UsRUFBTSxDQUFFSyxZQUFZLEVBQU1DLElBQUtMLEtBS2hFVixFQUFvQmdCLEVBQUksU0FBU3RCLEdBQ1gsb0JBQVh1QixRQUEwQkEsT0FBT0MsYUFDMUNOLE9BQU9DLGVBQWVuQixFQUFTdUIsT0FBT0MsWUFBYSxDQUFFQyxNQUFPLFdBRTdEUCxPQUFPQyxlQUFlbkIsRUFBUyxhQUFjLENBQUV5QixPQUFPLEtBUXZEbkIsRUFBb0JvQixFQUFJLFNBQVNELEVBQU9FLEdBRXZDLEdBRFUsRUFBUEEsSUFBVUYsRUFBUW5CLEVBQW9CbUIsSUFDL0IsRUFBUEUsRUFBVSxPQUFPRixFQUNwQixHQUFXLEVBQVBFLEdBQThCLGlCQUFWRixHQUFzQkEsR0FBU0EsRUFBTUcsV0FBWSxPQUFPSCxFQUNoRixJQUFJSSxFQUFLWCxPQUFPWSxPQUFPLE1BR3ZCLEdBRkF4QixFQUFvQmdCLEVBQUVPLEdBQ3RCWCxPQUFPQyxlQUFlVSxFQUFJLFVBQVcsQ0FBRVQsWUFBWSxFQUFNSyxNQUFPQSxJQUN0RCxFQUFQRSxHQUE0QixpQkFBVEYsRUFBbUIsSUFBSSxJQUFJTSxLQUFPTixFQUFPbkIsRUFBb0JRLEVBQUVlLEVBQUlFLEVBQUssU0FBU0EsR0FBTyxPQUFPTixFQUFNTSxJQUFRQyxLQUFLLEtBQU1ELElBQzlJLE9BQU9GLEdBSVJ2QixFQUFvQjJCLEVBQUksU0FBU2hDLEdBQ2hDLElBQUllLEVBQVNmLEdBQVVBLEVBQU8yQixXQUM3QixXQUF3QixPQUFPM0IsRUFBZ0IsU0FDL0MsV0FBOEIsT0FBT0EsR0FFdEMsT0FEQUssRUFBb0JRLEVBQUVFLEVBQVEsSUFBS0EsR0FDNUJBLEdBSVJWLEVBQW9CVyxFQUFJLFNBQVNpQixFQUFRQyxHQUFZLE9BQU9qQixPQUFPa0IsVUFBVUMsZUFBZTFCLEtBQUt1QixFQUFRQyxJQUd6RzdCLEVBQW9CZ0MsRUFBSSxHQUlqQmhDLEVBQW9CQSxFQUFvQmlDLEVBQUksRywrQkNsRnJELGtEQUFPLElBQU1DLEVBQWEsQ0FDeEJDLFFBQVNDLEVBQUtDLEdBQ1pELEVBQUlOLFVBQVVRLE1BQVEsSUFBSUYsRUFBSSxDQUU1QkcsS0FBSSxLQUNLLENBQ0xDLFdBQVksR0FDWkMsZ0JBQVlDLElBSWhCQyxRQUFTLENBTVA1QixJQUFJNkIsR0FDRixPQUFPOUMsS0FBSzJDLFdBQVcxQixJQUFJNkIsSUFTN0JDLElBQUlDLEVBQVFGLEdBQ1YsT0FBTzlDLEtBQUsyQyxXQUFXSSxJQUFJQyxFQUFRRixJQVNyQ0csSUFBSUQsRUFBUUYsR0FDVixPQUFPOUMsS0FBSzJDLFdBQVdNLElBQUlELEVBQVFGLEtBSXZDSSxTQUFVLENBS1JDLFFBQ0UsT0FBT25ELEtBQUswQyxhQUloQlUsVUFJRWIsRUFBY2MsUUFBU0YsSUFDckJuRCxLQUFLMkMsV0FBYUosRUFDbEJ2QyxLQUFLMEMsV0FBYVMsU0FRYmYsYSxjQ2xFZnZDLEVBQU9ELFFBQVUwRCxRQUFRLG1CLGNDQXpCekQsRUFBT0QsUUFBVTBELFFBQVEsUyxjQ0F6QnpELEVBQU9ELFFBQVUwRCxRQUFRLFksaU5DQXpCLFNBQVNDLElBQ1B2RCxLQUFLd0QsS0FBTyxJQUNaeEQsS0FBS3lELFFBQVUseUJBR2pCLFNBQVNDLElBQ1AxRCxLQUFLd0QsS0FBTyxJQUNaeEQsS0FBS3lELFFBQVUsMkJBR2pCLFNBQVNFLEVBQTBCRixHQUNqQ3pELEtBQUt5RCxRQUFVQSxFQVNqQixTQUFTRyxFQUFZQyxHQUNuQixPQUFxQixNQUFqQkEsRUFBTUMsT0FDRCxJQUFJUCxFQUdRLE1BQWpCTSxFQUFNQyxPQUNELElBQUlKLEVBR04sSUFBSUMsRUFBeUJFLEVBQU1KLFMsOGdFQzBDNUMsSUFBTU0sRUFwRU4sV0FDRSxJQWtETyxFQW5CRixFQVZBLEVBckJDQyxFQ0RSLFdBQ0UsSUE4RFEsRUFqQkEsRUFyQkEsRUFmSCxFQVRDQSxFQUFLLElBQUlDLElBQVEsUUFBUyxDQUFFQyxXQUFZLElBQ3hDQyxFQUFLLGVBRVgsTUFBTyxDQU1MbEQsS0FBRyxLQUFFLFlBQ0gsSUFDRSxZQUE0QytDLEVBQUcvQyxJQUFJa0QsSUFBN0MsSUFBRUMsRUFBRixLQUFPQyxHQUFiLEVBQXNCQyxFQUF0QixPQUVBLE9BQU9DLFFBQVFDLFFBQVFGLEdBQ3ZCLE1BQU9HLEdBQ1AsTUFBTWIsRUFBV2EsT0FObEIsNENBZUhDLFFBQU0sS0FBRSxVQUFnQjVCLEdBQ3RCLElBQ0UsSUFBTTZCLFFBQW1CWCxFQUFHL0MsSUFBSWtELEdBRzFCUyxRQUFtQlosRUFBR2EsSUFBSCxHQUN2QlQsSUFBS08sRUFBV1AsSUFDaEJDLEtBQU1NLEVBQVdOLE1BQ2R2QixHQUNGLENBQUVnQyxPQUFPLElBRVosT0FBT1AsUUFBUUMsUUFBUUksR0FDdkIsTUFBT0gsR0FDUCxNQUFNYixFQUFXYSxPQWJmLDZDQXFCTi9DLFFBQU0sS0FBRSxVQUFnQm9CLEdBQ3RCLElBQ0UsSUFBTThCLFFBQW1CWixFQUFHYSxJQUFILEdBQ3ZCVCxJQUFLRCxHQUNGckIsSUFHTCxPQUFPeUIsUUFBUUMsUUFBUUksR0FDdkIsTUFBT0gsR0FDUCxNQUFNYixFQUFXYSxPQVRmLDZDQWlCTk0sUUFBTSxLQUFFLFlBQ04sSUFDRSxJQUFNSixRQUFtQlgsRUFBRy9DLElBQUlrRCxFQUFJLENBQ2xDYSxNQUFNLEVBQ05DLFVBQVcsUUFTYixhQU5NVixRQUFRVyxJQUFJUCxFQUFXUSxJQUFLQyxJQUNoQyxHQUFLQSxFQUFJQyxHQUVULE9BQU9yQixFQUFHZSxPQUFPSyxFQUFJQyxHQUFHakIsSUFBS2dCLEVBQUlDLEdBQUdoQixTQUcvQkUsUUFBUUMsU0FBUSxHQUN2QixNQUFPQyxHQUNQLE1BQU1iLEVBQVdhLE9BZmYsNkNEOURHYSxHQURpQix5QkFHNUIsVUFBdUJ4QyxHQUNyQixJQUVFLGFBRE1rQixFQUFHdEMsT0FBT29CLEdBQ1R5QixRQUFRQyxTQUFRLEdBQ3ZCLE1BQU9DLEdBQ1AsR0FBSUEsYUFBYWYsRUFHZixhQUZNTSxFQUFHVSxPQUFPNUIsR0FFVHlCLFFBQVFDLFNBQVEsUUFYRCxzQkFnQjVCLE1BQU8sQ0FNTHZELEtBQUcsS0FBRSxZQUNILE9BQU8rQyxFQUFHL0MsU0FEVCw0Q0FVSGdDLEtBQUcsS0FBRSxVQUFnQkgsR0FDbkIsSUFHRSxhQUZNa0IsRUFBR1UsTywrVkFBSCxJQUFlNUIsSUFFZHlCLFFBQVFDLFNBQVEsR0FDdkIsTUFBT0MsR0FDUCxPQUFJQSxhQUFhbEIsRUF0Q0ssMkNBdUNiN0IsQ0FBT29CLEdBR1R5QixRQUFRZ0IsT0FBT2QsT0FWdkIsNkNBbUJIZSxPQUFLLEtBQUUsWUFDTCxJQUdFLGFBRk14QixFQUFHZSxTQUVGUixRQUFRQyxTQUFRLEdBQ3ZCLE1BQU9DLEdBQ1AsT0FBSUEsYUFBYWxCLEdBQ2ZrQyxRQUFRQyxLQUFLLGtCQUNObkIsUUFBUUMsU0FBUSxJQUdsQkQsUUFBUWdCLE9BQU9kLE9BWHJCLDZDQWlCT2tCLEdFbkVENUIsSSxnekJDSWYsU0FBUzZCLEVBQXlCQyxFQUFXQyxHQUMzQyxJQUFNQyxFQUF1QixHQUs3QixPQUpBakYsT0FBT2tGLEtBQUtILEdBQVdJLFFBQVNDLElBQzlCSCxFQUFxQixHQUFELE9BQUlELEVBQUosWUFBa0JJLElBQWtCTCxFQUFVSyxLQUc3REgsRUFrRFQsSUFBTUksRUFBaUIsZSxFQUFBLEcsRUFBRyxVQUFPN0YsR0FDL0IsSUFDRSxJQUFNOEYsUUFBc0JyQyxFQUFROUMsTUFFcEMsT0FBS1gsSUFJaUJRLE9BQU9rRixLQUFLSSxHQUNDQyxLQUFLLE1BQVMvRixFQUFRK0YsS0FBSyxNQUdyREQsRUFQQTdCLFFBQVFDLFFBQVE0QixHQVd6QixNQUFPM0IsR0FDUCxPQUFPLEksK0tBakJZLHNEQ0hSNkIsTUF0RGYsWUFBeUUsSUFBNUMsTUFBRUMsRUFBRixlQUFTQyxFQUFULGdCQUF5QkMsR0FBbUIsRUFDakVDLEVBQVNILEVBQ1RJLEVBQWtCSCxFQUNsQkksRUFBbUJILEVBRXpCLE1BQU8sQ0FNTHhGLElBQUssU0FBVStCLEdBQ2IsSUFDSXNCLEVBQWMsR0FFbEIsR0FIOEJ0QixFQUFPNkQsTUFBTSxJQUFJQyxTQUFTLEtBRzdCLENBQ3pCLElBQU1oQixFQUFhOUMsRUFBTzZELE1BQU0sS0FBSyxJQUFNLEdBQzNDdkMsRUFBYyxDQUFFbkIsTUFBT3VELEVBQU92RCxNQUFNMkMsR0FBYWlCLFVBQVdMLEVBQU92RCxZQUVuRW1CLEVBQVluQixNQUFRdUQsRUFBT3ZELE1BRzdCLE9BQU93RCxFQUFnQkssV0FBV2hFLEdBQzlCMkQsRUFBZ0JLLFdBQVdoRSxHQUFRc0IsR0FDbkNtQixRQUFRQyxLQUFLLG9DQUFxQzFDLEVBQVEscUJBUWhFRCxJQUFLLFNBQVVDLEVBQVFGLEdBQ3JCLEdBQUlBLEVBQ0YsT0FBTzhELEVBQWlCSyxLQUFLLENBQUVDLEtBQU1sRSxFQUFRRixZQUcvQzhELEVBQWlCSyxLQUFLLENBQUVDLEtBQU1sRSxLQVNoQ0MsSUFBSyxTQUFVRCxFQUFRRixHQUNyQixPQUFPNkQsRUFBZ0JRLFdBQVduRSxHQUM5QjJELEVBQWdCUSxXQUFXbkUsR0FBUXVELEVBQU96RCxHQUMxQzJDLFFBQVFDLEtBQUssb0NBQXFDMUMsRUFBUSx1QkN4QnJEb0UsTUE5QmYsU0FBaUNaLEdBQy9CLElBQU1HLEVBQWtCSCxFQUV4QixNQUFPLENBT0xhLGFBQWMsU0FBVWxFLEVBQU9ILEdBSTdCLE9BRmdCMkQsRUFBZ0JXLFVBQVV0RSxFQUFPa0UsT0FEM0IvRCxJQUFTQSxJQUV2QkEsRUFBT0gsR0FDUkcsR0FTVG9FLGtCQUFtQixTQUFVQyxFQUFhbkcsR0FFeEMsT0FEQTBDLEVBQVFkLElBQUk1QixHQUNMQSxLLHlIQ2ZiLElBQU1rRixFQUFRLENBQUNqRyxFQUFELEtBQXVELElBQTdDLFFBQUVtSCxHQUFVLEVBQVosT0FBbUJDLEVBQVMsTUFBTSxNQUFXLEVBQzNEakIsRUFBa0IsSUFBSWtCLFVBQ3RCbkIsRUhRVixTQUErQmxHLEdBQzdCLElBTUlzSCxFQUFjWixFQUFZTSxFQU54Qk8sRUFBYS9HLE9BQU9rRixLQUFLMUYsR0FDekJ3SCxFQUFvQkQsRUFBV2YsU0FBUyxRQUM1Q2UsRUFBV2YsU0FBUyxRQUNwQmUsRUFBV2YsU0FBUyxRQUNwQmUsRUFBV2YsU0FBUyxTQUVtQkssRUFBYSxHQUV0RCxHQUFJVyxFQUNGLE1BQU8sQ0FDTGQsV0FBWTFHLEVBQVFXLElBQ3BCa0csV0FBWTdHLEVBQVEyQyxJQUNwQjJFLGFBQWN0SCxFQUFRNkMsTUFDdEJtRSxVQUFXaEgsRUFBUXlDLEtBSXZCLElBQU1nRixFQUFjLEdBVXBCLE9BUkFGLEVBQVc1QixRQUFTK0IsSUFDbEJKLEVBQWUsT0FBS0EsR0FBUixJQUFzQixDQUFDSSxHQUFELEtBQWtCMUgsRUFBUTBILEdBQVc3RSxTQUN2RTZELEVBQWEsT0FBS0EsR0FBZXBCLEVBQXdCdEYsRUFBUTBILEdBQVcvRyxJQUFLK0csSUFDakZWLEVBQVksT0FBS0EsR0FBYzFCLEVBQXdCdEYsRUFBUTBILEdBQVdqRixJQUFLaUYsSUFDL0ViLEVBQWEsT0FBS0EsR0FBZXZCLEVBQXdCdEYsRUFBUTBILEdBQVcvRSxJQUFLK0UsSUFDakZELEVBQVlFLEtBQUtELEtBR1osQ0FDTEosZUFDQVosYUFDQU0sWUFDQUgsYUFDQTdHLFFBQVN5SCxHR3pDY0csQ0FBcUI1SCxHQUN0QzZILEVBQW1CZixFQUF1QlosR0FFNUNlLEVBQW9CRSxFQUN0QlUsRUFBaUJaLGtCQUNqQixDQUFDYSxFQUFLL0csSUFBbUJBLEVBTXZCa0YsRUFBUUUsRUFBZ0I0QixLQUM1QkMsb0JBQVUsQ0FBQ3BCLEtBQU0sYUFDakJxQixlQUFLSixFQUFpQmQsYUFBY2IsRUFBZW9CLGNBQ25EWSxzQkFBWSxHQUNaRCxlQUFLaEIsRUFBbUIsS0FJcEJFLEdBQ0Z0QixFQUFrQkssRUFBZWxHLFNBQVNtSSxLQUFNQyxJQUN6Q0EsSUFFTGxDLEVBQWVvQixhQUFlYyxFQUM5QmhCLE9BSUosSUFBTWlCLEVBQWVyQyxFQUFtQixDQUN0Q0MsUUFDQUMsaUJBQ0FDLG9CQUdGRixFQUFNdEYsSUFBTTBILEVBQWExSCxJQUV6QnNGLEVBQU14RCxJQUFNNEYsRUFBYTVGLElBRXpCd0QsRUFBTXRELElBQU0wRixFQUFhMUYsSUFPekIsSUFBTTJGLEVBQVksZSxFQUFBLEcsRUFBRyxVQUFPQyxHQUFQLGFBQXFDdEMsRUFBTXVDLFVBQVVELEksK0tBQXhELHNEQWFsQixPQVBBdEMsRUFBTWxELFFBQVV1RixFQUtoQkEsRUFBY3pGLEdBQVVvRCxFQUFNcEQsTUFBUUEsR0FFL0JvRCxHLDhyQkN4RUosSUFBTXdDLEVBQWlCLENBQzVCMUcsUUFBUyxDQUFDMkcsRUFBS3pHLEtBQ2J5RyxFQUFJQyxNQUFNLENBQ1J4RyxLQUFJLEtBQ0ssQ0FDTEMsV0FBWSxHQUNad0csWUFBUXRHLElBR1pRLFVBSUViLEVBQWNjLFFBQVNGLElBQ3JCbkQsS0FBSzBDLFdBQUwsS0FBdUJTLEdBQ3ZCbkQsS0FBS2tKLE9BQUwsS0FBbUIzRyxNQUd2QlcsU0FBVSxDQUtSQyxRQUNFLE9BQU9uRCxLQUFLMEMsYUFHaEJHLFFBQVMsQ0FNUDVCLElBQUs2QixHQUNILE9BQU85QyxLQUFLa0osT0FBT2pJLElBQUk2QixJQVN6QkMsSUFBS0MsRUFBUUYsR0FDWCxPQUFPOUMsS0FBS2tKLE9BQU9uRyxJQUFJQyxFQUFRRixJQVNqQ0csSUFBS0QsRUFBUUYsR0FDWCxPQUFPOUMsS0FBS2tKLE9BQU9qRyxJQUFJRCxFQUFRRixTQ2xEMUIsV0FBRXlELFFBQU9uRSx3QkFBWTJHIiwiZmlsZSI6Im1haW4uYnVuZGxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiWW9veFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJZb294XCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDQpO1xuIiwiZXhwb3J0IGNvbnN0IFZ1ZUluc3RhbGwgPSB7XG4gIGluc3RhbGwgKFZ1ZSwgc3RvcmVJbnN0YW5jZSkge1xuICAgIFZ1ZS5wcm90b3R5cGUuJFlvb3ggPSBuZXcgVnVlKHtcblxuICAgICAgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsb2NhbFN0YXRlOiB7fSxcbiAgICAgICAgICBsb2NhbFN0b3JlOiB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfSwgLy8gZGF0YVxuXG4gICAgICBtZXRob2RzOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXR1cm5zIHRoZSBnZXQgbWV0aG9kIG9mIGEgZ2l2ZW4gZ2V0IG5hbWVcbiAgICAgICAgICogQHBhcmFtIHBheWxvYWRcbiAgICAgICAgICogQHJldHVybnMgeyp9XG4gICAgICAgICAqL1xuICAgICAgICBnZXQocGF5bG9hZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmUuZ2V0KHBheWxvYWQpXG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIG1peCBtZXRob2Qgb2YgYSBnaXZlbiBuYW1lXG4gICAgICAgICAqIEBwYXJhbSBhY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHBheWxvYWRcbiAgICAgICAgICogQHJldHVybnMgeyp9XG4gICAgICAgICAqL1xuICAgICAgICBtaXgoYWN0aW9uLCBwYXlsb2FkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yZS5taXgoYWN0aW9uLCBwYXlsb2FkKVxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgeW9veCBhY2NvcmRpbmcgdG8gYWN0aW9uIG5hbWUgYW5kIHBheWxvYWRcbiAgICAgICAgICogQHBhcmFtIGFjdGlvblxuICAgICAgICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgICAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgICAgICovXG4gICAgICAgIHNldChhY3Rpb24sIHBheWxvYWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JlLnNldChhY3Rpb24sIHBheWxvYWQpXG4gICAgICAgIH1cbiAgICAgIH0sIC8vIG1ldGhvZHNcblxuICAgICAgY29tcHV0ZWQ6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgbG9jYWwgc3RhdGUgd2l0aCB2dWUgcmVhY3Rpdml0eVxuICAgICAgICAgKiBAcmV0dXJucyB7e318Kn1cbiAgICAgICAgICovXG4gICAgICAgIHN0YXRlKCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsU3RhdGVcbiAgICAgICAgfVxuICAgICAgfSwgLy8gY29tcHV0ZWRcblxuICAgICAgY3JlYXRlZCgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9ic2VydmUgdG8gdXBkYXRlIHlvb3ggYW5kIHN0YXRlIG9uIGNoYW5nZXNcbiAgICAgICAgICovXG4gICAgICAgIHN0b3JlSW5zdGFuY2Uub2JzZXJ2ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLmxvY2FsU3RvcmUgPSBzdG9yZUluc3RhbmNlXG4gICAgICAgICAgdGhpcy5sb2NhbFN0YXRlID0gc3RhdGVcbiAgICAgICAgfSlcbiAgICAgIH0sIC8vIGNyZWF0ZWRcblxuICAgIH0pIC8vIFZ1ZS5wcm90b3R5cGUuJFlvb3hcbiAgfSwgLy8gaW5zdGFsbCAoKVxufSAvLyBleHBvcnQgY29uc3QgVnVlSW5zdGFsbFxuXG5leHBvcnQgZGVmYXVsdCBWdWVJbnN0YWxsXG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyeGpzL29wZXJhdG9yc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyeGpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInBvdWNoZGJcIik7IiwiZnVuY3Rpb24gTm90Rm91bmRFeGNlcHRpb24gKCkge1xuICB0aGlzLmNvZGUgPSA0MDRcbiAgdGhpcy5tZXNzYWdlID0gJ1JlZ2lzdHJ5IHdhcyBub3QgZm91bmQnXG59XG5cbmZ1bmN0aW9uIENvbmZsaWN0RXhjZXB0aW9uICgpIHtcbiAgdGhpcy5jb2RlID0gNDA5XG4gIHRoaXMubWVzc2FnZSA9ICdEb2N1bWVudCB1cGRhdGUgY29uZmxpY3QnXG59XG5cbmZ1bmN0aW9uIFVuZXhwZWN0ZWRFcnJvckV4Y2VwdGlvbiAobWVzc2FnZSkge1xuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlXG59XG5cbi8qKlxuICogQGZ1bmN0aW9uIGNhdGNoRXJyb3JcbiAqIEBkZXNjcmlwdGlvbiBIYW5kbGUgZXJyb3IgYW5kIHRocm93IGN1c3RvbSBlcnJvciBleGNlcHRpb24uXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICogQHJldHVybnMge1VuZXhwZWN0ZWRFcnJvckV4Y2VwdGlvbnxOb3RGb3VuZEV4Y2VwdGlvbnxDb25mbGljdEV4Y2VwdGlvbn1cbiAqL1xuZnVuY3Rpb24gY2F0Y2hFcnJvciAoZXJyb3IpIHtcbiAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgcmV0dXJuIG5ldyBOb3RGb3VuZEV4Y2VwdGlvbigpXG4gIH1cblxuICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDkpIHtcbiAgICByZXR1cm4gbmV3IENvbmZsaWN0RXhjZXB0aW9uKClcbiAgfVxuXG4gIHJldHVybiBuZXcgVW5leHBlY3RlZEVycm9yRXhjZXB0aW9uKGVycm9yLm1lc3NhZ2UpXG59XG5cbmV4cG9ydCB7XG4gIE5vdEZvdW5kRXhjZXB0aW9uLFxuICBVbmV4cGVjdGVkRXJyb3JFeGNlcHRpb24sXG4gIENvbmZsaWN0RXhjZXB0aW9uLFxuICBjYXRjaEVycm9yXG59XG4iLCJpbXBvcnQgeyBsb2NhbERhdGFiYXNlIH0gZnJvbSBcIi4uL2RiXCI7XG5pbXBvcnQge0NvbmZsaWN0RXhjZXB0aW9uLCBOb3RGb3VuZEV4Y2VwdGlvbn0gZnJvbSBcIi4uL2V4Y2VwdGlvbnNcIjtcblxuZnVuY3Rpb24gQ3JlYXRlUGVyc2lzdGVuY2UgKCkge1xuICBjb25zdCBkYiA9IGxvY2FsRGF0YWJhc2UoKVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZSAocGF5bG9hZCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBkYi5jcmVhdGUocGF5bG9hZClcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIENvbmZsaWN0RXhjZXB0aW9uKSB7XG4gICAgICAgIGF3YWl0IGRiLnVwZGF0ZShwYXlsb2FkKVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICByZXR1cm4ge1xuICAgIC8qKlxuICAgICAqIEBtZXRob2QgZ2V0XG4gICAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlIHBlcnNpc3RlZCB2YWx1ZXNcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxQaWNrPCosIG5ldmVyPnx1bmRlZmluZWQ+fVxuICAgICAqL1xuICAgIGdldDogYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGRiLmdldCgpXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBtZXRob2Qgc2V0XG4gICAgICogQGRlc2NyaXB0aW9uIFNldCB2YWx1ZSB0byBiZSBwZXJzaXN0ZWQsIGlmIG5vIHZhbHVlIGhhcyBiZWVuIHN0b3JlZCwgaXQgY3JlYXRlcyB0aGUgcGF5bG9hZC5cbiAgICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgICAqL1xuICAgIHNldDogYXN5bmMgZnVuY3Rpb24gKHBheWxvYWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGRiLnVwZGF0ZSh7IC4uLnBheWxvYWQgfSlcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFeGNlcHRpb24pIHtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlKHBheWxvYWQpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSlcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQG1ldGhvZCBjbGVhclxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGVhciBwZXJzaXN0ZWQgdmFsdWVcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn1cbiAgICAgKi9cbiAgICBjbGVhcjogYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGIucmVtb3ZlKClcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFeGNlcHRpb24pIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0VtcHR5IERhdGFiYXNlJylcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGUpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IFBlcnNpc3QgPSBDcmVhdGVQZXJzaXN0ZW5jZSgpXG5cbmV4cG9ydCB7IFBlcnNpc3QgfVxuIiwiaW1wb3J0IFBvdWNoREIgZnJvbSAncG91Y2hkYidcbmltcG9ydCB7IGNhdGNoRXJyb3IsIENvbmZsaWN0RXhjZXB0aW9uIH0gZnJvbSBcIi4uL2V4Y2VwdGlvbnNcIjtcblxuZnVuY3Rpb24gbG9jYWxEYXRhYmFzZSAoKSB7XG4gIGNvbnN0IGRiID0gbmV3IFBvdWNoREIoJ3N0YXRlJywgeyByZXZzX2xpbWl0OiAxIH0pXG4gIGNvbnN0IGlkID0gJ2dsb2JhbF9zdGF0ZSdcblxuICByZXR1cm4ge1xuICAgIC8qKlxuICAgICAqIEBtZXRob2QgZ2V0XG4gICAgICogQGRlc2NyaXB0aW9uIFByb3h5IFBvdWNoREIgZ2V0IHRvIGFic3RyYWN0IGxpYiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBHZXQgcGVyc2lzdGVkIHZhbHVlXG4gICAgICogQHJldHVybnMge1Byb21pc2U8UGljazwqLCBuZXZlcj4+fVxuICAgICAqL1xuICAgIGdldDogYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBfaWQsIF9yZXYsIC4uLmdsb2JhbFN0YXRlIH0gPSBhd2FpdCBkYi5nZXQoaWQpXG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShnbG9iYWxTdGF0ZSlcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgY2F0Y2hFcnJvcihlKVxuICAgICAgfVxuICAgIH0sXG4gICAgLyoqXG4gICAgICogQG1ldGhvZCB1cGRhdGVcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJveHkgUG91Y2hEQiB1cGRhdGUgdG8gYWJzdHJhY3QgbGliIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIFVwZGF0ZSBwZXJzaXN0ZWQgdmFsdWVcbiAgICAgKiBAcGFyYW0ge2FueX0gcGF5bG9hZFxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPCo+fVxuICAgICAqL1xuICAgIHVwZGF0ZTogYXN5bmMgZnVuY3Rpb24gKHBheWxvYWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNhY2hlZERhdGEgPSBhd2FpdCBkYi5nZXQoaWQpXG5cbiAgICAgICAgLy8gRm9yY2UgdHJ1ZSBpZ25vcmVzIF9yZXZcbiAgICAgICAgY29uc3QgZGJSZXNwb25zZSA9IGF3YWl0IGRiLnB1dCh7XG4gICAgICAgICAgX2lkOiBjYWNoZWREYXRhLl9pZCxcbiAgICAgICAgICBfcmV2OiBjYWNoZWREYXRhLl9yZXYsXG4gICAgICAgICAgLi4ucGF5bG9hZFxuICAgICAgICB9LCB7IGZvcmNlOiB0cnVlIH0pXG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYlJlc3BvbnNlKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBjYXRjaEVycm9yKGUpXG4gICAgICB9XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJveHkgUG91Y2hEQiBjcmVhdGUgdG8gYWJzdHJhY3QgbGliIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIENyZWF0ZSByZWdpc3RyeSBvbiBwZXJzaXN0IGRhdGFiYXNlXG4gICAgICogQHBhcmFtIHthbnl9IHBheWxvYWRcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTwqPn1cbiAgICAgKi9cbiAgICBjcmVhdGU6IGFzeW5jIGZ1bmN0aW9uIChwYXlsb2FkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYlJlc3BvbnNlID0gYXdhaXQgZGIucHV0KHtcbiAgICAgICAgICBfaWQ6IGlkLFxuICAgICAgICAgIC4uLnBheWxvYWRcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRiUmVzcG9uc2UpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IGNhdGNoRXJyb3IoZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8qKlxuICAgICAqIEBtZXRob2QgcmVtb3ZlXG4gICAgICogQGRlc2NyaXB0aW9uIFByb3h5IFBvdWNoREIgcmVtb3ZlIHRvIGFic3RyYWN0IGxpYiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBSZW1vdmUgc3RvcmVkIGRhdGEgd2l0aCBhbGwgaXRzIHJldmlzaW9ucy5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTwqPn1cbiAgICAgKi9cbiAgICByZW1vdmU6IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNhY2hlZERhdGEgPSBhd2FpdCBkYi5nZXQoaWQsIHtcbiAgICAgICAgICByZXZzOiB0cnVlLFxuICAgICAgICAgIG9wZW5fcmV2czogJ2FsbCdcbiAgICAgICAgfSlcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChjYWNoZWREYXRhLm1hcCgoZG9jKSA9PiB7XG4gICAgICAgICAgaWYgKCFkb2Mub2spIHJldHVyblxuXG4gICAgICAgICAgcmV0dXJuIGRiLnJlbW92ZShkb2Mub2suX2lkLCBkb2Mub2suX3JldilcbiAgICAgICAgfSkpXG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBjYXRjaEVycm9yKGUpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IGxvY2FsRGF0YWJhc2UgfVxuIiwiaW1wb3J0IHsgUGVyc2lzdCB9IGZyb20gXCIuL3BlcnNpc3RcIjtcblxuZXhwb3J0IHsgUGVyc2lzdCB9XG5cbmV4cG9ydCBkZWZhdWx0IFBlcnNpc3RcbiIsImltcG9ydCB7IFBlcnNpc3QgfSBmcm9tICcuLi9wZXJzaXN0L21haW4nXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgb2JqZWN0IHdpdGggZG9tYWluIG5hbWUgJy8nIGZ1bmN0aW9uJ3MgbmFtZVxuICogQHBhcmFtIHtPYmplY3R9IGFjY2Vzc29ycyBPYmplY3Qgd2l0aCBnZXR0ZXJzLCBzZXR0ZXJzIG9yIG1peGVyc1xuICogQHBhcmFtIHtzdHJpbmd9IG1vZHVsZU5hbWUgTW9kdWxlIG5hbWUuXG4gKiBAcmV0dXJucyBPYmplY3RcbiAqL1xuXG5mdW5jdGlvbiBtb2R1bGFyaXplRnVuY3Rpb25OYW1lcyAoYWNjZXNzb3JzLCBtb2R1bGVOYW1lKSB7XG4gIGNvbnN0IG1vZHVsYXJpemVkRnVuY3Rpb25zID0ge31cbiAgT2JqZWN0LmtleXMoYWNjZXNzb3JzKS5mb3JFYWNoKChmdW5jdGlvbk5hbWUpID0+IHtcbiAgICBtb2R1bGFyaXplZEZ1bmN0aW9uc1tgJHttb2R1bGVOYW1lfS8ke2Z1bmN0aW9uTmFtZX1gXSA9IGFjY2Vzc29yc1tmdW5jdGlvbk5hbWVdXG4gIH0pXG5cbiAgcmV0dXJuIG1vZHVsYXJpemVkRnVuY3Rpb25zXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENyZWF0ZSBzdG9yZSBhY2Nlc3NvcnNcbiAqIEBwYXJhbSB7T2JqZWN0fSBtb2R1bGVzXG4gKiBAcmV0dXJucyB7e21peGVyTGlzdDogKiwgZ2V0dGVyTGlzdCwgaW5pdGlhbFN0YXRlLCBhY3Rpb25MaXN0fXx7bWl4ZXJMaXN0LCBnZXR0ZXJMaXN0LCBpbml0aWFsU3RhdGUsIGFjdGlvbkxpc3Q6IHt9LCBtb2R1bGVzfX1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RvcmVBY2Nlc3NvcnMgKG1vZHVsZXMpIHtcbiAgY29uc3QgbW9kdWxlS2V5cyA9IE9iamVjdC5rZXlzKG1vZHVsZXMpXG4gIGNvbnN0IGlzQWNjZXNzb3JzT25Sb290ID0gbW9kdWxlS2V5cy5pbmNsdWRlcygnZ2V0JykgJiZcbiAgICBtb2R1bGVLZXlzLmluY2x1ZGVzKCdzZXQnKSAmJlxuICAgIG1vZHVsZUtleXMuaW5jbHVkZXMoJ21peCcpICYmXG4gICAgbW9kdWxlS2V5cy5pbmNsdWRlcygnc3RhdGUnKVxuXG4gIGxldCBpbml0aWFsU3RhdGUsIGdldHRlckxpc3QsIG1peGVyTGlzdCwgYWN0aW9uTGlzdCA9IHt9XG5cbiAgaWYgKGlzQWNjZXNzb3JzT25Sb290KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldHRlckxpc3Q6IG1vZHVsZXMuZ2V0LFxuICAgICAgYWN0aW9uTGlzdDogbW9kdWxlcy5zZXQsXG4gICAgICBpbml0aWFsU3RhdGU6IG1vZHVsZXMuc3RhdGUsXG4gICAgICBtaXhlckxpc3Q6IG1vZHVsZXMubWl4XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbW9kdWxlc0tleXMgPSBbXVxuICAvLyBQb3B1bGF0ZSBtaXhlckxpc3QgYW5kIGluaXRpYWxTdGF0ZSBvYmplY3QgYWNjb3JkaW5nIHRvIG1vZHVsZXNcbiAgbW9kdWxlS2V5cy5mb3JFYWNoKChtb2R1bGVLZXkpID0+IHtcbiAgICBpbml0aWFsU3RhdGUgPSB7IC4uLmluaXRpYWxTdGF0ZSwgW21vZHVsZUtleV06IHsgLi4ubW9kdWxlc1ttb2R1bGVLZXldLnN0YXRlIH0gfVxuICAgIGdldHRlckxpc3QgPSB7IC4uLmdldHRlckxpc3QsIC4uLm1vZHVsYXJpemVGdW5jdGlvbk5hbWVzKG1vZHVsZXNbbW9kdWxlS2V5XS5nZXQsIG1vZHVsZUtleSkgfVxuICAgIG1peGVyTGlzdCA9IHsgLi4ubWl4ZXJMaXN0LCAuLi5tb2R1bGFyaXplRnVuY3Rpb25OYW1lcyhtb2R1bGVzW21vZHVsZUtleV0ubWl4LCBtb2R1bGVLZXkpIH1cbiAgICBhY3Rpb25MaXN0ID0geyAuLi5hY3Rpb25MaXN0LCAuLi5tb2R1bGFyaXplRnVuY3Rpb25OYW1lcyhtb2R1bGVzW21vZHVsZUtleV0uc2V0LCBtb2R1bGVLZXkpIH1cbiAgICBtb2R1bGVzS2V5cy5wdXNoKG1vZHVsZUtleSlcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGluaXRpYWxTdGF0ZSxcbiAgICBnZXR0ZXJMaXN0LFxuICAgIG1peGVyTGlzdCxcbiAgICBhY3Rpb25MaXN0LFxuICAgIG1vZHVsZXM6IG1vZHVsZXNLZXlzXG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEBwYXJhbSBtb2R1bGVzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFufE9iamVjdD59XG4gKi9cbmNvbnN0IGxvYWRQZXJzaXN0ZWREYXRhID0gYXN5bmMgKG1vZHVsZXMpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwZXJzaXN0ZWREYXRhID0gYXdhaXQgUGVyc2lzdC5nZXQoKVxuXG4gICAgaWYgKCFtb2R1bGVzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHBlcnNpc3RlZERhdGEpXG4gICAgfVxuXG4gICAgY29uc3QgcGVyc2lzdGVkS2V5cyA9IE9iamVjdC5rZXlzKHBlcnNpc3RlZERhdGEpXG4gICAgY29uc3QgaXNTYW1lTW9kdWxlID0gcGVyc2lzdGVkS2V5cy5qb2luKCcnKSA9PT0gIG1vZHVsZXMuam9pbignJylcblxuICAgIGlmIChpc1NhbWVNb2R1bGUpIHtcbiAgICAgIHJldHVybiBwZXJzaXN0ZWREYXRhXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5leHBvcnQge1xuICBjcmVhdGVTdG9yZUFjY2Vzc29ycyxcbiAgbW9kdWxhcml6ZUZ1bmN0aW9uTmFtZXMsXG4gIGxvYWRQZXJzaXN0ZWREYXRhXG59XG4iLCIvKipcbiAqIEBkZXNjcmlwdGlvbiBSZWNlaXZlIFN0b3JlIGFzIHBhcmFtZXRlciBhbmQgY3JlYXRlIHN0b3JlIG1ldGhvZHMgdG8gYmUgdXNlZCBieSB1c2VyLlxuICogQHBhcmFtIHtPYmplY3R9IHN0b3JlIC0gUmF3IHN0YXRlIHZhbHVlc1xuICogQHBhcmFtIHtPYmplY3R9IHN0b3JlQWNjZXNzb3JzIC0gQWNjZXNzb3JzIG1ldGhvZHMgcGFzc2VkIGFzIHBhcmFtcyB0byBjcmVhdGVTdG9yZSBtZXRob2RcbiAqIEBwYXJhbSB7T2JzZXJ2YWJsZX0gc3RvcmVPYnNlcnZhYmxlIC0gT2JzZXJ2YWJsZSB0aGF0IHVwZGF0ZXMgc3RvcmUgc3RhdGVcbiAqIEByZXR1cm5zIHt7c2V0OiAoZnVuY3Rpb24oKj0sICo9KTogKnx2b2lkKSwgZ2V0OiAoZnVuY3Rpb24oKj0pOiAqfHZvaWQpLCBtaXg6ICgoZnVuY3Rpb24oKj0sICo9KTogKCp8dW5kZWZpbmVkKSl8Kil9fVxuICovXG5mdW5jdGlvbiBjcmVhdGVTdG9yZU1ldGhvZHMgKHsgc3RvcmUsIHN0b3JlQWNjZXNzb3JzLCBzdG9yZU9ic2VydmFibGUgfSkge1xuICBjb25zdCBfc3RvcmUgPSBzdG9yZVxuICBjb25zdCBfc3RvcmVBY2Nlc3NvcnMgPSBzdG9yZUFjY2Vzc29yc1xuICBjb25zdCBfc3RvcmVPYnNlcnZhYmxlID0gc3RvcmVPYnNlcnZhYmxlXG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBnZXQgZXZlbnQgYXMgYWxpYXMgc2hvcnRoYW5kIGZvciByZXR1cm5pbmcgZ2V0IGZ1bmN0aW9ucyBmcm9tIG1vZHVsZXNcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgZ2V0OiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICBjb25zdCBpc01vZHVsYXJpemVkRnVuY3Rpb24gPSBhY3Rpb24uc3BsaXQoJycpLmluY2x1ZGVzKCcvJylcbiAgICAgIGxldCBnbG9iYWxTdGF0ZSA9IHt9XG5cbiAgICAgIGlmIChpc01vZHVsYXJpemVkRnVuY3Rpb24pIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IGFjdGlvbi5zcGxpdCgnLycpWzBdIHx8ICcnXG4gICAgICAgIGdsb2JhbFN0YXRlID0geyBzdGF0ZTogX3N0b3JlLnN0YXRlW21vZHVsZU5hbWVdLCByb290U3RhdGU6IF9zdG9yZS5zdGF0ZSB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnbG9iYWxTdGF0ZS5zdGF0ZSA9IF9zdG9yZS5zdGF0ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3N0b3JlQWNjZXNzb3JzLmdldHRlckxpc3RbYWN0aW9uXVxuICAgICAgICA/IF9zdG9yZUFjY2Vzc29ycy5nZXR0ZXJMaXN0W2FjdGlvbl0oZ2xvYmFsU3RhdGUpXG4gICAgICAgIDogY29uc29sZS53YXJuKCdbUGVyc2UgU0RLIFN0b3JlXSBUaGUgZ2V0IG1ldGhvZCAnLCBhY3Rpb24sICcgZG9lcyBub3QgZXhpc3QuJylcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbWl4IGV2ZW50IGFzIGFsaWFzIHNob3J0aGFuZCBmb3IgbmV4dC9kaXNwYXRjaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpb25cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcGF5bG9hZFxuICAgICAqL1xuICAgIG1peDogZnVuY3Rpb24gKGFjdGlvbiwgcGF5bG9hZCkge1xuICAgICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgcmV0dXJuIF9zdG9yZU9ic2VydmFibGUubmV4dCh7IHR5cGU6IGFjdGlvbiwgcGF5bG9hZCB9KVxuICAgICAgfVxuXG4gICAgICBfc3RvcmVPYnNlcnZhYmxlLm5leHQoeyB0eXBlOiBhY3Rpb24gfSlcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgc2V0IGFjdGlvbiBldmVudFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpb25cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcGF5bG9hZFxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIHNldDogZnVuY3Rpb24gKGFjdGlvbiwgcGF5bG9hZCkge1xuICAgICAgcmV0dXJuIF9zdG9yZUFjY2Vzc29ycy5hY3Rpb25MaXN0W2FjdGlvbl1cbiAgICAgICAgPyBfc3RvcmVBY2Nlc3NvcnMuYWN0aW9uTGlzdFthY3Rpb25dKHN0b3JlLCBwYXlsb2FkKVxuICAgICAgICA6IGNvbnNvbGUud2FybignW1BlcnNlIFNESyBTdG9yZV0gVGhlIHNldCBtZXRob2QgJywgYWN0aW9uLCAnIGRvZXMgbm90IGV4aXN0LicpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVN0b3JlTWV0aG9kc1xuIiwiaW1wb3J0IFBlcnNpc3QgZnJvbSBcIi4uL3BlcnNpc3QvbWFpblwiO1xuXG5mdW5jdGlvbiBjcmVhdGVPYnNlcnZlckhhbmRsZXJzIChzdG9yZUFjY2Vzc29ycykge1xuICBjb25zdCBfc3RvcmVBY2Nlc3NvcnMgPSBzdG9yZUFjY2Vzc29yc1xuXG4gIHJldHVybiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgaGFuZGxlciB0byBleGVjdXRlIG1peGVyXG4gICAgICogQHBhcmFtIHtPYnNlcnZhYmxlfSBzdGF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpb25cbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBtaXhlckhhbmRsZXI6IGZ1bmN0aW9uIChzdGF0ZSwgYWN0aW9uKSB7XG4gICAgICBjb25zdCBERUZBVUxUX1NUQVRFID0gc3RhdGUgPT4gc3RhdGVcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSBfc3RvcmVBY2Nlc3NvcnMubWl4ZXJMaXN0W2FjdGlvbi50eXBlXSB8fCBERUZBVUxUX1NUQVRFXG4gICAgICBoYW5kbGVyKHN0YXRlLCBhY3Rpb24pXG4gICAgICByZXR1cm4gc3RhdGVcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUGVyc2lzdCB2YWx1ZSBpbnNpZGUgc3RvcmVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gYWNjdW11bGF0b3JcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICBwZXJzaXN0U3RvcmVTdGF0ZTogZnVuY3Rpb24gKGFjY3VtdWxhdG9yLCB2YWx1ZSkge1xuICAgICAgUGVyc2lzdC5zZXQodmFsdWUpXG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlT2JzZXJ2ZXJIYW5kbGVyc1xuIiwiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzY2FuLCBzdGFydFdpdGgsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBjcmVhdGVTdG9yZUFjY2Vzc29ycywgbG9hZFBlcnNpc3RlZERhdGEgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCBjcmVhdGVTdG9yZU1ldGhvZHMgZnJvbSAnLi9tZXRob2RzJ1xuaW1wb3J0IGNyZWF0ZU9ic2VydmVySGFuZGxlcnMgZnJvbSAnLi9vYnNlcnZlckhhbmRsZXJzJ1xuXG4vKipcbiAqIENyZWF0ZSBhIHJ4anMgcmVkdXgtbGlrZSB5b294XG4gKiBAcGFyYW0ge09iamVjdH0gbW9kdWxlc1xuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZ1xuICogQHJldHVybnMge09ic2VydmFibGV9XG4gKi9cbmNvbnN0IHN0b3JlID0gKG1vZHVsZXMsIHsgcGVyc2lzdCA9IGZhbHNlLCBvbkxvYWQgPSAoKSA9PiAoe30pIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZU9ic2VydmFibGUgPSBuZXcgU3ViamVjdCgpXG4gICAgY29uc3Qgc3RvcmVBY2Nlc3NvcnMgPSBjcmVhdGVTdG9yZUFjY2Vzc29ycyhtb2R1bGVzKVxuICAgIGNvbnN0IG9ic2VydmVySGFuZGxlcnMgPSBjcmVhdGVPYnNlcnZlckhhbmRsZXJzKHN0b3JlQWNjZXNzb3JzKVxuXG4gIGNvbnN0IHBlcnNpc3RTdG9yZVN0YXRlID0gcGVyc2lzdFxuICAgID8gb2JzZXJ2ZXJIYW5kbGVycy5wZXJzaXN0U3RvcmVTdGF0ZVxuICAgIDogKGFjYywgdmFsdWUpID0+IHsgcmV0dXJuIHZhbHVlIH1cblxuICAvKipcbiAgICogQ3JlYXRpbmcgYSB5b294IGluc3RhbmNlIHdpdGggcGlwZSByeGpzIG1ldGhvZHNcbiAgICogQHR5cGUge09ic2VydmFibGV9XG4gICAqL1xuICBjb25zdCBzdG9yZSA9IHN0b3JlT2JzZXJ2YWJsZS5waXBlKFxuICAgIHN0YXJ0V2l0aCh7dHlwZTogJ19fSU5JVF9fJ30pLFxuICAgIHNjYW4ob2JzZXJ2ZXJIYW5kbGVycy5taXhlckhhbmRsZXIsIHN0b3JlQWNjZXNzb3JzLmluaXRpYWxTdGF0ZSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgc2NhbihwZXJzaXN0U3RvcmVTdGF0ZSwge30pXG4gIClcblxuICAgIC8vIExvYWQgcGVyc2lzdGVkIGRhdGFcbiAgICBpZiAocGVyc2lzdCkge1xuICAgICAgbG9hZFBlcnNpc3RlZERhdGEoc3RvcmVBY2Nlc3NvcnMubW9kdWxlcykudGhlbigocGVyc2lzdGVkU3RhdGUpID0+IHtcbiAgICAgICAgaWYgKCFwZXJzaXN0ZWRTdGF0ZSkgcmV0dXJuXG5cbiAgICAgICAgc3RvcmVBY2Nlc3NvcnMuaW5pdGlhbFN0YXRlID0gcGVyc2lzdGVkU3RhdGVcbiAgICAgICAgb25Mb2FkKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVNZXRob2RzID0gY3JlYXRlU3RvcmVNZXRob2RzKHtcbiAgICAgIHN0b3JlLFxuICAgICAgc3RvcmVBY2Nlc3NvcnMsXG4gICAgICBzdG9yZU9ic2VydmFibGVcbiAgICB9KVxuXG4gICAgc3RvcmUuZ2V0ID0gc3RvcmVNZXRob2RzLmdldFxuXG4gICAgc3RvcmUubWl4ID0gc3RvcmVNZXRob2RzLm1peFxuXG4gICAgc3RvcmUuc2V0ID0gc3RvcmVNZXRob2RzLnNldFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgc3Vic2NyaXB0aW9uIHN0cmVhbSBjb25zdCB0byBiZSByZXVzZWRcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdWJzY3JpcHRpb25IYW5kbGVyXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gYXN5bmMgKHN1YnNjcmlwdGlvbkhhbmRsZXIpID0+IGF3YWl0IHN0b3JlLnN1YnNjcmliZShzdWJzY3JpcHRpb25IYW5kbGVyKVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgb2JzZXJ2ZSBtZXRob2QgdG8gcmV0dXJuIG91ciBzdWJzY3JpcHRpb24gY2hhbmdlc1xuICAgICAqIEB0eXBlIHtmdW5jdGlvbigqPSk6ICp9XG4gICAgICovXG4gICAgc3RvcmUub2JzZXJ2ZSA9IHN1YnNjcmlwdGlvblxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGEgbG9jYWwgc3RhdGUgb2JqZWN0IGluIHlvb3ggb24gc3Vic2NyaXB0aW9uIGNoYW5nZVxuICAgICAqL1xuICAgIHN1YnNjcmlwdGlvbigoc3RhdGUpID0+IHN0b3JlLnN0YXRlID0gc3RhdGUpXG5cbiAgICByZXR1cm4gc3RvcmVcbn1cblxuZXhwb3J0IHsgc3RvcmUgfVxuIiwiZXhwb3J0IGNvbnN0IFZ1ZU5leHRJbnN0YWxsID0ge1xuICBpbnN0YWxsOiAoYXBwLCBzdG9yZUluc3RhbmNlKSA9PiB7XG4gICAgYXBwLm1peGluKHtcbiAgICAgIGRhdGEgKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxvY2FsU3RhdGU6IHt9LFxuICAgICAgICAgIF9fWW9veDogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjcmVhdGVkICgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9ic2VydmUgdG8gdXBkYXRlIHlvb3ggYW5kIHN0YXRlIG9uIGNoYW5nZXNcbiAgICAgICAgICovXG4gICAgICAgIHN0b3JlSW5zdGFuY2Uub2JzZXJ2ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLmxvY2FsU3RhdGUgPSB7IC4uLnN0YXRlIH1cbiAgICAgICAgICB0aGlzLl9fWW9veCA9IHsgLi4uc3RvcmVJbnN0YW5jZSB9XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgY29tcHV0ZWQ6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgbG9jYWwgc3RhdGUgd2l0aCB2dWUgcmVhY3Rpdml0eVxuICAgICAgICAgKiBAcmV0dXJucyB7e318Kn1cbiAgICAgICAgICovXG4gICAgICAgIHN0YXRlICgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbFN0YXRlXG4gICAgICAgIH1cbiAgICAgIH0sIC8vIGNvbXB1dGVkXG4gICAgICBtZXRob2RzOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXR1cm5zIHRoZSBnZXQgbWV0aG9kIG9mIGEgZ2l2ZW4gZ2V0IG5hbWVcbiAgICAgICAgICogQHBhcmFtIHBheWxvYWRcbiAgICAgICAgICogQHJldHVybnMgeyp9XG4gICAgICAgICAqL1xuICAgICAgICBnZXQgKHBheWxvYWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fX1lvb3guZ2V0KHBheWxvYWQpXG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIG1peCBtZXRob2Qgb2YgYSBnaXZlbiBuYW1lXG4gICAgICAgICAqIEBwYXJhbSBhY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHBheWxvYWRcbiAgICAgICAgICogQHJldHVybnMgeyp9XG4gICAgICAgICAqL1xuICAgICAgICBtaXggKGFjdGlvbiwgcGF5bG9hZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9fWW9veC5taXgoYWN0aW9uLCBwYXlsb2FkKVxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgeW9veCBhY2NvcmRpbmcgdG8gYWN0aW9uIG5hbWUgYW5kIHBheWxvYWRcbiAgICAgICAgICogQHBhcmFtIGFjdGlvblxuICAgICAgICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgICAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgICAgICovXG4gICAgICAgIHNldCAoYWN0aW9uLCBwYXlsb2FkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX19Zb294LnNldChhY3Rpb24sIHBheWxvYWQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZ1ZU5leHRJbnN0YWxsXG4iLCJpbXBvcnQgeyBzdG9yZSB9IGZyb20gJy4veW9veCdcbmltcG9ydCB7IFZ1ZUluc3RhbGwgfSBmcm9tIFwiLi9wbHVnaW5zL3Z1ZVwiXG5pbXBvcnQgeyBWdWVOZXh0SW5zdGFsbCB9IGZyb20gJy4vcGx1Z2lucy92dWUzJ1xuXG5leHBvcnQgZGVmYXVsdCB7IHN0b3JlLCBWdWVJbnN0YWxsLCBWdWVOZXh0SW5zdGFsbCB9XG5cbmV4cG9ydCB7IHN0b3JlLCBWdWVJbnN0YWxsLCBWdWVOZXh0SW5zdGFsbCB9XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Yoox=e():t.Yoox=e()}(this,(function(){return function(t){var e={};function o(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=e,o.d=function(t,e,r){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=3)}({3:function(t,e,o){"use strict";o.r(e),o.d(e,"VueInstall",(function(){return r}));var r={install(t,e){t.prototype.$Yoox=new t({data:()=>({localState:{},localStore:void 0}),methods:{dispatch(t){return this.localStore.dispatch(t)},get(t){return this.localStore.get(t)},mix(t,e){return this.localStore.mix(t,e)},set(t,e){return this.localStore.set(t,e)}},computed:{state(){return this.localState}},created(){e.observe(t=>{this.localStore=e,this.localState=t})}})}};e.default=r}})}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL1lvb3gvLi9zcmMvcGx1Z2lucy92dWUuanMiXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwidGhpcyIsImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJWdWVJbnN0YWxsIiwiaW5zdGFsbCIsIlZ1ZSIsInN0b3JlSW5zdGFuY2UiLCIkWW9veCIsImRhdGEiLCJsb2NhbFN0YXRlIiwibG9jYWxTdG9yZSIsInVuZGVmaW5lZCIsIm1ldGhvZHMiLCJkaXNwYXRjaCIsInBheWxvYWQiLCJtaXgiLCJhY3Rpb24iLCJzZXQiLCJjb21wdXRlZCIsInN0YXRlIiwiY3JlYXRlZCIsIm9ic2VydmUiXSwibWFwcGluZ3MiOiJDQUFBLFNBQTJDQSxFQUFNQyxHQUMxQixpQkFBWkMsU0FBMEMsaUJBQVhDLE9BQ3hDQSxPQUFPRCxRQUFVRCxJQUNRLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDOUNELE9BQU8sR0FBSUgsR0FDZSxpQkFBWkMsUUFDZEEsUUFBYyxLQUFJRCxJQUVsQkQsRUFBVyxLQUFJQyxJQVJqQixDQVNHSyxNQUFNLFdBQ1QsTyxZQ1RFLElBQUlDLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVQLFFBR25DLElBQUlDLEVBQVNJLEVBQWlCRSxHQUFZLENBQ3pDQyxFQUFHRCxFQUNIRSxHQUFHLEVBQ0hULFFBQVMsSUFVVixPQU5BVSxFQUFRSCxHQUFVSSxLQUFLVixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTTSxHQUcvREwsRUFBT1EsR0FBSSxFQUdKUixFQUFPRCxRQTBEZixPQXJEQU0sRUFBb0JNLEVBQUlGLEVBR3hCSixFQUFvQk8sRUFBSVIsRUFHeEJDLEVBQW9CUSxFQUFJLFNBQVNkLEVBQVNlLEVBQU1DLEdBQzNDVixFQUFvQlcsRUFBRWpCLEVBQVNlLElBQ2xDRyxPQUFPQyxlQUFlbkIsRUFBU2UsRUFBTSxDQUFFSyxZQUFZLEVBQU1DLElBQUtMLEtBS2hFVixFQUFvQmdCLEVBQUksU0FBU3RCLEdBQ1gsb0JBQVh1QixRQUEwQkEsT0FBT0MsYUFDMUNOLE9BQU9DLGVBQWVuQixFQUFTdUIsT0FBT0MsWUFBYSxDQUFFQyxNQUFPLFdBRTdEUCxPQUFPQyxlQUFlbkIsRUFBUyxhQUFjLENBQUV5QixPQUFPLEtBUXZEbkIsRUFBb0JvQixFQUFJLFNBQVNELEVBQU9FLEdBRXZDLEdBRFUsRUFBUEEsSUFBVUYsRUFBUW5CLEVBQW9CbUIsSUFDL0IsRUFBUEUsRUFBVSxPQUFPRixFQUNwQixHQUFXLEVBQVBFLEdBQThCLGlCQUFWRixHQUFzQkEsR0FBU0EsRUFBTUcsV0FBWSxPQUFPSCxFQUNoRixJQUFJSSxFQUFLWCxPQUFPWSxPQUFPLE1BR3ZCLEdBRkF4QixFQUFvQmdCLEVBQUVPLEdBQ3RCWCxPQUFPQyxlQUFlVSxFQUFJLFVBQVcsQ0FBRVQsWUFBWSxFQUFNSyxNQUFPQSxJQUN0RCxFQUFQRSxHQUE0QixpQkFBVEYsRUFBbUIsSUFBSSxJQUFJTSxLQUFPTixFQUFPbkIsRUFBb0JRLEVBQUVlLEVBQUlFLEVBQUssU0FBU0EsR0FBTyxPQUFPTixFQUFNTSxJQUFRQyxLQUFLLEtBQU1ELElBQzlJLE9BQU9GLEdBSVJ2QixFQUFvQjJCLEVBQUksU0FBU2hDLEdBQ2hDLElBQUllLEVBQVNmLEdBQVVBLEVBQU8yQixXQUM3QixXQUF3QixPQUFPM0IsRUFBZ0IsU0FDL0MsV0FBOEIsT0FBT0EsR0FFdEMsT0FEQUssRUFBb0JRLEVBQUVFLEVBQVEsSUFBS0EsR0FDNUJBLEdBSVJWLEVBQW9CVyxFQUFJLFNBQVNpQixFQUFRQyxHQUFZLE9BQU9qQixPQUFPa0IsVUFBVUMsZUFBZTFCLEtBQUt1QixFQUFRQyxJQUd6RzdCLEVBQW9CZ0MsRUFBSSxHQUlqQmhDLEVBQW9CQSxFQUFvQmlDLEVBQUksRyxpQ0NsRnJELGtEQUFPLElBQU1DLEVBQWEsQ0FDeEJDLFFBQVNDLEVBQUtDLEdBQ1pELEVBQUlOLFVBQVVRLE1BQVEsSUFBSUYsRUFBSSxDQUU1QkcsS0FBSSxLQUNLLENBQ0xDLFdBQVksR0FDWkMsZ0JBQVlDLElBSWhCQyxRQUFTLENBTVBDLFNBQVNDLEdBQ1AsT0FBTy9DLEtBQUsyQyxXQUFXRyxTQUFTQyxJQVFsQzlCLElBQUk4QixHQUNGLE9BQU8vQyxLQUFLMkMsV0FBVzFCLElBQUk4QixJQVM3QkMsSUFBSUMsRUFBUUYsR0FDVixPQUFPL0MsS0FBSzJDLFdBQVdLLElBQUlDLEVBQVFGLElBU3JDRyxJQUFJRCxFQUFRRixHQUNWLE9BQU8vQyxLQUFLMkMsV0FBV08sSUFBSUQsRUFBUUYsS0FJdkNJLFNBQVUsQ0FLUkMsUUFDRSxPQUFPcEQsS0FBSzBDLGFBSWhCVyxVQUlFZCxFQUFjZSxRQUFTRixJQUNyQnBELEtBQUsyQyxXQUFhSixFQUNsQnZDLEtBQUswQyxXQUFhVSxTQVFiaEIiLCJmaWxlIjoidnVlUGx1Z2luLmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIllvb3hcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiWW9veFwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAzKTtcbiIsImV4cG9ydCBjb25zdCBWdWVJbnN0YWxsID0ge1xuICBpbnN0YWxsIChWdWUsIHN0b3JlSW5zdGFuY2UpIHtcbiAgICBWdWUucHJvdG90eXBlLiRZb294ID0gbmV3IFZ1ZSh7XG5cbiAgICAgIGRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbG9jYWxTdGF0ZToge30sXG4gICAgICAgICAgbG9jYWxTdG9yZTogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH0sIC8vIGRhdGFcblxuICAgICAgbWV0aG9kczoge1xuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyB0aGUgZGlzcGF0Y2ggbWV0aG9kXG4gICAgICAgICAqIEBwYXJhbSBwYXlsb2FkXG4gICAgICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAgICAgKi9cbiAgICAgICAgZGlzcGF0Y2gocGF5bG9hZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmUuZGlzcGF0Y2gocGF5bG9hZClcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyB0aGUgZ2V0IG1ldGhvZCBvZiBhIGdpdmVuIGdldCBuYW1lXG4gICAgICAgICAqIEBwYXJhbSBwYXlsb2FkXG4gICAgICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0KHBheWxvYWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JlLmdldChwYXlsb2FkKVxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXR1cm5zIHRoZSBtaXggbWV0aG9kIG9mIGEgZ2l2ZW4gbmFtZVxuICAgICAgICAgKiBAcGFyYW0gYWN0aW9uXG4gICAgICAgICAqIEBwYXJhbSBwYXlsb2FkXG4gICAgICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAgICAgKi9cbiAgICAgICAgbWl4KGFjdGlvbiwgcGF5bG9hZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmUubWl4KGFjdGlvbiwgcGF5bG9hZClcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogVXBkYXRlIHlvb3ggYWNjb3JkaW5nIHRvIGFjdGlvbiBuYW1lIGFuZCBwYXlsb2FkXG4gICAgICAgICAqIEBwYXJhbSBhY3Rpb25cbiAgICAgICAgICogQHBhcmFtIHBheWxvYWRcbiAgICAgICAgICogQHJldHVybnMgeyp9XG4gICAgICAgICAqL1xuICAgICAgICBzZXQoYWN0aW9uLCBwYXlsb2FkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yZS5zZXQoYWN0aW9uLCBwYXlsb2FkKVxuICAgICAgICB9XG4gICAgICB9LCAvLyBtZXRob2RzXG5cbiAgICAgIGNvbXB1dGVkOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXR1cm5zIGxvY2FsIHN0YXRlIHdpdGggdnVlIHJlYWN0aXZpdHlcbiAgICAgICAgICogQHJldHVybnMge3t9fCp9XG4gICAgICAgICAqL1xuICAgICAgICBzdGF0ZSgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbFN0YXRlXG4gICAgICAgIH1cbiAgICAgIH0sIC8vIGNvbXB1dGVkXG5cbiAgICAgIGNyZWF0ZWQoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPYnNlcnZlIHRvIHVwZGF0ZSB5b294IGFuZCBzdGF0ZSBvbiBjaGFuZ2VzXG4gICAgICAgICAqL1xuICAgICAgICBzdG9yZUluc3RhbmNlLm9ic2VydmUoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2NhbFN0b3JlID0gc3RvcmVJbnN0YW5jZVxuICAgICAgICAgIHRoaXMubG9jYWxTdGF0ZSA9IHN0YXRlXG4gICAgICAgIH0pXG4gICAgICB9LCAvLyBjcmVhdGVkXG5cbiAgICB9KSAvLyBWdWUucHJvdG90eXBlLiRZb294XG4gIH0sIC8vIGluc3RhbGwgKClcbn0gLy8gZXhwb3J0IGNvbnN0IFZ1ZUluc3RhbGxcblxuZXhwb3J0IGRlZmF1bHQgVnVlSW5zdGFsbFxuIl0sInNvdXJjZVJvb3QiOiIifQ==
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Yoox=t():e.Yoox=t()}(this,(function(){return function(e){var t={};function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=e,o.c=t,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";o.r(t),o.d(t,"VueInstall",(function(){return r}));var r={install(e,t){e.prototype.$Yoox=new e({data:()=>({localState:{},localStore:void 0}),methods:{get(e){return this.localStore.get(e)},mix(e,t){return this.localStore.mix(e,t)},set(e,t){return this.localStore.set(e,t)}},computed:{state(){return this.localState}},created(){t.observe(e=>{this.localStore=t,this.localState=e})}})}};t.default=r}])}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9Zb294L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL1lvb3gvLi9zcmMvcGx1Z2lucy92dWUuanMiXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwidGhpcyIsImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJWdWVJbnN0YWxsIiwiaW5zdGFsbCIsIlZ1ZSIsInN0b3JlSW5zdGFuY2UiLCIkWW9veCIsImRhdGEiLCJsb2NhbFN0YXRlIiwibG9jYWxTdG9yZSIsInVuZGVmaW5lZCIsIm1ldGhvZHMiLCJwYXlsb2FkIiwibWl4IiwiYWN0aW9uIiwic2V0IiwiY29tcHV0ZWQiLCJzdGF0ZSIsImNyZWF0ZWQiLCJvYnNlcnZlIl0sIm1hcHBpbmdzIjoiQ0FBQSxTQUEyQ0EsRUFBTUMsR0FDMUIsaUJBQVpDLFNBQTBDLGlCQUFYQyxPQUN4Q0EsT0FBT0QsUUFBVUQsSUFDUSxtQkFBWEcsUUFBeUJBLE9BQU9DLElBQzlDRCxPQUFPLEdBQUlILEdBQ2UsaUJBQVpDLFFBQ2RBLFFBQWMsS0FBSUQsSUFFbEJELEVBQVcsS0FBSUMsSUFSakIsQ0FTR0ssTUFBTSxXQUNULE8sWUNURSxJQUFJQyxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVUCxRQUduQyxJQUFJQyxFQUFTSSxFQUFpQkUsR0FBWSxDQUN6Q0MsRUFBR0QsRUFDSEUsR0FBRyxFQUNIVCxRQUFTLElBVVYsT0FOQVUsRUFBUUgsR0FBVUksS0FBS1YsRUFBT0QsUUFBU0MsRUFBUUEsRUFBT0QsUUFBU00sR0FHL0RMLEVBQU9RLEdBQUksRUFHSlIsRUFBT0QsUUEwRGYsT0FyREFNLEVBQW9CTSxFQUFJRixFQUd4QkosRUFBb0JPLEVBQUlSLEVBR3hCQyxFQUFvQlEsRUFBSSxTQUFTZCxFQUFTZSxFQUFNQyxHQUMzQ1YsRUFBb0JXLEVBQUVqQixFQUFTZSxJQUNsQ0csT0FBT0MsZUFBZW5CLEVBQVNlLEVBQU0sQ0FBRUssWUFBWSxFQUFNQyxJQUFLTCxLQUtoRVYsRUFBb0JnQixFQUFJLFNBQVN0QixHQUNYLG9CQUFYdUIsUUFBMEJBLE9BQU9DLGFBQzFDTixPQUFPQyxlQUFlbkIsRUFBU3VCLE9BQU9DLFlBQWEsQ0FBRUMsTUFBTyxXQUU3RFAsT0FBT0MsZUFBZW5CLEVBQVMsYUFBYyxDQUFFeUIsT0FBTyxLQVF2RG5CLEVBQW9Cb0IsRUFBSSxTQUFTRCxFQUFPRSxHQUV2QyxHQURVLEVBQVBBLElBQVVGLEVBQVFuQixFQUFvQm1CLElBQy9CLEVBQVBFLEVBQVUsT0FBT0YsRUFDcEIsR0FBVyxFQUFQRSxHQUE4QixpQkFBVkYsR0FBc0JBLEdBQVNBLEVBQU1HLFdBQVksT0FBT0gsRUFDaEYsSUFBSUksRUFBS1gsT0FBT1ksT0FBTyxNQUd2QixHQUZBeEIsRUFBb0JnQixFQUFFTyxHQUN0QlgsT0FBT0MsZUFBZVUsRUFBSSxVQUFXLENBQUVULFlBQVksRUFBTUssTUFBT0EsSUFDdEQsRUFBUEUsR0FBNEIsaUJBQVRGLEVBQW1CLElBQUksSUFBSU0sS0FBT04sRUFBT25CLEVBQW9CUSxFQUFFZSxFQUFJRSxFQUFLLFNBQVNBLEdBQU8sT0FBT04sRUFBTU0sSUFBUUMsS0FBSyxLQUFNRCxJQUM5SSxPQUFPRixHQUlSdkIsRUFBb0IyQixFQUFJLFNBQVNoQyxHQUNoQyxJQUFJZSxFQUFTZixHQUFVQSxFQUFPMkIsV0FDN0IsV0FBd0IsT0FBTzNCLEVBQWdCLFNBQy9DLFdBQThCLE9BQU9BLEdBRXRDLE9BREFLLEVBQW9CUSxFQUFFRSxFQUFRLElBQUtBLEdBQzVCQSxHQUlSVixFQUFvQlcsRUFBSSxTQUFTaUIsRUFBUUMsR0FBWSxPQUFPakIsT0FBT2tCLFVBQVVDLGVBQWUxQixLQUFLdUIsRUFBUUMsSUFHekc3QixFQUFvQmdDLEVBQUksR0FJakJoQyxFQUFvQkEsRUFBb0JpQyxFQUFJLEcsK0JDbEZyRCxrREFBTyxJQUFNQyxFQUFhLENBQ3hCQyxRQUFTQyxFQUFLQyxHQUNaRCxFQUFJTixVQUFVUSxNQUFRLElBQUlGLEVBQUksQ0FFNUJHLEtBQUksS0FDSyxDQUNMQyxXQUFZLEdBQ1pDLGdCQUFZQyxJQUloQkMsUUFBUyxDQU1QNUIsSUFBSTZCLEdBQ0YsT0FBTzlDLEtBQUsyQyxXQUFXMUIsSUFBSTZCLElBUzdCQyxJQUFJQyxFQUFRRixHQUNWLE9BQU85QyxLQUFLMkMsV0FBV0ksSUFBSUMsRUFBUUYsSUFTckNHLElBQUlELEVBQVFGLEdBQ1YsT0FBTzlDLEtBQUsyQyxXQUFXTSxJQUFJRCxFQUFRRixLQUl2Q0ksU0FBVSxDQUtSQyxRQUNFLE9BQU9uRCxLQUFLMEMsYUFJaEJVLFVBSUViLEVBQWNjLFFBQVNGLElBQ3JCbkQsS0FBSzJDLFdBQWFKLEVBQ2xCdkMsS0FBSzBDLFdBQWFTLFNBUWJmIiwiZmlsZSI6InZ1ZVBsdWdpbi5idW5kbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJZb294XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIllvb3hcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMCk7XG4iLCJleHBvcnQgY29uc3QgVnVlSW5zdGFsbCA9IHtcbiAgaW5zdGFsbCAoVnVlLCBzdG9yZUluc3RhbmNlKSB7XG4gICAgVnVlLnByb3RvdHlwZS4kWW9veCA9IG5ldyBWdWUoe1xuXG4gICAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxvY2FsU3RhdGU6IHt9LFxuICAgICAgICAgIGxvY2FsU3RvcmU6IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9LCAvLyBkYXRhXG5cbiAgICAgIG1ldGhvZHM6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIGdldCBtZXRob2Qgb2YgYSBnaXZlbiBnZXQgbmFtZVxuICAgICAgICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgICAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgICAgICovXG4gICAgICAgIGdldChwYXlsb2FkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yZS5nZXQocGF5bG9hZClcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyB0aGUgbWl4IG1ldGhvZCBvZiBhIGdpdmVuIG5hbWVcbiAgICAgICAgICogQHBhcmFtIGFjdGlvblxuICAgICAgICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgICAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgICAgICovXG4gICAgICAgIG1peChhY3Rpb24sIHBheWxvYWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JlLm1peChhY3Rpb24sIHBheWxvYWQpXG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZSB5b294IGFjY29yZGluZyB0byBhY3Rpb24gbmFtZSBhbmQgcGF5bG9hZFxuICAgICAgICAgKiBAcGFyYW0gYWN0aW9uXG4gICAgICAgICAqIEBwYXJhbSBwYXlsb2FkXG4gICAgICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAgICAgKi9cbiAgICAgICAgc2V0KGFjdGlvbiwgcGF5bG9hZCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmUuc2V0KGFjdGlvbiwgcGF5bG9hZClcbiAgICAgICAgfVxuICAgICAgfSwgLy8gbWV0aG9kc1xuXG4gICAgICBjb21wdXRlZDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyBsb2NhbCBzdGF0ZSB3aXRoIHZ1ZSByZWFjdGl2aXR5XG4gICAgICAgICAqIEByZXR1cm5zIHt7fXwqfVxuICAgICAgICAgKi9cbiAgICAgICAgc3RhdGUoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxTdGF0ZVxuICAgICAgICB9XG4gICAgICB9LCAvLyBjb21wdXRlZFxuXG4gICAgICBjcmVhdGVkKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogT2JzZXJ2ZSB0byB1cGRhdGUgeW9veCBhbmQgc3RhdGUgb24gY2hhbmdlc1xuICAgICAgICAgKi9cbiAgICAgICAgc3RvcmVJbnN0YW5jZS5vYnNlcnZlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9jYWxTdG9yZSA9IHN0b3JlSW5zdGFuY2VcbiAgICAgICAgICB0aGlzLmxvY2FsU3RhdGUgPSBzdGF0ZVxuICAgICAgICB9KVxuICAgICAgfSwgLy8gY3JlYXRlZFxuXG4gICAgfSkgLy8gVnVlLnByb3RvdHlwZS4kWW9veFxuICB9LCAvLyBpbnN0YWxsICgpXG59IC8vIGV4cG9ydCBjb25zdCBWdWVJbnN0YWxsXG5cbmV4cG9ydCBkZWZhdWx0IFZ1ZUluc3RhbGxcbiJdLCJzb3VyY2VSb290IjoiIn0=
{
"name": "@yoonit/yoox-store-js",
"version": "0.0.1-alpha.7",
"version": "0.0.1-alpha.8",
"description": "The official Cyberlabs Javascript global store library.",

@@ -5,0 +5,0 @@ "main": "dist/main.bundle.js",

# Yoox
## How to run the project
## How to install
``

@@ -16,3 +16,3 @@ npm install @yoonit/yoox-store-js

## store object
## Store object
It's only needed to create an object with keys: set, get, mix and state.

@@ -164,1 +164,33 @@ <br>

## Vue Plugin
If you are using Vue 2:
````
// main.js
import { VueInstall } from '@yoonit/perse-sdk-js'
import myStore from '../yoox'
Vue.use(VueInstall, myStore)
// Inside project
this.$Yoox.set('userData', user)
````
If you are using Vue 3:
````
// main.js
import { VueNextInstall } from '@yoonit/perse-sdk-js'
import myStore from '../yoox'
createApp(App).use(VueNextInstall, myStore)
// Inside project. It's important to notice that there is no '$' on vue 3 global variable
this.__Yoox.set('userData', user)
````
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc