New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@rest-hooks/normalizr

Package Overview
Dependencies
Maintainers
2
Versions
126
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rest-hooks/normalizr - npm Package Compare versions

Comparing version 10.0.0 to 10.0.1

18

dist/normalizr.amd.js

@@ -453,11 +453,11 @@ define(['exports'], (function (exports) { 'use strict';

const inStoreEntity = existingEntities[schemaKey][id];
let inStoreMeta;
// this case we already have this entity in store
if (inStoreEntity) {
var _inStoreMeta$date, _meta$fetchedAt, _inStoreMeta$fetchedA;
const inStoreMeta = entityMeta[schemaKey][id];
if (inStoreEntity && (inStoreMeta = entityMeta[schemaKey][id])) {
var _meta$fetchedAt;
entities[schemaKey][id] = schema.mergeWithStore ? schema.mergeWithStore(inStoreMeta, meta, inStoreEntity, processedEntity) : mergeWithStore(schema, inStoreMeta, meta, inStoreEntity, processedEntity);
entityMeta[schemaKey][id] = {
expiresAt: Math.max(entityExpiresAt, inStoreMeta == null ? void 0 : inStoreMeta.expiresAt),
date: Math.max(meta.date, (_inStoreMeta$date = inStoreMeta == null ? void 0 : inStoreMeta.date) != null ? _inStoreMeta$date : 0),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, (_inStoreMeta$fetchedA = inStoreMeta == null ? void 0 : inStoreMeta.fetchedAt) != null ? _inStoreMeta$fetchedA : 0)
expiresAt: Math.max(entityExpiresAt, inStoreMeta.expiresAt),
date: Math.max(meta.date, inStoreMeta.date),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, inStoreMeta.fetchedAt)
};

@@ -476,3 +476,3 @@ } else {

// update index
if (Array.isArray(schema.indexes)) {
if (schema.indexes) {
const entity = entities[schemaKey][id];

@@ -515,6 +515,4 @@ if (!(schemaKey in indexes)) {

const useIncoming =
// we may have in store but not in meta; so this existance check is still important
!existingMeta || (
// useIncoming should not be used with legacy optimistic
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date);
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date;
if (useIncoming) {

@@ -521,0 +519,0 @@ if (typeof incoming !== typeof existing) {

@@ -454,11 +454,11 @@ var rest_hooks_normalizr = (function (exports) {

const inStoreEntity = existingEntities[schemaKey][id];
let inStoreMeta;
// this case we already have this entity in store
if (inStoreEntity) {
var _inStoreMeta$date, _meta$fetchedAt, _inStoreMeta$fetchedA;
const inStoreMeta = entityMeta[schemaKey][id];
if (inStoreEntity && (inStoreMeta = entityMeta[schemaKey][id])) {
var _meta$fetchedAt;
entities[schemaKey][id] = schema.mergeWithStore ? schema.mergeWithStore(inStoreMeta, meta, inStoreEntity, processedEntity) : mergeWithStore(schema, inStoreMeta, meta, inStoreEntity, processedEntity);
entityMeta[schemaKey][id] = {
expiresAt: Math.max(entityExpiresAt, inStoreMeta == null ? void 0 : inStoreMeta.expiresAt),
date: Math.max(meta.date, (_inStoreMeta$date = inStoreMeta == null ? void 0 : inStoreMeta.date) != null ? _inStoreMeta$date : 0),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, (_inStoreMeta$fetchedA = inStoreMeta == null ? void 0 : inStoreMeta.fetchedAt) != null ? _inStoreMeta$fetchedA : 0)
expiresAt: Math.max(entityExpiresAt, inStoreMeta.expiresAt),
date: Math.max(meta.date, inStoreMeta.date),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, inStoreMeta.fetchedAt)
};

@@ -477,3 +477,3 @@ } else {

// update index
if (Array.isArray(schema.indexes)) {
if (schema.indexes) {
const entity = entities[schemaKey][id];

@@ -516,6 +516,4 @@ if (!(schemaKey in indexes)) {

const useIncoming =
// we may have in store but not in meta; so this existance check is still important
!existingMeta || (
// useIncoming should not be used with legacy optimistic
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date);
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date;
if (useIncoming) {

@@ -522,0 +520,0 @@ if (typeof incoming !== typeof existing) {

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

function e(e){return null!==e&&void 0!==e.pk}const t=e=>{if("production"!==process.env.NODE_ENV){if(Array.isArray(e)&&e.length>1)throw new Error(`Expected schema definition to be a single schema, but found ${e.length}.`)}return e[0]},n=([e,,t])=>void 0!==e&&!t,r=(e,n,r,o,i,s,c)=>{e=t(e);const a=(e=>Array.isArray(e)?e:Object.keys(e).map((t=>e[t])))(n);return a.map(((t,n)=>i(t,r,o,e,s,c)))},o=(e,r,o)=>(e=t(e),[r.map?r.map((t=>o(t,e))).filter(n).map((([e])=>e)):r,!0,!1]);function i(e,t,n,r){}function s(e){return!("function"!=typeof e.hasOwnProperty||!(Object.hasOwnProperty.call(e,"__ownerID")||e._map&&Object.hasOwnProperty.call(e._map,"__ownerID")))}const c=(e,t,n,r,o,i,s)=>{const c=Object.assign({},t);return Object.keys(e).forEach((n=>{const r=e[n],a=o(t[n],t,n,r,i,s);null==a?delete c[n]:c[n]=a})),c},a=(e,t,n)=>{if(s(t))return function(e,t,n){let r=!0,o=!1;return[Object.keys(e).reduce(((t,i)=>{const s=`${i}`,[c,a,u]=n(t.get(s),e[s]);return a||(r=!1),u&&(o=!0),t.has(s)?t.set(s,c):t}),t),r,o]}(e,t,n);const r=Object.assign({},t);let o=!0,i=!1;return Object.keys(e).forEach((t=>{const[s,c,a]=n(r[t],e[t]);void 0!==r[t]&&(r[t]=s),a&&(i=!0),c||(o=!1)})),[r,o,i]};function u(e,t,n,r,o){const i={};for(const s of Object.keys(e))i[s]=r(e[s],t,n,o);return i}class f{constructor(){this.next=new WeakMap}get(e,t){let n=this.next.get(e);if(!n)return l;for(;n.nextPath;){const e=t(n.nextPath);if(n=n.next.get(e),!n)return l}return[n.value,n.journey]}set(e,t){if(e.length<1)throw new y;let n=this;for(const{entity:t,path:r}of e){let e=n.next.get(t);e||(e=new d,n.next.set(t,e)),n.nextPath=r,n=e}delete n.nextPath,n.value=t,n.journey=p(e)}}const l=[void 0,void 0];function p(e){return e.map((e=>e.path))}class d{constructor(){this.next=new WeakMap}}class y extends Error{constructor(...e){super(...e),this.message="Keys must include at least one member"}}const h=(t,n,r)=>{const i=s(c=t)?({key:e,pk:t})=>c.getIn([e,t]):({key:e,pk:t})=>{var n;return null==(n=c[e])?void 0:n[t]};var c;const u=g(n),f={},l=[],d={i:-1},y={};function h(t,n){if(!n)return[t,!0,!1];if(null===t)return[t,!0,!1];const r="function"==typeof n.denormalize;if(!r&&"function"==typeof n)return t instanceof n||void 0===t?[t,!0,!1]:[new n(t),!0,!1];if(void 0===t)return[t,!1,!1];if(!r&&"object"==typeof n){return(Array.isArray(n)?o:a)(n,t,h)}return e(n)?((e,t,n,r,o,i,c,a,u)=>{const f="object"==typeof e?e:r({pk:e,key:t.key});if("symbol"==typeof f&&f.toString().includes("DELETED"))return[void 0,!0,!0];if("object"!=typeof f||null===f)return[f,!1,!1];const l="string"==typeof e?e:t.pk(s(f)?f.toJS():f);if(void 0===l||""===l||"undefined"===l)return[f,!1,!1];const p=t.key;p in i||(i[p]=Object.create(null)),p in c||(c[p]=Object.create(null));const d=i[p],y=c[p];let h=!0,g=!1;if(d[l])l in y?u.i=y[l]:a.push({entity:f,path:{key:p,pk:l}});else{const e=o(l,t),[i]=e.get(f,r);if(i)return d[l]=i.value[0],a.push(...i.dependencies),i.value;{const r=a.length;let o;a.push({entity:f,path:{key:p,pk:l}}),t.createIfValid?o=d[l]=s(f)?t.createIfValid(f.toObject()):t.createIfValid(f):(o=f,n=function(e){const t=e.og||e,n=(e,n)=>t(e,n);return n.og=e,n}(n),n.setLocal=e=>d[l]=e),y[l]=r,void 0===o?(h=!1,g=!0):[d[l],h,g]=t.denormalize(o,n),delete y[l];const i=a.slice(-1===u.i?r:u.i),c={dependencies:i,value:[d[l],h,g]};e.set(i,c),u.i===r&&(u.i=-1)}}return[d[l],h,g]})(t,n,h,i,u,f,y,l,d):r?n.denormalize(t,h):[t,!0,!1]}return(e,t)=>{if(!(Object(e)===e&&Object(t)===t)){const n=h(e,t);return[n[0],n[1],n[2],p(l)]}let[n,o]=r.get(e,i);return void 0===n&&(n=h(e,t),o=p(l),l.unshift({entity:e,path:{key:"",pk:""}}),r.set(l,n)),[n[0],n[1],n[2],o]}},g=e=>(t,n)=>{const r=n.key;r in e||(e[r]=Object.create(null));const o=e[r];o[t]||(o[t]=new WeakMap);let i=o[t].get(n);return i||(i=new f,o[t].set(n,i)),i},b=(e,t,n,r={},o=new f)=>void 0===t?[e,!0,!1,[]]:void 0===e?[void 0,!1,!1,[]]:h(n,r,o)(e,t);const m=Symbol("ENTITY WAS DELETED"),v=(e,t,n,o,i,s)=>{if(!e||!o)return e;if(o.normalize&&"function"==typeof o.normalize)return"object"!=typeof e?e:o.normalize(e,t,n,v,i,s);if("function"==typeof o)return new o(e);if("object"!=typeof e||"object"!=typeof o)return e;return(Array.isArray(o)?r:c)(o,e,t,n,v,i,s)};const O=(e,t,n={},r={},o={},i={date:Date.now(),expiresAt:1/0,fetchedAt:0})=>{if(null==t)return{entities:n,indexes:r,result:e,entityMeta:o};const s=function(e){return["object","function"].includes(typeof e)?"object":typeof e}(t);if(null===e||typeof e!==s&&(void 0===t.key||void 0!==t.pk||"string"!=typeof e)){if("production"!==process.env.NODE_ENV){const n=e=>{try{return"string"!=typeof JSON.parse(e)}catch(e){return!1}};throw"string"==typeof e&&n(e)?new Error(`Normalizing a string, but this does match schema.\n\nParsing this input string as JSON worked. This likely indicates fetch function did not parse\nthe JSON. By default, this only happens if "content-type" header includes "json".\nSee https://resthooks.io/rest/api/RestEndpoint#parseResponse for more information\n\n Schema: ${JSON.stringify(t,void 0,2)}\n Input: "${e}"`):new Error(`Unexpected input given to normalize. Expected type to be "${s}", found "${null===e?"null":typeof e}".\n\n Schema: ${JSON.stringify(t,void 0,2)}\n Input: "${e}"`)}throw new Error(`Unexpected input given to normalize. Expected type to be "${s}", found "${null===e?"null":typeof e}".`)}const c=Object.assign({},n),a=Object.assign({},r),u=Object.assign({},o),f=((e,t,n,r,o,i)=>(s,c,a)=>{const u=s.key;u in e||(e[u]={},n[u]=Object.assign({},n[u]),o[u]=Object.assign({},o[u]));const f=e[u][a];if(f)e[u][a]=s.merge(f,c);else{const t=s.expiresAt?s.expiresAt(i,c):i.expiresAt,r=n[u][a];if(r){var l,p,d;const n=o[u][a];e[u][a]=s.mergeWithStore?s.mergeWithStore(n,i,r,c):function(e,t,n,r,o){return!t||(e.useIncoming&&n.fetchedAt?e.useIncoming(t,n,r,o):t.date<=n.date)?typeof o!=typeof r?o:e.merge(r,o):r}(s,n,i,r,c),o[u][a]={expiresAt:Math.max(t,null==n?void 0:n.expiresAt),date:Math.max(i.date,null!=(l=null==n?void 0:n.date)?l:0),fetchedAt:Math.max(null!=(p=i.fetchedAt)?p:0,null!=(d=null==n?void 0:n.fetchedAt)?d:0)}}else{var y;e[u][a]=c,o[u][a]={expiresAt:t,date:i.date,fetchedAt:null!=(y=i.fetchedAt)?y:i.date}}}if(Array.isArray(s.indexes)){const o=e[u][a];u in t||(t[u]={},r[u]=Object.assign({},r[u]));for(const e of s.indexes){e in t[u]||(r[u][e]=t[u][e]={});const i=t[u][e];f&&delete i[f[e]],n[u]&&n[u][a]&&n[u][a][e]!==o[e]&&(i[n[u][a][e]]=m),e in o?i[o[e]]=a:"production"!==process.env.NODE_ENV&&console.warn(`Index not found in entity. Indexes must be top-level members of your entity.\nIndex: ${e}\nEntity: ${JSON.stringify(o,void 0,2)}`)}}n[u][a]=e[u][a]})({},{},c,a,u,i);return{entities:c,indexes:a,result:v(e,e,void 0,t,f,{}),entityMeta:u}};function j(e,t,n,r={}){if(function(e){return!!e&&"function"==typeof e.infer}(e))return e.infer(t,n,j,r);if("object"==typeof e&&e){return(Array.isArray(e)?i:u)(e,t,n,j,r)}return e}var x={Invalid:1,InvalidIfStale:2,Valid:3};Object.hasOwn=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};export{m as DELETED,x as ExpiryStatus,f as WeakEntityMap,b as denormalize,j as inferResults,e as isEntity,O as normalize};
function e(e){return null!==e&&void 0!==e.pk}const t=e=>{if("production"!==process.env.NODE_ENV){if(Array.isArray(e)&&e.length>1)throw new Error(`Expected schema definition to be a single schema, but found ${e.length}.`)}return e[0]},n=([e,,t])=>void 0!==e&&!t,r=(e,n,r,o,i,s,c)=>{e=t(e);const a=(e=>Array.isArray(e)?e:Object.keys(e).map((t=>e[t])))(n);return a.map(((t,n)=>i(t,r,o,e,s,c)))},o=(e,r,o)=>(e=t(e),[r.map?r.map((t=>o(t,e))).filter(n).map((([e])=>e)):r,!0,!1]);function i(e,t,n,r){}function s(e){return!("function"!=typeof e.hasOwnProperty||!(Object.hasOwnProperty.call(e,"__ownerID")||e._map&&Object.hasOwnProperty.call(e._map,"__ownerID")))}const c=(e,t,n,r,o,i,s)=>{const c=Object.assign({},t);return Object.keys(e).forEach((n=>{const r=e[n],a=o(t[n],t,n,r,i,s);null==a?delete c[n]:c[n]=a})),c},a=(e,t,n)=>{if(s(t))return function(e,t,n){let r=!0,o=!1;return[Object.keys(e).reduce(((t,i)=>{const s=`${i}`,[c,a,u]=n(t.get(s),e[s]);return a||(r=!1),u&&(o=!0),t.has(s)?t.set(s,c):t}),t),r,o]}(e,t,n);const r=Object.assign({},t);let o=!0,i=!1;return Object.keys(e).forEach((t=>{const[s,c,a]=n(r[t],e[t]);void 0!==r[t]&&(r[t]=s),a&&(i=!0),c||(o=!1)})),[r,o,i]};function u(e,t,n,r,o){const i={};for(const s of Object.keys(e))i[s]=r(e[s],t,n,o);return i}class f{constructor(){this.next=new WeakMap}get(e,t){let n=this.next.get(e);if(!n)return l;for(;n.nextPath;){const e=t(n.nextPath);if(n=n.next.get(e),!n)return l}return[n.value,n.journey]}set(e,t){if(e.length<1)throw new y;let n=this;for(const{entity:t,path:r}of e){let e=n.next.get(t);e||(e=new d,n.next.set(t,e)),n.nextPath=r,n=e}delete n.nextPath,n.value=t,n.journey=p(e)}}const l=[void 0,void 0];function p(e){return e.map((e=>e.path))}class d{constructor(){this.next=new WeakMap}}class y extends Error{constructor(...e){super(...e),this.message="Keys must include at least one member"}}const h=(t,n,r)=>{const i=s(c=t)?({key:e,pk:t})=>c.getIn([e,t]):({key:e,pk:t})=>{var n;return null==(n=c[e])?void 0:n[t]};var c;const u=g(n),f={},l=[],d={i:-1},y={};function h(t,n){if(!n)return[t,!0,!1];if(null===t)return[t,!0,!1];const r="function"==typeof n.denormalize;if(!r&&"function"==typeof n)return t instanceof n||void 0===t?[t,!0,!1]:[new n(t),!0,!1];if(void 0===t)return[t,!1,!1];if(!r&&"object"==typeof n){return(Array.isArray(n)?o:a)(n,t,h)}return e(n)?((e,t,n,r,o,i,c,a,u)=>{const f="object"==typeof e?e:r({pk:e,key:t.key});if("symbol"==typeof f&&f.toString().includes("DELETED"))return[void 0,!0,!0];if("object"!=typeof f||null===f)return[f,!1,!1];const l="string"==typeof e?e:t.pk(s(f)?f.toJS():f);if(void 0===l||""===l||"undefined"===l)return[f,!1,!1];const p=t.key;p in i||(i[p]=Object.create(null)),p in c||(c[p]=Object.create(null));const d=i[p],y=c[p];let h=!0,g=!1;if(d[l])l in y?u.i=y[l]:a.push({entity:f,path:{key:p,pk:l}});else{const e=o(l,t),[i]=e.get(f,r);if(i)return d[l]=i.value[0],a.push(...i.dependencies),i.value;{const r=a.length;let o;a.push({entity:f,path:{key:p,pk:l}}),t.createIfValid?o=d[l]=s(f)?t.createIfValid(f.toObject()):t.createIfValid(f):(o=f,n=function(e){const t=e.og||e,n=(e,n)=>t(e,n);return n.og=e,n}(n),n.setLocal=e=>d[l]=e),y[l]=r,void 0===o?(h=!1,g=!0):[d[l],h,g]=t.denormalize(o,n),delete y[l];const i=a.slice(-1===u.i?r:u.i),c={dependencies:i,value:[d[l],h,g]};e.set(i,c),u.i===r&&(u.i=-1)}}return[d[l],h,g]})(t,n,h,i,u,f,y,l,d):r?n.denormalize(t,h):[t,!0,!1]}return(e,t)=>{if(!(Object(e)===e&&Object(t)===t)){const n=h(e,t);return[n[0],n[1],n[2],p(l)]}let[n,o]=r.get(e,i);return void 0===n&&(n=h(e,t),o=p(l),l.unshift({entity:e,path:{key:"",pk:""}}),r.set(l,n)),[n[0],n[1],n[2],o]}},g=e=>(t,n)=>{const r=n.key;r in e||(e[r]=Object.create(null));const o=e[r];o[t]||(o[t]=new WeakMap);let i=o[t].get(n);return i||(i=new f,o[t].set(n,i)),i},b=(e,t,n,r={},o=new f)=>void 0===t?[e,!0,!1,[]]:void 0===e?[void 0,!1,!1,[]]:h(n,r,o)(e,t);const m=Symbol("ENTITY WAS DELETED"),O=(e,t,n,o,i,s)=>{if(!e||!o)return e;if(o.normalize&&"function"==typeof o.normalize)return"object"!=typeof e?e:o.normalize(e,t,n,O,i,s);if("function"==typeof o)return new o(e);if("object"!=typeof e||"object"!=typeof o)return e;return(Array.isArray(o)?r:c)(o,e,t,n,O,i,s)};const v=(e,t,n={},r={},o={},i={date:Date.now(),expiresAt:1/0,fetchedAt:0})=>{if(null==t)return{entities:n,indexes:r,result:e,entityMeta:o};const s=function(e){return["object","function"].includes(typeof e)?"object":typeof e}(t);if(null===e||typeof e!==s&&(void 0===t.key||void 0!==t.pk||"string"!=typeof e)){if("production"!==process.env.NODE_ENV){const n=e=>{try{return"string"!=typeof JSON.parse(e)}catch(e){return!1}};throw"string"==typeof e&&n(e)?new Error(`Normalizing a string, but this does match schema.\n\nParsing this input string as JSON worked. This likely indicates fetch function did not parse\nthe JSON. By default, this only happens if "content-type" header includes "json".\nSee https://resthooks.io/rest/api/RestEndpoint#parseResponse for more information\n\n Schema: ${JSON.stringify(t,void 0,2)}\n Input: "${e}"`):new Error(`Unexpected input given to normalize. Expected type to be "${s}", found "${null===e?"null":typeof e}".\n\n Schema: ${JSON.stringify(t,void 0,2)}\n Input: "${e}"`)}throw new Error(`Unexpected input given to normalize. Expected type to be "${s}", found "${null===e?"null":typeof e}".`)}const c=Object.assign({},n),a=Object.assign({},r),u=Object.assign({},o),f=((e,t,n,r,o,i)=>(s,c,a)=>{const u=s.key;u in e||(e[u]={},n[u]=Object.assign({},n[u]),o[u]=Object.assign({},o[u]));const f=e[u][a];if(f)e[u][a]=s.merge(f,c);else{const t=s.expiresAt?s.expiresAt(i,c):i.expiresAt,r=n[u][a];let f;var l,p;r&&(f=o[u][a])?(e[u][a]=s.mergeWithStore?s.mergeWithStore(f,i,r,c):function(e,t,n,r,o){return(e.useIncoming&&n.fetchedAt?e.useIncoming(t,n,r,o):t.date<=n.date)?typeof o!=typeof r?o:e.merge(r,o):r}(s,f,i,r,c),o[u][a]={expiresAt:Math.max(t,f.expiresAt),date:Math.max(i.date,f.date),fetchedAt:Math.max(null!=(l=i.fetchedAt)?l:0,f.fetchedAt)}):(e[u][a]=c,o[u][a]={expiresAt:t,date:i.date,fetchedAt:null!=(p=i.fetchedAt)?p:i.date})}if(s.indexes){const o=e[u][a];u in t||(t[u]={},r[u]=Object.assign({},r[u]));for(const e of s.indexes){e in t[u]||(r[u][e]=t[u][e]={});const i=t[u][e];f&&delete i[f[e]],n[u]&&n[u][a]&&n[u][a][e]!==o[e]&&(i[n[u][a][e]]=m),e in o?i[o[e]]=a:"production"!==process.env.NODE_ENV&&console.warn(`Index not found in entity. Indexes must be top-level members of your entity.\nIndex: ${e}\nEntity: ${JSON.stringify(o,void 0,2)}`)}}n[u][a]=e[u][a]})({},{},c,a,u,i);return{entities:c,indexes:a,result:O(e,e,void 0,t,f,{}),entityMeta:u}};function j(e,t,n,r={}){if(function(e){return!!e&&"function"==typeof e.infer}(e))return e.infer(t,n,j,r);if("object"==typeof e&&e){return(Array.isArray(e)?i:u)(e,t,n,j,r)}return e}var x={Invalid:1,InvalidIfStale:2,Valid:3};Object.hasOwn=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};export{m as DELETED,x as ExpiryStatus,f as WeakEntityMap,b as denormalize,j as inferResults,e as isEntity,v as normalize};

@@ -462,11 +462,11 @@ 'use strict';

const inStoreEntity = existingEntities[schemaKey][id];
let inStoreMeta;
// this case we already have this entity in store
if (inStoreEntity) {
var _inStoreMeta$date, _meta$fetchedAt, _inStoreMeta$fetchedA;
const inStoreMeta = entityMeta[schemaKey][id];
if (inStoreEntity && (inStoreMeta = entityMeta[schemaKey][id])) {
var _meta$fetchedAt;
entities[schemaKey][id] = schema.mergeWithStore ? schema.mergeWithStore(inStoreMeta, meta, inStoreEntity, processedEntity) : mergeWithStore(schema, inStoreMeta, meta, inStoreEntity, processedEntity);
entityMeta[schemaKey][id] = {
expiresAt: Math.max(entityExpiresAt, inStoreMeta == null ? void 0 : inStoreMeta.expiresAt),
date: Math.max(meta.date, (_inStoreMeta$date = inStoreMeta == null ? void 0 : inStoreMeta.date) != null ? _inStoreMeta$date : 0),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, (_inStoreMeta$fetchedA = inStoreMeta == null ? void 0 : inStoreMeta.fetchedAt) != null ? _inStoreMeta$fetchedA : 0)
expiresAt: Math.max(entityExpiresAt, inStoreMeta.expiresAt),
date: Math.max(meta.date, inStoreMeta.date),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, inStoreMeta.fetchedAt)
};

@@ -485,3 +485,3 @@ } else {

// update index
if (Array.isArray(schema.indexes)) {
if (schema.indexes) {
const entity = entities[schemaKey][id];

@@ -525,6 +525,4 @@ if (!(schemaKey in indexes)) {

const useIncoming =
// we may have in store but not in meta; so this existance check is still important
!existingMeta || (
// useIncoming should not be used with legacy optimistic
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date);
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date;
if (useIncoming) {

@@ -531,0 +529,0 @@ if (typeof incoming !== typeof existing) {

@@ -457,11 +457,11 @@ (function (global, factory) {

const inStoreEntity = existingEntities[schemaKey][id];
let inStoreMeta;
// this case we already have this entity in store
if (inStoreEntity) {
var _inStoreMeta$date, _meta$fetchedAt, _inStoreMeta$fetchedA;
const inStoreMeta = entityMeta[schemaKey][id];
if (inStoreEntity && (inStoreMeta = entityMeta[schemaKey][id])) {
var _meta$fetchedAt;
entities[schemaKey][id] = schema.mergeWithStore ? schema.mergeWithStore(inStoreMeta, meta, inStoreEntity, processedEntity) : mergeWithStore(schema, inStoreMeta, meta, inStoreEntity, processedEntity);
entityMeta[schemaKey][id] = {
expiresAt: Math.max(entityExpiresAt, inStoreMeta == null ? void 0 : inStoreMeta.expiresAt),
date: Math.max(meta.date, (_inStoreMeta$date = inStoreMeta == null ? void 0 : inStoreMeta.date) != null ? _inStoreMeta$date : 0),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, (_inStoreMeta$fetchedA = inStoreMeta == null ? void 0 : inStoreMeta.fetchedAt) != null ? _inStoreMeta$fetchedA : 0)
expiresAt: Math.max(entityExpiresAt, inStoreMeta.expiresAt),
date: Math.max(meta.date, inStoreMeta.date),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, inStoreMeta.fetchedAt)
};

@@ -480,3 +480,3 @@ } else {

// update index
if (Array.isArray(schema.indexes)) {
if (schema.indexes) {
const entity = entities[schemaKey][id];

@@ -519,6 +519,4 @@ if (!(schemaKey in indexes)) {

const useIncoming =
// we may have in store but not in meta; so this existance check is still important
!existingMeta || (
// useIncoming should not be used with legacy optimistic
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date);
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date;
if (useIncoming) {

@@ -525,0 +523,0 @@ if (typeof incoming !== typeof existing) {

@@ -222,2 +222,2 @@ import { isEntity } from './isEntity.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwiYXJyYXlEZW5vcm1hbGl6ZSIsImlzSW1tdXRhYmxlIiwib2JqZWN0RGVub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZ2V0RW50aXRpZXMiLCJkZXBUb1BhdGhzIiwidW52aXNpdEVudGl0eSIsImVudGl0eU9ySWQiLCJzY2hlbWEiLCJ1bnZpc2l0IiwiZ2V0RW50aXR5IiwiZ2V0Q2FjaGUiLCJsb2NhbENhY2hlIiwiY3ljbGVDYWNoZSIsImRlcGVuZGVuY2llcyIsImN5Y2xlSW5kZXgiLCJlbnRpdHkiLCJwayIsImtleSIsInRvU3RyaW5nIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJ0b0pTIiwiT2JqZWN0IiwiY3JlYXRlIiwibG9jYWxDYWNoZUtleSIsImN5Y2xlQ2FjaGVLZXkiLCJmb3VuZCIsImRlbGV0ZWQiLCJnbG9iYWxDYWNoZSIsImNhY2hlVmFsdWUiLCJnZXQiLCJ2YWx1ZSIsInB1c2giLCJ0cmFja2luZ0luZGV4IiwibGVuZ3RoIiwicGF0aCIsImVudGl0eUNvcHkiLCJjcmVhdGVJZlZhbGlkIiwidG9PYmplY3QiLCJ3aXRoVHJhY2tlZEVudGl0aWVzIiwic2V0TG9jYWwiLCJsb2NhbEtleSIsInNsaWNlIiwiaSIsInNldCIsImdldFVudmlzaXQiLCJlbnRpdGllcyIsImVudGl0eUNhY2hlIiwicmVzdWx0Q2FjaGUiLCJnZXRFbnRpdHlDYWNoZXMiLCJpbnB1dCIsImhhc0Rlbm9ybWFsaXplIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FjaGFibGUiLCJyZXQiLCJlbnRpdHlQYXRocyIsInVuc2hpZnQiLCJlbnRpdHlDYWNoZUtleSIsIldlYWtNYXAiLCJ3ZW0iLCJkZW5vcm1hbGl6ZVNpbXBsZSIsIm9yaWdpbmFsVW52aXNpdCIsIm9nIiwid3JhcHBlZFVudmlzaXQiXSwic291cmNlcyI6WyIuLi9zcmMvZGVub3JtYWxpemUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTY2hlbWEsIEVudGl0eUludGVyZmFjZSwgVW52aXNpdEZ1bmN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaXNFbnRpdHkgfSBmcm9tICcuL2lzRW50aXR5LmpzJztcbmltcG9ydCB7IGRlbm9ybWFsaXplIGFzIGFycmF5RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvQXJyYXkuanMnO1xuaW1wb3J0IHsgaXNJbW11dGFibGUgfSBmcm9tICcuL3NjaGVtYXMvSW1tdXRhYmxlVXRpbHMuanMnO1xuaW1wb3J0IHsgZGVub3JtYWxpemUgYXMgb2JqZWN0RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvT2JqZWN0LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIERlbm9ybWFsaXplQ2FjaGUsXG4gIFBhdGgsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IFdlYWtFbnRpdHlNYXAsIHtcbiAgdHlwZSBEZXAsXG4gIGdldEVudGl0aWVzLFxuICB0eXBlIEdldEVudGl0eSxcbiAgZGVwVG9QYXRocyxcbn0gZnJvbSAnLi9XZWFrRW50aXR5TWFwLmpzJztcblxuaW50ZXJmYWNlIEVudGl0eUNhY2hlVmFsdWUge1xuICBkZXBlbmRlbmNpZXM6IERlcFtdO1xuICB2YWx1ZTogW2FueSwgYm9vbGVhbiwgYm9vbGVhbl07XG59XG5jb25zdCB1bnZpc2l0RW50aXR5ID0gKFxuICBlbnRpdHlPcklkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgc3RyaW5nLFxuICBzY2hlbWE6IEVudGl0eUludGVyZmFjZSxcbiAgdW52aXNpdDogVW52aXNpdEZ1bmN0aW9uLFxuICBnZXRFbnRpdHk6IEdldEVudGl0eSxcbiAgZ2V0Q2FjaGU6IFJldHVyblR5cGU8dHlwZW9mIGdldEVudGl0eUNhY2hlcz4sXG4gIGxvY2FsQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBjeWNsZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PixcbiAgZGVwZW5kZW5jaWVzOiBEZXBbXSxcbiAgY3ljbGVJbmRleDogeyBpOiBudW1iZXIgfSxcbik6IFtkZW5vcm1hbGl6ZWQ6IG9iamVjdCB8IHVuZGVmaW5lZCwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dID0+IHtcbiAgY29uc3QgZW50aXR5ID1cbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ29iamVjdCdcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBnZXRFbnRpdHkoeyBwazogZW50aXR5T3JJZCwga2V5OiBzY2hlbWEua2V5IH0pO1xuICBpZiAoXG4gICAgdHlwZW9mIGVudGl0eSA9PT0gJ3N5bWJvbCcgJiZcbiAgICAoZW50aXR5IGFzIHN5bWJvbCkudG9TdHJpbmcoKS5pbmNsdWRlcygnREVMRVRFRCcpXG4gICkge1xuICAgIHJldHVybiBbdW5kZWZpbmVkLCB0cnVlLCB0cnVlXTtcbiAgICAvLyBUT0RPOiBDaGFuZ2UgdG8gdGhpcyBhcyBicmVha2luZyBjaGFuZ2Ugb25jZSB3ZSBvbmx5IHN1cHBvcnQgbmV3ZXIgZW50aXRpZXNcbiAgICAvLyBhbHNvIHJlbW92ZSBgKGVudGl0eSBhcyBzeW1ib2wpLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ0RFTEVURUQnKWAgYW5kIGRvIHRoaXMgZm9yIGFsbCBzeW1ib2xzXG4gICAgLy8gcmV0dXJuIHNjaGVtYS5kZW5vcm1hbGl6ZShlbnRpdHksIHVudmlzaXQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBlbnRpdHkgIT09ICdvYmplY3QnIHx8IGVudGl0eSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBbZW50aXR5IGFzIGFueSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IHBrID1cbiAgICAvLyBub3JtYWxpemUgbXVzdCBhbHdheXMgcGxhY2UgYSBzdHJpbmcsIGJlY2F1c2UgcGsoKSByZXR1cm4gdmFsdWUgaXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgLy8gdGhlcmVmb3JlIG5vIG5lZWQgdG8gY2hlY2sgZm9yIG51bWJlcnNcbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ3N0cmluZydcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBzY2hlbWEucGsoaXNJbW11dGFibGUoZW50aXR5KSA/IChlbnRpdHkgYXMgYW55KS50b0pTKCkgOiBlbnRpdHkpO1xuICAvLyBpZiB3ZSBjYW4ndCBnZW5lcmF0ZSBhIHdvcmtpbmcgcGs7IHRoaXMgaXMgaG9wZWxlc3Mgc28gbGV0J3MgZ2l2ZSB0aGVtIHdoYXQncyBhbHJlYWR5IHRoZXJlXG4gIC8vIG90aGVyd2lzZSwgZXZlbiB3aGVuIHdlIGFyZW4ndCBkb2luZyBhIGxvb2t1cCB3ZSB3YW50IHRvIHR1cm4gdGhlIGVudGl0eU9ySWQgb2JqZWN0IGludG8gdGhlXG4gIC8vIGV4cGVjdGVkIGNsYXNzLCBhbmQgY2FjaGUgdGhhdCBjbGFzcyBmb3IgcmVmZXJlbnRpYWwgZXF1YWxpdHkuIFBLIGlzIHVzZWQgZm9yIGdsb2JhbCBlcXVhbGl0eSBsb29rdXAuXG4gIGlmIChwayA9PT0gdW5kZWZpbmVkIHx8IHBrID09PSAnJyB8fCBwayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gW2VudGl0eSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IHNjaGVtYS5rZXk7XG4gIGlmICghKGtleSBpbiBsb2NhbENhY2hlKSkge1xuICAgIGxvY2FsQ2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cbiAgaWYgKCEoa2V5IGluIGN5Y2xlQ2FjaGUpKSB7XG4gICAgY3ljbGVDYWNoZVtrZXldID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuICBjb25zdCBsb2NhbENhY2hlS2V5ID0gbG9jYWxDYWNoZVtrZXldO1xuICBjb25zdCBjeWNsZUNhY2hlS2V5ID0gY3ljbGVDYWNoZVtrZXldO1xuXG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgLy8gbG9jYWwgY2FjaGUgbG9va3VwIGZpcnN0XG4gIGlmICghbG9jYWxDYWNoZUtleVtwa10pIHtcbiAgICBjb25zdCBnbG9iYWxDYWNoZTogV2Vha0VudGl0eU1hcDxvYmplY3QsIEVudGl0eUNhY2hlVmFsdWU+ID0gZ2V0Q2FjaGUoXG4gICAgICBwayxcbiAgICAgIHNjaGVtYSxcbiAgICApO1xuICAgIGNvbnN0IFtjYWNoZVZhbHVlXSA9IGdsb2JhbENhY2hlLmdldChlbnRpdHksIGdldEVudGl0eSk7XG4gICAgLy8gVE9ETzogd2hhdCBpZiB0aGlzIGp1c3QgcmV0dXJuZWQgdGhlIGRlcHMgLSB0aGVuIHdlIGRvbid0IG5lZWQgdG8gc3RvcmUgdGhlbVxuXG4gICAgaWYgKGNhY2hlVmFsdWUpIHtcbiAgICAgIGxvY2FsQ2FjaGVLZXlbcGtdID0gY2FjaGVWYWx1ZS52YWx1ZVswXTtcbiAgICAgIC8vIFRPRE86IGNhbiB3ZSBzdG9yZSB0aGUgY2FjaGUgdmFsdWVzIGluc3RlYWQgb2YgdHJhY2tpbmcgKmFsbCogdGhlaXIgc291cmNlcz9cbiAgICAgIC8vIHRoaXMgaXMgb25seSB1c2VkIGZvciBzZXR0aW5nIHJlc3VsdHMgY2FjaGUgY29ycmVjdGx5LiBpZiB3ZSBnb3QgdGhpcyBmYXIgd2Ugd2lsbCBkZWYgbmVlZCB0byBzZXQgYXMgd2Ugd291bGQgaGF2ZSBhbHJlYWR5IHRyaWVkIGdldHRpbmcgaXRcbiAgICAgIGRlcGVuZGVuY2llcy5wdXNoKC4uLmNhY2hlVmFsdWUuZGVwZW5kZW5jaWVzKTtcbiAgICAgIHJldHVybiBjYWNoZVZhbHVlLnZhbHVlO1xuICAgIH1cbiAgICAvLyBpZiB3ZSBkb24ndCBmaW5kIGluIGRlbm9ybWFsaXplIGNhY2hlIHRoZW4gZG8gZnVsbCBkZW5vcm1hbGl6ZVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgdHJhY2tpbmdJbmRleCA9IGRlcGVuZGVuY2llcy5sZW5ndGg7XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG5cbiAgICAgIGxldCBlbnRpdHlDb3B5OiBhbnk7XG4gICAgICBpZiAoc2NoZW1hLmNyZWF0ZUlmVmFsaWQpIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGxvY2FsQ2FjaGVLZXlbcGtdID0gaXNJbW11dGFibGUoZW50aXR5KVxuICAgICAgICAgID8gc2NoZW1hLmNyZWF0ZUlmVmFsaWQoZW50aXR5LnRvT2JqZWN0KCkpXG4gICAgICAgICAgOiBzY2hlbWEuY3JlYXRlSWZWYWxpZChlbnRpdHkpO1xuICAgICAgICAvLyBUT0RPKGJyZWFraW5nKTogcmVtb3ZlIG9uY2Ugb2xkIHZlcmlvbnMgbm8gbG9uZ2VyIHN1cHBvcnRlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGVudGl0eTtcbiAgICAgICAgdW52aXNpdCA9IHdpdGhUcmFja2VkRW50aXRpZXModW52aXNpdCk7XG4gICAgICAgIHVudmlzaXQuc2V0TG9jYWwgPSBlbnRpdHlDb3B5ID0+IChsb2NhbENhY2hlS2V5W3BrXSA9IGVudGl0eUNvcHkpO1xuICAgICAgfVxuXG4gICAgICBjeWNsZUNhY2hlS2V5W3BrXSA9IHRyYWNraW5nSW5kZXg7XG4gICAgICBpZiAoZW50aXR5Q29weSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIHVuZGVmaW5lZCBpbmRpY2F0ZXMgd2Ugc2hvdWxkIHN1c3BlbnNlIChwZXJoYXBzIGZhaWxlZCB2YWxpZGF0aW9uKVxuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdID0gc2NoZW1hLmRlbm9ybWFsaXplKFxuICAgICAgICAgIGVudGl0eUNvcHksXG4gICAgICAgICAgdW52aXNpdCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBjeWNsZUNhY2hlS2V5W3BrXTtcblxuICAgICAgLy8gaWYgaW4gY3ljbGUsIHVzZSB0aGUgc3RhcnQgb2YgdGhlIGN5Y2xlIHRvIHRyYWNrIGFsbCBkZXBzXG4gICAgICAvLyBvdGhlcndpc2UsIHdlIHVzZSBvdXIgb3duIHRyYWNraW5nSW5kZXhcbiAgICAgIGNvbnN0IGxvY2FsS2V5ID0gZGVwZW5kZW5jaWVzLnNsaWNlKFxuICAgICAgICBjeWNsZUluZGV4LmkgPT09IC0xID8gdHJhY2tpbmdJbmRleCA6IGN5Y2xlSW5kZXguaSxcbiAgICAgICk7XG4gICAgICBjb25zdCBjYWNoZVZhbHVlOiBFbnRpdHlDYWNoZVZhbHVlID0ge1xuICAgICAgICBkZXBlbmRlbmNpZXM6IGxvY2FsS2V5LFxuICAgICAgICB2YWx1ZTogW2xvY2FsQ2FjaGVLZXlbcGtdLCBmb3VuZCwgZGVsZXRlZF0sXG4gICAgICB9O1xuICAgICAgZ2xvYmFsQ2FjaGUuc2V0KGxvY2FsS2V5LCBjYWNoZVZhbHVlKTtcblxuICAgICAgLy8gc3RhcnQgb2YgY3ljbGUgLSByZXNldCBjeWNsZSBkZXRlY3Rpb25cbiAgICAgIGlmIChjeWNsZUluZGV4LmkgPT09IHRyYWNraW5nSW5kZXgpIHtcbiAgICAgICAgY3ljbGVJbmRleC5pID0gLTE7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGN5Y2xlIGRldGVjdGVkXG4gICAgaWYgKHBrIGluIGN5Y2xlQ2FjaGVLZXkpIHtcbiAgICAgIGN5Y2xlSW5kZXguaSA9IGN5Y2xlQ2FjaGVLZXlbcGtdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3aXRoIG5vIGN5Y2xlLCBnbG9iYWxDYWNoZUVudHJ5IHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdO1xufTtcblxuY29uc3QgZ2V0VW52aXNpdCA9IChcbiAgZW50aXRpZXM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBlbnRpdHlDYWNoZTogRGVub3JtYWxpemVDYWNoZVsnZW50aXRpZXMnXSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKSA9PiB7XG4gIGNvbnN0IGdldEVudGl0eSA9IGdldEVudGl0aWVzKGVudGl0aWVzKTtcbiAgY29uc3QgZ2V0Q2FjaGUgPSBnZXRFbnRpdHlDYWNoZXMoZW50aXR5Q2FjaGUpO1xuICBjb25zdCBsb2NhbENhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHt9O1xuICBjb25zdCBkZXBlbmRlbmNpZXM6IERlcFtdID0gW107XG4gIGNvbnN0IGN5Y2xlSW5kZXggPSB7IGk6IC0xIH07XG4gIGNvbnN0IGN5Y2xlQ2FjaGUgPSB7fTtcblxuICBmdW5jdGlvbiB1bnZpc2l0KFxuICAgIGlucHV0OiBhbnksXG4gICAgc2NoZW1hOiBhbnksXG4gICk6IFtkZW5vcm1hbGl6ZWQ6IGFueSwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dIHtcbiAgICBpZiAoIXNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuXG4gICAgLy8gbnVsbCBpcyBjb25zaWRlcmVkIGludGVudGlvbmFsLCB0aHVzIGFsd2F5cyAnZm91bmQnIGFzIHRydWVcbiAgICBpZiAoaW5wdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNEZW5vcm1hbGl6ZSA9IHR5cGVvZiBzY2hlbWEuZGVub3JtYWxpemUgPT09ICdmdW5jdGlvbic7XG5cbiAgICAvLyBkZXNlcmlhbGl6ZSBmaWVsZHMgKGxpa2UgRGF0ZSlcbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIHNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuICAgICAgLy8gZmllbGQgZGVzZXJpYWxpemF0aW9uIHNob3VsZCBuZXZlciBjb3VudCBhZ2FpbnN0ICdmb3VuZCcgKHdoZXRoZXIgdG8gdXNlZCBpbmZlcnJlZCByZXN1bHRzKVxuICAgICAgaWYgKGlucHV0ID09PSB1bmRlZmluZWQpIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICAgIHJldHVybiBbbmV3IHNjaGVtYShpbnB1dCksIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtpbnB1dCwgZmFsc2UsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSlcbiAgICAgICAgPyBhcnJheURlbm9ybWFsaXplXG4gICAgICAgIDogb2JqZWN0RGVub3JtYWxpemU7XG4gICAgICByZXR1cm4gbWV0aG9kKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIGlmIChpc0VudGl0eShzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gdW52aXNpdEVudGl0eShcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgdW52aXNpdCxcbiAgICAgICAgZ2V0RW50aXR5LFxuICAgICAgICBnZXRDYWNoZSxcbiAgICAgICAgbG9jYWxDYWNoZSxcbiAgICAgICAgY3ljbGVDYWNoZSxcbiAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICBjeWNsZUluZGV4LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoaGFzRGVub3JtYWxpemUpIHtcbiAgICAgIHJldHVybiBzY2hlbWEuZGVub3JtYWxpemUoaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgaW5wdXQ6IGFueSxcbiAgICBzY2hlbWE6IGFueSxcbiAgKTogW1xuICAgIGRlbm9ybWFsaXplZDogYW55LFxuICAgIGZvdW5kOiBib29sZWFuLFxuICAgIGRlbGV0ZWQ6IGJvb2xlYW4sXG4gICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgXSA9PiB7XG4gICAgLy8gaW4gdGhlIGNhc2Ugd2hlcmUgV2Vha01hcCBjYW5ub3QgYmUgdXNlZFxuICAgIC8vIHRoaXMgdGVzdCBlbnN1cmVzIG51bGwgaXMgcHJvcGVybHkgZXhjbHVkZWQgZnJvbSBXZWFrTWFwXG4gICAgY29uc3QgY2FjaGFibGUgPSBPYmplY3QoaW5wdXQpID09PSBpbnB1dCAmJiBPYmplY3Qoc2NoZW1hKSA9PT0gc2NoZW1hO1xuICAgIGlmICghY2FjaGFibGUpIHtcbiAgICAgIGNvbnN0IHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB0aGlzIGlzIGZhc3RlciB0aGFuIHNwcmVhZFxuICAgICAgLy8gaHR0cHM6Ly93d3cubWVhc3VyZXRoYXQubmV0L0JlbmNobWFya3MvU2hvdy8yMzYzNi8wL3NwcmVhZC13aXRoLXR1cGxlc1xuICAgICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyldO1xuICAgIH1cblxuICAgIGxldCBbcmV0LCBlbnRpdHlQYXRoc10gPSByZXN1bHRDYWNoZS5nZXQoaW5wdXQsIGdldEVudGl0eSk7XG5cbiAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB3ZSB3YW50IHRvIGRvIHRoaXMgYmVmb3JlIHdlIGFkZCBvdXIgJ2lucHV0JyBlbnRyeVxuICAgICAgZW50aXR5UGF0aHMgPSBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyk7XG4gICAgICAvLyBmb3IgdGhlIGZpcnN0IGVudHJ5LCBgcGF0aGAgaXMgaWdub3JlZCBzbyBlbXB0eSBtZW1iZXJzIGlzIGZpbmVcbiAgICAgIGRlcGVuZGVuY2llcy51bnNoaWZ0KHsgZW50aXR5OiBpbnB1dCwgcGF0aDogeyBrZXk6ICcnLCBwazogJycgfSB9KTtcbiAgICAgIHJlc3VsdENhY2hlLnNldChkZXBlbmRlbmNpZXMsIHJldCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBlbnRpdHlQYXRocyBhcyBQYXRoW11dO1xuICB9O1xufTtcblxuY29uc3QgZ2V0RW50aXR5Q2FjaGVzID0gKGVudGl0eUNhY2hlOiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddKSA9PiB7XG4gIHJldHVybiAocGs6IHN0cmluZywgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UpID0+IHtcbiAgICBjb25zdCBrZXkgPSBzY2hlbWEua2V5O1xuXG4gICAgaWYgKCEoa2V5IGluIGVudGl0eUNhY2hlKSkge1xuICAgICAgZW50aXR5Q2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgfVxuICAgIGNvbnN0IGVudGl0eUNhY2hlS2V5ID0gZW50aXR5Q2FjaGVba2V5XTtcbiAgICBpZiAoIWVudGl0eUNhY2hlS2V5W3BrXSlcbiAgICAgIGVudGl0eUNhY2hlS2V5W3BrXSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICBFbnRpdHlJbnRlcmZhY2UsXG4gICAgICAgIFdlYWtFbnRpdHlNYXA8b2JqZWN0LCBhbnk+XG4gICAgICA+KCk7XG5cbiAgICBsZXQgd2VtOiBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PiA9IGVudGl0eUNhY2hlS2V5W3BrXS5nZXQoc2NoZW1hKSBhcyBhbnk7XG4gICAgaWYgKCF3ZW0pIHtcbiAgICAgIHdlbSA9IG5ldyBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PigpO1xuICAgICAgZW50aXR5Q2FjaGVLZXlbcGtdLnNldChzY2hlbWEsIHdlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdlbTtcbiAgfTtcbn07XG5cbnR5cGUgRGVub3JtYWxpemVSZXR1cm48UyBleHRlbmRzIFNjaGVtYT4gPVxuICB8IFtcbiAgICAgIGRlbm9ybWFsaXplZDogRGVub3JtYWxpemU8Uz4sXG4gICAgICBmb3VuZDogdHJ1ZSxcbiAgICAgIGRlbGV0ZWQ6IGZhbHNlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGJvb2xlYW4sXG4gICAgICBkZWxldGVkOiB0cnVlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgZGVsZXRlZDogYm9vbGVhbixcbiAgICAgIGVudGl0eVBhdGhzOiBQYXRoW10sXG4gICAgXTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IDxTIGV4dGVuZHMgU2NoZW1hPihcbiAgaW5wdXQ6IHVua25vd24sXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ2VudGl0aWVzJ10gPSB7fSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddID0gbmV3IFdlYWtFbnRpdHlNYXAoKSxcbik6IERlbm9ybWFsaXplUmV0dXJuPFM+ID0+IHtcbiAgLy8gdW5kZWZpbmVkIG1lYW4gZG9uJ3QgZG8gYW55dGhpbmdcbiAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2UsIFtdXSBhcyBbYW55LCBib29sZWFuLCBib29sZWFuLCBhbnldO1xuICB9XG4gIGlmIChpbnB1dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGZhbHNlLCBmYWxzZSwgW11dIGFzIFthbnksIGJvb2xlYW4sIGJvb2xlYW4sIGFueV07XG4gIH1cbiAgcmV0dXJuIGdldFVudmlzaXQoZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkoaW5wdXQsIHNjaGVtYSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemVTaW1wbGUgPSA8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGlucHV0OiBhbnksXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU/OiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddLFxuICByZXN1bHRDYWNoZT86IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKTpcbiAgfCBbZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZTxTPiwgZm91bmQ6IHRydWUsIGRlbGV0ZWQ6IGZhbHNlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiB0cnVlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBmYWxzZSwgZGVsZXRlZDogYm9vbGVhbl0gPT5cbiAgZGVub3JtYWxpemUoaW5wdXQsIHNjaGVtYSwgZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkuc2xpY2UoXG4gICAgMCxcbiAgICAzLFxuICApIGFzIGFueTtcblxuLy8gVE9ETyhicmVha2luZyk6IHJlbW92ZSBvbmNlIHVudXNlZFxuZnVuY3Rpb24gd2l0aFRyYWNrZWRFbnRpdGllcyh1bnZpc2l0OiBVbnZpc2l0RnVuY3Rpb24pOiBVbnZpc2l0RnVuY3Rpb24ge1xuICAvLyBldmVyeSB0aW1lIHdlIG5lc3QsIHdlIHdhbnQgdG8gdW53cmFwIGJhY2sgdG8gdGhlIHRvcC5cbiAgLy8gdGhpcyBpcyBkdWUgdG8gb25seSBuZWVkZWQgdGhlIG5leHQgbGV2ZWwgb2YgbmVzdGVkIGVudGl0aWVzIGZvciBsb29rdXBcbiAgY29uc3Qgb3JpZ2luYWxVbnZpc2l0ID0gdW52aXNpdC5vZyB8fCB1bnZpc2l0O1xuICBjb25zdCB3cmFwcGVkVW52aXNpdCA9IChpbnB1dDogYW55LCBzY2hlbWE6IGFueSkgPT5cbiAgICBvcmlnaW5hbFVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gIHdyYXBwZWRVbnZpc2l0Lm9nID0gdW52aXNpdDtcbiAgcmV0dXJuIHdyYXBwZWRVbnZpc2l0O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxRQUFRLFFBQVEsZUFBZTtBQUN4QyxTQUFTQyxXQUFXLElBQUlDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNwRSxTQUFTQyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3pELFNBQVNGLFdBQVcsSUFBSUcsaUJBQWlCLFFBQVEscUJBQXFCO0FBT3RFLE9BQU9DLGFBQWEsSUFFbEJDLFdBQVcsRUFFWEMsVUFBVSxRQUNMLG9CQUFvQjtBQU0zQixNQUFNQyxhQUFhLEdBQUcsQ0FDcEJDLFVBQXdDLEVBQ3hDQyxNQUF1QixFQUN2QkMsT0FBd0IsRUFDeEJDLFNBQW9CLEVBQ3BCQyxRQUE0QyxFQUM1Q0MsVUFBK0MsRUFDL0NDLFVBQWtELEVBQ2xEQyxZQUFtQixFQUNuQkMsVUFBeUIsS0FDZ0Q7RUFDekUsTUFBTUMsTUFBTSxHQUNWLE9BQU9ULFVBQVUsS0FBSyxRQUFRLEdBQzFCQSxVQUFVLEdBQ1ZHLFNBQVMsQ0FBQztJQUFFTyxFQUFFLEVBQUVWLFVBQVU7SUFBRVcsR0FBRyxFQUFFVixNQUFNLENBQUNVO0VBQUksQ0FBQyxDQUFDO0VBQ3BELElBQ0UsT0FBT0YsTUFBTSxLQUFLLFFBQVEsSUFDekJBLE1BQU0sQ0FBWUcsUUFBUSxFQUFFLENBQUNDLFFBQVEsQ0FB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwiYXJyYXlEZW5vcm1hbGl6ZSIsImlzSW1tdXRhYmxlIiwib2JqZWN0RGVub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZ2V0RW50aXRpZXMiLCJkZXBUb1BhdGhzIiwidW52aXNpdEVudGl0eSIsImVudGl0eU9ySWQiLCJzY2hlbWEiLCJ1bnZpc2l0IiwiZ2V0RW50aXR5IiwiZ2V0Q2FjaGUiLCJsb2NhbENhY2hlIiwiY3ljbGVDYWNoZSIsImRlcGVuZGVuY2llcyIsImN5Y2xlSW5kZXgiLCJlbnRpdHkiLCJwayIsImtleSIsInRvU3RyaW5nIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJ0b0pTIiwiT2JqZWN0IiwiY3JlYXRlIiwibG9jYWxDYWNoZUtleSIsImN5Y2xlQ2FjaGVLZXkiLCJmb3VuZCIsImRlbGV0ZWQiLCJnbG9iYWxDYWNoZSIsImNhY2hlVmFsdWUiLCJnZXQiLCJ2YWx1ZSIsInB1c2giLCJ0cmFja2luZ0luZGV4IiwibGVuZ3RoIiwicGF0aCIsImVudGl0eUNvcHkiLCJjcmVhdGVJZlZhbGlkIiwidG9PYmplY3QiLCJ3aXRoVHJhY2tlZEVudGl0aWVzIiwic2V0TG9jYWwiLCJsb2NhbEtleSIsInNsaWNlIiwiaSIsInNldCIsImdldFVudmlzaXQiLCJlbnRpdGllcyIsImVudGl0eUNhY2hlIiwicmVzdWx0Q2FjaGUiLCJnZXRFbnRpdHlDYWNoZXMiLCJpbnB1dCIsImhhc0Rlbm9ybWFsaXplIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FjaGFibGUiLCJyZXQiLCJlbnRpdHlQYXRocyIsInVuc2hpZnQiLCJlbnRpdHlDYWNoZUtleSIsIldlYWtNYXAiLCJ3ZW0iLCJkZW5vcm1hbGl6ZVNpbXBsZSIsIm9yaWdpbmFsVW52aXNpdCIsIm9nIiwid3JhcHBlZFVudmlzaXQiXSwic291cmNlcyI6WyIuLi9zcmMvZGVub3JtYWxpemUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTY2hlbWEsIEVudGl0eUludGVyZmFjZSwgVW52aXNpdEZ1bmN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaXNFbnRpdHkgfSBmcm9tICcuL2lzRW50aXR5LmpzJztcbmltcG9ydCB7IGRlbm9ybWFsaXplIGFzIGFycmF5RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvQXJyYXkuanMnO1xuaW1wb3J0IHsgaXNJbW11dGFibGUgfSBmcm9tICcuL3NjaGVtYXMvSW1tdXRhYmxlVXRpbHMuanMnO1xuaW1wb3J0IHsgZGVub3JtYWxpemUgYXMgb2JqZWN0RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvT2JqZWN0LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIERlbm9ybWFsaXplQ2FjaGUsXG4gIFBhdGgsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IFdlYWtFbnRpdHlNYXAsIHtcbiAgdHlwZSBEZXAsXG4gIGdldEVudGl0aWVzLFxuICB0eXBlIEdldEVudGl0eSxcbiAgZGVwVG9QYXRocyxcbn0gZnJvbSAnLi9XZWFrRW50aXR5TWFwLmpzJztcblxuaW50ZXJmYWNlIEVudGl0eUNhY2hlVmFsdWUge1xuICBkZXBlbmRlbmNpZXM6IERlcFtdO1xuICB2YWx1ZTogW2FueSwgYm9vbGVhbiwgYm9vbGVhbl07XG59XG5jb25zdCB1bnZpc2l0RW50aXR5ID0gKFxuICBlbnRpdHlPcklkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgc3RyaW5nLFxuICBzY2hlbWE6IEVudGl0eUludGVyZmFjZSxcbiAgdW52aXNpdDogVW52aXNpdEZ1bmN0aW9uLFxuICBnZXRFbnRpdHk6IEdldEVudGl0eSxcbiAgZ2V0Q2FjaGU6IFJldHVyblR5cGU8dHlwZW9mIGdldEVudGl0eUNhY2hlcz4sXG4gIGxvY2FsQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBjeWNsZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PixcbiAgZGVwZW5kZW5jaWVzOiBEZXBbXSxcbiAgY3ljbGVJbmRleDogeyBpOiBudW1iZXIgfSxcbik6IFtkZW5vcm1hbGl6ZWQ6IG9iamVjdCB8IHVuZGVmaW5lZCwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dID0+IHtcbiAgY29uc3QgZW50aXR5ID1cbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ29iamVjdCdcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBnZXRFbnRpdHkoeyBwazogZW50aXR5T3JJZCwga2V5OiBzY2hlbWEua2V5IH0pO1xuICBpZiAoXG4gICAgdHlwZW9mIGVudGl0eSA9PT0gJ3N5bWJvbCcgJiZcbiAgICAoZW50aXR5IGFzIHN5bWJvbCkudG9TdHJpbmcoKS5pbmNsdWRlcygnREVMRVRFRCcpXG4gICkge1xuICAgIHJldHVybiBbdW5kZWZpbmVkLCB0cnVlLCB0cnVlXTtcbiAgICAvLyBUT0RPOiBDaGFuZ2UgdG8gdGhpcyBhcyBicmVha2luZyBjaGFuZ2Ugb25jZSB3ZSBvbmx5IHN1cHBvcnQgbmV3ZXIgZW50aXRpZXNcbiAgICAvLyBhbHNvIHJlbW92ZSBgKGVudGl0eSBhcyBzeW1ib2wpLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ0RFTEVURUQnKWAgYW5kIGRvIHRoaXMgZm9yIGFsbCBzeW1ib2xzXG4gICAgLy8gcmV0dXJuIHNjaGVtYS5kZW5vcm1hbGl6ZShlbnRpdHksIHVudmlzaXQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBlbnRpdHkgIT09ICdvYmplY3QnIHx8IGVudGl0eSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBbZW50aXR5IGFzIGFueSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IHBrID1cbiAgICAvLyBub3JtYWxpemUgbXVzdCBhbHdheXMgcGxhY2UgYSBzdHJpbmcsIGJlY2F1c2UgcGsoKSByZXR1cm4gdmFsdWUgaXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgLy8gdGhlcmVmb3JlIG5vIG5lZWQgdG8gY2hlY2sgZm9yIG51bWJlcnNcbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ3N0cmluZydcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBzY2hlbWEucGsoaXNJbW11dGFibGUoZW50aXR5KSA/IChlbnRpdHkgYXMgYW55KS50b0pTKCkgOiBlbnRpdHkpO1xuICAvLyBpZiB3ZSBjYW4ndCBnZW5lcmF0ZSBhIHdvcmtpbmcgcGs7IHRoaXMgaXMgaG9wZWxlc3Mgc28gbGV0J3MgZ2l2ZSB0aGVtIHdoYXQncyBhbHJlYWR5IHRoZXJlXG4gIC8vIG90aGVyd2lzZSwgZXZlbiB3aGVuIHdlIGFyZW4ndCBkb2luZyBhIGxvb2t1cCB3ZSB3YW50IHRvIHR1cm4gdGhlIGVudGl0eU9ySWQgb2JqZWN0IGludG8gdGhlXG4gIC8vIGV4cGVjdGVkIGNsYXNzLCBhbmQgY2FjaGUgdGhhdCBjbGFzcyBmb3IgcmVmZXJlbnRpYWwgZXF1YWxpdHkuIFBLIGlzIHVzZWQgZm9yIGdsb2JhbCBlcXVhbGl0eSBsb29rdXAuXG4gIGlmIChwayA9PT0gdW5kZWZpbmVkIHx8IHBrID09PSAnJyB8fCBwayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gW2VudGl0eSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IHNjaGVtYS5rZXk7XG4gIGlmICghKGtleSBpbiBsb2NhbENhY2hlKSkge1xuICAgIGxvY2FsQ2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cbiAgaWYgKCEoa2V5IGluIGN5Y2xlQ2FjaGUpKSB7XG4gICAgY3ljbGVDYWNoZVtrZXldID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuICBjb25zdCBsb2NhbENhY2hlS2V5ID0gbG9jYWxDYWNoZVtrZXldO1xuICBjb25zdCBjeWNsZUNhY2hlS2V5ID0gY3ljbGVDYWNoZVtrZXldO1xuXG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgLy8gbG9jYWwgY2FjaGUgbG9va3VwIGZpcnN0XG4gIGlmICghbG9jYWxDYWNoZUtleVtwa10pIHtcbiAgICBjb25zdCBnbG9iYWxDYWNoZTogV2Vha0VudGl0eU1hcDxvYmplY3QsIEVudGl0eUNhY2hlVmFsdWU+ID0gZ2V0Q2FjaGUoXG4gICAgICBwayxcbiAgICAgIHNjaGVtYSxcbiAgICApO1xuICAgIGNvbnN0IFtjYWNoZVZhbHVlXSA9IGdsb2JhbENhY2hlLmdldChlbnRpdHksIGdldEVudGl0eSk7XG4gICAgLy8gVE9ETzogd2hhdCBpZiB0aGlzIGp1c3QgcmV0dXJuZWQgdGhlIGRlcHMgLSB0aGVuIHdlIGRvbid0IG5lZWQgdG8gc3RvcmUgdGhlbVxuXG4gICAgaWYgKGNhY2hlVmFsdWUpIHtcbiAgICAgIGxvY2FsQ2FjaGVLZXlbcGtdID0gY2FjaGVWYWx1ZS52YWx1ZVswXTtcbiAgICAgIC8vIFRPRE86IGNhbiB3ZSBzdG9yZSB0aGUgY2FjaGUgdmFsdWVzIGluc3RlYWQgb2YgdHJhY2tpbmcgKmFsbCogdGhlaXIgc291cmNlcz9cbiAgICAgIC8vIHRoaXMgaXMgb25seSB1c2VkIGZvciBzZXR0aW5nIHJlc3VsdHMgY2FjaGUgY29ycmVjdGx5LiBpZiB3ZSBnb3QgdGhpcyBmYXIgd2Ugd2lsbCBkZWYgbmVlZCB0byBzZXQgYXMgd2Ugd291bGQgaGF2ZSBhbHJlYWR5IHRyaWVkIGdldHRpbmcgaXRcbiAgICAgIGRlcGVuZGVuY2llcy5wdXNoKC4uLmNhY2hlVmFsdWUuZGVwZW5kZW5jaWVzKTtcbiAgICAgIHJldHVybiBjYWNoZVZhbHVlLnZhbHVlO1xuICAgIH1cbiAgICAvLyBpZiB3ZSBkb24ndCBmaW5kIGluIGRlbm9ybWFsaXplIGNhY2hlIHRoZW4gZG8gZnVsbCBkZW5vcm1hbGl6ZVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgdHJhY2tpbmdJbmRleCA9IGRlcGVuZGVuY2llcy5sZW5ndGg7XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG5cbiAgICAgIGxldCBlbnRpdHlDb3B5OiBhbnk7XG4gICAgICBpZiAoc2NoZW1hLmNyZWF0ZUlmVmFsaWQpIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGxvY2FsQ2FjaGVLZXlbcGtdID0gaXNJbW11dGFibGUoZW50aXR5KVxuICAgICAgICAgID8gc2NoZW1hLmNyZWF0ZUlmVmFsaWQoZW50aXR5LnRvT2JqZWN0KCkpXG4gICAgICAgICAgOiBzY2hlbWEuY3JlYXRlSWZWYWxpZChlbnRpdHkpO1xuICAgICAgICAvLyBUT0RPKGJyZWFraW5nKTogcmVtb3ZlIG9uY2Ugb2xkIHZlcmlvbnMgbm8gbG9uZ2VyIHN1cHBvcnRlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGVudGl0eTtcbiAgICAgICAgdW52aXNpdCA9IHdpdGhUcmFja2VkRW50aXRpZXModW52aXNpdCk7XG4gICAgICAgIHVudmlzaXQuc2V0TG9jYWwgPSBlbnRpdHlDb3B5ID0+IChsb2NhbENhY2hlS2V5W3BrXSA9IGVudGl0eUNvcHkpO1xuICAgICAgfVxuXG4gICAgICBjeWNsZUNhY2hlS2V5W3BrXSA9IHRyYWNraW5nSW5kZXg7XG4gICAgICBpZiAoZW50aXR5Q29weSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIHVuZGVmaW5lZCBpbmRpY2F0ZXMgd2Ugc2hvdWxkIHN1c3BlbnNlIChwZXJoYXBzIGZhaWxlZCB2YWxpZGF0aW9uKVxuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdID0gc2NoZW1hLmRlbm9ybWFsaXplKFxuICAgICAgICAgIGVudGl0eUNvcHksXG4gICAgICAgICAgdW52aXNpdCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBjeWNsZUNhY2hlS2V5W3BrXTtcblxuICAgICAgLy8gaWYgaW4gY3ljbGUsIHVzZSB0aGUgc3RhcnQgb2YgdGhlIGN5Y2xlIHRvIHRyYWNrIGFsbCBkZXBzXG4gICAgICAvLyBvdGhlcndpc2UsIHdlIHVzZSBvdXIgb3duIHRyYWNraW5nSW5kZXhcbiAgICAgIGNvbnN0IGxvY2FsS2V5ID0gZGVwZW5kZW5jaWVzLnNsaWNlKFxuICAgICAgICBjeWNsZUluZGV4LmkgPT09IC0xID8gdHJhY2tpbmdJbmRleCA6IGN5Y2xlSW5kZXguaSxcbiAgICAgICk7XG4gICAgICBjb25zdCBjYWNoZVZhbHVlOiBFbnRpdHlDYWNoZVZhbHVlID0ge1xuICAgICAgICBkZXBlbmRlbmNpZXM6IGxvY2FsS2V5LFxuICAgICAgICB2YWx1ZTogW2xvY2FsQ2FjaGVLZXlbcGtdLCBmb3VuZCwgZGVsZXRlZF0sXG4gICAgICB9O1xuICAgICAgZ2xvYmFsQ2FjaGUuc2V0KGxvY2FsS2V5LCBjYWNoZVZhbHVlKTtcblxuICAgICAgLy8gc3RhcnQgb2YgY3ljbGUgLSByZXNldCBjeWNsZSBkZXRlY3Rpb25cbiAgICAgIGlmIChjeWNsZUluZGV4LmkgPT09IHRyYWNraW5nSW5kZXgpIHtcbiAgICAgICAgY3ljbGVJbmRleC5pID0gLTE7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGN5Y2xlIGRldGVjdGVkXG4gICAgaWYgKHBrIGluIGN5Y2xlQ2FjaGVLZXkpIHtcbiAgICAgIGN5Y2xlSW5kZXguaSA9IGN5Y2xlQ2FjaGVLZXlbcGtdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3aXRoIG5vIGN5Y2xlLCBnbG9iYWxDYWNoZUVudHJ5IHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdO1xufTtcblxuY29uc3QgZ2V0VW52aXNpdCA9IChcbiAgZW50aXRpZXM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBlbnRpdHlDYWNoZTogRGVub3JtYWxpemVDYWNoZVsnZW50aXRpZXMnXSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKSA9PiB7XG4gIGNvbnN0IGdldEVudGl0eSA9IGdldEVudGl0aWVzKGVudGl0aWVzKTtcbiAgY29uc3QgZ2V0Q2FjaGUgPSBnZXRFbnRpdHlDYWNoZXMoZW50aXR5Q2FjaGUpO1xuICBjb25zdCBsb2NhbENhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHt9O1xuICBjb25zdCBkZXBlbmRlbmNpZXM6IERlcFtdID0gW107XG4gIGNvbnN0IGN5Y2xlSW5kZXggPSB7IGk6IC0xIH07XG4gIGNvbnN0IGN5Y2xlQ2FjaGUgPSB7fTtcblxuICBmdW5jdGlvbiB1bnZpc2l0KFxuICAgIGlucHV0OiBhbnksXG4gICAgc2NoZW1hOiBhbnksXG4gICk6IFtkZW5vcm1hbGl6ZWQ6IGFueSwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dIHtcbiAgICBpZiAoIXNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuXG4gICAgLy8gbnVsbCBpcyBjb25zaWRlcmVkIGludGVudGlvbmFsLCB0aHVzIGFsd2F5cyAnZm91bmQnIGFzIHRydWVcbiAgICBpZiAoaW5wdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNEZW5vcm1hbGl6ZSA9IHR5cGVvZiBzY2hlbWEuZGVub3JtYWxpemUgPT09ICdmdW5jdGlvbic7XG5cbiAgICAvLyBkZXNlcmlhbGl6ZSBmaWVsZHMgKGxpa2UgRGF0ZSlcbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIHNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuICAgICAgLy8gZmllbGQgZGVzZXJpYWxpemF0aW9uIHNob3VsZCBuZXZlciBjb3VudCBhZ2FpbnN0ICdmb3VuZCcgKHdoZXRoZXIgdG8gdXNlZCBpbmZlcnJlZCByZXN1bHRzKVxuICAgICAgaWYgKGlucHV0ID09PSB1bmRlZmluZWQpIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICAgIHJldHVybiBbbmV3IHNjaGVtYShpbnB1dCksIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtpbnB1dCwgZmFsc2UsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSlcbiAgICAgICAgPyBhcnJheURlbm9ybWFsaXplXG4gICAgICAgIDogb2JqZWN0RGVub3JtYWxpemU7XG4gICAgICByZXR1cm4gbWV0aG9kKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIGlmIChpc0VudGl0eShzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gdW52aXNpdEVudGl0eShcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgdW52aXNpdCxcbiAgICAgICAgZ2V0RW50aXR5LFxuICAgICAgICBnZXRDYWNoZSxcbiAgICAgICAgbG9jYWxDYWNoZSxcbiAgICAgICAgY3ljbGVDYWNoZSxcbiAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICBjeWNsZUluZGV4LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoaGFzRGVub3JtYWxpemUpIHtcbiAgICAgIHJldHVybiBzY2hlbWEuZGVub3JtYWxpemUoaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgaW5wdXQ6IGFueSxcbiAgICBzY2hlbWE6IGFueSxcbiAgKTogW1xuICAgIGRlbm9ybWFsaXplZDogYW55LFxuICAgIGZvdW5kOiBib29sZWFuLFxuICAgIGRlbGV0ZWQ6IGJvb2xlYW4sXG4gICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgXSA9PiB7XG4gICAgLy8gaW4gdGhlIGNhc2Ugd2hlcmUgV2Vha01hcCBjYW5ub3QgYmUgdXNlZFxuICAgIC8vIHRoaXMgdGVzdCBlbnN1cmVzIG51bGwgaXMgcHJvcGVybHkgZXhjbHVkZWQgZnJvbSBXZWFrTWFwXG4gICAgY29uc3QgY2FjaGFibGUgPSBPYmplY3QoaW5wdXQpID09PSBpbnB1dCAmJiBPYmplY3Qoc2NoZW1hKSA9PT0gc2NoZW1hO1xuICAgIGlmICghY2FjaGFibGUpIHtcbiAgICAgIGNvbnN0IHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB0aGlzIGlzIGZhc3RlciB0aGFuIHNwcmVhZFxuICAgICAgLy8gaHR0cHM6Ly93d3cubWVhc3VyZXRoYXQubmV0L0JlbmNobWFya3MvU2hvdy8yMzYzNi8wL3NwcmVhZC13aXRoLXR1cGxlc1xuICAgICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyldO1xuICAgIH1cblxuICAgIGxldCBbcmV0LCBlbnRpdHlQYXRoc10gPSByZXN1bHRDYWNoZS5nZXQoaW5wdXQsIGdldEVudGl0eSk7XG5cbiAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB3ZSB3YW50IHRvIGRvIHRoaXMgYmVmb3JlIHdlIGFkZCBvdXIgJ2lucHV0JyBlbnRyeVxuICAgICAgZW50aXR5UGF0aHMgPSBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyk7XG4gICAgICAvLyBmb3IgdGhlIGZpcnN0IGVudHJ5LCBgcGF0aGAgaXMgaWdub3JlZCBzbyBlbXB0eSBtZW1iZXJzIGlzIGZpbmVcbiAgICAgIGRlcGVuZGVuY2llcy51bnNoaWZ0KHsgZW50aXR5OiBpbnB1dCwgcGF0aDogeyBrZXk6ICcnLCBwazogJycgfSB9KTtcbiAgICAgIHJlc3VsdENhY2hlLnNldChkZXBlbmRlbmNpZXMsIHJldCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBlbnRpdHlQYXRocyBhcyBQYXRoW11dO1xuICB9O1xufTtcblxuY29uc3QgZ2V0RW50aXR5Q2FjaGVzID0gKGVudGl0eUNhY2hlOiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddKSA9PiB7XG4gIHJldHVybiAocGs6IHN0cmluZywgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UpID0+IHtcbiAgICBjb25zdCBrZXkgPSBzY2hlbWEua2V5O1xuXG4gICAgaWYgKCEoa2V5IGluIGVudGl0eUNhY2hlKSkge1xuICAgICAgZW50aXR5Q2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgfVxuICAgIGNvbnN0IGVudGl0eUNhY2hlS2V5ID0gZW50aXR5Q2FjaGVba2V5XTtcbiAgICBpZiAoIWVudGl0eUNhY2hlS2V5W3BrXSlcbiAgICAgIGVudGl0eUNhY2hlS2V5W3BrXSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICBFbnRpdHlJbnRlcmZhY2UsXG4gICAgICAgIFdlYWtFbnRpdHlNYXA8b2JqZWN0LCBhbnk+XG4gICAgICA+KCk7XG5cbiAgICBsZXQgd2VtOiBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PiA9IGVudGl0eUNhY2hlS2V5W3BrXS5nZXQoc2NoZW1hKSBhcyBhbnk7XG4gICAgaWYgKCF3ZW0pIHtcbiAgICAgIHdlbSA9IG5ldyBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PigpO1xuICAgICAgZW50aXR5Q2FjaGVLZXlbcGtdLnNldChzY2hlbWEsIHdlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdlbTtcbiAgfTtcbn07XG5cbnR5cGUgRGVub3JtYWxpemVSZXR1cm48UyBleHRlbmRzIFNjaGVtYT4gPVxuICB8IFtcbiAgICAgIGRlbm9ybWFsaXplZDogRGVub3JtYWxpemU8Uz4sXG4gICAgICBmb3VuZDogdHJ1ZSxcbiAgICAgIGRlbGV0ZWQ6IGZhbHNlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGJvb2xlYW4sXG4gICAgICBkZWxldGVkOiB0cnVlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgZGVsZXRlZDogYm9vbGVhbixcbiAgICAgIGVudGl0eVBhdGhzOiBQYXRoW10sXG4gICAgXTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IDxTIGV4dGVuZHMgU2NoZW1hPihcbiAgaW5wdXQ6IHVua25vd24sXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ2VudGl0aWVzJ10gPSB7fSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddID0gbmV3IFdlYWtFbnRpdHlNYXAoKSxcbik6IERlbm9ybWFsaXplUmV0dXJuPFM+ID0+IHtcbiAgLy8gdW5kZWZpbmVkIG1lYW4gZG9uJ3QgZG8gYW55dGhpbmdcbiAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2UsIFtdXSBhcyBbYW55LCBib29sZWFuLCBib29sZWFuLCBhbnldO1xuICB9XG4gIGlmIChpbnB1dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGZhbHNlLCBmYWxzZSwgW11dIGFzIFthbnksIGJvb2xlYW4sIGJvb2xlYW4sIGFueV07XG4gIH1cbiAgcmV0dXJuIGdldFVudmlzaXQoZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkoaW5wdXQsIHNjaGVtYSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemVTaW1wbGUgPSA8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGlucHV0OiBhbnksXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU/OiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddLFxuICByZXN1bHRDYWNoZT86IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKTpcbiAgfCBbZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZTxTPiwgZm91bmQ6IHRydWUsIGRlbGV0ZWQ6IGZhbHNlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiB0cnVlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBmYWxzZSwgZGVsZXRlZDogYm9vbGVhbl0gPT5cbiAgZGVub3JtYWxpemUoaW5wdXQsIHNjaGVtYSwgZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkuc2xpY2UoXG4gICAgMCxcbiAgICAzLFxuICApIGFzIGFueTtcblxuLy8gVE9ETyhicmVha2luZyk6IHJlbW92ZSBvbmNlIHVudXNlZFxuZnVuY3Rpb24gd2l0aFRyYWNrZWRFbnRpdGllcyh1bnZpc2l0OiBVbnZpc2l0RnVuY3Rpb24pOiBVbnZpc2l0RnVuY3Rpb24ge1xuICAvLyBldmVyeSB0aW1lIHdlIG5lc3QsIHdlIHdhbnQgdG8gdW53cmFwIGJhY2sgdG8gdGhlIHRvcC5cbiAgLy8gdGhpcyBpcyBkdWUgdG8gb25seSBuZWVkZWQgdGhlIG5leHQgbGV2ZWwgb2YgbmVzdGVkIGVudGl0aWVzIGZvciBsb29rdXBcbiAgY29uc3Qgb3JpZ2luYWxVbnZpc2l0ID0gdW52aXNpdC5vZyB8fCB1bnZpc2l0O1xuICBjb25zdCB3cmFwcGVkVW52aXNpdCA9IChpbnB1dDogYW55LCBzY2hlbWE6IGFueSkgPT5cbiAgICBvcmlnaW5hbFVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gIHdyYXBwZWRVbnZpc2l0Lm9nID0gdW52aXNpdDtcbiAgcmV0dXJuIHdyYXBwZWRVbnZpc2l0O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxRQUFRLFFBQVEsZUFBZTtBQUN4QyxTQUFTQyxXQUFXLElBQUlDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNwRSxTQUFTQyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3pELFNBQVNGLFdBQVcsSUFBSUcsaUJBQWlCLFFBQVEscUJBQXFCO0FBT3RFLE9BQU9DLGFBQWEsSUFFbEJDLFdBQVcsRUFFWEMsVUFBVSxRQUNMLG9CQUFvQjtBQU0zQixNQUFNQyxhQUFhLEdBQUdBLENBQ3BCQyxVQUF3QyxFQUN4Q0MsTUFBdUIsRUFDdkJDLE9BQXdCLEVBQ3hCQyxTQUFvQixFQUNwQkMsUUFBNEMsRUFDNUNDLFVBQStDLEVBQy9DQyxVQUFrRCxFQUNsREMsWUFBbUIsRUFDbkJDLFVBQXlCLEtBQ2dEO0VBQ3pFLE1BQU1DLE1BQU0sR0FDVixPQUFPVCxVQUFVLEtBQUssUUFBUSxHQUMxQkEsVUFBVSxHQUNWRyxTQUFTLENBQUM7SUFBRU8sRUFBRSxFQUFFVixVQUFVO0lBQUVXLEdBQUcsRUFBRVYsTUFBTSxDQUFDVTtFQUFJLENBQUMsQ0FBQztFQUNwRCxJQUNFLE9BQU9GLE1BQU0sS0FBSyxRQUFRLElBQ3pCQSxNQUFNLENBQVlHLFFBQVEsRUFBRSxDQUFDQyxRQUFRLENB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
export {};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L0VuZHBvaW50SW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNuYXBzaG90SW50ZXJmYWNlIH0gZnJvbSAnLi9TbmFwc2hvdEludGVyZmFjZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEZldGNoRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IEluZmVyUmV0dXJuIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFJlc29sdmVUeXBlIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJy4uL2ludGVyZmFjZS5qcyc7XG5pbXBvcnQgeyBOb3JtYWxpemUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBEZWZpbmVzIGEgbmV0d29ya2luZyBlbmRwb2ludCAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludEludGVyZmFjZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgdHJ1ZSB8IHVuZGVmaW5lZCA9IHRydWUgfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRFeHRyYU9wdGlvbnM8Rj4ge1xuICAoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IEluZmVyUmV0dXJuPEYsIFM+O1xuICBrZXkoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgcmVhZG9ubHkgc2lkZUVmZmVjdD86IE07XG4gIHJlYWRvbmx5IHNjaGVtYT86IFM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRFeHRyYU9wdGlvbnM8RiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uPiB7XG4gIC8qKiBEZWZhdWx0IGRhdGEgZXhwaXJ5IGxlbmd0aCwgd2lsbCBmYWxsIGJhY2sgdG8gTmV0d29ya01hbmFnZXIgZGVmYXVsdCBpZiBub3QgZGVmaW5lZCAqL1xuICByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBlcnJvciBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUG9sbCB3aXRoIGF0IGxlYXN0IHRoaXMgZnJlcXVlbmN5IGluIG1pbGlzZWNvbmRzICovXG4gIHJlYWRvbmx5IHBvbGxGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKiBNYXJrcyBjYWNoZWQgcmVzb3VyY2VzIGFzIGludmFsaWQgaWYgdGhleSBhcmUgc3RhbGUgKi9cbiAgcmVhZG9ubHkgaW52YWxpZElmU3RhbGU/OiBib29sZWFuO1xuICAvKiogRW5hYmxlcyBvcHRpbWlzdGljIHVwZGF0ZXMgZm9yIHRoaXMgcmVxdWVzdCAtIHVzZXMgcmV0dXJuIHZhbHVlIGFzIGFzc3VtZWQgbmV0d29yayByZXNwb25zZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvRW5kcG9pbnQjZ2V0b3B0aW1pc3RpY3Jlc3BvbnNlIGluc3RlYWRcbiAgICovXG4gIG9wdGltaXN0aWNVcGRhdGU/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBSZXNvbHZlVHlwZTxGPjtcbiAgLyoqIEVuYWJsZXMgb3B0aW1pc3RpYyB1cGRhdGVzIGZvciB0aGlzIHJlcXVlc3QgLSB1c2VzIHJldHVybiB2YWx1ZSBhcyBhc3N1bWVkIG5ldHdvcmsgcmVzcG9uc2UgKi9cbiAgZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlPyhcbiAgICBzbmFwOiBTbmFwc2hvdEludGVyZmFjZSxcbiAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+XG4gICk6IFJlc29sdmVUeXBlPEY+O1xuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHRocm93IG9yIGZhbGxiYWNrIHRvICovXG4gIGVycm9yUG9saWN5PyhlcnJvcjogYW55KTogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xuICAvKiogVXNlci1sYW5kIGV4dHJhIGRhdGEgdG8gc2VuZCAqL1xuICByZWFkb25seSBleHRyYT86IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtczxcbiAgU291cmNlU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBEZXN0IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RmV0Y2hGdW5jdGlvbiwgU2NoZW1hLCBhbnk+LFxuPiA9IFtcbiAgRGVzdCxcbiAgUGFyYW1ldGVyczxEZXN0PlswXSxcbiAgVXBkYXRlRnVuY3Rpb248U291cmNlU2NoZW1hLCBFeGNsdWRlPERlc3RbJ3NjaGVtYSddLCB1bmRlZmluZWQ+Pixcbl07XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZ1bmN0aW9uPFxuICBTb3VyY2VTY2hlbWEgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIERlc3RTY2hlbWEgZXh0ZW5kcyBTY2hlbWEsXG4+ID0gKFxuICBzb3VyY2VSZXN1bHRzOiBOb3JtYWxpemU8U291cmNlU2NoZW1hPixcbiAgZGVzdFJlc3VsdHM6IE5vcm1hbGl6ZTxEZXN0U2NoZW1hPiB8IHVuZGVmaW5lZCxcbikgPT4gTm9ybWFsaXplPERlc3RTY2hlbWE+O1xuXG4vKiogVG8gY2hhbmdlIHZhbHVlcyBvbiB0aGUgc2VydmVyICovXG5leHBvcnQgaW50ZXJmYWNlIE11dGF0ZUVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdHJ1ZT4ge1xuICBzaWRlRWZmZWN0OiB0cnVlO1xufVxuXG4vKiogRm9yIHJldHJpZXZhbCByZXF1ZXN0cyAqL1xuZXhwb3J0IHR5cGUgUmVhZEVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0gRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdW5kZWZpbmVkPjtcbiJdLCJtYXBwaW5ncyI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L0VuZHBvaW50SW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNuYXBzaG90SW50ZXJmYWNlIH0gZnJvbSAnLi9TbmFwc2hvdEludGVyZmFjZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEZldGNoRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IEluZmVyUmV0dXJuIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFJlc29sdmVUeXBlIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJy4uL2ludGVyZmFjZS5qcyc7XG5pbXBvcnQgeyBOb3JtYWxpemUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBEZWZpbmVzIGEgbmV0d29ya2luZyBlbmRwb2ludCAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludEludGVyZmFjZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRFeHRyYU9wdGlvbnM8Rj4ge1xuICAoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IEluZmVyUmV0dXJuPEYsIFM+O1xuICBrZXkoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgcmVhZG9ubHkgc2lkZUVmZmVjdD86IE07XG4gIHJlYWRvbmx5IHNjaGVtYT86IFM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRFeHRyYU9wdGlvbnM8RiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uPiB7XG4gIC8qKiBEZWZhdWx0IGRhdGEgZXhwaXJ5IGxlbmd0aCwgd2lsbCBmYWxsIGJhY2sgdG8gTmV0d29ya01hbmFnZXIgZGVmYXVsdCBpZiBub3QgZGVmaW5lZCAqL1xuICByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBlcnJvciBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUG9sbCB3aXRoIGF0IGxlYXN0IHRoaXMgZnJlcXVlbmN5IGluIG1pbGlzZWNvbmRzICovXG4gIHJlYWRvbmx5IHBvbGxGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKiBNYXJrcyBjYWNoZWQgcmVzb3VyY2VzIGFzIGludmFsaWQgaWYgdGhleSBhcmUgc3RhbGUgKi9cbiAgcmVhZG9ubHkgaW52YWxpZElmU3RhbGU/OiBib29sZWFuO1xuICAvKiogRW5hYmxlcyBvcHRpbWlzdGljIHVwZGF0ZXMgZm9yIHRoaXMgcmVxdWVzdCAtIHVzZXMgcmV0dXJuIHZhbHVlIGFzIGFzc3VtZWQgbmV0d29yayByZXNwb25zZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvRW5kcG9pbnQjZ2V0b3B0aW1pc3RpY3Jlc3BvbnNlIGluc3RlYWRcbiAgICovXG4gIG9wdGltaXN0aWNVcGRhdGU/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBSZXNvbHZlVHlwZTxGPjtcbiAgLyoqIEVuYWJsZXMgb3B0aW1pc3RpYyB1cGRhdGVzIGZvciB0aGlzIHJlcXVlc3QgLSB1c2VzIHJldHVybiB2YWx1ZSBhcyBhc3N1bWVkIG5ldHdvcmsgcmVzcG9uc2UgKi9cbiAgZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlPyhcbiAgICBzbmFwOiBTbmFwc2hvdEludGVyZmFjZSxcbiAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+XG4gICk6IFJlc29sdmVUeXBlPEY+O1xuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHRocm93IG9yIGZhbGxiYWNrIHRvICovXG4gIGVycm9yUG9saWN5PyhlcnJvcjogYW55KTogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xuICAvKiogVXNlci1sYW5kIGV4dHJhIGRhdGEgdG8gc2VuZCAqL1xuICByZWFkb25seSBleHRyYT86IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtczxcbiAgU291cmNlU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBEZXN0IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RmV0Y2hGdW5jdGlvbiwgU2NoZW1hLCBhbnk+LFxuPiA9IFtcbiAgRGVzdCxcbiAgUGFyYW1ldGVyczxEZXN0PlswXSxcbiAgVXBkYXRlRnVuY3Rpb248U291cmNlU2NoZW1hLCBFeGNsdWRlPERlc3RbJ3NjaGVtYSddLCB1bmRlZmluZWQ+Pixcbl07XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZ1bmN0aW9uPFxuICBTb3VyY2VTY2hlbWEgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIERlc3RTY2hlbWEgZXh0ZW5kcyBTY2hlbWEsXG4+ID0gKFxuICBzb3VyY2VSZXN1bHRzOiBOb3JtYWxpemU8U291cmNlU2NoZW1hPixcbiAgZGVzdFJlc3VsdHM6IE5vcm1hbGl6ZTxEZXN0U2NoZW1hPiB8IHVuZGVmaW5lZCxcbikgPT4gTm9ybWFsaXplPERlc3RTY2hlbWE+O1xuXG4vKiogVG8gY2hhbmdlIHZhbHVlcyBvbiB0aGUgc2VydmVyICovXG5leHBvcnQgaW50ZXJmYWNlIE11dGF0ZUVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdHJ1ZT4ge1xuICBzaWRlRWZmZWN0OiB0cnVlO1xufVxuXG4vKiogRm9yIHJldHJpZXZhbCByZXF1ZXN0cyAqL1xuZXhwb3J0IHR5cGUgUmVhZEVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0gRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdW5kZWZpbmVkIHwgZmFsc2U+O1xuIl0sIm1hcHBpbmdzIjoiIn0=

@@ -7,2 +7,2 @@ export var ExpiryStatus = {

// looser version to allow for cross-package version compatibility
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeHBpcnlTdGF0dXMiXSwic291cmNlcyI6WyIuLi9zcmMvRXhwaXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIEV4cGlyeVN0YXR1cyB7XG4gIEludmFsaWQgPSAxLFxuICBJbnZhbGlkSWZTdGFsZSxcbiAgVmFsaWQsXG59XG4vLyBsb29zZXIgdmVyc2lvbiB0byBhbGxvdyBmb3IgY3Jvc3MtcGFja2FnZSB2ZXJzaW9uIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB0eXBlIEV4cGlyeVN0YXR1c0ludGVyZmFjZSA9IDEgfCAyIHwgMztcbiJdLCJtYXBwaW5ncyI6IkFBQUEsV0FBa0JBLFlBQVk7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUs5QiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeHBpcnlTdGF0dXMiLCJJbnZhbGlkIiwiSW52YWxpZElmU3RhbGUiLCJWYWxpZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FeHBpcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gRXhwaXJ5U3RhdHVzIHtcbiAgSW52YWxpZCA9IDEsXG4gIEludmFsaWRJZlN0YWxlLFxuICBWYWxpZCxcbn1cbi8vIGxvb3NlciB2ZXJzaW9uIHRvIGFsbG93IGZvciBjcm9zcy1wYWNrYWdlIHZlcnNpb24gY29tcGF0aWJpbGl0eVxuZXhwb3J0IHR5cGUgRXhwaXJ5U3RhdHVzSW50ZXJmYWNlID0gMSB8IDIgfCAzO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxXQUFrQkEsWUFBWTtFQUFBQyxPQUFBO0VBQUFDLGNBQUE7RUFBQUMsS0FBQTtBQUFBO0FBSzlCIn0=

@@ -15,2 +15,2 @@ Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {

export { denormalize, normalize, isEntity, WeakEntityMap };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlbm9ybWFsaXplIiwiaXNFbnRpdHkiLCJub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZGVmYXVsdCIsImluZmVyUmVzdWx0cyIsIkRFTEVURUQiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IHsgZGVub3JtYWxpemUgfSBmcm9tICcuL2Rlbm9ybWFsaXplLmpzJztcbmltcG9ydCB7IGlzRW50aXR5IH0gZnJvbSAnLi9pc0VudGl0eS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICcuL25vcm1hbGl6ZS5qcyc7XG5pbXBvcnQgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbmZlclJlc3VsdHMgfSBmcm9tICcuL2luZmVyUmVzdWx0cy5qcyc7XG5leHBvcnQgeyBERUxFVEVEIH0gZnJvbSAnLi9zcGVjaWFsLmpzJztcblxuZXhwb3J0IHR5cGUge1xuICBBYnN0cmFjdEluc3RhbmNlVHlwZSxcbiAgTm9ybWFsaXplUmV0dXJuVHlwZSxcbiAgTm9ybWFsaXplZFNjaGVtYSxcbiAgRGVub3JtYWxpemVSZXR1cm5UeXBlLFxuICBEZW5vcm1hbGl6ZUNhY2hlLFxuICBQYXRoLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZW5kcG9pbnQvdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9FeHBpcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3JtYWwuanMnO1xuXG5leHBvcnQgeyBkZW5vcm1hbGl6ZSwgbm9ybWFsaXplLCBpc0VudGl0eSwgV2Vha0VudGl0eU1hcCB9O1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNLENBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFO0VBQ2xELE9BQU9ILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osRUFBRSxFQUFFQyxHQUFHLENBQUM7QUFDdEQsQ0FBQztBQUNILFNBQVNJLFdBQVcsUUFBUSxrQkFBa0I7QUFDOUMsU0FBU0MsUUFBUSxRQUFRLGVBQWU7QUFDeEMsU0FBU0MsU0FBUyxRQUFRLGdCQUFnQjtBQUMxQyxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLFNBQVNDLE9BQU8sSUFBSUMsWUFBWSxRQUFRLG1CQUFtQjtBQUMzRCxTQUFTQyxPQUFPLFFBQVEsY0FBYztBQVV0QyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLGdCQUFnQjtBQUM5QixjQUFjLGFBQWE7QUFDM0IsY0FBYyxhQUFhO0FBRTNCLFNBQVNOLFdBQVcsRUFBRUUsU0FBUyxFQUFFRCxRQUFRLEVBQUVFLGFBQWEifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlbm9ybWFsaXplIiwiaXNFbnRpdHkiLCJub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZGVmYXVsdCIsImluZmVyUmVzdWx0cyIsIkRFTEVURUQiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IHsgZGVub3JtYWxpemUgfSBmcm9tICcuL2Rlbm9ybWFsaXplLmpzJztcbmltcG9ydCB7IGlzRW50aXR5IH0gZnJvbSAnLi9pc0VudGl0eS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICcuL25vcm1hbGl6ZS5qcyc7XG5pbXBvcnQgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbmZlclJlc3VsdHMgfSBmcm9tICcuL2luZmVyUmVzdWx0cy5qcyc7XG5leHBvcnQgeyBERUxFVEVEIH0gZnJvbSAnLi9zcGVjaWFsLmpzJztcblxuZXhwb3J0IHR5cGUge1xuICBBYnN0cmFjdEluc3RhbmNlVHlwZSxcbiAgTm9ybWFsaXplUmV0dXJuVHlwZSxcbiAgTm9ybWFsaXplZFNjaGVtYSxcbiAgRGVub3JtYWxpemVSZXR1cm5UeXBlLFxuICBEZW5vcm1hbGl6ZUNhY2hlLFxuICBQYXRoLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZW5kcG9pbnQvdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9FeHBpcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3JtYWwuanMnO1xuXG5leHBvcnQgeyBkZW5vcm1hbGl6ZSwgbm9ybWFsaXplLCBpc0VudGl0eSwgV2Vha0VudGl0eU1hcCB9O1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNQSxDQUFDQyxFQUFFLEVBQUVDLEdBQUcsRUFBRTtFQUNsRCxPQUFPSCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLEVBQUUsRUFBRUMsR0FBRyxDQUFDO0FBQ3RELENBQUM7QUFDSCxTQUFTSSxXQUFXLFFBQVEsa0JBQWtCO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxlQUFlO0FBQ3hDLFNBQVNDLFNBQVMsUUFBUSxnQkFBZ0I7QUFDMUMsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxTQUFTQyxPQUFPLElBQUlDLFlBQVksUUFBUSxtQkFBbUI7QUFDM0QsU0FBU0MsT0FBTyxRQUFRLGNBQWM7QUFVdEMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxnQkFBZ0I7QUFDOUIsY0FBYyxhQUFhO0FBQzNCLGNBQWMsYUFBYTtBQUUzQixTQUFTTixXQUFXLEVBQUVFLFNBQVMsRUFBRUQsUUFBUSxFQUFFRSxhQUFhIn0=

@@ -25,2 +25,2 @@ import { infer as arrayInfer } from './schemas/Array.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZlciIsImFycmF5SW5mZXIiLCJvYmplY3RJbmZlciIsImluZmVyUmVzdWx0cyIsInNjaGVtYSIsImFyZ3MiLCJpbmRleGVzIiwiZW50aXRpZXMiLCJjYW5JbmZlciIsIm1ldGhvZCIsIkFycmF5IiwiaXNBcnJheSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmZlclJlc3VsdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBTY2hlbWEsXG4gIFNjaGVtYVNpbXBsZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBFbnRpdHlUYWJsZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaW5mZXIgYXMgYXJyYXlJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9BcnJheS5qcyc7XG5pbXBvcnQgeyBpbmZlciBhcyBvYmplY3RJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9PYmplY3QuanMnO1xuaW1wb3J0IHR5cGUgeyBOb3JtYWxpemVOdWxsYWJsZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIEJ1aWxkIHRoZSByZXN1bHQgcGFyYW1ldGVyIHRvIGRlbm9ybWFsaXplIGZyb20gc2NoZW1hIGFsb25lLlxuICogVHJpZXMgdG8gY29tcHV0ZSB0aGUgZW50aXR5IGlkcyBmcm9tIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5mZXJSZXN1bHRzPFMgZXh0ZW5kcyBTY2hlbWE+KFxuICBzY2hlbWE6IFMsXG4gIGFyZ3M6IGFueVtdLFxuICBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXgsXG4gIGVudGl0aWVzOiBFbnRpdHlUYWJsZSA9IHt9LFxuKTogTm9ybWFsaXplTnVsbGFibGU8Uz4ge1xuICAvLyBzY2hlbWEgY2xhc3Nlc1xuICBpZiAoY2FuSW5mZXIoc2NoZW1hKSkge1xuICAgIHJldHVybiBzY2hlbWEuaW5mZXIoYXJncywgaW5kZXhlcywgaW5mZXJSZXN1bHRzLCBlbnRpdGllcyk7XG4gIH1cblxuICAvLyBwbGFpbiBjYXNlXG4gIGlmICh0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0JyAmJiBzY2hlbWEpIHtcbiAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSkgPyBhcnJheUluZmVyIDogb2JqZWN0SW5mZXI7XG4gICAgcmV0dXJuIG1ldGhvZChzY2hlbWEsIGFyZ3MsIGluZGV4ZXMsIGluZmVyUmVzdWx0cywgZW50aXRpZXMpO1xuICB9XG5cbiAgLy8gZmFsbGJhY2sgZm9yIHRoaW5ncyBsaWtlIG51bGwgb3IgdW5kZWZpbmVkXG4gIHJldHVybiBzY2hlbWEgYXMgYW55O1xufVxuXG5mdW5jdGlvbiBjYW5JbmZlcihzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBQaWNrPFNjaGVtYVNpbXBsZSwgJ2luZmVyJz4ge1xuICByZXR1cm4gISFzY2hlbWEgJiYgdHlwZW9mIChzY2hlbWEgYXMgYW55KS5pbmZlciA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdLCJtYXBwaW5ncyI6IkFBTUEsU0FBU0EsS0FBSyxJQUFJQyxVQUFVLFFBQVEsb0JBQW9CO0FBQ3hELFNBQVNELEtBQUssSUFBSUUsV0FBVyxRQUFRLHFCQUFxQjtBQUcxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU0MsWUFBWSxDQUNsQ0MsTUFBUyxFQUNUQyxJQUFXLEVBQ1hDLE9BQXdCLEVBQ3hCQyxRQUFxQixHQUFHLENBQUMsQ0FBQyxFQUNKO0VBQ3RCO0VBQ0EsSUFBSUMsUUFBUSxDQUFDSixNQUFNLENBQUMsRUFBRTtJQUNwQixPQUFPQSxNQUFNLENBQUNKLEtBQUssQ0FBQ0ssSUFBSSxFQUFFQyxPQUFPLEVBQUVILFlBQVksRUFBRUksUUFBUSxDQUFDO0VBQzVEOztFQUVBO0VBQ0EsSUFBSSxPQUFPSCxNQUFNLEtBQUssUUFBUSxJQUFJQSxNQUFNLEVBQUU7SUFDeEMsTUFBTUssTUFBTSxHQUFHQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1AsTUFBTSxDQUFDLEdBQUdILFVBQVUsR0FBR0MsV0FBVztJQUMvRCxPQUFPTyxNQUFNLENBQUNMLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVILFlBQVksRUFBRUksUUFBUSxDQUFDO0VBQzlEOztFQUVBO0VBQ0EsT0FBT0gsTUFBTTtBQUNmO0FBRUEsU0FBU0ksUUFBUSxDQUFDSixNQUFjLEVBQXlDO0VBQ3ZFLE9BQU8sQ0FBQyxDQUFDQSxNQUFNLElBQUksT0FBUUEsTUFBTSxDQUFTSixLQUFLLEtBQUssVUFBVTtBQUNoRSJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZlciIsImFycmF5SW5mZXIiLCJvYmplY3RJbmZlciIsImluZmVyUmVzdWx0cyIsInNjaGVtYSIsImFyZ3MiLCJpbmRleGVzIiwiZW50aXRpZXMiLCJjYW5JbmZlciIsIm1ldGhvZCIsIkFycmF5IiwiaXNBcnJheSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmZlclJlc3VsdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBTY2hlbWEsXG4gIFNjaGVtYVNpbXBsZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBFbnRpdHlUYWJsZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaW5mZXIgYXMgYXJyYXlJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9BcnJheS5qcyc7XG5pbXBvcnQgeyBpbmZlciBhcyBvYmplY3RJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9PYmplY3QuanMnO1xuaW1wb3J0IHR5cGUgeyBOb3JtYWxpemVOdWxsYWJsZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIEJ1aWxkIHRoZSByZXN1bHQgcGFyYW1ldGVyIHRvIGRlbm9ybWFsaXplIGZyb20gc2NoZW1hIGFsb25lLlxuICogVHJpZXMgdG8gY29tcHV0ZSB0aGUgZW50aXR5IGlkcyBmcm9tIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5mZXJSZXN1bHRzPFMgZXh0ZW5kcyBTY2hlbWE+KFxuICBzY2hlbWE6IFMsXG4gIGFyZ3M6IGFueVtdLFxuICBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXgsXG4gIGVudGl0aWVzOiBFbnRpdHlUYWJsZSA9IHt9LFxuKTogTm9ybWFsaXplTnVsbGFibGU8Uz4ge1xuICAvLyBzY2hlbWEgY2xhc3Nlc1xuICBpZiAoY2FuSW5mZXIoc2NoZW1hKSkge1xuICAgIHJldHVybiBzY2hlbWEuaW5mZXIoYXJncywgaW5kZXhlcywgaW5mZXJSZXN1bHRzLCBlbnRpdGllcyk7XG4gIH1cblxuICAvLyBwbGFpbiBjYXNlXG4gIGlmICh0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0JyAmJiBzY2hlbWEpIHtcbiAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSkgPyBhcnJheUluZmVyIDogb2JqZWN0SW5mZXI7XG4gICAgcmV0dXJuIG1ldGhvZChzY2hlbWEsIGFyZ3MsIGluZGV4ZXMsIGluZmVyUmVzdWx0cywgZW50aXRpZXMpO1xuICB9XG5cbiAgLy8gZmFsbGJhY2sgZm9yIHRoaW5ncyBsaWtlIG51bGwgb3IgdW5kZWZpbmVkXG4gIHJldHVybiBzY2hlbWEgYXMgYW55O1xufVxuXG5mdW5jdGlvbiBjYW5JbmZlcihzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBQaWNrPFNjaGVtYVNpbXBsZSwgJ2luZmVyJz4ge1xuICByZXR1cm4gISFzY2hlbWEgJiYgdHlwZW9mIChzY2hlbWEgYXMgYW55KS5pbmZlciA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdLCJtYXBwaW5ncyI6IkFBTUEsU0FBU0EsS0FBSyxJQUFJQyxVQUFVLFFBQVEsb0JBQW9CO0FBQ3hELFNBQVNELEtBQUssSUFBSUUsV0FBVyxRQUFRLHFCQUFxQjtBQUcxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU0MsWUFBWUEsQ0FDbENDLE1BQVMsRUFDVEMsSUFBVyxFQUNYQyxPQUF3QixFQUN4QkMsUUFBcUIsR0FBRyxDQUFDLENBQUMsRUFDSjtFQUN0QjtFQUNBLElBQUlDLFFBQVEsQ0FBQ0osTUFBTSxDQUFDLEVBQUU7SUFDcEIsT0FBT0EsTUFBTSxDQUFDSixLQUFLLENBQUNLLElBQUksRUFBRUMsT0FBTyxFQUFFSCxZQUFZLEVBQUVJLFFBQVEsQ0FBQztFQUM1RDs7RUFFQTtFQUNBLElBQUksT0FBT0gsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxFQUFFO0lBQ3hDLE1BQU1LLE1BQU0sR0FBR0MsS0FBSyxDQUFDQyxPQUFPLENBQUNQLE1BQU0sQ0FBQyxHQUFHSCxVQUFVLEdBQUdDLFdBQVc7SUFDL0QsT0FBT08sTUFBTSxDQUFDTCxNQUFNLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFSCxZQUFZLEVBQUVJLFFBQVEsQ0FBQztFQUM5RDs7RUFFQTtFQUNBLE9BQU9ILE1BQU07QUFDZjtBQUVBLFNBQVNJLFFBQVFBLENBQUNKLE1BQWMsRUFBeUM7RUFDdkUsT0FBTyxDQUFDLENBQUNBLE1BQU0sSUFBSSxPQUFRQSxNQUFNLENBQVNKLEtBQUssS0FBSyxVQUFVO0FBQ2hFIn0=
export function isEntity(schema) {
return schema !== null && schema.pk !== undefined;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsInNjaGVtYSIsInBrIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vc3JjL2lzRW50aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2NoZW1hLCBFbnRpdHlJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZS5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBFbnRpdHlJbnRlcmZhY2Uge1xuICByZXR1cm4gc2NoZW1hICE9PSBudWxsICYmIChzY2hlbWEgYXMgYW55KS5wayAhPT0gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLFFBQVEsQ0FBQ0MsTUFBYyxFQUE2QjtFQUNsRSxPQUFPQSxNQUFNLEtBQUssSUFBSSxJQUFLQSxNQUFNLENBQVNDLEVBQUUsS0FBS0MsU0FBUztBQUM1RCJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsInNjaGVtYSIsInBrIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vc3JjL2lzRW50aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2NoZW1hLCBFbnRpdHlJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZS5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBFbnRpdHlJbnRlcmZhY2Uge1xuICByZXR1cm4gc2NoZW1hICE9PSBudWxsICYmIChzY2hlbWEgYXMgYW55KS5wayAhPT0gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLFFBQVFBLENBQUNDLE1BQWMsRUFBNkI7RUFDbEUsT0FBT0EsTUFBTSxLQUFLLElBQUksSUFBS0EsTUFBTSxDQUFTQyxFQUFFLEtBQUtDLFNBQVM7QUFDNUQifQ==

@@ -35,11 +35,11 @@ import { normalize as arrayNormalize } from './schemas/Array.js';

const inStoreEntity = existingEntities[schemaKey][id];
let inStoreMeta;
// this case we already have this entity in store
if (inStoreEntity) {
var _inStoreMeta$date, _meta$fetchedAt, _inStoreMeta$fetchedA;
const inStoreMeta = entityMeta[schemaKey][id];
if (inStoreEntity && (inStoreMeta = entityMeta[schemaKey][id])) {
var _meta$fetchedAt;
entities[schemaKey][id] = schema.mergeWithStore ? schema.mergeWithStore(inStoreMeta, meta, inStoreEntity, processedEntity) : mergeWithStore(schema, inStoreMeta, meta, inStoreEntity, processedEntity);
entityMeta[schemaKey][id] = {
expiresAt: Math.max(entityExpiresAt, inStoreMeta == null ? void 0 : inStoreMeta.expiresAt),
date: Math.max(meta.date, (_inStoreMeta$date = inStoreMeta == null ? void 0 : inStoreMeta.date) != null ? _inStoreMeta$date : 0),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, (_inStoreMeta$fetchedA = inStoreMeta == null ? void 0 : inStoreMeta.fetchedAt) != null ? _inStoreMeta$fetchedA : 0)
expiresAt: Math.max(entityExpiresAt, inStoreMeta.expiresAt),
date: Math.max(meta.date, inStoreMeta.date),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, inStoreMeta.fetchedAt)
};

@@ -58,3 +58,3 @@ } else {

// update index
if (Array.isArray(schema.indexes)) {
if (schema.indexes) {
const entity = entities[schemaKey][id];

@@ -96,6 +96,4 @@ if (!(schemaKey in indexes)) {

const useIncoming =
// we may have in store but not in meta; so this existance check is still important
!existingMeta || (
// useIncoming should not be used with legacy optimistic
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date);
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date;
if (useIncoming) {

@@ -175,2 +173,2 @@ if (typeof incoming !== typeof existing) {

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJhcnJheU5vcm1hbGl6ZSIsIm9iamVjdE5vcm1hbGl6ZSIsIkRFTEVURUQiLCJ2aXNpdCIsInZhbHVlIiwicGFyZW50Iiwia2V5Iiwic2NoZW1hIiwiYWRkRW50aXR5IiwidmlzaXRlZEVudGl0aWVzIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiYWRkRW50aXRpZXMiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJleGlzdGluZ0VudGl0aWVzIiwiZXhpc3RpbmdJbmRleGVzIiwiZW50aXR5TWV0YSIsIm1ldGEiLCJwcm9jZXNzZWRFbnRpdHkiLCJpZCIsInNjaGVtYUtleSIsImV4aXN0aW5nRW50aXR5IiwibWVyZ2UiLCJlbnRpdHlFeHBpcmVzQXQiLCJleHBpcmVzQXQiLCJpblN0b3JlRW50aXR5IiwiaW5TdG9yZU1ldGEiLCJtZXJnZVdpdGhTdG9yZSIsIk1hdGgiLCJtYXgiLCJkYXRlIiwiZmV0Y2hlZEF0IiwiZW50aXR5IiwiaW5kZXgiLCJpbmRleE1hcCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbnNvbGUiLCJ3YXJuIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuZGVmaW5lZCIsImV4aXN0aW5nTWV0YSIsImluY29taW5nTWV0YSIsImV4aXN0aW5nIiwiaW5jb21pbmciLCJ1c2VJbmNvbWluZyIsImV4cGVjdGVkU2NoZW1hVHlwZSIsImluY2x1ZGVzIiwiaW5wdXQiLCJleGlzdGluZ0VudGl0eU1ldGEiLCJEYXRlIiwibm93IiwiSW5maW5pdHkiLCJyZXN1bHQiLCJzY2hlbWFUeXBlIiwicGsiLCJwYXJzZVdvcmtzIiwicGFyc2UiLCJlIiwiRXJyb3IiLCJuZXdFbnRpdGllcyIsIm5ld0luZGV4ZXMiXSwic291cmNlcyI6WyIuLi9zcmMvbm9ybWFsaXplLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5SW50ZXJmYWNlLCBTY2hlbWEsIE5vcm1hbGl6ZWRJbmRleCB9IGZyb20gJy4vaW50ZXJmYWNlLmpzJztcbmltcG9ydCB7IG5vcm1hbGl6ZSBhcyBhcnJheU5vcm1hbGl6ZSB9IGZyb20gJy4vc2NoZW1hcy9BcnJheS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgYXMgb2JqZWN0Tm9ybWFsaXplIH0gZnJvbSAnLi9zY2hlbWFzL09iamVjdC5qcyc7XG5pbXBvcnQgeyBERUxFVEVEIH0gZnJvbSAnLi9zcGVjaWFsLmpzJztcbmltcG9ydCB0eXBlIHsgTm9ybWFsaXplTnVsbGFibGUsIE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgdmlzaXQgPSAoXG4gIHZhbHVlOiBhbnksXG4gIHBhcmVudDogYW55LFxuICBrZXk6IGFueSxcbiAgc2NoZW1hOiBhbnksXG4gIGFkZEVudGl0eTogKFxuICAgIHNjaGVtYTogRW50aXR5SW50ZXJmYWNlLFxuICAgIHByb2Nlc3NlZEVudGl0eTogYW55LFxuICAgIGlkOiBzdHJpbmcsXG4gICkgPT4gdm9pZCxcbiAgdmlzaXRlZEVudGl0aWVzOiBhbnksXG4pID0+IHtcbiAgaWYgKCF2YWx1ZSB8fCAhc2NoZW1hKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgaWYgKHNjaGVtYS5ub3JtYWxpemUgJiYgdHlwZW9mIHNjaGVtYS5ub3JtYWxpemUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIHZhbHVlO1xuICAgIHJldHVybiBzY2hlbWEubm9ybWFsaXplKFxuICAgICAgdmFsdWUsXG4gICAgICBwYXJlbnQsXG4gICAgICBrZXksXG4gICAgICB2aXNpdCxcbiAgICAgIGFkZEVudGl0eSxcbiAgICAgIHZpc2l0ZWRFbnRpdGllcyxcbiAgICApO1xuICB9XG5cbiAgLy8gc2VyaWFsaXphYmxlXG4gIGlmICh0eXBlb2Ygc2NoZW1hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG5ldyBzY2hlbWEodmFsdWUpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHNjaGVtYSAhPT0gJ29iamVjdCcpIHJldHVybiB2YWx1ZTtcblxuICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSkgPyBhcnJheU5vcm1hbGl6ZSA6IG9iamVjdE5vcm1hbGl6ZTtcbiAgcmV0dXJuIG1ldGhvZChzY2hlbWEsIHZhbHVlLCBwYXJlbnQsIGtleSwgdmlzaXQsIGFkZEVudGl0eSwgdmlzaXRlZEVudGl0aWVzKTtcbn07XG5cbmNvbnN0IGFkZEVudGl0aWVzID1cbiAgKFxuICAgIGVudGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZXhpc3RpbmdFbnRpdGllczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBleGlzdGluZ0luZGV4ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZW50aXR5TWV0YToge1xuICAgICAgW2VudGl0eUtleTogc3RyaW5nXToge1xuICAgICAgICBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgICBkYXRlOiBudW1iZXI7XG4gICAgICAgICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH0sXG4gICAgbWV0YTogeyBleHBpcmVzQXQ6IG51bWJlcjsgZGF0ZTogbnVtYmVyOyBmZXRjaGVkQXQ/OiBudW1iZXIgfSxcbiAgKSA9PlxuICAoc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UsIHByb2Nlc3NlZEVudGl0eTogYW55LCBpZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hS2V5ID0gc2NoZW1hLmtleTtcbiAgICBpZiAoIShzY2hlbWFLZXkgaW4gZW50aXRpZXMpKSB7XG4gICAgICBlbnRpdGllc1tzY2hlbWFLZXldID0ge307XG4gICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV0gPSB7IC4uLmV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XSB9O1xuICAgICAgZW50aXR5TWV0YVtzY2hlbWFLZXldID0geyAuLi5lbnRpdHlNZXRhW3NjaGVtYUtleV0gfTtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0VudGl0eSA9IGVudGl0aWVzW3NjaGVtYUtleV1baWRdO1xuICAgIGlmIChleGlzdGluZ0VudGl0eSkge1xuICAgICAgZW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gPSBzY2hlbWEubWVyZ2UoZXhpc3RpbmdFbnRpdHksIHByb2Nlc3NlZEVudGl0eSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE8oYnJlYWtpbmcpOiBldmVudHVhbGx5IGFzc3VtZSB0aGlzIGV4aXN0cyBhbmQgZG9uJ3QgY2hlY2sgZm9yIGNvbmRpdGlvbmFsLiBwcm9iYWJseSBlYXJseSAyMDIyXG4gICAgICBjb25zdCBlbnRpdHlFeHBpcmVzQXQgPSBzY2hlbWEuZXhwaXJlc0F0XG4gICAgICAgID8gc2NoZW1hLmV4cGlyZXNBdChtZXRhLCBwcm9jZXNzZWRFbnRpdHkpXG4gICAgICAgIDogbWV0YS5leHBpcmVzQXQ7XG5cbiAgICAgIGNvbnN0IGluU3RvcmVFbnRpdHkgPSBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdO1xuICAgICAgLy8gdGhpcyBjYXNlIHdlIGFscmVhZHkgaGF2ZSB0aGlzIGVudGl0eSBpbiBzdG9yZVxuICAgICAgaWYgKGluU3RvcmVFbnRpdHkpIHtcbiAgICAgICAgY29uc3QgaW5TdG9yZU1ldGEgPSBlbnRpdHlNZXRhW3NjaGVtYUtleV1baWRdO1xuICAgICAgICBlbnRpdGllc1tzY2hlbWFLZXldW2lkXSA9IHNjaGVtYS5tZXJnZVdpdGhTdG9yZVxuICAgICAgICAgID8gc2NoZW1hLm1lcmdlV2l0aFN0b3JlKFxuICAgICAgICAgICAgICBpblN0b3JlTWV0YSxcbiAgICAgICAgICAgICAgbWV0YSxcbiAgICAgICAgICAgICAgaW5TdG9yZUVudGl0eSxcbiAgICAgICAgICAgICAgcHJvY2Vzc2VkRW50aXR5LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbWVyZ2VXaXRoU3RvcmUoXG4gICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgaW5TdG9yZU1ldGEsXG4gICAgICAgICAgICAgIG1ldGEsXG4gICAgICAgICAgICAgIGluU3RvcmVFbnRpdHksXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEVudGl0eSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XVtpZF0gPSB7XG4gICAgICAgICAgZXhwaXJlc0F0OiBNYXRoLm1heChlbnRpdHlFeHBpcmVzQXQsIGluU3RvcmVNZXRhPy5leHBpcmVzQXQpLFxuICAgICAgICAgIGRhdGU6IE1hdGgubWF4KG1ldGEuZGF0ZSwgaW5TdG9yZU1ldGE/LmRhdGUgPz8gMCksXG4gICAgICAgICAgZmV0Y2hlZEF0OiBNYXRoLm1heChtZXRhLmZldGNoZWRBdCA/PyAwLCBpblN0b3JlTWV0YT8uZmV0Y2hlZEF0ID8/IDApLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gPSBwcm9jZXNzZWRFbnRpdHk7XG4gICAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XVtpZF0gPSB7XG4gICAgICAgICAgZXhwaXJlc0F0OiBlbnRpdHlFeHBpcmVzQXQsXG4gICAgICAgICAgZGF0ZTogbWV0YS5kYXRlLFxuICAgICAgICAgIGZldGNoZWRBdDogbWV0YS5mZXRjaGVkQXQgPz8gbWV0YS5kYXRlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHVwZGF0ZSBpbmRleFxuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5pbmRleGVzKSkge1xuICAgICAgY29uc3QgZW50aXR5ID0gZW50aXRpZXNbc2NoZW1hS2V5XVtpZF07XG4gICAgICBpZiAoIShzY2hlbWFLZXkgaW4gaW5kZXhlcykpIHtcbiAgICAgICAgaW5kZXhlc1tzY2hlbWFLZXldID0ge307XG4gICAgICAgIGV4aXN0aW5nSW5kZXhlc1tzY2hlbWFLZXldID0geyAuLi5leGlzdGluZ0luZGV4ZXNbc2NoZW1hS2V5XSB9O1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBpbmRleCBvZiBzY2hlbWEuaW5kZXhlcykge1xuICAgICAgICBpZiAoIShpbmRleCBpbiBpbmRleGVzW3NjaGVtYUtleV0pKSB7XG4gICAgICAgICAgZXhpc3RpbmdJbmRleGVzW3NjaGVtYUtleV1baW5kZXhdID0gaW5kZXhlc1tzY2hlbWFLZXldW2luZGV4XSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4TWFwID0gaW5kZXhlc1tzY2hlbWFLZXldW2luZGV4XTtcbiAgICAgICAgaWYgKGV4aXN0aW5nRW50aXR5KSB7XG4gICAgICAgICAgZGVsZXRlIGluZGV4TWFwW2V4aXN0aW5nRW50aXR5W2luZGV4XV07XG4gICAgICAgIH1cbiAgICAgICAgLy8gZW50aXR5IGFscmVhZHkgaW4gY2FjaGUgYnV0IHRoZSBpbmRleCBjaGFuZ2VkXG4gICAgICAgIGlmIChcbiAgICAgICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV0gJiZcbiAgICAgICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdICYmXG4gICAgICAgICAgZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldW2lkXVtpbmRleF0gIT09IGVudGl0eVtpbmRleF1cbiAgICAgICAgKSB7XG4gICAgICAgICAgaW5kZXhNYXBbZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldW2lkXVtpbmRleF1dID0gREVMRVRFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggaW4gZW50aXR5KSB7XG4gICAgICAgICAgaW5kZXhNYXBbZW50aXR5W2luZGV4XV0gPSBpZDtcbiAgICAgICAgfSAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBlbHNlIGlmIChcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgSW5kZXggbm90IGZvdW5kIGluIGVudGl0eS4gSW5kZXhlcyBtdXN0IGJlIHRvcC1sZXZlbCBtZW1iZXJzIG9mIHlvdXIgZW50aXR5LlxuSW5kZXg6ICR7aW5kZXh9XG5FbnRpdHk6ICR7SlNPTi5zdHJpbmdpZnkoZW50aXR5LCB1bmRlZmluZWQsIDIpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHNldCB0aGlzIGFmdGVyIGluZGV4IHVwZGF0ZXMgc28gd2Uga25vdyB3aGF0IGluZGV4ZXMgdG8gcmVtb3ZlIGZyb21cbiAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdID0gZW50aXRpZXNbc2NoZW1hS2V5XVtpZF07XG4gIH07XG5cbi8vIFRPRE8oYnJlYWtpbmcpOiByZW1vdmUgdGhpcyBpbiAyIGJyZWFraW5nIHJlbGVhc2VzXG4vKiogQGRlcHJlY2F0ZWQgdXNlIEVudGl0eS5tZXJnZVN0b3JlKCkgaW5zdGVhZCAqL1xuZnVuY3Rpb24gbWVyZ2VXaXRoU3RvcmUoXG4gIHNjaGVtYTogRW50aXR5SW50ZXJmYWNlPGFueT4sXG4gIGV4aXN0aW5nTWV0YTpcbiAgICB8IHtcbiAgICAgICAgZGF0ZTogbnVtYmVyO1xuICAgICAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQsXG4gIGluY29taW5nTWV0YToge1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGRhdGU6IG51bWJlcjtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIH0sXG4gIGV4aXN0aW5nOiBhbnksXG4gIGluY29taW5nOiBhbnksXG4pIHtcbiAgY29uc3QgdXNlSW5jb21pbmcgPVxuICAgIC8vIHdlIG1heSBoYXZlIGluIHN0b3JlIGJ1dCBub3QgaW4gbWV0YTsgc28gdGhpcyBleGlzdGFuY2UgY2hlY2sgaXMgc3RpbGwgaW1wb3J0YW50XG4gICAgIWV4aXN0aW5nTWV0YSB8fFxuICAgIC8vIHVzZUluY29taW5nIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIGxlZ2FjeSBvcHRpbWlzdGljXG4gICAgKHNjaGVtYS51c2VJbmNvbWluZyAmJiBpbmNvbWluZ01ldGEuZmV0Y2hlZEF0XG4gICAgICA/IHNjaGVtYS51c2VJbmNvbWluZyhleGlzdGluZ01ldGEsIGluY29taW5nTWV0YSwgZXhpc3RpbmcsIGluY29taW5nKVxuICAgICAgOiBleGlzdGluZ01ldGEuZGF0ZSA8PSBpbmNvbWluZ01ldGEuZGF0ZSk7XG4gIGlmICh1c2VJbmNvbWluZykge1xuICAgIGlmICh0eXBlb2YgaW5jb21pbmcgIT09IHR5cGVvZiBleGlzdGluZykge1xuICAgICAgcmV0dXJuIGluY29taW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2NoZW1hLm1lcmdlKGV4aXN0aW5nLCBpbmNvbWluZyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBleGlzdGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBlY3RlZFNjaGVtYVR5cGUoc2NoZW1hOiBTY2hlbWEpIHtcbiAgcmV0dXJuIFsnb2JqZWN0JywgJ2Z1bmN0aW9uJ10uaW5jbHVkZXModHlwZW9mIHNjaGVtYSlcbiAgICA/ICdvYmplY3QnXG4gICAgOiB0eXBlb2Ygc2NoZW1hO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IDxcbiAgUyBleHRlbmRzIFNjaGVtYSA9IFNjaGVtYSxcbiAgRSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ+ID0gUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gID4sXG4gIFIgPSBOb3JtYWxpemVOdWxsYWJsZTxTPixcbj4oXG4gIGlucHV0OiBhbnksXG4gIHNjaGVtYT86IFMsXG4gIGV4aXN0aW5nRW50aXRpZXM6IFJlYWRvbmx5PEU+ID0ge30gYXMgYW55LFxuICBleGlzdGluZ0luZGV4ZXM6IFJlYWRvbmx5PE5vcm1hbGl6ZWRJbmRleD4gPSB7fSxcbiAgZXhpc3RpbmdFbnRpdHlNZXRhOiB7XG4gICAgcmVhZG9ubHkgW2VudGl0eUtleTogc3RyaW5nXToge1xuICAgICAgcmVhZG9ubHkgW3BrOiBzdHJpbmddOiB7XG4gICAgICAgIHJlYWRvbmx5IGRhdGU6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9O1xuICB9ID0ge30sXG4gIG1ldGE6IHsgZXhwaXJlc0F0OiBudW1iZXI7IGRhdGU6IG51bWJlcjsgZmV0Y2hlZEF0PzogbnVtYmVyIH0gPSB7XG4gICAgZGF0ZTogRGF0ZS5ub3coKSxcbiAgICBleHBpcmVzQXQ6IEluZmluaXR5LFxuICAgIGZldGNoZWRBdDogMCxcbiAgfSxcbik6IE5vcm1hbGl6ZWRTY2hlbWE8RSwgUj4gPT4ge1xuICAvLyBubyBzY2hlbWEgbWVhbnMgd2UgZG9uJ3QgcHJvY2VzcyBhdCBhbGxcbiAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkIHx8IHNjaGVtYSA9PT0gbnVsbClcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXM6IGV4aXN0aW5nRW50aXRpZXMsXG4gICAgICBpbmRleGVzOiBleGlzdGluZ0luZGV4ZXMsXG4gICAgICByZXN1bHQ6IGlucHV0LFxuICAgICAgZW50aXR5TWV0YTogZXhpc3RpbmdFbnRpdHlNZXRhLFxuICAgIH07XG5cbiAgY29uc3Qgc2NoZW1hVHlwZSA9IGV4cGVjdGVkU2NoZW1hVHlwZShzY2hlbWEpO1xuICBpZiAoXG4gICAgaW5wdXQgPT09IG51bGwgfHxcbiAgICAodHlwZW9mIGlucHV0ICE9PSBzY2hlbWFUeXBlICYmXG4gICAgICAvLyB3ZSB3aWxsIGFsbG93IGEgRGVsZXRlIHNjaGVtYSB0byBiZSBhIHN0cmluZyBvciBvYmplY3RcbiAgICAgICEoXG4gICAgICAgIChzY2hlbWEgYXMgYW55KS5rZXkgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAoc2NoZW1hIGFzIGFueSkucGsgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgICApKVxuICApIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zdCBwYXJzZVdvcmtzID0gKGlucHV0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIEpTT04ucGFyc2UoaW5wdXQpICE9PSAnc3RyaW5nJztcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnICYmIHBhcnNlV29ya3MoaW5wdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm9ybWFsaXppbmcgYSBzdHJpbmcsIGJ1dCB0aGlzIGRvZXMgbWF0Y2ggc2NoZW1hLlxuXG5QYXJzaW5nIHRoaXMgaW5wdXQgc3RyaW5nIGFzIEpTT04gd29ya2VkLiBUaGlzIGxpa2VseSBpbmRpY2F0ZXMgZmV0Y2ggZnVuY3Rpb24gZGlkIG5vdCBwYXJzZVxudGhlIEpTT04uIEJ5IGRlZmF1bHQsIHRoaXMgb25seSBoYXBwZW5zIGlmIFwiY29udGVudC10eXBlXCIgaGVhZGVyIGluY2x1ZGVzIFwianNvblwiLlxuU2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cbiAgU2NoZW1hOiAke0pTT04uc3RyaW5naWZ5KHNjaGVtYSwgdW5kZWZpbmVkLCAyKX1cbiAgSW5wdXQ6IFwiJHtpbnB1dH1cImApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVbmV4cGVjdGVkIGlucHV0IGdpdmVuIHRvIG5vcm1hbGl6ZS4gRXhwZWN0ZWQgdHlwZSB0byBiZSBcIiR7c2NoZW1hVHlwZX1cIiwgZm91bmQgXCIke1xuICAgICAgICAgICAgaW5wdXQgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgaW5wdXRcbiAgICAgICAgICB9XCIuXG5cbiAgICAgICAgICBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoc2NoZW1hLCB1bmRlZmluZWQsIDIpfVxuICAgICAgICAgIElucHV0OiBcIiR7aW5wdXR9XCJgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmV4cGVjdGVkIGlucHV0IGdpdmVuIHRvIG5vcm1hbGl6ZS4gRXhwZWN0ZWQgdHlwZSB0byBiZSBcIiR7c2NoZW1hVHlwZX1cIiwgZm91bmQgXCIke1xuICAgICAgICAgIGlucHV0ID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIGlucHV0XG4gICAgICAgIH1cIi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBuZXdFbnRpdGllczogRSA9IHt9IGFzIGFueTtcbiAgY29uc3QgbmV3SW5kZXhlczogTm9ybWFsaXplZEluZGV4ID0ge30gYXMgYW55O1xuICBjb25zdCBlbnRpdGllczogRSA9IHsgLi4uZXhpc3RpbmdFbnRpdGllcyB9IGFzIGFueTtcbiAgY29uc3QgaW5kZXhlczogTm9ybWFsaXplZEluZGV4ID0geyAuLi5leGlzdGluZ0luZGV4ZXMgfTtcbiAgY29uc3QgZW50aXR5TWV0YTogYW55ID0geyAuLi5leGlzdGluZ0VudGl0eU1ldGEgfTtcbiAgY29uc3QgYWRkRW50aXR5ID0gYWRkRW50aXRpZXMoXG4gICAgbmV3RW50aXRpZXMsXG4gICAgbmV3SW5kZXhlcyxcbiAgICBlbnRpdGllcyxcbiAgICBpbmRleGVzLFxuICAgIGVudGl0eU1ldGEsXG4gICAgbWV0YSxcbiAgKTtcbiAgY29uc3QgdmlzaXRlZEVudGl0aWVzID0ge307XG5cbiAgY29uc3QgcmVzdWx0ID0gdmlzaXQoXG4gICAgaW5wdXQsXG4gICAgaW5wdXQsXG4gICAgdW5kZWZpbmVkLFxuICAgIHNjaGVtYSxcbiAgICBhZGRFbnRpdHksXG4gICAgdmlzaXRlZEVudGl0aWVzLFxuICApO1xuICByZXR1cm4geyBlbnRpdGllcywgaW5kZXhlcywgcmVzdWx0LCBlbnRpdHlNZXRhIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxTQUFTLElBQUlDLGNBQWMsUUFBUSxvQkFBb0I7QUFDaEUsU0FBU0QsU0FBUyxJQUFJRSxlQUFlLFFBQVEscUJBQXFCO0FBQ2xFLFNBQVNDLE9BQU8sUUFBUSxjQUFjO0FBR3RDLE1BQU1DLEtBQUssR0FBRyxDQUNaQyxLQUFVLEVBQ1ZDLE1BQVcsRUFDWEMsR0FBUSxFQUNSQyxNQUFXLEVBQ1hDLFNBSVMsRUFDVEMsZUFBb0IsS0FDakI7RUFDSCxJQUFJLENBQUNMLEtBQUssSUFBSSxDQUFDRyxNQUFNLEVBQUU7SUFDckIsT0FBT0gsS0FBSztFQUNkO0VBRUEsSUFBSUcsTUFBTSxDQUFDUixTQUFTLElBQUksT0FBT1EsTUFBTSxDQUFDUixTQUFTLEtBQUssVUFBVSxFQUFFO0lBQzlELElBQUksT0FBT0ssS0FBSyxLQUFLLFFBQVEsRUFBRSxPQUFPQSxLQUFLO0lBQzNDLE9BQU9HLE1BQU0sQ0FBQ1IsU0FBUyxDQUNyQkssS0FBSyxFQUNMQyxNQUFNLEVBQ05DLEdBQUcsRUFDSEgsS0FBSyxFQUNMSyxTQUFTLEVBQ1RDLGVBQWUsQ0FDaEI7RUFDSDs7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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJhcnJheU5vcm1hbGl6ZSIsIm9iamVjdE5vcm1hbGl6ZSIsIkRFTEVURUQiLCJ2aXNpdCIsInZhbHVlIiwicGFyZW50Iiwia2V5Iiwic2NoZW1hIiwiYWRkRW50aXR5IiwidmlzaXRlZEVudGl0aWVzIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiYWRkRW50aXRpZXMiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJleGlzdGluZ0VudGl0aWVzIiwiZXhpc3RpbmdJbmRleGVzIiwiZW50aXR5TWV0YSIsIm1ldGEiLCJwcm9jZXNzZWRFbnRpdHkiLCJpZCIsInNjaGVtYUtleSIsIk9iamVjdCIsImFzc2lnbiIsImV4aXN0aW5nRW50aXR5IiwibWVyZ2UiLCJlbnRpdHlFeHBpcmVzQXQiLCJleHBpcmVzQXQiLCJpblN0b3JlRW50aXR5IiwiaW5TdG9yZU1ldGEiLCJfbWV0YSRmZXRjaGVkQXQiLCJtZXJnZVdpdGhTdG9yZSIsIk1hdGgiLCJtYXgiLCJkYXRlIiwiZmV0Y2hlZEF0IiwiX21ldGEkZmV0Y2hlZEF0MiIsImVudGl0eSIsImluZGV4IiwiaW5kZXhNYXAiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJleGlzdGluZ01ldGEiLCJpbmNvbWluZ01ldGEiLCJleGlzdGluZyIsImluY29taW5nIiwidXNlSW5jb21pbmciLCJleHBlY3RlZFNjaGVtYVR5cGUiLCJpbmNsdWRlcyIsImlucHV0IiwiZXhpc3RpbmdFbnRpdHlNZXRhIiwiRGF0ZSIsIm5vdyIsIkluZmluaXR5IiwicmVzdWx0Iiwic2NoZW1hVHlwZSIsInBrIiwicGFyc2VXb3JrcyIsInBhcnNlIiwiZSIsIkVycm9yIiwibmV3RW50aXRpZXMiLCJuZXdJbmRleGVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eUludGVyZmFjZSwgU2NoZW1hLCBOb3JtYWxpemVkSW5kZXggfSBmcm9tICcuL2ludGVyZmFjZS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgYXMgYXJyYXlOb3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvQXJyYXkuanMnO1xuaW1wb3J0IHsgbm9ybWFsaXplIGFzIG9iamVjdE5vcm1hbGl6ZSB9IGZyb20gJy4vc2NoZW1hcy9PYmplY3QuanMnO1xuaW1wb3J0IHsgREVMRVRFRCB9IGZyb20gJy4vc3BlY2lhbC5qcyc7XG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZU51bGxhYmxlLCBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNvbnN0IHZpc2l0ID0gKFxuICB2YWx1ZTogYW55LFxuICBwYXJlbnQ6IGFueSxcbiAga2V5OiBhbnksXG4gIHNjaGVtYTogYW55LFxuICBhZGRFbnRpdHk6IChcbiAgICBzY2hlbWE6IEVudGl0eUludGVyZmFjZSxcbiAgICBwcm9jZXNzZWRFbnRpdHk6IGFueSxcbiAgICBpZDogc3RyaW5nLFxuICApID0+IHZvaWQsXG4gIHZpc2l0ZWRFbnRpdGllczogYW55LFxuKSA9PiB7XG4gIGlmICghdmFsdWUgfHwgIXNjaGVtYSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmIChzY2hlbWEubm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEubm9ybWFsaXplID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiB2YWx1ZTtcbiAgICByZXR1cm4gc2NoZW1hLm5vcm1hbGl6ZShcbiAgICAgIHZhbHVlLFxuICAgICAgcGFyZW50LFxuICAgICAga2V5LFxuICAgICAgdmlzaXQsXG4gICAgICBhZGRFbnRpdHksXG4gICAgICB2aXNpdGVkRW50aXRpZXMsXG4gICAgKTtcbiAgfVxuXG4gIC8vIHNlcmlhbGl6YWJsZVxuICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBuZXcgc2NoZW1hKHZhbHVlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBzY2hlbWEgIT09ICdvYmplY3QnKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3QgbWV0aG9kID0gQXJyYXkuaXNBcnJheShzY2hlbWEpID8gYXJyYXlOb3JtYWxpemUgOiBvYmplY3ROb3JtYWxpemU7XG4gIHJldHVybiBtZXRob2Qoc2NoZW1hLCB2YWx1ZSwgcGFyZW50LCBrZXksIHZpc2l0LCBhZGRFbnRpdHksIHZpc2l0ZWRFbnRpdGllcyk7XG59O1xuXG5jb25zdCBhZGRFbnRpdGllcyA9XG4gIChcbiAgICBlbnRpdGllczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGV4aXN0aW5nRW50aXRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZXhpc3RpbmdJbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGVudGl0eU1ldGE6IHtcbiAgICAgIFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgICAgW3BrOiBzdHJpbmddOiB7XG4gICAgICAgICAgZGF0ZTogbnVtYmVyO1xuICAgICAgICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9LFxuICAgIG1ldGE6IHsgZXhwaXJlc0F0OiBudW1iZXI7IGRhdGU6IG51bWJlcjsgZmV0Y2hlZEF0PzogbnVtYmVyIH0sXG4gICkgPT5cbiAgKHNjaGVtYTogRW50aXR5SW50ZXJmYWNlLCBwcm9jZXNzZWRFbnRpdHk6IGFueSwgaWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHNjaGVtYUtleSA9IHNjaGVtYS5rZXk7XG4gICAgaWYgKCEoc2NoZW1hS2V5IGluIGVudGl0aWVzKSkge1xuICAgICAgZW50aXRpZXNbc2NoZW1hS2V5XSA9IHt9O1xuICAgICAgZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldID0geyAuLi5leGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV0gfTtcbiAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XSA9IHsgLi4uZW50aXR5TWV0YVtzY2hlbWFLZXldIH07XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdFbnRpdHkgPSBlbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgICBpZiAoZXhpc3RpbmdFbnRpdHkpIHtcbiAgICAgIGVudGl0aWVzW3NjaGVtYUtleV1baWRdID0gc2NoZW1hLm1lcmdlKGV4aXN0aW5nRW50aXR5LCBwcm9jZXNzZWRFbnRpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUT0RPKGJyZWFraW5nKTogZXZlbnR1YWxseSBhc3N1bWUgdGhpcyBleGlzdHMgYW5kIGRvbid0IGNoZWNrIGZvciBjb25kaXRpb25hbC4gcHJvYmFibHkgZWFybHkgMjAyMlxuICAgICAgY29uc3QgZW50aXR5RXhwaXJlc0F0ID0gc2NoZW1hLmV4cGlyZXNBdFxuICAgICAgICA/IHNjaGVtYS5leHBpcmVzQXQobWV0YSwgcHJvY2Vzc2VkRW50aXR5KVxuICAgICAgICA6IG1ldGEuZXhwaXJlc0F0O1xuXG4gICAgICBjb25zdCBpblN0b3JlRW50aXR5ID0gZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgICAgIGxldCBpblN0b3JlTWV0YToge1xuICAgICAgICBkYXRlOiBudW1iZXI7XG4gICAgICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgICAvLyB0aGlzIGNhc2Ugd2UgYWxyZWFkeSBoYXZlIHRoaXMgZW50aXR5IGluIHN0b3JlXG4gICAgICBpZiAoaW5TdG9yZUVudGl0eSAmJiAoaW5TdG9yZU1ldGEgPSBlbnRpdHlNZXRhW3NjaGVtYUtleV1baWRdKSkge1xuICAgICAgICBlbnRpdGllc1tzY2hlbWFLZXldW2lkXSA9IHNjaGVtYS5tZXJnZVdpdGhTdG9yZVxuICAgICAgICAgID8gc2NoZW1hLm1lcmdlV2l0aFN0b3JlKFxuICAgICAgICAgICAgICBpblN0b3JlTWV0YSxcbiAgICAgICAgICAgICAgbWV0YSxcbiAgICAgICAgICAgICAgaW5TdG9yZUVudGl0eSxcbiAgICAgICAgICAgICAgcHJvY2Vzc2VkRW50aXR5LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbWVyZ2VXaXRoU3RvcmUoXG4gICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgaW5TdG9yZU1ldGEsXG4gICAgICAgICAgICAgIG1ldGEsXG4gICAgICAgICAgICAgIGluU3RvcmVFbnRpdHksXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEVudGl0eSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XVtpZF0gPSB7XG4gICAgICAgICAgZXhwaXJlc0F0OiBNYXRoLm1heChlbnRpdHlFeHBpcmVzQXQsIGluU3RvcmVNZXRhLmV4cGlyZXNBdCksXG4gICAgICAgICAgZGF0ZTogTWF0aC5tYXgobWV0YS5kYXRlLCBpblN0b3JlTWV0YS5kYXRlKSxcbiAgICAgICAgICBmZXRjaGVkQXQ6IE1hdGgubWF4KG1ldGEuZmV0Y2hlZEF0ID8/IDAsIGluU3RvcmVNZXRhLmZldGNoZWRBdCksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRpdGllc1tzY2hlbWFLZXldW2lkXSA9IHByb2Nlc3NlZEVudGl0eTtcbiAgICAgICAgZW50aXR5TWV0YVtzY2hlbWFLZXldW2lkXSA9IHtcbiAgICAgICAgICBleHBpcmVzQXQ6IGVudGl0eUV4cGlyZXNBdCxcbiAgICAgICAgICBkYXRlOiBtZXRhLmRhdGUsXG4gICAgICAgICAgZmV0Y2hlZEF0OiBtZXRhLmZldGNoZWRBdCA/PyBtZXRhLmRhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIGluZGV4XG4gICAgaWYgKHNjaGVtYS5pbmRleGVzKSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSBlbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgICAgIGlmICghKHNjaGVtYUtleSBpbiBpbmRleGVzKSkge1xuICAgICAgICBpbmRleGVzW3NjaGVtYUtleV0gPSB7fTtcbiAgICAgICAgZXhpc3RpbmdJbmRleGVzW3NjaGVtYUtleV0gPSB7IC4uLmV4aXN0aW5nSW5kZXhlc1tzY2hlbWFLZXldIH07XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGluZGV4IG9mIHNjaGVtYS5pbmRleGVzKSB7XG4gICAgICAgIGlmICghKGluZGV4IGluIGluZGV4ZXNbc2NoZW1hS2V5XSkpIHtcbiAgICAgICAgICBleGlzdGluZ0luZGV4ZXNbc2NoZW1hS2V5XVtpbmRleF0gPSBpbmRleGVzW3NjaGVtYUtleV1baW5kZXhdID0ge307XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhNYXAgPSBpbmRleGVzW3NjaGVtYUtleV1baW5kZXhdO1xuICAgICAgICBpZiAoZXhpc3RpbmdFbnRpdHkpIHtcbiAgICAgICAgICBkZWxldGUgaW5kZXhNYXBbZXhpc3RpbmdFbnRpdHlbaW5kZXhdXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbnRpdHkgYWxyZWFkeSBpbiBjYWNoZSBidXQgdGhlIGluZGV4IGNoYW5nZWRcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XSAmJlxuICAgICAgICAgIGV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gJiZcbiAgICAgICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdW2luZGV4XSAhPT0gZW50aXR5W2luZGV4XVxuICAgICAgICApIHtcbiAgICAgICAgICBpbmRleE1hcFtleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdW2luZGV4XV0gPSBERUxFVEVEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCBpbiBlbnRpdHkpIHtcbiAgICAgICAgICBpbmRleE1hcFtlbnRpdHlbaW5kZXhdXSA9IGlkO1xuICAgICAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGVsc2UgaWYgKFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBJbmRleCBub3QgZm91bmQgaW4gZW50aXR5LiBJbmRleGVzIG11c3QgYmUgdG9wLWxldmVsIG1lbWJlcnMgb2YgeW91ciBlbnRpdHkuXG5JbmRleDogJHtpbmRleH1cbkVudGl0eTogJHtKU09OLnN0cmluZ2lmeShlbnRpdHksIHVuZGVmaW5lZCwgMil9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gc2V0IHRoaXMgYWZ0ZXIgaW5kZXggdXBkYXRlcyBzbyB3ZSBrbm93IHdoYXQgaW5kZXhlcyB0byByZW1vdmUgZnJvbVxuICAgIGV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gPSBlbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgfTtcblxuLy8gVE9ETyhicmVha2luZyk6IHJlbW92ZSB0aGlzIGluIDIgYnJlYWtpbmcgcmVsZWFzZXNcbi8qKiBAZGVwcmVjYXRlZCB1c2UgRW50aXR5Lm1lcmdlU3RvcmUoKSBpbnN0ZWFkICovXG5mdW5jdGlvbiBtZXJnZVdpdGhTdG9yZShcbiAgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2U8YW55PixcbiAgZXhpc3RpbmdNZXRhOiB7XG4gICAgZGF0ZTogbnVtYmVyO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICB9LFxuICBpbmNvbWluZ01ldGE6IHtcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICBkYXRlOiBudW1iZXI7XG4gICAgZmV0Y2hlZEF0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB9LFxuICBleGlzdGluZzogYW55LFxuICBpbmNvbWluZzogYW55LFxuKSB7XG4gIGNvbnN0IHVzZUluY29taW5nID1cbiAgICAvLyB1c2VJbmNvbWluZyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCBsZWdhY3kgb3B0aW1pc3RpY1xuICAgIHNjaGVtYS51c2VJbmNvbWluZyAmJiBpbmNvbWluZ01ldGEuZmV0Y2hlZEF0XG4gICAgICA/IHNjaGVtYS51c2VJbmNvbWluZyhleGlzdGluZ01ldGEsIGluY29taW5nTWV0YSwgZXhpc3RpbmcsIGluY29taW5nKVxuICAgICAgOiBleGlzdGluZ01ldGEuZGF0ZSA8PSBpbmNvbWluZ01ldGEuZGF0ZTtcbiAgaWYgKHVzZUluY29taW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpbmNvbWluZyAhPT0gdHlwZW9mIGV4aXN0aW5nKSB7XG4gICAgICByZXR1cm4gaW5jb21pbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzY2hlbWEubWVyZ2UoZXhpc3RpbmcsIGluY29taW5nKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4cGVjdGVkU2NoZW1hVHlwZShzY2hlbWE6IFNjaGVtYSkge1xuICByZXR1cm4gWydvYmplY3QnLCAnZnVuY3Rpb24nXS5pbmNsdWRlcyh0eXBlb2Ygc2NoZW1hKVxuICAgID8gJ29iamVjdCdcbiAgICA6IHR5cGVvZiBzY2hlbWE7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gPFxuICBTIGV4dGVuZHMgU2NoZW1hID0gU2NoZW1hLFxuICBFIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZD4gPSBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgPixcbiAgUiA9IE5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuPihcbiAgaW5wdXQ6IGFueSxcbiAgc2NoZW1hPzogUyxcbiAgZXhpc3RpbmdFbnRpdGllczogUmVhZG9ubHk8RT4gPSB7fSBhcyBhbnksXG4gIGV4aXN0aW5nSW5kZXhlczogUmVhZG9ubHk8Tm9ybWFsaXplZEluZGV4PiA9IHt9LFxuICBleGlzdGluZ0VudGl0eU1ldGE6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gIH0gPSB7fSxcbiAgbWV0YTogeyBleHBpcmVzQXQ6IG51bWJlcjsgZGF0ZTogbnVtYmVyOyBmZXRjaGVkQXQ/OiBudW1iZXIgfSA9IHtcbiAgICBkYXRlOiBEYXRlLm5vdygpLFxuICAgIGV4cGlyZXNBdDogSW5maW5pdHksXG4gICAgZmV0Y2hlZEF0OiAwLFxuICB9LFxuKTogTm9ybWFsaXplZFNjaGVtYTxFLCBSPiA9PiB7XG4gIC8vIG5vIHNjaGVtYSBtZWFucyB3ZSBkb24ndCBwcm9jZXNzIGF0IGFsbFxuICBpZiAoc2NoZW1hID09PSB1bmRlZmluZWQgfHwgc2NoZW1hID09PSBudWxsKVxuICAgIHJldHVybiB7XG4gICAgICBlbnRpdGllczogZXhpc3RpbmdFbnRpdGllcyxcbiAgICAgIGluZGV4ZXM6IGV4aXN0aW5nSW5kZXhlcyxcbiAgICAgIHJlc3VsdDogaW5wdXQsXG4gICAgICBlbnRpdHlNZXRhOiBleGlzdGluZ0VudGl0eU1ldGEsXG4gICAgfTtcblxuICBjb25zdCBzY2hlbWFUeXBlID0gZXhwZWN0ZWRTY2hlbWFUeXBlKHNjaGVtYSk7XG4gIGlmIChcbiAgICBpbnB1dCA9PT0gbnVsbCB8fFxuICAgICh0eXBlb2YgaW5wdXQgIT09IHNjaGVtYVR5cGUgJiZcbiAgICAgIC8vIHdlIHdpbGwgYWxsb3cgYSBEZWxldGUgc2NoZW1hIHRvIGJlIGEgc3RyaW5nIG9yIG9iamVjdFxuICAgICAgIShcbiAgICAgICAgKHNjaGVtYSBhcyBhbnkpLmtleSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIChzY2hlbWEgYXMgYW55KS5wayA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICAgICkpXG4gICkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnN0IHBhcnNlV29ya3MgPSAoaW5wdXQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgSlNPTi5wYXJzZShpbnB1dCkgIT09ICdzdHJpbmcnO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgJiYgcGFyc2VXb3JrcyhpbnB1dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3JtYWxpemluZyBhIHN0cmluZywgYnV0IHRoaXMgZG9lcyBtYXRjaCBzY2hlbWEuXG5cblBhcnNpbmcgdGhpcyBpbnB1dCBzdHJpbmcgYXMgSlNPTiB3b3JrZWQuIFRoaXMgbGlrZWx5IGluZGljYXRlcyBmZXRjaCBmdW5jdGlvbiBkaWQgbm90IHBhcnNlXG50aGUgSlNPTi4gQnkgZGVmYXVsdCwgdGhpcyBvbmx5IGhhcHBlbnMgaWYgXCJjb250ZW50LXR5cGVcIiBoZWFkZXIgaW5jbHVkZXMgXCJqc29uXCIuXG5TZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2UgZm9yIG1vcmUgaW5mb3JtYXRpb25cblxuICBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoc2NoZW1hLCB1bmRlZmluZWQsIDIpfVxuICBJbnB1dDogXCIke2lucHV0fVwiYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuZXhwZWN0ZWQgaW5wdXQgZ2l2ZW4gdG8gbm9ybWFsaXplLiBFeHBlY3RlZCB0eXBlIHRvIGJlIFwiJHtzY2hlbWFUeXBlfVwiLCBmb3VuZCBcIiR7XG4gICAgICAgICAgICBpbnB1dCA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBpbnB1dFxuICAgICAgICAgIH1cIi5cblxuICAgICAgICAgIFNjaGVtYTogJHtKU09OLnN0cmluZ2lmeShzY2hlbWEsIHVuZGVmaW5lZCwgMil9XG4gICAgICAgICAgSW5wdXQ6IFwiJHtpbnB1dH1cImAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVuZXhwZWN0ZWQgaW5wdXQgZ2l2ZW4gdG8gbm9ybWFsaXplLiBFeHBlY3RlZCB0eXBlIHRvIGJlIFwiJHtzY2hlbWFUeXBlfVwiLCBmb3VuZCBcIiR7XG4gICAgICAgICAgaW5wdXQgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgaW5wdXRcbiAgICAgICAgfVwiLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5ld0VudGl0aWVzOiBFID0ge30gYXMgYW55O1xuICBjb25zdCBuZXdJbmRleGVzOiBOb3JtYWxpemVkSW5kZXggPSB7fSBhcyBhbnk7XG4gIGNvbnN0IGVudGl0aWVzOiBFID0geyAuLi5leGlzdGluZ0VudGl0aWVzIH0gYXMgYW55O1xuICBjb25zdCBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXggPSB7IC4uLmV4aXN0aW5nSW5kZXhlcyB9O1xuICBjb25zdCBlbnRpdHlNZXRhOiBhbnkgPSB7IC4uLmV4aXN0aW5nRW50aXR5TWV0YSB9O1xuICBjb25zdCBhZGRFbnRpdHkgPSBhZGRFbnRpdGllcyhcbiAgICBuZXdFbnRpdGllcyxcbiAgICBuZXdJbmRleGVzLFxuICAgIGVudGl0aWVzLFxuICAgIGluZGV4ZXMsXG4gICAgZW50aXR5TWV0YSxcbiAgICBtZXRhLFxuICApO1xuICBjb25zdCB2aXNpdGVkRW50aXRpZXMgPSB7fTtcblxuICBjb25zdCByZXN1bHQgPSB2aXNpdChcbiAgICBpbnB1dCxcbiAgICBpbnB1dCxcbiAgICB1bmRlZmluZWQsXG4gICAgc2NoZW1hLFxuICAgIGFkZEVudGl0eSxcbiAgICB2aXNpdGVkRW50aXRpZXMsXG4gICk7XG4gIHJldHVybiB7IGVudGl0aWVzLCBpbmRleGVzLCByZXN1bHQsIGVudGl0eU1ldGEgfTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLFNBQVMsSUFBSUMsY0FBYyxRQUFRLG9CQUFvQjtBQUNoRSxTQUFTRCxTQUFTLElBQUlFLGVBQWUsUUFBUSxxQkFBcUI7QUFDbEUsU0FBU0MsT0FBTyxRQUFRLGNBQWM7QUFHdEMsTUFBTUMsS0FBSyxHQUFHQSxDQUNaQyxLQUFVLEVBQ1ZDLE1BQVcsRUFDWEMsR0FBUSxFQUNSQyxNQUFXLEVBQ1hDLFNBSVMsRUFDVEMsZUFBb0IsS0FDakI7RUFDSCxJQUFJLENBQUNMLEtBQUssSUFBSSxDQUFDRyxNQUFNLEVBQUU7SUFDckIsT0FBT0gsS0FBSztFQUNkO0VBRUEsSUFBSUcsTUFBTSxDQUFDUixTQUFTLElBQUksT0FBT1EsTUFBTSxDQUFDUixTQUFTLEtBQUssVUFBVSxFQUFFO0lBQzlELElBQUksT0FBT0ssS0FBSyxLQUFLLFFBQVEsRUFBRSxPQUFPQSxLQUFLO0lBQzNDLE9BQU9HLE1BQU0sQ0FBQ1IsU0FBUyxDQUNyQkssS0FBSyxFQUNMQyxNQUFNLEVBQ05DLEdBQUcsRUFDSEgsS0FBSyxFQUNMSyxTQUFTLEVBQ1RDLGVBQWUsQ0FDaEI7RUFDSDs7RUFFQTtFQUNBLElBQUksT0FBT0Ys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

@@ -28,2 +28,2 @@ const validateSchema = definition => {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2YWxpZGF0ZVNjaGVtYSIsImRlZmluaXRpb24iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc0FycmF5IiwiQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImdldFZhbHVlcyIsImlucHV0IiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsImZpbHRlckVtcHR5IiwiaXRlbSIsImRlbGV0ZWRJdGVtIiwidW5kZWZpbmVkIiwibm9ybWFsaXplIiwic2NoZW1hIiwicGFyZW50IiwidmlzaXQiLCJhZGRFbnRpdHkiLCJ2aXNpdGVkRW50aXRpZXMiLCJ2YWx1ZXMiLCJ2YWx1ZSIsImluZGV4IiwiZGVub3JtYWxpemUiLCJ1bnZpc2l0IiwiZW50aXR5T3JJZCIsImZpbHRlciIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvQXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdmFsaWRhdGVTY2hlbWEgPSBkZWZpbml0aW9uID0+IHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKTtcbiAgICBpZiAoaXNBcnJheSAmJiBkZWZpbml0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIHNjaGVtYSBkZWZpbml0aW9uIHRvIGJlIGEgc2luZ2xlIHNjaGVtYSwgYnV0IGZvdW5kICR7ZGVmaW5pdGlvbi5sZW5ndGh9LmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWZpbml0aW9uWzBdO1xufTtcblxuY29uc3QgZ2V0VmFsdWVzID0gaW5wdXQgPT5cbiAgQXJyYXkuaXNBcnJheShpbnB1dCkgPyBpbnB1dCA6IE9iamVjdC5rZXlzKGlucHV0KS5tYXAoa2V5ID0+IGlucHV0W2tleV0pO1xuXG5jb25zdCBmaWx0ZXJFbXB0eSA9IChbaXRlbSwgLCBkZWxldGVkSXRlbV0pID0+XG4gIGl0ZW0gIT09IHVuZGVmaW5lZCAmJiAhZGVsZXRlZEl0ZW07XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICBwYXJlbnQ6IGFueSxcbiAga2V5OiBhbnksXG4gIHZpc2l0OiBhbnksXG4gIGFkZEVudGl0eTogYW55LFxuICB2aXNpdGVkRW50aXRpZXM6IGFueSxcbikgPT4ge1xuICBzY2hlbWEgPSB2YWxpZGF0ZVNjaGVtYShzY2hlbWEpO1xuXG4gIGNvbnN0IHZhbHVlcyA9IGdldFZhbHVlcyhpbnB1dCk7XG5cbiAgLy8gU3BlY2lhbCBjYXNlOiBBcnJheXMgcGFzcyAqdGhlaXIqIHBhcmVudCBvbiB0byB0aGVpciBjaGlsZHJlbiwgc2luY2UgdGhlcmVcbiAgLy8gaXMgbm90IGFueSBzcGVjaWFsIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIGdhdGhlcmVkIGZyb20gdGhlbXNlbHZlcyBkaXJlY3RseVxuICByZXR1cm4gdmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PlxuICAgIHZpc2l0KHZhbHVlLCBwYXJlbnQsIGtleSwgc2NoZW1hLCBhZGRFbnRpdHksIHZpc2l0ZWRFbnRpdGllcyksXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBzdXNwZW5kOiBib29sZWFuXSA9PiB7XG4gIHNjaGVtYSA9IHZhbGlkYXRlU2NoZW1hKHNjaGVtYSk7XG4gIHJldHVybiBbXG4gICAgaW5wdXQubWFwXG4gICAgICA/IGlucHV0XG4gICAgICAgICAgLm1hcChlbnRpdHlPcklkID0+IHVudmlzaXQoZW50aXR5T3JJZCwgc2NoZW1hKSlcbiAgICAgICAgICAuZmlsdGVyKGZpbHRlckVtcHR5KVxuICAgICAgICAgIC5tYXAoKFt2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgOiBpbnB1dCxcbiAgICB0cnVlLFxuICAgIGZhbHNlLFxuICBdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmVyKHNjaGVtYTogYW55LCBhcmdzOiBhbnksIGluZGV4ZXM6IGFueSwgcmVjdXJzZTogYW55KSB7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLGNBQWMsR0FBR0MsVUFBVSxJQUFJO0VBQ25DO0VBQ0EsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7SUFDekMsTUFBTUMsT0FBTyxHQUFHQyxLQUFLLENBQUNELE9BQU8sQ0FBQ0osVUFBVSxDQUFDO0lBQ3pDLElBQUlJLE9BQU8sSUFBSUosVUFBVSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3BDLE1BQU0sSUFBSUMsS0FBSyxDQUNaLCtEQUE4RFAsVUFBVSxDQUFDTSxNQUFPLEdBQUUsQ0FDcEY7SUFDSDtFQUNGO0VBRUEsT0FBT04sVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTVEsU0FBUyxHQUFHQyxLQUFLLElBQ3JCSixLQUFLLENBQUNELE9BQU8sQ0FBQ0ssS0FBSyxDQUFDLEdBQUdBLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNGLEtBQUssQ0FBQyxDQUFDRyxHQUFHLENBQUNDLEdBQUcsSUFBSUosS0FBSyxDQUFDSSxHQUFHLENBQUMsQ0FBQztBQUUxRSxNQUFNQyxXQUFXLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLEdBQUlDLFdBQVcsQ0FBQyxLQUN4Q0QsSUFBSSxLQUFLRSxTQUFTLElBQUksQ0FBQ0QsV0FBVztBQUVwQyxPQUFPLE1BQU1FLFNBQVMsR0FBRyxDQUN2QkMsTUFBVyxFQUNYVixLQUFVLEVBQ1ZXLE1BQVcsRUFDWFAsR0FBUSxFQUNSUSxLQUFVLEVBQ1ZDLFNBQWMsRUFDZEMsZUFBb0IsS0FDakI7RUFDSEosTUFBTSxHQUFHcEIsY0FBYyxDQUFDb0IsTUFBTSxDQUFDO0VBRS9CLE1BQU1LLE1BQU0sR0FBR2hCLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDOztFQUUvQjtFQUNBO0VBQ0EsT0FBT2UsTUFBTSxDQUFDWixHQUFHLENBQUMsQ0FBQ2EsS0FBSyxFQUFFQyxLQUFLLEtBQzdCTCxLQUFLLENBQUNJLEtBQUssRUFBRUwsTUFBTSxFQUFFUCxHQUFHLEVBQUVNLE1BQU0sRUFBRUcsU0FBUyxFQUFFQyxlQUFlLENBQUMsQ0FDOUQ7QUFDSCxDQUFDO0FBRUQsT0FBTyxNQUFNSSxXQUFXLEdBQUcsQ0FDekJSLE1BQVcsRUFDWFYsS0FBVSxFQUNWbUIsT0FBWSxLQUM4QztFQUMxRFQsTUFBTSxHQUFHcEIsY0FBYyxDQUFDb0IsTUFBTSxDQUFDO0VBQy9CLE9BQU8sQ0FDTFYsS0FBSyxDQUFDRyxHQUFHLEdBQ0xILEtBQUssQ0FDRkcsR0FBRyxDQUFDaUIsVUFBVSxJQUFJRCxPQUFPLENBQUNDLFVBQVUsRUFBRVYsTUFBTSxDQUFDLENBQUMsQ0FDOUNXLE1BQU0sQ0FBQ2hCLFdBQVcsQ0FBQyxDQUNuQkYsR0FBRyxDQUFDLENBQUMsQ0FBQ2EsS0FBSyxDQUFDLEtBQUtBLEtBQUssQ0FBQyxHQUMxQmhCLEtBQUssRUFDVCxJQUFJLEVBQ0osS0FBSyxDQUNOO0FBQ0gsQ0FBQztBQUVELE9BQU8sU0FBU3NCLEtBQUssQ0FBQ1osTUFBVyxFQUFFYSxJQUFTLEVBQUVDLE9BQVksRUFBRUMsT0FBWSxFQUFFO0VBQ3hFLE9BQU9qQixTQUFTO0FBQ2xCIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2YWxpZGF0ZVNjaGVtYSIsImRlZmluaXRpb24iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc0FycmF5IiwiQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImdldFZhbHVlcyIsImlucHV0IiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsImZpbHRlckVtcHR5IiwiaXRlbSIsImRlbGV0ZWRJdGVtIiwidW5kZWZpbmVkIiwibm9ybWFsaXplIiwic2NoZW1hIiwicGFyZW50IiwidmlzaXQiLCJhZGRFbnRpdHkiLCJ2aXNpdGVkRW50aXRpZXMiLCJ2YWx1ZXMiLCJ2YWx1ZSIsImluZGV4IiwiZGVub3JtYWxpemUiLCJ1bnZpc2l0IiwiZW50aXR5T3JJZCIsImZpbHRlciIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvQXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdmFsaWRhdGVTY2hlbWEgPSBkZWZpbml0aW9uID0+IHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKTtcbiAgICBpZiAoaXNBcnJheSAmJiBkZWZpbml0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIHNjaGVtYSBkZWZpbml0aW9uIHRvIGJlIGEgc2luZ2xlIHNjaGVtYSwgYnV0IGZvdW5kICR7ZGVmaW5pdGlvbi5sZW5ndGh9LmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWZpbml0aW9uWzBdO1xufTtcblxuY29uc3QgZ2V0VmFsdWVzID0gaW5wdXQgPT5cbiAgQXJyYXkuaXNBcnJheShpbnB1dCkgPyBpbnB1dCA6IE9iamVjdC5rZXlzKGlucHV0KS5tYXAoa2V5ID0+IGlucHV0W2tleV0pO1xuXG5jb25zdCBmaWx0ZXJFbXB0eSA9IChbaXRlbSwgLCBkZWxldGVkSXRlbV0pID0+XG4gIGl0ZW0gIT09IHVuZGVmaW5lZCAmJiAhZGVsZXRlZEl0ZW07XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICBwYXJlbnQ6IGFueSxcbiAga2V5OiBhbnksXG4gIHZpc2l0OiBhbnksXG4gIGFkZEVudGl0eTogYW55LFxuICB2aXNpdGVkRW50aXRpZXM6IGFueSxcbikgPT4ge1xuICBzY2hlbWEgPSB2YWxpZGF0ZVNjaGVtYShzY2hlbWEpO1xuXG4gIGNvbnN0IHZhbHVlcyA9IGdldFZhbHVlcyhpbnB1dCk7XG5cbiAgLy8gU3BlY2lhbCBjYXNlOiBBcnJheXMgcGFzcyAqdGhlaXIqIHBhcmVudCBvbiB0byB0aGVpciBjaGlsZHJlbiwgc2luY2UgdGhlcmVcbiAgLy8gaXMgbm90IGFueSBzcGVjaWFsIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIGdhdGhlcmVkIGZyb20gdGhlbXNlbHZlcyBkaXJlY3RseVxuICByZXR1cm4gdmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PlxuICAgIHZpc2l0KHZhbHVlLCBwYXJlbnQsIGtleSwgc2NoZW1hLCBhZGRFbnRpdHksIHZpc2l0ZWRFbnRpdGllcyksXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBzdXNwZW5kOiBib29sZWFuXSA9PiB7XG4gIHNjaGVtYSA9IHZhbGlkYXRlU2NoZW1hKHNjaGVtYSk7XG4gIHJldHVybiBbXG4gICAgaW5wdXQubWFwXG4gICAgICA/IGlucHV0XG4gICAgICAgICAgLm1hcChlbnRpdHlPcklkID0+IHVudmlzaXQoZW50aXR5T3JJZCwgc2NoZW1hKSlcbiAgICAgICAgICAuZmlsdGVyKGZpbHRlckVtcHR5KVxuICAgICAgICAgIC5tYXAoKFt2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgOiBpbnB1dCxcbiAgICB0cnVlLFxuICAgIGZhbHNlLFxuICBdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmVyKHNjaGVtYTogYW55LCBhcmdzOiBhbnksIGluZGV4ZXM6IGFueSwgcmVjdXJzZTogYW55KSB7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLGNBQWMsR0FBR0MsVUFBVSxJQUFJO0VBQ25DO0VBQ0EsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7SUFDekMsTUFBTUMsT0FBTyxHQUFHQyxLQUFLLENBQUNELE9BQU8sQ0FBQ0osVUFBVSxDQUFDO0lBQ3pDLElBQUlJLE9BQU8sSUFBSUosVUFBVSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3BDLE1BQU0sSUFBSUMsS0FBSyxDQUNaLCtEQUE4RFAsVUFBVSxDQUFDTSxNQUFPLEdBQUUsQ0FDcEY7SUFDSDtFQUNGO0VBRUEsT0FBT04sVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTVEsU0FBUyxHQUFHQyxLQUFLLElBQ3JCSixLQUFLLENBQUNELE9BQU8sQ0FBQ0ssS0FBSyxDQUFDLEdBQUdBLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNGLEtBQUssQ0FBQyxDQUFDRyxHQUFHLENBQUNDLEdBQUcsSUFBSUosS0FBSyxDQUFDSSxHQUFHLENBQUMsQ0FBQztBQUUxRSxNQUFNQyxXQUFXLEdBQUdBLENBQUMsQ0FBQ0MsSUFBSSxHQUFJQyxXQUFXLENBQUMsS0FDeENELElBQUksS0FBS0UsU0FBUyxJQUFJLENBQUNELFdBQVc7QUFFcEMsT0FBTyxNQUFNRSxTQUFTLEdBQUdBLENBQ3ZCQyxNQUFXLEVBQ1hWLEtBQVUsRUFDVlcsTUFBVyxFQUNYUCxHQUFRLEVBQ1JRLEtBQVUsRUFDVkMsU0FBYyxFQUNkQyxlQUFvQixLQUNqQjtFQUNISixNQUFNLEdBQUdwQixjQUFjLENBQUNvQixNQUFNLENBQUM7RUFFL0IsTUFBTUssTUFBTSxHQUFHaEIsU0FBUyxDQUFDQyxLQUFLLENBQUM7O0VBRS9CO0VBQ0E7RUFDQSxPQUFPZSxNQUFNLENBQUNaLEdBQUcsQ0FBQyxDQUFDYSxLQUFLLEVBQUVDLEtBQUssS0FDN0JMLEtBQUssQ0FBQ0ksS0FBSyxFQUFFTCxNQUFNLEVBQUVQLEdBQUcsRUFBRU0sTUFBTSxFQUFFRyxTQUFTLEVBQUVDLGVBQWUsQ0FBQyxDQUM5RDtBQUNILENBQUM7QUFFRCxPQUFPLE1BQU1JLFdBQVcsR0FBR0EsQ0FDekJSLE1BQVcsRUFDWFYsS0FBVSxFQUNWbUIsT0FBWSxLQUM4QztFQUMxRFQsTUFBTSxHQUFHcEIsY0FBYyxDQUFDb0IsTUFBTSxDQUFDO0VBQy9CLE9BQU8sQ0FDTFYsS0FBSyxDQUFDRyxHQUFHLEdBQ0xILEtBQUssQ0FDRkcsR0FBRyxDQUFDaUIsVUFBVSxJQUFJRCxPQUFPLENBQUNDLFVBQVUsRUFBRVYsTUFBTSxDQUFDLENBQUMsQ0FDOUNXLE1BQU0sQ0FBQ2hCLFdBQVcsQ0FBQyxDQUNuQkYsR0FBRyxDQUFDLENBQUMsQ0FBQ2EsS0FBSyxDQUFDLEtBQUtBLEtBQUssQ0FBQyxHQUMxQmhCLEtBQUssRUFDVCxJQUFJLEVBQ0osS0FBSyxDQUNOO0FBQ0gsQ0FBQztBQUVELE9BQU8sU0FBU3NCLEtBQUtBLENBQUNaLE1BQVcsRUFBRWEsSUFBUyxFQUFFQyxPQUFZLEVBQUVDLE9BQVksRUFBRTtFQUN4RSxPQUFPakIsU0FBUztBQUNsQiJ9

@@ -50,2 +50,2 @@ /**

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIm9iamVjdCIsImhhc093blByb3BlcnR5IiwiT2JqZWN0IiwiY2FsbCIsIl9tYXAiLCJkZW5vcm1hbGl6ZUltbXV0YWJsZSIsInNjaGVtYSIsImlucHV0IiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsImtleXMiLCJyZWR1Y2UiLCJrZXkiLCJzdHJpbmdLZXkiLCJpdGVtIiwiZm91bmRJdGVtIiwiZGVsZXRlZEl0ZW0iLCJnZXQiLCJoYXMiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9JbW11dGFibGVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhlbHBlcnMgdG8gZW5hYmxlIEltbXV0YWJsZSBjb21wYXRpYmlsaXR5ICp3aXRob3V0KiBicmluZ2luZyBpblxuICogdGhlICdpbW11dGFibGUnIHBhY2thZ2UgYXMgYSBkZXBlbmRlbmN5LlxuICovXG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGltbXV0YWJsZSBieSBjaGVja2luZyBpZiBpdCBoYXMgYSBrZXkgc3BlY2lmaWNcbiAqIHRvIHRoZSBpbW11dGFibGUgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbH1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZShvYmplY3Q6IHt9KTogb2JqZWN0IGlzIHtcbiAgZ2V0KGs6IHN0cmluZyk6IGFueTtcbiAgW2s6IHN0cmluZ106IGFueTtcbn0ge1xuICByZXR1cm4gISEoXG4gICAgdHlwZW9mIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdfX293bmVySUQnKSB8fCAvLyBJbW11dGFibGUuTWFwXG4gICAgICAoKG9iamVjdCBhcyBhbnkpLl9tYXAgJiZcbiAgICAgICAgT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoKG9iamVjdCBhcyBhbnkpLl9tYXAsICdfX293bmVySUQnKSkpXG4gICk7IC8vIEltbXV0YWJsZS5SZWNvcmRcbn1cblxuLyoqXG4gKiBEZW5vcm1hbGl6ZSBhbiBpbW11dGFibGUgZW50aXR5LlxuICpcbiAqIEBwYXJhbSAge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0gIHtJbW11dGFibGUuTWFwfEltbXV0YWJsZS5SZWNvcmR9IGlucHV0XG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gdW52aXNpdFxuICogQHBhcmFtICB7ZnVuY3Rpb259IGdldERlbm9ybWFsaXplZEVudGl0eVxuICogQHJldHVybiB7SW1tdXRhYmxlLk1hcHxJbW11dGFibGUuUmVjb3JkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVJbW11dGFibGUoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiBib29sZWFuXSB7XG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG4gIHJldHVybiBbXG4gICAgT2JqZWN0LmtleXMoc2NoZW1hKS5yZWR1Y2UoKG9iamVjdCwga2V5KSA9PiB7XG4gICAgICAvLyBJbW11dGFibGUgbWFwcyBjYXN0IGtleXMgdG8gc3RyaW5ncyBvbiB3cml0ZSBzbyB3ZSBuZWVkIHRvIGVuc3VyZVxuICAgICAgLy8gd2UncmUgYWNjZXNzaW5nIHRoZW0gdXNpbmcgc3RyaW5nIGtleXMuXG4gICAgICBjb25zdCBzdHJpbmdLZXkgPSBgJHtrZXl9YDtcblxuICAgICAgY29uc3QgW2l0ZW0sIGZvdW5kSXRlbSwgZGVsZXRlZEl0ZW1dID0gdW52aXNpdChcbiAgICAgICAgb2JqZWN0LmdldChzdHJpbmdLZXkpLFxuICAgICAgICBzY2hlbWFbc3RyaW5nS2V5XSxcbiAgICAgICk7XG4gICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICAgIGRlbGV0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9iamVjdC5oYXMoc3RyaW5nS2V5KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0LnNldChzdHJpbmdLZXksIGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH1cbiAgICB9LCBpbnB1dCksXG4gICAgZm91bmQsXG4gICAgZGVsZXRlZCxcbiAgXTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0EsV0FBVyxDQUFDQyxNQUFVLEVBR3BDO0VBQ0EsT0FBTyxDQUFDLEVBQ04sT0FBT0EsTUFBTSxDQUFDQyxjQUFjLEtBQUssVUFBVSxLQUMxQ0MsTUFBTSxDQUFDRCxjQUFjLENBQUNFLElBQUksQ0FBQ0gsTUFBTSxFQUFFLFdBQVcsQ0FBQztFQUFJO0VBQ2hEQSxNQUFNLENBQVNJLElBQUksSUFDbkJGLE1BQU0sQ0FBQ0QsY0FBYyxDQUFDRSxJQUFJLENBQUVILE1BQU0sQ0FBU0ksSUFBSSxFQUFFLFdBQVcsQ0FBRSxDQUFDLENBQ3BFLENBQUMsQ0FBQztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0Msb0JBQW9CLENBQ2xDQyxNQUFXLEVBQ1hDLEtBQVUsRUFDVkMsT0FBWSxFQUMyQztFQUN2RCxJQUFJQyxLQUFLLEdBQUcsSUFBSTtFQUNoQixJQUFJQyxPQUFPLEdBQUcsS0FBSztFQUNuQixPQUFPLENBQ0xSLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDTCxNQUFNLENBQUMsQ0FBQ00sTUFBTSxDQUFDLENBQUNaLE1BQU0sRUFBRWEsR0FBRyxLQUFLO0lBQzFDO0lBQ0E7SUFDQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsR0FBSSxFQUFDO0lBRTFCLE1BQU0sQ0FBQ0UsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsQ0FBQyxHQUFHVCxPQUFPLENBQzVDUixNQUFNLENBQUNrQixHQUFHLENBQUNKLFNBQVMsQ0FBQyxFQUNyQlIsTUFBTSxDQUFDUSxTQUFTLENBQUMsQ0FDbEI7SUFDRCxJQUFJLENBQUNFLFNBQVMsRUFBRTtNQUNkUCxLQUFLLEdBQUcsS0FBSztJQUNmO0lBQ0EsSUFBSVEsV0FBVyxFQUFFO01BQ2ZQLE9BQU8sR0FBRyxJQUFJO0lBQ2hCO0lBQ0EsSUFBSVYsTUFBTSxDQUFDbUIsR0FBRyxDQUFDTCxTQUFTLENBQUMsRUFBRTtNQUN6QixPQUFPZCxNQUFNLENBQUNvQixHQUFHLENBQUNOLFNBQVMsRUFBRUMsSUFBSSxDQUFDO0lBQ3BDLENBQUMsTUFBTTtNQUNMLE9BQU9mLE1BQU07SUFDZjtFQUNGLENBQUMsRUFBRU8sS0FBSyxDQUFDLEVBQ1RFLEtBQUssRUFDTEMsT0FBTyxDQUNSO0FBQ0gifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIm9iamVjdCIsImhhc093blByb3BlcnR5IiwiT2JqZWN0IiwiY2FsbCIsIl9tYXAiLCJkZW5vcm1hbGl6ZUltbXV0YWJsZSIsInNjaGVtYSIsImlucHV0IiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsImtleXMiLCJyZWR1Y2UiLCJrZXkiLCJzdHJpbmdLZXkiLCJpdGVtIiwiZm91bmRJdGVtIiwiZGVsZXRlZEl0ZW0iLCJnZXQiLCJoYXMiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9JbW11dGFibGVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhlbHBlcnMgdG8gZW5hYmxlIEltbXV0YWJsZSBjb21wYXRpYmlsaXR5ICp3aXRob3V0KiBicmluZ2luZyBpblxuICogdGhlICdpbW11dGFibGUnIHBhY2thZ2UgYXMgYSBkZXBlbmRlbmN5LlxuICovXG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGltbXV0YWJsZSBieSBjaGVja2luZyBpZiBpdCBoYXMgYSBrZXkgc3BlY2lmaWNcbiAqIHRvIHRoZSBpbW11dGFibGUgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbH1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZShvYmplY3Q6IHt9KTogb2JqZWN0IGlzIHtcbiAgZ2V0KGs6IHN0cmluZyk6IGFueTtcbiAgW2s6IHN0cmluZ106IGFueTtcbn0ge1xuICByZXR1cm4gISEoXG4gICAgdHlwZW9mIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdfX293bmVySUQnKSB8fCAvLyBJbW11dGFibGUuTWFwXG4gICAgICAoKG9iamVjdCBhcyBhbnkpLl9tYXAgJiZcbiAgICAgICAgT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoKG9iamVjdCBhcyBhbnkpLl9tYXAsICdfX293bmVySUQnKSkpXG4gICk7IC8vIEltbXV0YWJsZS5SZWNvcmRcbn1cblxuLyoqXG4gKiBEZW5vcm1hbGl6ZSBhbiBpbW11dGFibGUgZW50aXR5LlxuICpcbiAqIEBwYXJhbSAge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0gIHtJbW11dGFibGUuTWFwfEltbXV0YWJsZS5SZWNvcmR9IGlucHV0XG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gdW52aXNpdFxuICogQHBhcmFtICB7ZnVuY3Rpb259IGdldERlbm9ybWFsaXplZEVudGl0eVxuICogQHJldHVybiB7SW1tdXRhYmxlLk1hcHxJbW11dGFibGUuUmVjb3JkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVJbW11dGFibGUoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiBib29sZWFuXSB7XG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG4gIHJldHVybiBbXG4gICAgT2JqZWN0LmtleXMoc2NoZW1hKS5yZWR1Y2UoKG9iamVjdCwga2V5KSA9PiB7XG4gICAgICAvLyBJbW11dGFibGUgbWFwcyBjYXN0IGtleXMgdG8gc3RyaW5ncyBvbiB3cml0ZSBzbyB3ZSBuZWVkIHRvIGVuc3VyZVxuICAgICAgLy8gd2UncmUgYWNjZXNzaW5nIHRoZW0gdXNpbmcgc3RyaW5nIGtleXMuXG4gICAgICBjb25zdCBzdHJpbmdLZXkgPSBgJHtrZXl9YDtcblxuICAgICAgY29uc3QgW2l0ZW0sIGZvdW5kSXRlbSwgZGVsZXRlZEl0ZW1dID0gdW52aXNpdChcbiAgICAgICAgb2JqZWN0LmdldChzdHJpbmdLZXkpLFxuICAgICAgICBzY2hlbWFbc3RyaW5nS2V5XSxcbiAgICAgICk7XG4gICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICAgIGRlbGV0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9iamVjdC5oYXMoc3RyaW5nS2V5KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0LnNldChzdHJpbmdLZXksIGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH1cbiAgICB9LCBpbnB1dCksXG4gICAgZm91bmQsXG4gICAgZGVsZXRlZCxcbiAgXTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0EsV0FBV0EsQ0FBQ0MsTUFBVSxFQUdwQztFQUNBLE9BQU8sQ0FBQyxFQUNOLE9BQU9BLE1BQU0sQ0FBQ0MsY0FBYyxLQUFLLFVBQVUsS0FDMUNDLE1BQU0sQ0FBQ0QsY0FBYyxDQUFDRSxJQUFJLENBQUNILE1BQU0sRUFBRSxXQUFXLENBQUM7RUFBSTtFQUNoREEsTUFBTSxDQUFTSSxJQUFJLElBQ25CRixNQUFNLENBQUNELGNBQWMsQ0FBQ0UsSUFBSSxDQUFFSCxNQUFNLENBQVNJLElBQUksRUFBRSxXQUFXLENBQUUsQ0FBQyxDQUNwRSxDQUFDLENBQUM7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNDLG9CQUFvQkEsQ0FDbENDLE1BQVcsRUFDWEMsS0FBVSxFQUNWQyxPQUFZLEVBQzJDO0VBQ3ZELElBQUlDLEtBQUssR0FBRyxJQUFJO0VBQ2hCLElBQUlDLE9BQU8sR0FBRyxLQUFLO0VBQ25CLE9BQU8sQ0FDTFIsTUFBTSxDQUFDUyxJQUFJLENBQUNMLE1BQU0sQ0FBQyxDQUFDTSxNQUFNLENBQUMsQ0FBQ1osTUFBTSxFQUFFYSxHQUFHLEtBQUs7SUFDMUM7SUFDQTtJQUNBLE1BQU1DLFNBQVMsR0FBSSxHQUFFRCxHQUFJLEVBQUM7SUFFMUIsTUFBTSxDQUFDRSxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxDQUFDLEdBQUdULE9BQU8sQ0FDNUNSLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQ0osU0FBUyxDQUFDLEVBQ3JCUixNQUFNLENBQUNRLFNBQVMsQ0FBQyxDQUNsQjtJQUNELElBQUksQ0FBQ0UsU0FBUyxFQUFFO01BQ2RQLEtBQUssR0FBRyxLQUFLO0lBQ2Y7SUFDQSxJQUFJUSxXQUFXLEVBQUU7TUFDZlAsT0FBTyxHQUFHLElBQUk7SUFDaEI7SUFDQSxJQUFJVixNQUFNLENBQUNtQixHQUFHLENBQUNMLFNBQVMsQ0FBQyxFQUFFO01BQ3pCLE9BQU9kLE1BQU0sQ0FBQ29CLEdBQUcsQ0FBQ04sU0FBUyxFQUFFQyxJQUFJLENBQUM7SUFDcEMsQ0FBQyxNQUFNO01BQ0wsT0FBT2YsTUFBTTtJQUNmO0VBQ0YsQ0FBQyxFQUFFTyxLQUFLLENBQUMsRUFDVEUsS0FBSyxFQUNMQyxPQUFPLENBQ1I7QUFDSCJ9

@@ -43,2 +43,2 @@ import { isImmutable, denormalizeImmutable } from './ImmutableUtils.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsImRlbm9ybWFsaXplSW1tdXRhYmxlIiwibm9ybWFsaXplIiwic2NoZW1hIiwiaW5wdXQiLCJwYXJlbnQiLCJrZXkiLCJ2aXNpdCIsImFkZEVudGl0eSIsInZpc2l0ZWRFbnRpdGllcyIsIm9iamVjdCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwibG9jYWxTY2hlbWEiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImRlbm9ybWFsaXplIiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsIml0ZW0iLCJmb3VuZEl0ZW0iLCJkZWxldGVkSXRlbSIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIiwiZW50aXRpZXMiLCJyZXN1bHRPYmplY3QiLCJrIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvT2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSW1tdXRhYmxlLCBkZW5vcm1hbGl6ZUltbXV0YWJsZSB9IGZyb20gJy4vSW1tdXRhYmxlVXRpbHMuanMnO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKFxuICBzY2hlbWE6IGFueSxcbiAgaW5wdXQ6IGFueSxcbiAgcGFyZW50OiBhbnksXG4gIGtleTogYW55LFxuICB2aXNpdDogYW55LFxuICBhZGRFbnRpdHk6IGFueSxcbiAgdmlzaXRlZEVudGl0aWVzOiBhbnksXG4pID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBsb2NhbFNjaGVtYSA9IHNjaGVtYVtrZXldO1xuICAgIGNvbnN0IHZhbHVlID0gdmlzaXQoXG4gICAgICBpbnB1dFtrZXldLFxuICAgICAgaW5wdXQsXG4gICAgICBrZXksXG4gICAgICBsb2NhbFNjaGVtYSxcbiAgICAgIGFkZEVudGl0eSxcbiAgICAgIHZpc2l0ZWRFbnRpdGllcyxcbiAgICApO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IChcbiAgc2NoZW1hOiBhbnksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIGlucHV0OiB7fSxcbiAgdW52aXNpdDogYW55LFxuKTogW2Rlbm9ybWFsaXplZDogYW55LCBmb3VuZDogYm9vbGVhbiwgZGVsZXRlZDogYm9vbGVhbl0gPT4ge1xuICBpZiAoaXNJbW11dGFibGUoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGRlbm9ybWFsaXplSW1tdXRhYmxlKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICB9XG5cbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBsZXQgZm91bmQgPSB0cnVlO1xuICBsZXQgZGVsZXRlZCA9IGZhbHNlO1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBbaXRlbSwgZm91bmRJdGVtLCBkZWxldGVkSXRlbV0gPSB1bnZpc2l0KG9iamVjdFtrZXldLCBzY2hlbWFba2V5XSk7XG4gICAgaWYgKG9iamVjdFtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iamVjdFtrZXldID0gaXRlbTtcbiAgICB9XG4gICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFmb3VuZEl0ZW0pIHtcbiAgICAgIGZvdW5kID0gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIFtvYmplY3QsIGZvdW5kLCBkZWxldGVkXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZlcihcbiAgc2NoZW1hOiBhbnksXG4gIGFyZ3M6IHJlYWRvbmx5IGFueVtdLFxuICBpbmRleGVzOiBhbnksXG4gIHJlY3Vyc2U6IGFueSxcbiAgZW50aXRpZXM6IGFueSxcbikge1xuICBjb25zdCByZXN1bHRPYmplY3Q6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoc2NoZW1hKSkge1xuICAgIHJlc3VsdE9iamVjdFtrXSA9IHJlY3Vyc2Uoc2NoZW1hW2tdLCBhcmdzLCBpbmRleGVzLCBlbnRpdGllcyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdE9iamVjdDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxFQUFFQyxvQkFBb0IsUUFBUSxxQkFBcUI7QUFFdkUsT0FBTyxNQUFNQyxTQUFTLEdBQUcsQ0FDdkJDLE1BQVcsRUFDWEMsS0FBVSxFQUNWQyxNQUFXLEVBQ1hDLEdBQVEsRUFDUkMsS0FBVSxFQUNWQyxTQUFjLEVBQ2RDLGVBQW9CLEtBQ2pCO0VBQ0gsTUFBTUMsTUFBTSxxQkFBUU4sS0FBSyxDQUFFO0VBQzNCTyxNQUFNLENBQUNDLElBQUksQ0FBQ1QsTUFBTSxDQUFDLENBQUNVLE9BQU8sQ0FBQ1AsR0FBRyxJQUFJO0lBQ2pDLE1BQU1RLFdBQVcsR0FBR1gsTUFBTSxDQUFDRyxHQUFHLENBQUM7SUFDL0IsTUFBTVMsS0FBSyxHQUFHUixLQUFLLENBQ2pCSCxLQUFLLENBQUNFLEdBQUcsQ0FBQyxFQUNWRixLQUFLLEVBQ0xFLEdBQUcsRUFDSFEsV0FBVyxFQUNYTixTQUFTLEVBQ1RDLGVBQWUsQ0FDaEI7SUFDRCxJQUFJTSxLQUFLLEtBQUtDLFNBQVMsSUFBSUQsS0FBSyxLQUFLLElBQUksRUFBRTtNQUN6QyxPQUFPTCxNQUFNLENBQUNKLEdBQUcsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTEksTUFBTSxDQUFDSixHQUFHLENBQUMsR0FBR1MsS0FBSztJQUNyQjtFQUNGLENBQUMsQ0FBQztFQUNGLE9BQU9MLE1BQU07QUFDZixDQUFDO0FBRUQsT0FBTyxNQUFNTyxXQUFXLEdBQUcsQ0FDekJkLE1BQVcsRUFFWEMsS0FBUyxFQUNUYyxPQUFZLEtBQzhDO0VBQzFELElBQUlsQixXQUFXLENBQUNJLEtBQUssQ0FBQyxFQUFFO0lBQ3RCLE9BQU9ILG9CQUFvQixDQUFDRSxNQUFNLEVBQUVDLEtBQUssRUFBRWMsT0FBTyxDQUFDO0VBQ3JEO0VBRUEsTUFBTVIsTUFBTSxxQkFBUU4sS0FBSyxDQUFFO0VBQzNCLElBQUllLEtBQUssR0FBRyxJQUFJO0VBQ2hCLElBQUlDLE9BQU8sR0FBRyxLQUFLO0VBQ25CVCxNQUFNLENBQUNDLElBQUksQ0FBQ1QsTUFBTSxDQUFDLENBQUNVLE9BQU8sQ0FBQ1AsR0FBRyxJQUFJO0lBQ2pDLE1BQU0sQ0FBQ2UsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsQ0FBQyxHQUFHTCxPQUFPLENBQUNSLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLEVBQUVILE1BQU0sQ0FBQ0csR0FBRyxDQUFDLENBQUM7SUFDeEUsSUFBSUksTUFBTSxDQUFDSixHQUFHLENBQUMsS0FBS1UsU0FBUyxFQUFFO01BQzdCTixNQUFNLENBQUNKLEdBQUcsQ0FBQyxHQUFHZSxJQUFJO0lBQ3BCO0lBQ0EsSUFBSUUsV0FBVyxFQUFFO01BQ2ZILE9BQU8sR0FBRyxJQUFJO0lBQ2hCO0lBQ0EsSUFBSSxDQUFDRSxTQUFTLEVBQUU7TUFDZEgsS0FBSyxHQUFHLEtBQUs7SUFDZjtFQUNGLENBQUMsQ0FBQztFQUNGLE9BQU8sQ0FBQ1QsTUFBTSxFQUFFUyxLQUFLLEVBQUVDLE9BQU8sQ0FBQztBQUNqQyxDQUFDO0FBRUQsT0FBTyxTQUFTSSxLQUFLLENBQ25CckIsTUFBVyxFQUNYc0IsSUFBb0IsRUFDcEJDLE9BQVksRUFDWkMsT0FBWSxFQUNaQyxRQUFhLEVBQ2I7RUFDQSxNQUFNQyxZQUFpQixHQUFHLENBQUMsQ0FBQztFQUM1QixLQUFLLE1BQU1DLENBQUMsSUFBSW5CLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxNQUFNLENBQUMsRUFBRTtJQUNuQzBCLFlBQVksQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILE9BQU8sQ0FBQ3hCLE1BQU0sQ0FBQzJCLENBQUMsQ0FBQyxFQUFFTCxJQUFJLEVBQUVDLE9BQU8sRUFBRUUsUUFBUSxDQUFDO0VBQy9EO0VBQ0EsT0FBT0MsWUFBWTtBQUNyQiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsImRlbm9ybWFsaXplSW1tdXRhYmxlIiwibm9ybWFsaXplIiwic2NoZW1hIiwiaW5wdXQiLCJwYXJlbnQiLCJrZXkiLCJ2aXNpdCIsImFkZEVudGl0eSIsInZpc2l0ZWRFbnRpdGllcyIsIm9iamVjdCIsIk9iamVjdCIsImFzc2lnbiIsImtleXMiLCJmb3JFYWNoIiwibG9jYWxTY2hlbWEiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImRlbm9ybWFsaXplIiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsIml0ZW0iLCJmb3VuZEl0ZW0iLCJkZWxldGVkSXRlbSIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIiwiZW50aXRpZXMiLCJyZXN1bHRPYmplY3QiLCJrIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvT2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSW1tdXRhYmxlLCBkZW5vcm1hbGl6ZUltbXV0YWJsZSB9IGZyb20gJy4vSW1tdXRhYmxlVXRpbHMuanMnO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKFxuICBzY2hlbWE6IGFueSxcbiAgaW5wdXQ6IGFueSxcbiAgcGFyZW50OiBhbnksXG4gIGtleTogYW55LFxuICB2aXNpdDogYW55LFxuICBhZGRFbnRpdHk6IGFueSxcbiAgdmlzaXRlZEVudGl0aWVzOiBhbnksXG4pID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBsb2NhbFNjaGVtYSA9IHNjaGVtYVtrZXldO1xuICAgIGNvbnN0IHZhbHVlID0gdmlzaXQoXG4gICAgICBpbnB1dFtrZXldLFxuICAgICAgaW5wdXQsXG4gICAgICBrZXksXG4gICAgICBsb2NhbFNjaGVtYSxcbiAgICAgIGFkZEVudGl0eSxcbiAgICAgIHZpc2l0ZWRFbnRpdGllcyxcbiAgICApO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IChcbiAgc2NoZW1hOiBhbnksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIGlucHV0OiB7fSxcbiAgdW52aXNpdDogYW55LFxuKTogW2Rlbm9ybWFsaXplZDogYW55LCBmb3VuZDogYm9vbGVhbiwgZGVsZXRlZDogYm9vbGVhbl0gPT4ge1xuICBpZiAoaXNJbW11dGFibGUoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGRlbm9ybWFsaXplSW1tdXRhYmxlKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICB9XG5cbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBsZXQgZm91bmQgPSB0cnVlO1xuICBsZXQgZGVsZXRlZCA9IGZhbHNlO1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBbaXRlbSwgZm91bmRJdGVtLCBkZWxldGVkSXRlbV0gPSB1bnZpc2l0KG9iamVjdFtrZXldLCBzY2hlbWFba2V5XSk7XG4gICAgaWYgKG9iamVjdFtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iamVjdFtrZXldID0gaXRlbTtcbiAgICB9XG4gICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFmb3VuZEl0ZW0pIHtcbiAgICAgIGZvdW5kID0gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIFtvYmplY3QsIGZvdW5kLCBkZWxldGVkXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZlcihcbiAgc2NoZW1hOiBhbnksXG4gIGFyZ3M6IHJlYWRvbmx5IGFueVtdLFxuICBpbmRleGVzOiBhbnksXG4gIHJlY3Vyc2U6IGFueSxcbiAgZW50aXRpZXM6IGFueSxcbikge1xuICBjb25zdCByZXN1bHRPYmplY3Q6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoc2NoZW1hKSkge1xuICAgIHJlc3VsdE9iamVjdFtrXSA9IHJlY3Vyc2Uoc2NoZW1hW2tdLCBhcmdzLCBpbmRleGVzLCBlbnRpdGllcyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdE9iamVjdDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxFQUFFQyxvQkFBb0IsUUFBUSxxQkFBcUI7QUFFdkUsT0FBTyxNQUFNQyxTQUFTLEdBQUdBLENBQ3ZCQyxNQUFXLEVBQ1hDLEtBQVUsRUFDVkMsTUFBVyxFQUNYQyxHQUFRLEVBQ1JDLEtBQVUsRUFDVkMsU0FBYyxFQUNkQyxlQUFvQixLQUNqQjtFQUNILE1BQU1DLE1BQU0sR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEtBQVFSLEtBQUssQ0FBRTtFQUMzQk8sTUFBTSxDQUFDRSxJQUFJLENBQUNWLE1BQU0sQ0FBQyxDQUFDVyxPQUFPLENBQUNSLEdBQUcsSUFBSTtJQUNqQyxNQUFNUyxXQUFXLEdBQUdaLE1BQU0sQ0FBQ0csR0FBRyxDQUFDO0lBQy9CLE1BQU1VLEtBQUssR0FBR1QsS0FBSyxDQUNqQkgsS0FBSyxDQUFDRSxHQUFHLENBQUMsRUFDVkYsS0FBSyxFQUNMRSxHQUFHLEVBQ0hTLFdBQVcsRUFDWFAsU0FBUyxFQUNUQyxlQUFlLENBQ2hCO0lBQ0QsSUFBSU8sS0FBSyxLQUFLQyxTQUFTLElBQUlELEtBQUssS0FBSyxJQUFJLEVBQUU7TUFDekMsT0FBT04sTUFBTSxDQUFDSixHQUFHLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0xJLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLEdBQUdVLEtBQUs7SUFDckI7RUFDRixDQUFDLENBQUM7RUFDRixPQUFPTixNQUFNO0FBQ2YsQ0FBQztBQUVELE9BQU8sTUFBTVEsV0FBVyxHQUFHQSxDQUN6QmYsTUFBVyxFQUVYQyxLQUFTLEVBQ1RlLE9BQVksS0FDOEM7RUFDMUQsSUFBSW5CLFdBQVcsQ0FBQ0ksS0FBSyxDQUFDLEVBQUU7SUFDdEIsT0FBT0gsb0JBQW9CLENBQUNFLE1BQU0sRUFBRUMsS0FBSyxFQUFFZSxPQUFPLENBQUM7RUFDckQ7RUFFQSxNQUFNVCxNQUFNLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxLQUFRUixLQUFLLENBQUU7RUFDM0IsSUFBSWdCLEtBQUssR0FBRyxJQUFJO0VBQ2hCLElBQUlDLE9BQU8sR0FBRyxLQUFLO0VBQ25CVixNQUFNLENBQUNFLElBQUksQ0FBQ1YsTUFBTSxDQUFDLENBQUNXLE9BQU8sQ0FBQ1IsR0FBRyxJQUFJO0lBQ2pDLE1BQU0sQ0FBQ2dCLElBQUksRUFBRUMsU0FBUyxFQUFFQyxXQUFXLENBQUMsR0FBR0wsT0FBTyxDQUFDVCxNQUFNLENBQUNKLEdBQUcsQ0FBQyxFQUFFSCxNQUFNLENBQUNHLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLElBQUlJLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLEtBQUtXLFNBQVMsRUFBRTtNQUM3QlAsTUFBTSxDQUFDSixHQUFHLENBQUMsR0FBR2dCLElBQUk7SUFDcEI7SUFDQSxJQUFJRSxXQUFXLEVBQUU7TUFDZkgsT0FBTyxHQUFHLElBQUk7SUFDaEI7SUFDQSxJQUFJLENBQUNFLFNBQVMsRUFBRTtNQUNkSCxLQUFLLEdBQUcsS0FBSztJQUNmO0VBQ0YsQ0FBQyxDQUFDO0VBQ0YsT0FBTyxDQUFDVixNQUFNLEVBQUVVLEtBQUssRUFBRUMsT0FBTyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxPQUFPLFNBQVNJLEtBQUtBLENBQ25CdEIsTUFBVyxFQUNYdUIsSUFBb0IsRUFDcEJDLE9BQVksRUFDWkMsT0FBWSxFQUNaQyxRQUFhLEVBQ2I7RUFDQSxNQUFNQyxZQUFpQixHQUFHLENBQUMsQ0FBQztFQUM1QixLQUFLLE1BQU1DLENBQUMsSUFBSXBCLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDVixNQUFNLENBQUMsRUFBRTtJQUNuQzJCLFlBQVksQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQzRCLENBQUMsQ0FBQyxFQUFFTCxJQUFJLEVBQUVDLE9BQU8sRUFBRUUsUUFBUSxDQUFDO0VBQy9EO0VBQ0EsT0FBT0MsWUFBWTtBQUNyQiJ9
export {};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2NoZW1hLFxuICBTZXJpYWxpemFibGUsXG4gIEVudGl0eUludGVyZmFjZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBTY2hlbWFDbGFzcyxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHR5cGUgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGgge1xuICBrZXk6IHN0cmluZztcbiAgcGs6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQWJzdHJhY3RJbnN0YW5jZVR5cGU8VD4gPSBUIGV4dGVuZHMgeyBwcm90b3R5cGU6IGluZmVyIFUgfVxuICA/IFVcbiAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEVudGl0eTxUPiA9IFQgZXh0ZW5kcyB7XG4gIHByb3RvdHlwZTogaW5mZXIgVTtcbiAgc2NoZW1hOiBpbmZlciBTO1xufVxuICA/IHsgW0sgaW4gRXhjbHVkZTxrZXlvZiBVLCBrZXlvZiBTPl06IFVbS10gfSAmIHsgW0sgaW4ga2V5b2YgU106IHN0cmluZyB9XG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplT2JqZWN0PFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgW0sgaW4ga2V5b2YgU106IFNbS10gZXh0ZW5kcyBTY2hlbWEgPyBEZW5vcm1hbGl6ZTxTW0tdPiA6IFNbS107XG59O1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZU51bGxhYmxlT2JqZWN0PFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgW0sgaW4ga2V5b2YgU106IFNbS10gZXh0ZW5kcyBTY2hlbWEgPyBEZW5vcm1hbGl6ZU51bGxhYmxlPFNbS10+IDogU1tLXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gTm9ybWFsaXplPFNbS10+IDogU1tLXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZWROdWxsYWJsZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gTm9ybWFsaXplTnVsbGFibGU8U1tLXT4gOiBTW0tdO1xufTtcblxuaW50ZXJmYWNlIE5lc3RlZFNjaGVtYUNsYXNzPFQgPSBhbnk+IHtcbiAgc2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCBTY2hlbWE+O1xuICBwcm90b3R5cGU6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkQ2xhc3M8VCA9IGFueT4gZXh0ZW5kcyBOZXN0ZWRTY2hlbWFDbGFzczxUPiB7XG4gIGZyb21KUzogKC4uLmFyZ3M6IGFueSkgPT4gQWJzdHJhY3RJbnN0YW5jZVR5cGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVub3JtYWxpemVDYWNoZSB7XG4gIGVudGl0aWVzOiB7XG4gICAgW2tleTogc3RyaW5nXToge1xuICAgICAgW3BrOiBzdHJpbmddOiBXZWFrTWFwPEVudGl0eUludGVyZmFjZSwgV2Vha0VudGl0eU1hcDxvYmplY3QsIGFueT4+O1xuICAgIH07XG4gIH07XG4gIHJlc3VsdHM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PjtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVOdWxsYWJsZU5lc3RlZFNjaGVtYTxTIGV4dGVuZHMgTmVzdGVkU2NoZW1hQ2xhc3M+ID1cbiAga2V5b2YgU1snc2NoZW1hJ10gZXh0ZW5kcyBuZXZlclxuICAgID8gU1sncHJvdG90eXBlJ10gLy8gdGhpcyBpcyB0aGUgY2FzZSBvZiBhIG5vbi1zZXQgc2NoZW1hLCB3aGljaCBtZWFucyBpdCBhY3R1YWxseSBoYXMgbm8gbWVtYmVyc1xuICAgIDogc3RyaW5nIGV4dGVuZHMga2V5b2YgU1snc2NoZW1hJ11cbiAgICA/IFNbJ3Byb3RvdHlwZSddXG4gICAgOiBTWydwcm90b3R5cGUnXSAvKiYge1xuICAgICAgICBbSyBpbiBrZXlvZiBTWydzY2hlbWEnXV06IERlbm9ybWFsaXplTnVsbGFibGU8U1snc2NoZW1hJ11bS10+O1xuICAgICAgfSovO1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZVJldHVyblR5cGU8VD4gPSBUIGV4dGVuZHMgKFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pID0+IFtpbmZlciBSLCBhbnksIGFueV1cbiAgPyBSXG4gIDogbmV2ZXI7XG5leHBvcnQgdHlwZSBOb3JtYWxpemVSZXR1cm5UeXBlPFQ+ID0gVCBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGluZmVyIFJcbiAgPyBSXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplPFM+ID0gUyBleHRlbmRzIEVudGl0eUludGVyZmFjZTxpbmZlciBVPlxuICA/IFVcbiAgOiBTIGV4dGVuZHMgUmVjb3JkQ2xhc3NcbiAgPyBBYnN0cmFjdEluc3RhbmNlVHlwZTxTPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IERlbm9ybWFsaXplUmV0dXJuVHlwZTxTWydkZW5vcm1hbGl6ZSddPlxuICA6IFMgZXh0ZW5kcyBTZXJpYWxpemFibGU8aW5mZXIgVD5cbiAgPyBUXG4gIDogUyBleHRlbmRzIEFycmF5PGluZmVyIEY+XG4gID8gRGVub3JtYWxpemU8Rj5bXVxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IERlbm9ybWFsaXplT2JqZWN0PFM+XG4gIDogUztcblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVOdWxsYWJsZTxTPiA9IFMgZXh0ZW5kcyBFbnRpdHlJbnRlcmZhY2U8YW55PlxuICA/IERlbm9ybWFsaXplTnVsbGFibGVOZXN0ZWRTY2hlbWE8Uz4gfCB1bmRlZmluZWRcbiAgOiBTIGV4dGVuZHMgUmVjb3JkQ2xhc3NcbiAgPyBEZW5vcm1hbGl6ZU51bGxhYmxlTmVzdGVkU2NoZW1hPFM+XG4gIDogUyBleHRlbmRzIFNjaGVtYUNsYXNzXG4gID8gRGVub3JtYWxpemVSZXR1cm5UeXBlPFNbJ19kZW5vcm1hbGl6ZU51bGxhYmxlJ10+XG4gIDogUyBleHRlbmRzIFNlcmlhbGl6YWJsZTxpbmZlciBUPlxuICA/IFRcbiAgOiBTIGV4dGVuZHMgQXJyYXk8aW5mZXIgRj5cbiAgPyBEZW5vcm1hbGl6ZTxGPltdIHwgdW5kZWZpbmVkXG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IGFueSB9XG4gID8gRGVub3JtYWxpemVOdWxsYWJsZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZTxTPiA9IFMgZXh0ZW5kcyBFbnRpdHlJbnRlcmZhY2VcbiAgPyBzdHJpbmdcbiAgOiBTIGV4dGVuZHMgUmVjb3JkQ2xhc3NcbiAgPyBOb3JtYWxpemVPYmplY3Q8U1snc2NoZW1hJ10+XG4gIDogUyBleHRlbmRzIFNjaGVtYUNsYXNzXG4gID8gTm9ybWFsaXplUmV0dXJuVHlwZTxTWydub3JtYWxpemUnXT5cbiAgOiBTIGV4dGVuZHMgU2VyaWFsaXphYmxlPGluZmVyIFQ+XG4gID8gVFxuICA6IFMgZXh0ZW5kcyBBcnJheTxpbmZlciBGPlxuICA/IE5vcm1hbGl6ZTxGPltdXG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IGFueSB9XG4gID8gTm9ybWFsaXplT2JqZWN0PFM+XG4gIDogUztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplTnVsbGFibGU8Uz4gPSBTIGV4dGVuZHMgRW50aXR5SW50ZXJmYWNlXG4gID8gc3RyaW5nIHwgdW5kZWZpbmVkXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gTm9ybWFsaXplZE51bGxhYmxlT2JqZWN0PFNbJ3NjaGVtYSddPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IE5vcm1hbGl6ZVJldHVyblR5cGU8U1snX25vcm1hbGl6ZU51bGxhYmxlJ10+XG4gIDogUyBleHRlbmRzIFNlcmlhbGl6YWJsZTxpbmZlciBUPlxuICA/IFRcbiAgOiBTIGV4dGVuZHMgQXJyYXk8aW5mZXIgRj5cbiAgPyBOb3JtYWxpemU8Rj5bXSB8IHVuZGVmaW5lZFxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IE5vcm1hbGl6ZWROdWxsYWJsZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZWRTY2hlbWE8RSwgUj4gPSB7XG4gIGVudGl0aWVzOiBFO1xuICByZXN1bHQ6IFI7XG4gIGluZGV4ZXM6IE5vcm1hbGl6ZWRJbmRleDtcbiAgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudGl0eU1hcDxUID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEVudGl0eUludGVyZmFjZTxUPj47XG4iXSwibWFwcGluZ3MiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2NoZW1hLFxuICBTZXJpYWxpemFibGUsXG4gIEVudGl0eUludGVyZmFjZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBTY2hlbWFDbGFzcyxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHR5cGUgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGgge1xuICBrZXk6IHN0cmluZztcbiAgcGs6IHN0cmluZztcbn1cblxuLy8gVHlwZVNjcmlwdCA8NC4yIEluc3RhbmNlVHlwZTw+IGRvZXMgbm90IHdvcmsgb24gYWJzdHJhY3QgY2xhc3Nlc1xuZXhwb3J0IHR5cGUgQWJzdHJhY3RJbnN0YW5jZVR5cGU8VD4gPSBUIGV4dGVuZHMgbmV3ICguLi5hcmdzOiBhbnkpID0+IGluZmVyIFVcbiAgPyBVXG4gIDogVCBleHRlbmRzIHsgcHJvdG90eXBlOiBpbmZlciBVIH1cbiAgPyBVXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZWRFbnRpdHk8VD4gPSBUIGV4dGVuZHMge1xuICBwcm90b3R5cGU6IGluZmVyIFU7XG4gIHNjaGVtYTogaW5mZXIgUztcbn1cbiAgPyB7IFtLIGluIEV4Y2x1ZGU8a2V5b2YgVSwga2V5b2YgUz5dOiBVW0tdIH0gJiB7IFtLIGluIGtleW9mIFNdOiBzdHJpbmcgfVxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gRGVub3JtYWxpemU8U1tLXT4gOiBTW0tdO1xufTtcblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVOdWxsYWJsZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gRGVub3JtYWxpemVOdWxsYWJsZTxTW0tdPiA6IFNbS107XG59O1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVPYmplY3Q8UyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICBbSyBpbiBrZXlvZiBTXTogU1tLXSBleHRlbmRzIFNjaGVtYSA/IE5vcm1hbGl6ZTxTW0tdPiA6IFNbS107XG59O1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkTnVsbGFibGVPYmplY3Q8UyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICBbSyBpbiBrZXlvZiBTXTogU1tLXSBleHRlbmRzIFNjaGVtYSA/IE5vcm1hbGl6ZU51bGxhYmxlPFNbS10+IDogU1tLXTtcbn07XG5cbmludGVyZmFjZSBOZXN0ZWRTY2hlbWFDbGFzczxUID0gYW55PiB7XG4gIHNjaGVtYTogUmVjb3JkPHN0cmluZywgU2NoZW1hPjtcbiAgcHJvdG90eXBlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZENsYXNzPFQgPSBhbnk+IGV4dGVuZHMgTmVzdGVkU2NoZW1hQ2xhc3M8VD4ge1xuICBmcm9tSlM6ICguLi5hcmdzOiBhbnkpID0+IEFic3RyYWN0SW5zdGFuY2VUeXBlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbm9ybWFsaXplQ2FjaGUge1xuICBlbnRpdGllczoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIFtwazogc3RyaW5nXTogV2Vha01hcDxFbnRpdHlJbnRlcmZhY2UsIFdlYWtFbnRpdHlNYXA8b2JqZWN0LCBhbnk+PjtcbiAgICB9O1xuICB9O1xuICByZXN1bHRzOiB7XG4gICAgW2tleTogc3RyaW5nXTogV2Vha0VudGl0eU1hcDxvYmplY3QsIGFueT47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplTnVsbGFibGVOZXN0ZWRTY2hlbWE8UyBleHRlbmRzIE5lc3RlZFNjaGVtYUNsYXNzPiA9XG4gIGtleW9mIFNbJ3NjaGVtYSddIGV4dGVuZHMgbmV2ZXJcbiAgICA/IFNbJ3Byb3RvdHlwZSddIC8vIHRoaXMgaXMgdGhlIGNhc2Ugb2YgYSBub24tc2V0IHNjaGVtYSwgd2hpY2ggbWVhbnMgaXQgYWN0dWFsbHkgaGFzIG5vIG1lbWJlcnNcbiAgICA6IHN0cmluZyBleHRlbmRzIGtleW9mIFNbJ3NjaGVtYSddXG4gICAgPyBTWydwcm90b3R5cGUnXVxuICAgIDogU1sncHJvdG90eXBlJ10gLyomIHtcbiAgICAgICAgW0sgaW4ga2V5b2YgU1snc2NoZW1hJ11dOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFNbJ3NjaGVtYSddW0tdPjtcbiAgICAgIH0qLztcblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVSZXR1cm5UeXBlPFQ+ID0gVCBleHRlbmRzIChcbiAgaW5wdXQ6IGFueSxcbiAgdW52aXNpdDogYW55LFxuKSA9PiBbaW5mZXIgUiwgYW55LCBhbnldXG4gID8gUlxuICA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplUmV0dXJuVHlwZTxUPiA9IFQgZXh0ZW5kcyAoLi4uYXJnczogYW55KSA9PiBpbmZlciBSXG4gID8gUlxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZTxTPiA9IFMgZXh0ZW5kcyBFbnRpdHlJbnRlcmZhY2U8aW5mZXIgVT5cbiAgPyBVXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gQWJzdHJhY3RJbnN0YW5jZVR5cGU8Uz5cbiAgOiBTIGV4dGVuZHMgU2NoZW1hQ2xhc3NcbiAgPyBEZW5vcm1hbGl6ZVJldHVyblR5cGU8U1snZGVub3JtYWxpemUnXT5cbiAgOiBTIGV4dGVuZHMgU2VyaWFsaXphYmxlPGluZmVyIFQ+XG4gID8gVFxuICA6IFMgZXh0ZW5kcyBBcnJheTxpbmZlciBGPlxuICA/IERlbm9ybWFsaXplPEY+W11cbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogYW55IH1cbiAgPyBEZW5vcm1hbGl6ZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplTnVsbGFibGU8Uz4gPSBTIGV4dGVuZHMgRW50aXR5SW50ZXJmYWNlPGFueT5cbiAgPyBEZW5vcm1hbGl6ZU51bGxhYmxlTmVzdGVkU2NoZW1hPFM+IHwgdW5kZWZpbmVkXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gRGVub3JtYWxpemVOdWxsYWJsZU5lc3RlZFNjaGVtYTxTPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IERlbm9ybWFsaXplUmV0dXJuVHlwZTxTWydfZGVub3JtYWxpemVOdWxsYWJsZSddPlxuICA6IFMgZXh0ZW5kcyBTZXJpYWxpemFibGU8aW5mZXIgVD5cbiAgPyBUXG4gIDogUyBleHRlbmRzIEFycmF5PGluZmVyIEY+XG4gID8gRGVub3JtYWxpemU8Rj5bXSB8IHVuZGVmaW5lZFxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IERlbm9ybWFsaXplTnVsbGFibGVPYmplY3Q8Uz5cbiAgOiBTO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemU8Uz4gPSBTIGV4dGVuZHMgRW50aXR5SW50ZXJmYWNlXG4gID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gTm9ybWFsaXplT2JqZWN0PFNbJ3NjaGVtYSddPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IE5vcm1hbGl6ZVJldHVyblR5cGU8U1snbm9ybWFsaXplJ10+XG4gIDogUyBleHRlbmRzIFNlcmlhbGl6YWJsZTxpbmZlciBUPlxuICA/IFRcbiAgOiBTIGV4dGVuZHMgQXJyYXk8aW5mZXIgRj5cbiAgPyBOb3JtYWxpemU8Rj5bXVxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IE5vcm1hbGl6ZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZU51bGxhYmxlPFM+ID0gUyBleHRlbmRzIEVudGl0eUludGVyZmFjZVxuICA/IHN0cmluZyB8IHVuZGVmaW5lZFxuICA6IFMgZXh0ZW5kcyBSZWNvcmRDbGFzc1xuICA/IE5vcm1hbGl6ZWROdWxsYWJsZU9iamVjdDxTWydzY2hlbWEnXT5cbiAgOiBTIGV4dGVuZHMgU2NoZW1hQ2xhc3NcbiAgPyBOb3JtYWxpemVSZXR1cm5UeXBlPFNbJ19ub3JtYWxpemVOdWxsYWJsZSddPlxuICA6IFMgZXh0ZW5kcyBTZXJpYWxpemFibGU8aW5mZXIgVD5cbiAgPyBUXG4gIDogUyBleHRlbmRzIEFycmF5PGluZmVyIEY+XG4gID8gTm9ybWFsaXplPEY+W10gfCB1bmRlZmluZWRcbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogYW55IH1cbiAgPyBOb3JtYWxpemVkTnVsbGFibGVPYmplY3Q8Uz5cbiAgOiBTO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkU2NoZW1hPEUsIFI+ID0ge1xuICBlbnRpdGllczogRTtcbiAgcmVzdWx0OiBSO1xuICBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXg7XG4gIGVudGl0eU1ldGE6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBFbnRpdHlNYXA8VCA9IGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBFbnRpdHlJbnRlcmZhY2U8VD4+O1xuIl0sIm1hcHBpbmdzIjoiIn0=

@@ -77,2 +77,2 @@ import { isImmutable } from './schemas/ImmutableUtils.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIldlYWtFbnRpdHlNYXAiLCJuZXh0IiwiV2Vha01hcCIsImdldCIsImVudGl0eSIsImdldEVudGl0eSIsImN1ckxpbmsiLCJFTVBUWSIsIm5leHRQYXRoIiwibmV4dEVudGl0eSIsInZhbHVlIiwiam91cm5leSIsInNldCIsImRlcGVuZGVuY2llcyIsImxlbmd0aCIsIktleVNpemUiLCJwYXRoIiwibmV4dExpbmsiLCJMaW5rIiwiZGVwVG9QYXRocyIsInVuZGVmaW5lZCIsImdldEVudGl0aWVzIiwic3RhdGUiLCJlbnRpdHlJc0ltbXV0YWJsZSIsImtleSIsInBrIiwiZ2V0SW4iLCJtYXAiLCJkZXAiLCJFcnJvciIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi9zcmMvV2Vha0VudGl0eU1hcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0ltbXV0YWJsZSB9IGZyb20gJy4vc2NoZW1hcy9JbW11dGFibGVVdGlscy5qcyc7XG5pbXBvcnQgeyBQYXRoIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKiBNYXBzIGVudGl0eSBkZXBlbmRlbmNpZXMgdG8gYSB2YWx1ZSAodXN1YWxseSB0aGVpciBkZW5vcm1hbGl6ZWQgZm9ybSlcbiAqXG4gKiBEZXBlbmRlbmNpZXMgc3RvcmUgYFBhdGhgIHRvIGVuYWJsZSBxdWljayB0cmF2ZXJzYWwgdXNpbmcgb25seSBgU3RhdGVgXG4gKiBJZiAqYW55KiBtZW1iZXJzIG9mIHRoZSBkZXBlbmRlbmN5IGdldCBjbGVhbmVkIHVwLCBzbyBkb2VzIHRoYXQga2V5L3ZhbHVlIHBhaXIgZ2V0IHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdlYWtFbnRpdHlNYXA8SyBleHRlbmRzIG9iamVjdCwgVj4ge1xuICByZWFkb25seSBuZXh0ID0gbmV3IFdlYWtNYXA8SywgTGluazxLLCBWPj4oKTtcblxuICBnZXQoZW50aXR5OiBLLCBnZXRFbnRpdHk6IEdldEVudGl0eTxLIHwgc3ltYm9sPikge1xuICAgIGxldCBjdXJMaW5rID0gdGhpcy5uZXh0LmdldChlbnRpdHkpO1xuICAgIGlmICghY3VyTGluaykgcmV0dXJuIEVNUFRZO1xuICAgIHdoaWxlIChjdXJMaW5rLm5leHRQYXRoKSB7XG4gICAgICBjb25zdCBuZXh0RW50aXR5ID0gZ2V0RW50aXR5KGN1ckxpbmsubmV4dFBhdGgpO1xuICAgICAgY3VyTGluayA9IGN1ckxpbmsubmV4dC5nZXQobmV4dEVudGl0eSBhcyBhbnkpO1xuICAgICAgaWYgKCFjdXJMaW5rKSByZXR1cm4gRU1QVFk7XG4gICAgfVxuICAgIC8vIGN1ckxpbmsgZXhpc3RzLCBidXQgaGFzIG5vIHBhdGggLSBzbyBtdXN0IGhhdmUgYSB2YWx1ZVxuICAgIHJldHVybiBbY3VyTGluay52YWx1ZSwgY3VyTGluay5qb3VybmV5XSBhcyBbViwgUGF0aFtdXTtcbiAgfVxuXG4gIHNldChkZXBlbmRlbmNpZXM6IERlcDxLPltdLCB2YWx1ZTogVikge1xuICAgIGlmIChkZXBlbmRlbmNpZXMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEtleVNpemUoKTtcbiAgICBsZXQgY3VyTGluazogTGluazxLLCBWPiA9IHRoaXMgYXMgeyBuZXh0OiBXZWFrTWFwPEssIExpbms8SywgVj4+IH07XG4gICAgZm9yIChjb25zdCB7IGVudGl0eSwgcGF0aCB9IG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgbGV0IG5leHRMaW5rID0gY3VyTGluay5uZXh0LmdldChlbnRpdHkpO1xuICAgICAgaWYgKCFuZXh0TGluaykge1xuICAgICAgICBuZXh0TGluayA9IG5ldyBMaW5rPEssIFY+KCk7XG4gICAgICAgIGN1ckxpbmsubmV4dC5zZXQoZW50aXR5LCBuZXh0TGluayk7XG4gICAgICB9XG4gICAgICBjdXJMaW5rLm5leHRQYXRoID0gcGF0aDtcbiAgICAgIGN1ckxpbmsgPSBuZXh0TGluaztcbiAgICB9XG4gICAgLy8gaW4gY2FzZSB0aGVyZSB1c2VkIHRvIGJlIG1vcmVcbiAgICBkZWxldGUgY3VyTGluay5uZXh0UGF0aDtcbiAgICBjdXJMaW5rLnZhbHVlID0gdmFsdWU7XG4gICAgLy8gd2UgY291bGQgcmVjb21wdXRlIHRoaXMgb24gZ2V0LCBidXQgaXQgd291bGQgaGF2ZSBhIGNvc3QgYW5kIHdlIG9wdGltaXplIGZvciBgZ2V0YFxuICAgIGN1ckxpbmsuam91cm5leSA9IGRlcFRvUGF0aHMoZGVwZW5kZW5jaWVzKTtcbiAgfVxufVxuXG5jb25zdCBFTVBUWSA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZF0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdGllczxLIGV4dGVuZHMgb2JqZWN0PihzdGF0ZTogU3RhdGU8Sz4pOiBHZXRFbnRpdHk8Sz4ge1xuICBjb25zdCBlbnRpdHlJc0ltbXV0YWJsZSA9IGlzSW1tdXRhYmxlKHN0YXRlKTtcblxuICBpZiAoZW50aXR5SXNJbW11dGFibGUpIHtcbiAgICByZXR1cm4gKHsga2V5LCBwayB9OiBQYXRoKSA9PiBzdGF0ZS5nZXRJbihba2V5LCBwa10pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoeyBrZXksIHBrIH06IFBhdGgpID0+IHN0YXRlW2tleV0/Lltwa107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcFRvUGF0aHMoZGVwZW5kZW5jaWVzOiBEZXBbXSkge1xuICByZXR1cm4gZGVwZW5kZW5jaWVzLm1hcChkZXAgPT4gZGVwLnBhdGgpO1xufVxuXG5leHBvcnQgdHlwZSBHZXRFbnRpdHk8SyA9IG9iamVjdCB8IHN5bWJvbD4gPSAobG9va3VwOiBQYXRoKSA9PiBLO1xuXG4vKiogTGluayBpbiBhIGNoYWluICovXG5jbGFzcyBMaW5rPEsgZXh0ZW5kcyBvYmplY3QsIFY+IHtcbiAgbmV4dCA9IG5ldyBXZWFrTWFwPEssIExpbms8SywgVj4+KCk7XG4gIGRlY2xhcmUgdmFsdWU/OiBWO1xuICBkZWNsYXJlIGpvdXJuZXk/OiBQYXRoW107XG4gIGRlY2xhcmUgbmV4dFBhdGg/OiBQYXRoO1xufVxuXG5jbGFzcyBLZXlTaXplIGV4dGVuZHMgRXJyb3Ige1xuICBtZXNzYWdlID0gJ0tleXMgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBtZW1iZXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcDxLID0gb2JqZWN0PiB7XG4gIHBhdGg6IFBhdGg7XG4gIGVudGl0eTogSztcbn1cblxudHlwZSBTdGF0ZTxLIGV4dGVuZHMgb2JqZWN0PiA9XG4gIHwgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgSz4+XG4gIHwgeyBnZXRJbihwYXRoOiBbc3RyaW5nLCBzdHJpbmddKTogSyB9O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxXQUFXLFFBQVEsNkJBQTZCO0FBR3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLGFBQWEsQ0FBc0I7RUFBQTtJQUFBLEtBQzdDQyxJQUFJLEdBQUcsSUFBSUMsT0FBTyxFQUFpQjtFQUFBO0VBRTVDQyxHQUFHLENBQUNDLE1BQVMsRUFBRUMsU0FBZ0MsRUFBRTtJQUMvQyxJQUFJQyxPQUFPLEdBQUcsSUFBSSxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDO0lBQ25DLElBQUksQ0FBQ0UsT0FBTyxFQUFFLE9BQU9DLEtBQUs7SUFDMUIsT0FBT0QsT0FBTyxDQUFDRSxRQUFRLEVBQUU7TUFDdkIsTUFBTUMsVUFBVSxHQUFHSixTQUFTLENBQUNDLE9BQU8sQ0FBQ0UsUUFBUSxDQUFDO01BQzlDRixPQUFPLEdBQUdBLE9BQU8sQ0FBQ0wsSUFBSSxDQUFDRSxHQUFHLENBQUNNLFVBQVUsQ0FBUTtNQUM3QyxJQUFJLENBQUNILE9BQU8sRUFBRSxPQUFPQyxLQUFLO0lBQzVCO0lBQ0E7SUFDQSxPQUFPLENBQUNELE9BQU8sQ0FBQ0ksS0FBSyxFQUFFSixPQUFPLENBQUNLLE9BQU8sQ0FBQztFQUN6QztFQUVBQyxHQUFHLENBQUNDLFlBQXNCLEVBQUVILEtBQVEsRUFBRTtJQUNwQyxJQUFJRyxZQUFZLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxJQUFJQyxPQUFPLEVBQUU7SUFDaEQsSUFBSVQsT0FBbUIsR0FBRyxJQUF3QztJQUNsRSxLQUFLLE1BQU07TUFBRUYsTUFBTTtNQUFFWTtJQUFLLENBQUMsSUFBSUgsWUFBWSxFQUFFO01BQzNDLElBQUlJLFFBQVEsR0FBR1gsT0FBTyxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDO01BQ3ZDLElBQUksQ0FBQ2EsUUFBUSxFQUFFO1FBQ2JBLFFBQVEsR0FBRyxJQUFJQyxJQUFJLEVBQVE7UUFDM0JaLE9BQU8sQ0FBQ0wsSUFBSSxDQUFDVyxHQUFHLENBQUNSLE1BQU0sRUFBRWEsUUFBUSxDQUFDO01BQ3BDO01BQ0FYLE9BQU8sQ0FBQ0UsUUFBUSxHQUFHUSxJQUFJO01BQ3ZCVixPQUFPLEdBQUdXLFFBQVE7SUFDcEI7SUFDQTtJQUNBLE9BQU9YLE9BQU8sQ0FBQ0UsUUFBUTtJQUN2QkYsT0FBTyxDQUFDSSxLQUFLLEdBQUdBLEtBQUs7SUFDckI7SUFDQUosT0FBTyxDQUFDSyxPQUFPLEdBQUdRLFVBQVUsQ0FBQ04sWUFBWSxDQUFDO0VBQzVDO0FBQ0Y7QUFFQSxNQUFNTixLQUFLLEdBQUcsQ0FBQ2EsU0FBUyxFQUFFQSxTQUFTLENBQVU7QUFFN0MsT0FBTyxTQUFTQyxXQUFXLENBQW1CQyxLQUFlLEVBQWdCO0VBQzNFLE1BQU1DLGlCQUFpQixHQUFHeEIsV0FBVyxDQUFDdUIsS0FBSyxDQUFDO0VBRTVDLElBQUlDLGlCQUFpQixFQUFFO0lBQ3JCLE9BQU8sQ0FBQztNQUFFQyxHQUFHO01BQUVDO0lBQVMsQ0FBQyxLQUFLSCxLQUFLLENBQUNJLEtBQUssQ0FBQyxDQUFDRixHQUFHLEVBQUVDLEVBQUUsQ0FBQyxDQUFDO0VBQ3RELENBQUMsTUFBTTtJQUNMLE9BQU8sQ0FBQztNQUFFRCxHQUFHO01BQUVDO0lBQVMsQ0FBQztNQUFBO01BQUEscUJBQUtILEtBQUssQ0FBQ0UsR0FBRyxDQUFDLHFCQUFWLFdBQWFDLEVBQUUsQ0FBQztJQUFBO0VBQ2hEO0FBQ0Y7QUFFQSxPQUFPLFNBQVNOLFVBQVUsQ0FBQ04sWUFBbUIsRUFBRTtFQUM5QyxPQUFPQSxZQUFZLENBQUNjLEdBQUcsQ0FBQ0MsR0FBRyxJQUFJQSxHQUFHLENBQUNaLElBQUksQ0FBQztBQUMxQztBQUlBO0FBQ0EsTUFBTUUsSUFBSSxDQUFzQjtFQUFBO0lBQUEsS0FDOUJqQixJQUFJLEdBQUcsSUFBSUMsT0FBTyxFQUFpQjtFQUFBO0FBSXJDO0FBRUEsTUFBTWEsT0FBTyxTQUFTYyxLQUFLLENBQUM7RUFBQTtJQUFBO0lBQUEsS0FDMUJDLE9BQU8sR0FBRyx1Q0FBdUM7RUFBQTtBQUNuRCJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIldlYWtFbnRpdHlNYXAiLCJjb25zdHJ1Y3RvciIsIm5leHQiLCJXZWFrTWFwIiwiZ2V0IiwiZW50aXR5IiwiZ2V0RW50aXR5IiwiY3VyTGluayIsIkVNUFRZIiwibmV4dFBhdGgiLCJuZXh0RW50aXR5IiwidmFsdWUiLCJqb3VybmV5Iiwic2V0IiwiZGVwZW5kZW5jaWVzIiwibGVuZ3RoIiwiS2V5U2l6ZSIsInBhdGgiLCJuZXh0TGluayIsIkxpbmsiLCJkZXBUb1BhdGhzIiwidW5kZWZpbmVkIiwiZ2V0RW50aXRpZXMiLCJzdGF0ZSIsImVudGl0eUlzSW1tdXRhYmxlIiwia2V5IiwicGsiLCJnZXRJbiIsIl9zdGF0ZSRrZXkiLCJtYXAiLCJkZXAiLCJFcnJvciIsImFyZ3MiLCJtZXNzYWdlIl0sInNvdXJjZXMiOlsiLi4vc3JjL1dlYWtFbnRpdHlNYXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNJbW11dGFibGUgfSBmcm9tICcuL3NjaGVtYXMvSW1tdXRhYmxlVXRpbHMuanMnO1xuaW1wb3J0IHsgUGF0aCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKiogTWFwcyBlbnRpdHkgZGVwZW5kZW5jaWVzIHRvIGEgdmFsdWUgKHVzdWFsbHkgdGhlaXIgZGVub3JtYWxpemVkIGZvcm0pXG4gKlxuICogRGVwZW5kZW5jaWVzIHN0b3JlIGBQYXRoYCB0byBlbmFibGUgcXVpY2sgdHJhdmVyc2FsIHVzaW5nIG9ubHkgYFN0YXRlYFxuICogSWYgKmFueSogbWVtYmVycyBvZiB0aGUgZGVwZW5kZW5jeSBnZXQgY2xlYW5lZCB1cCwgc28gZG9lcyB0aGF0IGtleS92YWx1ZSBwYWlyIGdldCByZW1vdmVkLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXZWFrRW50aXR5TWFwPEsgZXh0ZW5kcyBvYmplY3QsIFY+IHtcbiAgcmVhZG9ubHkgbmV4dCA9IG5ldyBXZWFrTWFwPEssIExpbms8SywgVj4+KCk7XG5cbiAgZ2V0KGVudGl0eTogSywgZ2V0RW50aXR5OiBHZXRFbnRpdHk8SyB8IHN5bWJvbD4pIHtcbiAgICBsZXQgY3VyTGluayA9IHRoaXMubmV4dC5nZXQoZW50aXR5KTtcbiAgICBpZiAoIWN1ckxpbmspIHJldHVybiBFTVBUWTtcbiAgICB3aGlsZSAoY3VyTGluay5uZXh0UGF0aCkge1xuICAgICAgY29uc3QgbmV4dEVudGl0eSA9IGdldEVudGl0eShjdXJMaW5rLm5leHRQYXRoKTtcbiAgICAgIGN1ckxpbmsgPSBjdXJMaW5rLm5leHQuZ2V0KG5leHRFbnRpdHkgYXMgYW55KTtcbiAgICAgIGlmICghY3VyTGluaykgcmV0dXJuIEVNUFRZO1xuICAgIH1cbiAgICAvLyBjdXJMaW5rIGV4aXN0cywgYnV0IGhhcyBubyBwYXRoIC0gc28gbXVzdCBoYXZlIGEgdmFsdWVcbiAgICByZXR1cm4gW2N1ckxpbmsudmFsdWUsIGN1ckxpbmsuam91cm5leV0gYXMgW1YsIFBhdGhbXV07XG4gIH1cblxuICBzZXQoZGVwZW5kZW5jaWVzOiBEZXA8Sz5bXSwgdmFsdWU6IFYpIHtcbiAgICBpZiAoZGVwZW5kZW5jaWVzLmxlbmd0aCA8IDEpIHRocm93IG5ldyBLZXlTaXplKCk7XG4gICAgbGV0IGN1ckxpbms6IExpbms8SywgVj4gPSB0aGlzIGFzIHsgbmV4dDogV2Vha01hcDxLLCBMaW5rPEssIFY+PiB9O1xuICAgIGZvciAoY29uc3QgeyBlbnRpdHksIHBhdGggfSBvZiBkZXBlbmRlbmNpZXMpIHtcbiAgICAgIGxldCBuZXh0TGluayA9IGN1ckxpbmsubmV4dC5nZXQoZW50aXR5KTtcbiAgICAgIGlmICghbmV4dExpbmspIHtcbiAgICAgICAgbmV4dExpbmsgPSBuZXcgTGluazxLLCBWPigpO1xuICAgICAgICBjdXJMaW5rLm5leHQuc2V0KGVudGl0eSwgbmV4dExpbmspO1xuICAgICAgfVxuICAgICAgY3VyTGluay5uZXh0UGF0aCA9IHBhdGg7XG4gICAgICBjdXJMaW5rID0gbmV4dExpbms7XG4gICAgfVxuICAgIC8vIGluIGNhc2UgdGhlcmUgdXNlZCB0byBiZSBtb3JlXG4gICAgZGVsZXRlIGN1ckxpbmsubmV4dFBhdGg7XG4gICAgY3VyTGluay52YWx1ZSA9IHZhbHVlO1xuICAgIC8vIHdlIGNvdWxkIHJlY29tcHV0ZSB0aGlzIG9uIGdldCwgYnV0IGl0IHdvdWxkIGhhdmUgYSBjb3N0IGFuZCB3ZSBvcHRpbWl6ZSBmb3IgYGdldGBcbiAgICBjdXJMaW5rLmpvdXJuZXkgPSBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyk7XG4gIH1cbn1cblxuY29uc3QgRU1QVFkgPSBbdW5kZWZpbmVkLCB1bmRlZmluZWRdIGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXRpZXM8SyBleHRlbmRzIG9iamVjdD4oc3RhdGU6IFN0YXRlPEs+KTogR2V0RW50aXR5PEs+IHtcbiAgY29uc3QgZW50aXR5SXNJbW11dGFibGUgPSBpc0ltbXV0YWJsZShzdGF0ZSk7XG5cbiAgaWYgKGVudGl0eUlzSW1tdXRhYmxlKSB7XG4gICAgcmV0dXJuICh7IGtleSwgcGsgfTogUGF0aCkgPT4gc3RhdGUuZ2V0SW4oW2tleSwgcGtdKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKHsga2V5LCBwayB9OiBQYXRoKSA9PiBzdGF0ZVtrZXldPy5bcGtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXBUb1BhdGhzKGRlcGVuZGVuY2llczogRGVwW10pIHtcbiAgcmV0dXJuIGRlcGVuZGVuY2llcy5tYXAoZGVwID0+IGRlcC5wYXRoKTtcbn1cblxuZXhwb3J0IHR5cGUgR2V0RW50aXR5PEsgPSBvYmplY3QgfCBzeW1ib2w+ID0gKGxvb2t1cDogUGF0aCkgPT4gSztcblxuLyoqIExpbmsgaW4gYSBjaGFpbiAqL1xuY2xhc3MgTGluazxLIGV4dGVuZHMgb2JqZWN0LCBWPiB7XG4gIG5leHQgPSBuZXcgV2Vha01hcDxLLCBMaW5rPEssIFY+PigpO1xuICBkZWNsYXJlIHZhbHVlPzogVjtcbiAgZGVjbGFyZSBqb3VybmV5PzogUGF0aFtdO1xuICBkZWNsYXJlIG5leHRQYXRoPzogUGF0aDtcbn1cblxuY2xhc3MgS2V5U2l6ZSBleHRlbmRzIEVycm9yIHtcbiAgbWVzc2FnZSA9ICdLZXlzIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgbWVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXA8SyA9IG9iamVjdD4ge1xuICBwYXRoOiBQYXRoO1xuICBlbnRpdHk6IEs7XG59XG5cbnR5cGUgU3RhdGU8SyBleHRlbmRzIG9iamVjdD4gPVxuICB8IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIEs+PlxuICB8IHsgZ2V0SW4ocGF0aDogW3N0cmluZywgc3RyaW5nXSk6IEsgfTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxRQUFRLDZCQUE2QjtBQUd6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNQyxhQUFhLENBQXNCO0VBQUFDLFlBQUE7SUFBQSxLQUM3Q0MsSUFBSSxHQUFHLElBQUlDLE9BQU8sRUFBaUI7RUFBQTtFQUU1Q0MsR0FBR0EsQ0FBQ0MsTUFBUyxFQUFFQyxTQUFnQyxFQUFFO0lBQy9DLElBQUlDLE9BQU8sR0FBRyxJQUFJLENBQUNMLElBQUksQ0FBQ0UsR0FBRyxDQUFDQyxNQUFNLENBQUM7SUFDbkMsSUFBSSxDQUFDRSxPQUFPLEVBQUUsT0FBT0MsS0FBSztJQUMxQixPQUFPRCxPQUFPLENBQUNFLFFBQVEsRUFBRTtNQUN2QixNQUFNQyxVQUFVLEdBQUdKLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDRSxRQUFRLENBQUM7TUFDOUNGLE9BQU8sR0FBR0EsT0FBTyxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ00sVUFBVSxDQUFRO01BQzdDLElBQUksQ0FBQ0gsT0FBTyxFQUFFLE9BQU9DLEtBQUs7SUFDNUI7SUFDQTtJQUNBLE9BQU8sQ0FBQ0QsT0FBTyxDQUFDSSxLQUFLLEVBQUVKLE9BQU8sQ0FBQ0ssT0FBTyxDQUFDO0VBQ3pDO0VBRUFDLEdBQUdBLENBQUNDLFlBQXNCLEVBQUVILEtBQVEsRUFBRTtJQUNwQyxJQUFJRyxZQUFZLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxJQUFJQyxPQUFPLEVBQUU7SUFDaEQsSUFBSVQsT0FBbUIsR0FBRyxJQUF3QztJQUNsRSxLQUFLLE1BQU07TUFBRUYsTUFBTTtNQUFFWTtJQUFLLENBQUMsSUFBSUgsWUFBWSxFQUFFO01BQzNDLElBQUlJLFFBQVEsR0FBR1gsT0FBTyxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDO01BQ3ZDLElBQUksQ0FBQ2EsUUFBUSxFQUFFO1FBQ2JBLFFBQVEsR0FBRyxJQUFJQyxJQUFJLEVBQVE7UUFDM0JaLE9BQU8sQ0FBQ0wsSUFBSSxDQUFDVyxHQUFHLENBQUNSLE1BQU0sRUFBRWEsUUFBUSxDQUFDO01BQ3BDO01BQ0FYLE9BQU8sQ0FBQ0UsUUFBUSxHQUFHUSxJQUFJO01BQ3ZCVixPQUFPLEdBQUdXLFFBQVE7SUFDcEI7SUFDQTtJQUNBLE9BQU9YLE9BQU8sQ0FBQ0UsUUFBUTtJQUN2QkYsT0FBTyxDQUFDSSxLQUFLLEdBQUdBLEtBQUs7SUFDckI7SUFDQUosT0FBTyxDQUFDSyxPQUFPLEdBQUdRLFVBQVUsQ0FBQ04sWUFBWSxDQUFDO0VBQzVDO0FBQ0Y7QUFFQSxNQUFNTixLQUFLLEdBQUcsQ0FBQ2EsU0FBUyxFQUFFQSxTQUFTLENBQVU7QUFFN0MsT0FBTyxTQUFTQyxXQUFXQSxDQUFtQkMsS0FBZSxFQUFnQjtFQUMzRSxNQUFNQyxpQkFBaUIsR0FBR3pCLFdBQVcsQ0FBQ3dCLEtBQUssQ0FBQztFQUU1QyxJQUFJQyxpQkFBaUIsRUFBRTtJQUNyQixPQUFPLENBQUM7TUFBRUMsR0FBRztNQUFFQztJQUFTLENBQUMsS0FBS0gsS0FBSyxDQUFDSSxLQUFLLENBQUMsQ0FBQ0YsR0FBRyxFQUFFQyxFQUFFLENBQUMsQ0FBQztFQUN0RCxDQUFDLE1BQU07SUFDTCxPQUFPLENBQUM7TUFBRUQsR0FBRztNQUFFQztJQUFTLENBQUM7TUFBQSxJQUFBRSxVQUFBO01BQUEsUUFBQUEsVUFBQSxHQUFLTCxLQUFLLENBQUNFLEdBQUcsQ0FBQyxxQkFBVkcsVUFBQSxDQUFhRixFQUFFLENBQUM7SUFBQTtFQUNoRDtBQUNGO0FBRUEsT0FBTyxTQUFTTixVQUFVQSxDQUFDTixZQUFtQixFQUFFO0VBQzlDLE9BQU9BLFlBQVksQ0FBQ2UsR0FBRyxDQUFDQyxHQUFHLElBQUlBLEdBQUcsQ0FBQ2IsSUFBSSxDQUFDO0FBQzFDO0FBSUE7QUFDQSxNQUFNRSxJQUFJLENBQXNCO0VBQUFsQixZQUFBO0lBQUEsS0FDOUJDLElBQUksR0FBRyxJQUFJQyxPQUFPLEVBQWlCO0VBQUE7QUFJckM7QUFFQSxNQUFNYSxPQUFPLFNBQVNlLEtBQUssQ0FBQztFQUFBOUIsWUFBQSxHQUFBK0IsSUFBQTtJQUFBLFNBQUFBLElBQUE7SUFBQSxLQUMxQkMsT0FBTyxHQUFHLHVDQUF1QztFQUFBO0FBQ25EIn0=

@@ -222,2 +222,2 @@ import { isEntity } from './isEntity.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwiYXJyYXlEZW5vcm1hbGl6ZSIsImlzSW1tdXRhYmxlIiwib2JqZWN0RGVub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZ2V0RW50aXRpZXMiLCJkZXBUb1BhdGhzIiwidW52aXNpdEVudGl0eSIsImVudGl0eU9ySWQiLCJzY2hlbWEiLCJ1bnZpc2l0IiwiZ2V0RW50aXR5IiwiZ2V0Q2FjaGUiLCJsb2NhbENhY2hlIiwiY3ljbGVDYWNoZSIsImRlcGVuZGVuY2llcyIsImN5Y2xlSW5kZXgiLCJlbnRpdHkiLCJwayIsImtleSIsInRvU3RyaW5nIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJ0b0pTIiwiT2JqZWN0IiwiY3JlYXRlIiwibG9jYWxDYWNoZUtleSIsImN5Y2xlQ2FjaGVLZXkiLCJmb3VuZCIsImRlbGV0ZWQiLCJnbG9iYWxDYWNoZSIsImNhY2hlVmFsdWUiLCJnZXQiLCJ2YWx1ZSIsInB1c2giLCJ0cmFja2luZ0luZGV4IiwibGVuZ3RoIiwicGF0aCIsImVudGl0eUNvcHkiLCJjcmVhdGVJZlZhbGlkIiwidG9PYmplY3QiLCJ3aXRoVHJhY2tlZEVudGl0aWVzIiwic2V0TG9jYWwiLCJsb2NhbEtleSIsInNsaWNlIiwiaSIsInNldCIsImdldFVudmlzaXQiLCJlbnRpdGllcyIsImVudGl0eUNhY2hlIiwicmVzdWx0Q2FjaGUiLCJnZXRFbnRpdHlDYWNoZXMiLCJpbnB1dCIsImhhc0Rlbm9ybWFsaXplIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FjaGFibGUiLCJyZXQiLCJlbnRpdHlQYXRocyIsInVuc2hpZnQiLCJlbnRpdHlDYWNoZUtleSIsIldlYWtNYXAiLCJ3ZW0iLCJkZW5vcm1hbGl6ZVNpbXBsZSIsIm9yaWdpbmFsVW52aXNpdCIsIm9nIiwid3JhcHBlZFVudmlzaXQiXSwic291cmNlcyI6WyIuLi9zcmMvZGVub3JtYWxpemUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTY2hlbWEsIEVudGl0eUludGVyZmFjZSwgVW52aXNpdEZ1bmN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaXNFbnRpdHkgfSBmcm9tICcuL2lzRW50aXR5LmpzJztcbmltcG9ydCB7IGRlbm9ybWFsaXplIGFzIGFycmF5RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvQXJyYXkuanMnO1xuaW1wb3J0IHsgaXNJbW11dGFibGUgfSBmcm9tICcuL3NjaGVtYXMvSW1tdXRhYmxlVXRpbHMuanMnO1xuaW1wb3J0IHsgZGVub3JtYWxpemUgYXMgb2JqZWN0RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvT2JqZWN0LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIERlbm9ybWFsaXplQ2FjaGUsXG4gIFBhdGgsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IFdlYWtFbnRpdHlNYXAsIHtcbiAgdHlwZSBEZXAsXG4gIGdldEVudGl0aWVzLFxuICB0eXBlIEdldEVudGl0eSxcbiAgZGVwVG9QYXRocyxcbn0gZnJvbSAnLi9XZWFrRW50aXR5TWFwLmpzJztcblxuaW50ZXJmYWNlIEVudGl0eUNhY2hlVmFsdWUge1xuICBkZXBlbmRlbmNpZXM6IERlcFtdO1xuICB2YWx1ZTogW2FueSwgYm9vbGVhbiwgYm9vbGVhbl07XG59XG5jb25zdCB1bnZpc2l0RW50aXR5ID0gKFxuICBlbnRpdHlPcklkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgc3RyaW5nLFxuICBzY2hlbWE6IEVudGl0eUludGVyZmFjZSxcbiAgdW52aXNpdDogVW52aXNpdEZ1bmN0aW9uLFxuICBnZXRFbnRpdHk6IEdldEVudGl0eSxcbiAgZ2V0Q2FjaGU6IFJldHVyblR5cGU8dHlwZW9mIGdldEVudGl0eUNhY2hlcz4sXG4gIGxvY2FsQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBjeWNsZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PixcbiAgZGVwZW5kZW5jaWVzOiBEZXBbXSxcbiAgY3ljbGVJbmRleDogeyBpOiBudW1iZXIgfSxcbik6IFtkZW5vcm1hbGl6ZWQ6IG9iamVjdCB8IHVuZGVmaW5lZCwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dID0+IHtcbiAgY29uc3QgZW50aXR5ID1cbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ29iamVjdCdcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBnZXRFbnRpdHkoeyBwazogZW50aXR5T3JJZCwga2V5OiBzY2hlbWEua2V5IH0pO1xuICBpZiAoXG4gICAgdHlwZW9mIGVudGl0eSA9PT0gJ3N5bWJvbCcgJiZcbiAgICAoZW50aXR5IGFzIHN5bWJvbCkudG9TdHJpbmcoKS5pbmNsdWRlcygnREVMRVRFRCcpXG4gICkge1xuICAgIHJldHVybiBbdW5kZWZpbmVkLCB0cnVlLCB0cnVlXTtcbiAgICAvLyBUT0RPOiBDaGFuZ2UgdG8gdGhpcyBhcyBicmVha2luZyBjaGFuZ2Ugb25jZSB3ZSBvbmx5IHN1cHBvcnQgbmV3ZXIgZW50aXRpZXNcbiAgICAvLyBhbHNvIHJlbW92ZSBgKGVudGl0eSBhcyBzeW1ib2wpLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ0RFTEVURUQnKWAgYW5kIGRvIHRoaXMgZm9yIGFsbCBzeW1ib2xzXG4gICAgLy8gcmV0dXJuIHNjaGVtYS5kZW5vcm1hbGl6ZShlbnRpdHksIHVudmlzaXQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBlbnRpdHkgIT09ICdvYmplY3QnIHx8IGVudGl0eSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBbZW50aXR5IGFzIGFueSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IHBrID1cbiAgICAvLyBub3JtYWxpemUgbXVzdCBhbHdheXMgcGxhY2UgYSBzdHJpbmcsIGJlY2F1c2UgcGsoKSByZXR1cm4gdmFsdWUgaXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgLy8gdGhlcmVmb3JlIG5vIG5lZWQgdG8gY2hlY2sgZm9yIG51bWJlcnNcbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ3N0cmluZydcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBzY2hlbWEucGsoaXNJbW11dGFibGUoZW50aXR5KSA/IChlbnRpdHkgYXMgYW55KS50b0pTKCkgOiBlbnRpdHkpO1xuICAvLyBpZiB3ZSBjYW4ndCBnZW5lcmF0ZSBhIHdvcmtpbmcgcGs7IHRoaXMgaXMgaG9wZWxlc3Mgc28gbGV0J3MgZ2l2ZSB0aGVtIHdoYXQncyBhbHJlYWR5IHRoZXJlXG4gIC8vIG90aGVyd2lzZSwgZXZlbiB3aGVuIHdlIGFyZW4ndCBkb2luZyBhIGxvb2t1cCB3ZSB3YW50IHRvIHR1cm4gdGhlIGVudGl0eU9ySWQgb2JqZWN0IGludG8gdGhlXG4gIC8vIGV4cGVjdGVkIGNsYXNzLCBhbmQgY2FjaGUgdGhhdCBjbGFzcyBmb3IgcmVmZXJlbnRpYWwgZXF1YWxpdHkuIFBLIGlzIHVzZWQgZm9yIGdsb2JhbCBlcXVhbGl0eSBsb29rdXAuXG4gIGlmIChwayA9PT0gdW5kZWZpbmVkIHx8IHBrID09PSAnJyB8fCBwayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gW2VudGl0eSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IHNjaGVtYS5rZXk7XG4gIGlmICghKGtleSBpbiBsb2NhbENhY2hlKSkge1xuICAgIGxvY2FsQ2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cbiAgaWYgKCEoa2V5IGluIGN5Y2xlQ2FjaGUpKSB7XG4gICAgY3ljbGVDYWNoZVtrZXldID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuICBjb25zdCBsb2NhbENhY2hlS2V5ID0gbG9jYWxDYWNoZVtrZXldO1xuICBjb25zdCBjeWNsZUNhY2hlS2V5ID0gY3ljbGVDYWNoZVtrZXldO1xuXG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgLy8gbG9jYWwgY2FjaGUgbG9va3VwIGZpcnN0XG4gIGlmICghbG9jYWxDYWNoZUtleVtwa10pIHtcbiAgICBjb25zdCBnbG9iYWxDYWNoZTogV2Vha0VudGl0eU1hcDxvYmplY3QsIEVudGl0eUNhY2hlVmFsdWU+ID0gZ2V0Q2FjaGUoXG4gICAgICBwayxcbiAgICAgIHNjaGVtYSxcbiAgICApO1xuICAgIGNvbnN0IFtjYWNoZVZhbHVlXSA9IGdsb2JhbENhY2hlLmdldChlbnRpdHksIGdldEVudGl0eSk7XG4gICAgLy8gVE9ETzogd2hhdCBpZiB0aGlzIGp1c3QgcmV0dXJuZWQgdGhlIGRlcHMgLSB0aGVuIHdlIGRvbid0IG5lZWQgdG8gc3RvcmUgdGhlbVxuXG4gICAgaWYgKGNhY2hlVmFsdWUpIHtcbiAgICAgIGxvY2FsQ2FjaGVLZXlbcGtdID0gY2FjaGVWYWx1ZS52YWx1ZVswXTtcbiAgICAgIC8vIFRPRE86IGNhbiB3ZSBzdG9yZSB0aGUgY2FjaGUgdmFsdWVzIGluc3RlYWQgb2YgdHJhY2tpbmcgKmFsbCogdGhlaXIgc291cmNlcz9cbiAgICAgIC8vIHRoaXMgaXMgb25seSB1c2VkIGZvciBzZXR0aW5nIHJlc3VsdHMgY2FjaGUgY29ycmVjdGx5LiBpZiB3ZSBnb3QgdGhpcyBmYXIgd2Ugd2lsbCBkZWYgbmVlZCB0byBzZXQgYXMgd2Ugd291bGQgaGF2ZSBhbHJlYWR5IHRyaWVkIGdldHRpbmcgaXRcbiAgICAgIGRlcGVuZGVuY2llcy5wdXNoKC4uLmNhY2hlVmFsdWUuZGVwZW5kZW5jaWVzKTtcbiAgICAgIHJldHVybiBjYWNoZVZhbHVlLnZhbHVlO1xuICAgIH1cbiAgICAvLyBpZiB3ZSBkb24ndCBmaW5kIGluIGRlbm9ybWFsaXplIGNhY2hlIHRoZW4gZG8gZnVsbCBkZW5vcm1hbGl6ZVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgdHJhY2tpbmdJbmRleCA9IGRlcGVuZGVuY2llcy5sZW5ndGg7XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG5cbiAgICAgIGxldCBlbnRpdHlDb3B5OiBhbnk7XG4gICAgICBpZiAoc2NoZW1hLmNyZWF0ZUlmVmFsaWQpIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGxvY2FsQ2FjaGVLZXlbcGtdID0gaXNJbW11dGFibGUoZW50aXR5KVxuICAgICAgICAgID8gc2NoZW1hLmNyZWF0ZUlmVmFsaWQoZW50aXR5LnRvT2JqZWN0KCkpXG4gICAgICAgICAgOiBzY2hlbWEuY3JlYXRlSWZWYWxpZChlbnRpdHkpO1xuICAgICAgICAvLyBUT0RPKGJyZWFraW5nKTogcmVtb3ZlIG9uY2Ugb2xkIHZlcmlvbnMgbm8gbG9uZ2VyIHN1cHBvcnRlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGVudGl0eTtcbiAgICAgICAgdW52aXNpdCA9IHdpdGhUcmFja2VkRW50aXRpZXModW52aXNpdCk7XG4gICAgICAgIHVudmlzaXQuc2V0TG9jYWwgPSBlbnRpdHlDb3B5ID0+IChsb2NhbENhY2hlS2V5W3BrXSA9IGVudGl0eUNvcHkpO1xuICAgICAgfVxuXG4gICAgICBjeWNsZUNhY2hlS2V5W3BrXSA9IHRyYWNraW5nSW5kZXg7XG4gICAgICBpZiAoZW50aXR5Q29weSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIHVuZGVmaW5lZCBpbmRpY2F0ZXMgd2Ugc2hvdWxkIHN1c3BlbnNlIChwZXJoYXBzIGZhaWxlZCB2YWxpZGF0aW9uKVxuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdID0gc2NoZW1hLmRlbm9ybWFsaXplKFxuICAgICAgICAgIGVudGl0eUNvcHksXG4gICAgICAgICAgdW52aXNpdCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBjeWNsZUNhY2hlS2V5W3BrXTtcblxuICAgICAgLy8gaWYgaW4gY3ljbGUsIHVzZSB0aGUgc3RhcnQgb2YgdGhlIGN5Y2xlIHRvIHRyYWNrIGFsbCBkZXBzXG4gICAgICAvLyBvdGhlcndpc2UsIHdlIHVzZSBvdXIgb3duIHRyYWNraW5nSW5kZXhcbiAgICAgIGNvbnN0IGxvY2FsS2V5ID0gZGVwZW5kZW5jaWVzLnNsaWNlKFxuICAgICAgICBjeWNsZUluZGV4LmkgPT09IC0xID8gdHJhY2tpbmdJbmRleCA6IGN5Y2xlSW5kZXguaSxcbiAgICAgICk7XG4gICAgICBjb25zdCBjYWNoZVZhbHVlOiBFbnRpdHlDYWNoZVZhbHVlID0ge1xuICAgICAgICBkZXBlbmRlbmNpZXM6IGxvY2FsS2V5LFxuICAgICAgICB2YWx1ZTogW2xvY2FsQ2FjaGVLZXlbcGtdLCBmb3VuZCwgZGVsZXRlZF0sXG4gICAgICB9O1xuICAgICAgZ2xvYmFsQ2FjaGUuc2V0KGxvY2FsS2V5LCBjYWNoZVZhbHVlKTtcblxuICAgICAgLy8gc3RhcnQgb2YgY3ljbGUgLSByZXNldCBjeWNsZSBkZXRlY3Rpb25cbiAgICAgIGlmIChjeWNsZUluZGV4LmkgPT09IHRyYWNraW5nSW5kZXgpIHtcbiAgICAgICAgY3ljbGVJbmRleC5pID0gLTE7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGN5Y2xlIGRldGVjdGVkXG4gICAgaWYgKHBrIGluIGN5Y2xlQ2FjaGVLZXkpIHtcbiAgICAgIGN5Y2xlSW5kZXguaSA9IGN5Y2xlQ2FjaGVLZXlbcGtdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3aXRoIG5vIGN5Y2xlLCBnbG9iYWxDYWNoZUVudHJ5IHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdO1xufTtcblxuY29uc3QgZ2V0VW52aXNpdCA9IChcbiAgZW50aXRpZXM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBlbnRpdHlDYWNoZTogRGVub3JtYWxpemVDYWNoZVsnZW50aXRpZXMnXSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKSA9PiB7XG4gIGNvbnN0IGdldEVudGl0eSA9IGdldEVudGl0aWVzKGVudGl0aWVzKTtcbiAgY29uc3QgZ2V0Q2FjaGUgPSBnZXRFbnRpdHlDYWNoZXMoZW50aXR5Q2FjaGUpO1xuICBjb25zdCBsb2NhbENhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHt9O1xuICBjb25zdCBkZXBlbmRlbmNpZXM6IERlcFtdID0gW107XG4gIGNvbnN0IGN5Y2xlSW5kZXggPSB7IGk6IC0xIH07XG4gIGNvbnN0IGN5Y2xlQ2FjaGUgPSB7fTtcblxuICBmdW5jdGlvbiB1bnZpc2l0KFxuICAgIGlucHV0OiBhbnksXG4gICAgc2NoZW1hOiBhbnksXG4gICk6IFtkZW5vcm1hbGl6ZWQ6IGFueSwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dIHtcbiAgICBpZiAoIXNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuXG4gICAgLy8gbnVsbCBpcyBjb25zaWRlcmVkIGludGVudGlvbmFsLCB0aHVzIGFsd2F5cyAnZm91bmQnIGFzIHRydWVcbiAgICBpZiAoaW5wdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNEZW5vcm1hbGl6ZSA9IHR5cGVvZiBzY2hlbWEuZGVub3JtYWxpemUgPT09ICdmdW5jdGlvbic7XG5cbiAgICAvLyBkZXNlcmlhbGl6ZSBmaWVsZHMgKGxpa2UgRGF0ZSlcbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIHNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuICAgICAgLy8gZmllbGQgZGVzZXJpYWxpemF0aW9uIHNob3VsZCBuZXZlciBjb3VudCBhZ2FpbnN0ICdmb3VuZCcgKHdoZXRoZXIgdG8gdXNlZCBpbmZlcnJlZCByZXN1bHRzKVxuICAgICAgaWYgKGlucHV0ID09PSB1bmRlZmluZWQpIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICAgIHJldHVybiBbbmV3IHNjaGVtYShpbnB1dCksIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtpbnB1dCwgZmFsc2UsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSlcbiAgICAgICAgPyBhcnJheURlbm9ybWFsaXplXG4gICAgICAgIDogb2JqZWN0RGVub3JtYWxpemU7XG4gICAgICByZXR1cm4gbWV0aG9kKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIGlmIChpc0VudGl0eShzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gdW52aXNpdEVudGl0eShcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgdW52aXNpdCxcbiAgICAgICAgZ2V0RW50aXR5LFxuICAgICAgICBnZXRDYWNoZSxcbiAgICAgICAgbG9jYWxDYWNoZSxcbiAgICAgICAgY3ljbGVDYWNoZSxcbiAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICBjeWNsZUluZGV4LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoaGFzRGVub3JtYWxpemUpIHtcbiAgICAgIHJldHVybiBzY2hlbWEuZGVub3JtYWxpemUoaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgaW5wdXQ6IGFueSxcbiAgICBzY2hlbWE6IGFueSxcbiAgKTogW1xuICAgIGRlbm9ybWFsaXplZDogYW55LFxuICAgIGZvdW5kOiBib29sZWFuLFxuICAgIGRlbGV0ZWQ6IGJvb2xlYW4sXG4gICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgXSA9PiB7XG4gICAgLy8gaW4gdGhlIGNhc2Ugd2hlcmUgV2Vha01hcCBjYW5ub3QgYmUgdXNlZFxuICAgIC8vIHRoaXMgdGVzdCBlbnN1cmVzIG51bGwgaXMgcHJvcGVybHkgZXhjbHVkZWQgZnJvbSBXZWFrTWFwXG4gICAgY29uc3QgY2FjaGFibGUgPSBPYmplY3QoaW5wdXQpID09PSBpbnB1dCAmJiBPYmplY3Qoc2NoZW1hKSA9PT0gc2NoZW1hO1xuICAgIGlmICghY2FjaGFibGUpIHtcbiAgICAgIGNvbnN0IHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB0aGlzIGlzIGZhc3RlciB0aGFuIHNwcmVhZFxuICAgICAgLy8gaHR0cHM6Ly93d3cubWVhc3VyZXRoYXQubmV0L0JlbmNobWFya3MvU2hvdy8yMzYzNi8wL3NwcmVhZC13aXRoLXR1cGxlc1xuICAgICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyldO1xuICAgIH1cblxuICAgIGxldCBbcmV0LCBlbnRpdHlQYXRoc10gPSByZXN1bHRDYWNoZS5nZXQoaW5wdXQsIGdldEVudGl0eSk7XG5cbiAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB3ZSB3YW50IHRvIGRvIHRoaXMgYmVmb3JlIHdlIGFkZCBvdXIgJ2lucHV0JyBlbnRyeVxuICAgICAgZW50aXR5UGF0aHMgPSBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyk7XG4gICAgICAvLyBmb3IgdGhlIGZpcnN0IGVudHJ5LCBgcGF0aGAgaXMgaWdub3JlZCBzbyBlbXB0eSBtZW1iZXJzIGlzIGZpbmVcbiAgICAgIGRlcGVuZGVuY2llcy51bnNoaWZ0KHsgZW50aXR5OiBpbnB1dCwgcGF0aDogeyBrZXk6ICcnLCBwazogJycgfSB9KTtcbiAgICAgIHJlc3VsdENhY2hlLnNldChkZXBlbmRlbmNpZXMsIHJldCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBlbnRpdHlQYXRocyBhcyBQYXRoW11dO1xuICB9O1xufTtcblxuY29uc3QgZ2V0RW50aXR5Q2FjaGVzID0gKGVudGl0eUNhY2hlOiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddKSA9PiB7XG4gIHJldHVybiAocGs6IHN0cmluZywgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UpID0+IHtcbiAgICBjb25zdCBrZXkgPSBzY2hlbWEua2V5O1xuXG4gICAgaWYgKCEoa2V5IGluIGVudGl0eUNhY2hlKSkge1xuICAgICAgZW50aXR5Q2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgfVxuICAgIGNvbnN0IGVudGl0eUNhY2hlS2V5ID0gZW50aXR5Q2FjaGVba2V5XTtcbiAgICBpZiAoIWVudGl0eUNhY2hlS2V5W3BrXSlcbiAgICAgIGVudGl0eUNhY2hlS2V5W3BrXSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICBFbnRpdHlJbnRlcmZhY2UsXG4gICAgICAgIFdlYWtFbnRpdHlNYXA8b2JqZWN0LCBhbnk+XG4gICAgICA+KCk7XG5cbiAgICBsZXQgd2VtOiBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PiA9IGVudGl0eUNhY2hlS2V5W3BrXS5nZXQoc2NoZW1hKSBhcyBhbnk7XG4gICAgaWYgKCF3ZW0pIHtcbiAgICAgIHdlbSA9IG5ldyBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PigpO1xuICAgICAgZW50aXR5Q2FjaGVLZXlbcGtdLnNldChzY2hlbWEsIHdlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdlbTtcbiAgfTtcbn07XG5cbnR5cGUgRGVub3JtYWxpemVSZXR1cm48UyBleHRlbmRzIFNjaGVtYT4gPVxuICB8IFtcbiAgICAgIGRlbm9ybWFsaXplZDogRGVub3JtYWxpemU8Uz4sXG4gICAgICBmb3VuZDogdHJ1ZSxcbiAgICAgIGRlbGV0ZWQ6IGZhbHNlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGJvb2xlYW4sXG4gICAgICBkZWxldGVkOiB0cnVlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgZGVsZXRlZDogYm9vbGVhbixcbiAgICAgIGVudGl0eVBhdGhzOiBQYXRoW10sXG4gICAgXTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IDxTIGV4dGVuZHMgU2NoZW1hPihcbiAgaW5wdXQ6IHVua25vd24sXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ2VudGl0aWVzJ10gPSB7fSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddID0gbmV3IFdlYWtFbnRpdHlNYXAoKSxcbik6IERlbm9ybWFsaXplUmV0dXJuPFM+ID0+IHtcbiAgLy8gdW5kZWZpbmVkIG1lYW4gZG9uJ3QgZG8gYW55dGhpbmdcbiAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2UsIFtdXSBhcyBbYW55LCBib29sZWFuLCBib29sZWFuLCBhbnldO1xuICB9XG4gIGlmIChpbnB1dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGZhbHNlLCBmYWxzZSwgW11dIGFzIFthbnksIGJvb2xlYW4sIGJvb2xlYW4sIGFueV07XG4gIH1cbiAgcmV0dXJuIGdldFVudmlzaXQoZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkoaW5wdXQsIHNjaGVtYSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemVTaW1wbGUgPSA8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGlucHV0OiBhbnksXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU/OiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddLFxuICByZXN1bHRDYWNoZT86IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKTpcbiAgfCBbZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZTxTPiwgZm91bmQ6IHRydWUsIGRlbGV0ZWQ6IGZhbHNlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiB0cnVlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBmYWxzZSwgZGVsZXRlZDogYm9vbGVhbl0gPT5cbiAgZGVub3JtYWxpemUoaW5wdXQsIHNjaGVtYSwgZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkuc2xpY2UoXG4gICAgMCxcbiAgICAzLFxuICApIGFzIGFueTtcblxuLy8gVE9ETyhicmVha2luZyk6IHJlbW92ZSBvbmNlIHVudXNlZFxuZnVuY3Rpb24gd2l0aFRyYWNrZWRFbnRpdGllcyh1bnZpc2l0OiBVbnZpc2l0RnVuY3Rpb24pOiBVbnZpc2l0RnVuY3Rpb24ge1xuICAvLyBldmVyeSB0aW1lIHdlIG5lc3QsIHdlIHdhbnQgdG8gdW53cmFwIGJhY2sgdG8gdGhlIHRvcC5cbiAgLy8gdGhpcyBpcyBkdWUgdG8gb25seSBuZWVkZWQgdGhlIG5leHQgbGV2ZWwgb2YgbmVzdGVkIGVudGl0aWVzIGZvciBsb29rdXBcbiAgY29uc3Qgb3JpZ2luYWxVbnZpc2l0ID0gdW52aXNpdC5vZyB8fCB1bnZpc2l0O1xuICBjb25zdCB3cmFwcGVkVW52aXNpdCA9IChpbnB1dDogYW55LCBzY2hlbWE6IGFueSkgPT5cbiAgICBvcmlnaW5hbFVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gIHdyYXBwZWRVbnZpc2l0Lm9nID0gdW52aXNpdDtcbiAgcmV0dXJuIHdyYXBwZWRVbnZpc2l0O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxRQUFRLFFBQVEsZUFBZTtBQUN4QyxTQUFTQyxXQUFXLElBQUlDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNwRSxTQUFTQyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3pELFNBQVNGLFdBQVcsSUFBSUcsaUJBQWlCLFFBQVEscUJBQXFCO0FBT3RFLE9BQU9DLGFBQWEsSUFFbEJDLFdBQVcsRUFFWEMsVUFBVSxRQUNMLG9CQUFvQjtBQU0zQixNQUFNQyxhQUFhLEdBQUcsQ0FDcEJDLFVBQXdDLEVBQ3hDQyxNQUF1QixFQUN2QkMsT0FBd0IsRUFDeEJDLFNBQW9CLEVBQ3BCQyxRQUE0QyxFQUM1Q0MsVUFBK0MsRUFDL0NDLFVBQWtELEVBQ2xEQyxZQUFtQixFQUNuQkMsVUFBeUIsS0FDZ0Q7RUFDekUsTUFBTUMsTUFBTSxHQUNWLE9BQU9ULFVBQVUsS0FBSyxRQUFRLEdBQzFCQSxVQUFVLEdBQ1ZHLFNBQVMsQ0FBQztJQUFFTyxFQUFFLEVBQUVWLFVBQVU7SUFBRVcsR0FBRyxFQUFFVixNQUFNLENBQUNVO0VBQUksQ0FBQyxDQUFDO0VBQ3BELElBQ0UsT0FBT0YsTUFBTSxLQUFLLFFBQVEsSUFDekJBLE1BQU0sQ0FBWUcsUUFBUSxFQUFFLENBQUNDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFDakQ7SUFDQSxPQUFPLENBQUNDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQzlCO0lBQ0E7SUFDQTtFQUNGOztFQUVBLElBQUksT0FBT0wsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxLQUFLLElBQUksRUFBRTtJQUNqRCxPQUFPLENBQUNBLE1BQU0sRUFBUyxLQUFLLEVBQUUsS0FBSyxDQUFDO0VBQ3RDO0VBRUEsTUFBTUMsRUFBRTtFQUNOO0VBQ0E7RUFDQSxPQUFPVixVQUFVLEtBQUssUUFBUSxHQUMxQkEsVUFBVSxHQUNWQyxNQUFNLENBQUNTLEVBQUUsQ0FBQ2hCLFdBQVcsQ0FBQ2UsTUFBTSxDQUFDLEdBQUlBLE1BQU0sQ0FBU00sSUFBSSxFQUFFLEdBQUdOLE1BQU0sQ0FBQztFQUN0RTtFQUNBO0VBQ0E7RUFDQSxJQUFJQyxFQUFFLEtBQUtJLFNBQVMsSUFBSUosRUFBRSxLQUFLLEVBQUUsSUFBSUEsRUFBRSxLQUFLLFdBQVcsRUFBRTtJQUN2RCxPQUFPLENBQUNELE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0VBQy9CO0VBRUEsTUFBTUUsR0FBRyxHQUFHVixNQUFNLENBQUNVLEdBQUc7RUFDdEIsSUFBSSxFQUFFQSxHQUFHLElBQUlOLFVBQVUsQ0FBQyxFQUFFO0lBQ3hCQSxVQUFVLENBQUNNLEdBQUcsQ0FBQyxHQUFHSyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7RUFDdkM7RUFDQSxJQUFJLEVBQUVOLEdBQUcsSUFBSUwsVUFBVSxDQUFDLEVBQUU7SUFDeEJBLFVBQVUsQ0FBQ0ssR0FBRyxDQUFDLEdBQUdLLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQztFQUN2QztFQUNBLE1BQU1DLGFBQWEsR0FBR2IsVUFBVSxDQUFDTSxHQUFHLENBQUM7RUFDckMsTUFBTVEsYUFBYSxHQUFHYixVQUFVLENBQUNLLEdBQUcsQ0FBQztFQUVyQyxJQUFJUyxLQUFLLEdBQUcsSUFBSTtFQUNoQixJQUFJQyxPQUFPLEdBQUcsS0FBSzs7RUFFbkI7RUFDQSxJQUFJLENBQUNILGFBQWEsQ0FBQ1IsRUFBRSxDQUFDLEVBQUU7SUFDdEIsTUFBTVksV0FBb0QsR0FBR2xCLFFBQVEsQ0FDbkVNLEVBQUUsRUFDRlQsTUFBTSxDQUNQO0lBQ0QsTUFBTSxDQUFDc0IsVUFBVSxDQUFDLEdBQUdELFdBQVcsQ0FBQ0UsR0FBRyxDQUFDZixNQUFNLEVBQUVOLFNBQVMsQ0FBQztJQUN2RDs7SUFFQSxJQUFJb0IsVUFBVSxFQUFFO01BQ2RMLGFBQWEsQ0FBQ1IsRUFBRSxDQUFDLEdBQUdhLFVBQVUsQ0FBQ0UsS0FBSyxDQUFDLENBQUMsQ0FBQztNQUN2QztNQUNBO01BQ0FsQixZQUFZLENBQUNtQixJQUFJLENBQUMsR0FBR0gsVUFBVSxDQUFDaEIsWUFBWSxDQUFDO01BQzdDLE9BQU9nQixVQUFVLENBQUNFLEtBQUs7SUFDekI7SUFDQTtJQUFBLEtBQ0s7TUFDSCxNQUFNRSxhQUFhLEdBQUdwQixZQUFZLENBQUNxQixNQUFNO01BQ3pDckIsWUFBWSxDQUFDbUIsSUFBSSxDQUFDO1FBQUVqQixNQUFNO1FBQUVvQixJQUFJLEVBQUU7VUFBRWxCLEdBQUc7VUFBRUQ7UUFBRztNQUFFLENBQUMsQ0FBQztNQUVoRCxJQUFJb0IsVUFBZTtNQUNuQixJQUFJN0IsTUFBTSxDQUFDOEIsYUFBYSxFQUFFO1FBQ3hCRCxVQUFVLEdBQUdaLGFBQWEsQ0FBQ1IsRUFBRSxDQUFDLEdBQUdoQixXQUFXLENBQUNlLE1BQU0sQ0FBQyxHQUNoRFIsTUFBTSxDQUFDOEIsYUFBYSxDQUFDdEIsTUFBTSxDQUFDdUIsUUFBUSxFQUFFLENBQUMsR0FDdkMvQixNQUFNLENBQUM4QixhQUFhLENBQUN0QixNQUFNLENBQUM7UUFDaEM7TUFDRixDQUFDLE1BQU07UUFDTHFCLFVBQVUsR0FBR3JCLE1BQU07UUFDbkJQLE9BQU8sR0FBRytCLG1CQUFtQixDQUFDL0IsT0FBTyxDQUFDO1FBQ3RDQSxPQUFPLENBQUNnQyxRQUFRLEdBQUdKLFVBQVUsSUFBS1osYUFBYSxDQUFDUixFQUFFLENBQUMsR0FBR29CLFVBQVc7TUFDbkU7TUFFQVgsYUFBYSxDQUFDVCxFQUFFLENBQUMsR0FBR2lCLGFBQWE7TUFDakMsSUFBSUcsVUFBVSxLQUFLaEIsU0FBUyxFQUFFO1FBQzVCO1FBQ0FNLEtBQUssR0FBRyxLQUFLO1FBQ2JDLE9BQU8sR0FBRyxJQUFJO01BQ2hCLENBQUMsTUFBTTtRQUNMLENBQUNILGFBQWEsQ0FBQ1IsRUFBRSxDQUFDLEVBQUVVLEtBQUssRUFBRUMsT0FBTyxDQUFDLEdBQUdwQixNQUFNLENBQUNULFdBQVcsQ0FDdERzQyxVQUFVLEVBQ1Y1QixPQUFPLENBQ1I7TUFDSDtNQUNBLE9BQU9pQixhQUFhLENBQUNULEVBQUUsQ0FBQzs7TUFFeEI7TUFDQTtNQUNBLE1BQU15QixRQUFRLEdBQUc1QixZQUFZLENBQUM2QixLQUFLLENBQ2pDNUIsVUFBVSxDQUFDNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHVixhQUFhLEdBQUduQixVQUFVLENBQUM2QixDQUFDLENBQ25EO01BQ0QsTUFBTWQsVUFBNEIsR0FBRztRQUNuQ2hCLFlBQVksRUFBRTRCLFFBQVE7UUFDdEJWLEtBQUssRUFBRSxDQUFDUCxhQUFhLENBQUNSLEVBQUUsQ0FBQyxFQUFFVSxLQUFLLEVBQUVDLE9BQU87TUFDM0MsQ0FBQztNQUNEQyxXQUFXLENBQUNnQixHQUFHLENBQUNILFFBQVEsRUFBRVosVUFBVSxDQUFDOztNQUVyQztNQUNBLElBQUlmLFVBQVUsQ0FBQzZCLENBQUMsS0FBS1YsYUFBYSxFQUFFO1FBQ2xDbkIsVUFBVSxDQUFDNkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztNQUNuQjtJQUNGO0VBQ0YsQ0FBQyxNQUFNO0lBQ0w7SUFDQSxJQUFJM0IsRUFBRSxJQUFJUyxhQUFhLEVBQUU7TUFDdkJYLFVBQVUsQ0FBQzZCLENBQUMsR0FBR2xCLGFBQWEsQ0FBQ1QsRUFBRSxDQUFDO0lBQ2xDLENBQUMsTUFBTTtNQUNMO01BQ0FILFlBQVksQ0FBQ21CLElBQUksQ0FBQztRQUFFakIsTUFBTTtRQUFFb0IsSUFBSSxFQUFFO1VBQUVsQixHQUFHO1VBQUVEO1FBQUc7TUFBRSxDQUFDLENBQUM7SUFDbEQ7RUFDRjtFQUVBLE9BQU8sQ0FBQ1EsYUFBYSxDQUFDUixFQUFFLENBQUMsRUFBRVUsS0FBSyxFQUFFQyxPQUFPLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU1rQixVQUFVLEdBQUcsQ0FDakJDLFFBQTZDLEVBQzdDQyxXQUF5QyxFQUN6Q0MsV0FBZ0QsS0FDN0M7RUFDSCxNQUFNdkMsU0FBUyxHQUFHTixXQUFXLENBQUMyQyxRQUFRLENBQUM7RUFDdkMsTUFBTXBDLFFBQVEsR0FBR3VDLGVBQWUsQ0FBQ0YsV0FBVyxDQUFDO0VBQzdDLE1BQU1wQyxVQUErQyxHQUFHLENBQUMsQ0FBQztFQUMxRCxNQUFNRSxZQUFtQixHQUFHLEVBQUU7RUFDOUIsTUFBTUMsVUFBVSxHQUFHO0lBQUU2QixDQUFDLEVBQUUsQ0FBQztFQUFFLENBQUM7RUFDNUIsTUFBTS9CLFVBQVUsR0FBRyxDQUFDLENBQUM7RUFFckIsU0FBU0osT0FBTyxDQUNkMEMsS0FBVSxFQUNWM0MsTUFBVyxFQUM0QztJQUN2RCxJQUFJLENBQUNBLE1BQU0sRUFBRSxPQUFPLENBQUMyQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQzs7SUFFeEM7SUFDQSxJQUFJQSxLQUFLLEtBQUssSUFBSSxFQUFFO01BQ2xCLE9BQU8sQ0FBQ0EsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7SUFDN0I7SUFFQSxNQUFNQyxjQUFjLEdBQUcsT0FBTzVDLE1BQU0sQ0FBQ1QsV0FBVyxLQUFLLFVBQVU7O0lBRS9EO0lBQ0EsSUFBSSxDQUFDcUQsY0FBYyxJQUFJLE9BQU81QyxNQUFNLEtBQUssVUFBVSxFQUFFO01BQ25ELElBQUkyQyxLQUFLLFlBQVkzQyxNQUFNLEVBQUUsT0FBTyxDQUFDMkMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7TUFDeEQ7TUFDQSxJQUFJQSxLQUFLLEtBQUs5QixTQUFTLEVBQUUsT0FBTyxDQUFDOEIsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7TUFDcEQsT0FBTyxDQUFDLElBQUkzQyxNQUFNLENBQUMyQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO0lBQ3pDO0lBRUEsSUFBSUEsS0FBSyxLQUFLOUIsU0FBUyxFQUFFO01BQ3ZCLE9BQU8sQ0FBQzhCLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQzlCO0lBRUEsSUFBSSxDQUFDQyxjQUFjLElBQUksT0FBTzVDLE1BQU0sS0FBSyxRQUFRLEVBQUU7TUFDakQsTUFBTTZDLE1BQU0sR0FBR0MsS0FBSyxDQUFDQyxPQUFPLENBQUMvQyxNQUFNLENBQUMsR0FDaENSLGdCQUFnQixHQUNoQkUsaUJBQWlCO01BQ3JCLE9BQU9tRCxNQUFNLENBQUM3QyxNQUFNLEVBQUUyQyxLQUFLLEVBQUUxQyxPQUFPLENBQUM7SUFDdkM7SUFFQSxJQUFJWCxRQUFRLENBQUNVLE1BQU0sQ0FBQyxFQUFFO01BQ3BCLE9BQU9GLGFBQWEsQ0FDbEI2QyxLQUFLLEVBQ0wzQyxNQUFNLEVBQ05DLE9BQU8sRUFDUEMsU0FBUyxFQUNUQyxRQUFRLEVBQ1JDLFVBQVUsRUFDVkMsVUFBVSxFQUNWQyxZQUFZLEVBQ1pDLFVBQVUsQ0FDWDtJQUNIO0lBRUEsSUFBSXFDLGNBQWMsRUFBRTtNQUNsQixPQUFPNUMsTUFBTSxDQUFDVCxXQUFXLENBQUNvRCxLQUFLLEVBQUUxQyxPQUFPLENBQUM7SUFDM0M7SUFFQSxPQUFPLENBQUMwQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQztFQUM3QjtFQUVBLE9BQU8sQ0FDTEEsS0FBVSxFQUNWM0MsTUFBVyxLQU1SO0lBQ0g7SUFDQTtJQUNBLE1BQU1nRCxRQUFRLEdBQUdqQyxNQUFNLENBQUM0QixLQUFLLENBQUMsS0FBS0EsS0FBSyxJQUFJNUIsTUFBTSxDQUFDZixNQUFNLENBQUMsS0FBS0EsTUFBTTtJQUNyRSxJQUFJLENBQUNnRCxRQUFRLEVBQUU7TUFDYixNQUFNQyxHQUFHLEdBQUdoRCxPQUFPLENBQUMwQyxLQUFLLEVBQUUzQyxNQUFNLENBQUM7TUFDbEM7TUFDQTtNQUNBLE9BQU8sQ0FBQ2lELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVwRCxVQUFVLENBQUNTLFlBQVksQ0FBQyxDQUFDO0lBQzNEO0lBRUEsSUFBSSxDQUFDMkMsR0FBRyxFQUFFQyxXQUFXLENBQUMsR0FBR1QsV0FBVyxDQUFDbEIsR0FBRyxDQUFDb0IsS0FBSyxFQUFFekMsU0FBUyxDQUFDO0lBRTFELElBQUkrQyxHQUFHLEtBQUtwQyxTQUFTLEVBQUU7TUFDckJvQyxHQUFHLEdBQUdoRCxPQUFPLENBQUMwQyxLQUFLLEVBQUUzQyxNQUFNLENBQUM7TUFDNUI7TUFDQWtELFdBQVcsR0FBR3JELFVBQVUsQ0FBQ1MsWUFBWSxDQUFDO01BQ3RDO01BQ0FBLFlBQVksQ0FBQzZDLE9BQU8sQ0FBQztRQUFFM0MsTUFBTSxFQUFFbUMsS0FBSztRQUFFZixJQUFJLEVBQUU7VUFBRWxCLEdBQUcsRUFBRSxFQUFFO1VBQUVELEVBQUUsRUFBRTtRQUFHO01BQUUsQ0FBQyxDQUFDO01BQ2xFZ0MsV0FBVyxDQUFDSixHQUFHLENBQUMvQixZQUFZLEVBQUUyQyxHQUFHLENBQUM7SUFDcEM7SUFFQSxPQUFPLENBQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUVDLFdBQVcsQ0FBVztFQUN4RCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU1SLGVBQWUsR0FBSUYsV0FBeUMsSUFBSztFQUNyRSxPQUFPLENBQUMvQixFQUFVLEVBQUVULE1BQXVCLEtBQUs7SUFDOUMsTUFBTVUsR0FBRyxHQUFHVixNQUFNLENBQUNVLEdBQUc7SUFFdEIsSUFBSSxFQUFFQSxHQUFHLElBQUk4QixXQUFXLENBQUMsRUFBRTtNQUN6QkEsV0FBVyxDQUFDOUIsR0FBRyxDQUFDLEdBQUdLLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQztJQUN4QztJQUNBLE1BQU1vQyxjQUFjLEdBQUdaLFdBQVcsQ0FBQzlCLEdBQUcsQ0FBQztJQUN2QyxJQUFJLENBQUMwQyxjQUFjLENBQUMzQyxFQUFFLENBQUMsRUFDckIyQyxjQUFjLENBQUMzQyxFQUFFLENBQUMsR0FBRyxJQUFJNEMsT0FBTyxFQUc3QjtJQUVMLElBQUlDLEdBQStCLEdBQUdGLGNBQWMsQ0FBQzNDLEVBQUUsQ0FBQyxDQUFDYyxHQUFHLENBQUN2QixNQUFNLENBQVE7SUFDM0UsSUFBSSxDQUFDc0QsR0FBRyxFQUFFO01BQ1JBLEdBQUcsR0FBRyxJQUFJM0QsYUFBYSxFQUFlO01BQ3RDeUQsY0FBYyxDQUFDM0MsRUFBRSxDQUFDLENBQUM0QixHQUFHLENBQUNyQyxNQUFNLEVBQUVzRCxHQUFHLENBQUM7SUFDckM7SUFFQSxPQUFPQSxHQUFHO0VBQ1osQ0FBQztBQUNILENBQUM7QUFzQkQ7QUFDQSxPQUFPLE1BQU0vRCxXQUFXLEdBQUcsQ0FDekJvRCxLQUFjLEVBQ2QzQyxNQUFxQixFQUNyQnVDLFFBQWEsRUFDYkMsV0FBeUMsR0FBRyxDQUFDLENBQUMsRUFDOUNDLFdBQWdELEdBQUcsSUFBSTlDLGFBQWEsRUFBRSxLQUM3QztFQUN6QjtFQUNBLElBQUlLLE1BQU0sS0FBS2EsU0FBUyxFQUFFO0lBQ3hCLE9BQU8sQ0FBQzhCLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztFQUNqQztFQUNBLElBQUlBLEtBQUssS0FBSzlCLFNBQVMsRUFBRTtJQUN2QixPQUFPLENBQUNBLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztFQUN0QztFQUNBLE9BQU95QixVQUFVLENBQUNDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLENBQUMsQ0FBQ0UsS0FBSyxFQUFFM0MsTUFBTSxDQUFDO0FBQ3RFLENBQUM7QUFFRCxPQUFPLE1BQU11RCxpQkFBaUIsR0FBRyxDQUMvQlosS0FBVSxFQUNWM0MsTUFBcUIsRUFDckJ1QyxRQUFhLEVBQ2JDLFdBQTBDLEVBQzFDQyxXQUFpRCxLQUtqRGxELFdBQVcsQ0FBQ29ELEtBQUssRUFBRTNDLE1BQU0sRUFBRXVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLENBQUMsQ0FBQ04sS0FBSyxDQUNsRSxDQUFDLEVBQ0QsQ0FBQyxDQUNLOztBQUVWO0FBQ0EsU0FBU0gsbUJBQW1CLENBQUMvQixPQUF3QixFQUFtQjtFQUN0RTtFQUNBO0VBQ0EsTUFBTXVELGVBQWUsR0FBR3ZELE9BQU8sQ0FBQ3dELEVBQUUsSUFBSXhELE9BQU87RUFDN0MsTUFBTXlELGNBQWMsR0FBRyxDQUFDZixLQUFVLEVBQUUzQyxNQUFXLEtBQzdDd0QsZUFBZSxDQUFDYixLQUFLLEVBQUUzQyxNQUFNLENBQUM7RUFDaEMwRCxjQUFjLENBQUNELEVBQUUsR0FBR3hELE9BQU87RUFDM0IsT0FBT3lELGNBQWM7QUFDdkIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwiYXJyYXlEZW5vcm1hbGl6ZSIsImlzSW1tdXRhYmxlIiwib2JqZWN0RGVub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZ2V0RW50aXRpZXMiLCJkZXBUb1BhdGhzIiwidW52aXNpdEVudGl0eSIsImVudGl0eU9ySWQiLCJzY2hlbWEiLCJ1bnZpc2l0IiwiZ2V0RW50aXR5IiwiZ2V0Q2FjaGUiLCJsb2NhbENhY2hlIiwiY3ljbGVDYWNoZSIsImRlcGVuZGVuY2llcyIsImN5Y2xlSW5kZXgiLCJlbnRpdHkiLCJwayIsImtleSIsInRvU3RyaW5nIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJ0b0pTIiwiT2JqZWN0IiwiY3JlYXRlIiwibG9jYWxDYWNoZUtleSIsImN5Y2xlQ2FjaGVLZXkiLCJmb3VuZCIsImRlbGV0ZWQiLCJnbG9iYWxDYWNoZSIsImNhY2hlVmFsdWUiLCJnZXQiLCJ2YWx1ZSIsInB1c2giLCJ0cmFja2luZ0luZGV4IiwibGVuZ3RoIiwicGF0aCIsImVudGl0eUNvcHkiLCJjcmVhdGVJZlZhbGlkIiwidG9PYmplY3QiLCJ3aXRoVHJhY2tlZEVudGl0aWVzIiwic2V0TG9jYWwiLCJsb2NhbEtleSIsInNsaWNlIiwiaSIsInNldCIsImdldFVudmlzaXQiLCJlbnRpdGllcyIsImVudGl0eUNhY2hlIiwicmVzdWx0Q2FjaGUiLCJnZXRFbnRpdHlDYWNoZXMiLCJpbnB1dCIsImhhc0Rlbm9ybWFsaXplIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FjaGFibGUiLCJyZXQiLCJlbnRpdHlQYXRocyIsInVuc2hpZnQiLCJlbnRpdHlDYWNoZUtleSIsIldlYWtNYXAiLCJ3ZW0iLCJkZW5vcm1hbGl6ZVNpbXBsZSIsIm9yaWdpbmFsVW52aXNpdCIsIm9nIiwid3JhcHBlZFVudmlzaXQiXSwic291cmNlcyI6WyIuLi9zcmMvZGVub3JtYWxpemUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTY2hlbWEsIEVudGl0eUludGVyZmFjZSwgVW52aXNpdEZ1bmN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaXNFbnRpdHkgfSBmcm9tICcuL2lzRW50aXR5LmpzJztcbmltcG9ydCB7IGRlbm9ybWFsaXplIGFzIGFycmF5RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvQXJyYXkuanMnO1xuaW1wb3J0IHsgaXNJbW11dGFibGUgfSBmcm9tICcuL3NjaGVtYXMvSW1tdXRhYmxlVXRpbHMuanMnO1xuaW1wb3J0IHsgZGVub3JtYWxpemUgYXMgb2JqZWN0RGVub3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvT2JqZWN0LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIERlbm9ybWFsaXplQ2FjaGUsXG4gIFBhdGgsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IFdlYWtFbnRpdHlNYXAsIHtcbiAgdHlwZSBEZXAsXG4gIGdldEVudGl0aWVzLFxuICB0eXBlIEdldEVudGl0eSxcbiAgZGVwVG9QYXRocyxcbn0gZnJvbSAnLi9XZWFrRW50aXR5TWFwLmpzJztcblxuaW50ZXJmYWNlIEVudGl0eUNhY2hlVmFsdWUge1xuICBkZXBlbmRlbmNpZXM6IERlcFtdO1xuICB2YWx1ZTogW2FueSwgYm9vbGVhbiwgYm9vbGVhbl07XG59XG5jb25zdCB1bnZpc2l0RW50aXR5ID0gKFxuICBlbnRpdHlPcklkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgc3RyaW5nLFxuICBzY2hlbWE6IEVudGl0eUludGVyZmFjZSxcbiAgdW52aXNpdDogVW52aXNpdEZ1bmN0aW9uLFxuICBnZXRFbnRpdHk6IEdldEVudGl0eSxcbiAgZ2V0Q2FjaGU6IFJldHVyblR5cGU8dHlwZW9mIGdldEVudGl0eUNhY2hlcz4sXG4gIGxvY2FsQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBjeWNsZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PixcbiAgZGVwZW5kZW5jaWVzOiBEZXBbXSxcbiAgY3ljbGVJbmRleDogeyBpOiBudW1iZXIgfSxcbik6IFtkZW5vcm1hbGl6ZWQ6IG9iamVjdCB8IHVuZGVmaW5lZCwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dID0+IHtcbiAgY29uc3QgZW50aXR5ID1cbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ29iamVjdCdcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBnZXRFbnRpdHkoeyBwazogZW50aXR5T3JJZCwga2V5OiBzY2hlbWEua2V5IH0pO1xuICBpZiAoXG4gICAgdHlwZW9mIGVudGl0eSA9PT0gJ3N5bWJvbCcgJiZcbiAgICAoZW50aXR5IGFzIHN5bWJvbCkudG9TdHJpbmcoKS5pbmNsdWRlcygnREVMRVRFRCcpXG4gICkge1xuICAgIHJldHVybiBbdW5kZWZpbmVkLCB0cnVlLCB0cnVlXTtcbiAgICAvLyBUT0RPOiBDaGFuZ2UgdG8gdGhpcyBhcyBicmVha2luZyBjaGFuZ2Ugb25jZSB3ZSBvbmx5IHN1cHBvcnQgbmV3ZXIgZW50aXRpZXNcbiAgICAvLyBhbHNvIHJlbW92ZSBgKGVudGl0eSBhcyBzeW1ib2wpLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ0RFTEVURUQnKWAgYW5kIGRvIHRoaXMgZm9yIGFsbCBzeW1ib2xzXG4gICAgLy8gcmV0dXJuIHNjaGVtYS5kZW5vcm1hbGl6ZShlbnRpdHksIHVudmlzaXQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBlbnRpdHkgIT09ICdvYmplY3QnIHx8IGVudGl0eSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBbZW50aXR5IGFzIGFueSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IHBrID1cbiAgICAvLyBub3JtYWxpemUgbXVzdCBhbHdheXMgcGxhY2UgYSBzdHJpbmcsIGJlY2F1c2UgcGsoKSByZXR1cm4gdmFsdWUgaXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgLy8gdGhlcmVmb3JlIG5vIG5lZWQgdG8gY2hlY2sgZm9yIG51bWJlcnNcbiAgICB0eXBlb2YgZW50aXR5T3JJZCA9PT0gJ3N0cmluZydcbiAgICAgID8gZW50aXR5T3JJZFxuICAgICAgOiBzY2hlbWEucGsoaXNJbW11dGFibGUoZW50aXR5KSA/IChlbnRpdHkgYXMgYW55KS50b0pTKCkgOiBlbnRpdHkpO1xuICAvLyBpZiB3ZSBjYW4ndCBnZW5lcmF0ZSBhIHdvcmtpbmcgcGs7IHRoaXMgaXMgaG9wZWxlc3Mgc28gbGV0J3MgZ2l2ZSB0aGVtIHdoYXQncyBhbHJlYWR5IHRoZXJlXG4gIC8vIG90aGVyd2lzZSwgZXZlbiB3aGVuIHdlIGFyZW4ndCBkb2luZyBhIGxvb2t1cCB3ZSB3YW50IHRvIHR1cm4gdGhlIGVudGl0eU9ySWQgb2JqZWN0IGludG8gdGhlXG4gIC8vIGV4cGVjdGVkIGNsYXNzLCBhbmQgY2FjaGUgdGhhdCBjbGFzcyBmb3IgcmVmZXJlbnRpYWwgZXF1YWxpdHkuIFBLIGlzIHVzZWQgZm9yIGdsb2JhbCBlcXVhbGl0eSBsb29rdXAuXG4gIGlmIChwayA9PT0gdW5kZWZpbmVkIHx8IHBrID09PSAnJyB8fCBwayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gW2VudGl0eSwgZmFsc2UsIGZhbHNlXTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IHNjaGVtYS5rZXk7XG4gIGlmICghKGtleSBpbiBsb2NhbENhY2hlKSkge1xuICAgIGxvY2FsQ2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cbiAgaWYgKCEoa2V5IGluIGN5Y2xlQ2FjaGUpKSB7XG4gICAgY3ljbGVDYWNoZVtrZXldID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuICBjb25zdCBsb2NhbENhY2hlS2V5ID0gbG9jYWxDYWNoZVtrZXldO1xuICBjb25zdCBjeWNsZUNhY2hlS2V5ID0gY3ljbGVDYWNoZVtrZXldO1xuXG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgLy8gbG9jYWwgY2FjaGUgbG9va3VwIGZpcnN0XG4gIGlmICghbG9jYWxDYWNoZUtleVtwa10pIHtcbiAgICBjb25zdCBnbG9iYWxDYWNoZTogV2Vha0VudGl0eU1hcDxvYmplY3QsIEVudGl0eUNhY2hlVmFsdWU+ID0gZ2V0Q2FjaGUoXG4gICAgICBwayxcbiAgICAgIHNjaGVtYSxcbiAgICApO1xuICAgIGNvbnN0IFtjYWNoZVZhbHVlXSA9IGdsb2JhbENhY2hlLmdldChlbnRpdHksIGdldEVudGl0eSk7XG4gICAgLy8gVE9ETzogd2hhdCBpZiB0aGlzIGp1c3QgcmV0dXJuZWQgdGhlIGRlcHMgLSB0aGVuIHdlIGRvbid0IG5lZWQgdG8gc3RvcmUgdGhlbVxuXG4gICAgaWYgKGNhY2hlVmFsdWUpIHtcbiAgICAgIGxvY2FsQ2FjaGVLZXlbcGtdID0gY2FjaGVWYWx1ZS52YWx1ZVswXTtcbiAgICAgIC8vIFRPRE86IGNhbiB3ZSBzdG9yZSB0aGUgY2FjaGUgdmFsdWVzIGluc3RlYWQgb2YgdHJhY2tpbmcgKmFsbCogdGhlaXIgc291cmNlcz9cbiAgICAgIC8vIHRoaXMgaXMgb25seSB1c2VkIGZvciBzZXR0aW5nIHJlc3VsdHMgY2FjaGUgY29ycmVjdGx5LiBpZiB3ZSBnb3QgdGhpcyBmYXIgd2Ugd2lsbCBkZWYgbmVlZCB0byBzZXQgYXMgd2Ugd291bGQgaGF2ZSBhbHJlYWR5IHRyaWVkIGdldHRpbmcgaXRcbiAgICAgIGRlcGVuZGVuY2llcy5wdXNoKC4uLmNhY2hlVmFsdWUuZGVwZW5kZW5jaWVzKTtcbiAgICAgIHJldHVybiBjYWNoZVZhbHVlLnZhbHVlO1xuICAgIH1cbiAgICAvLyBpZiB3ZSBkb24ndCBmaW5kIGluIGRlbm9ybWFsaXplIGNhY2hlIHRoZW4gZG8gZnVsbCBkZW5vcm1hbGl6ZVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgdHJhY2tpbmdJbmRleCA9IGRlcGVuZGVuY2llcy5sZW5ndGg7XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG5cbiAgICAgIGxldCBlbnRpdHlDb3B5OiBhbnk7XG4gICAgICBpZiAoc2NoZW1hLmNyZWF0ZUlmVmFsaWQpIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGxvY2FsQ2FjaGVLZXlbcGtdID0gaXNJbW11dGFibGUoZW50aXR5KVxuICAgICAgICAgID8gc2NoZW1hLmNyZWF0ZUlmVmFsaWQoZW50aXR5LnRvT2JqZWN0KCkpXG4gICAgICAgICAgOiBzY2hlbWEuY3JlYXRlSWZWYWxpZChlbnRpdHkpO1xuICAgICAgICAvLyBUT0RPKGJyZWFraW5nKTogcmVtb3ZlIG9uY2Ugb2xkIHZlcmlvbnMgbm8gbG9uZ2VyIHN1cHBvcnRlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW50aXR5Q29weSA9IGVudGl0eTtcbiAgICAgICAgdW52aXNpdCA9IHdpdGhUcmFja2VkRW50aXRpZXModW52aXNpdCk7XG4gICAgICAgIHVudmlzaXQuc2V0TG9jYWwgPSBlbnRpdHlDb3B5ID0+IChsb2NhbENhY2hlS2V5W3BrXSA9IGVudGl0eUNvcHkpO1xuICAgICAgfVxuXG4gICAgICBjeWNsZUNhY2hlS2V5W3BrXSA9IHRyYWNraW5nSW5kZXg7XG4gICAgICBpZiAoZW50aXR5Q29weSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIHVuZGVmaW5lZCBpbmRpY2F0ZXMgd2Ugc2hvdWxkIHN1c3BlbnNlIChwZXJoYXBzIGZhaWxlZCB2YWxpZGF0aW9uKVxuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdID0gc2NoZW1hLmRlbm9ybWFsaXplKFxuICAgICAgICAgIGVudGl0eUNvcHksXG4gICAgICAgICAgdW52aXNpdCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBjeWNsZUNhY2hlS2V5W3BrXTtcblxuICAgICAgLy8gaWYgaW4gY3ljbGUsIHVzZSB0aGUgc3RhcnQgb2YgdGhlIGN5Y2xlIHRvIHRyYWNrIGFsbCBkZXBzXG4gICAgICAvLyBvdGhlcndpc2UsIHdlIHVzZSBvdXIgb3duIHRyYWNraW5nSW5kZXhcbiAgICAgIGNvbnN0IGxvY2FsS2V5ID0gZGVwZW5kZW5jaWVzLnNsaWNlKFxuICAgICAgICBjeWNsZUluZGV4LmkgPT09IC0xID8gdHJhY2tpbmdJbmRleCA6IGN5Y2xlSW5kZXguaSxcbiAgICAgICk7XG4gICAgICBjb25zdCBjYWNoZVZhbHVlOiBFbnRpdHlDYWNoZVZhbHVlID0ge1xuICAgICAgICBkZXBlbmRlbmNpZXM6IGxvY2FsS2V5LFxuICAgICAgICB2YWx1ZTogW2xvY2FsQ2FjaGVLZXlbcGtdLCBmb3VuZCwgZGVsZXRlZF0sXG4gICAgICB9O1xuICAgICAgZ2xvYmFsQ2FjaGUuc2V0KGxvY2FsS2V5LCBjYWNoZVZhbHVlKTtcblxuICAgICAgLy8gc3RhcnQgb2YgY3ljbGUgLSByZXNldCBjeWNsZSBkZXRlY3Rpb25cbiAgICAgIGlmIChjeWNsZUluZGV4LmkgPT09IHRyYWNraW5nSW5kZXgpIHtcbiAgICAgICAgY3ljbGVJbmRleC5pID0gLTE7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGN5Y2xlIGRldGVjdGVkXG4gICAgaWYgKHBrIGluIGN5Y2xlQ2FjaGVLZXkpIHtcbiAgICAgIGN5Y2xlSW5kZXguaSA9IGN5Y2xlQ2FjaGVLZXlbcGtdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3aXRoIG5vIGN5Y2xlLCBnbG9iYWxDYWNoZUVudHJ5IHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0XG4gICAgICBkZXBlbmRlbmNpZXMucHVzaCh7IGVudGl0eSwgcGF0aDogeyBrZXksIHBrIH0gfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFtsb2NhbENhY2hlS2V5W3BrXSwgZm91bmQsIGRlbGV0ZWRdO1xufTtcblxuY29uc3QgZ2V0VW52aXNpdCA9IChcbiAgZW50aXRpZXM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBlbnRpdHlDYWNoZTogRGVub3JtYWxpemVDYWNoZVsnZW50aXRpZXMnXSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKSA9PiB7XG4gIGNvbnN0IGdldEVudGl0eSA9IGdldEVudGl0aWVzKGVudGl0aWVzKTtcbiAgY29uc3QgZ2V0Q2FjaGUgPSBnZXRFbnRpdHlDYWNoZXMoZW50aXR5Q2FjaGUpO1xuICBjb25zdCBsb2NhbENhY2hlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHt9O1xuICBjb25zdCBkZXBlbmRlbmNpZXM6IERlcFtdID0gW107XG4gIGNvbnN0IGN5Y2xlSW5kZXggPSB7IGk6IC0xIH07XG4gIGNvbnN0IGN5Y2xlQ2FjaGUgPSB7fTtcblxuICBmdW5jdGlvbiB1bnZpc2l0KFxuICAgIGlucHV0OiBhbnksXG4gICAgc2NoZW1hOiBhbnksXG4gICk6IFtkZW5vcm1hbGl6ZWQ6IGFueSwgZm91bmQ6IGJvb2xlYW4sIGRlbGV0ZWQ6IGJvb2xlYW5dIHtcbiAgICBpZiAoIXNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuXG4gICAgLy8gbnVsbCBpcyBjb25zaWRlcmVkIGludGVudGlvbmFsLCB0aHVzIGFsd2F5cyAnZm91bmQnIGFzIHRydWVcbiAgICBpZiAoaW5wdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNEZW5vcm1hbGl6ZSA9IHR5cGVvZiBzY2hlbWEuZGVub3JtYWxpemUgPT09ICdmdW5jdGlvbic7XG5cbiAgICAvLyBkZXNlcmlhbGl6ZSBmaWVsZHMgKGxpa2UgRGF0ZSlcbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIHNjaGVtYSkgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2VdO1xuICAgICAgLy8gZmllbGQgZGVzZXJpYWxpemF0aW9uIHNob3VsZCBuZXZlciBjb3VudCBhZ2FpbnN0ICdmb3VuZCcgKHdoZXRoZXIgdG8gdXNlZCBpbmZlcnJlZCByZXN1bHRzKVxuICAgICAgaWYgKGlucHV0ID09PSB1bmRlZmluZWQpIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgICAgIHJldHVybiBbbmV3IHNjaGVtYShpbnB1dCksIHRydWUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFtpbnB1dCwgZmFsc2UsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBpZiAoIWhhc0Rlbm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSlcbiAgICAgICAgPyBhcnJheURlbm9ybWFsaXplXG4gICAgICAgIDogb2JqZWN0RGVub3JtYWxpemU7XG4gICAgICByZXR1cm4gbWV0aG9kKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIGlmIChpc0VudGl0eShzY2hlbWEpKSB7XG4gICAgICByZXR1cm4gdW52aXNpdEVudGl0eShcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgdW52aXNpdCxcbiAgICAgICAgZ2V0RW50aXR5LFxuICAgICAgICBnZXRDYWNoZSxcbiAgICAgICAgbG9jYWxDYWNoZSxcbiAgICAgICAgY3ljbGVDYWNoZSxcbiAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICBjeWNsZUluZGV4LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoaGFzRGVub3JtYWxpemUpIHtcbiAgICAgIHJldHVybiBzY2hlbWEuZGVub3JtYWxpemUoaW5wdXQsIHVudmlzaXQpO1xuICAgIH1cblxuICAgIHJldHVybiBbaW5wdXQsIHRydWUsIGZhbHNlXTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgaW5wdXQ6IGFueSxcbiAgICBzY2hlbWE6IGFueSxcbiAgKTogW1xuICAgIGRlbm9ybWFsaXplZDogYW55LFxuICAgIGZvdW5kOiBib29sZWFuLFxuICAgIGRlbGV0ZWQ6IGJvb2xlYW4sXG4gICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgXSA9PiB7XG4gICAgLy8gaW4gdGhlIGNhc2Ugd2hlcmUgV2Vha01hcCBjYW5ub3QgYmUgdXNlZFxuICAgIC8vIHRoaXMgdGVzdCBlbnN1cmVzIG51bGwgaXMgcHJvcGVybHkgZXhjbHVkZWQgZnJvbSBXZWFrTWFwXG4gICAgY29uc3QgY2FjaGFibGUgPSBPYmplY3QoaW5wdXQpID09PSBpbnB1dCAmJiBPYmplY3Qoc2NoZW1hKSA9PT0gc2NoZW1hO1xuICAgIGlmICghY2FjaGFibGUpIHtcbiAgICAgIGNvbnN0IHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB0aGlzIGlzIGZhc3RlciB0aGFuIHNwcmVhZFxuICAgICAgLy8gaHR0cHM6Ly93d3cubWVhc3VyZXRoYXQubmV0L0JlbmNobWFya3MvU2hvdy8yMzYzNi8wL3NwcmVhZC13aXRoLXR1cGxlc1xuICAgICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyldO1xuICAgIH1cblxuICAgIGxldCBbcmV0LCBlbnRpdHlQYXRoc10gPSByZXN1bHRDYWNoZS5nZXQoaW5wdXQsIGdldEVudGl0eSk7XG5cbiAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldCA9IHVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gICAgICAvLyB3ZSB3YW50IHRvIGRvIHRoaXMgYmVmb3JlIHdlIGFkZCBvdXIgJ2lucHV0JyBlbnRyeVxuICAgICAgZW50aXR5UGF0aHMgPSBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyk7XG4gICAgICAvLyBmb3IgdGhlIGZpcnN0IGVudHJ5LCBgcGF0aGAgaXMgaWdub3JlZCBzbyBlbXB0eSBtZW1iZXJzIGlzIGZpbmVcbiAgICAgIGRlcGVuZGVuY2llcy51bnNoaWZ0KHsgZW50aXR5OiBpbnB1dCwgcGF0aDogeyBrZXk6ICcnLCBwazogJycgfSB9KTtcbiAgICAgIHJlc3VsdENhY2hlLnNldChkZXBlbmRlbmNpZXMsIHJldCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtyZXRbMF0sIHJldFsxXSwgcmV0WzJdLCBlbnRpdHlQYXRocyBhcyBQYXRoW11dO1xuICB9O1xufTtcblxuY29uc3QgZ2V0RW50aXR5Q2FjaGVzID0gKGVudGl0eUNhY2hlOiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddKSA9PiB7XG4gIHJldHVybiAocGs6IHN0cmluZywgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UpID0+IHtcbiAgICBjb25zdCBrZXkgPSBzY2hlbWEua2V5O1xuXG4gICAgaWYgKCEoa2V5IGluIGVudGl0eUNhY2hlKSkge1xuICAgICAgZW50aXR5Q2FjaGVba2V5XSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgfVxuICAgIGNvbnN0IGVudGl0eUNhY2hlS2V5ID0gZW50aXR5Q2FjaGVba2V5XTtcbiAgICBpZiAoIWVudGl0eUNhY2hlS2V5W3BrXSlcbiAgICAgIGVudGl0eUNhY2hlS2V5W3BrXSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICBFbnRpdHlJbnRlcmZhY2UsXG4gICAgICAgIFdlYWtFbnRpdHlNYXA8b2JqZWN0LCBhbnk+XG4gICAgICA+KCk7XG5cbiAgICBsZXQgd2VtOiBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PiA9IGVudGl0eUNhY2hlS2V5W3BrXS5nZXQoc2NoZW1hKSBhcyBhbnk7XG4gICAgaWYgKCF3ZW0pIHtcbiAgICAgIHdlbSA9IG5ldyBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PigpO1xuICAgICAgZW50aXR5Q2FjaGVLZXlbcGtdLnNldChzY2hlbWEsIHdlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdlbTtcbiAgfTtcbn07XG5cbnR5cGUgRGVub3JtYWxpemVSZXR1cm48UyBleHRlbmRzIFNjaGVtYT4gPVxuICB8IFtcbiAgICAgIGRlbm9ybWFsaXplZDogRGVub3JtYWxpemU8Uz4sXG4gICAgICBmb3VuZDogdHJ1ZSxcbiAgICAgIGRlbGV0ZWQ6IGZhbHNlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGJvb2xlYW4sXG4gICAgICBkZWxldGVkOiB0cnVlLFxuICAgICAgZW50aXR5UGF0aHM6IFBhdGhbXSxcbiAgICBdXG4gIHwgW1xuICAgICAgZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgZGVsZXRlZDogYm9vbGVhbixcbiAgICAgIGVudGl0eVBhdGhzOiBQYXRoW10sXG4gICAgXTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IDxTIGV4dGVuZHMgU2NoZW1hPihcbiAgaW5wdXQ6IHVua25vd24sXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ2VudGl0aWVzJ10gPSB7fSxcbiAgcmVzdWx0Q2FjaGU6IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddID0gbmV3IFdlYWtFbnRpdHlNYXAoKSxcbik6IERlbm9ybWFsaXplUmV0dXJuPFM+ID0+IHtcbiAgLy8gdW5kZWZpbmVkIG1lYW4gZG9uJ3QgZG8gYW55dGhpbmdcbiAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtpbnB1dCwgdHJ1ZSwgZmFsc2UsIFtdXSBhcyBbYW55LCBib29sZWFuLCBib29sZWFuLCBhbnldO1xuICB9XG4gIGlmIChpbnB1dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFt1bmRlZmluZWQsIGZhbHNlLCBmYWxzZSwgW11dIGFzIFthbnksIGJvb2xlYW4sIGJvb2xlYW4sIGFueV07XG4gIH1cbiAgcmV0dXJuIGdldFVudmlzaXQoZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkoaW5wdXQsIHNjaGVtYSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemVTaW1wbGUgPSA8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGlucHV0OiBhbnksXG4gIHNjaGVtYTogUyB8IHVuZGVmaW5lZCxcbiAgZW50aXRpZXM6IGFueSxcbiAgZW50aXR5Q2FjaGU/OiBEZW5vcm1hbGl6ZUNhY2hlWydlbnRpdGllcyddLFxuICByZXN1bHRDYWNoZT86IERlbm9ybWFsaXplQ2FjaGVbJ3Jlc3VsdHMnXVtzdHJpbmddLFxuKTpcbiAgfCBbZGVub3JtYWxpemVkOiBEZW5vcm1hbGl6ZTxTPiwgZm91bmQ6IHRydWUsIGRlbGV0ZWQ6IGZhbHNlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiB0cnVlXVxuICB8IFtkZW5vcm1hbGl6ZWQ6IERlbm9ybWFsaXplTnVsbGFibGU8Uz4sIGZvdW5kOiBmYWxzZSwgZGVsZXRlZDogYm9vbGVhbl0gPT5cbiAgZGVub3JtYWxpemUoaW5wdXQsIHNjaGVtYSwgZW50aXRpZXMsIGVudGl0eUNhY2hlLCByZXN1bHRDYWNoZSkuc2xpY2UoXG4gICAgMCxcbiAgICAzLFxuICApIGFzIGFueTtcblxuLy8gVE9ETyhicmVha2luZyk6IHJlbW92ZSBvbmNlIHVudXNlZFxuZnVuY3Rpb24gd2l0aFRyYWNrZWRFbnRpdGllcyh1bnZpc2l0OiBVbnZpc2l0RnVuY3Rpb24pOiBVbnZpc2l0RnVuY3Rpb24ge1xuICAvLyBldmVyeSB0aW1lIHdlIG5lc3QsIHdlIHdhbnQgdG8gdW53cmFwIGJhY2sgdG8gdGhlIHRvcC5cbiAgLy8gdGhpcyBpcyBkdWUgdG8gb25seSBuZWVkZWQgdGhlIG5leHQgbGV2ZWwgb2YgbmVzdGVkIGVudGl0aWVzIGZvciBsb29rdXBcbiAgY29uc3Qgb3JpZ2luYWxVbnZpc2l0ID0gdW52aXNpdC5vZyB8fCB1bnZpc2l0O1xuICBjb25zdCB3cmFwcGVkVW52aXNpdCA9IChpbnB1dDogYW55LCBzY2hlbWE6IGFueSkgPT5cbiAgICBvcmlnaW5hbFVudmlzaXQoaW5wdXQsIHNjaGVtYSk7XG4gIHdyYXBwZWRVbnZpc2l0Lm9nID0gdW52aXNpdDtcbiAgcmV0dXJuIHdyYXBwZWRVbnZpc2l0O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxRQUFRLFFBQVEsZUFBZTtBQUN4QyxTQUFTQyxXQUFXLElBQUlDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNwRSxTQUFTQyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3pELFNBQVNGLFdBQVcsSUFBSUcsaUJBQWlCLFFBQVEscUJBQXFCO0FBT3RFLE9BQU9DLGFBQWEsSUFFbEJDLFdBQVcsRUFFWEMsVUFBVSxRQUNMLG9CQUFvQjtBQU0zQixNQUFNQyxhQUFhLEdBQUdBLENBQ3BCQyxVQUF3QyxFQUN4Q0MsTUFBdUIsRUFDdkJDLE9BQXdCLEVBQ3hCQyxTQUFvQixFQUNwQkMsUUFBNEMsRUFDNUNDLFVBQStDLEVBQy9DQyxVQUFrRCxFQUNsREMsWUFBbUIsRUFDbkJDLFVBQXlCLEtBQ2dEO0VBQ3pFLE1BQU1DLE1BQU0sR0FDVixPQUFPVCxVQUFVLEtBQUssUUFBUSxHQUMxQkEsVUFBVSxHQUNWRyxTQUFTLENBQUM7SUFBRU8sRUFBRSxFQUFFVixVQUFVO0lBQUVXLEdBQUcsRUFBRVYsTUFBTSxDQUFDVTtFQUFJLENBQUMsQ0FBQztFQUNwRCxJQUNFLE9BQU9GLE1BQU0sS0FBSyxRQUFRLElBQ3pCQSxNQUFNLENBQVlHLFFBQVEsRUFBRSxDQUFDQyxRQUFRLENB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

@@ -8,3 +8,3 @@ import { SnapshotInterface } from './SnapshotInterface.js';

/** Defines a networking endpoint */
export interface EndpointInterface<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined, M extends true | undefined = true | undefined> extends EndpointExtraOptions<F> {
export interface EndpointInterface<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined, M extends boolean | undefined = boolean | undefined> extends EndpointExtraOptions<F> {
(...args: Parameters<F>): InferReturn<F, S>;

@@ -46,3 +46,3 @@ key(...args: Parameters<F>): string;

/** For retrieval requests */
export type ReadEndpoint<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined> = EndpointInterface<F, S, undefined>;
export type ReadEndpoint<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined> = EndpointInterface<F, S, undefined | false>;
//# sourceMappingURL=EndpointInterface.d.ts.map
export {};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L0VuZHBvaW50SW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNuYXBzaG90SW50ZXJmYWNlIH0gZnJvbSAnLi9TbmFwc2hvdEludGVyZmFjZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEZldGNoRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IEluZmVyUmV0dXJuIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFJlc29sdmVUeXBlIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJy4uL2ludGVyZmFjZS5qcyc7XG5pbXBvcnQgeyBOb3JtYWxpemUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBEZWZpbmVzIGEgbmV0d29ya2luZyBlbmRwb2ludCAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludEludGVyZmFjZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgdHJ1ZSB8IHVuZGVmaW5lZCA9IHRydWUgfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRFeHRyYU9wdGlvbnM8Rj4ge1xuICAoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IEluZmVyUmV0dXJuPEYsIFM+O1xuICBrZXkoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgcmVhZG9ubHkgc2lkZUVmZmVjdD86IE07XG4gIHJlYWRvbmx5IHNjaGVtYT86IFM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRFeHRyYU9wdGlvbnM8RiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uPiB7XG4gIC8qKiBEZWZhdWx0IGRhdGEgZXhwaXJ5IGxlbmd0aCwgd2lsbCBmYWxsIGJhY2sgdG8gTmV0d29ya01hbmFnZXIgZGVmYXVsdCBpZiBub3QgZGVmaW5lZCAqL1xuICByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBlcnJvciBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUG9sbCB3aXRoIGF0IGxlYXN0IHRoaXMgZnJlcXVlbmN5IGluIG1pbGlzZWNvbmRzICovXG4gIHJlYWRvbmx5IHBvbGxGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKiBNYXJrcyBjYWNoZWQgcmVzb3VyY2VzIGFzIGludmFsaWQgaWYgdGhleSBhcmUgc3RhbGUgKi9cbiAgcmVhZG9ubHkgaW52YWxpZElmU3RhbGU/OiBib29sZWFuO1xuICAvKiogRW5hYmxlcyBvcHRpbWlzdGljIHVwZGF0ZXMgZm9yIHRoaXMgcmVxdWVzdCAtIHVzZXMgcmV0dXJuIHZhbHVlIGFzIGFzc3VtZWQgbmV0d29yayByZXNwb25zZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvRW5kcG9pbnQjZ2V0b3B0aW1pc3RpY3Jlc3BvbnNlIGluc3RlYWRcbiAgICovXG4gIG9wdGltaXN0aWNVcGRhdGU/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBSZXNvbHZlVHlwZTxGPjtcbiAgLyoqIEVuYWJsZXMgb3B0aW1pc3RpYyB1cGRhdGVzIGZvciB0aGlzIHJlcXVlc3QgLSB1c2VzIHJldHVybiB2YWx1ZSBhcyBhc3N1bWVkIG5ldHdvcmsgcmVzcG9uc2UgKi9cbiAgZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlPyhcbiAgICBzbmFwOiBTbmFwc2hvdEludGVyZmFjZSxcbiAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+XG4gICk6IFJlc29sdmVUeXBlPEY+O1xuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHRocm93IG9yIGZhbGxiYWNrIHRvICovXG4gIGVycm9yUG9saWN5PyhlcnJvcjogYW55KTogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xuICAvKiogVXNlci1sYW5kIGV4dHJhIGRhdGEgdG8gc2VuZCAqL1xuICByZWFkb25seSBleHRyYT86IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtczxcbiAgU291cmNlU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBEZXN0IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RmV0Y2hGdW5jdGlvbiwgU2NoZW1hLCBhbnk+LFxuPiA9IFtcbiAgRGVzdCxcbiAgUGFyYW1ldGVyczxEZXN0PlswXSxcbiAgVXBkYXRlRnVuY3Rpb248U291cmNlU2NoZW1hLCBFeGNsdWRlPERlc3RbJ3NjaGVtYSddLCB1bmRlZmluZWQ+Pixcbl07XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZ1bmN0aW9uPFxuICBTb3VyY2VTY2hlbWEgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIERlc3RTY2hlbWEgZXh0ZW5kcyBTY2hlbWEsXG4+ID0gKFxuICBzb3VyY2VSZXN1bHRzOiBOb3JtYWxpemU8U291cmNlU2NoZW1hPixcbiAgZGVzdFJlc3VsdHM6IE5vcm1hbGl6ZTxEZXN0U2NoZW1hPiB8IHVuZGVmaW5lZCxcbikgPT4gTm9ybWFsaXplPERlc3RTY2hlbWE+O1xuXG4vKiogVG8gY2hhbmdlIHZhbHVlcyBvbiB0aGUgc2VydmVyICovXG5leHBvcnQgaW50ZXJmYWNlIE11dGF0ZUVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdHJ1ZT4ge1xuICBzaWRlRWZmZWN0OiB0cnVlO1xufVxuXG4vKiogRm9yIHJldHJpZXZhbCByZXF1ZXN0cyAqL1xuZXhwb3J0IHR5cGUgUmVhZEVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0gRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdW5kZWZpbmVkPjtcbiJdLCJtYXBwaW5ncyI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L0VuZHBvaW50SW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNuYXBzaG90SW50ZXJmYWNlIH0gZnJvbSAnLi9TbmFwc2hvdEludGVyZmFjZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEZldGNoRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IEluZmVyUmV0dXJuIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFJlc29sdmVUeXBlIH0gZnJvbSAnLi91dGlsaXR5LmpzJztcbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJy4uL2ludGVyZmFjZS5qcyc7XG5pbXBvcnQgeyBOb3JtYWxpemUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBEZWZpbmVzIGEgbmV0d29ya2luZyBlbmRwb2ludCAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludEludGVyZmFjZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRFeHRyYU9wdGlvbnM8Rj4ge1xuICAoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IEluZmVyUmV0dXJuPEYsIFM+O1xuICBrZXkoLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgcmVhZG9ubHkgc2lkZUVmZmVjdD86IE07XG4gIHJlYWRvbmx5IHNjaGVtYT86IFM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRFeHRyYU9wdGlvbnM8RiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uPiB7XG4gIC8qKiBEZWZhdWx0IGRhdGEgZXhwaXJ5IGxlbmd0aCwgd2lsbCBmYWxsIGJhY2sgdG8gTmV0d29ya01hbmFnZXIgZGVmYXVsdCBpZiBub3QgZGVmaW5lZCAqL1xuICByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBlcnJvciBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUG9sbCB3aXRoIGF0IGxlYXN0IHRoaXMgZnJlcXVlbmN5IGluIG1pbGlzZWNvbmRzICovXG4gIHJlYWRvbmx5IHBvbGxGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKiBNYXJrcyBjYWNoZWQgcmVzb3VyY2VzIGFzIGludmFsaWQgaWYgdGhleSBhcmUgc3RhbGUgKi9cbiAgcmVhZG9ubHkgaW52YWxpZElmU3RhbGU/OiBib29sZWFuO1xuICAvKiogRW5hYmxlcyBvcHRpbWlzdGljIHVwZGF0ZXMgZm9yIHRoaXMgcmVxdWVzdCAtIHVzZXMgcmV0dXJuIHZhbHVlIGFzIGFzc3VtZWQgbmV0d29yayByZXNwb25zZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvRW5kcG9pbnQjZ2V0b3B0aW1pc3RpY3Jlc3BvbnNlIGluc3RlYWRcbiAgICovXG4gIG9wdGltaXN0aWNVcGRhdGU/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBSZXNvbHZlVHlwZTxGPjtcbiAgLyoqIEVuYWJsZXMgb3B0aW1pc3RpYyB1cGRhdGVzIGZvciB0aGlzIHJlcXVlc3QgLSB1c2VzIHJldHVybiB2YWx1ZSBhcyBhc3N1bWVkIG5ldHdvcmsgcmVzcG9uc2UgKi9cbiAgZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlPyhcbiAgICBzbmFwOiBTbmFwc2hvdEludGVyZmFjZSxcbiAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+XG4gICk6IFJlc29sdmVUeXBlPEY+O1xuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHRocm93IG9yIGZhbGxiYWNrIHRvICovXG4gIGVycm9yUG9saWN5PyhlcnJvcjogYW55KTogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xuICAvKiogVXNlci1sYW5kIGV4dHJhIGRhdGEgdG8gc2VuZCAqL1xuICByZWFkb25seSBleHRyYT86IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtczxcbiAgU291cmNlU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBEZXN0IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RmV0Y2hGdW5jdGlvbiwgU2NoZW1hLCBhbnk+LFxuPiA9IFtcbiAgRGVzdCxcbiAgUGFyYW1ldGVyczxEZXN0PlswXSxcbiAgVXBkYXRlRnVuY3Rpb248U291cmNlU2NoZW1hLCBFeGNsdWRlPERlc3RbJ3NjaGVtYSddLCB1bmRlZmluZWQ+Pixcbl07XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZ1bmN0aW9uPFxuICBTb3VyY2VTY2hlbWEgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIERlc3RTY2hlbWEgZXh0ZW5kcyBTY2hlbWEsXG4+ID0gKFxuICBzb3VyY2VSZXN1bHRzOiBOb3JtYWxpemU8U291cmNlU2NoZW1hPixcbiAgZGVzdFJlc3VsdHM6IE5vcm1hbGl6ZTxEZXN0U2NoZW1hPiB8IHVuZGVmaW5lZCxcbikgPT4gTm9ybWFsaXplPERlc3RTY2hlbWE+O1xuXG4vKiogVG8gY2hhbmdlIHZhbHVlcyBvbiB0aGUgc2VydmVyICovXG5leHBvcnQgaW50ZXJmYWNlIE11dGF0ZUVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdHJ1ZT4ge1xuICBzaWRlRWZmZWN0OiB0cnVlO1xufVxuXG4vKiogRm9yIHJldHJpZXZhbCByZXF1ZXN0cyAqL1xuZXhwb3J0IHR5cGUgUmVhZEVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0gRW5kcG9pbnRJbnRlcmZhY2U8RiwgUywgdW5kZWZpbmVkIHwgZmFsc2U+O1xuIl0sIm1hcHBpbmdzIjoiIn0=

@@ -7,2 +7,2 @@ export var ExpiryStatus = {

// looser version to allow for cross-package version compatibility
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeHBpcnlTdGF0dXMiXSwic291cmNlcyI6WyIuLi9zcmMvRXhwaXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIEV4cGlyeVN0YXR1cyB7XG4gIEludmFsaWQgPSAxLFxuICBJbnZhbGlkSWZTdGFsZSxcbiAgVmFsaWQsXG59XG4vLyBsb29zZXIgdmVyc2lvbiB0byBhbGxvdyBmb3IgY3Jvc3MtcGFja2FnZSB2ZXJzaW9uIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB0eXBlIEV4cGlyeVN0YXR1c0ludGVyZmFjZSA9IDEgfCAyIHwgMztcbiJdLCJtYXBwaW5ncyI6IkFBQUEsV0FBa0JBLFlBQVk7RUFBQTtFQUFBO0VBQUE7QUFBQTtBQUs5QiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeHBpcnlTdGF0dXMiLCJJbnZhbGlkIiwiSW52YWxpZElmU3RhbGUiLCJWYWxpZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FeHBpcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gRXhwaXJ5U3RhdHVzIHtcbiAgSW52YWxpZCA9IDEsXG4gIEludmFsaWRJZlN0YWxlLFxuICBWYWxpZCxcbn1cbi8vIGxvb3NlciB2ZXJzaW9uIHRvIGFsbG93IGZvciBjcm9zcy1wYWNrYWdlIHZlcnNpb24gY29tcGF0aWJpbGl0eVxuZXhwb3J0IHR5cGUgRXhwaXJ5U3RhdHVzSW50ZXJmYWNlID0gMSB8IDIgfCAzO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxXQUFrQkEsWUFBWTtFQUFBQyxPQUFBO0VBQUFDLGNBQUE7RUFBQUMsS0FBQTtBQUFBO0FBSzlCIn0=

@@ -15,2 +15,2 @@ Object.hasOwn = Object.hasOwn || /* istanbul ignore next */function hasOwn(it, key) {

export { denormalize, normalize, isEntity, WeakEntityMap };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlbm9ybWFsaXplIiwiaXNFbnRpdHkiLCJub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZGVmYXVsdCIsImluZmVyUmVzdWx0cyIsIkRFTEVURUQiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IHsgZGVub3JtYWxpemUgfSBmcm9tICcuL2Rlbm9ybWFsaXplLmpzJztcbmltcG9ydCB7IGlzRW50aXR5IH0gZnJvbSAnLi9pc0VudGl0eS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICcuL25vcm1hbGl6ZS5qcyc7XG5pbXBvcnQgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbmZlclJlc3VsdHMgfSBmcm9tICcuL2luZmVyUmVzdWx0cy5qcyc7XG5leHBvcnQgeyBERUxFVEVEIH0gZnJvbSAnLi9zcGVjaWFsLmpzJztcblxuZXhwb3J0IHR5cGUge1xuICBBYnN0cmFjdEluc3RhbmNlVHlwZSxcbiAgTm9ybWFsaXplUmV0dXJuVHlwZSxcbiAgTm9ybWFsaXplZFNjaGVtYSxcbiAgRGVub3JtYWxpemVSZXR1cm5UeXBlLFxuICBEZW5vcm1hbGl6ZUNhY2hlLFxuICBQYXRoLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZW5kcG9pbnQvdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9FeHBpcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3JtYWwuanMnO1xuXG5leHBvcnQgeyBkZW5vcm1hbGl6ZSwgbm9ybWFsaXplLCBpc0VudGl0eSwgV2Vha0VudGl0eU1hcCB9O1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNLENBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFO0VBQ2xELE9BQU9ILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osRUFBRSxFQUFFQyxHQUFHLENBQUM7QUFDdEQsQ0FBQztBQUNILFNBQVNJLFdBQVcsUUFBUSxrQkFBa0I7QUFDOUMsU0FBU0MsUUFBUSxRQUFRLGVBQWU7QUFDeEMsU0FBU0MsU0FBUyxRQUFRLGdCQUFnQjtBQUMxQyxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLFNBQVNDLE9BQU8sSUFBSUMsWUFBWSxRQUFRLG1CQUFtQjtBQUMzRCxTQUFTQyxPQUFPLFFBQVEsY0FBYztBQVV0QyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLGdCQUFnQjtBQUM5QixjQUFjLGFBQWE7QUFDM0IsY0FBYyxhQUFhO0FBRTNCLFNBQVNOLFdBQVcsRUFBRUUsU0FBUyxFQUFFRCxRQUFRLEVBQUVFLGFBQWEifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlbm9ybWFsaXplIiwiaXNFbnRpdHkiLCJub3JtYWxpemUiLCJXZWFrRW50aXR5TWFwIiwiZGVmYXVsdCIsImluZmVyUmVzdWx0cyIsIkRFTEVURUQiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IHsgZGVub3JtYWxpemUgfSBmcm9tICcuL2Rlbm9ybWFsaXplLmpzJztcbmltcG9ydCB7IGlzRW50aXR5IH0gZnJvbSAnLi9pc0VudGl0eS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICcuL25vcm1hbGl6ZS5qcyc7XG5pbXBvcnQgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbmZlclJlc3VsdHMgfSBmcm9tICcuL2luZmVyUmVzdWx0cy5qcyc7XG5leHBvcnQgeyBERUxFVEVEIH0gZnJvbSAnLi9zcGVjaWFsLmpzJztcblxuZXhwb3J0IHR5cGUge1xuICBBYnN0cmFjdEluc3RhbmNlVHlwZSxcbiAgTm9ybWFsaXplUmV0dXJuVHlwZSxcbiAgTm9ybWFsaXplZFNjaGVtYSxcbiAgRGVub3JtYWxpemVSZXR1cm5UeXBlLFxuICBEZW5vcm1hbGl6ZUNhY2hlLFxuICBQYXRoLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZW5kcG9pbnQvdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9FeHBpcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3JtYWwuanMnO1xuXG5leHBvcnQgeyBkZW5vcm1hbGl6ZSwgbm9ybWFsaXplLCBpc0VudGl0eSwgV2Vha0VudGl0eU1hcCB9O1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNQSxDQUFDQyxFQUFFLEVBQUVDLEdBQUcsRUFBRTtFQUNsRCxPQUFPSCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLEVBQUUsRUFBRUMsR0FBRyxDQUFDO0FBQ3RELENBQUM7QUFDSCxTQUFTSSxXQUFXLFFBQVEsa0JBQWtCO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSxlQUFlO0FBQ3hDLFNBQVNDLFNBQVMsUUFBUSxnQkFBZ0I7QUFDMUMsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxTQUFTQyxPQUFPLElBQUlDLFlBQVksUUFBUSxtQkFBbUI7QUFDM0QsU0FBU0MsT0FBTyxRQUFRLGNBQWM7QUFVdEMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxnQkFBZ0I7QUFDOUIsY0FBYyxhQUFhO0FBQzNCLGNBQWMsYUFBYTtBQUUzQixTQUFTTixXQUFXLEVBQUVFLFNBQVMsRUFBRUQsUUFBUSxFQUFFRSxhQUFhIn0=

@@ -25,2 +25,2 @@ import { infer as arrayInfer } from './schemas/Array.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZlciIsImFycmF5SW5mZXIiLCJvYmplY3RJbmZlciIsImluZmVyUmVzdWx0cyIsInNjaGVtYSIsImFyZ3MiLCJpbmRleGVzIiwiZW50aXRpZXMiLCJjYW5JbmZlciIsIm1ldGhvZCIsIkFycmF5IiwiaXNBcnJheSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmZlclJlc3VsdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBTY2hlbWEsXG4gIFNjaGVtYVNpbXBsZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBFbnRpdHlUYWJsZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaW5mZXIgYXMgYXJyYXlJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9BcnJheS5qcyc7XG5pbXBvcnQgeyBpbmZlciBhcyBvYmplY3RJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9PYmplY3QuanMnO1xuaW1wb3J0IHR5cGUgeyBOb3JtYWxpemVOdWxsYWJsZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIEJ1aWxkIHRoZSByZXN1bHQgcGFyYW1ldGVyIHRvIGRlbm9ybWFsaXplIGZyb20gc2NoZW1hIGFsb25lLlxuICogVHJpZXMgdG8gY29tcHV0ZSB0aGUgZW50aXR5IGlkcyBmcm9tIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5mZXJSZXN1bHRzPFMgZXh0ZW5kcyBTY2hlbWE+KFxuICBzY2hlbWE6IFMsXG4gIGFyZ3M6IGFueVtdLFxuICBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXgsXG4gIGVudGl0aWVzOiBFbnRpdHlUYWJsZSA9IHt9LFxuKTogTm9ybWFsaXplTnVsbGFibGU8Uz4ge1xuICAvLyBzY2hlbWEgY2xhc3Nlc1xuICBpZiAoY2FuSW5mZXIoc2NoZW1hKSkge1xuICAgIHJldHVybiBzY2hlbWEuaW5mZXIoYXJncywgaW5kZXhlcywgaW5mZXJSZXN1bHRzLCBlbnRpdGllcyk7XG4gIH1cblxuICAvLyBwbGFpbiBjYXNlXG4gIGlmICh0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0JyAmJiBzY2hlbWEpIHtcbiAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSkgPyBhcnJheUluZmVyIDogb2JqZWN0SW5mZXI7XG4gICAgcmV0dXJuIG1ldGhvZChzY2hlbWEsIGFyZ3MsIGluZGV4ZXMsIGluZmVyUmVzdWx0cywgZW50aXRpZXMpO1xuICB9XG5cbiAgLy8gZmFsbGJhY2sgZm9yIHRoaW5ncyBsaWtlIG51bGwgb3IgdW5kZWZpbmVkXG4gIHJldHVybiBzY2hlbWEgYXMgYW55O1xufVxuXG5mdW5jdGlvbiBjYW5JbmZlcihzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBQaWNrPFNjaGVtYVNpbXBsZSwgJ2luZmVyJz4ge1xuICByZXR1cm4gISFzY2hlbWEgJiYgdHlwZW9mIChzY2hlbWEgYXMgYW55KS5pbmZlciA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdLCJtYXBwaW5ncyI6IkFBTUEsU0FBU0EsS0FBSyxJQUFJQyxVQUFVLFFBQVEsb0JBQW9CO0FBQ3hELFNBQVNELEtBQUssSUFBSUUsV0FBVyxRQUFRLHFCQUFxQjtBQUcxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU0MsWUFBWSxDQUNsQ0MsTUFBUyxFQUNUQyxJQUFXLEVBQ1hDLE9BQXdCLEVBQ3hCQyxRQUFxQixHQUFHLENBQUMsQ0FBQyxFQUNKO0VBQ3RCO0VBQ0EsSUFBSUMsUUFBUSxDQUFDSixNQUFNLENBQUMsRUFBRTtJQUNwQixPQUFPQSxNQUFNLENBQUNKLEtBQUssQ0FBQ0ssSUFBSSxFQUFFQyxPQUFPLEVBQUVILFlBQVksRUFBRUksUUFBUSxDQUFDO0VBQzVEOztFQUVBO0VBQ0EsSUFBSSxPQUFPSCxNQUFNLEtBQUssUUFBUSxJQUFJQSxNQUFNLEVBQUU7SUFDeEMsTUFBTUssTUFBTSxHQUFHQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1AsTUFBTSxDQUFDLEdBQUdILFVBQVUsR0FBR0MsV0FBVztJQUMvRCxPQUFPTyxNQUFNLENBQUNMLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVILFlBQVksRUFBRUksUUFBUSxDQUFDO0VBQzlEOztFQUVBO0VBQ0EsT0FBT0gsTUFBTTtBQUNmO0FBRUEsU0FBU0ksUUFBUSxDQUFDSixNQUFjLEVBQXlDO0VBQ3ZFLE9BQU8sQ0FBQyxDQUFDQSxNQUFNLElBQUksT0FBUUEsTUFBTSxDQUFTSixLQUFLLEtBQUssVUFBVTtBQUNoRSJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZlciIsImFycmF5SW5mZXIiLCJvYmplY3RJbmZlciIsImluZmVyUmVzdWx0cyIsInNjaGVtYSIsImFyZ3MiLCJpbmRleGVzIiwiZW50aXRpZXMiLCJjYW5JbmZlciIsIm1ldGhvZCIsIkFycmF5IiwiaXNBcnJheSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmZlclJlc3VsdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBTY2hlbWEsXG4gIFNjaGVtYVNpbXBsZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBFbnRpdHlUYWJsZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHsgaW5mZXIgYXMgYXJyYXlJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9BcnJheS5qcyc7XG5pbXBvcnQgeyBpbmZlciBhcyBvYmplY3RJbmZlciB9IGZyb20gJy4vc2NoZW1hcy9PYmplY3QuanMnO1xuaW1wb3J0IHR5cGUgeyBOb3JtYWxpemVOdWxsYWJsZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIEJ1aWxkIHRoZSByZXN1bHQgcGFyYW1ldGVyIHRvIGRlbm9ybWFsaXplIGZyb20gc2NoZW1hIGFsb25lLlxuICogVHJpZXMgdG8gY29tcHV0ZSB0aGUgZW50aXR5IGlkcyBmcm9tIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5mZXJSZXN1bHRzPFMgZXh0ZW5kcyBTY2hlbWE+KFxuICBzY2hlbWE6IFMsXG4gIGFyZ3M6IGFueVtdLFxuICBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXgsXG4gIGVudGl0aWVzOiBFbnRpdHlUYWJsZSA9IHt9LFxuKTogTm9ybWFsaXplTnVsbGFibGU8Uz4ge1xuICAvLyBzY2hlbWEgY2xhc3Nlc1xuICBpZiAoY2FuSW5mZXIoc2NoZW1hKSkge1xuICAgIHJldHVybiBzY2hlbWEuaW5mZXIoYXJncywgaW5kZXhlcywgaW5mZXJSZXN1bHRzLCBlbnRpdGllcyk7XG4gIH1cblxuICAvLyBwbGFpbiBjYXNlXG4gIGlmICh0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0JyAmJiBzY2hlbWEpIHtcbiAgICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSkgPyBhcnJheUluZmVyIDogb2JqZWN0SW5mZXI7XG4gICAgcmV0dXJuIG1ldGhvZChzY2hlbWEsIGFyZ3MsIGluZGV4ZXMsIGluZmVyUmVzdWx0cywgZW50aXRpZXMpO1xuICB9XG5cbiAgLy8gZmFsbGJhY2sgZm9yIHRoaW5ncyBsaWtlIG51bGwgb3IgdW5kZWZpbmVkXG4gIHJldHVybiBzY2hlbWEgYXMgYW55O1xufVxuXG5mdW5jdGlvbiBjYW5JbmZlcihzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBQaWNrPFNjaGVtYVNpbXBsZSwgJ2luZmVyJz4ge1xuICByZXR1cm4gISFzY2hlbWEgJiYgdHlwZW9mIChzY2hlbWEgYXMgYW55KS5pbmZlciA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdLCJtYXBwaW5ncyI6IkFBTUEsU0FBU0EsS0FBSyxJQUFJQyxVQUFVLFFBQVEsb0JBQW9CO0FBQ3hELFNBQVNELEtBQUssSUFBSUUsV0FBVyxRQUFRLHFCQUFxQjtBQUcxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU0MsWUFBWUEsQ0FDbENDLE1BQVMsRUFDVEMsSUFBVyxFQUNYQyxPQUF3QixFQUN4QkMsUUFBcUIsR0FBRyxDQUFDLENBQUMsRUFDSjtFQUN0QjtFQUNBLElBQUlDLFFBQVEsQ0FBQ0osTUFBTSxDQUFDLEVBQUU7SUFDcEIsT0FBT0EsTUFBTSxDQUFDSixLQUFLLENBQUNLLElBQUksRUFBRUMsT0FBTyxFQUFFSCxZQUFZLEVBQUVJLFFBQVEsQ0FBQztFQUM1RDs7RUFFQTtFQUNBLElBQUksT0FBT0gsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxFQUFFO0lBQ3hDLE1BQU1LLE1BQU0sR0FBR0MsS0FBSyxDQUFDQyxPQUFPLENBQUNQLE1BQU0sQ0FBQyxHQUFHSCxVQUFVLEdBQUdDLFdBQVc7SUFDL0QsT0FBT08sTUFBTSxDQUFDTCxNQUFNLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFSCxZQUFZLEVBQUVJLFFBQVEsQ0FBQztFQUM5RDs7RUFFQTtFQUNBLE9BQU9ILE1BQU07QUFDZjtBQUVBLFNBQVNJLFFBQVFBLENBQUNKLE1BQWMsRUFBeUM7RUFDdkUsT0FBTyxDQUFDLENBQUNBLE1BQU0sSUFBSSxPQUFRQSxNQUFNLENBQVNKLEtBQUssS0FBSyxVQUFVO0FBQ2hFIn0=
export function isEntity(schema) {
return schema !== null && schema.pk !== undefined;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsInNjaGVtYSIsInBrIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vc3JjL2lzRW50aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2NoZW1hLCBFbnRpdHlJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZS5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBFbnRpdHlJbnRlcmZhY2Uge1xuICByZXR1cm4gc2NoZW1hICE9PSBudWxsICYmIChzY2hlbWEgYXMgYW55KS5wayAhPT0gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLFFBQVEsQ0FBQ0MsTUFBYyxFQUE2QjtFQUNsRSxPQUFPQSxNQUFNLEtBQUssSUFBSSxJQUFLQSxNQUFNLENBQVNDLEVBQUUsS0FBS0MsU0FBUztBQUM1RCJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0VudGl0eSIsInNjaGVtYSIsInBrIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vc3JjL2lzRW50aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2NoZW1hLCBFbnRpdHlJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZS5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IHNjaGVtYSBpcyBFbnRpdHlJbnRlcmZhY2Uge1xuICByZXR1cm4gc2NoZW1hICE9PSBudWxsICYmIChzY2hlbWEgYXMgYW55KS5wayAhPT0gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLFFBQVFBLENBQUNDLE1BQWMsRUFBNkI7RUFDbEUsT0FBT0EsTUFBTSxLQUFLLElBQUksSUFBS0EsTUFBTSxDQUFTQyxFQUFFLEtBQUtDLFNBQVM7QUFDNUQifQ==

@@ -39,11 +39,11 @@ import { normalize as arrayNormalize } from './schemas/Array.js';

const inStoreEntity = existingEntities[schemaKey][id];
let inStoreMeta;
// this case we already have this entity in store
if (inStoreEntity) {
var _inStoreMeta$date, _meta$fetchedAt, _inStoreMeta$fetchedA;
const inStoreMeta = entityMeta[schemaKey][id];
if (inStoreEntity && (inStoreMeta = entityMeta[schemaKey][id])) {
var _meta$fetchedAt;
entities[schemaKey][id] = schema.mergeWithStore ? schema.mergeWithStore(inStoreMeta, meta, inStoreEntity, processedEntity) : mergeWithStore(schema, inStoreMeta, meta, inStoreEntity, processedEntity);
entityMeta[schemaKey][id] = {
expiresAt: Math.max(entityExpiresAt, inStoreMeta == null ? void 0 : inStoreMeta.expiresAt),
date: Math.max(meta.date, (_inStoreMeta$date = inStoreMeta == null ? void 0 : inStoreMeta.date) != null ? _inStoreMeta$date : 0),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, (_inStoreMeta$fetchedA = inStoreMeta == null ? void 0 : inStoreMeta.fetchedAt) != null ? _inStoreMeta$fetchedA : 0)
expiresAt: Math.max(entityExpiresAt, inStoreMeta.expiresAt),
date: Math.max(meta.date, inStoreMeta.date),
fetchedAt: Math.max((_meta$fetchedAt = meta.fetchedAt) != null ? _meta$fetchedAt : 0, inStoreMeta.fetchedAt)
};

@@ -62,3 +62,3 @@ } else {

// update index
if (Array.isArray(schema.indexes)) {
if (schema.indexes) {
const entity = entities[schemaKey][id];

@@ -102,6 +102,4 @@ if (!(schemaKey in indexes)) {

const useIncoming =
// we may have in store but not in meta; so this existance check is still important
!existingMeta || (
// useIncoming should not be used with legacy optimistic
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date);
schema.useIncoming && incomingMeta.fetchedAt ? schema.useIncoming(existingMeta, incomingMeta, existing, incoming) : existingMeta.date <= incomingMeta.date;
if (useIncoming) {

@@ -187,2 +185,2 @@ if (typeof incoming !== typeof existing) {

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJhcnJheU5vcm1hbGl6ZSIsIm9iamVjdE5vcm1hbGl6ZSIsIkRFTEVURUQiLCJ2aXNpdCIsInZhbHVlIiwicGFyZW50Iiwia2V5Iiwic2NoZW1hIiwiYWRkRW50aXR5IiwidmlzaXRlZEVudGl0aWVzIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiYWRkRW50aXRpZXMiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJleGlzdGluZ0VudGl0aWVzIiwiZXhpc3RpbmdJbmRleGVzIiwiZW50aXR5TWV0YSIsIm1ldGEiLCJwcm9jZXNzZWRFbnRpdHkiLCJpZCIsInNjaGVtYUtleSIsImV4aXN0aW5nRW50aXR5IiwibWVyZ2UiLCJlbnRpdHlFeHBpcmVzQXQiLCJleHBpcmVzQXQiLCJpblN0b3JlRW50aXR5IiwiaW5TdG9yZU1ldGEiLCJtZXJnZVdpdGhTdG9yZSIsIk1hdGgiLCJtYXgiLCJkYXRlIiwiZmV0Y2hlZEF0IiwiZW50aXR5IiwiaW5kZXgiLCJpbmRleE1hcCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbnNvbGUiLCJ3YXJuIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuZGVmaW5lZCIsImV4aXN0aW5nTWV0YSIsImluY29taW5nTWV0YSIsImV4aXN0aW5nIiwiaW5jb21pbmciLCJ1c2VJbmNvbWluZyIsImV4cGVjdGVkU2NoZW1hVHlwZSIsImluY2x1ZGVzIiwiaW5wdXQiLCJleGlzdGluZ0VudGl0eU1ldGEiLCJEYXRlIiwibm93IiwiSW5maW5pdHkiLCJyZXN1bHQiLCJzY2hlbWFUeXBlIiwicGsiLCJwYXJzZVdvcmtzIiwicGFyc2UiLCJlIiwiRXJyb3IiLCJuZXdFbnRpdGllcyIsIm5ld0luZGV4ZXMiXSwic291cmNlcyI6WyIuLi9zcmMvbm9ybWFsaXplLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5SW50ZXJmYWNlLCBTY2hlbWEsIE5vcm1hbGl6ZWRJbmRleCB9IGZyb20gJy4vaW50ZXJmYWNlLmpzJztcbmltcG9ydCB7IG5vcm1hbGl6ZSBhcyBhcnJheU5vcm1hbGl6ZSB9IGZyb20gJy4vc2NoZW1hcy9BcnJheS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgYXMgb2JqZWN0Tm9ybWFsaXplIH0gZnJvbSAnLi9zY2hlbWFzL09iamVjdC5qcyc7XG5pbXBvcnQgeyBERUxFVEVEIH0gZnJvbSAnLi9zcGVjaWFsLmpzJztcbmltcG9ydCB0eXBlIHsgTm9ybWFsaXplTnVsbGFibGUsIE5vcm1hbGl6ZWRTY2hlbWEgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgdmlzaXQgPSAoXG4gIHZhbHVlOiBhbnksXG4gIHBhcmVudDogYW55LFxuICBrZXk6IGFueSxcbiAgc2NoZW1hOiBhbnksXG4gIGFkZEVudGl0eTogKFxuICAgIHNjaGVtYTogRW50aXR5SW50ZXJmYWNlLFxuICAgIHByb2Nlc3NlZEVudGl0eTogYW55LFxuICAgIGlkOiBzdHJpbmcsXG4gICkgPT4gdm9pZCxcbiAgdmlzaXRlZEVudGl0aWVzOiBhbnksXG4pID0+IHtcbiAgaWYgKCF2YWx1ZSB8fCAhc2NoZW1hKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgaWYgKHNjaGVtYS5ub3JtYWxpemUgJiYgdHlwZW9mIHNjaGVtYS5ub3JtYWxpemUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIHZhbHVlO1xuICAgIHJldHVybiBzY2hlbWEubm9ybWFsaXplKFxuICAgICAgdmFsdWUsXG4gICAgICBwYXJlbnQsXG4gICAgICBrZXksXG4gICAgICB2aXNpdCxcbiAgICAgIGFkZEVudGl0eSxcbiAgICAgIHZpc2l0ZWRFbnRpdGllcyxcbiAgICApO1xuICB9XG5cbiAgLy8gc2VyaWFsaXphYmxlXG4gIGlmICh0eXBlb2Ygc2NoZW1hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG5ldyBzY2hlbWEodmFsdWUpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHNjaGVtYSAhPT0gJ29iamVjdCcpIHJldHVybiB2YWx1ZTtcblxuICBjb25zdCBtZXRob2QgPSBBcnJheS5pc0FycmF5KHNjaGVtYSkgPyBhcnJheU5vcm1hbGl6ZSA6IG9iamVjdE5vcm1hbGl6ZTtcbiAgcmV0dXJuIG1ldGhvZChzY2hlbWEsIHZhbHVlLCBwYXJlbnQsIGtleSwgdmlzaXQsIGFkZEVudGl0eSwgdmlzaXRlZEVudGl0aWVzKTtcbn07XG5cbmNvbnN0IGFkZEVudGl0aWVzID1cbiAgKFxuICAgIGVudGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZXhpc3RpbmdFbnRpdGllczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBleGlzdGluZ0luZGV4ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZW50aXR5TWV0YToge1xuICAgICAgW2VudGl0eUtleTogc3RyaW5nXToge1xuICAgICAgICBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgICBkYXRlOiBudW1iZXI7XG4gICAgICAgICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH0sXG4gICAgbWV0YTogeyBleHBpcmVzQXQ6IG51bWJlcjsgZGF0ZTogbnVtYmVyOyBmZXRjaGVkQXQ/OiBudW1iZXIgfSxcbiAgKSA9PlxuICAoc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2UsIHByb2Nlc3NlZEVudGl0eTogYW55LCBpZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hS2V5ID0gc2NoZW1hLmtleTtcbiAgICBpZiAoIShzY2hlbWFLZXkgaW4gZW50aXRpZXMpKSB7XG4gICAgICBlbnRpdGllc1tzY2hlbWFLZXldID0ge307XG4gICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV0gPSB7IC4uLmV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XSB9O1xuICAgICAgZW50aXR5TWV0YVtzY2hlbWFLZXldID0geyAuLi5lbnRpdHlNZXRhW3NjaGVtYUtleV0gfTtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0VudGl0eSA9IGVudGl0aWVzW3NjaGVtYUtleV1baWRdO1xuICAgIGlmIChleGlzdGluZ0VudGl0eSkge1xuICAgICAgZW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gPSBzY2hlbWEubWVyZ2UoZXhpc3RpbmdFbnRpdHksIHByb2Nlc3NlZEVudGl0eSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE8oYnJlYWtpbmcpOiBldmVudHVhbGx5IGFzc3VtZSB0aGlzIGV4aXN0cyBhbmQgZG9uJ3QgY2hlY2sgZm9yIGNvbmRpdGlvbmFsLiBwcm9iYWJseSBlYXJseSAyMDIyXG4gICAgICBjb25zdCBlbnRpdHlFeHBpcmVzQXQgPSBzY2hlbWEuZXhwaXJlc0F0XG4gICAgICAgID8gc2NoZW1hLmV4cGlyZXNBdChtZXRhLCBwcm9jZXNzZWRFbnRpdHkpXG4gICAgICAgIDogbWV0YS5leHBpcmVzQXQ7XG5cbiAgICAgIGNvbnN0IGluU3RvcmVFbnRpdHkgPSBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdO1xuICAgICAgLy8gdGhpcyBjYXNlIHdlIGFscmVhZHkgaGF2ZSB0aGlzIGVudGl0eSBpbiBzdG9yZVxuICAgICAgaWYgKGluU3RvcmVFbnRpdHkpIHtcbiAgICAgICAgY29uc3QgaW5TdG9yZU1ldGEgPSBlbnRpdHlNZXRhW3NjaGVtYUtleV1baWRdO1xuICAgICAgICBlbnRpdGllc1tzY2hlbWFLZXldW2lkXSA9IHNjaGVtYS5tZXJnZVdpdGhTdG9yZVxuICAgICAgICAgID8gc2NoZW1hLm1lcmdlV2l0aFN0b3JlKFxuICAgICAgICAgICAgICBpblN0b3JlTWV0YSxcbiAgICAgICAgICAgICAgbWV0YSxcbiAgICAgICAgICAgICAgaW5TdG9yZUVudGl0eSxcbiAgICAgICAgICAgICAgcHJvY2Vzc2VkRW50aXR5LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbWVyZ2VXaXRoU3RvcmUoXG4gICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgaW5TdG9yZU1ldGEsXG4gICAgICAgICAgICAgIG1ldGEsXG4gICAgICAgICAgICAgIGluU3RvcmVFbnRpdHksXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEVudGl0eSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XVtpZF0gPSB7XG4gICAgICAgICAgZXhwaXJlc0F0OiBNYXRoLm1heChlbnRpdHlFeHBpcmVzQXQsIGluU3RvcmVNZXRhPy5leHBpcmVzQXQpLFxuICAgICAgICAgIGRhdGU6IE1hdGgubWF4KG1ldGEuZGF0ZSwgaW5TdG9yZU1ldGE/LmRhdGUgPz8gMCksXG4gICAgICAgICAgZmV0Y2hlZEF0OiBNYXRoLm1heChtZXRhLmZldGNoZWRBdCA/PyAwLCBpblN0b3JlTWV0YT8uZmV0Y2hlZEF0ID8/IDApLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gPSBwcm9jZXNzZWRFbnRpdHk7XG4gICAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XVtpZF0gPSB7XG4gICAgICAgICAgZXhwaXJlc0F0OiBlbnRpdHlFeHBpcmVzQXQsXG4gICAgICAgICAgZGF0ZTogbWV0YS5kYXRlLFxuICAgICAgICAgIGZldGNoZWRBdDogbWV0YS5mZXRjaGVkQXQgPz8gbWV0YS5kYXRlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHVwZGF0ZSBpbmRleFxuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYS5pbmRleGVzKSkge1xuICAgICAgY29uc3QgZW50aXR5ID0gZW50aXRpZXNbc2NoZW1hS2V5XVtpZF07XG4gICAgICBpZiAoIShzY2hlbWFLZXkgaW4gaW5kZXhlcykpIHtcbiAgICAgICAgaW5kZXhlc1tzY2hlbWFLZXldID0ge307XG4gICAgICAgIGV4aXN0aW5nSW5kZXhlc1tzY2hlbWFLZXldID0geyAuLi5leGlzdGluZ0luZGV4ZXNbc2NoZW1hS2V5XSB9O1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBpbmRleCBvZiBzY2hlbWEuaW5kZXhlcykge1xuICAgICAgICBpZiAoIShpbmRleCBpbiBpbmRleGVzW3NjaGVtYUtleV0pKSB7XG4gICAgICAgICAgZXhpc3RpbmdJbmRleGVzW3NjaGVtYUtleV1baW5kZXhdID0gaW5kZXhlc1tzY2hlbWFLZXldW2luZGV4XSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4TWFwID0gaW5kZXhlc1tzY2hlbWFLZXldW2luZGV4XTtcbiAgICAgICAgaWYgKGV4aXN0aW5nRW50aXR5KSB7XG4gICAgICAgICAgZGVsZXRlIGluZGV4TWFwW2V4aXN0aW5nRW50aXR5W2luZGV4XV07XG4gICAgICAgIH1cbiAgICAgICAgLy8gZW50aXR5IGFscmVhZHkgaW4gY2FjaGUgYnV0IHRoZSBpbmRleCBjaGFuZ2VkXG4gICAgICAgIGlmIChcbiAgICAgICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV0gJiZcbiAgICAgICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdICYmXG4gICAgICAgICAgZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldW2lkXVtpbmRleF0gIT09IGVudGl0eVtpbmRleF1cbiAgICAgICAgKSB7XG4gICAgICAgICAgaW5kZXhNYXBbZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldW2lkXVtpbmRleF1dID0gREVMRVRFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggaW4gZW50aXR5KSB7XG4gICAgICAgICAgaW5kZXhNYXBbZW50aXR5W2luZGV4XV0gPSBpZDtcbiAgICAgICAgfSAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBlbHNlIGlmIChcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgSW5kZXggbm90IGZvdW5kIGluIGVudGl0eS4gSW5kZXhlcyBtdXN0IGJlIHRvcC1sZXZlbCBtZW1iZXJzIG9mIHlvdXIgZW50aXR5LlxuSW5kZXg6ICR7aW5kZXh9XG5FbnRpdHk6ICR7SlNPTi5zdHJpbmdpZnkoZW50aXR5LCB1bmRlZmluZWQsIDIpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHNldCB0aGlzIGFmdGVyIGluZGV4IHVwZGF0ZXMgc28gd2Uga25vdyB3aGF0IGluZGV4ZXMgdG8gcmVtb3ZlIGZyb21cbiAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdID0gZW50aXRpZXNbc2NoZW1hS2V5XVtpZF07XG4gIH07XG5cbi8vIFRPRE8oYnJlYWtpbmcpOiByZW1vdmUgdGhpcyBpbiAyIGJyZWFraW5nIHJlbGVhc2VzXG4vKiogQGRlcHJlY2F0ZWQgdXNlIEVudGl0eS5tZXJnZVN0b3JlKCkgaW5zdGVhZCAqL1xuZnVuY3Rpb24gbWVyZ2VXaXRoU3RvcmUoXG4gIHNjaGVtYTogRW50aXR5SW50ZXJmYWNlPGFueT4sXG4gIGV4aXN0aW5nTWV0YTpcbiAgICB8IHtcbiAgICAgICAgZGF0ZTogbnVtYmVyO1xuICAgICAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQsXG4gIGluY29taW5nTWV0YToge1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGRhdGU6IG51bWJlcjtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIH0sXG4gIGV4aXN0aW5nOiBhbnksXG4gIGluY29taW5nOiBhbnksXG4pIHtcbiAgY29uc3QgdXNlSW5jb21pbmcgPVxuICAgIC8vIHdlIG1heSBoYXZlIGluIHN0b3JlIGJ1dCBub3QgaW4gbWV0YTsgc28gdGhpcyBleGlzdGFuY2UgY2hlY2sgaXMgc3RpbGwgaW1wb3J0YW50XG4gICAgIWV4aXN0aW5nTWV0YSB8fFxuICAgIC8vIHVzZUluY29taW5nIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIGxlZ2FjeSBvcHRpbWlzdGljXG4gICAgKHNjaGVtYS51c2VJbmNvbWluZyAmJiBpbmNvbWluZ01ldGEuZmV0Y2hlZEF0XG4gICAgICA/IHNjaGVtYS51c2VJbmNvbWluZyhleGlzdGluZ01ldGEsIGluY29taW5nTWV0YSwgZXhpc3RpbmcsIGluY29taW5nKVxuICAgICAgOiBleGlzdGluZ01ldGEuZGF0ZSA8PSBpbmNvbWluZ01ldGEuZGF0ZSk7XG4gIGlmICh1c2VJbmNvbWluZykge1xuICAgIGlmICh0eXBlb2YgaW5jb21pbmcgIT09IHR5cGVvZiBleGlzdGluZykge1xuICAgICAgcmV0dXJuIGluY29taW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2NoZW1hLm1lcmdlKGV4aXN0aW5nLCBpbmNvbWluZyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBleGlzdGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBlY3RlZFNjaGVtYVR5cGUoc2NoZW1hOiBTY2hlbWEpIHtcbiAgcmV0dXJuIFsnb2JqZWN0JywgJ2Z1bmN0aW9uJ10uaW5jbHVkZXModHlwZW9mIHNjaGVtYSlcbiAgICA/ICdvYmplY3QnXG4gICAgOiB0eXBlb2Ygc2NoZW1hO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZSA9IDxcbiAgUyBleHRlbmRzIFNjaGVtYSA9IFNjaGVtYSxcbiAgRSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ+ID0gUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gID4sXG4gIFIgPSBOb3JtYWxpemVOdWxsYWJsZTxTPixcbj4oXG4gIGlucHV0OiBhbnksXG4gIHNjaGVtYT86IFMsXG4gIGV4aXN0aW5nRW50aXRpZXM6IFJlYWRvbmx5PEU+ID0ge30gYXMgYW55LFxuICBleGlzdGluZ0luZGV4ZXM6IFJlYWRvbmx5PE5vcm1hbGl6ZWRJbmRleD4gPSB7fSxcbiAgZXhpc3RpbmdFbnRpdHlNZXRhOiB7XG4gICAgcmVhZG9ubHkgW2VudGl0eUtleTogc3RyaW5nXToge1xuICAgICAgcmVhZG9ubHkgW3BrOiBzdHJpbmddOiB7XG4gICAgICAgIHJlYWRvbmx5IGRhdGU6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9O1xuICB9ID0ge30sXG4gIG1ldGE6IHsgZXhwaXJlc0F0OiBudW1iZXI7IGRhdGU6IG51bWJlcjsgZmV0Y2hlZEF0PzogbnVtYmVyIH0gPSB7XG4gICAgZGF0ZTogRGF0ZS5ub3coKSxcbiAgICBleHBpcmVzQXQ6IEluZmluaXR5LFxuICAgIGZldGNoZWRBdDogMCxcbiAgfSxcbik6IE5vcm1hbGl6ZWRTY2hlbWE8RSwgUj4gPT4ge1xuICAvLyBubyBzY2hlbWEgbWVhbnMgd2UgZG9uJ3QgcHJvY2VzcyBhdCBhbGxcbiAgaWYgKHNjaGVtYSA9PT0gdW5kZWZpbmVkIHx8IHNjaGVtYSA9PT0gbnVsbClcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXM6IGV4aXN0aW5nRW50aXRpZXMsXG4gICAgICBpbmRleGVzOiBleGlzdGluZ0luZGV4ZXMsXG4gICAgICByZXN1bHQ6IGlucHV0LFxuICAgICAgZW50aXR5TWV0YTogZXhpc3RpbmdFbnRpdHlNZXRhLFxuICAgIH07XG5cbiAgY29uc3Qgc2NoZW1hVHlwZSA9IGV4cGVjdGVkU2NoZW1hVHlwZShzY2hlbWEpO1xuICBpZiAoXG4gICAgaW5wdXQgPT09IG51bGwgfHxcbiAgICAodHlwZW9mIGlucHV0ICE9PSBzY2hlbWFUeXBlICYmXG4gICAgICAvLyB3ZSB3aWxsIGFsbG93IGEgRGVsZXRlIHNjaGVtYSB0byBiZSBhIHN0cmluZyBvciBvYmplY3RcbiAgICAgICEoXG4gICAgICAgIChzY2hlbWEgYXMgYW55KS5rZXkgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAoc2NoZW1hIGFzIGFueSkucGsgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnXG4gICAgICApKVxuICApIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zdCBwYXJzZVdvcmtzID0gKGlucHV0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIEpTT04ucGFyc2UoaW5wdXQpICE9PSAnc3RyaW5nJztcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnICYmIHBhcnNlV29ya3MoaW5wdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm9ybWFsaXppbmcgYSBzdHJpbmcsIGJ1dCB0aGlzIGRvZXMgbWF0Y2ggc2NoZW1hLlxuXG5QYXJzaW5nIHRoaXMgaW5wdXQgc3RyaW5nIGFzIEpTT04gd29ya2VkLiBUaGlzIGxpa2VseSBpbmRpY2F0ZXMgZmV0Y2ggZnVuY3Rpb24gZGlkIG5vdCBwYXJzZVxudGhlIEpTT04uIEJ5IGRlZmF1bHQsIHRoaXMgb25seSBoYXBwZW5zIGlmIFwiY29udGVudC10eXBlXCIgaGVhZGVyIGluY2x1ZGVzIFwianNvblwiLlxuU2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlIGZvciBtb3JlIGluZm9ybWF0aW9uXG5cbiAgU2NoZW1hOiAke0pTT04uc3RyaW5naWZ5KHNjaGVtYSwgdW5kZWZpbmVkLCAyKX1cbiAgSW5wdXQ6IFwiJHtpbnB1dH1cImApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVbmV4cGVjdGVkIGlucHV0IGdpdmVuIHRvIG5vcm1hbGl6ZS4gRXhwZWN0ZWQgdHlwZSB0byBiZSBcIiR7c2NoZW1hVHlwZX1cIiwgZm91bmQgXCIke1xuICAgICAgICAgICAgaW5wdXQgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgaW5wdXRcbiAgICAgICAgICB9XCIuXG5cbiAgICAgICAgICBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoc2NoZW1hLCB1bmRlZmluZWQsIDIpfVxuICAgICAgICAgIElucHV0OiBcIiR7aW5wdXR9XCJgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmV4cGVjdGVkIGlucHV0IGdpdmVuIHRvIG5vcm1hbGl6ZS4gRXhwZWN0ZWQgdHlwZSB0byBiZSBcIiR7c2NoZW1hVHlwZX1cIiwgZm91bmQgXCIke1xuICAgICAgICAgIGlucHV0ID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIGlucHV0XG4gICAgICAgIH1cIi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBuZXdFbnRpdGllczogRSA9IHt9IGFzIGFueTtcbiAgY29uc3QgbmV3SW5kZXhlczogTm9ybWFsaXplZEluZGV4ID0ge30gYXMgYW55O1xuICBjb25zdCBlbnRpdGllczogRSA9IHsgLi4uZXhpc3RpbmdFbnRpdGllcyB9IGFzIGFueTtcbiAgY29uc3QgaW5kZXhlczogTm9ybWFsaXplZEluZGV4ID0geyAuLi5leGlzdGluZ0luZGV4ZXMgfTtcbiAgY29uc3QgZW50aXR5TWV0YTogYW55ID0geyAuLi5leGlzdGluZ0VudGl0eU1ldGEgfTtcbiAgY29uc3QgYWRkRW50aXR5ID0gYWRkRW50aXRpZXMoXG4gICAgbmV3RW50aXRpZXMsXG4gICAgbmV3SW5kZXhlcyxcbiAgICBlbnRpdGllcyxcbiAgICBpbmRleGVzLFxuICAgIGVudGl0eU1ldGEsXG4gICAgbWV0YSxcbiAgKTtcbiAgY29uc3QgdmlzaXRlZEVudGl0aWVzID0ge307XG5cbiAgY29uc3QgcmVzdWx0ID0gdmlzaXQoXG4gICAgaW5wdXQsXG4gICAgaW5wdXQsXG4gICAgdW5kZWZpbmVkLFxuICAgIHNjaGVtYSxcbiAgICBhZGRFbnRpdHksXG4gICAgdmlzaXRlZEVudGl0aWVzLFxuICApO1xuICByZXR1cm4geyBlbnRpdGllcywgaW5kZXhlcywgcmVzdWx0LCBlbnRpdHlNZXRhIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxTQUFTLElBQUlDLGNBQWMsUUFBUSxvQkFBb0I7QUFDaEUsU0FBU0QsU0FBUyxJQUFJRSxlQUFlLFFBQVEscUJBQXFCO0FBQ2xFLFNBQVNDLE9BQU8sUUFBUSxjQUFjO0FBR3RDLE1BQU1DLEtBQUssR0FBRyxDQUNaQyxLQUFVLEVBQ1ZDLE1BQVcsRUFDWEMsR0FBUSxFQUNSQyxNQUFXLEVBQ1hDLFNBSVMsRUFDVEMsZUFBb0IsS0FDakI7RUFDSCxJQUFJLENBQUNMLEtBQUssSUFBSSxDQUFDRyxNQUFNLEVBQUU7SUFDckIsT0FBT0gsS0FBSztFQUNkO0VBRUEsSUFBSUcsTUFBTSxDQUFDUixTQUFTLElBQUksT0FBT1EsTUFBTSxDQUFDUixTQUFTLEtBQUssVUFBVSxFQUFFO0lBQzlELElBQUksT0FBT0ssS0FBSyxLQUFLLFFBQVEsRUFBRSxPQUFPQSxLQUFLO0lBQzNDLE9BQU9HLE1BQU0sQ0FBQ1IsU0FBUyxDQUNyQkssS0FBSyxFQUNMQyxNQUFNLEVBQ05DLEdBQUcsRUFDSEgsS0FBSyxFQUNMSyxTQUFTLEVBQ1RDLGVBQWUsQ0FDaEI7RUFDSDs7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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJhcnJheU5vcm1hbGl6ZSIsIm9iamVjdE5vcm1hbGl6ZSIsIkRFTEVURUQiLCJ2aXNpdCIsInZhbHVlIiwicGFyZW50Iiwia2V5Iiwic2NoZW1hIiwiYWRkRW50aXR5IiwidmlzaXRlZEVudGl0aWVzIiwibWV0aG9kIiwiQXJyYXkiLCJpc0FycmF5IiwiYWRkRW50aXRpZXMiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJleGlzdGluZ0VudGl0aWVzIiwiZXhpc3RpbmdJbmRleGVzIiwiZW50aXR5TWV0YSIsIm1ldGEiLCJwcm9jZXNzZWRFbnRpdHkiLCJpZCIsInNjaGVtYUtleSIsImV4aXN0aW5nRW50aXR5IiwibWVyZ2UiLCJlbnRpdHlFeHBpcmVzQXQiLCJleHBpcmVzQXQiLCJpblN0b3JlRW50aXR5IiwiaW5TdG9yZU1ldGEiLCJfbWV0YSRmZXRjaGVkQXQiLCJtZXJnZVdpdGhTdG9yZSIsIk1hdGgiLCJtYXgiLCJkYXRlIiwiZmV0Y2hlZEF0IiwiX21ldGEkZmV0Y2hlZEF0MiIsImVudGl0eSIsImluZGV4IiwiaW5kZXhNYXAiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJleGlzdGluZ01ldGEiLCJpbmNvbWluZ01ldGEiLCJleGlzdGluZyIsImluY29taW5nIiwidXNlSW5jb21pbmciLCJleHBlY3RlZFNjaGVtYVR5cGUiLCJpbmNsdWRlcyIsImlucHV0IiwiZXhpc3RpbmdFbnRpdHlNZXRhIiwiRGF0ZSIsIm5vdyIsIkluZmluaXR5IiwicmVzdWx0Iiwic2NoZW1hVHlwZSIsInBrIiwicGFyc2VXb3JrcyIsInBhcnNlIiwiZSIsIkVycm9yIiwibmV3RW50aXRpZXMiLCJuZXdJbmRleGVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eUludGVyZmFjZSwgU2NoZW1hLCBOb3JtYWxpemVkSW5kZXggfSBmcm9tICcuL2ludGVyZmFjZS5qcyc7XG5pbXBvcnQgeyBub3JtYWxpemUgYXMgYXJyYXlOb3JtYWxpemUgfSBmcm9tICcuL3NjaGVtYXMvQXJyYXkuanMnO1xuaW1wb3J0IHsgbm9ybWFsaXplIGFzIG9iamVjdE5vcm1hbGl6ZSB9IGZyb20gJy4vc2NoZW1hcy9PYmplY3QuanMnO1xuaW1wb3J0IHsgREVMRVRFRCB9IGZyb20gJy4vc3BlY2lhbC5qcyc7XG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZU51bGxhYmxlLCBOb3JtYWxpemVkU2NoZW1hIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNvbnN0IHZpc2l0ID0gKFxuICB2YWx1ZTogYW55LFxuICBwYXJlbnQ6IGFueSxcbiAga2V5OiBhbnksXG4gIHNjaGVtYTogYW55LFxuICBhZGRFbnRpdHk6IChcbiAgICBzY2hlbWE6IEVudGl0eUludGVyZmFjZSxcbiAgICBwcm9jZXNzZWRFbnRpdHk6IGFueSxcbiAgICBpZDogc3RyaW5nLFxuICApID0+IHZvaWQsXG4gIHZpc2l0ZWRFbnRpdGllczogYW55LFxuKSA9PiB7XG4gIGlmICghdmFsdWUgfHwgIXNjaGVtYSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmIChzY2hlbWEubm9ybWFsaXplICYmIHR5cGVvZiBzY2hlbWEubm9ybWFsaXplID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiB2YWx1ZTtcbiAgICByZXR1cm4gc2NoZW1hLm5vcm1hbGl6ZShcbiAgICAgIHZhbHVlLFxuICAgICAgcGFyZW50LFxuICAgICAga2V5LFxuICAgICAgdmlzaXQsXG4gICAgICBhZGRFbnRpdHksXG4gICAgICB2aXNpdGVkRW50aXRpZXMsXG4gICAgKTtcbiAgfVxuXG4gIC8vIHNlcmlhbGl6YWJsZVxuICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBuZXcgc2NoZW1hKHZhbHVlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBzY2hlbWEgIT09ICdvYmplY3QnKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3QgbWV0aG9kID0gQXJyYXkuaXNBcnJheShzY2hlbWEpID8gYXJyYXlOb3JtYWxpemUgOiBvYmplY3ROb3JtYWxpemU7XG4gIHJldHVybiBtZXRob2Qoc2NoZW1hLCB2YWx1ZSwgcGFyZW50LCBrZXksIHZpc2l0LCBhZGRFbnRpdHksIHZpc2l0ZWRFbnRpdGllcyk7XG59O1xuXG5jb25zdCBhZGRFbnRpdGllcyA9XG4gIChcbiAgICBlbnRpdGllczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGV4aXN0aW5nRW50aXRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgZXhpc3RpbmdJbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGVudGl0eU1ldGE6IHtcbiAgICAgIFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgICAgW3BrOiBzdHJpbmddOiB7XG4gICAgICAgICAgZGF0ZTogbnVtYmVyO1xuICAgICAgICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9LFxuICAgIG1ldGE6IHsgZXhwaXJlc0F0OiBudW1iZXI7IGRhdGU6IG51bWJlcjsgZmV0Y2hlZEF0PzogbnVtYmVyIH0sXG4gICkgPT5cbiAgKHNjaGVtYTogRW50aXR5SW50ZXJmYWNlLCBwcm9jZXNzZWRFbnRpdHk6IGFueSwgaWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHNjaGVtYUtleSA9IHNjaGVtYS5rZXk7XG4gICAgaWYgKCEoc2NoZW1hS2V5IGluIGVudGl0aWVzKSkge1xuICAgICAgZW50aXRpZXNbc2NoZW1hS2V5XSA9IHt9O1xuICAgICAgZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldID0geyAuLi5leGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV0gfTtcbiAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XSA9IHsgLi4uZW50aXR5TWV0YVtzY2hlbWFLZXldIH07XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdFbnRpdHkgPSBlbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgICBpZiAoZXhpc3RpbmdFbnRpdHkpIHtcbiAgICAgIGVudGl0aWVzW3NjaGVtYUtleV1baWRdID0gc2NoZW1hLm1lcmdlKGV4aXN0aW5nRW50aXR5LCBwcm9jZXNzZWRFbnRpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUT0RPKGJyZWFraW5nKTogZXZlbnR1YWxseSBhc3N1bWUgdGhpcyBleGlzdHMgYW5kIGRvbid0IGNoZWNrIGZvciBjb25kaXRpb25hbC4gcHJvYmFibHkgZWFybHkgMjAyMlxuICAgICAgY29uc3QgZW50aXR5RXhwaXJlc0F0ID0gc2NoZW1hLmV4cGlyZXNBdFxuICAgICAgICA/IHNjaGVtYS5leHBpcmVzQXQobWV0YSwgcHJvY2Vzc2VkRW50aXR5KVxuICAgICAgICA6IG1ldGEuZXhwaXJlc0F0O1xuXG4gICAgICBjb25zdCBpblN0b3JlRW50aXR5ID0gZXhpc3RpbmdFbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgICAgIGxldCBpblN0b3JlTWV0YToge1xuICAgICAgICBkYXRlOiBudW1iZXI7XG4gICAgICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgICAvLyB0aGlzIGNhc2Ugd2UgYWxyZWFkeSBoYXZlIHRoaXMgZW50aXR5IGluIHN0b3JlXG4gICAgICBpZiAoaW5TdG9yZUVudGl0eSAmJiAoaW5TdG9yZU1ldGEgPSBlbnRpdHlNZXRhW3NjaGVtYUtleV1baWRdKSkge1xuICAgICAgICBlbnRpdGllc1tzY2hlbWFLZXldW2lkXSA9IHNjaGVtYS5tZXJnZVdpdGhTdG9yZVxuICAgICAgICAgID8gc2NoZW1hLm1lcmdlV2l0aFN0b3JlKFxuICAgICAgICAgICAgICBpblN0b3JlTWV0YSxcbiAgICAgICAgICAgICAgbWV0YSxcbiAgICAgICAgICAgICAgaW5TdG9yZUVudGl0eSxcbiAgICAgICAgICAgICAgcHJvY2Vzc2VkRW50aXR5LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbWVyZ2VXaXRoU3RvcmUoXG4gICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgaW5TdG9yZU1ldGEsXG4gICAgICAgICAgICAgIG1ldGEsXG4gICAgICAgICAgICAgIGluU3RvcmVFbnRpdHksXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEVudGl0eSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVudGl0eU1ldGFbc2NoZW1hS2V5XVtpZF0gPSB7XG4gICAgICAgICAgZXhwaXJlc0F0OiBNYXRoLm1heChlbnRpdHlFeHBpcmVzQXQsIGluU3RvcmVNZXRhLmV4cGlyZXNBdCksXG4gICAgICAgICAgZGF0ZTogTWF0aC5tYXgobWV0YS5kYXRlLCBpblN0b3JlTWV0YS5kYXRlKSxcbiAgICAgICAgICBmZXRjaGVkQXQ6IE1hdGgubWF4KG1ldGEuZmV0Y2hlZEF0ID8/IDAsIGluU3RvcmVNZXRhLmZldGNoZWRBdCksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRpdGllc1tzY2hlbWFLZXldW2lkXSA9IHByb2Nlc3NlZEVudGl0eTtcbiAgICAgICAgZW50aXR5TWV0YVtzY2hlbWFLZXldW2lkXSA9IHtcbiAgICAgICAgICBleHBpcmVzQXQ6IGVudGl0eUV4cGlyZXNBdCxcbiAgICAgICAgICBkYXRlOiBtZXRhLmRhdGUsXG4gICAgICAgICAgZmV0Y2hlZEF0OiBtZXRhLmZldGNoZWRBdCA/PyBtZXRhLmRhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIGluZGV4XG4gICAgaWYgKHNjaGVtYS5pbmRleGVzKSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSBlbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgICAgIGlmICghKHNjaGVtYUtleSBpbiBpbmRleGVzKSkge1xuICAgICAgICBpbmRleGVzW3NjaGVtYUtleV0gPSB7fTtcbiAgICAgICAgZXhpc3RpbmdJbmRleGVzW3NjaGVtYUtleV0gPSB7IC4uLmV4aXN0aW5nSW5kZXhlc1tzY2hlbWFLZXldIH07XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGluZGV4IG9mIHNjaGVtYS5pbmRleGVzKSB7XG4gICAgICAgIGlmICghKGluZGV4IGluIGluZGV4ZXNbc2NoZW1hS2V5XSkpIHtcbiAgICAgICAgICBleGlzdGluZ0luZGV4ZXNbc2NoZW1hS2V5XVtpbmRleF0gPSBpbmRleGVzW3NjaGVtYUtleV1baW5kZXhdID0ge307XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhNYXAgPSBpbmRleGVzW3NjaGVtYUtleV1baW5kZXhdO1xuICAgICAgICBpZiAoZXhpc3RpbmdFbnRpdHkpIHtcbiAgICAgICAgICBkZWxldGUgaW5kZXhNYXBbZXhpc3RpbmdFbnRpdHlbaW5kZXhdXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbnRpdHkgYWxyZWFkeSBpbiBjYWNoZSBidXQgdGhlIGluZGV4IGNoYW5nZWRcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XSAmJlxuICAgICAgICAgIGV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gJiZcbiAgICAgICAgICBleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdW2luZGV4XSAhPT0gZW50aXR5W2luZGV4XVxuICAgICAgICApIHtcbiAgICAgICAgICBpbmRleE1hcFtleGlzdGluZ0VudGl0aWVzW3NjaGVtYUtleV1baWRdW2luZGV4XV0gPSBERUxFVEVEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCBpbiBlbnRpdHkpIHtcbiAgICAgICAgICBpbmRleE1hcFtlbnRpdHlbaW5kZXhdXSA9IGlkO1xuICAgICAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGVsc2UgaWYgKFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBJbmRleCBub3QgZm91bmQgaW4gZW50aXR5LiBJbmRleGVzIG11c3QgYmUgdG9wLWxldmVsIG1lbWJlcnMgb2YgeW91ciBlbnRpdHkuXG5JbmRleDogJHtpbmRleH1cbkVudGl0eTogJHtKU09OLnN0cmluZ2lmeShlbnRpdHksIHVuZGVmaW5lZCwgMil9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gc2V0IHRoaXMgYWZ0ZXIgaW5kZXggdXBkYXRlcyBzbyB3ZSBrbm93IHdoYXQgaW5kZXhlcyB0byByZW1vdmUgZnJvbVxuICAgIGV4aXN0aW5nRW50aXRpZXNbc2NoZW1hS2V5XVtpZF0gPSBlbnRpdGllc1tzY2hlbWFLZXldW2lkXTtcbiAgfTtcblxuLy8gVE9ETyhicmVha2luZyk6IHJlbW92ZSB0aGlzIGluIDIgYnJlYWtpbmcgcmVsZWFzZXNcbi8qKiBAZGVwcmVjYXRlZCB1c2UgRW50aXR5Lm1lcmdlU3RvcmUoKSBpbnN0ZWFkICovXG5mdW5jdGlvbiBtZXJnZVdpdGhTdG9yZShcbiAgc2NoZW1hOiBFbnRpdHlJbnRlcmZhY2U8YW55PixcbiAgZXhpc3RpbmdNZXRhOiB7XG4gICAgZGF0ZTogbnVtYmVyO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICB9LFxuICBpbmNvbWluZ01ldGE6IHtcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICBkYXRlOiBudW1iZXI7XG4gICAgZmV0Y2hlZEF0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB9LFxuICBleGlzdGluZzogYW55LFxuICBpbmNvbWluZzogYW55LFxuKSB7XG4gIGNvbnN0IHVzZUluY29taW5nID1cbiAgICAvLyB1c2VJbmNvbWluZyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCBsZWdhY3kgb3B0aW1pc3RpY1xuICAgIHNjaGVtYS51c2VJbmNvbWluZyAmJiBpbmNvbWluZ01ldGEuZmV0Y2hlZEF0XG4gICAgICA/IHNjaGVtYS51c2VJbmNvbWluZyhleGlzdGluZ01ldGEsIGluY29taW5nTWV0YSwgZXhpc3RpbmcsIGluY29taW5nKVxuICAgICAgOiBleGlzdGluZ01ldGEuZGF0ZSA8PSBpbmNvbWluZ01ldGEuZGF0ZTtcbiAgaWYgKHVzZUluY29taW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpbmNvbWluZyAhPT0gdHlwZW9mIGV4aXN0aW5nKSB7XG4gICAgICByZXR1cm4gaW5jb21pbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzY2hlbWEubWVyZ2UoZXhpc3RpbmcsIGluY29taW5nKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4cGVjdGVkU2NoZW1hVHlwZShzY2hlbWE6IFNjaGVtYSkge1xuICByZXR1cm4gWydvYmplY3QnLCAnZnVuY3Rpb24nXS5pbmNsdWRlcyh0eXBlb2Ygc2NoZW1hKVxuICAgID8gJ29iamVjdCdcbiAgICA6IHR5cGVvZiBzY2hlbWE7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gPFxuICBTIGV4dGVuZHMgU2NoZW1hID0gU2NoZW1hLFxuICBFIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZD4gPSBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgPixcbiAgUiA9IE5vcm1hbGl6ZU51bGxhYmxlPFM+LFxuPihcbiAgaW5wdXQ6IGFueSxcbiAgc2NoZW1hPzogUyxcbiAgZXhpc3RpbmdFbnRpdGllczogUmVhZG9ubHk8RT4gPSB7fSBhcyBhbnksXG4gIGV4aXN0aW5nSW5kZXhlczogUmVhZG9ubHk8Tm9ybWFsaXplZEluZGV4PiA9IHt9LFxuICBleGlzdGluZ0VudGl0eU1ldGE6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gIH0gPSB7fSxcbiAgbWV0YTogeyBleHBpcmVzQXQ6IG51bWJlcjsgZGF0ZTogbnVtYmVyOyBmZXRjaGVkQXQ/OiBudW1iZXIgfSA9IHtcbiAgICBkYXRlOiBEYXRlLm5vdygpLFxuICAgIGV4cGlyZXNBdDogSW5maW5pdHksXG4gICAgZmV0Y2hlZEF0OiAwLFxuICB9LFxuKTogTm9ybWFsaXplZFNjaGVtYTxFLCBSPiA9PiB7XG4gIC8vIG5vIHNjaGVtYSBtZWFucyB3ZSBkb24ndCBwcm9jZXNzIGF0IGFsbFxuICBpZiAoc2NoZW1hID09PSB1bmRlZmluZWQgfHwgc2NoZW1hID09PSBudWxsKVxuICAgIHJldHVybiB7XG4gICAgICBlbnRpdGllczogZXhpc3RpbmdFbnRpdGllcyxcbiAgICAgIGluZGV4ZXM6IGV4aXN0aW5nSW5kZXhlcyxcbiAgICAgIHJlc3VsdDogaW5wdXQsXG4gICAgICBlbnRpdHlNZXRhOiBleGlzdGluZ0VudGl0eU1ldGEsXG4gICAgfTtcblxuICBjb25zdCBzY2hlbWFUeXBlID0gZXhwZWN0ZWRTY2hlbWFUeXBlKHNjaGVtYSk7XG4gIGlmIChcbiAgICBpbnB1dCA9PT0gbnVsbCB8fFxuICAgICh0eXBlb2YgaW5wdXQgIT09IHNjaGVtYVR5cGUgJiZcbiAgICAgIC8vIHdlIHdpbGwgYWxsb3cgYSBEZWxldGUgc2NoZW1hIHRvIGJlIGEgc3RyaW5nIG9yIG9iamVjdFxuICAgICAgIShcbiAgICAgICAgKHNjaGVtYSBhcyBhbnkpLmtleSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIChzY2hlbWEgYXMgYW55KS5wayA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZydcbiAgICAgICkpXG4gICkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnN0IHBhcnNlV29ya3MgPSAoaW5wdXQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgSlNPTi5wYXJzZShpbnB1dCkgIT09ICdzdHJpbmcnO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgJiYgcGFyc2VXb3JrcyhpbnB1dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3JtYWxpemluZyBhIHN0cmluZywgYnV0IHRoaXMgZG9lcyBtYXRjaCBzY2hlbWEuXG5cblBhcnNpbmcgdGhpcyBpbnB1dCBzdHJpbmcgYXMgSlNPTiB3b3JrZWQuIFRoaXMgbGlrZWx5IGluZGljYXRlcyBmZXRjaCBmdW5jdGlvbiBkaWQgbm90IHBhcnNlXG50aGUgSlNPTi4gQnkgZGVmYXVsdCwgdGhpcyBvbmx5IGhhcHBlbnMgaWYgXCJjb250ZW50LXR5cGVcIiBoZWFkZXIgaW5jbHVkZXMgXCJqc29uXCIuXG5TZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2UgZm9yIG1vcmUgaW5mb3JtYXRpb25cblxuICBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoc2NoZW1hLCB1bmRlZmluZWQsIDIpfVxuICBJbnB1dDogXCIke2lucHV0fVwiYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuZXhwZWN0ZWQgaW5wdXQgZ2l2ZW4gdG8gbm9ybWFsaXplLiBFeHBlY3RlZCB0eXBlIHRvIGJlIFwiJHtzY2hlbWFUeXBlfVwiLCBmb3VuZCBcIiR7XG4gICAgICAgICAgICBpbnB1dCA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBpbnB1dFxuICAgICAgICAgIH1cIi5cblxuICAgICAgICAgIFNjaGVtYTogJHtKU09OLnN0cmluZ2lmeShzY2hlbWEsIHVuZGVmaW5lZCwgMil9XG4gICAgICAgICAgSW5wdXQ6IFwiJHtpbnB1dH1cImAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFVuZXhwZWN0ZWQgaW5wdXQgZ2l2ZW4gdG8gbm9ybWFsaXplLiBFeHBlY3RlZCB0eXBlIHRvIGJlIFwiJHtzY2hlbWFUeXBlfVwiLCBmb3VuZCBcIiR7XG4gICAgICAgICAgaW5wdXQgPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgaW5wdXRcbiAgICAgICAgfVwiLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5ld0VudGl0aWVzOiBFID0ge30gYXMgYW55O1xuICBjb25zdCBuZXdJbmRleGVzOiBOb3JtYWxpemVkSW5kZXggPSB7fSBhcyBhbnk7XG4gIGNvbnN0IGVudGl0aWVzOiBFID0geyAuLi5leGlzdGluZ0VudGl0aWVzIH0gYXMgYW55O1xuICBjb25zdCBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXggPSB7IC4uLmV4aXN0aW5nSW5kZXhlcyB9O1xuICBjb25zdCBlbnRpdHlNZXRhOiBhbnkgPSB7IC4uLmV4aXN0aW5nRW50aXR5TWV0YSB9O1xuICBjb25zdCBhZGRFbnRpdHkgPSBhZGRFbnRpdGllcyhcbiAgICBuZXdFbnRpdGllcyxcbiAgICBuZXdJbmRleGVzLFxuICAgIGVudGl0aWVzLFxuICAgIGluZGV4ZXMsXG4gICAgZW50aXR5TWV0YSxcbiAgICBtZXRhLFxuICApO1xuICBjb25zdCB2aXNpdGVkRW50aXRpZXMgPSB7fTtcblxuICBjb25zdCByZXN1bHQgPSB2aXNpdChcbiAgICBpbnB1dCxcbiAgICBpbnB1dCxcbiAgICB1bmRlZmluZWQsXG4gICAgc2NoZW1hLFxuICAgIGFkZEVudGl0eSxcbiAgICB2aXNpdGVkRW50aXRpZXMsXG4gICk7XG4gIHJldHVybiB7IGVudGl0aWVzLCBpbmRleGVzLCByZXN1bHQsIGVudGl0eU1ldGEgfTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLFNBQVMsSUFBSUMsY0FBYyxRQUFRLG9CQUFvQjtBQUNoRSxTQUFTRCxTQUFTLElBQUlFLGVBQWUsUUFBUSxxQkFBcUI7QUFDbEUsU0FBU0MsT0FBTyxRQUFRLGNBQWM7QUFHdEMsTUFBTUMsS0FBSyxHQUFHQSxDQUNaQyxLQUFVLEVBQ1ZDLE1BQVcsRUFDWEMsR0FBUSxFQUNSQyxNQUFXLEVBQ1hDLFNBSVMsRUFDVEMsZUFBb0IsS0FDakI7RUFDSCxJQUFJLENBQUNMLEtBQUssSUFBSSxDQUFDRyxNQUFNLEVBQUU7SUFDckIsT0FBT0gsS0FBSztFQUNkO0VBRUEsSUFBSUcsTUFBTSxDQUFDUixTQUFTLElBQUksT0FBT1EsTUFBTSxDQUFDUixTQUFTLEtBQUssVUFBVSxFQUFFO0lBQzlELElBQUksT0FBT0ssS0FBSyxLQUFLLFFBQVEsRUFBRSxPQUFPQSxLQUFLO0lBQzNDLE9BQU9HLE1BQU0sQ0FBQ1IsU0FBUyxDQUNyQkssS0FBSyxFQUNMQyxNQUFNLEVBQ05DLEdBQUcsRUFDSEgsS0FBSyxFQUNMSyxTQUFTLEVBQ1RDLGVBQWUsQ0FDaEI7RUFDSDs7RUFFQTtFQUNBLElBQUksT0FBT0YsTUFBTSxLQUFLLFVBQVUsRUFB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

@@ -28,2 +28,2 @@ const validateSchema = definition => {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2YWxpZGF0ZVNjaGVtYSIsImRlZmluaXRpb24iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc0FycmF5IiwiQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImdldFZhbHVlcyIsImlucHV0IiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsImZpbHRlckVtcHR5IiwiaXRlbSIsImRlbGV0ZWRJdGVtIiwidW5kZWZpbmVkIiwibm9ybWFsaXplIiwic2NoZW1hIiwicGFyZW50IiwidmlzaXQiLCJhZGRFbnRpdHkiLCJ2aXNpdGVkRW50aXRpZXMiLCJ2YWx1ZXMiLCJ2YWx1ZSIsImluZGV4IiwiZGVub3JtYWxpemUiLCJ1bnZpc2l0IiwiZW50aXR5T3JJZCIsImZpbHRlciIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvQXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdmFsaWRhdGVTY2hlbWEgPSBkZWZpbml0aW9uID0+IHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKTtcbiAgICBpZiAoaXNBcnJheSAmJiBkZWZpbml0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIHNjaGVtYSBkZWZpbml0aW9uIHRvIGJlIGEgc2luZ2xlIHNjaGVtYSwgYnV0IGZvdW5kICR7ZGVmaW5pdGlvbi5sZW5ndGh9LmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWZpbml0aW9uWzBdO1xufTtcblxuY29uc3QgZ2V0VmFsdWVzID0gaW5wdXQgPT5cbiAgQXJyYXkuaXNBcnJheShpbnB1dCkgPyBpbnB1dCA6IE9iamVjdC5rZXlzKGlucHV0KS5tYXAoa2V5ID0+IGlucHV0W2tleV0pO1xuXG5jb25zdCBmaWx0ZXJFbXB0eSA9IChbaXRlbSwgLCBkZWxldGVkSXRlbV0pID0+XG4gIGl0ZW0gIT09IHVuZGVmaW5lZCAmJiAhZGVsZXRlZEl0ZW07XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICBwYXJlbnQ6IGFueSxcbiAga2V5OiBhbnksXG4gIHZpc2l0OiBhbnksXG4gIGFkZEVudGl0eTogYW55LFxuICB2aXNpdGVkRW50aXRpZXM6IGFueSxcbikgPT4ge1xuICBzY2hlbWEgPSB2YWxpZGF0ZVNjaGVtYShzY2hlbWEpO1xuXG4gIGNvbnN0IHZhbHVlcyA9IGdldFZhbHVlcyhpbnB1dCk7XG5cbiAgLy8gU3BlY2lhbCBjYXNlOiBBcnJheXMgcGFzcyAqdGhlaXIqIHBhcmVudCBvbiB0byB0aGVpciBjaGlsZHJlbiwgc2luY2UgdGhlcmVcbiAgLy8gaXMgbm90IGFueSBzcGVjaWFsIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIGdhdGhlcmVkIGZyb20gdGhlbXNlbHZlcyBkaXJlY3RseVxuICByZXR1cm4gdmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PlxuICAgIHZpc2l0KHZhbHVlLCBwYXJlbnQsIGtleSwgc2NoZW1hLCBhZGRFbnRpdHksIHZpc2l0ZWRFbnRpdGllcyksXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBzdXNwZW5kOiBib29sZWFuXSA9PiB7XG4gIHNjaGVtYSA9IHZhbGlkYXRlU2NoZW1hKHNjaGVtYSk7XG4gIHJldHVybiBbXG4gICAgaW5wdXQubWFwXG4gICAgICA/IGlucHV0XG4gICAgICAgICAgLm1hcChlbnRpdHlPcklkID0+IHVudmlzaXQoZW50aXR5T3JJZCwgc2NoZW1hKSlcbiAgICAgICAgICAuZmlsdGVyKGZpbHRlckVtcHR5KVxuICAgICAgICAgIC5tYXAoKFt2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgOiBpbnB1dCxcbiAgICB0cnVlLFxuICAgIGZhbHNlLFxuICBdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmVyKHNjaGVtYTogYW55LCBhcmdzOiBhbnksIGluZGV4ZXM6IGFueSwgcmVjdXJzZTogYW55KSB7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLGNBQWMsR0FBR0MsVUFBVSxJQUFJO0VBQ25DO0VBQ0EsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7SUFDekMsTUFBTUMsT0FBTyxHQUFHQyxLQUFLLENBQUNELE9BQU8sQ0FBQ0osVUFBVSxDQUFDO0lBQ3pDLElBQUlJLE9BQU8sSUFBSUosVUFBVSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3BDLE1BQU0sSUFBSUMsS0FBSyxDQUNaLCtEQUE4RFAsVUFBVSxDQUFDTSxNQUFPLEdBQUUsQ0FDcEY7SUFDSDtFQUNGO0VBRUEsT0FBT04sVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTVEsU0FBUyxHQUFHQyxLQUFLLElBQ3JCSixLQUFLLENBQUNELE9BQU8sQ0FBQ0ssS0FBSyxDQUFDLEdBQUdBLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNGLEtBQUssQ0FBQyxDQUFDRyxHQUFHLENBQUNDLEdBQUcsSUFBSUosS0FBSyxDQUFDSSxHQUFHLENBQUMsQ0FBQztBQUUxRSxNQUFNQyxXQUFXLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLEdBQUlDLFdBQVcsQ0FBQyxLQUN4Q0QsSUFBSSxLQUFLRSxTQUFTLElBQUksQ0FBQ0QsV0FBVztBQUVwQyxPQUFPLE1BQU1FLFNBQVMsR0FBRyxDQUN2QkMsTUFBVyxFQUNYVixLQUFVLEVBQ1ZXLE1BQVcsRUFDWFAsR0FBUSxFQUNSUSxLQUFVLEVBQ1ZDLFNBQWMsRUFDZEMsZUFBb0IsS0FDakI7RUFDSEosTUFBTSxHQUFHcEIsY0FBYyxDQUFDb0IsTUFBTSxDQUFDO0VBRS9CLE1BQU1LLE1BQU0sR0FBR2hCLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDOztFQUUvQjtFQUNBO0VBQ0EsT0FBT2UsTUFBTSxDQUFDWixHQUFHLENBQUMsQ0FBQ2EsS0FBSyxFQUFFQyxLQUFLLEtBQzdCTCxLQUFLLENBQUNJLEtBQUssRUFBRUwsTUFBTSxFQUFFUCxHQUFHLEVBQUVNLE1BQU0sRUFBRUcsU0FBUyxFQUFFQyxlQUFlLENBQUMsQ0FDOUQ7QUFDSCxDQUFDO0FBRUQsT0FBTyxNQUFNSSxXQUFXLEdBQUcsQ0FDekJSLE1BQVcsRUFDWFYsS0FBVSxFQUNWbUIsT0FBWSxLQUM4QztFQUMxRFQsTUFBTSxHQUFHcEIsY0FBYyxDQUFDb0IsTUFBTSxDQUFDO0VBQy9CLE9BQU8sQ0FDTFYsS0FBSyxDQUFDRyxHQUFHLEdBQ0xILEtBQUssQ0FDRkcsR0FBRyxDQUFDaUIsVUFBVSxJQUFJRCxPQUFPLENBQUNDLFVBQVUsRUFBRVYsTUFBTSxDQUFDLENBQUMsQ0FDOUNXLE1BQU0sQ0FBQ2hCLFdBQVcsQ0FBQyxDQUNuQkYsR0FBRyxDQUFDLENBQUMsQ0FBQ2EsS0FBSyxDQUFDLEtBQUtBLEtBQUssQ0FBQyxHQUMxQmhCLEtBQUssRUFDVCxJQUFJLEVBQ0osS0FBSyxDQUNOO0FBQ0gsQ0FBQztBQUVELE9BQU8sU0FBU3NCLEtBQUssQ0FBQ1osTUFBVyxFQUFFYSxJQUFTLEVBQUVDLE9BQVksRUFBRUMsT0FBWSxFQUFFO0VBQ3hFLE9BQU9qQixTQUFTO0FBQ2xCIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2YWxpZGF0ZVNjaGVtYSIsImRlZmluaXRpb24iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc0FycmF5IiwiQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImdldFZhbHVlcyIsImlucHV0IiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsImZpbHRlckVtcHR5IiwiaXRlbSIsImRlbGV0ZWRJdGVtIiwidW5kZWZpbmVkIiwibm9ybWFsaXplIiwic2NoZW1hIiwicGFyZW50IiwidmlzaXQiLCJhZGRFbnRpdHkiLCJ2aXNpdGVkRW50aXRpZXMiLCJ2YWx1ZXMiLCJ2YWx1ZSIsImluZGV4IiwiZGVub3JtYWxpemUiLCJ1bnZpc2l0IiwiZW50aXR5T3JJZCIsImZpbHRlciIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvQXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdmFsaWRhdGVTY2hlbWEgPSBkZWZpbml0aW9uID0+IHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKTtcbiAgICBpZiAoaXNBcnJheSAmJiBkZWZpbml0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIHNjaGVtYSBkZWZpbml0aW9uIHRvIGJlIGEgc2luZ2xlIHNjaGVtYSwgYnV0IGZvdW5kICR7ZGVmaW5pdGlvbi5sZW5ndGh9LmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWZpbml0aW9uWzBdO1xufTtcblxuY29uc3QgZ2V0VmFsdWVzID0gaW5wdXQgPT5cbiAgQXJyYXkuaXNBcnJheShpbnB1dCkgPyBpbnB1dCA6IE9iamVjdC5rZXlzKGlucHV0KS5tYXAoa2V5ID0+IGlucHV0W2tleV0pO1xuXG5jb25zdCBmaWx0ZXJFbXB0eSA9IChbaXRlbSwgLCBkZWxldGVkSXRlbV0pID0+XG4gIGl0ZW0gIT09IHVuZGVmaW5lZCAmJiAhZGVsZXRlZEl0ZW07XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICBwYXJlbnQ6IGFueSxcbiAga2V5OiBhbnksXG4gIHZpc2l0OiBhbnksXG4gIGFkZEVudGl0eTogYW55LFxuICB2aXNpdGVkRW50aXRpZXM6IGFueSxcbikgPT4ge1xuICBzY2hlbWEgPSB2YWxpZGF0ZVNjaGVtYShzY2hlbWEpO1xuXG4gIGNvbnN0IHZhbHVlcyA9IGdldFZhbHVlcyhpbnB1dCk7XG5cbiAgLy8gU3BlY2lhbCBjYXNlOiBBcnJheXMgcGFzcyAqdGhlaXIqIHBhcmVudCBvbiB0byB0aGVpciBjaGlsZHJlbiwgc2luY2UgdGhlcmVcbiAgLy8gaXMgbm90IGFueSBzcGVjaWFsIGluZm9ybWF0aW9uIHRoYXQgY2FuIGJlIGdhdGhlcmVkIGZyb20gdGhlbXNlbHZlcyBkaXJlY3RseVxuICByZXR1cm4gdmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PlxuICAgIHZpc2l0KHZhbHVlLCBwYXJlbnQsIGtleSwgc2NoZW1hLCBhZGRFbnRpdHksIHZpc2l0ZWRFbnRpdGllcyksXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVub3JtYWxpemUgPSAoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBzdXNwZW5kOiBib29sZWFuXSA9PiB7XG4gIHNjaGVtYSA9IHZhbGlkYXRlU2NoZW1hKHNjaGVtYSk7XG4gIHJldHVybiBbXG4gICAgaW5wdXQubWFwXG4gICAgICA/IGlucHV0XG4gICAgICAgICAgLm1hcChlbnRpdHlPcklkID0+IHVudmlzaXQoZW50aXR5T3JJZCwgc2NoZW1hKSlcbiAgICAgICAgICAuZmlsdGVyKGZpbHRlckVtcHR5KVxuICAgICAgICAgIC5tYXAoKFt2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgOiBpbnB1dCxcbiAgICB0cnVlLFxuICAgIGZhbHNlLFxuICBdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmVyKHNjaGVtYTogYW55LCBhcmdzOiBhbnksIGluZGV4ZXM6IGFueSwgcmVjdXJzZTogYW55KSB7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLGNBQWMsR0FBR0MsVUFBVSxJQUFJO0VBQ25DO0VBQ0EsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7SUFDekMsTUFBTUMsT0FBTyxHQUFHQyxLQUFLLENBQUNELE9BQU8sQ0FBQ0osVUFBVSxDQUFDO0lBQ3pDLElBQUlJLE9BQU8sSUFBSUosVUFBVSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3BDLE1BQU0sSUFBSUMsS0FBSyxDQUNaLCtEQUE4RFAsVUFBVSxDQUFDTSxNQUFPLEdBQUUsQ0FDcEY7SUFDSDtFQUNGO0VBRUEsT0FBT04sVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTVEsU0FBUyxHQUFHQyxLQUFLLElBQ3JCSixLQUFLLENBQUNELE9BQU8sQ0FBQ0ssS0FBSyxDQUFDLEdBQUdBLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNGLEtBQUssQ0FBQyxDQUFDRyxHQUFHLENBQUNDLEdBQUcsSUFBSUosS0FBSyxDQUFDSSxHQUFHLENBQUMsQ0FBQztBQUUxRSxNQUFNQyxXQUFXLEdBQUdBLENBQUMsQ0FBQ0MsSUFBSSxHQUFJQyxXQUFXLENBQUMsS0FDeENELElBQUksS0FBS0UsU0FBUyxJQUFJLENBQUNELFdBQVc7QUFFcEMsT0FBTyxNQUFNRSxTQUFTLEdBQUdBLENBQ3ZCQyxNQUFXLEVBQ1hWLEtBQVUsRUFDVlcsTUFBVyxFQUNYUCxHQUFRLEVBQ1JRLEtBQVUsRUFDVkMsU0FBYyxFQUNkQyxlQUFvQixLQUNqQjtFQUNISixNQUFNLEdBQUdwQixjQUFjLENBQUNvQixNQUFNLENBQUM7RUFFL0IsTUFBTUssTUFBTSxHQUFHaEIsU0FBUyxDQUFDQyxLQUFLLENBQUM7O0VBRS9CO0VBQ0E7RUFDQSxPQUFPZSxNQUFNLENBQUNaLEdBQUcsQ0FBQyxDQUFDYSxLQUFLLEVBQUVDLEtBQUssS0FDN0JMLEtBQUssQ0FBQ0ksS0FBSyxFQUFFTCxNQUFNLEVBQUVQLEdBQUcsRUFBRU0sTUFBTSxFQUFFRyxTQUFTLEVBQUVDLGVBQWUsQ0FBQyxDQUM5RDtBQUNILENBQUM7QUFFRCxPQUFPLE1BQU1JLFdBQVcsR0FBR0EsQ0FDekJSLE1BQVcsRUFDWFYsS0FBVSxFQUNWbUIsT0FBWSxLQUM4QztFQUMxRFQsTUFBTSxHQUFHcEIsY0FBYyxDQUFDb0IsTUFBTSxDQUFDO0VBQy9CLE9BQU8sQ0FDTFYsS0FBSyxDQUFDRyxHQUFHLEdBQ0xILEtBQUssQ0FDRkcsR0FBRyxDQUFDaUIsVUFBVSxJQUFJRCxPQUFPLENBQUNDLFVBQVUsRUFBRVYsTUFBTSxDQUFDLENBQUMsQ0FDOUNXLE1BQU0sQ0FBQ2hCLFdBQVcsQ0FBQyxDQUNuQkYsR0FBRyxDQUFDLENBQUMsQ0FBQ2EsS0FBSyxDQUFDLEtBQUtBLEtBQUssQ0FBQyxHQUMxQmhCLEtBQUssRUFDVCxJQUFJLEVBQ0osS0FBSyxDQUNOO0FBQ0gsQ0FBQztBQUVELE9BQU8sU0FBU3NCLEtBQUtBLENBQUNaLE1BQVcsRUFBRWEsSUFBUyxFQUFFQyxPQUFZLEVBQUVDLE9BQVksRUFBRTtFQUN4RSxPQUFPakIsU0FBUztBQUNsQiJ9

@@ -50,2 +50,2 @@ /**

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIm9iamVjdCIsImhhc093blByb3BlcnR5IiwiT2JqZWN0IiwiY2FsbCIsIl9tYXAiLCJkZW5vcm1hbGl6ZUltbXV0YWJsZSIsInNjaGVtYSIsImlucHV0IiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsImtleXMiLCJyZWR1Y2UiLCJrZXkiLCJzdHJpbmdLZXkiLCJpdGVtIiwiZm91bmRJdGVtIiwiZGVsZXRlZEl0ZW0iLCJnZXQiLCJoYXMiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9JbW11dGFibGVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhlbHBlcnMgdG8gZW5hYmxlIEltbXV0YWJsZSBjb21wYXRpYmlsaXR5ICp3aXRob3V0KiBicmluZ2luZyBpblxuICogdGhlICdpbW11dGFibGUnIHBhY2thZ2UgYXMgYSBkZXBlbmRlbmN5LlxuICovXG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGltbXV0YWJsZSBieSBjaGVja2luZyBpZiBpdCBoYXMgYSBrZXkgc3BlY2lmaWNcbiAqIHRvIHRoZSBpbW11dGFibGUgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbH1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZShvYmplY3Q6IHt9KTogb2JqZWN0IGlzIHtcbiAgZ2V0KGs6IHN0cmluZyk6IGFueTtcbiAgW2s6IHN0cmluZ106IGFueTtcbn0ge1xuICByZXR1cm4gISEoXG4gICAgdHlwZW9mIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdfX293bmVySUQnKSB8fCAvLyBJbW11dGFibGUuTWFwXG4gICAgICAoKG9iamVjdCBhcyBhbnkpLl9tYXAgJiZcbiAgICAgICAgT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoKG9iamVjdCBhcyBhbnkpLl9tYXAsICdfX293bmVySUQnKSkpXG4gICk7IC8vIEltbXV0YWJsZS5SZWNvcmRcbn1cblxuLyoqXG4gKiBEZW5vcm1hbGl6ZSBhbiBpbW11dGFibGUgZW50aXR5LlxuICpcbiAqIEBwYXJhbSAge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0gIHtJbW11dGFibGUuTWFwfEltbXV0YWJsZS5SZWNvcmR9IGlucHV0XG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gdW52aXNpdFxuICogQHBhcmFtICB7ZnVuY3Rpb259IGdldERlbm9ybWFsaXplZEVudGl0eVxuICogQHJldHVybiB7SW1tdXRhYmxlLk1hcHxJbW11dGFibGUuUmVjb3JkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVJbW11dGFibGUoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiBib29sZWFuXSB7XG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG4gIHJldHVybiBbXG4gICAgT2JqZWN0LmtleXMoc2NoZW1hKS5yZWR1Y2UoKG9iamVjdCwga2V5KSA9PiB7XG4gICAgICAvLyBJbW11dGFibGUgbWFwcyBjYXN0IGtleXMgdG8gc3RyaW5ncyBvbiB3cml0ZSBzbyB3ZSBuZWVkIHRvIGVuc3VyZVxuICAgICAgLy8gd2UncmUgYWNjZXNzaW5nIHRoZW0gdXNpbmcgc3RyaW5nIGtleXMuXG4gICAgICBjb25zdCBzdHJpbmdLZXkgPSBgJHtrZXl9YDtcblxuICAgICAgY29uc3QgW2l0ZW0sIGZvdW5kSXRlbSwgZGVsZXRlZEl0ZW1dID0gdW52aXNpdChcbiAgICAgICAgb2JqZWN0LmdldChzdHJpbmdLZXkpLFxuICAgICAgICBzY2hlbWFbc3RyaW5nS2V5XSxcbiAgICAgICk7XG4gICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICAgIGRlbGV0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9iamVjdC5oYXMoc3RyaW5nS2V5KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0LnNldChzdHJpbmdLZXksIGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH1cbiAgICB9LCBpbnB1dCksXG4gICAgZm91bmQsXG4gICAgZGVsZXRlZCxcbiAgXTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0EsV0FBVyxDQUFDQyxNQUFVLEVBR3BDO0VBQ0EsT0FBTyxDQUFDLEVBQ04sT0FBT0EsTUFBTSxDQUFDQyxjQUFjLEtBQUssVUFBVSxLQUMxQ0MsTUFBTSxDQUFDRCxjQUFjLENBQUNFLElBQUksQ0FBQ0gsTUFBTSxFQUFFLFdBQVcsQ0FBQztFQUFJO0VBQ2hEQSxNQUFNLENBQVNJLElBQUksSUFDbkJGLE1BQU0sQ0FBQ0QsY0FBYyxDQUFDRSxJQUFJLENBQUVILE1BQU0sQ0FBU0ksSUFBSSxFQUFFLFdBQVcsQ0FBRSxDQUFDLENBQ3BFLENBQUMsQ0FBQztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0Msb0JBQW9CLENBQ2xDQyxNQUFXLEVBQ1hDLEtBQVUsRUFDVkMsT0FBWSxFQUMyQztFQUN2RCxJQUFJQyxLQUFLLEdBQUcsSUFBSTtFQUNoQixJQUFJQyxPQUFPLEdBQUcsS0FBSztFQUNuQixPQUFPLENBQ0xSLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDTCxNQUFNLENBQUMsQ0FBQ00sTUFBTSxDQUFDLENBQUNaLE1BQU0sRUFBRWEsR0FBRyxLQUFLO0lBQzFDO0lBQ0E7SUFDQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsR0FBSSxFQUFDO0lBRTFCLE1BQU0sQ0FBQ0UsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsQ0FBQyxHQUFHVCxPQUFPLENBQzVDUixNQUFNLENBQUNrQixHQUFHLENBQUNKLFNBQVMsQ0FBQyxFQUNyQlIsTUFBTSxDQUFDUSxTQUFTLENBQUMsQ0FDbEI7SUFDRCxJQUFJLENBQUNFLFNBQVMsRUFBRTtNQUNkUCxLQUFLLEdBQUcsS0FBSztJQUNmO0lBQ0EsSUFBSVEsV0FBVyxFQUFFO01BQ2ZQLE9BQU8sR0FBRyxJQUFJO0lBQ2hCO0lBQ0EsSUFBSVYsTUFBTSxDQUFDbUIsR0FBRyxDQUFDTCxTQUFTLENBQUMsRUFBRTtNQUN6QixPQUFPZCxNQUFNLENBQUNvQixHQUFHLENBQUNOLFNBQVMsRUFBRUMsSUFBSSxDQUFDO0lBQ3BDLENBQUMsTUFBTTtNQUNMLE9BQU9mLE1BQU07SUFDZjtFQUNGLENBQUMsRUFBRU8sS0FBSyxDQUFDLEVBQ1RFLEtBQUssRUFDTEMsT0FBTyxDQUNSO0FBQ0gifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIm9iamVjdCIsImhhc093blByb3BlcnR5IiwiT2JqZWN0IiwiY2FsbCIsIl9tYXAiLCJkZW5vcm1hbGl6ZUltbXV0YWJsZSIsInNjaGVtYSIsImlucHV0IiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsImtleXMiLCJyZWR1Y2UiLCJrZXkiLCJzdHJpbmdLZXkiLCJpdGVtIiwiZm91bmRJdGVtIiwiZGVsZXRlZEl0ZW0iLCJnZXQiLCJoYXMiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9JbW11dGFibGVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhlbHBlcnMgdG8gZW5hYmxlIEltbXV0YWJsZSBjb21wYXRpYmlsaXR5ICp3aXRob3V0KiBicmluZ2luZyBpblxuICogdGhlICdpbW11dGFibGUnIHBhY2thZ2UgYXMgYSBkZXBlbmRlbmN5LlxuICovXG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gb2JqZWN0IGlzIGltbXV0YWJsZSBieSBjaGVja2luZyBpZiBpdCBoYXMgYSBrZXkgc3BlY2lmaWNcbiAqIHRvIHRoZSBpbW11dGFibGUgbGlicmFyeS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbH1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZShvYmplY3Q6IHt9KTogb2JqZWN0IGlzIHtcbiAgZ2V0KGs6IHN0cmluZyk6IGFueTtcbiAgW2s6IHN0cmluZ106IGFueTtcbn0ge1xuICByZXR1cm4gISEoXG4gICAgdHlwZW9mIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdfX293bmVySUQnKSB8fCAvLyBJbW11dGFibGUuTWFwXG4gICAgICAoKG9iamVjdCBhcyBhbnkpLl9tYXAgJiZcbiAgICAgICAgT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoKG9iamVjdCBhcyBhbnkpLl9tYXAsICdfX293bmVySUQnKSkpXG4gICk7IC8vIEltbXV0YWJsZS5SZWNvcmRcbn1cblxuLyoqXG4gKiBEZW5vcm1hbGl6ZSBhbiBpbW11dGFibGUgZW50aXR5LlxuICpcbiAqIEBwYXJhbSAge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0gIHtJbW11dGFibGUuTWFwfEltbXV0YWJsZS5SZWNvcmR9IGlucHV0XG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gdW52aXNpdFxuICogQHBhcmFtICB7ZnVuY3Rpb259IGdldERlbm9ybWFsaXplZEVudGl0eVxuICogQHJldHVybiB7SW1tdXRhYmxlLk1hcHxJbW11dGFibGUuUmVjb3JkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVJbW11dGFibGUoXG4gIHNjaGVtYTogYW55LFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pOiBbZGVub3JtYWxpemVkOiBhbnksIGZvdW5kOiBib29sZWFuLCBkZWxldGVkOiBib29sZWFuXSB7XG4gIGxldCBmb3VuZCA9IHRydWU7XG4gIGxldCBkZWxldGVkID0gZmFsc2U7XG4gIHJldHVybiBbXG4gICAgT2JqZWN0LmtleXMoc2NoZW1hKS5yZWR1Y2UoKG9iamVjdCwga2V5KSA9PiB7XG4gICAgICAvLyBJbW11dGFibGUgbWFwcyBjYXN0IGtleXMgdG8gc3RyaW5ncyBvbiB3cml0ZSBzbyB3ZSBuZWVkIHRvIGVuc3VyZVxuICAgICAgLy8gd2UncmUgYWNjZXNzaW5nIHRoZW0gdXNpbmcgc3RyaW5nIGtleXMuXG4gICAgICBjb25zdCBzdHJpbmdLZXkgPSBgJHtrZXl9YDtcblxuICAgICAgY29uc3QgW2l0ZW0sIGZvdW5kSXRlbSwgZGVsZXRlZEl0ZW1dID0gdW52aXNpdChcbiAgICAgICAgb2JqZWN0LmdldChzdHJpbmdLZXkpLFxuICAgICAgICBzY2hlbWFbc3RyaW5nS2V5XSxcbiAgICAgICk7XG4gICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICBmb3VuZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICAgIGRlbGV0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9iamVjdC5oYXMoc3RyaW5nS2V5KSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0LnNldChzdHJpbmdLZXksIGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgIH1cbiAgICB9LCBpbnB1dCksXG4gICAgZm91bmQsXG4gICAgZGVsZXRlZCxcbiAgXTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0EsV0FBV0EsQ0FBQ0MsTUFBVSxFQUdwQztFQUNBLE9BQU8sQ0FBQyxFQUNOLE9BQU9BLE1BQU0sQ0FBQ0MsY0FBYyxLQUFLLFVBQVUsS0FDMUNDLE1BQU0sQ0FBQ0QsY0FBYyxDQUFDRSxJQUFJLENBQUNILE1BQU0sRUFBRSxXQUFXLENBQUM7RUFBSTtFQUNoREEsTUFBTSxDQUFTSSxJQUFJLElBQ25CRixNQUFNLENBQUNELGNBQWMsQ0FBQ0UsSUFBSSxDQUFFSCxNQUFNLENBQVNJLElBQUksRUFBRSxXQUFXLENBQUUsQ0FBQyxDQUNwRSxDQUFDLENBQUM7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNDLG9CQUFvQkEsQ0FDbENDLE1BQVcsRUFDWEMsS0FBVSxFQUNWQyxPQUFZLEVBQzJDO0VBQ3ZELElBQUlDLEtBQUssR0FBRyxJQUFJO0VBQ2hCLElBQUlDLE9BQU8sR0FBRyxLQUFLO0VBQ25CLE9BQU8sQ0FDTFIsTUFBTSxDQUFDUyxJQUFJLENBQUNMLE1BQU0sQ0FBQyxDQUFDTSxNQUFNLENBQUMsQ0FBQ1osTUFBTSxFQUFFYSxHQUFHLEtBQUs7SUFDMUM7SUFDQTtJQUNBLE1BQU1DLFNBQVMsR0FBSSxHQUFFRCxHQUFJLEVBQUM7SUFFMUIsTUFBTSxDQUFDRSxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxDQUFDLEdBQUdULE9BQU8sQ0FDNUNSLE1BQU0sQ0FBQ2tCLEdBQUcsQ0FBQ0osU0FBUyxDQUFDLEVBQ3JCUixNQUFNLENBQUNRLFNBQVMsQ0FBQyxDQUNsQjtJQUNELElBQUksQ0FBQ0UsU0FBUyxFQUFFO01BQ2RQLEtBQUssR0FBRyxLQUFLO0lBQ2Y7SUFDQSxJQUFJUSxXQUFXLEVBQUU7TUFDZlAsT0FBTyxHQUFHLElBQUk7SUFDaEI7SUFDQSxJQUFJVixNQUFNLENBQUNtQixHQUFHLENBQUNMLFNBQVMsQ0FBQyxFQUFFO01BQ3pCLE9BQU9kLE1BQU0sQ0FBQ29CLEdBQUcsQ0FBQ04sU0FBUyxFQUFFQyxJQUFJLENBQUM7SUFDcEMsQ0FBQyxNQUFNO01BQ0wsT0FBT2YsTUFBTTtJQUNmO0VBQ0YsQ0FBQyxFQUFFTyxLQUFLLENBQUMsRUFDVEUsS0FBSyxFQUNMQyxPQUFPLENBQ1I7QUFDSCJ9

@@ -47,2 +47,2 @@ import { isImmutable, denormalizeImmutable } from './ImmutableUtils.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsImRlbm9ybWFsaXplSW1tdXRhYmxlIiwibm9ybWFsaXplIiwic2NoZW1hIiwiaW5wdXQiLCJwYXJlbnQiLCJrZXkiLCJ2aXNpdCIsImFkZEVudGl0eSIsInZpc2l0ZWRFbnRpdGllcyIsIm9iamVjdCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwibG9jYWxTY2hlbWEiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImRlbm9ybWFsaXplIiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsIml0ZW0iLCJmb3VuZEl0ZW0iLCJkZWxldGVkSXRlbSIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIiwiZW50aXRpZXMiLCJyZXN1bHRPYmplY3QiLCJrIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvT2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSW1tdXRhYmxlLCBkZW5vcm1hbGl6ZUltbXV0YWJsZSB9IGZyb20gJy4vSW1tdXRhYmxlVXRpbHMuanMnO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKFxuICBzY2hlbWE6IGFueSxcbiAgaW5wdXQ6IGFueSxcbiAgcGFyZW50OiBhbnksXG4gIGtleTogYW55LFxuICB2aXNpdDogYW55LFxuICBhZGRFbnRpdHk6IGFueSxcbiAgdmlzaXRlZEVudGl0aWVzOiBhbnksXG4pID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBsb2NhbFNjaGVtYSA9IHNjaGVtYVtrZXldO1xuICAgIGNvbnN0IHZhbHVlID0gdmlzaXQoXG4gICAgICBpbnB1dFtrZXldLFxuICAgICAgaW5wdXQsXG4gICAgICBrZXksXG4gICAgICBsb2NhbFNjaGVtYSxcbiAgICAgIGFkZEVudGl0eSxcbiAgICAgIHZpc2l0ZWRFbnRpdGllcyxcbiAgICApO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IChcbiAgc2NoZW1hOiBhbnksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIGlucHV0OiB7fSxcbiAgdW52aXNpdDogYW55LFxuKTogW2Rlbm9ybWFsaXplZDogYW55LCBmb3VuZDogYm9vbGVhbiwgZGVsZXRlZDogYm9vbGVhbl0gPT4ge1xuICBpZiAoaXNJbW11dGFibGUoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGRlbm9ybWFsaXplSW1tdXRhYmxlKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICB9XG5cbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBsZXQgZm91bmQgPSB0cnVlO1xuICBsZXQgZGVsZXRlZCA9IGZhbHNlO1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBbaXRlbSwgZm91bmRJdGVtLCBkZWxldGVkSXRlbV0gPSB1bnZpc2l0KG9iamVjdFtrZXldLCBzY2hlbWFba2V5XSk7XG4gICAgaWYgKG9iamVjdFtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iamVjdFtrZXldID0gaXRlbTtcbiAgICB9XG4gICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFmb3VuZEl0ZW0pIHtcbiAgICAgIGZvdW5kID0gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIFtvYmplY3QsIGZvdW5kLCBkZWxldGVkXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZlcihcbiAgc2NoZW1hOiBhbnksXG4gIGFyZ3M6IHJlYWRvbmx5IGFueVtdLFxuICBpbmRleGVzOiBhbnksXG4gIHJlY3Vyc2U6IGFueSxcbiAgZW50aXRpZXM6IGFueSxcbikge1xuICBjb25zdCByZXN1bHRPYmplY3Q6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoc2NoZW1hKSkge1xuICAgIHJlc3VsdE9iamVjdFtrXSA9IHJlY3Vyc2Uoc2NoZW1hW2tdLCBhcmdzLCBpbmRleGVzLCBlbnRpdGllcyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdE9iamVjdDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxFQUFFQyxvQkFBb0IsUUFBUSxxQkFBcUI7QUFFdkUsT0FBTyxNQUFNQyxTQUFTLEdBQUcsQ0FDdkJDLE1BQVcsRUFDWEMsS0FBVSxFQUNWQyxNQUFXLEVBQ1hDLEdBQVEsRUFDUkMsS0FBVSxFQUNWQyxTQUFjLEVBQ2RDLGVBQW9CLEtBQ2pCO0VBQ0gsTUFBTUMsTUFBTSxHQUFHO0lBQUUsR0FBR047RUFBTSxDQUFDO0VBQzNCTyxNQUFNLENBQUNDLElBQUksQ0FBQ1QsTUFBTSxDQUFDLENBQUNVLE9BQU8sQ0FBQ1AsR0FBRyxJQUFJO0lBQ2pDLE1BQU1RLFdBQVcsR0FBR1gsTUFBTSxDQUFDRyxHQUFHLENBQUM7SUFDL0IsTUFBTVMsS0FBSyxHQUFHUixLQUFLLENBQ2pCSCxLQUFLLENBQUNFLEdBQUcsQ0FBQyxFQUNWRixLQUFLLEVBQ0xFLEdBQUcsRUFDSFEsV0FBVyxFQUNYTixTQUFTLEVBQ1RDLGVBQWUsQ0FDaEI7SUFDRCxJQUFJTSxLQUFLLEtBQUtDLFNBQVMsSUFBSUQsS0FBSyxLQUFLLElBQUksRUFBRTtNQUN6QyxPQUFPTCxNQUFNLENBQUNKLEdBQUcsQ0FBQztJQUNwQixDQUFDLE1BQU07TUFDTEksTUFBTSxDQUFDSixHQUFHLENBQUMsR0FBR1MsS0FBSztJQUNyQjtFQUNGLENBQUMsQ0FBQztFQUNGLE9BQU9MLE1BQU07QUFDZixDQUFDO0FBRUQsT0FBTyxNQUFNTyxXQUFXLEdBQUcsQ0FDekJkLE1BQVcsRUFFWEMsS0FBUyxFQUNUYyxPQUFZLEtBQzhDO0VBQzFELElBQUlsQixXQUFXLENBQUNJLEtBQUssQ0FBQyxFQUFFO0lBQ3RCLE9BQU9ILG9CQUFvQixDQUFDRSxNQUFNLEVBQUVDLEtBQUssRUFBRWMsT0FBTyxDQUFDO0VBQ3JEO0VBRUEsTUFBTVIsTUFBTSxHQUFHO0lBQUUsR0FBR047RUFBTSxDQUFDO0VBQzNCLElBQUllLEtBQUssR0FBRyxJQUFJO0VBQ2hCLElBQUlDLE9BQU8sR0FBRyxLQUFLO0VBQ25CVCxNQUFNLENBQUNDLElBQUksQ0FBQ1QsTUFBTSxDQUFDLENBQUNVLE9BQU8sQ0FBQ1AsR0FBRyxJQUFJO0lBQ2pDLE1BQU0sQ0FBQ2UsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsQ0FBQyxHQUFHTCxPQUFPLENBQUNSLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLEVBQUVILE1BQU0sQ0FBQ0csR0FBRyxDQUFDLENBQUM7SUFDeEUsSUFBSUksTUFBTSxDQUFDSixHQUFHLENBQUMsS0FBS1UsU0FBUyxFQUFFO01BQzdCTixNQUFNLENBQUNKLEdBQUcsQ0FBQyxHQUFHZSxJQUFJO0lBQ3BCO0lBQ0EsSUFBSUUsV0FBVyxFQUFFO01BQ2ZILE9BQU8sR0FBRyxJQUFJO0lBQ2hCO0lBQ0EsSUFBSSxDQUFDRSxTQUFTLEVBQUU7TUFDZEgsS0FBSyxHQUFHLEtBQUs7SUFDZjtFQUNGLENBQUMsQ0FBQztFQUNGLE9BQU8sQ0FBQ1QsTUFBTSxFQUFFUyxLQUFLLEVBQUVDLE9BQU8sQ0FBQztBQUNqQyxDQUFDO0FBRUQsT0FBTyxTQUFTSSxLQUFLLENBQ25CckIsTUFBVyxFQUNYc0IsSUFBb0IsRUFDcEJDLE9BQVksRUFDWkMsT0FBWSxFQUNaQyxRQUFhLEVBQ2I7RUFDQSxNQUFNQyxZQUFpQixHQUFHLENBQUMsQ0FBQztFQUM1QixLQUFLLE1BQU1DLENBQUMsSUFBSW5CLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxNQUFNLENBQUMsRUFBRTtJQUNuQzBCLFlBQVksQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILE9BQU8sQ0FBQ3hCLE1BQU0sQ0FBQzJCLENBQUMsQ0FBQyxFQUFFTCxJQUFJLEVBQUVDLE9BQU8sRUFBRUUsUUFBUSxDQUFDO0VBQy9EO0VBQ0EsT0FBT0MsWUFBWTtBQUNyQiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsImRlbm9ybWFsaXplSW1tdXRhYmxlIiwibm9ybWFsaXplIiwic2NoZW1hIiwiaW5wdXQiLCJwYXJlbnQiLCJrZXkiLCJ2aXNpdCIsImFkZEVudGl0eSIsInZpc2l0ZWRFbnRpdGllcyIsIm9iamVjdCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwibG9jYWxTY2hlbWEiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImRlbm9ybWFsaXplIiwidW52aXNpdCIsImZvdW5kIiwiZGVsZXRlZCIsIml0ZW0iLCJmb3VuZEl0ZW0iLCJkZWxldGVkSXRlbSIsImluZmVyIiwiYXJncyIsImluZGV4ZXMiLCJyZWN1cnNlIiwiZW50aXRpZXMiLCJyZXN1bHRPYmplY3QiLCJrIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvT2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSW1tdXRhYmxlLCBkZW5vcm1hbGl6ZUltbXV0YWJsZSB9IGZyb20gJy4vSW1tdXRhYmxlVXRpbHMuanMnO1xuXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplID0gKFxuICBzY2hlbWE6IGFueSxcbiAgaW5wdXQ6IGFueSxcbiAgcGFyZW50OiBhbnksXG4gIGtleTogYW55LFxuICB2aXNpdDogYW55LFxuICBhZGRFbnRpdHk6IGFueSxcbiAgdmlzaXRlZEVudGl0aWVzOiBhbnksXG4pID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBsb2NhbFNjaGVtYSA9IHNjaGVtYVtrZXldO1xuICAgIGNvbnN0IHZhbHVlID0gdmlzaXQoXG4gICAgICBpbnB1dFtrZXldLFxuICAgICAgaW5wdXQsXG4gICAgICBrZXksXG4gICAgICBsb2NhbFNjaGVtYSxcbiAgICAgIGFkZEVudGl0eSxcbiAgICAgIHZpc2l0ZWRFbnRpdGllcyxcbiAgICApO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZW5vcm1hbGl6ZSA9IChcbiAgc2NoZW1hOiBhbnksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIGlucHV0OiB7fSxcbiAgdW52aXNpdDogYW55LFxuKTogW2Rlbm9ybWFsaXplZDogYW55LCBmb3VuZDogYm9vbGVhbiwgZGVsZXRlZDogYm9vbGVhbl0gPT4ge1xuICBpZiAoaXNJbW11dGFibGUoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGRlbm9ybWFsaXplSW1tdXRhYmxlKHNjaGVtYSwgaW5wdXQsIHVudmlzaXQpO1xuICB9XG5cbiAgY29uc3Qgb2JqZWN0ID0geyAuLi5pbnB1dCB9O1xuICBsZXQgZm91bmQgPSB0cnVlO1xuICBsZXQgZGVsZXRlZCA9IGZhbHNlO1xuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBbaXRlbSwgZm91bmRJdGVtLCBkZWxldGVkSXRlbV0gPSB1bnZpc2l0KG9iamVjdFtrZXldLCBzY2hlbWFba2V5XSk7XG4gICAgaWYgKG9iamVjdFtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iamVjdFtrZXldID0gaXRlbTtcbiAgICB9XG4gICAgaWYgKGRlbGV0ZWRJdGVtKSB7XG4gICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCFmb3VuZEl0ZW0pIHtcbiAgICAgIGZvdW5kID0gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIFtvYmplY3QsIGZvdW5kLCBkZWxldGVkXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZlcihcbiAgc2NoZW1hOiBhbnksXG4gIGFyZ3M6IHJlYWRvbmx5IGFueVtdLFxuICBpbmRleGVzOiBhbnksXG4gIHJlY3Vyc2U6IGFueSxcbiAgZW50aXRpZXM6IGFueSxcbikge1xuICBjb25zdCByZXN1bHRPYmplY3Q6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoc2NoZW1hKSkge1xuICAgIHJlc3VsdE9iamVjdFtrXSA9IHJlY3Vyc2Uoc2NoZW1hW2tdLCBhcmdzLCBpbmRleGVzLCBlbnRpdGllcyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdE9iamVjdDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxFQUFFQyxvQkFBb0IsUUFBUSxxQkFBcUI7QUFFdkUsT0FBTyxNQUFNQyxTQUFTLEdBQUdBLENBQ3ZCQyxNQUFXLEVBQ1hDLEtBQVUsRUFDVkMsTUFBVyxFQUNYQyxHQUFRLEVBQ1JDLEtBQVUsRUFDVkMsU0FBYyxFQUNkQyxlQUFvQixLQUNqQjtFQUNILE1BQU1DLE1BQU0sR0FBRztJQUFFLEdBQUdOO0VBQU0sQ0FBQztFQUMzQk8sTUFBTSxDQUFDQyxJQUFJLENBQUNULE1BQU0sQ0FBQyxDQUFDVSxPQUFPLENBQUNQLEdBQUcsSUFBSTtJQUNqQyxNQUFNUSxXQUFXLEdBQUdYLE1BQU0sQ0FBQ0csR0FBRyxDQUFDO0lBQy9CLE1BQU1TLEtBQUssR0FBR1IsS0FBSyxDQUNqQkgsS0FBSyxDQUFDRSxHQUFHLENBQUMsRUFDVkYsS0FBSyxFQUNMRSxHQUFHLEVBQ0hRLFdBQVcsRUFDWE4sU0FBUyxFQUNUQyxlQUFlLENBQ2hCO0lBQ0QsSUFBSU0sS0FBSyxLQUFLQyxTQUFTLElBQUlELEtBQUssS0FBSyxJQUFJLEVBQUU7TUFDekMsT0FBT0wsTUFBTSxDQUFDSixHQUFHLENBQUM7SUFDcEIsQ0FBQyxNQUFNO01BQ0xJLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLEdBQUdTLEtBQUs7SUFDckI7RUFDRixDQUFDLENBQUM7RUFDRixPQUFPTCxNQUFNO0FBQ2YsQ0FBQztBQUVELE9BQU8sTUFBTU8sV0FBVyxHQUFHQSxDQUN6QmQsTUFBVyxFQUVYQyxLQUFTLEVBQ1RjLE9BQVksS0FDOEM7RUFDMUQsSUFBSWxCLFdBQVcsQ0FBQ0ksS0FBSyxDQUFDLEVBQUU7SUFDdEIsT0FBT0gsb0JBQW9CLENBQUNFLE1BQU0sRUFBRUMsS0FBSyxFQUFFYyxPQUFPLENBQUM7RUFDckQ7RUFFQSxNQUFNUixNQUFNLEdBQUc7SUFBRSxHQUFHTjtFQUFNLENBQUM7RUFDM0IsSUFBSWUsS0FBSyxHQUFHLElBQUk7RUFDaEIsSUFBSUMsT0FBTyxHQUFHLEtBQUs7RUFDbkJULE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxNQUFNLENBQUMsQ0FBQ1UsT0FBTyxDQUFDUCxHQUFHLElBQUk7SUFDakMsTUFBTSxDQUFDZSxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxDQUFDLEdBQUdMLE9BQU8sQ0FBQ1IsTUFBTSxDQUFDSixHQUFHLENBQUMsRUFBRUgsTUFBTSxDQUFDRyxHQUFHLENBQUMsQ0FBQztJQUN4RSxJQUFJSSxNQUFNLENBQUNKLEdBQUcsQ0FBQyxLQUFLVSxTQUFTLEVBQUU7TUFDN0JOLE1BQU0sQ0FBQ0osR0FBRyxDQUFDLEdBQUdlLElBQUk7SUFDcEI7SUFDQSxJQUFJRSxXQUFXLEVBQUU7TUFDZkgsT0FBTyxHQUFHLElBQUk7SUFDaEI7SUFDQSxJQUFJLENBQUNFLFNBQVMsRUFBRTtNQUNkSCxLQUFLLEdBQUcsS0FBSztJQUNmO0VBQ0YsQ0FBQyxDQUFDO0VBQ0YsT0FBTyxDQUFDVCxNQUFNLEVBQUVTLEtBQUssRUFBRUMsT0FBTyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxPQUFPLFNBQVNJLEtBQUtBLENBQ25CckIsTUFBVyxFQUNYc0IsSUFBb0IsRUFDcEJDLE9BQVksRUFDWkMsT0FBWSxFQUNaQyxRQUFhLEVBQ2I7RUFDQSxNQUFNQyxZQUFpQixHQUFHLENBQUMsQ0FBQztFQUM1QixLQUFLLE1BQU1DLENBQUMsSUFBSW5CLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxNQUFNLENBQUMsRUFBRTtJQUNuQzBCLFlBQVksQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILE9BQU8sQ0FBQ3hCLE1BQU0sQ0FBQzJCLENBQUMsQ0FBQyxFQUFFTCxJQUFJLEVBQUVDLE9BQU8sRUFBRUUsUUFBUSxDQUFDO0VBQy9EO0VBQ0EsT0FBT0MsWUFBWTtBQUNyQiJ9

@@ -7,3 +7,3 @@ import type { Schema, Serializable, EntityInterface, NormalizedIndex, SchemaClass } from './interface.js';

}
export type AbstractInstanceType<T> = T extends {
export type AbstractInstanceType<T> = T extends new (...args: any) => infer U ? U : T extends {
prototype: infer U;

@@ -10,0 +10,0 @@ } ? U : never;

export {};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2NoZW1hLFxuICBTZXJpYWxpemFibGUsXG4gIEVudGl0eUludGVyZmFjZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBTY2hlbWFDbGFzcyxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHR5cGUgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGgge1xuICBrZXk6IHN0cmluZztcbiAgcGs6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQWJzdHJhY3RJbnN0YW5jZVR5cGU8VD4gPSBUIGV4dGVuZHMgeyBwcm90b3R5cGU6IGluZmVyIFUgfVxuICA/IFVcbiAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEVudGl0eTxUPiA9IFQgZXh0ZW5kcyB7XG4gIHByb3RvdHlwZTogaW5mZXIgVTtcbiAgc2NoZW1hOiBpbmZlciBTO1xufVxuICA/IHsgW0sgaW4gRXhjbHVkZTxrZXlvZiBVLCBrZXlvZiBTPl06IFVbS10gfSAmIHsgW0sgaW4ga2V5b2YgU106IHN0cmluZyB9XG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplT2JqZWN0PFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgW0sgaW4ga2V5b2YgU106IFNbS10gZXh0ZW5kcyBTY2hlbWEgPyBEZW5vcm1hbGl6ZTxTW0tdPiA6IFNbS107XG59O1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZU51bGxhYmxlT2JqZWN0PFMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgW0sgaW4ga2V5b2YgU106IFNbS10gZXh0ZW5kcyBTY2hlbWEgPyBEZW5vcm1hbGl6ZU51bGxhYmxlPFNbS10+IDogU1tLXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gTm9ybWFsaXplPFNbS10+IDogU1tLXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZWROdWxsYWJsZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gTm9ybWFsaXplTnVsbGFibGU8U1tLXT4gOiBTW0tdO1xufTtcblxuaW50ZXJmYWNlIE5lc3RlZFNjaGVtYUNsYXNzPFQgPSBhbnk+IHtcbiAgc2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCBTY2hlbWE+O1xuICBwcm90b3R5cGU6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkQ2xhc3M8VCA9IGFueT4gZXh0ZW5kcyBOZXN0ZWRTY2hlbWFDbGFzczxUPiB7XG4gIGZyb21KUzogKC4uLmFyZ3M6IGFueSkgPT4gQWJzdHJhY3RJbnN0YW5jZVR5cGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVub3JtYWxpemVDYWNoZSB7XG4gIGVudGl0aWVzOiB7XG4gICAgW2tleTogc3RyaW5nXToge1xuICAgICAgW3BrOiBzdHJpbmddOiBXZWFrTWFwPEVudGl0eUludGVyZmFjZSwgV2Vha0VudGl0eU1hcDxvYmplY3QsIGFueT4+O1xuICAgIH07XG4gIH07XG4gIHJlc3VsdHM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBXZWFrRW50aXR5TWFwPG9iamVjdCwgYW55PjtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVOdWxsYWJsZU5lc3RlZFNjaGVtYTxTIGV4dGVuZHMgTmVzdGVkU2NoZW1hQ2xhc3M+ID1cbiAga2V5b2YgU1snc2NoZW1hJ10gZXh0ZW5kcyBuZXZlclxuICAgID8gU1sncHJvdG90eXBlJ10gLy8gdGhpcyBpcyB0aGUgY2FzZSBvZiBhIG5vbi1zZXQgc2NoZW1hLCB3aGljaCBtZWFucyBpdCBhY3R1YWxseSBoYXMgbm8gbWVtYmVyc1xuICAgIDogc3RyaW5nIGV4dGVuZHMga2V5b2YgU1snc2NoZW1hJ11cbiAgICA/IFNbJ3Byb3RvdHlwZSddXG4gICAgOiBTWydwcm90b3R5cGUnXSAvKiYge1xuICAgICAgICBbSyBpbiBrZXlvZiBTWydzY2hlbWEnXV06IERlbm9ybWFsaXplTnVsbGFibGU8U1snc2NoZW1hJ11bS10+O1xuICAgICAgfSovO1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZVJldHVyblR5cGU8VD4gPSBUIGV4dGVuZHMgKFxuICBpbnB1dDogYW55LFxuICB1bnZpc2l0OiBhbnksXG4pID0+IFtpbmZlciBSLCBhbnksIGFueV1cbiAgPyBSXG4gIDogbmV2ZXI7XG5leHBvcnQgdHlwZSBOb3JtYWxpemVSZXR1cm5UeXBlPFQ+ID0gVCBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGluZmVyIFJcbiAgPyBSXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplPFM+ID0gUyBleHRlbmRzIEVudGl0eUludGVyZmFjZTxpbmZlciBVPlxuICA/IFVcbiAgOiBTIGV4dGVuZHMgUmVjb3JkQ2xhc3NcbiAgPyBBYnN0cmFjdEluc3RhbmNlVHlwZTxTPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IERlbm9ybWFsaXplUmV0dXJuVHlwZTxTWydkZW5vcm1hbGl6ZSddPlxuICA6IFMgZXh0ZW5kcyBTZXJpYWxpemFibGU8aW5mZXIgVD5cbiAgPyBUXG4gIDogUyBleHRlbmRzIEFycmF5PGluZmVyIEY+XG4gID8gRGVub3JtYWxpemU8Rj5bXVxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IERlbm9ybWFsaXplT2JqZWN0PFM+XG4gIDogUztcblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVOdWxsYWJsZTxTPiA9IFMgZXh0ZW5kcyBFbnRpdHlJbnRlcmZhY2U8YW55PlxuICA/IERlbm9ybWFsaXplTnVsbGFibGVOZXN0ZWRTY2hlbWE8Uz4gfCB1bmRlZmluZWRcbiAgOiBTIGV4dGVuZHMgUmVjb3JkQ2xhc3NcbiAgPyBEZW5vcm1hbGl6ZU51bGxhYmxlTmVzdGVkU2NoZW1hPFM+XG4gIDogUyBleHRlbmRzIFNjaGVtYUNsYXNzXG4gID8gRGVub3JtYWxpemVSZXR1cm5UeXBlPFNbJ19kZW5vcm1hbGl6ZU51bGxhYmxlJ10+XG4gIDogUyBleHRlbmRzIFNlcmlhbGl6YWJsZTxpbmZlciBUPlxuICA/IFRcbiAgOiBTIGV4dGVuZHMgQXJyYXk8aW5mZXIgRj5cbiAgPyBEZW5vcm1hbGl6ZTxGPltdIHwgdW5kZWZpbmVkXG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IGFueSB9XG4gID8gRGVub3JtYWxpemVOdWxsYWJsZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZTxTPiA9IFMgZXh0ZW5kcyBFbnRpdHlJbnRlcmZhY2VcbiAgPyBzdHJpbmdcbiAgOiBTIGV4dGVuZHMgUmVjb3JkQ2xhc3NcbiAgPyBOb3JtYWxpemVPYmplY3Q8U1snc2NoZW1hJ10+XG4gIDogUyBleHRlbmRzIFNjaGVtYUNsYXNzXG4gID8gTm9ybWFsaXplUmV0dXJuVHlwZTxTWydub3JtYWxpemUnXT5cbiAgOiBTIGV4dGVuZHMgU2VyaWFsaXphYmxlPGluZmVyIFQ+XG4gID8gVFxuICA6IFMgZXh0ZW5kcyBBcnJheTxpbmZlciBGPlxuICA/IE5vcm1hbGl6ZTxGPltdXG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IGFueSB9XG4gID8gTm9ybWFsaXplT2JqZWN0PFM+XG4gIDogUztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplTnVsbGFibGU8Uz4gPSBTIGV4dGVuZHMgRW50aXR5SW50ZXJmYWNlXG4gID8gc3RyaW5nIHwgdW5kZWZpbmVkXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gTm9ybWFsaXplZE51bGxhYmxlT2JqZWN0PFNbJ3NjaGVtYSddPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IE5vcm1hbGl6ZVJldHVyblR5cGU8U1snX25vcm1hbGl6ZU51bGxhYmxlJ10+XG4gIDogUyBleHRlbmRzIFNlcmlhbGl6YWJsZTxpbmZlciBUPlxuICA/IFRcbiAgOiBTIGV4dGVuZHMgQXJyYXk8aW5mZXIgRj5cbiAgPyBOb3JtYWxpemU8Rj5bXSB8IHVuZGVmaW5lZFxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IE5vcm1hbGl6ZWROdWxsYWJsZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZWRTY2hlbWE8RSwgUj4gPSB7XG4gIGVudGl0aWVzOiBFO1xuICByZXN1bHQ6IFI7XG4gIGluZGV4ZXM6IE5vcm1hbGl6ZWRJbmRleDtcbiAgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudGl0eU1hcDxUID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEVudGl0eUludGVyZmFjZTxUPj47XG4iXSwibWFwcGluZ3MiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2NoZW1hLFxuICBTZXJpYWxpemFibGUsXG4gIEVudGl0eUludGVyZmFjZSxcbiAgTm9ybWFsaXplZEluZGV4LFxuICBTY2hlbWFDbGFzcyxcbn0gZnJvbSAnLi9pbnRlcmZhY2UuanMnO1xuaW1wb3J0IHR5cGUgV2Vha0VudGl0eU1hcCBmcm9tICcuL1dlYWtFbnRpdHlNYXAuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGgge1xuICBrZXk6IHN0cmluZztcbiAgcGs6IHN0cmluZztcbn1cblxuLy8gVHlwZVNjcmlwdCA8NC4yIEluc3RhbmNlVHlwZTw+IGRvZXMgbm90IHdvcmsgb24gYWJzdHJhY3QgY2xhc3Nlc1xuZXhwb3J0IHR5cGUgQWJzdHJhY3RJbnN0YW5jZVR5cGU8VD4gPSBUIGV4dGVuZHMgbmV3ICguLi5hcmdzOiBhbnkpID0+IGluZmVyIFVcbiAgPyBVXG4gIDogVCBleHRlbmRzIHsgcHJvdG90eXBlOiBpbmZlciBVIH1cbiAgPyBVXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZWRFbnRpdHk8VD4gPSBUIGV4dGVuZHMge1xuICBwcm90b3R5cGU6IGluZmVyIFU7XG4gIHNjaGVtYTogaW5mZXIgUztcbn1cbiAgPyB7IFtLIGluIEV4Y2x1ZGU8a2V5b2YgVSwga2V5b2YgUz5dOiBVW0tdIH0gJiB7IFtLIGluIGtleW9mIFNdOiBzdHJpbmcgfVxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gRGVub3JtYWxpemU8U1tLXT4gOiBTW0tdO1xufTtcblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVOdWxsYWJsZU9iamVjdDxTIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7XG4gIFtLIGluIGtleW9mIFNdOiBTW0tdIGV4dGVuZHMgU2NoZW1hID8gRGVub3JtYWxpemVOdWxsYWJsZTxTW0tdPiA6IFNbS107XG59O1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVPYmplY3Q8UyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICBbSyBpbiBrZXlvZiBTXTogU1tLXSBleHRlbmRzIFNjaGVtYSA/IE5vcm1hbGl6ZTxTW0tdPiA6IFNbS107XG59O1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkTnVsbGFibGVPYmplY3Q8UyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICBbSyBpbiBrZXlvZiBTXTogU1tLXSBleHRlbmRzIFNjaGVtYSA/IE5vcm1hbGl6ZU51bGxhYmxlPFNbS10+IDogU1tLXTtcbn07XG5cbmludGVyZmFjZSBOZXN0ZWRTY2hlbWFDbGFzczxUID0gYW55PiB7XG4gIHNjaGVtYTogUmVjb3JkPHN0cmluZywgU2NoZW1hPjtcbiAgcHJvdG90eXBlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZENsYXNzPFQgPSBhbnk+IGV4dGVuZHMgTmVzdGVkU2NoZW1hQ2xhc3M8VD4ge1xuICBmcm9tSlM6ICguLi5hcmdzOiBhbnkpID0+IEFic3RyYWN0SW5zdGFuY2VUeXBlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbm9ybWFsaXplQ2FjaGUge1xuICBlbnRpdGllczoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIFtwazogc3RyaW5nXTogV2Vha01hcDxFbnRpdHlJbnRlcmZhY2UsIFdlYWtFbnRpdHlNYXA8b2JqZWN0LCBhbnk+PjtcbiAgICB9O1xuICB9O1xuICByZXN1bHRzOiB7XG4gICAgW2tleTogc3RyaW5nXTogV2Vha0VudGl0eU1hcDxvYmplY3QsIGFueT47XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplTnVsbGFibGVOZXN0ZWRTY2hlbWE8UyBleHRlbmRzIE5lc3RlZFNjaGVtYUNsYXNzPiA9XG4gIGtleW9mIFNbJ3NjaGVtYSddIGV4dGVuZHMgbmV2ZXJcbiAgICA/IFNbJ3Byb3RvdHlwZSddIC8vIHRoaXMgaXMgdGhlIGNhc2Ugb2YgYSBub24tc2V0IHNjaGVtYSwgd2hpY2ggbWVhbnMgaXQgYWN0dWFsbHkgaGFzIG5vIG1lbWJlcnNcbiAgICA6IHN0cmluZyBleHRlbmRzIGtleW9mIFNbJ3NjaGVtYSddXG4gICAgPyBTWydwcm90b3R5cGUnXVxuICAgIDogU1sncHJvdG90eXBlJ10gLyomIHtcbiAgICAgICAgW0sgaW4ga2V5b2YgU1snc2NoZW1hJ11dOiBEZW5vcm1hbGl6ZU51bGxhYmxlPFNbJ3NjaGVtYSddW0tdPjtcbiAgICAgIH0qLztcblxuZXhwb3J0IHR5cGUgRGVub3JtYWxpemVSZXR1cm5UeXBlPFQ+ID0gVCBleHRlbmRzIChcbiAgaW5wdXQ6IGFueSxcbiAgdW52aXNpdDogYW55LFxuKSA9PiBbaW5mZXIgUiwgYW55LCBhbnldXG4gID8gUlxuICA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgTm9ybWFsaXplUmV0dXJuVHlwZTxUPiA9IFQgZXh0ZW5kcyAoLi4uYXJnczogYW55KSA9PiBpbmZlciBSXG4gID8gUlxuICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBEZW5vcm1hbGl6ZTxTPiA9IFMgZXh0ZW5kcyBFbnRpdHlJbnRlcmZhY2U8aW5mZXIgVT5cbiAgPyBVXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gQWJzdHJhY3RJbnN0YW5jZVR5cGU8Uz5cbiAgOiBTIGV4dGVuZHMgU2NoZW1hQ2xhc3NcbiAgPyBEZW5vcm1hbGl6ZVJldHVyblR5cGU8U1snZGVub3JtYWxpemUnXT5cbiAgOiBTIGV4dGVuZHMgU2VyaWFsaXphYmxlPGluZmVyIFQ+XG4gID8gVFxuICA6IFMgZXh0ZW5kcyBBcnJheTxpbmZlciBGPlxuICA/IERlbm9ybWFsaXplPEY+W11cbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogYW55IH1cbiAgPyBEZW5vcm1hbGl6ZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIERlbm9ybWFsaXplTnVsbGFibGU8Uz4gPSBTIGV4dGVuZHMgRW50aXR5SW50ZXJmYWNlPGFueT5cbiAgPyBEZW5vcm1hbGl6ZU51bGxhYmxlTmVzdGVkU2NoZW1hPFM+IHwgdW5kZWZpbmVkXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gRGVub3JtYWxpemVOdWxsYWJsZU5lc3RlZFNjaGVtYTxTPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IERlbm9ybWFsaXplUmV0dXJuVHlwZTxTWydfZGVub3JtYWxpemVOdWxsYWJsZSddPlxuICA6IFMgZXh0ZW5kcyBTZXJpYWxpemFibGU8aW5mZXIgVD5cbiAgPyBUXG4gIDogUyBleHRlbmRzIEFycmF5PGluZmVyIEY+XG4gID8gRGVub3JtYWxpemU8Rj5bXSB8IHVuZGVmaW5lZFxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IERlbm9ybWFsaXplTnVsbGFibGVPYmplY3Q8Uz5cbiAgOiBTO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemU8Uz4gPSBTIGV4dGVuZHMgRW50aXR5SW50ZXJmYWNlXG4gID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIFJlY29yZENsYXNzXG4gID8gTm9ybWFsaXplT2JqZWN0PFNbJ3NjaGVtYSddPlxuICA6IFMgZXh0ZW5kcyBTY2hlbWFDbGFzc1xuICA/IE5vcm1hbGl6ZVJldHVyblR5cGU8U1snbm9ybWFsaXplJ10+XG4gIDogUyBleHRlbmRzIFNlcmlhbGl6YWJsZTxpbmZlciBUPlxuICA/IFRcbiAgOiBTIGV4dGVuZHMgQXJyYXk8aW5mZXIgRj5cbiAgPyBOb3JtYWxpemU8Rj5bXVxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBhbnkgfVxuICA/IE5vcm1hbGl6ZU9iamVjdDxTPlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZU51bGxhYmxlPFM+ID0gUyBleHRlbmRzIEVudGl0eUludGVyZmFjZVxuICA/IHN0cmluZyB8IHVuZGVmaW5lZFxuICA6IFMgZXh0ZW5kcyBSZWNvcmRDbGFzc1xuICA/IE5vcm1hbGl6ZWROdWxsYWJsZU9iamVjdDxTWydzY2hlbWEnXT5cbiAgOiBTIGV4dGVuZHMgU2NoZW1hQ2xhc3NcbiAgPyBOb3JtYWxpemVSZXR1cm5UeXBlPFNbJ19ub3JtYWxpemVOdWxsYWJsZSddPlxuICA6IFMgZXh0ZW5kcyBTZXJpYWxpemFibGU8aW5mZXIgVD5cbiAgPyBUXG4gIDogUyBleHRlbmRzIEFycmF5PGluZmVyIEY+XG4gID8gTm9ybWFsaXplPEY+W10gfCB1bmRlZmluZWRcbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogYW55IH1cbiAgPyBOb3JtYWxpemVkTnVsbGFibGVPYmplY3Q8Uz5cbiAgOiBTO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkU2NoZW1hPEUsIFI+ID0ge1xuICBlbnRpdGllczogRTtcbiAgcmVzdWx0OiBSO1xuICBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXg7XG4gIGVudGl0eU1ldGE6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgcmVhZG9ubHkgZGF0ZTogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBFbnRpdHlNYXA8VCA9IGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBFbnRpdHlJbnRlcmZhY2U8VD4+O1xuIl0sIm1hcHBpbmdzIjoiIn0=

@@ -77,2 +77,2 @@ import { isImmutable } from './schemas/ImmutableUtils.js';

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIldlYWtFbnRpdHlNYXAiLCJuZXh0IiwiV2Vha01hcCIsImdldCIsImVudGl0eSIsImdldEVudGl0eSIsImN1ckxpbmsiLCJFTVBUWSIsIm5leHRQYXRoIiwibmV4dEVudGl0eSIsInZhbHVlIiwiam91cm5leSIsInNldCIsImRlcGVuZGVuY2llcyIsImxlbmd0aCIsIktleVNpemUiLCJwYXRoIiwibmV4dExpbmsiLCJMaW5rIiwiZGVwVG9QYXRocyIsInVuZGVmaW5lZCIsImdldEVudGl0aWVzIiwic3RhdGUiLCJlbnRpdHlJc0ltbXV0YWJsZSIsImtleSIsInBrIiwiZ2V0SW4iLCJtYXAiLCJkZXAiLCJFcnJvciIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi9zcmMvV2Vha0VudGl0eU1hcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0ltbXV0YWJsZSB9IGZyb20gJy4vc2NoZW1hcy9JbW11dGFibGVVdGlscy5qcyc7XG5pbXBvcnQgeyBQYXRoIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKiBNYXBzIGVudGl0eSBkZXBlbmRlbmNpZXMgdG8gYSB2YWx1ZSAodXN1YWxseSB0aGVpciBkZW5vcm1hbGl6ZWQgZm9ybSlcbiAqXG4gKiBEZXBlbmRlbmNpZXMgc3RvcmUgYFBhdGhgIHRvIGVuYWJsZSBxdWljayB0cmF2ZXJzYWwgdXNpbmcgb25seSBgU3RhdGVgXG4gKiBJZiAqYW55KiBtZW1iZXJzIG9mIHRoZSBkZXBlbmRlbmN5IGdldCBjbGVhbmVkIHVwLCBzbyBkb2VzIHRoYXQga2V5L3ZhbHVlIHBhaXIgZ2V0IHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdlYWtFbnRpdHlNYXA8SyBleHRlbmRzIG9iamVjdCwgVj4ge1xuICByZWFkb25seSBuZXh0ID0gbmV3IFdlYWtNYXA8SywgTGluazxLLCBWPj4oKTtcblxuICBnZXQoZW50aXR5OiBLLCBnZXRFbnRpdHk6IEdldEVudGl0eTxLIHwgc3ltYm9sPikge1xuICAgIGxldCBjdXJMaW5rID0gdGhpcy5uZXh0LmdldChlbnRpdHkpO1xuICAgIGlmICghY3VyTGluaykgcmV0dXJuIEVNUFRZO1xuICAgIHdoaWxlIChjdXJMaW5rLm5leHRQYXRoKSB7XG4gICAgICBjb25zdCBuZXh0RW50aXR5ID0gZ2V0RW50aXR5KGN1ckxpbmsubmV4dFBhdGgpO1xuICAgICAgY3VyTGluayA9IGN1ckxpbmsubmV4dC5nZXQobmV4dEVudGl0eSBhcyBhbnkpO1xuICAgICAgaWYgKCFjdXJMaW5rKSByZXR1cm4gRU1QVFk7XG4gICAgfVxuICAgIC8vIGN1ckxpbmsgZXhpc3RzLCBidXQgaGFzIG5vIHBhdGggLSBzbyBtdXN0IGhhdmUgYSB2YWx1ZVxuICAgIHJldHVybiBbY3VyTGluay52YWx1ZSwgY3VyTGluay5qb3VybmV5XSBhcyBbViwgUGF0aFtdXTtcbiAgfVxuXG4gIHNldChkZXBlbmRlbmNpZXM6IERlcDxLPltdLCB2YWx1ZTogVikge1xuICAgIGlmIChkZXBlbmRlbmNpZXMubGVuZ3RoIDwgMSkgdGhyb3cgbmV3IEtleVNpemUoKTtcbiAgICBsZXQgY3VyTGluazogTGluazxLLCBWPiA9IHRoaXMgYXMgeyBuZXh0OiBXZWFrTWFwPEssIExpbms8SywgVj4+IH07XG4gICAgZm9yIChjb25zdCB7IGVudGl0eSwgcGF0aCB9IG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgbGV0IG5leHRMaW5rID0gY3VyTGluay5uZXh0LmdldChlbnRpdHkpO1xuICAgICAgaWYgKCFuZXh0TGluaykge1xuICAgICAgICBuZXh0TGluayA9IG5ldyBMaW5rPEssIFY+KCk7XG4gICAgICAgIGN1ckxpbmsubmV4dC5zZXQoZW50aXR5LCBuZXh0TGluayk7XG4gICAgICB9XG4gICAgICBjdXJMaW5rLm5leHRQYXRoID0gcGF0aDtcbiAgICAgIGN1ckxpbmsgPSBuZXh0TGluaztcbiAgICB9XG4gICAgLy8gaW4gY2FzZSB0aGVyZSB1c2VkIHRvIGJlIG1vcmVcbiAgICBkZWxldGUgY3VyTGluay5uZXh0UGF0aDtcbiAgICBjdXJMaW5rLnZhbHVlID0gdmFsdWU7XG4gICAgLy8gd2UgY291bGQgcmVjb21wdXRlIHRoaXMgb24gZ2V0LCBidXQgaXQgd291bGQgaGF2ZSBhIGNvc3QgYW5kIHdlIG9wdGltaXplIGZvciBgZ2V0YFxuICAgIGN1ckxpbmsuam91cm5leSA9IGRlcFRvUGF0aHMoZGVwZW5kZW5jaWVzKTtcbiAgfVxufVxuXG5jb25zdCBFTVBUWSA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZF0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdGllczxLIGV4dGVuZHMgb2JqZWN0PihzdGF0ZTogU3RhdGU8Sz4pOiBHZXRFbnRpdHk8Sz4ge1xuICBjb25zdCBlbnRpdHlJc0ltbXV0YWJsZSA9IGlzSW1tdXRhYmxlKHN0YXRlKTtcblxuICBpZiAoZW50aXR5SXNJbW11dGFibGUpIHtcbiAgICByZXR1cm4gKHsga2V5LCBwayB9OiBQYXRoKSA9PiBzdGF0ZS5nZXRJbihba2V5LCBwa10pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoeyBrZXksIHBrIH06IFBhdGgpID0+IHN0YXRlW2tleV0/Lltwa107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcFRvUGF0aHMoZGVwZW5kZW5jaWVzOiBEZXBbXSkge1xuICByZXR1cm4gZGVwZW5kZW5jaWVzLm1hcChkZXAgPT4gZGVwLnBhdGgpO1xufVxuXG5leHBvcnQgdHlwZSBHZXRFbnRpdHk8SyA9IG9iamVjdCB8IHN5bWJvbD4gPSAobG9va3VwOiBQYXRoKSA9PiBLO1xuXG4vKiogTGluayBpbiBhIGNoYWluICovXG5jbGFzcyBMaW5rPEsgZXh0ZW5kcyBvYmplY3QsIFY+IHtcbiAgbmV4dCA9IG5ldyBXZWFrTWFwPEssIExpbms8SywgVj4+KCk7XG4gIGRlY2xhcmUgdmFsdWU/OiBWO1xuICBkZWNsYXJlIGpvdXJuZXk/OiBQYXRoW107XG4gIGRlY2xhcmUgbmV4dFBhdGg/OiBQYXRoO1xufVxuXG5jbGFzcyBLZXlTaXplIGV4dGVuZHMgRXJyb3Ige1xuICBtZXNzYWdlID0gJ0tleXMgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSBtZW1iZXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcDxLID0gb2JqZWN0PiB7XG4gIHBhdGg6IFBhdGg7XG4gIGVudGl0eTogSztcbn1cblxudHlwZSBTdGF0ZTxLIGV4dGVuZHMgb2JqZWN0PiA9XG4gIHwgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgSz4+XG4gIHwgeyBnZXRJbihwYXRoOiBbc3RyaW5nLCBzdHJpbmddKTogSyB9O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxXQUFXLFFBQVEsNkJBQTZCO0FBR3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLGFBQWEsQ0FBc0I7RUFBQTtJQUFBLEtBQzdDQyxJQUFJLEdBQUcsSUFBSUMsT0FBTyxFQUFpQjtFQUFBO0VBRTVDQyxHQUFHLENBQUNDLE1BQVMsRUFBRUMsU0FBZ0MsRUFBRTtJQUMvQyxJQUFJQyxPQUFPLEdBQUcsSUFBSSxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDO0lBQ25DLElBQUksQ0FBQ0UsT0FBTyxFQUFFLE9BQU9DLEtBQUs7SUFDMUIsT0FBT0QsT0FBTyxDQUFDRSxRQUFRLEVBQUU7TUFDdkIsTUFBTUMsVUFBVSxHQUFHSixTQUFTLENBQUNDLE9BQU8sQ0FBQ0UsUUFBUSxDQUFDO01BQzlDRixPQUFPLEdBQUdBLE9BQU8sQ0FBQ0wsSUFBSSxDQUFDRSxHQUFHLENBQUNNLFVBQVUsQ0FBUTtNQUM3QyxJQUFJLENBQUNILE9BQU8sRUFBRSxPQUFPQyxLQUFLO0lBQzVCO0lBQ0E7SUFDQSxPQUFPLENBQUNELE9BQU8sQ0FBQ0ksS0FBSyxFQUFFSixPQUFPLENBQUNLLE9BQU8sQ0FBQztFQUN6QztFQUVBQyxHQUFHLENBQUNDLFlBQXNCLEVBQUVILEtBQVEsRUFBRTtJQUNwQyxJQUFJRyxZQUFZLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxJQUFJQyxPQUFPLEVBQUU7SUFDaEQsSUFBSVQsT0FBbUIsR0FBRyxJQUF3QztJQUNsRSxLQUFLLE1BQU07TUFBRUYsTUFBTTtNQUFFWTtJQUFLLENBQUMsSUFBSUgsWUFBWSxFQUFFO01BQzNDLElBQUlJLFFBQVEsR0FBR1gsT0FBTyxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDO01BQ3ZDLElBQUksQ0FBQ2EsUUFBUSxFQUFFO1FBQ2JBLFFBQVEsR0FBRyxJQUFJQyxJQUFJLEVBQVE7UUFDM0JaLE9BQU8sQ0FBQ0wsSUFBSSxDQUFDVyxHQUFHLENBQUNSLE1BQU0sRUFBRWEsUUFBUSxDQUFDO01BQ3BDO01BQ0FYLE9BQU8sQ0FBQ0UsUUFBUSxHQUFHUSxJQUFJO01BQ3ZCVixPQUFPLEdBQUdXLFFBQVE7SUFDcEI7SUFDQTtJQUNBLE9BQU9YLE9BQU8sQ0FBQ0UsUUFBUTtJQUN2QkYsT0FBTyxDQUFDSSxLQUFLLEdBQUdBLEtBQUs7SUFDckI7SUFDQUosT0FBTyxDQUFDSyxPQUFPLEdBQUdRLFVBQVUsQ0FBQ04sWUFBWSxDQUFDO0VBQzVDO0FBQ0Y7QUFFQSxNQUFNTixLQUFLLEdBQUcsQ0FBQ2EsU0FBUyxFQUFFQSxTQUFTLENBQVU7QUFFN0MsT0FBTyxTQUFTQyxXQUFXLENBQW1CQyxLQUFlLEVBQWdCO0VBQzNFLE1BQU1DLGlCQUFpQixHQUFHeEIsV0FBVyxDQUFDdUIsS0FBSyxDQUFDO0VBRTVDLElBQUlDLGlCQUFpQixFQUFFO0lBQ3JCLE9BQU8sQ0FBQztNQUFFQyxHQUFHO01BQUVDO0lBQVMsQ0FBQyxLQUFLSCxLQUFLLENBQUNJLEtBQUssQ0FBQyxDQUFDRixHQUFHLEVBQUVDLEVBQUUsQ0FBQyxDQUFDO0VBQ3RELENBQUMsTUFBTTtJQUNMLE9BQU8sQ0FBQztNQUFFRCxHQUFHO01BQUVDO0lBQVMsQ0FBQztNQUFBO01BQUEscUJBQUtILEtBQUssQ0FBQ0UsR0FBRyxDQUFDLHFCQUFWLFdBQWFDLEVBQUUsQ0FBQztJQUFBO0VBQ2hEO0FBQ0Y7QUFFQSxPQUFPLFNBQVNOLFVBQVUsQ0FBQ04sWUFBbUIsRUFBRTtFQUM5QyxPQUFPQSxZQUFZLENBQUNjLEdBQUcsQ0FBQ0MsR0FBRyxJQUFJQSxHQUFHLENBQUNaLElBQUksQ0FBQztBQUMxQztBQUlBO0FBQ0EsTUFBTUUsSUFBSSxDQUFzQjtFQUFBO0lBQUEsS0FDOUJqQixJQUFJLEdBQUcsSUFBSUMsT0FBTyxFQUFpQjtFQUFBO0FBSXJDO0FBRUEsTUFBTWEsT0FBTyxTQUFTYyxLQUFLLENBQUM7RUFBQTtJQUFBO0lBQUEsS0FDMUJDLE9BQU8sR0FBRyx1Q0FBdUM7RUFBQTtBQUNuRCJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0ltbXV0YWJsZSIsIldlYWtFbnRpdHlNYXAiLCJjb25zdHJ1Y3RvciIsIm5leHQiLCJXZWFrTWFwIiwiZ2V0IiwiZW50aXR5IiwiZ2V0RW50aXR5IiwiY3VyTGluayIsIkVNUFRZIiwibmV4dFBhdGgiLCJuZXh0RW50aXR5IiwidmFsdWUiLCJqb3VybmV5Iiwic2V0IiwiZGVwZW5kZW5jaWVzIiwibGVuZ3RoIiwiS2V5U2l6ZSIsInBhdGgiLCJuZXh0TGluayIsIkxpbmsiLCJkZXBUb1BhdGhzIiwidW5kZWZpbmVkIiwiZ2V0RW50aXRpZXMiLCJzdGF0ZSIsImVudGl0eUlzSW1tdXRhYmxlIiwia2V5IiwicGsiLCJnZXRJbiIsIl9zdGF0ZSRrZXkiLCJtYXAiLCJkZXAiLCJFcnJvciIsImFyZ3MiLCJtZXNzYWdlIl0sInNvdXJjZXMiOlsiLi4vc3JjL1dlYWtFbnRpdHlNYXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNJbW11dGFibGUgfSBmcm9tICcuL3NjaGVtYXMvSW1tdXRhYmxlVXRpbHMuanMnO1xuaW1wb3J0IHsgUGF0aCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKiogTWFwcyBlbnRpdHkgZGVwZW5kZW5jaWVzIHRvIGEgdmFsdWUgKHVzdWFsbHkgdGhlaXIgZGVub3JtYWxpemVkIGZvcm0pXG4gKlxuICogRGVwZW5kZW5jaWVzIHN0b3JlIGBQYXRoYCB0byBlbmFibGUgcXVpY2sgdHJhdmVyc2FsIHVzaW5nIG9ubHkgYFN0YXRlYFxuICogSWYgKmFueSogbWVtYmVycyBvZiB0aGUgZGVwZW5kZW5jeSBnZXQgY2xlYW5lZCB1cCwgc28gZG9lcyB0aGF0IGtleS92YWx1ZSBwYWlyIGdldCByZW1vdmVkLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXZWFrRW50aXR5TWFwPEsgZXh0ZW5kcyBvYmplY3QsIFY+IHtcbiAgcmVhZG9ubHkgbmV4dCA9IG5ldyBXZWFrTWFwPEssIExpbms8SywgVj4+KCk7XG5cbiAgZ2V0KGVudGl0eTogSywgZ2V0RW50aXR5OiBHZXRFbnRpdHk8SyB8IHN5bWJvbD4pIHtcbiAgICBsZXQgY3VyTGluayA9IHRoaXMubmV4dC5nZXQoZW50aXR5KTtcbiAgICBpZiAoIWN1ckxpbmspIHJldHVybiBFTVBUWTtcbiAgICB3aGlsZSAoY3VyTGluay5uZXh0UGF0aCkge1xuICAgICAgY29uc3QgbmV4dEVudGl0eSA9IGdldEVudGl0eShjdXJMaW5rLm5leHRQYXRoKTtcbiAgICAgIGN1ckxpbmsgPSBjdXJMaW5rLm5leHQuZ2V0KG5leHRFbnRpdHkgYXMgYW55KTtcbiAgICAgIGlmICghY3VyTGluaykgcmV0dXJuIEVNUFRZO1xuICAgIH1cbiAgICAvLyBjdXJMaW5rIGV4aXN0cywgYnV0IGhhcyBubyBwYXRoIC0gc28gbXVzdCBoYXZlIGEgdmFsdWVcbiAgICByZXR1cm4gW2N1ckxpbmsudmFsdWUsIGN1ckxpbmsuam91cm5leV0gYXMgW1YsIFBhdGhbXV07XG4gIH1cblxuICBzZXQoZGVwZW5kZW5jaWVzOiBEZXA8Sz5bXSwgdmFsdWU6IFYpIHtcbiAgICBpZiAoZGVwZW5kZW5jaWVzLmxlbmd0aCA8IDEpIHRocm93IG5ldyBLZXlTaXplKCk7XG4gICAgbGV0IGN1ckxpbms6IExpbms8SywgVj4gPSB0aGlzIGFzIHsgbmV4dDogV2Vha01hcDxLLCBMaW5rPEssIFY+PiB9O1xuICAgIGZvciAoY29uc3QgeyBlbnRpdHksIHBhdGggfSBvZiBkZXBlbmRlbmNpZXMpIHtcbiAgICAgIGxldCBuZXh0TGluayA9IGN1ckxpbmsubmV4dC5nZXQoZW50aXR5KTtcbiAgICAgIGlmICghbmV4dExpbmspIHtcbiAgICAgICAgbmV4dExpbmsgPSBuZXcgTGluazxLLCBWPigpO1xuICAgICAgICBjdXJMaW5rLm5leHQuc2V0KGVudGl0eSwgbmV4dExpbmspO1xuICAgICAgfVxuICAgICAgY3VyTGluay5uZXh0UGF0aCA9IHBhdGg7XG4gICAgICBjdXJMaW5rID0gbmV4dExpbms7XG4gICAgfVxuICAgIC8vIGluIGNhc2UgdGhlcmUgdXNlZCB0byBiZSBtb3JlXG4gICAgZGVsZXRlIGN1ckxpbmsubmV4dFBhdGg7XG4gICAgY3VyTGluay52YWx1ZSA9IHZhbHVlO1xuICAgIC8vIHdlIGNvdWxkIHJlY29tcHV0ZSB0aGlzIG9uIGdldCwgYnV0IGl0IHdvdWxkIGhhdmUgYSBjb3N0IGFuZCB3ZSBvcHRpbWl6ZSBmb3IgYGdldGBcbiAgICBjdXJMaW5rLmpvdXJuZXkgPSBkZXBUb1BhdGhzKGRlcGVuZGVuY2llcyk7XG4gIH1cbn1cblxuY29uc3QgRU1QVFkgPSBbdW5kZWZpbmVkLCB1bmRlZmluZWRdIGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXRpZXM8SyBleHRlbmRzIG9iamVjdD4oc3RhdGU6IFN0YXRlPEs+KTogR2V0RW50aXR5PEs+IHtcbiAgY29uc3QgZW50aXR5SXNJbW11dGFibGUgPSBpc0ltbXV0YWJsZShzdGF0ZSk7XG5cbiAgaWYgKGVudGl0eUlzSW1tdXRhYmxlKSB7XG4gICAgcmV0dXJuICh7IGtleSwgcGsgfTogUGF0aCkgPT4gc3RhdGUuZ2V0SW4oW2tleSwgcGtdKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKHsga2V5LCBwayB9OiBQYXRoKSA9PiBzdGF0ZVtrZXldPy5bcGtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXBUb1BhdGhzKGRlcGVuZGVuY2llczogRGVwW10pIHtcbiAgcmV0dXJuIGRlcGVuZGVuY2llcy5tYXAoZGVwID0+IGRlcC5wYXRoKTtcbn1cblxuZXhwb3J0IHR5cGUgR2V0RW50aXR5PEsgPSBvYmplY3QgfCBzeW1ib2w+ID0gKGxvb2t1cDogUGF0aCkgPT4gSztcblxuLyoqIExpbmsgaW4gYSBjaGFpbiAqL1xuY2xhc3MgTGluazxLIGV4dGVuZHMgb2JqZWN0LCBWPiB7XG4gIG5leHQgPSBuZXcgV2Vha01hcDxLLCBMaW5rPEssIFY+PigpO1xuICBkZWNsYXJlIHZhbHVlPzogVjtcbiAgZGVjbGFyZSBqb3VybmV5PzogUGF0aFtdO1xuICBkZWNsYXJlIG5leHRQYXRoPzogUGF0aDtcbn1cblxuY2xhc3MgS2V5U2l6ZSBleHRlbmRzIEVycm9yIHtcbiAgbWVzc2FnZSA9ICdLZXlzIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgbWVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXA8SyA9IG9iamVjdD4ge1xuICBwYXRoOiBQYXRoO1xuICBlbnRpdHk6IEs7XG59XG5cbnR5cGUgU3RhdGU8SyBleHRlbmRzIG9iamVjdD4gPVxuICB8IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIEs+PlxuICB8IHsgZ2V0SW4ocGF0aDogW3N0cmluZywgc3RyaW5nXSk6IEsgfTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVyxRQUFRLDZCQUE2QjtBQUd6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNQyxhQUFhLENBQXNCO0VBQUFDLFlBQUE7SUFBQSxLQUM3Q0MsSUFBSSxHQUFHLElBQUlDLE9BQU8sRUFBaUI7RUFBQTtFQUU1Q0MsR0FBR0EsQ0FBQ0MsTUFBUyxFQUFFQyxTQUFnQyxFQUFFO0lBQy9DLElBQUlDLE9BQU8sR0FBRyxJQUFJLENBQUNMLElBQUksQ0FBQ0UsR0FBRyxDQUFDQyxNQUFNLENBQUM7SUFDbkMsSUFBSSxDQUFDRSxPQUFPLEVBQUUsT0FBT0MsS0FBSztJQUMxQixPQUFPRCxPQUFPLENBQUNFLFFBQVEsRUFBRTtNQUN2QixNQUFNQyxVQUFVLEdBQUdKLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDRSxRQUFRLENBQUM7TUFDOUNGLE9BQU8sR0FBR0EsT0FBTyxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ00sVUFBVSxDQUFRO01BQzdDLElBQUksQ0FBQ0gsT0FBTyxFQUFFLE9BQU9DLEtBQUs7SUFDNUI7SUFDQTtJQUNBLE9BQU8sQ0FBQ0QsT0FBTyxDQUFDSSxLQUFLLEVBQUVKLE9BQU8sQ0FBQ0ssT0FBTyxDQUFDO0VBQ3pDO0VBRUFDLEdBQUdBLENBQUNDLFlBQXNCLEVBQUVILEtBQVEsRUFBRTtJQUNwQyxJQUFJRyxZQUFZLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxJQUFJQyxPQUFPLEVBQUU7SUFDaEQsSUFBSVQsT0FBbUIsR0FBRyxJQUF3QztJQUNsRSxLQUFLLE1BQU07TUFBRUYsTUFBTTtNQUFFWTtJQUFLLENBQUMsSUFBSUgsWUFBWSxFQUFFO01BQzNDLElBQUlJLFFBQVEsR0FBR1gsT0FBTyxDQUFDTCxJQUFJLENBQUNFLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDO01BQ3ZDLElBQUksQ0FBQ2EsUUFBUSxFQUFFO1FBQ2JBLFFBQVEsR0FBRyxJQUFJQyxJQUFJLEVBQVE7UUFDM0JaLE9BQU8sQ0FBQ0wsSUFBSSxDQUFDVyxHQUFHLENBQUNSLE1BQU0sRUFBRWEsUUFBUSxDQUFDO01BQ3BDO01BQ0FYLE9BQU8sQ0FBQ0UsUUFBUSxHQUFHUSxJQUFJO01BQ3ZCVixPQUFPLEdBQUdXLFFBQVE7SUFDcEI7SUFDQTtJQUNBLE9BQU9YLE9BQU8sQ0FBQ0UsUUFBUTtJQUN2QkYsT0FBTyxDQUFDSSxLQUFLLEdBQUdBLEtBQUs7SUFDckI7SUFDQUosT0FBTyxDQUFDSyxPQUFPLEdBQUdRLFVBQVUsQ0FBQ04sWUFBWSxDQUFDO0VBQzVDO0FBQ0Y7QUFFQSxNQUFNTixLQUFLLEdBQUcsQ0FBQ2EsU0FBUyxFQUFFQSxTQUFTLENBQVU7QUFFN0MsT0FBTyxTQUFTQyxXQUFXQSxDQUFtQkMsS0FBZSxFQUFnQjtFQUMzRSxNQUFNQyxpQkFBaUIsR0FBR3pCLFdBQVcsQ0FBQ3dCLEtBQUssQ0FBQztFQUU1QyxJQUFJQyxpQkFBaUIsRUFBRTtJQUNyQixPQUFPLENBQUM7TUFBRUMsR0FBRztNQUFFQztJQUFTLENBQUMsS0FBS0gsS0FBSyxDQUFDSSxLQUFLLENBQUMsQ0FBQ0YsR0FBRyxFQUFFQyxFQUFFLENBQUMsQ0FBQztFQUN0RCxDQUFDLE1BQU07SUFDTCxPQUFPLENBQUM7TUFBRUQsR0FBRztNQUFFQztJQUFTLENBQUM7TUFBQSxJQUFBRSxVQUFBO01BQUEsUUFBQUEsVUFBQSxHQUFLTCxLQUFLLENBQUNFLEdBQUcsQ0FBQyxxQkFBVkcsVUFBQSxDQUFhRixFQUFFLENBQUM7SUFBQTtFQUNoRDtBQUNGO0FBRUEsT0FBTyxTQUFTTixVQUFVQSxDQUFDTixZQUFtQixFQUFFO0VBQzlDLE9BQU9BLFlBQVksQ0FBQ2UsR0FBRyxDQUFDQyxHQUFHLElBQUlBLEdBQUcsQ0FBQ2IsSUFBSSxDQUFDO0FBQzFDO0FBSUE7QUFDQSxNQUFNRSxJQUFJLENBQXNCO0VBQUFsQixZQUFBO0lBQUEsS0FDOUJDLElBQUksR0FBRyxJQUFJQyxPQUFPLEVBQWlCO0VBQUE7QUFJckM7QUFFQSxNQUFNYSxPQUFPLFNBQVNlLEtBQUssQ0FBQztFQUFBOUIsWUFBQSxHQUFBK0IsSUFBQTtJQUFBLFNBQUFBLElBQUE7SUFBQSxLQUMxQkMsT0FBTyxHQUFHLHVDQUF1QztFQUFBO0FBQ25EIn0=
{
"name": "@rest-hooks/normalizr",
"version": "10.0.0",
"version": "10.0.1",
"description": "Normalizes and denormalizes JSON according to schema for Redux and Flux applications",

@@ -100,4 +100,4 @@ "homepage": "https://resthooks.io/docs/concepts/normalization",

"devDependencies": {
"@babel/cli": "7.20.7",
"@babel/core": "7.20.12",
"@babel/cli": "7.21.0",
"@babel/core": "7.21.0",
"@types/babel__core": "^7",

@@ -119,3 +119,3 @@ "downlevel-dts": "^0.10.0",

},
"gitHead": "8b0eda4d5e129ba0a02d704a65cdfeb402bafc4f"
"gitHead": "80c7f846fbd77c58b61ba92941dc0514e266f9a9"
}

@@ -8,3 +8,3 @@ import { SnapshotInterface } from './SnapshotInterface.js';

/** Defines a networking endpoint */
export interface EndpointInterface<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined, M extends true | undefined = true | undefined> extends EndpointExtraOptions<F> {
export interface EndpointInterface<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined, M extends boolean | undefined = boolean | undefined> extends EndpointExtraOptions<F> {
(...args: Parameters<F>): InferReturn<F, S>;

@@ -46,3 +46,3 @@ key(...args: Parameters<F>): string;

/** For retrieval requests */
export type ReadEndpoint<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined> = EndpointInterface<F, S, undefined>;
export type ReadEndpoint<F extends FetchFunction = FetchFunction, S extends Schema | undefined = Schema | undefined> = EndpointInterface<F, S, undefined | false>;
//# sourceMappingURL=EndpointInterface.d.ts.map

@@ -7,3 +7,3 @@ import { Schema, Serializable, EntityInterface, NormalizedIndex, SchemaClass } from './interface.js';

}
export type AbstractInstanceType<T> = T extends {
export type AbstractInstanceType<T> = T extends new (...args: any) => infer U ? U : T extends {
prototype: infer U;

@@ -10,0 +10,0 @@ } ? U : never;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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