react-odontogram 0.5.3 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +4 -4
package/dist/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
:root{--dark-blue: #3e5edc;--base-blue: #8a98be;--light-blue: #c6ccf8}#storybook-root{width:100%;height:100%}.dark-template{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#0b0d1a}.Odontogram{--odontogram-tooltip-bg: rgba(0, 0, 0, .85);--odontogram-tooltip-fg: #fff}.Odontogram.dark-theme{--odontogram-tooltip-bg: rgba(255, 255, 255, .95);--odontogram-tooltip-fg: #000}.Odontogram.dark-theme svg{--dark-blue: #aab6ff;--base-blue: #d0d5f6;--light-blue: #5361e6;background-color:#0b0d1a;color-scheme:dark;color:#e4e6ef}.Odontogram svg{color:var(--base-blue);fill:none;transition:all ease-in 125ms}.Odontogram[data-read-only=true]{pointer-events:none}.Odontogram svg path:nth-of-type(2){opacity:0;transition:all ease-in .2s}.Odontogram svg path[data-colored=true]{opacity:1!important;transition:none}.Odontogram g.selected path:nth-of-type(2){fill:var(--light-blue);opacity:1}.Odontogram g.selected path:first-of-type{transition:stroke 1s ease}.Odontogram g.selected:hover path:first-of-type{stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-dasharray:4 4;stroke-dashoffset:0;transition:stroke 5s ease;animation:dash-move 1s linear infinite;animation-delay:1s;filter:drop-shadow(0 0 8px currentColor);-webkit-filter:drop-shadow(0 0 8px currentColor)}@keyframes dash-move{to{stroke-dashoffset:8}}.Odontogram g.selected{transition:all .3s ease;color:var(--dark-blue)}.Odontogram g.selected path{stroke-width:1.5}.Odontogram g[class^=teeth-]:hover path:nth-of-type(2){fill:var(--light-blue);opacity:1}.odontogram-tooltip{box-shadow:0 2px 8px #00000026;backdrop-filter:blur(4px)}.Odontogram g[role=option]:focus-visible{outline:4px solid var(--dark-blue)!important}
|
|
2
|
-
/*# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3N0eWxlcy5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIjpyb290IHtcblx0LS1kYXJrLWJsdWU6ICMzZTVlZGM7XG5cdC0tYmFzZS1ibHVlOiAjOGE5OGJlO1xuXHQtLWxpZ2h0LWJsdWU6ICNjNmNjZjg7XG59XG5cbiNzdG9yeWJvb2stcm9vdCB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5kYXJrLXRlbXBsYXRlIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6ICMwYjBkMWE7XG59XG5cbi5PZG9udG9ncmFtIHtcblx0LS1vZG9udG9ncmFtLXRvb2x0aXAtYmc6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG5cdC0tb2RvbnRvZ3JhbS10b29sdGlwLWZnOiAjZmZmO1xufVxuXG4uT2RvbnRvZ3JhbS5kYXJrLXRoZW1lIHtcblx0LS1vZG9udG9ncmFtLXRvb2x0aXAtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG5cdC0tb2RvbnRvZ3JhbS10b29sdGlwLWZnOiAjMDAwO1xufVxuXG4uT2RvbnRvZ3JhbS5kYXJrLXRoZW1lIHN2ZyB7XG5cdC0tZGFyay1ibHVlOiAjYWFiNmZmO1xuXHQtLWJhc2UtYmx1ZTogI2QwZDVmNjtcblx0LS1saWdodC1ibHVlOiAjNTM2MWU2O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMGIwZDFhO1xuXHRjb2xvci1zY2hlbWU6IGRhcms7XG5cdGNvbG9yOiAjZTRlNmVmO1xufVxuXG4uT2RvbnRvZ3JhbSBzdmcge1xuXHRjb2xvcjogdmFyKC0tYmFzZS1ibHVlKTtcblx0ZmlsbDogbm9uZTtcblx0dHJhbnNpdGlvbjogYWxsIGVhc2UtaW4gMTI1bXM7XG59XG5cbi5PZG9udG9ncmFtW2RhdGEtcmVhZC1vbmx5PVwidHJ1ZVwiXSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uT2RvbnRvZ3JhbSBzdmcgcGF0aDpudGgtb2YtdHlwZSgyKSB7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IGFsbCBlYXNlLWluIDIwMG1zO1xufVxuXG4uT2RvbnRvZ3JhbSBzdmcgcGF0aFtkYXRhLWNvbG9yZWQ9XCJ0cnVlXCJdIHtcblx0b3BhY2l0eTogMSAhaW1wb3J0YW50O1xuXHR0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uT2RvbnRvZ3JhbSBnLnNlbGVjdGVkIHBhdGg6bnRoLW9mLXR5cGUoMikge1xuXHRmaWxsOiB2YXIoLS1saWdodC1ibHVlKTtcblx0b3BhY2l0eTogMTtcbn1cblxuLk9kb250b2dyYW0gZy5zZWxlY3RlZCBwYXRoOmZpcnN0LW9mLXR5cGUge1xuXHR0cmFuc2l0aW9uOiBzdHJva2UgMXMgZWFzZTtcbn1cblxuLk9kb250b2dyYW0gZy5zZWxlY3RlZDpob3ZlciBwYXRoOmZpcnN0LW9mLXR5cGUge1xuXHRzdHJva2U6IGN1cnJlbnRDb2xvcjtcblx0c3Ryb2tlLXdpZHRoOiAxO1xuXHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdHN0cm9rZS1kYXNoYXJyYXk6IDQgNDtcblx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cdHRyYW5zaXRpb246IHN0cm9rZSA1cyBlYXNlO1xuXHRhbmltYXRpb246IGRhc2gtbW92ZSAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdGFuaW1hdGlvbi1kZWxheTogMXM7XG5cdGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDhweCBjdXJyZW50Q29sb3IpO1xuXHQtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDhweCBjdXJyZW50Q29sb3IpO1xufVxuXG5Aa2V5ZnJhbWVzIGRhc2gtbW92ZSB7XG5cdHRvIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogODtcblx0fVxufVxuXG4uT2RvbnRvZ3JhbSBnLnNlbGVjdGVkIHtcblx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblx0Y29sb3I6IHZhcigtLWRhcmstYmx1ZSk7XG59XG5cbi5PZG9udG9ncmFtIGcuc2VsZWN0ZWQgcGF0aCB7XG5cdHN0cm9rZS13aWR0aDogMS41O1xufVxuXG4uT2RvbnRvZ3JhbSBnW2NsYXNzXj1cInRlZXRoLVwiXTpob3ZlciBwYXRoOm50aC1vZi10eXBlKDIpIHtcblx0ZmlsbDogdmFyKC0tbGlnaHQtYmx1ZSk7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5vZG9udG9ncmFtLXRvb2x0aXAge1xuXHRib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcblx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbi5PZG9udG9ncmFtIGdbcm9sZT1cIm9wdGlvblwiXTpmb2N1cy12aXNpYmxlIHtcblx0b3V0bGluZTogNHB4IHNvbGlkIHZhcigtLWRhcmstYmx1ZSkgIWltcG9ydGFudDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE1BQ0MsYUFBYSxRQUNiLGFBQWEsUUFDYixjQUFjLE9BQ2YsQ0FFQSxDQUFDLGVBQ0EsTUFBTyxLQUNQLE9BQVEsSUFDVCxDQUVBLENBQUMsY0FDQSxNQUFPLEtBQ1AsT0FBUSxLQUNSLFFBQVMsS0FDVCxnQkFBaUIsT0FDakIsWUFBYSxPQUNiLGlCQUFrQixPQUNuQixDQUVBLENBQUMsV0FDQSx5QkFBeUIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUN2Qyx5QkFBeUIsSUFDMUIsQ0FFQSxDQUxDLFVBS1UsQ0FBQyxXQUNYLHlCQUF5QixLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQzdDLHlCQUF5QixJQUMxQixDQUVBLENBVkMsVUFVVSxDQUxDLFdBS1csSUFDdEIsYUFBYSxRQUNiLGFBQWEsUUFDYixjQUFjLFFBQ2QsaUJBQWtCLFFBQ2xCLGFBQWMsS0FDZCxNQUFPLE9BQ1IsQ0FFQSxDQW5CQyxXQW1CVyxJQUNYLE1BQU8sSUFBSSxhQUNYLEtBQU0sS0FDTixXQUFZLElBQUksUUFBUSxLQUN6QixDQUVBLENBekJDLFVBeUJVLENBQUMscUJBQ1gsZUFBZ0IsSUFDakIsQ0FFQSxDQTdCQyxXQTZCVyxJQUFJLElBQUksZ0JBQ25CLFFBQVMsRUFDVCxXQUFZLElBQUksUUFBUSxHQUN6QixDQUVBLENBbENDLFdBa0NXLElBQUksSUFBSSxDQUFDLG1CQUNwQixRQUFTLFlBQ1QsV0FBWSxJQUNiLENBRUEsQ0F2Q0MsV0F1Q1csQ0FBQyxDQUFDLFNBQVMsSUFBSSxnQkFDMUIsS0FBTSxJQUFJLGNBQ1YsUUFBUyxDQUNWLENBRUEsQ0E1Q0MsV0E0Q1csQ0FBQyxDQUxDLFNBS1MsSUFBSSxlQUMxQixXQUFZLE9BQU8sR0FBRyxJQUN2QixDQUVBLENBaERDLFdBZ0RXLENBQUMsQ0FUQyxRQVNRLE9BQU8sSUFBSSxlQUNoQyxPQUFRLGFBQ1IsYUFBYyxFQUNkLGVBQWdCLE1BQ2hCLGlCQUFrQixFQUFFLEVBQ3BCLGtCQUFtQixFQUNuQixXQUFZLE9BQU8sR0FBRyxLQUN0QixVQUFXLFVBQVUsR0FBRyxPQUFPLFNBQy9CLGdCQUFpQixHQUNqQixPQUFRLFlBQVksRUFBRSxFQUFFLElBQUksY0FDNUIsZUFBZ0IsWUFBWSxFQUFFLEVBQUUsSUFBSSxhQUNyQyxDQUVBLFdBTlksVUFPWCxHQUNDLGtCQUFtQixDQUNwQixDQUNELENBRUEsQ0FuRUMsV0FtRVcsQ0FBQyxDQTVCQyxTQTZCYixXQUFZLElBQUksSUFBSyxLQUNyQixNQUFPLElBQUksWUFDWixDQUVBLENBeEVDLFdBd0VXLENBQUMsQ0FqQ0MsU0FpQ1MsS0FDdEIsYUFBYyxHQUNmLENBRUEsQ0E1RUMsV0E0RVcsQ0FBQyxDQUFDLGNBQWdCLE9BQU8sSUFBSSxnQkFDeEMsS0FBTSxJQUFJLGNBQ1YsUUFBUyxDQUNWLENBRUEsQ0FBQyxtQkFDQSxXQUFZLEVBQUUsSUFBSSxJQUFJLFVBQ3RCLGdCQUFpQixLQUFLLElBQ3ZCLENBRUEsQ0F0RkMsV0FzRlcsQ0FBQyxDQUFDLFlBQWMsZUFDM0IsUUFBUyxJQUFJLE1BQU0sSUFBSSxzQkFDeEIiLAogICJuYW1lcyI6IFtdCn0K */
|
package/dist/index.d.mts
CHANGED
|
@@ -62,7 +62,7 @@ interface OdontogramProps {
|
|
|
62
62
|
teethConditions?: ToothConditionGroup[];
|
|
63
63
|
readOnly?: boolean;
|
|
64
64
|
showLabels?: boolean;
|
|
65
|
-
layout?:
|
|
65
|
+
layout?: "circle" | "square";
|
|
66
66
|
styles?: CSSProperties;
|
|
67
67
|
}
|
|
68
68
|
type ToothConditionGroup = {
|
|
@@ -72,8 +72,8 @@ type ToothConditionGroup = {
|
|
|
72
72
|
fillColor: string;
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
type Layout =
|
|
76
|
-
type ShowHalf =
|
|
75
|
+
type Layout = "circle" | "square";
|
|
76
|
+
type ShowHalf = "full" | "upper" | "lower";
|
|
77
77
|
declare function getViewBox(layout: Layout, showHalf: ShowHalf): string;
|
|
78
78
|
declare const Odontogram: FC<OdontogramProps>;
|
|
79
79
|
|
package/dist/index.d.ts
CHANGED
|
@@ -62,7 +62,7 @@ interface OdontogramProps {
|
|
|
62
62
|
teethConditions?: ToothConditionGroup[];
|
|
63
63
|
readOnly?: boolean;
|
|
64
64
|
showLabels?: boolean;
|
|
65
|
-
layout?:
|
|
65
|
+
layout?: "circle" | "square";
|
|
66
66
|
styles?: CSSProperties;
|
|
67
67
|
}
|
|
68
68
|
type ToothConditionGroup = {
|
|
@@ -72,8 +72,8 @@ type ToothConditionGroup = {
|
|
|
72
72
|
fillColor: string;
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
type Layout =
|
|
76
|
-
type ShowHalf =
|
|
75
|
+
type Layout = "circle" | "square";
|
|
76
|
+
type ShowHalf = "full" | "upper" | "lower";
|
|
77
77
|
declare function getViewBox(layout: Layout, showHalf: ShowHalf): string;
|
|
78
78
|
declare const Odontogram: FC<OdontogramProps>;
|
|
79
79
|
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var A=Object.defineProperty;var M1=Object.getOwnPropertyDescriptor;var P1=Object.getOwnPropertyNames;var x1=Object.prototype.hasOwnProperty;var v1=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},w1=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of P1(e))!x1.call(t,n)&&n!==o&&A(t,n,{get:()=>e[n],enumerable:!(s=M1(e,n))||s.enumerable});return t};var k1=t=>w1(A({},"__esModule",{value:!0}),t);var R1={};v1(R1,{Odontogram:()=>p1,default:()=>c1,getViewBox:()=>C1});module.exports=k1(R1);var l=require("react");var M=require("react/jsx-runtime"),Y=({name:t,outlinePath:e,shadowPath:o,lineHighlightPath:s,selected:n,condition:i,readOnly:h,onClick:C,onKeyDown:c,onHover:b,onFocus:P,onLeave:x,onBlur:u,children:d})=>{let v=(i==null?void 0:i.outlineColor)??"currentColor",w=(i==null?void 0:i.fillColor)??"currentColor";return(0,M.jsxs)("g",{className:`${t} ${n?"selected":""}`,tabIndex:h?-1:0,onClick:h?void 0:()=>C==null?void 0:C(t),onKeyDown:h?void 0:f=>c==null?void 0:c(f,t),onMouseEnter:b?f=>b(t,f):void 0,onFocus:P?f=>P(t,f):void 0,onMouseLeave:x,onBlur:u,role:"option","aria-label":`Tooth ${t.replace("teeth-","")}`,"aria-selected":n,"aria-disabled":h,style:{cursor:h?"default":"pointer",color:v},children:[d,(0,M.jsx)("path",{stroke:v,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",d:e}),(0,M.jsx)("path",{fill:w,d:o,"data-colored":i?"true":void 0,style:{opacity:i?1:void 0}}),Array.isArray(s)?s.map(f=>(0,M.jsx)("path",{stroke:v,strokeLinecap:"round",strokeLinejoin:"round",d:f},f)):(0,M.jsx)("path",{stroke:v,strokeLinecap:"round",strokeLinejoin:"round",d:s})]})};var T=require("react"),g=require("react/jsx-runtime"),t1=12,B=8,T1=(t,e,o)=>Math.min(Math.max(t,e),o),L1=(t,e)=>{if(t)return typeof t=="function"?t(e):t};function e1({active:t,payload:e,position:o,content:s}){let n=(0,T.useRef)(null),[i,h]=(0,T.useState)(null);return(0,T.useEffect)(()=>{if(!(t&&n.current&&o))return;let C=n.current.getBoundingClientRect(),{x:c,y:b}=o,P=Math.max(B,window.innerWidth-C.width-B),x=T1(c-C.width/2,B,P),u=b-C.height-t1,d=u<B?b+t1:u;h({left:x,top:d})},[t,o,s,e]),t&&e?(0,g.jsxs)("div",{ref:n,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"var(--odontogram-tooltip-bg, rgba(0,0,0,0.85))",color:"var(--odontogram-tooltip-fg, #fff)",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,left:(i==null?void 0:i.left)??-9999,top:(i==null?void 0:i.top)??-9999,opacity:i?1:0,transition:"opacity 0.15s ease"},children:[L1(s,e)??(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("div",{children:["Tooth: ",e.notations.fdi]}),(0,g.jsxs)("div",{children:["Type: ",e.type]}),(0,g.jsxs)("div",{children:["Universal: ",e.notations.universal,", Palmer:"," ",e.notations.palmer]})]}),(0,g.jsx)("div",{className:"odontogram-tooltip-arrow",style:{position:"absolute",bottom:"-6px",left:"50%",transform:"translateX(-50%)",width:0,height:0,borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid var(--odontogram-tooltip-bg, rgba(0, 0, 0, 0.85))"}})]}):null}var o1=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}],r1=[{name:"1",type:"Central Incisor",outlinePath:"M397.992 51.339C396.126 51.1841 393.495 50.5617 393.495 50.5617C393.495 50.5617 388.804 49.6453 386.903 48.5677C384.873 47.4162 382.213 45.7195 381.838 44.0514C381.487 42.4836 381.216 40.0226 381.478 38.243L381.503 38.0727C381.82 35.9287 382.29 32.7452 382.642 29.3191C382.817 27.6207 382.583 26.5905 383.332 24.0911C384.118 21.4652 384.555 20.2179 385.09 19.2766C385.648 18.2937 386.375 17.5159 386.841 16.5072C387.593 14.8802 388.91 12.8822 390.18 11.3573C390.902 10.4905 391.602 9.74461 392.207 9.11454C393.08 8.20669 394.629 6.4959 395.556 5.46719C396.866 4.01329 398.196 2.73364 399.344 2.32547C400.382 1.95648 401.652 1.80289 402.575 1.56192C403.741 1.25751 404.7 1.04041 406.481 1.59988C407.789 2.01078 408.79 2.15093 410.175 3.6958C411.909 5.63147 412.563 6.70795 413.119 7.75747C414.007 9.43534 415.224 11.7273 416.073 13.2435C416.584 14.1554 417.935 15.8859 419.471 20.7919C420.739 24.8422 421.417 27.4048 421.716 28.4564C422.057 29.6562 422.602 31.5093 422.815 33.7313C423.154 37.2832 423.699 40.0978 423.625 43.1077C423.562 45.6958 423.671 47.3905 422.667 48.4567C421.852 49.3227 420.962 50.1403 419.837 50.5815C418.166 51.2367 416.619 51.7043 415.323 51.8901C414.174 52.0548 409.33 52.1292 405.791 51.8445C404.461 51.7375 402.725 51.7319 397.992 51.339Z",shadowPath:"M410.562 10.2393C426.588 45.9698 419.344 47.3813 414.383 48.2436C409.421 49.1058 390.229 45.8566 389.156 45.6013C388.783 45.4122 381.586 45.5268 385.27 28.9613C388.307 15.307 399.25 6.5008 400.149 5.94125C402.84 4.2654 407.678 3.81025 410.562 10.2393Z",lineHighlightPath:"M386.65 40.1568C386.979 40.5013 390.29 43.0038 394.2 44.879C396.819 46.1347 400.79 46.3275 403.707 46.4582C411.145 46.8422 412.214 45.7688 414.456 45.2944C414.934 45.1809 415.23 45.0675 415.965 44.8037"},{name:"2",type:"Lateral Incisor",outlinePath:"M339.362 5.90227C342.255 3.71416 346.038 1.25774 347.807 1.15688C351.997 0.918049 355.515 3.10622 357.625 6.73623C361.668 13.6941 364.043 21.5609 365.951 29.3396C366.793 32.7727 371.064 45.061 366.866 47.897C360.805 55.8472 336.444 55.8684 329.833 49.9979C323.057 43.9805 325.09 29.7675 327.77 22.2921C329.981 16.1281 334.178 9.82403 339.362 5.90227Z",shadowPath:"M340.341 10.7533C342.637 9.01674 345.639 7.06721 347.044 6.98717C350.369 6.79762 353.161 8.53425 354.835 11.4152C358.044 16.9373 359.929 23.1807 361.443 29.3542C362.112 32.0788 365.502 41.8314 362.169 44.0822C357.359 50.3918 338.025 50.4086 332.779 45.7496C327.401 40.9738 329.014 29.6938 331.142 23.761C332.896 18.869 336.227 13.8658 340.341 10.7533Z",lineHighlightPath:"M334.964 39.2131C335.743 39.9998 343.128 45.3167 349.494 44.3903C352.66 43.9297 359.564 41.7577 360.67 41.2767"},{name:"3",type:"Canine",outlinePath:"M275.285 36.7016C275.461 34.8357 275.849 18.5473 286.018 5.57867C288.971 1.81325 299.434 0.829071 303.316 3.82989C310.408 9.31139 313.426 28.9506 310.396 37.4059C308.951 41.4393 297.215 55.4587 291.42 52.8366C285.975 50.3727 274.6 43.9742 275.285 36.7016Z",shadowPath:"M301.598 7.93945C307.291 12.3406 309.864 28.5513 307.396 35.4392C306.212 38.7427 296.601 50.225 291.854 48.0774C287.984 46.3265 281.376 42.5321 279.505 38.5086C275.156 29.1535 286.937 -3.39247 301.598 7.93945Z",lineHighlightPath:"M281.255 35.7132C281.766 36.2349 283.933 38.6225 286.307 40.4563C289.837 43.1816 290.269 43.5706 291.974 44.5673C293.243 45.3091 296.192 46.2724 304.782 36.2803 M287.379 19.4012C287.632 19.2016 291.839 21.1066 296.933 17.499"},{name:"4",type:"First Premolar",outlinePath:"M236.98 4.87854C231.34 8.91989 227.474 33.8121 227.41 33.9971C227.423 35.3948 224.346 44.1157 245.059 53.0117C246.025 53.4266 247.125 52.888 247.86 52.4695C248.67 52.0073 250.354 50.8376 253.096 48.11C254.772 46.4429 261.519 39.4872 261.637 34.8665C261.691 32.7406 261.314 28.4868 260.916 24.2565C260.517 20.0262 259.172 12.5851 258.255 9.7502C257.37 7.00905 252.569 -3.57975 236.98 4.87854Z",shadowPath:"M238.114 7.66346C233.204 11.182 229.838 32.8544 229.782 33.0155C229.793 34.2324 227.114 41.8252 245.148 49.5706C245.989 49.9317 246.947 49.4629 247.586 49.0985C248.293 48.6961 249.758 47.6777 252.146 45.3029C253.605 43.8514 259.479 37.7955 259.582 33.7724C259.629 31.9215 259.301 28.218 258.954 24.5348C258.607 20.8517 257.435 14.3731 256.638 11.905C255.866 9.51838 251.687 0.299255 238.114 7.66346Z",lineHighlightPath:"M232.699 39.8277C232.885 39.9138 233.796 40.4028 238.753 42.4719C241.555 43.6416 243.526 43.4623 245.192 43.1391C246.68 42.8502 249.007 41.9121 250.856 40.686C251.932 39.8864 252.954 38.9499 254.698 37.0231C255.147 36.4782 255.449 36.0189 256.052 35.3458 M239.545 12.8442C241.885 10.1252 250.366 10.5793 250.366 10.5793"},{name:"5",type:"Second Premolar",outlinePath:"M186.485 45.8905C188.39 47.4915 194.878 52.668 197.762 53.1457C200.384 53.5801 211.318 44.6344 213.743 37.254C214.322 35.4928 215.038 15.1384 208.58 4.13152C202.248 -2.02701 189.273 -0.756658 185.395 11.0477C183.218 17.6734 180.668 30.608 180.423 32.2205C180.177 33.8383 180.188 36.0117 180.547 38.1716C180.751 39.3933 180.853 40.0649 181.221 40.6135C181.726 41.3662 183.233 43.1574 186.485 45.8905Z",shadowPath:"M188.107 43.3403C189.761 44.7301 195.393 49.2236 197.896 49.6383C200.172 50.0154 209.664 42.2499 211.769 35.8432C212.271 34.3143 212.893 16.6453 207.287 7.09053C201.791 1.74449 190.527 2.84724 187.16 13.0943C185.271 18.8458 183.057 30.074 182.845 31.4738C182.631 32.8782 182.641 34.7648 182.953 36.6398C183.129 37.7003 183.218 38.2832 183.537 38.7594C183.976 39.4129 185.284 40.9678 188.107 43.3403Z",lineHighlightPath:"M185.566 38.954C200.902 47.5796 204.772 37.6999 208.388 34.1061 M191.566 11.1268C196.702 7.12464 201.745 8.78762 202.549 8.92105"},{name:"6",type:"First Molar",outlinePath:"M128.904 45.8941C130.676 47.3001 145.884 61.9755 162.145 45.1423C163.249 43.9986 172.589 28.7255 163.065 9.88792C162.022 7.82514 161.32 5.92758 160.392 4.9355C159.008 3.45593 158.296 2.7052 156.622 2.60279C155.155 2.51311 153.656 3.01459 150.242 3.84879C148.517 4.2702 147.372 4.53309 144.251 3.3168C143.121 2.87675 141.495 2.08665 139.43 1.98738C137.768 1.90751 136.636 1.9765 135.262 2.89208C133.14 4.30717 131.556 6.06007 130.301 8.67838C129.938 9.43672 129.094 10.8117 127.581 13.8497C126.625 15.77 125.381 18.4495 124.394 20.9063C123.406 23.3631 122.657 25.5204 122.24 27.0814C121.585 29.5351 120.898 32.0017 121.468 34.2957L121.471 34.3102C121.817 35.7 122.322 37.7345 123.709 39.8068C125.153 41.9637 126.819 44.2397 128.904 45.8941Z",shadowPath:"M131.01 43.4559C132.509 44.7414 145.836 57.4979 160.034 42.7994C160.999 41.8008 169.154 28.4646 160.838 12.016C159.927 10.2149 159.315 8.55796 158.504 7.6917C157.296 6.39976 156.674 5.74424 155.212 5.65482C153.932 5.57651 152.623 6.01439 149.641 6.7428C148.135 7.11076 147.135 7.34032 144.41 6.27827C143.424 5.89404 142.004 5.20414 140.2 5.11746C129.959 4.62519 125.555 25.666 125.191 27.029L125.189 27.0338C124.616 29.1822 122.705 36.3359 131.01 43.4559Z",lineHighlightPath:"M153.854 27.4742C149.502 26.6409 144.049 27.8519 142.802 30.5372C143.302 25.2189 138.067 23.5889 133.932 23.5051 M153.854 27.4742C156.709 28.0209 159.09 29.4476 159.498 31.9153 M153.854 27.4742C155.556 27.6746 159.3 27.5062 160.657 25.2286 M129.139 24.6538C129.507 24.1665 131.326 23.4523 133.932 23.5051 M133.932 23.5051C132.471 22.6048 129.672 20.364 130.173 18.6034"},{name:"7",type:"Second Molar",outlinePath:"M60.6793 25.3418C59.9161 27.6449 57.3636 48.9037 84.9129 53.0846C99.7889 54.3626 106.055 39.2037 106.365 36.7909C108.564 30.6549 106.469 17.6337 105.276 14.6833C103.739 10.8816 102.7 8.48706 101.946 7.37378C100.442 5.15401 99.23 3.29064 98.43 2.92655C97.2983 2.41145 95.3919 1.13034 91.2714 2.68435C88.4359 3.75373 86.0838 3.4998 83.6256 2.76604C80.7363 1.9036 76.9082 0.690209 75.4367 0.962055C74.4606 1.14236 73.4249 1.15689 72.6333 1.98215C71.4867 3.17764 70.1618 4.75807 67.8021 9.5839C66.634 11.9729 64.7932 15.7196 63.8949 17.7849C62.387 21.2519 61.3298 23.3785 60.6793 25.3418Z",shadowPath:"M63.8099 25.4532C63.1456 27.4579 60.9238 45.9624 84.9037 49.6015C97.8523 50.7139 103.307 37.5191 103.576 35.419C106.215 28.0569 104.202 16.4153 99.73 9.81324C98.4211 7.88108 97.3658 6.25914 96.6695 5.94222C95.6844 5.49387 93.796 4.7905 90.2093 6.14316C87.7412 7.07399 85.9229 6.4412 83.7832 5.80251C81.4234 5.09812 76.4488 2.79134 74.2151 5.12018C73.2171 6.16077 72.0638 7.53645 70.0098 11.737C67.83 16.195 65.3744 20.7318 63.8099 25.4532Z",lineHighlightPath:"M92.3375 21.9418C89.3377 22.2849 84.8906 23.6339 83.7253 27.9829C84.7838 23.138 77.3962 22.8185 73.5022 23.7247 M92.3375 21.9418C96.1666 21.5038 99.585 23.1101 100.215 24.165 M92.3375 21.9418C94.4127 21.402 98.5317 19.898 99.5584 17.8597 M68.7524 26.3173C69.2513 25.49 70.8242 24.3479 73.5022 23.7247 M73.5022 23.7247C71.8339 23.4169 68.3955 22.3238 67.9878 20.414"},{name:"8",type:"Third Molar",outlinePath:"M22.8836 52.8066C23.9272 53.0915 25.7986 52.8756 26.2096 52.9116C26.501 52.9372 29.1459 52.7852 30.9534 52.2805C33.3552 51.4149 34.9901 50.7777 35.8495 50.1498C37.4391 48.9886 39.8965 46.9387 41.9506 44.3052C43.4092 42.4352 44.6381 40.2207 45.6008 37.6721C46.2927 35.8405 46.8536 34.1203 46.9928 31.3837C47.0827 29.6169 47.0888 27.1207 46.8396 24.256C46.5904 21.3913 46.1008 18.2531 45.5737 15.8629C45.0466 13.4727 44.4986 11.8788 43.9103 10.4861C43.3219 9.09334 42.7016 7.94145 42.3718 7.27535C41.7672 6.05446 41.3188 4.92976 40.5172 4.18705C38.9052 2.69353 37.6504 2.08716 36.39 1.85884C35.3031 1.66195 33.6407 1.67752 32.5207 2.07341C30.9374 2.63304 30.0912 3.2864 27.6613 3.30729C24.3667 3.3356 22.5667 1.96049 20.5098 1.81402C17.0827 1.56998 15.2376 1.60216 14.1182 2.20976C13.2193 2.69768 12.0927 3.47083 9.80979 6.74515C9.14188 7.70312 8.43252 8.93509 6.93122 12.162C5.88407 14.4128 4.32452 17.8482 3.48639 19.6641C2.55627 21.6793 1.61739 23.4684 0.935372 26.3698C0.449847 28.4352 0.305589 30.9466 0.839682 33.6862C1.20408 35.5554 1.8879 38.1004 4.17249 41.0505C6.62542 44.218 8.40151 46.3149 9.38601 47.091C10.2686 47.7868 11.1762 48.4668 12.4397 49.0231C14.0734 49.7423 15.5681 50.8399 17.5147 51.4152C19.7705 52.0818 21.1395 52.3305 22.8836 52.8066Z",shadowPath:"M22.9904 49.6908C23.9066 49.9409 25.5494 49.7513 25.9103 49.783C26.166 49.8054 28.488 49.6719 30.0748 49.2289C32.1834 48.469 33.6186 47.9096 34.3731 47.3584C35.7686 46.3389 37.9259 44.5394 39.7292 42.2274C41.0097 40.5858 42.0885 38.6416 42.9337 36.4042C43.5411 34.7963 44.0335 33.2862 44.1557 30.8837C44.2346 29.3326 44.24 27.1413 44.0212 24.6263C43.8025 22.1114 43.3726 19.3564 42.9099 17.2581C42.4472 15.1598 41.9661 13.7604 41.4496 12.5378C40.9331 11.3151 40.3885 10.3039 40.099 9.71911C39.5682 8.64729 39.1745 7.65993 38.4708 7.00789C37.0556 5.69674 35.9541 5.16442 34.8476 4.96398C33.8934 4.79113 32.434 4.8048 31.4507 5.15234C30.0608 5.64364 29.3179 6.21722 27.1847 6.23556C24.2924 6.26042 22.7122 5.05321 20.9064 4.92463C17.8978 4.71038 16.2779 4.73864 15.2953 5.27204C14.5061 5.70039 13.5171 6.37914 11.5129 9.25365C10.9266 10.0946 10.3038 11.1762 8.98585 14.0091C8.06656 15.9851 6.69744 19.001 5.96165 20.5951C5.1451 22.3642 4.32086 23.9349 3.72212 26.482C3.29588 28.2953 3.16924 30.4999 3.63812 32.9051C3.95802 34.546 4.55834 36.7803 6.56397 39.3702C8.71739 42.1509 10.2766 43.9917 11.1409 44.6731C11.9158 45.2839 12.7125 45.8809 13.8217 46.3692C15.256 47.0006 16.5682 47.9643 18.2771 48.4693C20.2574 49.0544 21.4592 49.2728 22.9904 49.6908Z",lineHighlightPath:"M7.13742 27.9101C7.89327 26.717 10.2562 25.7846 12.8627 25.483M38.0458 27.6444C37.0983 25.9368 34.2284 24.8447 31.1328 24.7739M37.58 21.3626C36.685 22.4687 34.1426 24.6994 31.1328 24.7739M31.1328 24.7739C27.1226 24.6823 22.7336 26.3048 21.6544 30.5239C21.9221 26.1555 17.0744 24.9957 12.8627 25.483M6.646 21.8371C7.23084 23.1942 9.29296 25.8232 12.8627 25.483"}];function a1(t){let e={};return t.darkBlue&&(e["--dark-blue"]=t.darkBlue),t.baseBlue&&(e["--base-blue"]=t.baseBlue),t.lightBlue&&(e["--light-blue"]=t.lightBlue),e}function n1(t){let e=t.replace("teeth-",""),o=D(t,"Universal"),s=D(t,"Palmer");return{fdi:e,universal:o,palmer:s}}var G={top:(t,e)=>({x:t.left+t.width/2,y:t.top-e}),"top-start":(t,e)=>({x:t.left,y:t.top-e}),"top-end":(t,e)=>({x:t.right,y:t.top-e}),bottom:(t,e)=>({x:t.left+t.width/2,y:t.bottom+e}),"bottom-start":(t,e)=>({x:t.left,y:t.bottom+e}),"bottom-end":(t,e)=>({x:t.right,y:t.bottom+e}),left:(t,e)=>({x:t.left-e,y:t.top+t.height/2}),"left-start":(t,e)=>({x:t.left-e,y:t.top}),"left-end":(t,e)=>({x:t.left-e,y:t.bottom}),right:(t,e)=>({x:t.right+e,y:t.top+t.height/2}),"right-start":(t,e)=>({x:t.right+e,y:t.top}),"right-end":(t,e)=>({x:t.right+e,y:t.bottom})},i1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"translate(855, 0) scale(-1, 1) translate(-55,0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -150)",label:"Lower Right"},{name:"fourth",transform:"translate(855, 0) scale(-1, -1) translate(-55,-150)",label:"Lower Left"}],l1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right"},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left"}];function D(t,e){let o=t.replace("teeth-",""),s={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(e==="Universal")return String(s[o]??o);if(e==="Palmer"){if(o.length<2)return o;let n=o[0];return`${o[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[n]??""}`}return o}var L=require("react/jsx-runtime"),Z1=({conditions:t,className:e=""})=>!t||t.length===0?null:(0,L.jsx)("div",{className:e,style:{display:"flex",gap:8,fontFamily:"sans-serif",fontSize:14,flexWrap:"wrap"},role:"list","aria-label":"Tooth condition legend",children:t.map(o=>(0,L.jsxs)("div",{role:"listitem",style:{display:"flex",alignItems:"center",gap:8},children:[(0,L.jsx)("span",{"aria-hidden":"true",style:{width:14,height:14,borderRadius:4,background:o.fillColor,border:`2px solid ${o.outlineColor??o.fillColor}`,display:"inline-block"}}),(0,L.jsx)("span",{style:{textTransform:"capitalize"},children:o.label})]},o.label))}),s1=Z1;var m=require("react/jsx-runtime");function C1(t,e){if(t==="square")return e==="upper"?"0 0 900 75":e==="lower"?"0 75 900 75 ":"0 0 900 150";let o="0 0 409 694",s="0 0 409 347",n="0 347 409 347";return e==="upper"?s:e==="lower"?n:o}var p1=({defaultSelected:t=[],singleSelect:e=!1,onChange:o,className:s="",theme:n="light",colors:i={},notation:h="FDI",tooltip:C={margin:10,placement:"top"},showTooltip:c=!0,showHalf:b="full",name:P,maxTeeth:x=8,teethConditions:u,readOnly:d=!1,showLabels:v=!1,layout:w="circle",styles:f})=>{let Z=w==="circle"?o1:r1,E=w==="circle"?l1:i1,$=(0,l.useMemo)(()=>new Map(Z.map(r=>[r.name,r.type])),[Z]),V=(0,l.useCallback)(r=>{let p=r.replace("teeth-","").slice(1);return $.get(p)??"Unknown"},[$]),W=(0,l.useCallback)(r=>typeof r!="number"||Number.isNaN(r)?Z.length:Math.max(0,Math.min(Z.length,Math.floor(r))),[]),S=(0,l.useCallback)(r=>({id:r,notations:n1(r),type:V(r)}),[V]),h1=n==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[F,d1]=(0,l.useState)(()=>new Set(e?t.slice(0,1):t)),I=(0,l.useRef)(null),[H,z]=(0,l.useState)({active:!1}),O=(0,l.useCallback)(r=>{d||d1(p=>{let a=new Set(p);return e?a.has(r)?a.delete(r):(a.clear(),a.add(r)):a.has(r)?a.delete(r):a.add(r),o==null||o(Array.from(a).map(S)),a})},[o,d,S,e]),j=(0,l.useCallback)((r,p)=>{d||(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),O(p))},[O,d]),U=(0,l.useCallback)((r,p,a="right")=>{var Q,X;let k=p.currentTarget.querySelector("path");if(!(k&&I.current))return;let R=k.getBoundingClientRect(),N=I.current.getBoundingClientRect(),y=C.margin??10,{x:b1,y:K}=((X=(Q=G)[a])==null?void 0:X.call(Q,R,y))??G.right(R,y),y1=K<N.top?R.bottom+y:K;z({active:!0,position:{x:b1,y:y1},payload:S(r)})},[C.margin,C.placement,S]),q=(0,l.useCallback)(()=>{z(r=>({...r,active:!1}))},[]),m1=b==="upper"?E.slice(0,2):b==="lower"?E.slice(2):E,_=(0,l.useMemo)(()=>Z.slice(0,W(x)),[x,W,w]),J=(0,l.useMemo)(()=>{let r=new Map;return u==null||u.forEach(p=>{p.teeth.forEach(a=>{r.set(a,p)})}),r},[u]),u1=(0,l.useCallback)(r=>_.map(p=>{let a=`${r}${p.name}`,k=D(a,h),R=J.get(a);return(0,m.jsx)(Y,{readOnly:d,...p,name:a,selected:F.has(a),condition:R,onClick:O,onKeyDown:j,onHover:c?(N,y)=>U(N,y,C.placement):void 0,onFocus:c?(N,y)=>U(N,y,C.placement):void 0,onLeave:c?q:void 0,onBlur:c?q:void 0,children:(0,m.jsx)("title",{children:k})},a)}),[_,h,J,d,F,O,j,U,q,c,C.placement]),f1={...h1,...a1(i)},g1=["Odontogram",n==="dark"?"dark-theme":"",s].filter(Boolean).join(" ");return(0,m.jsxs)("div",{className:g1,style:{...f1,width:"100%",margin:"0 auto",display:"flex",flexDirection:"column",gap:"20px",justifyContent:"center",alignItems:"center",...f},role:"listbox","aria-label":"Odontogram","aria-multiselectable":!e,"data-read-only":d?"true":"false",children:[(0,m.jsx)("input",{type:"hidden",name:P??"teeth",value:JSON.stringify(Array.from(F))}),(0,m.jsxs)("svg",{ref:I,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:C1(w,b),className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[(0,m.jsx)("title",{children:"Odontogram"}),m1.map(({name:r,transform:p,label:a},k)=>(0,m.jsx)("g",{role:"group","aria-label":a,transform:p,children:u1(`teeth-${k+1}`)},r))]}),c&&(0,m.jsx)(e1,{active:H.active,position:H.position,payload:H.payload,content:C.content}),v&&(0,m.jsx)(s1,{conditions:u})]})},c1=p1;0&&(module.exports={Odontogram,getViewBox});
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9PZG9udG9ncmFtLnRzeCIsICIuLi9zcmMvVGVldGgudHN4IiwgIi4uL3NyYy9Ub29sdGlwLnRzeCIsICIuLi9zcmMvZGF0YS50cyIsICIuLi9zcmMvdXRpbHMudHMiLCAiLi4vc3JjL0xhYmVscy50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi9PZG9udG9ncmFtXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL09kb250b2dyYW1cIjtcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZVwiO1xuIiwgImltcG9ydCBcIi4vc3R5bGVzLmNzc1wiO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NQcm9wZXJ0aWVzLFxuICB0eXBlIEZDLFxuICB0eXBlIEtleWJvYXJkRXZlbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFRlZXRoIH0gZnJvbSBcIi4vVGVldGhcIjtcbmltcG9ydCB7IE9kb250b2dyYW1Ub29sdGlwIH0gZnJvbSBcIi4vVG9vbHRpcFwiO1xuaW1wb3J0IHsgTmV3VGVldGhQYXRocywgdGVldGhQYXRocyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB0eXBlIHtcbiAgT2RvbnRvZ3JhbVByb3BzLFxuICBQbGFjZW1lbnQsXG4gIFRvb3RoQ29uZGl0aW9uR3JvdXAsXG4gIFRvb3RoRGV0YWlsLFxuICBUb290aEludGVyYWN0aW9uRXZlbnQsXG59IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7XG4gIGNvbnZlcnRGRElUb05vdGF0aW9uLFxuICBnZXRUb290aE5vdGF0aW9ucyxcbiAgbWFwVG9Dc3NWYXJzLFxuICBwbGFjZW1lbnRzLFxuICBxdWFkcmFudHMgYXMgbmV3cXVhZHJhbnRzLFxuICBvbGRxdWFkcmFudHNcbn0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCBDb25kaXRpb25MYWJlbHMgZnJvbSBcIi4vTGFiZWxzXCI7XG5cbnR5cGUgTGF5b3V0ID0gJ2NpcmNsZScgfCAnc3F1YXJlJztcbnR5cGUgU2hvd0hhbGYgPSAnZnVsbCcgfCAndXBwZXInIHwgJ2xvd2VyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdCb3gobGF5b3V0OiBMYXlvdXQsIHNob3dIYWxmOiBTaG93SGFsZik6IHN0cmluZyB7XG4gIGlmIChsYXlvdXQgPT09ICdzcXVhcmUnKSB7XG4gICAgLy8gbGluZWFyIGRvZXMgbm90IHN1cHBvcnQgaGFsZiBzbGljaW5nIChzaW5nbGUgcm93KVxuXG4gICAgaWYgKHNob3dIYWxmID09PSAndXBwZXInKSByZXR1cm4gJzAgMCA5MDAgNzUnO1xuICAgIGlmIChzaG93SGFsZiA9PT0gJ2xvd2VyJykgcmV0dXJuICcwIDc1IDkwMCA3NSAnO1xuXG5cbiAgICByZXR1cm4gJzAgMCA5MDAgMTUwJztcbiAgfVxuXG4gIC8vIGNpcmNsZSBsYXlvdXRcbiAgY29uc3QgZnVsbCA9ICcwIDAgNDA5IDY5NCc7XG4gIGNvbnN0IHVwcGVyID0gJzAgMCA0MDkgMzQ3JztcbiAgY29uc3QgbG93ZXIgPSAnMCAzNDcgNDA5IDM0Nyc7XG5cbiAgaWYgKHNob3dIYWxmID09PSAndXBwZXInKSByZXR1cm4gdXBwZXI7XG4gIGlmIChzaG93SGFsZiA9PT0gJ2xvd2VyJykgcmV0dXJuIGxvd2VyO1xuICByZXR1cm4gZnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IE9kb250b2dyYW06IEZDPE9kb250b2dyYW1Qcm9wcz4gPSAoe1xuICBkZWZhdWx0U2VsZWN0ZWQgPSBbXSxcbiAgc2luZ2xlU2VsZWN0ID0gZmFsc2UsXG4gIG9uQ2hhbmdlLFxuICBjbGFzc05hbWUgPSBcIlwiLFxuICB0aGVtZSA9IFwibGlnaHRcIixcbiAgY29sb3JzID0ge30sXG4gIG5vdGF0aW9uID0gXCJGRElcIixcbiAgdG9vbHRpcCA9IHtcbiAgICBtYXJnaW46IDEwLFxuICAgIHBsYWNlbWVudDogXCJ0b3BcIixcbiAgfSxcbiAgc2hvd1Rvb2x0aXAgPSB0cnVlLFxuICBzaG93SGFsZiA9IFwiZnVsbFwiLFxuICBuYW1lLFxuICBtYXhUZWV0aCA9IDgsXG4gIHRlZXRoQ29uZGl0aW9ucyxcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgc2hvd0xhYmVscyA9IGZhbHNlLFxuICBsYXlvdXQgPSAnY2lyY2xlJyxcbiAgc3R5bGVzXG59KSA9PiB7XG4gIC8qKlxuICAgKiBNZW1vOiB0b290aCB0eXBlIGxvb2t1cFxuICAgKi9cblxuICBjb25zdCB0ZWV0aHBhdGggPSBsYXlvdXQgPT09ICdjaXJjbGUnID8gdGVldGhQYXRocyA6IE5ld1RlZXRoUGF0aHM7XG5cbiAgY29uc3QgcXVhZHJhbnRzID0gbGF5b3V0ID09PSAnY2lyY2xlJyA/IG9sZHF1YWRyYW50cyA6IG5ld3F1YWRyYW50cztcblxuICBjb25zdCB0b290aFR5cGVCeU5hbWUgPSB1c2VNZW1vKFxuICAgICgpID0+IG5ldyBNYXAodGVldGhwYXRoLm1hcCgodCkgPT4gW3QubmFtZSwgdC50eXBlXSkpLFxuICAgIFt0ZWV0aHBhdGhdXG4gICk7XG5cbiAgLyoqXG4gICAqIEhlbHBlcnNcbiAgICovXG4gIGNvbnN0IGdldFRvb3RoVHlwZSA9IHVzZUNhbGxiYWNrKFxuICAgIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0b290aE5hbWUgPSBpZC5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpLnNsaWNlKDEpO1xuICAgICAgcmV0dXJuIHRvb3RoVHlwZUJ5TmFtZS5nZXQodG9vdGhOYW1lKSA/PyBcIlVua25vd25cIjtcbiAgICB9LFxuICAgIFt0b290aFR5cGVCeU5hbWVdXG4gICk7XG5cbiAgY29uc3QgY2xhbXBNYXhUZWV0aCA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiIHx8IE51bWJlci5pc05hTih2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRlZXRocGF0aC5sZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4odGVldGhwYXRoLmxlbmd0aCwgTWF0aC5mbG9vcih2YWx1ZSkpKTtcbiAgICB9LFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgYnVpbGRUb290aERldGFpbCA9IHVzZUNhbGxiYWNrKFxuICAgIChpZDogc3RyaW5nKTogVG9vdGhEZXRhaWwgPT4gKHtcbiAgICAgIGlkLFxuICAgICAgbm90YXRpb25zOiBnZXRUb290aE5vdGF0aW9ucyhpZCksXG4gICAgICB0eXBlOiBnZXRUb290aFR5cGUoaWQpLFxuICAgIH0pLFxuICAgIFtnZXRUb290aFR5cGVdXG4gICk7XG5cbiAgLyoqXG4gICAqIFRoZW1lXG4gICAqL1xuICBjb25zdCB0aGVtZUNvbG9ycyA9XG4gICAgdGhlbWUgPT09IFwiZGFya1wiXG4gICAgICA/IHtcbiAgICAgICAgXCItLWRhcmstYmx1ZVwiOiBcIiNhYWI2ZmZcIixcbiAgICAgICAgXCItLWJhc2UtYmx1ZVwiOiBcIiNkMGQ1ZjZcIixcbiAgICAgICAgXCItLWxpZ2h0LWJsdWVcIjogXCIjNTM2MWU2XCIsXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgXCItLWRhcmstYmx1ZVwiOiBcIiMzZTVlZGNcIixcbiAgICAgICAgXCItLWJhc2UtYmx1ZVwiOiBcIiM4YTk4YmVcIixcbiAgICAgICAgXCItLWxpZ2h0LWJsdWVcIjogXCIjYzZjY2Y4XCIsXG4gICAgICB9O1xuXG4gIC8qKlxuICAgKiBTdGF0ZVxuICAgKi9cbiAgY29uc3QgW3NlbGVjdGVkLCBzZXRTZWxlY3RlZF0gPSB1c2VTdGF0ZTxTZXQ8c3RyaW5nPj4oXG4gICAgKCkgPT5cbiAgICAgIG5ldyBTZXQoXG4gICAgICAgIHNpbmdsZVNlbGVjdCA/IGRlZmF1bHRTZWxlY3RlZC5zbGljZSgwLCAxKSA6IGRlZmF1bHRTZWxlY3RlZFxuICAgICAgKVxuICApO1xuXG4gIGNvbnN0IHN2Z1JlZiA9IHVzZVJlZjxTVkdTVkdFbGVtZW50PihudWxsKTtcblxuICBjb25zdCBbdG9vbHRpcERhdGEsIHNldFRvb2x0aXBEYXRhXSA9IHVzZVN0YXRlPHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgcG9zaXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gICAgcGF5bG9hZD86IFRvb3RoRGV0YWlsO1xuICB9Pih7IGFjdGl2ZTogZmFsc2UgfSk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXJzXG4gICAqL1xuICBjb25zdCBoYW5kbGVUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHJlYWRPbmx5KSByZXR1cm47XG5cbiAgICAgIHNldFNlbGVjdGVkKChwcmV2aW91cykgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gbmV3IFNldChwcmV2aW91cyk7XG5cbiAgICAgICAgaWYgKHNpbmdsZVNlbGVjdCkge1xuICAgICAgICAgIGlmICh1cGRhdGVkLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHVwZGF0ZWQuZGVsZXRlKGlkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXBkYXRlZC5jbGVhcigpO1xuICAgICAgICAgICAgdXBkYXRlZC5hZGQoaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVkLmhhcyhpZCkgPyB1cGRhdGVkLmRlbGV0ZShpZCkgOiB1cGRhdGVkLmFkZChpZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbkNoYW5nZT8uKEFycmF5LmZyb20odXBkYXRlZCkubWFwKGJ1aWxkVG9vdGhEZXRhaWwpKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgcmVhZE9ubHksIGJ1aWxkVG9vdGhEZXRhaWwsIHNpbmdsZVNlbGVjdF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50PFNWR0dFbGVtZW50PiwgaWQ6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHJlYWRPbmx5KSByZXR1cm47XG5cbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGhhbmRsZVRvZ2dsZShpZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlVG9nZ2xlLCByZWFkT25seV1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVIb3ZlciA9IHVzZUNhbGxiYWNrKFxuICAgIChcbiAgICAgIGlkOiBzdHJpbmcsXG4gICAgICBldmVudDogVG9vdGhJbnRlcmFjdGlvbkV2ZW50LFxuICAgICAgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSBcInJpZ2h0XCJcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHBhdGggPSBldmVudC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJwYXRoXCIpO1xuICAgICAgaWYgKCEocGF0aCAmJiBzdmdSZWYuY3VycmVudCkpIHJldHVybjtcblxuICAgICAgY29uc3QgdG9vdGhCb3ggPSBwYXRoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgc3ZnQm94ID0gc3ZnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBtYXJnaW4gPSB0b29sdGlwLm1hcmdpbiA/PyAxMDtcblxuICAgICAgY29uc3QgeyB4LCB5IH0gPVxuICAgICAgICBwbGFjZW1lbnRzW3BsYWNlbWVudF0/Lih0b290aEJveCwgbWFyZ2luKSA/P1xuICAgICAgICBwbGFjZW1lbnRzLnJpZ2h0KHRvb3RoQm94LCBtYXJnaW4pO1xuXG4gICAgICBjb25zdCBzYWZlWSA9IHkgPCBzdmdCb3gudG9wID8gdG9vdGhCb3guYm90dG9tICsgbWFyZ2luIDogeTtcblxuICAgICAgc2V0VG9vbHRpcERhdGEoe1xuICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgIHBvc2l0aW9uOiB7IHgsIHk6IHNhZmVZIH0sXG4gICAgICAgIHBheWxvYWQ6IGJ1aWxkVG9vdGhEZXRhaWwoaWQpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbdG9vbHRpcC5tYXJnaW4sIHRvb2x0aXAucGxhY2VtZW50LCBidWlsZFRvb3RoRGV0YWlsXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRvb2x0aXBEYXRhKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBhY3RpdmU6IGZhbHNlIH0pKTtcbiAgfSwgW10pO1xuXG4gIC8qKlxuICAgKiBRdWFkcmFudHNcbiAgICovXG4gIGNvbnN0IHZpc2libGVRdWFkcmFudHMgPVxuICAgIHNob3dIYWxmID09PSBcInVwcGVyXCJcbiAgICAgID8gcXVhZHJhbnRzLnNsaWNlKDAsIDIpXG4gICAgICA6IHNob3dIYWxmID09PSBcImxvd2VyXCJcbiAgICAgICAgPyBxdWFkcmFudHMuc2xpY2UoMilcbiAgICAgICAgOiBxdWFkcmFudHM7XG5cbiAgLyoqXG4gICAqIFRlZXRoIHNsaWNlXG4gICAqL1xuICBjb25zdCBmaWx0ZXJlZFRlZXRoID0gdXNlTWVtbyhcbiAgICAoKSA9PiB0ZWV0aHBhdGguc2xpY2UoMCwgY2xhbXBNYXhUZWV0aChtYXhUZWV0aCkpLFxuICAgIFttYXhUZWV0aCwgY2xhbXBNYXhUZWV0aCwgbGF5b3V0XVxuICApO1xuXG4gIC8qKlxuICAgKiBDb25kaXRpb24gbWFwXG4gICAqL1xuICBjb25zdCBjb25kaXRpb25NYXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgVG9vdGhDb25kaXRpb25Hcm91cD4oKTtcblxuICAgIHRlZXRoQ29uZGl0aW9ucz8uZm9yRWFjaCgoY29uZGl0aW9uKSA9PiB7XG4gICAgICBjb25kaXRpb24udGVldGguZm9yRWFjaCgodG9vdGhJZCkgPT4ge1xuICAgICAgICBtYXAuc2V0KHRvb3RoSWQsIGNvbmRpdGlvbik7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtYXA7XG4gIH0sIFt0ZWV0aENvbmRpdGlvbnNdKTtcblxuICAvKipcbiAgICogUmVuZGVyIHRlZXRoXG4gICAqL1xuICBjb25zdCByZW5kZXJUZWV0aCA9IHVzZUNhbGxiYWNrKFxuICAgIChwcmVmaXg6IHN0cmluZykgPT5cbiAgICAgIGZpbHRlcmVkVGVldGgubWFwKCh0b290aCkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGAke3ByZWZpeH0ke3Rvb3RoLm5hbWV9YDtcbiAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihpZCwgbm90YXRpb24pO1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSBjb25kaXRpb25NYXAuZ2V0KGlkKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxUZWV0aFxuICAgICAgICAgICAga2V5PXtpZH1cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIHsuLi50b290aH1cbiAgICAgICAgICAgIG5hbWU9e2lkfVxuICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkLmhhcyhpZCl9XG4gICAgICAgICAgICBjb25kaXRpb249e2NvbmRpdGlvbn1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cbiAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgIG9uSG92ZXI9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcFxuICAgICAgICAgICAgICAgID8gKGN1cnJlbnRJZCwgZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVIb3ZlcihjdXJyZW50SWQsIGV2ZW50LCB0b29sdGlwLnBsYWNlbWVudClcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25Gb2N1cz17XG4gICAgICAgICAgICAgIHNob3dUb29sdGlwXG4gICAgICAgICAgICAgICAgPyAoY3VycmVudElkLCBldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUhvdmVyKGN1cnJlbnRJZCwgZXZlbnQsIHRvb2x0aXAucGxhY2VtZW50KVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkxlYXZlPXtzaG93VG9vbHRpcCA/IGhhbmRsZUxlYXZlIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25CbHVyPXtzaG93VG9vbHRpcCA/IGhhbmRsZUxlYXZlIDogdW5kZWZpbmVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx0aXRsZT57ZGlzcGxheU5hbWV9PC90aXRsZT5cbiAgICAgICAgICA8L1RlZXRoPlxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgW1xuICAgICAgZmlsdGVyZWRUZWV0aCxcbiAgICAgIG5vdGF0aW9uLFxuICAgICAgY29uZGl0aW9uTWFwLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBzZWxlY3RlZCxcbiAgICAgIGhhbmRsZVRvZ2dsZSxcbiAgICAgIGhhbmRsZUtleURvd24sXG4gICAgICBoYW5kbGVIb3ZlcixcbiAgICAgIGhhbmRsZUxlYXZlLFxuICAgICAgc2hvd1Rvb2x0aXAsXG4gICAgICB0b29sdGlwLnBsYWNlbWVudCxcbiAgICBdXG4gICk7XG5cbiAgLyoqXG4gICAqIENvbG9yc1xuICAgKi9cbiAgY29uc3QgZmluYWxDb2xvcnMgPSB7XG4gICAgLi4udGhlbWVDb2xvcnMsXG4gICAgLi4ubWFwVG9Dc3NWYXJzKGNvbG9ycyksXG4gIH07XG5cbiAgY29uc3QgY29udGFpbmVyQ2xhc3NlcyA9IFtcbiAgICBcIk9kb250b2dyYW1cIixcbiAgICB0aGVtZSA9PT0gXCJkYXJrXCIgPyBcImRhcmstdGhlbWVcIiA6IFwiXCIsXG4gICAgY2xhc3NOYW1lLFxuICBdXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5qb2luKFwiIFwiKTtcblxuXG4gIC8vd2UgaGF2ZSA0IGNvbmRpdGlvbnMgXG4gIC8vbGF5b3V0IGlzIGNpcmNsZSBvciBzcXVhcmUgXG4gIC8vIGlmIFxuXG5cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y29udGFpbmVyQ2xhc3Nlc31cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIC4uLihmaW5hbENvbG9ycyBhcyBDU1NQcm9wZXJ0aWVzKSxcbiAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICBtYXJnaW46IFwiMCBhdXRvXCIsXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgICAgICBnYXA6IFwiMjBweFwiLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgLi4uc3R5bGVzIGFzIENTU1Byb3BlcnRpZXNcbiAgICAgIH19XG4gICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICBhcmlhLWxhYmVsPVwiT2RvbnRvZ3JhbVwiXG4gICAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT17IXNpbmdsZVNlbGVjdH1cbiAgICAgIGRhdGEtcmVhZC1vbmx5PXtyZWFkT25seSA/IFwidHJ1ZVwiIDogXCJmYWxzZVwifVxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgbmFtZT17bmFtZSA/PyBcInRlZXRoXCJ9XG4gICAgICAgIHZhbHVlPXtKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKHNlbGVjdGVkKSl9XG4gICAgICAvPlxuXG4gICAgICA8c3ZnXG4gICAgICAgIHJlZj17c3ZnUmVmfVxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICB2aWV3Qm94PXtnZXRWaWV3Qm94KGxheW91dCwgc2hvd0hhbGYpXG4gICAgICAgIH1cbiAgICAgICAgY2xhc3NOYW1lPVwiT2RvbnRvZ3JhbVwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICAgICAgdG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG5cbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPHRpdGxlPk9kb250b2dyYW08L3RpdGxlPlxuXG4gICAgICAgIHt2aXNpYmxlUXVhZHJhbnRzLm1hcCgoeyBuYW1lLCB0cmFuc2Zvcm0sIGxhYmVsIH0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPGdcbiAgICAgICAgICAgIHJvbGU9XCJncm91cFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgIGtleT17bmFtZX1cbiAgICAgICAgICAgIHRyYW5zZm9ybT17dHJhbnNmb3JtfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtyZW5kZXJUZWV0aChgdGVldGgtJHtpbmRleCArIDF9YCl9XG4gICAgICAgICAgPC9nPlxuICAgICAgICApKX1cbiAgICAgIDwvc3ZnPlxuXG4gICAgICB7c2hvd1Rvb2x0aXAgJiYgKFxuICAgICAgICA8T2RvbnRvZ3JhbVRvb2x0aXBcbiAgICAgICAgICBhY3RpdmU9e3Rvb2x0aXBEYXRhLmFjdGl2ZX1cbiAgICAgICAgICBwb3NpdGlvbj17dG9vbHRpcERhdGEucG9zaXRpb259XG4gICAgICAgICAgcGF5bG9hZD17dG9vbHRpcERhdGEucGF5bG9hZH1cbiAgICAgICAgICBjb250ZW50PXt0b29sdGlwLmNvbnRlbnR9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7c2hvd0xhYmVscyAmJiAoXG4gICAgICAgIDxDb25kaXRpb25MYWJlbHMgY29uZGl0aW9ucz17dGVldGhDb25kaXRpb25zfSAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9kb250b2dyYW07XG4iLCAiaW1wb3J0IHR5cGUgeyBUZWV0aFByb3BzIH0gZnJvbSBcIi4vdHlwZVwiO1xuZXhwb3J0IGNvbnN0IFRlZXRoID0gKHtcbiAgbmFtZSxcbiAgb3V0bGluZVBhdGgsXG4gIHNoYWRvd1BhdGgsXG4gIGxpbmVIaWdobGlnaHRQYXRoLFxuICBzZWxlY3RlZCxcbiAgY29uZGl0aW9uLFxuICByZWFkT25seSxcbiAgb25DbGljayxcbiAgb25LZXlEb3duLFxuICBvbkhvdmVyLFxuICBvbkZvY3VzLFxuICBvbkxlYXZlLFxuICBvbkJsdXIsXG4gIGNoaWxkcmVuLFxufTogVGVldGhQcm9wcykgPT4ge1xuICBjb25zdCBzdHJva2VDb2xvciA9IGNvbmRpdGlvbj8ub3V0bGluZUNvbG9yID8/IFwiY3VycmVudENvbG9yXCI7XG4gIGNvbnN0IGZpbGxDb2xvciA9IGNvbmRpdGlvbj8uZmlsbENvbG9yID8/IFwiY3VycmVudENvbG9yXCI7XG5cbiAgcmV0dXJuIChcbiAgICA8Z1xuICAgICAgY2xhc3NOYW1lPXtgJHtuYW1lfSAke3NlbGVjdGVkID8gXCJzZWxlY3RlZFwiIDogXCJcIn1gfVxuICAgICAgdGFiSW5kZXg9e3JlYWRPbmx5ID8gLTEgOiAwfVxuICAgICAgb25DbGljaz17cmVhZE9ubHkgPyB1bmRlZmluZWQgOiAoKSA9PiBvbkNsaWNrPy4obmFtZSl9XG4gICAgICBvbktleURvd249e3JlYWRPbmx5ID8gdW5kZWZpbmVkIDogKGUpID0+IG9uS2V5RG93bj8uKGUsIG5hbWUpfVxuICAgICAgb25Nb3VzZUVudGVyPXtvbkhvdmVyID8gKGUpID0+IG9uSG92ZXIobmFtZSwgZSkgOiB1bmRlZmluZWR9XG4gICAgICBvbkZvY3VzPXtvbkZvY3VzID8gKGUpID0+IG9uRm9jdXMobmFtZSwgZSkgOiB1bmRlZmluZWR9XG4gICAgICBvbk1vdXNlTGVhdmU9e29uTGVhdmV9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgYXJpYS1sYWJlbD17YFRvb3RoICR7bmFtZS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpfWB9XG5cblxuICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICBhcmlhLWRpc2FibGVkPXtyZWFkT25seX1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGN1cnNvcjogcmVhZE9ubHkgPyBcImRlZmF1bHRcIiA6IFwicG9pbnRlclwiLFxuICAgICAgICBjb2xvcjogc3Ryb2tlQ29sb3IsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cblxuICAgICAgey8qIG91dGxpbmUgKi99XG4gICAgICA8cGF0aFxuICAgICAgICBzdHJva2U9e3N0cm9rZUNvbG9yfVxuICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgIGQ9e291dGxpbmVQYXRofVxuICAgICAgLz5cblxuICAgICAgey8qIGZpbGwgKi99XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsPXtmaWxsQ29sb3J9XG4gICAgICAgIGQ9e3NoYWRvd1BhdGh9XG4gICAgICAgIGRhdGEtY29sb3JlZD17Y29uZGl0aW9uID8gXCJ0cnVlXCIgOiB1bmRlZmluZWR9XG4gICAgICAgIHN0eWxlPXt7IG9wYWNpdHk6IGNvbmRpdGlvbiA/IDEgOiB1bmRlZmluZWQgfX1cbiAgICAgIC8+XG5cbiAgICAgIHsvKiBoaWdobGlnaHQgbGluZXMgKi99XG4gICAgICB7QXJyYXkuaXNBcnJheShsaW5lSGlnaGxpZ2h0UGF0aClcbiAgICAgICAgPyBsaW5lSGlnaGxpZ2h0UGF0aC5tYXAoKGQpID0+IChcbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAga2V5PXtkfVxuICAgICAgICAgICAgc3Ryb2tlPXtzdHJva2VDb2xvcn1cbiAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIGQ9e2R9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSlcbiAgICAgICAgOiAoXG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIHN0cm9rZT17c3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICBkPXtsaW5lSGlnaGxpZ2h0UGF0aH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuXG5cbiAgICA8L2c+XG4gICk7XG59OyIsICJpbXBvcnQgeyB0eXBlIFJlYWN0Tm9kZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRvb3RoRGV0YWlsLCBUb29sdGlwQ29udGVudFJlbmRlcmVyIH0gZnJvbSBcIi4vdHlwZVwiO1xuXG5jb25zdCBBUlJPV19PRkZTRVQgPSAxMjtcbmNvbnN0IFZJRVdQT1JUX1BBRERJTkcgPSA4O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9kb250b2dyYW1Ub29sdGlwUHJvcHMge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHBheWxvYWQ/OiBUb290aERldGFpbDtcbiAgcG9zaXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIGNvbnRlbnQ/OiBSZWFjdE5vZGUgfCBUb29sdGlwQ29udGVudFJlbmRlcmVyO1xufVxuXG5jb25zdCBjbGFtcCA9ICh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+XG4gIE1hdGgubWluKE1hdGgubWF4KHZhbHVlLCBtaW4pLCBtYXgpO1xuXG5jb25zdCBnZXRDb250ZW50ID0gKFxuICBjb250ZW50OiBSZWFjdE5vZGUgfCBUb29sdGlwQ29udGVudFJlbmRlcmVyIHwgdW5kZWZpbmVkLFxuICBwYXlsb2FkPzogVG9vdGhEZXRhaWxcbikgPT4ge1xuICBpZiAoIWNvbnRlbnQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVvZiBjb250ZW50ID09PSBcImZ1bmN0aW9uXCIgPyBjb250ZW50KHBheWxvYWQpIDogY29udGVudDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBPZG9udG9ncmFtVG9vbHRpcCh7XG4gIGFjdGl2ZSxcbiAgcGF5bG9hZCxcbiAgcG9zaXRpb24sXG4gIGNvbnRlbnQsXG59OiBPZG9udG9ncmFtVG9vbHRpcFByb3BzKSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtjb29yZHMsIHNldENvb3Jkc10gPSB1c2VTdGF0ZTx7IGxlZnQ6IG51bWJlcjsgdG9wOiBudW1iZXIgfSB8IG51bGw+KFxuICAgIG51bGxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghKGFjdGl2ZSAmJiByZWYuY3VycmVudCAmJiBwb3NpdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0b29sdGlwQm94ID0gcmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBwb3NpdGlvbjtcblxuICAgIGNvbnN0IG1heExlZnQgPSBNYXRoLm1heChcbiAgICAgIFZJRVdQT1JUX1BBRERJTkcsXG4gICAgICB3aW5kb3cuaW5uZXJXaWR0aCAtIHRvb2x0aXBCb3gud2lkdGggLSBWSUVXUE9SVF9QQURESU5HXG4gICAgKTtcbiAgICBjb25zdCBsZWZ0ID0gY2xhbXAoeCAtIHRvb2x0aXBCb3gud2lkdGggLyAyLCBWSUVXUE9SVF9QQURESU5HLCBtYXhMZWZ0KTtcblxuICAgIGNvbnN0IG5leHRUb3AgPSB5IC0gdG9vbHRpcEJveC5oZWlnaHQgLSBBUlJPV19PRkZTRVQ7XG4gICAgY29uc3QgdG9wID0gbmV4dFRvcCA8IFZJRVdQT1JUX1BBRERJTkcgPyB5ICsgQVJST1dfT0ZGU0VUIDogbmV4dFRvcDtcblxuICAgIHNldENvb3Jkcyh7IGxlZnQsIHRvcCB9KTtcbiAgfSwgW2FjdGl2ZSwgcG9zaXRpb24sIGNvbnRlbnQsIHBheWxvYWRdKTtcblxuICBpZiAoIShhY3RpdmUgJiYgcGF5bG9hZCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBjbGFzc05hbWU9XCJvZG9udG9ncmFtLXRvb2x0aXBcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgIGJhY2tncm91bmQ6IFwidmFyKC0tb2RvbnRvZ3JhbS10b29sdGlwLWJnLCByZ2JhKDAsMCwwLDAuODUpKVwiLFxuICAgICAgICBjb2xvcjogXCJ2YXIoLS1vZG9udG9ncmFtLXRvb2x0aXAtZmcsICNmZmYpXCIsXG4gICAgICAgIHBhZGRpbmc6IFwiNnB4IDEwcHhcIixcbiAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjZweFwiLFxuICAgICAgICBmb250U2l6ZTogXCIxMnB4XCIsXG4gICAgICAgIGxpbmVIZWlnaHQ6IDEuMyxcbiAgICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgICAgekluZGV4OiAxMDAwLFxuICAgICAgICBsZWZ0OiBjb29yZHM/LmxlZnQgPz8gLTk5OTksXG4gICAgICAgIHRvcDogY29vcmRzPy50b3AgPz8gLTk5OTksXG4gICAgICAgIG9wYWNpdHk6IGNvb3JkcyA/IDEgOiAwLFxuICAgICAgICB0cmFuc2l0aW9uOiBcIm9wYWNpdHkgMC4xNXMgZWFzZVwiLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Z2V0Q29udGVudChjb250ZW50LCBwYXlsb2FkKSA/PyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdj5Ub290aDoge3BheWxvYWQubm90YXRpb25zLmZkaX08L2Rpdj5cbiAgICAgICAgICA8ZGl2PlR5cGU6IHtwYXlsb2FkLnR5cGV9PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIFVuaXZlcnNhbDoge3BheWxvYWQubm90YXRpb25zLnVuaXZlcnNhbH0sIFBhbG1lcjp7XCIgXCJ9XG4gICAgICAgICAgICB7cGF5bG9hZC5ub3RhdGlvbnMucGFsbWVyfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cIm9kb250b2dyYW0tdG9vbHRpcC1hcnJvd1wiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICBib3R0b206IFwiLTZweFwiLFxuICAgICAgICAgIGxlZnQ6IFwiNTAlXCIsXG4gICAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTUwJSlcIixcbiAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgYm9yZGVyTGVmdDogXCI2cHggc29saWQgdHJhbnNwYXJlbnRcIixcbiAgICAgICAgICBib3JkZXJSaWdodDogXCI2cHggc29saWQgdHJhbnNwYXJlbnRcIixcbiAgICAgICAgICBib3JkZXJUb3A6XG4gICAgICAgICAgICBcIjZweCBzb2xpZCB2YXIoLS1vZG9udG9ncmFtLXRvb2x0aXAtYmcsIHJnYmEoMCwgMCwgMCwgMC44NSkpXCIsXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuIiwgImV4cG9ydCBjb25zdCB0ZWV0aFBhdGhzID0gW1xuXHR7XG5cdFx0bmFtZTogXCIxXCIsXG5cdFx0dHlwZTogXCJDZW50cmFsIEluY2lzb3JcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTE3My45NTEgMS42OThjLTIuMTk4LjE2LTUuMzAyLjg2Mi01LjMwMi44NjJzLTUuNTMxIDEuMDI1LTcuNzgxIDIuMjdjLTIuNDAzIDEuMzMzLTUuNTUzIDMuMjk5LTYuMDEzIDUuMjU4LS40MzIgMS44NC0uNzggNC43MzQtLjQ5MSA2LjgzMmwuMDI3LjJjLjM0OCAyLjUyNy44NjUgNi4yOCAxLjIzOSAxMC4zMTYuMTg2IDItLjEwMSAzLjIxLjc1MSA2LjE2Ljg5NSAzLjEgMS4zOTUgNC41NzMgMi4wMTMgNS42ODcuNjQ2IDEuMTY0IDEuNDkzIDIuMDg3IDIuMDMgMy4yOC44NjYgMS45MjQgMi4zOTMgNC4yOSAzLjg3IDYuMWE0OC44MDUgNDguODA1IDAgMCAwIDIuMzYgMi42NjNjMS4wMTYgMS4wNzggMi44MTkgMy4xMSAzLjg5OCA0LjMzMSAxLjUyNiAxLjcyNyAzLjA3NiAzLjI0OCA0LjQyMyAzLjc0MiAxLjIxNy40NDYgMi43MDkuNjQyIDMuNzkzLjkzNiAxLjM2OS4zNzIgMi40OTQuNjM4IDQuNTk3IDAgMS41NDUtLjQ2OCAyLjcyNS0uNjIxIDQuMzcyLTIuNDI0IDIuMDY0LTIuMjU4IDIuODQ2LTMuNTE3IDMuNTEyLTQuNzQ2IDEuMDY1LTEuOTY0IDIuNTI0LTQuNjQ4IDMuNTQxLTYuNDIyLjYxMS0xLjA2OCAyLjIyMS0zLjA4OSA0LjA4Ni04Ljg0NSAxLjU0LTQuNzUyIDIuMzY3LTcuNzYgMi43MzEtOC45OTQuNDE1LTEuNDA4IDEuMDc5LTMuNTgzIDEuMzU1LTYuMTk2LjQ0LTQuMTc2IDEuMTE0LTcuNDgyIDEuMDYyLTExLjAyNi0uMDQ0LTMuMDQ2LjEwNC01LjA0LTEuMDY1LTYuMzA2LS45NS0xLjAyOS0xLjk4OC0yLjAwMS0zLjMwNi0yLjUzNC0xLjk1OS0uNzktMy43NzUtMS4zNTgtNS4yOTgtMS41OTItMS4zNTEtLjIwNy03LjA1LS4zNS0xMS4yMTktLjA1Ny0xLjU2Ny4xMS0zLjYxLjA5Ny05LjE4NS41MDVaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTE4OC4yNjkgNTAuMjE1YzE5LjI3NS00MS44NjcgMTAuNzY2LTQzLjYxMiA0LjkzNy00NC42ODQtNS44MjktMS4wNzMtMjguNDU1IDIuNTMtMjkuNzIgMi44MTctLjQ0Mi4yMTgtOC45MTEgMC00Ljc2NyAxOS41NCAzLjQxNiAxNi4xMDUgMTYuMTkzIDI2LjU5NiAxNy4yNDQgMjcuMjY1IDMuMTQ4IDIuMDAzIDguODM3IDIuNTk1IDEyLjMwNi00LjkzOFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTE2MC40NzIgMTQuNzI3Yy4zOTItLjQwMiA0LjMxNy0zLjMwOSA4Ljk0MS01LjQ3IDMuMDk3LTEuNDQ4IDcuNzczLTEuNjI5IDExLjIwNy0xLjc0OSA4Ljc1OS0uMzY1IDEwLjAwNC45MSAxMi42MzcgMS40OTUuNTYyLjEzOS45MDkuMjc2IDEuNzcxLjU5NVwiLFxuXHR9LFxuXG5cdHtcblx0XHRuYW1lOiBcIjJcIixcblx0XHR0eXBlOiBcIkxhdGVyYWwgSW5jaXNvclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xMzUuMDE2IDYwLjQxYzMuNDQzIDEuMzU1IDcuODM0IDIuNzMgOS42MDEgMi4zNDYgNC4xODUtLjkxIDcuMDQ0LTQuMDE3IDguMTIzLTguMTUyIDIuMDY5LTcuOTI3IDIuMjQ5LTE2LjI4OCAxLjk5NS0yNC40MzYtLjExMy0zLjU5Ni43Mi0xNi44MS00LjE4NC0xOC40NDQtOC4xMzUtNi4xNC0zMi4wODguNDk0LTM2Ljk3OSA4LjA1NS01LjAxMyA3Ljc1MS44NzggMjEuMTMxIDUuNTYgMjcuNzI4IDMuODYyIDUuNDQgOS43MTQgMTAuNDc0IDE1Ljg4NCAxMi45MDNaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEzNC42NSA1NS4zODZjMi43MzIgMS4wNzYgNi4yMTcgMi4xNjcgNy42MiAxLjg2MiAzLjMyMS0uNzIzIDUuNTktMy4xODggNi40NDYtNi40NyAxLjY0Mi02LjI5IDEuNzg2LTEyLjkyNyAxLjU4My0xOS4zOTMtLjA4OS0yLjg1NC41NzItMTMuMzQyLTMuMzItMTQuNjM4LTYuNDU2LTQuODczLTI1LjQ2Ni4zOTItMjkuMzQ4IDYuMzkzLTMuOTc5IDYuMTUyLjY5NiAxNi43NyA0LjQxMyAyMi4wMDYgMy4wNjQgNC4zMTcgNy43MDkgOC4zMTMgMTIuNjA2IDEwLjI0WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTIxLjU2OSAyOC45NTJjLjU1MS0uOTg0IDYuMzU0LTguMjE0IDEyLjg2Ni05LjA0NSAzLjIzOC0uNDEzIDEwLjYxOS0uMTcgMTEuODM4IDBcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiM1wiLFxuXHRcdHR5cGU6IFwiQ2FuaW5lXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTc3LjYzIDY0LjIzNmMxLjY5MiAxLjQwMSAxNS41MTYgMTQuNTgzIDM0LjY5OCAxNi45MDMgNS41NjkuNjc0IDE1LjA1OC03LjE4NCAxNS43ODktMTIuODkgMS4zMzUtMTAuNDIzLTEyLjQ0NC0yOS4yMDUtMjEuOTY1LTMzLjcwMy00LjU0Mi0yLjE0NS0yNS44OTItNC4wMzktMjguNTIzIDIuOTM5LTIuNDcxIDYuNTU3LTYuNTk2IDIxLjI5IDAgMjYuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMjMuMjg1IDY2LjI2N2MxLjA3Mi04LjM2OC0xMC4yMzQtMjMuOTQtMTcuOTktMjcuNjAzLTMuNzItMS43NTctMjEuMjA2LTMuMzA4LTIzLjM2IDIuNDA3LTEuNzU3IDQuNjYtNC4wOSAxMy4yODQtMi4zMDYgMTguMTcgNC4xNSAxMS4zNiA0MC44OTcgMjguNTczIDQzLjY1NiA3LjAyNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNODIuODQgNjAuMDQzYy0uMDEtLjg1NS0uMTkzLTQuNjMuMjU2LTguMTIuNjY3LTUuMTg1LjcwMy01Ljg2NiAxLjI5LTguMTA2LjQzNy0xLjY2NiAyLjA4My00LjkxIDE3LjQ4Ny0zLjc0OFwiLFxuXHRcdFx0XCJNMTAxLjQzOCA2OC40OWMuMzc2LS4wNDUgMi4yODQtNS4xMTIgOS40OTgtNi4zNDRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI0XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBQcmVtb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk05My42ODQgMTA4Ljc0OGMtNy40OTggMy4zOTctMzUuMzY4LTcuMzk3LTM1LjU5Ni03LjQ0MS0xLjQyOS0uODQyLTEyLjIxNS0yLjg1NC05LjA2OC0yOS40MTQuMTQ3LTEuMjM4IDEuMzUzLTIuMDUgMi4yMTgtMi41NTYuOTU2LS41NTkgMy4xNTctMS41OTUgNy41ODctMi43OTQgMi43MDctLjczNCAxMy44NTYtMy41NCAxOC42NzQtLjkyIDIuMjE2IDEuMjA2IDYuMzYzIDQuMTE3IDEwLjQ3MyA3LjAzNiA0LjExIDIuOTE5IDEwLjk1OCA4LjcxNSAxMy4zMjcgMTEuMzM4IDIuMjkxIDIuNTM3IDEwLjMyNCAxMy43NS03LjYxNSAyNC43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTkxLjQ5NSAxMDUuOTMxYy02LjUyOCAyLjk1OC0zMC43OTMtNi40NC0zMC45OTItNi40NzgtMS4yNDMtLjczNC0xMC42MzQtMi40ODYtNy44OTUtMjUuNjEuMTI4LTEuMDc4IDEuMTc4LTEuNzg1IDEuOTMyLTIuMjI1LjgzMi0uNDg3IDIuNzQ4LTEuMzkgNi42MDUtMi40MzMgMi4zNTctLjYzOSAxMi4wNjQtMy4wODIgMTYuMjU4LS44IDEuOTMgMS4wNSA1LjU0IDMuNTg0IDkuMTIgNi4xMjUgMy41NzggMi41NDEgOS41NCA3LjU4OCAxMS42MDMgOS44NzIgMS45OTQgMi4yMDggOC45ODcgMTEuOTcxLTYuNjMgMjEuNTQ5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk01NS4yMzQgOTIuNDE0Yy4wMjItLjI0Mi4wNi0xLjQ2OS44NzUtNy43OS40Ni0zLjU3MyAxLjgxMy01LjQ5IDMuMTM0LTcuMDEgMS4xOC0xLjM1OSAzLjUyNC0zLjE5MyA1Ljg4LTQuMzY1IDEuNDYtLjYzMiAzLjAyOS0xLjEyNiA2LjA0NC0xLjc3Ni44MjYtLjEzOCAxLjQ3Ny0uMTc1IDIuNTI2LS4zOTVcIixcblx0XHRcdFwiTTg3LjAyIDEwMS4zODdjNC4xODMtLjc5MiA4Ljc0Ny05Ljc3NCA4Ljc0Ny05Ljc3NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjVcIixcblx0XHR0eXBlOiBcIlNlY29uZCBQcmVtb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzMuMzk2IDEyNy42NTJjLTEuMDg4LTIuNzEzLTQuNDg2LTExLjg1Mi0zLjk2Mi0xNS4yNDYuNDc3LTMuMDg1IDE0LjQ3LTEyLjAwOCAyMy41OTUtMTIuMDA4IDIuMTc4IDAgMjUuMTU3IDYuNjY1IDM1LjA3MyAxNy45MDggNC41NTEgOS4zMjQtMS42MjQgMjMuMzM5LTE2LjIyIDIzLjMzOS04LjE5MyAwLTIzLjU2My0xLjg5Ny0yNS40NTMtMi4yMTUtMS44OTYtLjMxOS00LjMxNy0xLjEyOC02LjU5Ni0yLjMyMS0xLjI4OS0uNjc1LTItMS4wMzUtMi40NzgtMS42NDctLjY1NS0uODQtMi4xMDEtMy4xNzgtMy45Ni03LjgxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi44MzcgMTI2Ljc3OGMtLjk0NS0yLjM1Ni0zLjg5NS0xMC4yODktMy40NC0xMy4yMzUuNDE0LTIuNjc5IDEyLjU2MS0xMC40MjQgMjAuNDgzLTEwLjQyNCAxLjg5IDAgMjEuODM3IDUuNzg1IDMwLjQ0NSAxNS41NDUgMy45NTEgOC4wOTQtMS40MSAyMC4yNi0xNC4wOCAyMC4yNi03LjExMiAwLTIwLjQ1NC0xLjY0Ny0yMi4wOTUtMS45MjItMS42NDUtLjI3Ny0zLjc0Ny0uOTgtNS43MjUtMi4wMTUtMS4xMi0uNTg2LTEuNzM3LS44OTktMi4xNTEtMS40My0uNTctLjcyOS0xLjgyNS0yLjc1OS0zLjQzNy02Ljc3OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNDAuOCAxMzEuMjIxYy00LjAwMy0yMC4yNzggOC40NDItMjAuOTc0IDEzLjc3OS0yMy42OTJcIixcblx0XHRcdFwiTTc0LjA1NiAxMzQuNzI5YzYuMzUtNC4yNjQgNi4zNDMtMTAuNTAzIDYuNDg5LTExLjQ0OFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjZcIixcblx0XHR0eXBlOiBcIkZpcnN0IE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zNS41MzkgMjAzLjMyM2MtMy4zNjMuMTk2LTMyLjc4OC00LjAyLTI4LjQ5NS00Mi40NjUgMy42MzEtMjAuNDA4IDI2LjIxLTIzLjM2NCAyOS41NTctMjIuOTEyIDkuMDE5LS43NDUgMjUuNzI3IDYuNzQzIDI5LjI1NSA5LjQwMyA0LjU0NiAzLjQyNyA3LjM4NCA1LjY4MSA4LjYwNiA3LjA5MiAyLjQzNiAyLjgxNCA0LjQ5OSA1LjExIDQuNyA2LjMxMy4yODQgMS43MDMgMS4zMTcgNC43Mi0yLjI0OCA5LjY4Ny0yLjQ1MyAzLjQxOC0yLjk1NyA2LjY2My0yLjg1NiAxMC4yMjMuMTE4IDQuMTg1LjM3IDkuNzU0LS41MjQgMTEuNjMtLjU5MiAxLjI0NC0uOTg0IDIuNjI3LTIuMzc1IDMuMzkyLTIuMDE1IDEuMTA4LTQuNjEgMi4zMTctMTEuOTMgMy43NDgtMy42MjMuNzA4LTkuMzA5IDEuODMtMTIuNDAxIDIuMjkyLTUuMTkuNzc3LTguNDIzIDEuNDMtMTEuMjg5IDEuNTk3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi41MTUgMTk5LjA4NWMtMi45MjcuMTctMjguNTQtMy40OTktMjQuODAzLTM2Ljk2MyAzLjE2LTE3Ljc2NCAyMi44MTQtMjAuMzM3IDI1LjcyNy0xOS45NDQgMTAuODItLjg5MyAyNS43MDkgNS45ODkgMzIuOTU1IDE0LjM1OCAyLjEyIDIuNDUgMy45MTcgNC40NDggNC4wOTEgNS40OTUuMjQ4IDEuNDgyLjUxMyA0LjI2OC0yLjU5IDguNTkxLTIuMTM1IDIuOTc1LTEuOTQgNS42NDEtMS44NTIgOC43NC4wOTYgMy40MTcgMS40MDIgMTAuOTE3LTIuNTIzIDEzLjA3Ni0xLjc1NC45NjQtNC4wMTMgMi4wMTYtMTAuMzg0IDMuMjYxLTYuNzYyIDEuMzIyLTEzLjcyOCAyLjk4NC0yMC42MjEgMy4zODZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTM3LjEzMiAxOTIuMTQ3YzEuMjg4LS4zNzIgMy4zODUtMi4wNzEgNS4xODMtNS40MzhtOS4wMDgtMzUuOThjMS4xODggMS4yMjQgMi4xMTQgNi4zODUuMTUgMTEuMzYzbTAgMGMtMS41MzcgMy44OTktNC45NDQgOS4zNzgtMTEuMTk1IDkuMzc4IDYuODc3LjMyMSA0LjY1MSAxMC4zNDMgMi4wMzcgMTUuMjM5bTkuMTU5LTI0LjYxN2MxLjQ3LTIuNTg5IDQuOTY2LTcuNTcyIDguMDY4LTguMjE3bS0xNy4yMjcgMzIuODM0Yy0uMTg2IDIuMzQ4LjA0NCA3LjM1MSAyLjQ1OCA4LjU4NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjdcIixcblx0XHR0eXBlOiBcIlNlY29uZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk00Ljk2OSAyNDguMTMyYy0xLjE4OC0yLjc0LTE0LjcwOC0yNy4xNTIgMTIuMzE5LTQyLjEzOSAxLjgzNi0xLjAxOCAyNC41MDgtNy43MTEgNDUuMjggMTAuODc0IDIuMjc0IDIuMDM1IDQuNDU1IDMuNTc5IDUuNDAzIDUuMTAyIDEuNDE0IDIuMjcxIDIuMTI4IDMuNDM1IDEuNjg3IDUuNjA2LS4zODcgMS45MDEtMS41NCAzLjY0Mi0zLjc3IDcuNzExLTEuMTI3IDIuMDU2LTEuODU0IDMuNDI3LTEuMzY5IDcuODI0LjE3NSAxLjU5LjYyNyAzLjkzNS4wNDggNi42MDMtLjQ2NiAyLjE0Ny0uOTQxIDMuNTY3LTIuNTc4IDUuMDA2LTIuNTMgMi4yMjQtNS4zMDcgMy42NDUtOS4wNzYgNC4zNS0xLjA5MS4yMDQtMy4xMzMuODExLTcuNTI1IDEuNzAyLTIuNzc2LjU2My02LjYxOSAxLjIzNC0xMC4wOSAxLjY1NC0zLjQ3LjQyLTYuNDc4LjYzOC04LjYxMi42MzYtMy4zNTMtLjAwMi02LjczNC4wMzEtOS40NjUtMS40OGwtLjAxOC0uMDFjLTEuNjU0LS45MTUtNC4wNzYtMi4yNTUtNi4yNDUtNC43MzItMi4yNTgtMi41NzktNC41OTEtNS40ODItNS45ODktOC43MDdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTguNzk5IDI0Ni4yOGMtMS4xMjgtMi4zNTItMTIuODQzLTIzLjcwOSAxMC43NTYtMzYuNzk2IDEuNjA0LS44ODkgMjEuNC02LjczMiAzOS41MzggOS40OTYgMS45ODYgMS43NzcgMy44OSAzLjEyNSA0LjcxNyA0LjQ1NCAxLjIzNSAxLjk4MyAxLjg1OSAzIDEuNDczIDQuODk1LS4zMzcgMS42Ni0xLjM0MyAzLjE4LTMuMjkxIDYuNzM0LS45ODQgMS43OTUtMS42MTkgMi45OTItMS4xOTYgNi44MzEuMTU0IDEuMzg5LjU0OCAzLjQzNi4wNDIgNS43NjYtMi44NzIgMTMuMjMxLTMxLjIxMyAxMS42NTctMzMuMDc2IDExLjY1NmgtLjAwN2MtMi45MzYtLjAwMy0xMi43MTQtLjAxLTE4Ljk1Ni0xMy4wMzZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMyLjE0IDI1NS4wOTFjLjc0OC0uMzAzIDIuMjgtMi4zNzggMy4xMDMtNS43MjFtLTEuOTktMzUuNDgxYzMuMDA5IDEuMzYzIDQuMDE1IDQuODg4IDMuNzM2IDguNzE2bTAgMGMtLjQyNCA1LjgzNS0zLjgzMiAxMi4zNzctNy42ODMgMTMuMDQ5IDYuOTU0IDEuMTggNy4yNDQgOC40MTQgNS45MzcgMTMuNzE2bTEuNzQ2LTI2Ljc2NWMuMzI3LTIuMjQgMS44Mi02Ljk1OCA1LjE5LTcuOTFtLTYuOTM2IDM0LjY3NWMuNjUgMi4xNzIgMi41NSA2LjUwNyA0Ljk2NyA2LjQ3MVwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjhcIixcblx0XHR0eXBlOiBcIlRoaXJkIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTS44OTUgMjkxLjMzMWMtLjM2Mi0xLjIxOC0uMTE2LTMuNDExLS4xNjQtMy44OTItLjAzNS0uMzQuMTI0LTMuNDM4LjcyNy01LjU1OCAxLjA0LTIuODIgMS44MDgtNC43NCAyLjU3My01Ljc1MiAxLjQxMy0xLjg3MiAzLjkxMy00Ljc2OSA3LjEzNS03LjIgMi4yODgtMS43MjYgNS4wMDMtMy4xODcgOC4xMzMtNC4zMzkgMi4yNDktLjgyOCA0LjM2Mi0xLjUwMiA3LjczMi0xLjY5MyAyLjE3NS0uMTIzIDUuMjUtLjE1NSA4Ljc4Mi4xMDhzNy40MDMuODA0IDEwLjM1MyAxLjM5NyA0LjkyIDEuMjE4IDYuNjQxIDEuODkzYzEuNzIyLjY3NSAzLjE0OCAxLjM4OSAzLjk3MiAxLjc2OCAxLjUxLjY5NiAyLjkgMS4yMDkgMy44MjQgMi4xNCAxLjg1NyAxLjg3MiAyLjYxNyAzLjMzNCAyLjkxMiA0LjgwNy4yNTQgMS4yNy4yNTIgMy4yMTYtLjIyNCA0LjUzMS0uNjcyIDEuODU5LTEuNDY4IDIuODU2LTEuNDY4IDUuNyAwIDMuODU3IDEuNzEzIDUuOTUgMS45MTUgOC4zNTYuMzM3IDQuMDA4LjMxNyA2LjE2OC0uNDIgNy40ODUtLjU5MSAxLjA1Ny0xLjUzMiAyLjM4My01LjU0MSA1LjA4OC0xLjE3My43OTEtMi42ODQgMS42MzQtNi42NDMgMy40MjQtMi43NjIgMS4yNDgtNi45NzcgMy4xMDgtOS4yMDUgNC4xMDctMi40NzMgMS4xMDktNC42NjcgMi4yMjYtOC4yMzQgMy4wNTMtMi41NC41ODktNS42MzEuNzg0LTkuMDEyLjE4Ni0yLjMwNy0uNDA4LTUuNDQ5LTEuMTgzLTkuMTA3LTMuODI3LTMuOTI4LTIuODM5LTYuNTMtNC44OTctNy40OTctNi4wNDEtLjg2Ni0xLjAyNi0xLjcxNC0yLjA4Mi0yLjQxMi0zLjU1NS0uOTA0LTEuOTA1LTIuMjcyLTMuNjQzLTMtNS45MTYtLjg0Ni0yLjYzMy0xLjE2Ny00LjIzMy0xLjc3Mi02LjI3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk00LjczMiAyOTEuMTc1Yy0uMzE3LTEuMDctLjEwMS0yLjk5NC0uMTQ0LTMuNDE2LS4wMy0uMjk5LjExLTMuMDE5LjYzOC00Ljg4LjkxNC0yLjQ3NiAxLjU4OC00LjE2MSAyLjI2LTUuMDUgMS4yNC0xLjY0MyAzLjQzNC00LjE4NyA2LjI2My02LjMyMSAyLjAwOS0xLjUxNSA0LjM5My0yLjc5NyA3LjE0LTMuODA5IDEuOTc0LS43MjcgMy44My0xLjMxOCA2Ljc4OC0xLjQ4NiAxLjkxLS4xMDggNC42MS0uMTM2IDcuNzEuMDk1IDMuMS4yMzEgNi40OTguNzA2IDkuMDg4IDEuMjI2IDIuNTkuNTIxIDQuMzE5IDEuMDcgNS44MyAxLjY2MiAxLjUxMi41OTIgMi43NjQgMS4yMiAzLjQ4NyAxLjU1MyAxLjMyNi42MSAyLjU0NyAxLjA2MSAzLjM1NyAxLjg3OCAxLjYzIDEuNjQzIDIuMjk4IDIuOTI3IDIuNTU3IDQuMjIuMjIzIDEuMTE1LjIyMSAyLjgyNC0uMTk2IDMuOTc4LS41OSAxLjYzMi0xLjI5IDIuNTA3LTEuMjkgNS4wMDQgMCAzLjM4NSAxLjUwNCA1LjIyMyAxLjY4MiA3LjMzNS4yOTYgMy41MTkuMjc4IDUuNDE2LS4zNjkgNi41NzEtLjUyLjkyOC0xLjM0NSAyLjA5My00Ljg2NSA0LjQ2Ny0xLjAzLjY5NS0yLjM1NSAxLjQzNS01LjgzMSAzLjAwNi0yLjQyNSAxLjA5Ni02LjEyNiAyLjcyOC04LjA4MiAzLjYwNi0yLjE3Ljk3My00LjA5NiAxLjk1NC03LjIyOCAyLjY4LTIuMjI5LjUxNy00Ljk0NC42ODgtNy45MTIuMTYzLTIuMDI0LS4zNTgtNC43ODMtMS4wMzgtNy45OTUtMy4zNTktMy40NDgtMi40OTMtNS43MzItNC4yOTktNi41OC01LjMwNC0uNzYxLS45MDEtMS41MDUtMS44MjctMi4xMTktMy4xMjEtLjc5My0xLjY3Mi0xLjk5NC0zLjE5OC0yLjYzNC01LjE5My0uNzQyLTIuMzEyLTEuMDI0LTMuNzE3LTEuNTU1LTUuNTA1WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMS43MzIgMzA5LjUxMWMxLjQ2Mi0uODk3IDIuNTg1LTMuNjcyIDIuOTMtNi43MjZtLTIuOTMtMjkuNDUzYzIuMTE0IDEuMDkyIDMuNDkgNC40NCAzLjYxIDguMDYybTQuMTMzLTcuNThjLTEuMzUzIDEuMDU4LTQuMDc0IDQuMDU3LTQuMTM0IDcuNThtMCAwYy4xNTUgNC42OTMtMS43OTcgOS44NDYtNi45ODMgMTEuMTUyIDUuMzc5LS4zNTcgNi44NTkgNS4zMDUgNi4zMDMgMTAuMjM5bTQuNTU3IDcuMjRjLTEuNjc4LS42NzEtNC45MzgtMy4wNTgtNC41NTctNy4yNFwiLFxuXHRcdF0sXG5cdH0sXG5dO1xuXG5leHBvcnQgY29uc3QgTmV3VGVldGhQYXRocyA9IFtcblxuXHR7XG5cdFx0XCJuYW1lXCI6IFwiMVwiLFxuXHRcdFwidHlwZVwiOiBcIkNlbnRyYWwgSW5jaXNvclwiLFxuXHRcdFwib3V0bGluZVBhdGhcIjogXCJNMzk3Ljk5MiA1MS4zMzlDMzk2LjEyNiA1MS4xODQxIDM5My40OTUgNTAuNTYxNyAzOTMuNDk1IDUwLjU2MTdDMzkzLjQ5NSA1MC41NjE3IDM4OC44MDQgNDkuNjQ1MyAzODYuOTAzIDQ4LjU2NzdDMzg0Ljg3MyA0Ny40MTYyIDM4Mi4yMTMgNDUuNzE5NSAzODEuODM4IDQ0LjA1MTRDMzgxLjQ4NyA0Mi40ODM2IDM4MS4yMTYgNDAuMDIyNiAzODEuNDc4IDM4LjI0M0wzODEuNTAzIDM4LjA3MjdDMzgxLjgyIDM1LjkyODcgMzgyLjI5IDMyLjc0NTIgMzgyLjY0MiAyOS4zMTkxQzM4Mi44MTcgMjcuNjIwNyAzODIuNTgzIDI2LjU5MDUgMzgzLjMzMiAyNC4wOTExQzM4NC4xMTggMjEuNDY1MiAzODQuNTU1IDIwLjIxNzkgMzg1LjA5IDE5LjI3NjZDMzg1LjY0OCAxOC4yOTM3IDM4Ni4zNzUgMTcuNTE1OSAzODYuODQxIDE2LjUwNzJDMzg3LjU5MyAxNC44ODAyIDM4OC45MSAxMi44ODIyIDM5MC4xOCAxMS4zNTczQzM5MC45MDIgMTAuNDkwNSAzOTEuNjAyIDkuNzQ0NjEgMzkyLjIwNyA5LjExNDU0QzM5My4wOCA4LjIwNjY5IDM5NC42MjkgNi40OTU5IDM5NS41NTYgNS40NjcxOUMzOTYuODY2IDQuMDEzMjkgMzk4LjE5NiAyLjczMzY0IDM5OS4zNDQgMi4zMjU0N0M0MDAuMzgyIDEuOTU2NDggNDAxLjY1MiAxLjgwMjg5IDQwMi41NzUgMS41NjE5MkM0MDMuNzQxIDEuMjU3NTEgNDA0LjcgMS4wNDA0MSA0MDYuNDgxIDEuNTk5ODhDNDA3Ljc4OSAyLjAxMDc4IDQwOC43OSAyLjE1MDkzIDQxMC4xNzUgMy42OTU4QzQxMS45MDkgNS42MzE0NyA0MTIuNTYzIDYuNzA3OTUgNDEzLjExOSA3Ljc1NzQ3QzQxNC4wMDcgOS40MzUzNCA0MTUuMjI0IDExLjcyNzMgNDE2LjA3MyAxMy4yNDM1QzQxNi41ODQgMTQuMTU1NCA0MTcuOTM1IDE1Ljg4NTkgNDE5LjQ3MSAyMC43OTE5QzQyMC43MzkgMjQuODQyMiA0MjEuNDE3IDI3LjQwNDggNDIxLjcxNiAyOC40NTY0QzQyMi4wNTcgMjkuNjU2MiA0MjIuNjAyIDMxLjUwOTMgNDIyLjgxNSAzMy43MzEzQzQyMy4xNTQgMzcuMjgzMiA0MjMuNjk5IDQwLjA5NzggNDIzLjYyNSA0My4xMDc3QzQyMy41NjIgNDUuNjk1OCA0MjMuNjcxIDQ3LjM5MDUgNDIyLjY2NyA0OC40NTY3QzQyMS44NTIgNDkuMzIyNyA0MjAuOTYyIDUwLjE0MDMgNDE5LjgzNyA1MC41ODE1QzQxOC4xNjYgNTEuMjM2NyA0MTYuNjE5IDUxLjcwNDMgNDE1LjMyMyA1MS44OTAxQzQxNC4xNzQgNTIuMDU0OCA0MDkuMzMgNTIuMTI5MiA0MDUuNzkxIDUxLjg0NDVDNDA0LjQ2MSA1MS43Mzc1IDQwMi43MjUgNTEuNzMxOSAzOTcuOTkyIDUxLjMzOVpcIixcblx0XHRcInNoYWRvd1BhdGhcIjogXCJNNDEwLjU2MiAxMC4yMzkzQzQyNi41ODggNDUuOTY5OCA0MTkuMzQ0IDQ3LjM4MTMgNDE0LjM4MyA0OC4yNDM2QzQwOS40MjEgNDkuMTA1OCAzOTAuMjI5IDQ1Ljg1NjYgMzg5LjE1NiA0NS42MDEzQzM4OC43ODMgNDUuNDEyMiAzODEuNTg2IDQ1LjUyNjggMzg1LjI3IDI4Ljk2MTNDMzg4LjMwNyAxNS4zMDcgMzk5LjI1IDYuNTAwOCA0MDAuMTQ5IDUuOTQxMjVDNDAyLjg0IDQuMjY1NCA0MDcuNjc4IDMuODEwMjUgNDEwLjU2MiAxMC4yMzkzWlwiLFxuXHRcdFwibGluZUhpZ2hsaWdodFBhdGhcIjogXCJNMzg2LjY1IDQwLjE1NjhDMzg2Ljk3OSA0MC41MDEzIDM5MC4yOSA0My4wMDM4IDM5NC4yIDQ0Ljg3OUMzOTYuODE5IDQ2LjEzNDcgNDAwLjc5IDQ2LjMyNzUgNDAzLjcwNyA0Ni40NTgyQzQxMS4xNDUgNDYuODQyMiA0MTIuMjE0IDQ1Ljc2ODggNDE0LjQ1NiA0NS4yOTQ0QzQxNC45MzQgNDUuMTgwOSA0MTUuMjMgNDUuMDY3NSA0MTUuOTY1IDQ0LjgwMzdcIlxuXHR9LFxuXHR7XG5cdFx0XCJuYW1lXCI6IFwiMlwiLFxuXHRcdFwidHlwZVwiOiBcIkxhdGVyYWwgSW5jaXNvclwiLFxuXHRcdFwib3V0bGluZVBhdGhcIjogXCJNMzM5LjM2MiA1LjkwMjI3QzM0Mi4yNTUgMy43MTQxNiAzNDYuMDM4IDEuMjU3NzQgMzQ3LjgwNyAxLjE1Njg4QzM1MS45OTcgMC45MTgwNDkgMzU1LjUxNSAzLjEwNjIyIDM1Ny42MjUgNi43MzYyM0MzNjEuNjY4IDEzLjY5NDEgMzY0LjA0MyAyMS41NjA5IDM2NS45NTEgMjkuMzM5NkMzNjYuNzkzIDMyLjc3MjcgMzcxLjA2NCA0NS4wNjEgMzY2Ljg2NiA0Ny44OTdDMzYwLjgwNSA1NS44NDcyIDMzNi40NDQgNTUuODY4NCAzMjkuODMzIDQ5Ljk5NzlDMzIzLjA1NyA0My45ODA1IDMyNS4wOSAyOS43Njc1IDMyNy43NyAyMi4yOTIxQzMyOS45ODEgMTYuMTI4MSAzMzQuMTc4IDkuODI0MDMgMzM5LjM2MiA1LjkwMjI3WlwiLFxuXHRcdFwic2hhZG93UGF0aFwiOiBcIk0zNDAuMzQxIDEwLjc1MzNDMzQyLjYzNyA5LjAxNjc0IDM0NS42MzkgNy4wNjcyMSAzNDcuMDQ0IDYuOTg3MTdDMzUwLjM2OSA2Ljc5NzYyIDM1My4xNjEgOC41MzQyNSAzNTQuODM1IDExLjQxNTJDMzU4LjA0NCAxNi45MzczIDM1OS45MjkgMjMuMTgwNyAzNjEuNDQzIDI5LjM1NDJDMzYyLjExMiAzMi4wNzg4IDM2NS41MDIgNDEuODMxNCAzNjIuMTY5IDQ0LjA4MjJDMzU3LjM1OSA1MC4zOTE4IDMzOC4wMjUgNTAuNDA4NiAzMzIuNzc5IDQ1Ljc0OTZDMzI3LjQwMSA0MC45NzM4IDMyOS4wMTQgMjkuNjkzOCAzMzEuMTQyIDIzLjc2MUMzMzIuODk2IDE4Ljg2OSAzMzYuMjI3IDEzLjg2NTggMzQwLjM0MSAxMC43NTMzWlwiLFxuXHRcdFwibGluZUhpZ2hsaWdodFBhdGhcIjogXCJNMzM0Ljk2NCAzOS4yMTMxQzMzNS43NDMgMzkuOTk5OCAzNDMuMTI4IDQ1LjMxNjcgMzQ5LjQ5NCA0NC4zOTAzQzM1Mi42NiA0My45Mjk3IDM1OS41NjQgNDEuNzU3NyAzNjAuNjcgNDEuMjc2N1wiXG5cdH0sXG5cdHtcblx0XHRcIm5hbWVcIjogXCIzXCIsXG5cdFx0XCJ0eXBlXCI6IFwiQ2FuaW5lXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk0yNzUuMjg1IDM2LjcwMTZDMjc1LjQ2MSAzNC44MzU3IDI3NS44NDkgMTguNTQ3MyAyODYuMDE4IDUuNTc4NjdDMjg4Ljk3MSAxLjgxMzI1IDI5OS40MzQgMC44MjkwNzEgMzAzLjMxNiAzLjgyOTg5QzMxMC40MDggOS4zMTEzOSAzMTMuNDI2IDI4Ljk1MDYgMzEwLjM5NiAzNy40MDU5QzMwOC45NTEgNDEuNDM5MyAyOTcuMjE1IDU1LjQ1ODcgMjkxLjQyIDUyLjgzNjZDMjg1Ljk3NSA1MC4zNzI3IDI3NC42IDQzLjk3NDIgMjc1LjI4NSAzNi43MDE2WlwiLFxuXHRcdFwic2hhZG93UGF0aFwiOiBcIk0zMDEuNTk4IDcuOTM5NDVDMzA3LjI5MSAxMi4zNDA2IDMwOS44NjQgMjguNTUxMyAzMDcuMzk2IDM1LjQzOTJDMzA2LjIxMiAzOC43NDI3IDI5Ni42MDEgNTAuMjI1IDI5MS44NTQgNDguMDc3NEMyODcuOTg0IDQ2LjMyNjUgMjgxLjM3NiA0Mi41MzIxIDI3OS41MDUgMzguNTA4NkMyNzUuMTU2IDI5LjE1MzUgMjg2LjkzNyAtMy4zOTI0NyAzMDEuNTk4IDcuOTM5NDVaXCIsXG5cdFx0XCJsaW5lSGlnaGxpZ2h0UGF0aFwiOiBcIk0yODEuMjU1IDM1LjcxMzJDMjgxLjc2NiAzNi4yMzQ5IDI4My45MzMgMzguNjIyNSAyODYuMzA3IDQwLjQ1NjNDMjg5LjgzNyA0My4xODE2IDI5MC4yNjkgNDMuNTcwNiAyOTEuOTc0IDQ0LjU2NzNDMjkzLjI0MyA0NS4zMDkxIDI5Ni4xOTIgNDYuMjcyNCAzMDQuNzgyIDM2LjI4MDMgTTI4Ny4zNzkgMTkuNDAxMkMyODcuNjMyIDE5LjIwMTYgMjkxLjgzOSAyMS4xMDY2IDI5Ni45MzMgMTcuNDk5XCJcblx0fSxcblx0e1xuXHRcdFwibmFtZVwiOiBcIjRcIixcblx0XHRcInR5cGVcIjogXCJGaXJzdCBQcmVtb2xhclwiLFxuXHRcdFwib3V0bGluZVBhdGhcIjogXCJNMjM2Ljk4IDQuODc4NTRDMjMxLjM0IDguOTE5ODkgMjI3LjQ3NCAzMy44MTIxIDIyNy40MSAzMy45OTcxQzIyNy40MjMgMzUuMzk0OCAyMjQuMzQ2IDQ0LjExNTcgMjQ1LjA1OSA1My4wMTE3QzI0Ni4wMjUgNTMuNDI2NiAyNDcuMTI1IDUyLjg4OCAyNDcuODYgNTIuNDY5NUMyNDguNjcgNTIuMDA3MyAyNTAuMzU0IDUwLjgzNzYgMjUzLjA5NiA0OC4xMUMyNTQuNzcyIDQ2LjQ0MjkgMjYxLjUxOSAzOS40ODcyIDI2MS42MzcgMzQuODY2NUMyNjEuNjkxIDMyLjc0MDYgMjYxLjMxNCAyOC40ODY4IDI2MC45MTYgMjQuMjU2NUMyNjAuNTE3IDIwLjAyNjIgMjU5LjE3MiAxMi41ODUxIDI1OC4yNTUgOS43NTAyQzI1Ny4zNyA3LjAwOTA1IDI1Mi41NjkgLTMuNTc5NzUgMjM2Ljk4IDQuODc4NTRaXCIsXG5cdFx0XCJzaGFkb3dQYXRoXCI6IFwiTTIzOC4xMTQgNy42NjM0NkMyMzMuMjA0IDExLjE4MiAyMjkuODM4IDMyLjg1NDQgMjI5Ljc4MiAzMy4wMTU1QzIyOS43OTMgMzQuMjMyNCAyMjcuMTE0IDQxLjgyNTIgMjQ1LjE0OCA0OS41NzA2QzI0NS45ODkgNDkuOTMxNyAyNDYuOTQ3IDQ5LjQ2MjkgMjQ3LjU4NiA0OS4wOTg1QzI0OC4yOTMgNDguNjk2MSAyNDkuNzU4IDQ3LjY3NzcgMjUyLjE0NiA0NS4zMDI5QzI1My42MDUgNDMuODUxNCAyNTkuNDc5IDM3Ljc5NTUgMjU5LjU4MiAzMy43NzI0QzI1OS42MjkgMzEuOTIxNSAyNTkuMzAxIDI4LjIxOCAyNTguOTU0IDI0LjUzNDhDMjU4LjYwNyAyMC44NTE3IDI1Ny40MzUgMTQuMzczMSAyNTYuNjM4IDExLjkwNUMyNTUuODY2IDkuNTE4MzggMjUxLjY4NyAwLjI5OTI1NSAyMzguMTE0IDcuNjYzNDZaXCIsXG5cdFx0XCJsaW5lSGlnaGxpZ2h0UGF0aFwiOiBcIk0yMzIuNjk5IDM5LjgyNzdDMjMyLjg4NSAzOS45MTM4IDIzMy43OTYgNDAuNDAyOCAyMzguNzUzIDQyLjQ3MTlDMjQxLjU1NSA0My42NDE2IDI0My41MjYgNDMuNDYyMyAyNDUuMTkyIDQzLjEzOTFDMjQ2LjY4IDQyLjg1MDIgMjQ5LjAwNyA0MS45MTIxIDI1MC44NTYgNDAuNjg2QzI1MS45MzIgMzkuODg2NCAyNTIuOTU0IDM4Ljk0OTkgMjU0LjY5OCAzNy4wMjMxQzI1NS4xNDcgMzYuNDc4MiAyNTUuNDQ5IDM2LjAxODkgMjU2LjA1MiAzNS4zNDU4IE0yMzkuNTQ1IDEyLjg0NDJDMjQxLjg4NSAxMC4xMjUyIDI1MC4zNjYgMTAuNTc5MyAyNTAuMzY2IDEwLjU3OTNcIlxuXHR9LFxuXHR7XG5cdFx0XCJuYW1lXCI6IFwiNVwiLFxuXHRcdFwidHlwZVwiOiBcIlNlY29uZCBQcmVtb2xhclwiLFxuXHRcdFwib3V0bGluZVBhdGhcIjogXCJNMTg2LjQ4NSA0NS44OTA1QzE4OC4zOSA0Ny40OTE1IDE5NC44NzggNTIuNjY4IDE5Ny43NjIgNTMuMTQ1N0MyMDAuMzg0IDUzLjU4MDEgMjExLjMxOCA0NC42MzQ0IDIxMy43NDMgMzcuMjU0QzIxNC4zMjIgMzUuNDkyOCAyMTUuMDM4IDE1LjEzODQgMjA4LjU4IDQuMTMxNTJDMjAyLjI0OCAtMi4wMjcwMSAxODkuMjczIC0wLjc1NjY1OCAxODUuMzk1IDExLjA0NzdDMTgzLjIxOCAxNy42NzM0IDE4MC42NjggMzAuNjA4IDE4MC40MjMgMzIuMjIwNUMxODAuMTc3IDMzLjgzODMgMTgwLjE4OCAzNi4wMTE3IDE4MC41NDcgMzguMTcxNkMxODAuNzUxIDM5LjM5MzMgMTgwLjg1MyA0MC4wNjQ5IDE4MS4yMjEgNDAuNjEzNUMxODEuNzI2IDQxLjM2NjIgMTgzLjIzMyA0My4xNTc0IDE4Ni40ODUgNDUuODkwNVpcIixcblx0XHRcInNoYWRvd1BhdGhcIjogXCJNMTg4LjEwNyA0My4zNDAzQzE4OS43NjEgNDQuNzMwMSAxOTUuMzkzIDQ5LjIyMzYgMTk3Ljg5NiA0OS42MzgzQzIwMC4xNzIgNTAuMDE1NCAyMDkuNjY0IDQyLjI0OTkgMjExLjc2OSAzNS44NDMyQzIxMi4yNzEgMzQuMzE0MyAyMTIuODkzIDE2LjY0NTMgMjA3LjI4NyA3LjA5MDUzQzIwMS43OTEgMS43NDQ0OSAxOTAuNTI3IDIuODQ3MjQgMTg3LjE2IDEzLjA5NDNDMTg1LjI3MSAxOC44NDU4IDE4My4wNTcgMzAuMDc0IDE4Mi44NDUgMzEuNDczOEMxODIuNjMxIDMyLjg3ODIgMTgyLjY0MSAzNC43NjQ4IDE4Mi45NTMgMzYuNjM5OEMxODMuMTI5IDM3LjcwMDMgMTgzLjIxOCAzOC4yODMyIDE4My41MzcgMzguNzU5NEMxODMuOTc2IDM5LjQxMjkgMTg1LjI4NCA0MC45Njc4IDE4OC4xMDcgNDMuMzQwM1pcIixcblx0XHRcImxpbmVIaWdobGlnaHRQYXRoXCI6IFwiTTE4NS41NjYgMzguOTU0QzIwMC45MDIgNDcuNTc5NiAyMDQuNzcyIDM3LjY5OTkgMjA4LjM4OCAzNC4xMDYxIE0xOTEuNTY2IDExLjEyNjhDMTk2LjcwMiA3LjEyNDY0IDIwMS43NDUgOC43ODc2MiAyMDIuNTQ5IDguOTIxMDVcIlxuXHR9LFxuXHR7XG5cdFx0XCJuYW1lXCI6IFwiNlwiLFxuXHRcdFwidHlwZVwiOiBcIkZpcnN0IE1vbGFyXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk0xMjguOTA0IDQ1Ljg5NDFDMTMwLjY3NiA0Ny4zMDAxIDE0NS44ODQgNjEuOTc1NSAxNjIuMTQ1IDQ1LjE0MjNDMTYzLjI0OSA0My45OTg2IDE3Mi41ODkgMjguNzI1NSAxNjMuMDY1IDkuODg3OTJDMTYyLjAyMiA3LjgyNTE0IDE2MS4zMiA1LjkyNzU4IDE2MC4zOTIgNC45MzU1QzE1OS4wMDggMy40NTU5MyAxNTguMjk2IDIuNzA1MiAxNTYuNjIyIDIuNjAyNzlDMTU1LjE1NSAyLjUxMzExIDE1My42NTYgMy4wMTQ1OSAxNTAuMjQyIDMuODQ4NzlDMTQ4LjUxNyA0LjI3MDIgMTQ3LjM3MiA0LjUzMzA5IDE0NC4yNTEgMy4zMTY4QzE0My4xMjEgMi44NzY3NSAxNDEuNDk1IDIuMDg2NjUgMTM5LjQzIDEuOTg3MzhDMTM3Ljc2OCAxLjkwNzUxIDEzNi42MzYgMS45NzY1IDEzNS4yNjIgMi44OTIwOEMxMzMuMTQgNC4zMDcxNyAxMzEuNTU2IDYuMDYwMDcgMTMwLjMwMSA4LjY3ODM4QzEyOS45MzggOS40MzY3MiAxMjkuMDk0IDEwLjgxMTcgMTI3LjU4MSAxMy44NDk3QzEyNi42MjUgMTUuNzcgMTI1LjM4MSAxOC40NDk1IDEyNC4zOTQgMjAuOTA2M0MxMjMuNDA2IDIzLjM2MzEgMTIyLjY1NyAyNS41MjA0IDEyMi4yNCAyNy4wODE0QzEyMS41ODUgMjkuNTM1MSAxMjAuODk4IDMyLjAwMTcgMTIxLjQ2OCAzNC4yOTU3TDEyMS40NzEgMzQuMzEwMkMxMjEuODE3IDM1LjcgMTIyLjMyMiAzNy43MzQ1IDEyMy43MDkgMzkuODA2OEMxMjUuMTUzIDQxLjk2MzcgMTI2LjgxOSA0NC4yMzk3IDEyOC45MDQgNDUuODk0MVpcIixcblx0XHRcInNoYWRvd1BhdGhcIjogXCJNMTMxLjAxIDQzLjQ1NTlDMTMyLjUwOSA0NC43NDE0IDE0NS44MzYgNTcuNDk3OSAxNjAuMDM0IDQyLjc5OTRDMTYwLjk5OSA0MS44MDA4IDE2OS4xNTQgMjguNDY0NiAxNjAuODM4IDEyLjAxNkMxNTkuOTI3IDEwLjIxNDkgMTU5LjMxNSA4LjU1Nzk2IDE1OC41MDQgNy42OTE3QzE1Ny4yOTYgNi4zOTk3NiAxNTYuNjc0IDUuNzQ0MjQgMTU1LjIxMiA1LjY1NDgyQzE1My45MzIgNS41NzY1MSAxNTIuNjIzIDYuMDE0MzkgMTQ5LjY0MSA2Ljc0MjhDMTQ4LjEzNSA3LjExMDc2IDE0Ny4xMzUgNy4zNDAzMiAxNDQuNDEgNi4yNzgyN0MxNDMuNDI0IDUuODk0MDQgMTQyLjAwNCA1LjIwNDE0IDE0MC4yIDUuMTE3NDZDMTI5Ljk1OSA0LjYyNTE5IDEyNS41NTUgMjUuNjY2IDEyNS4xOTEgMjcuMDI5TDEyNS4xODkgMjcuMDMzOEMxMjQuNjE2IDI5LjE4MjIgMTIyLjcwNSAzNi4zMzU5IDEzMS4wMSA0My40NTU5WlwiLFxuXHRcdFwibGluZUhpZ2hsaWdodFBhdGhcIjogXCJNMTUzLjg1NCAyNy40NzQyQzE0OS41MDIgMjYuNjQwOSAxNDQuMDQ5IDI3Ljg1MTkgMTQyLjgwMiAzMC41MzcyQzE0My4zMDIgMjUuMjE4OSAxMzguMDY3IDIzLjU4ODkgMTMzLjkzMiAyMy41MDUxIE0xNTMuODU0IDI3LjQ3NDJDMTU2LjcwOSAyOC4wMjA5IDE1OS4wOSAyOS40NDc2IDE1OS40OTggMzEuOTE1MyBNMTUzLjg1NCAyNy40NzQyQzE1NS41NTYgMjcuNjc0NiAxNTkuMyAyNy41MDYyIDE2MC42NTcgMjUuMjI4NiBNMTI5LjEzOSAyNC42NTM4QzEyOS41MDcgMjQuMTY2NSAxMzEuMzI2IDIzLjQ1MjMgMTMzLjkzMiAyMy41MDUxIE0xMzMuOTMyIDIzLjUwNTFDMTMyLjQ3MSAyMi42MDQ4IDEyOS42NzIgMjAuMzY0IDEzMC4xNzMgMTguNjAzNFwiXG5cdH0sXG5cdHtcblx0XHRcIm5hbWVcIjogXCI3XCIsXG5cdFx0XCJ0eXBlXCI6IFwiU2Vjb25kIE1vbGFyXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk02MC42NzkzIDI1LjM0MThDNTkuOTE2MSAyNy42NDQ5IDU3LjM2MzYgNDguOTAzNyA4NC45MTI5IDUzLjA4NDZDOTkuNzg4OSA1NC4zNjI2IDEwNi4wNTUgMzkuMjAzNyAxMDYuMzY1IDM2Ljc5MDlDMTA4LjU2NCAzMC42NTQ5IDEwNi40NjkgMTcuNjMzNyAxMDUuMjc2IDE0LjY4MzNDMTAzLjczOSAxMC44ODE2IDEwMi43IDguNDg3MDYgMTAxLjk0NiA3LjM3Mzc4QzEwMC40NDIgNS4xNTQwMSA5OS4yMyAzLjI5MDY0IDk4LjQzIDIuOTI2NTVDOTcuMjk4MyAyLjQxMTQ1IDk1LjM5MTkgMS4xMzAzNCA5MS4yNzE0IDIuNjg0MzVDODguNDM1OSAzLjc1MzczIDg2LjA4MzggMy40OTk4IDgzLjYyNTYgMi43NjYwNEM4MC43MzYzIDEuOTAzNiA3Ni45MDgyIDAuNjkwMjA5IDc1LjQzNjcgMC45NjIwNTVDNzQuNDYwNiAxLjE0MjM2IDczLjQyNDkgMS4xNTY4OSA3Mi42MzMzIDEuOTgyMTVDNzEuNDg2NyAzLjE3NzY0IDcwLjE2MTggNC43NTgwNyA2Ny44MDIxIDkuNTgzOUM2Ni42MzQgMTEuOTcyOSA2NC43OTMyIDE1LjcxOTYgNjMuODk0OSAxNy43ODQ5QzYyLjM4NyAyMS4yNTE5IDYxLjMyOTggMjMuMzc4NSA2MC42NzkzIDI1LjM0MThaXCIsXG5cdFx0XCJzaGFkb3dQYXRoXCI6IFwiTTYzLjgwOTkgMjUuNDUzMkM2My4xNDU2IDI3LjQ1NzkgNjAuOTIzOCA0NS45NjI0IDg0LjkwMzcgNDkuNjAxNUM5Ny44NTIzIDUwLjcxMzkgMTAzLjMwNyAzNy41MTkxIDEwMy41NzYgMzUuNDE5QzEwNi4yMTUgMjguMDU2OSAxMDQuMjAyIDE2LjQxNTMgOTkuNzMgOS44MTMyNEM5OC40MjExIDcuODgxMDggOTcuMzY1OCA2LjI1OTE0IDk2LjY2OTUgNS45NDIyMkM5NS42ODQ0IDUuNDkzODcgOTMuNzk2IDQuNzkwNSA5MC4yMDkzIDYuMTQzMTZDODcuNzQxMiA3LjA3Mzk5IDg1LjkyMjkgNi40NDEyIDgzLjc4MzIgNS44MDI1MUM4MS40MjM0IDUuMDk4MTIgNzYuNDQ4OCAyLjc5MTM0IDc0LjIxNTEgNS4xMjAxOEM3My4yMTcxIDYuMTYwNzcgNzIuMDYzOCA3LjUzNjQ1IDcwLjAwOTggMTEuNzM3QzY3LjgzIDE2LjE5NSA2NS4zNzQ0IDIwLjczMTggNjMuODA5OSAyNS40NTMyWlwiLFxuXHRcdFwibGluZUhpZ2hsaWdodFBhdGhcIjogXCJNOTIuMzM3NSAyMS45NDE4Qzg5LjMzNzcgMjIuMjg0OSA4NC44OTA2IDIzLjYzMzkgODMuNzI1MyAyNy45ODI5Qzg0Ljc4MzggMjMuMTM4IDc3LjM5NjIgMjIuODE4NSA3My41MDIyIDIzLjcyNDcgTTkyLjMzNzUgMjEuOTQxOEM5Ni4xNjY2IDIxLjUwMzggOTkuNTg1IDIzLjExMDEgMTAwLjIxNSAyNC4xNjUgTTkyLjMzNzUgMjEuOTQxOEM5NC40MTI3IDIxLjQwMiA5OC41MzE3IDE5Ljg5OCA5OS41NTg0IDE3Ljg1OTcgTTY4Ljc1MjQgMjYuMzE3M0M2OS4yNTEzIDI1LjQ5IDcwLjgyNDIgMjQuMzQ3OSA3My41MDIyIDIzLjcyNDcgTTczLjUwMjIgMjMuNzI0N0M3MS44MzM5IDIzLjQxNjkgNjguMzk1NSAyMi4zMjM4IDY3Ljk4NzggMjAuNDE0XCJcblx0fSxcblx0e1xuXHRcdFwibmFtZVwiOiBcIjhcIixcblx0XHRcInR5cGVcIjogXCJUaGlyZCBNb2xhclwiLFxuXHRcdFwib3V0bGluZVBhdGhcIjogXCJNMjIuODgzNiA1Mi44MDY2QzIzLjkyNzIgNTMuMDkxNSAyNS43OTg2IDUyLjg3NTYgMjYuMjA5NiA1Mi45MTE2QzI2LjUwMSA1Mi45MzcyIDI5LjE0NTkgNTIuNzg1MiAzMC45NTM0IDUyLjI4MDVDMzMuMzU1MiA1MS40MTQ5IDM0Ljk5MDEgNTAuNzc3NyAzNS44NDk1IDUwLjE0OThDMzcuNDM5MSA0OC45ODg2IDM5Ljg5NjUgNDYuOTM4NyA0MS45NTA2IDQ0LjMwNTJDNDMuNDA5MiA0Mi40MzUyIDQ0LjYzODEgNDAuMjIwNyA0NS42MDA4IDM3LjY3MjFDNDYuMjkyNyAzNS44NDA1IDQ2Ljg1MzYgMzQuMTIwMyA0Ni45OTI4IDMxLjM4MzdDNDcuMDgyNyAyOS42MTY5IDQ3LjA4ODggMjcuMTIwNyA0Ni44Mzk2IDI0LjI1NkM0Ni41OTA0IDIxLjM5MTMgNDYuMTAwOCAxOC4yNTMxIDQ1LjU3MzcgMTUuODYyOUM0NS4wNDY2IDEzLjQ3MjcgNDQuNDk4NiAxMS44Nzg4IDQzLjkxMDMgMTAuNDg2MUM0My4zMjE5IDkuMDkzMzQgNDIuNzAxNiA3Ljk0MTQ1IDQyLjM3MTggNy4yNzUzNUM0MS43NjcyIDYuMDU0NDYgNDEuMzE4OCA0LjkyOTc2IDQwLjUxNzIgNC4xODcwNUMzOC45MDUyIDIuNjkzNTMgMzcuNjUwNCAyLjA4NzE2IDM2LjM5IDEuODU4ODRDMzUuMzAzMSAxLjY2MTk1IDMzLjY0MDcgMS42Nzc1MiAzMi41MjA3IDIuMDczNDFDMzAuOTM3NCAyLjYzMzA0IDMwLjA5MTIgMy4yODY0IDI3LjY2MTMgMy4zMDcyOUMyNC4zNjY3IDMuMzM1NiAyMi41NjY3IDEuOTYwNDkgMjAuNTA5OCAxLjgxNDAyQzE3LjA4MjcgMS41Njk5OCAxNS4yMzc2IDEuNjAyMTYgMTQuMTE4MiAyLjIwOTc2QzEzLjIxOTMgMi42OTc2OCAxMi4wOTI3IDMuNDcwODMgOS44MDk3OSA2Ljc0NTE1QzkuMTQxODggNy43MDMxMiA4LjQzMjUyIDguOTM1MDkgNi45MzEyMiAxMi4xNjJDNS44ODQwNyAxNC40MTI4IDQuMzI0NTIgMTcuODQ4MiAzLjQ4NjM5IDE5LjY2NDFDMi41NTYyNyAyMS42NzkzIDEuNjE3MzkgMjMuNDY4NCAwLjkzNTM3MiAyNi4zNjk4QzAuNDQ5ODQ3IDI4LjQzNTIgMC4zMDU1ODkgMzAuOTQ2NiAwLjgzOTY4MiAzMy42ODYyQzEuMjA0MDggMzUuNTU1NCAxLjg4NzkgMzguMTAwNCA0LjE3MjQ5IDQxLjA1MDVDNi42MjU0MiA0NC4yMTggOC40MDE1MSA0Ni4zMTQ5IDkuMzg2MDEgNDcuMDkxQzEwLjI2ODYgNDcuNzg2OCAxMS4xNzYyIDQ4LjQ2NjggMTIuNDM5NyA0OS4wMjMxQzE0LjA3MzQgNDkuNzQyMyAxNS41NjgxIDUwLjgzOTkgMTcuNTE0NyA1MS40MTUyQzE5Ljc3MDUgNTIuMDgxOCAyMS4xMzk1IDUyLjMzMDUgMjIuODgzNiA1Mi44MDY2WlwiLFxuXHRcdFwic2hhZG93UGF0aFwiOiBcIk0yMi45OTA0IDQ5LjY5MDhDMjMuOTA2NiA0OS45NDA5IDI1LjU0OTQgNDkuNzUxMyAyNS45MTAzIDQ5Ljc4M0MyNi4xNjYgNDkuODA1NCAyOC40ODggNDkuNjcxOSAzMC4wNzQ4IDQ5LjIyODlDMzIuMTgzNCA0OC40NjkgMzMuNjE4NiA0Ny45MDk2IDM0LjM3MzEgNDcuMzU4NEMzNS43Njg2IDQ2LjMzODkgMzcuOTI1OSA0NC41Mzk0IDM5LjcyOTIgNDIuMjI3NEM0MS4wMDk3IDQwLjU4NTggNDIuMDg4NSAzOC42NDE2IDQyLjkzMzcgMzYuNDA0MkM0My41NDExIDM0Ljc5NjMgNDQuMDMzNSAzMy4yODYyIDQ0LjE1NTcgMzAuODgzN0M0NC4yMzQ2IDI5LjMzMjYgNDQuMjQgMjcuMTQxMyA0NC4wMjEyIDI0LjYyNjNDNDMuODAyNSAyMi4xMTE0IDQzLjM3MjYgMTkuMzU2NCA0Mi45MDk5IDE3LjI1ODFDNDIuNDQ3MiAxNS4xNTk4IDQxLjk2NjEgMTMuNzYwNCA0MS40NDk2IDEyLjUzNzhDNDAuOTMzMSAxMS4zMTUxIDQwLjM4ODUgMTAuMzAzOSA0MC4wOTkgOS43MTkxMUMzOS41NjgyIDguNjQ3MjkgMzkuMTc0NSA3LjY1OTkzIDM4LjQ3MDggNy4wMDc4OUMzNy4wNTU2IDUuNjk2NzQgMzUuOTU0MSA1LjE2NDQyIDM0Ljg0NzYgNC45NjM5OEMzMy44OTM0IDQuNzkxMTMgMzIuNDM0IDQuODA0OCAzMS40NTA3IDUuMTUyMzRDMzAuMDYwOCA1LjY0MzY0IDI5LjMxNzkgNi4yMTcyMiAyNy4xODQ3IDYuMjM1NTZDMjQuMjkyNCA2LjI2MDQyIDIyLjcxMjIgNS4wNTMyMSAyMC45MDY0IDQuOTI0NjNDMTcuODk3OCA0LjcxMDM4IDE2LjI3NzkgNC43Mzg2NCAxNS4yOTUzIDUuMjcyMDRDMTQuNTA2MSA1LjcwMDM5IDEzLjUxNzEgNi4zNzkxNCAxMS41MTI5IDkuMjUzNjVDMTAuOTI2NiAxMC4wOTQ2IDEwLjMwMzggMTEuMTc2MiA4Ljk4NTg1IDE0LjAwOTFDOC4wNjY1NiAxNS45ODUxIDYuNjk3NDQgMTkuMDAxIDUuOTYxNjUgMjAuNTk1MUM1LjE0NTEgMjIuMzY0MiA0LjMyMDg2IDIzLjkzNDkgMy43MjIxMiAyNi40ODJDMy4yOTU4OCAyOC4yOTUzIDMuMTY5MjQgMzAuNDk5OSAzLjYzODEyIDMyLjkwNTFDMy45NTgwMiAzNC41NDYgNC41NTgzNCAzNi43ODAzIDYuNTYzOTcgMzkuMzcwMkM4LjcxNzM5IDQyLjE1MDkgMTAuMjc2NiA0My45OTE3IDExLjE0MDkgNDQuNjczMUMxMS45MTU4IDQ1LjI4MzkgMTIuNzEyNSA0NS44ODA5IDEzLjgyMTcgNDYuMzY5MkMxNS4yNTYgNDcuMDAwNiAxNi41NjgyIDQ3Ljk2NDMgMTguMjc3MSA0OC40NjkzQzIwLjI1NzQgNDkuMDU0NCAyMS40NTkyIDQ5LjI3MjggMjIuOTkwNCA0OS42OTA4WlwiLFxuXHRcdFwibGluZUhpZ2hsaWdodFBhdGhcIjogXCJNNy4xMzc0MiAyNy45MTAxQzcuODkzMjcgMjYuNzE3IDEwLjI1NjIgMjUuNzg0NiAxMi44NjI3IDI1LjQ4M00zOC4wNDU4IDI3LjY0NDRDMzcuMDk4MyAyNS45MzY4IDM0LjIyODQgMjQuODQ0NyAzMS4xMzI4IDI0Ljc3MzlNMzcuNTggMjEuMzYyNkMzNi42ODUgMjIuNDY4NyAzNC4xNDI2IDI0LjY5OTQgMzEuMTMyOCAyNC43NzM5TTMxLjEzMjggMjQuNzczOUMyNy4xMjI2IDI0LjY4MjMgMjIuNzMzNiAyNi4zMDQ4IDIxLjY1NDQgMzAuNTIzOUMyMS45MjIxIDI2LjE1NTUgMTcuMDc0NCAyNC45OTU3IDEyLjg2MjcgMjUuNDgzTTYuNjQ2IDIxLjgzNzFDNy4yMzA4NCAyMy4xOTQyIDkuMjkyOTYgMjUuODIzMiAxMi44NjI3IDI1LjQ4M1wiXG5cdH1cblxuXG5dIiwgImltcG9ydCB7IE5vdGF0aW9uLCBPZG9udG9ncmFtQ29sb3JzLCBQbGFjZW1lbnQgfSBmcm9tIFwiLi90eXBlXCI7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvQ3NzVmFycyhjb2xvcnM6IE9kb250b2dyYW1Db2xvcnMpIHtcbiAgICBjb25zdCBjc3NWYXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICBpZiAoY29sb3JzLmRhcmtCbHVlKSB7XG4gICAgICAgIGNzc1ZhcnNbXCItLWRhcmstYmx1ZVwiXSA9IGNvbG9ycy5kYXJrQmx1ZTtcbiAgICB9XG4gICAgaWYgKGNvbG9ycy5iYXNlQmx1ZSkge1xuICAgICAgICBjc3NWYXJzW1wiLS1iYXNlLWJsdWVcIl0gPSBjb2xvcnMuYmFzZUJsdWU7XG4gICAgfVxuICAgIGlmIChjb2xvcnMubGlnaHRCbHVlKSB7XG4gICAgICAgIGNzc1ZhcnNbXCItLWxpZ2h0LWJsdWVcIl0gPSBjb2xvcnMubGlnaHRCbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBjc3NWYXJzO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb290aE5vdGF0aW9ucyhmZGk6IHN0cmluZykge1xuICAgIGNvbnN0IG51bSA9IGZkaS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuICAgIGNvbnN0IHVuaXZlcnNhbCA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJVbml2ZXJzYWxcIik7XG4gICAgY29uc3QgcGFsbWVyID0gY29udmVydEZESVRvTm90YXRpb24oZmRpLCBcIlBhbG1lclwiKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGZkaTogbnVtLFxuICAgICAgICB1bml2ZXJzYWwsXG4gICAgICAgIHBhbG1lcixcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgcGxhY2VtZW50czogUmVjb3JkPFxuICAgIFBsYWNlbWVudCxcbiAgICAodG9vdGhCb3g6IERPTVJlY3QsIG1hcmdpbjogbnVtYmVyKSA9PiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH1cbj4gPSB7XG4gICAgdG9wOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQudG9wIC0gbSB9KSxcbiAgICBcInRvcC1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0LCB5OiB0LnRvcCAtIG0gfSksXG4gICAgXCJ0b3AtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LnRvcCAtIG0gfSksXG4gICAgYm90dG9tOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgICBcImJvdHRvbS1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0LCB5OiB0LmJvdHRvbSArIG0gfSksXG4gICAgXCJib3R0b20tZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LmJvdHRvbSArIG0gfSksXG4gICAgbGVmdDogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQudG9wICsgdC5oZWlnaHQgLyAyIH0pLFxuICAgIFwibGVmdC1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0IC0gbSwgeTogdC50b3AgfSksXG4gICAgXCJsZWZ0LWVuZFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0IC0gbSwgeTogdC5ib3R0b20gfSksXG4gICAgcmlnaHQ6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC50b3AgKyB0LmhlaWdodCAvIDIgfSksXG4gICAgXCJyaWdodC1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCArIG0sIHk6IHQudG9wIH0pLFxuICAgIFwicmlnaHQtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC5ib3R0b20gfSksXG59O1xuXG5cblxuLy80MjUsIDU1IFxuXG5cbmV4cG9ydCBjb25zdCBxdWFkcmFudHM6IEFycmF5PHtcbiAgICBuYW1lOiBcImZpcnN0XCIgfCBcInNlY29uZFwiIHwgXCJ0aGlyZFwiIHwgXCJmb3VydGhcIjtcbiAgICB0cmFuc2Zvcm06IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xufT4gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZmlyc3RcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwcGVyIFJpZ2h0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic2Vjb25kXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDg1NSwgMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNTUsMClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwcGVyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ0aGlyZFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoMCwgLTE1MClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZm91cnRoXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDg1NSwgMCkgc2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTU1LC0xNTApXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJMb3dlciBMZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgXTtcblxuXG5cblxuZXhwb3J0IGNvbnN0IG9sZHF1YWRyYW50czogQXJyYXk8e1xuICAgIG5hbWU6IFwiZmlyc3RcIiB8IFwic2Vjb25kXCIgfCBcInRoaXJkXCIgfCBcImZvdXJ0aFwiO1xuICAgIHRyYW5zZm9ybTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG59PiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJmaXJzdFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcIlwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiVXBwZXIgUmlnaHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzZWNvbmRcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC00MDksIDApXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJVcHBlciBMZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidGhpcmRcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKDAsIC02OTQpXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJMb3dlciBSaWdodFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImZvdXJ0aFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAtMSkgdHJhbnNsYXRlKC00MDksIC02OTQpXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJMb3dlciBMZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgXTtcblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RkRJVG9Ob3RhdGlvbihmZGk6IHN0cmluZywgbm90YXRpb246IE5vdGF0aW9uKSB7XG4gICAgY29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG5cbiAgICBjb25zdCBmZGlUb1VuaXZlcnNhbDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcbiAgICAgICAgXCIxMVwiOiA4LFxuICAgICAgICBcIjEyXCI6IDcsXG4gICAgICAgIFwiMTNcIjogNixcbiAgICAgICAgXCIxNFwiOiA1LFxuICAgICAgICBcIjE1XCI6IDQsXG4gICAgICAgIFwiMTZcIjogMyxcbiAgICAgICAgXCIxN1wiOiAyLFxuICAgICAgICBcIjE4XCI6IDEsXG4gICAgICAgIFwiMjFcIjogOSxcbiAgICAgICAgXCIyMlwiOiAxMCxcbiAgICAgICAgXCIyM1wiOiAxMSxcbiAgICAgICAgXCIyNFwiOiAxMixcbiAgICAgICAgXCIyNVwiOiAxMyxcbiAgICAgICAgXCIyNlwiOiAxNCxcbiAgICAgICAgXCIyN1wiOiAxNSxcbiAgICAgICAgXCIyOFwiOiAxNixcbiAgICAgICAgXCIzMVwiOiAyNCxcbiAgICAgICAgXCIzMlwiOiAyMyxcbiAgICAgICAgXCIzM1wiOiAyMixcbiAgICAgICAgXCIzNFwiOiAyMSxcbiAgICAgICAgXCIzNVwiOiAyMCxcbiAgICAgICAgXCIzNlwiOiAxOSxcbiAgICAgICAgXCIzN1wiOiAxOCxcbiAgICAgICAgXCIzOFwiOiAxNyxcbiAgICAgICAgXCI0MVwiOiAyNSxcbiAgICAgICAgXCI0MlwiOiAyNixcbiAgICAgICAgXCI0M1wiOiAyNyxcbiAgICAgICAgXCI0NFwiOiAyOCxcbiAgICAgICAgXCI0NVwiOiAyOSxcbiAgICAgICAgXCI0NlwiOiAzMCxcbiAgICAgICAgXCI0N1wiOiAzMSxcbiAgICAgICAgXCI0OFwiOiAzMixcbiAgICB9O1xuXG4gICAgaWYgKG5vdGF0aW9uID09PSBcIlVuaXZlcnNhbFwiKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcoZmRpVG9Vbml2ZXJzYWxbbnVtXSA/PyBudW0pO1xuICAgIH1cblxuICAgIGlmIChub3RhdGlvbiA9PT0gXCJQYWxtZXJcIikge1xuICAgICAgICBpZiAobnVtLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWFkcmFudCA9IG51bVswXTtcbiAgICAgICAgY29uc3QgdG9vdGggPSBudW1bMV07XG4gICAgICAgIGNvbnN0IHN5bWJvbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICAgICBcIjFcIjogXCJVUlwiLFxuICAgICAgICAgICAgXCIyXCI6IFwiVUxcIixcbiAgICAgICAgICAgIFwiM1wiOiBcIkxMXCIsXG4gICAgICAgICAgICBcIjRcIjogXCJMUlwiLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBgJHt0b290aH0ke3N5bWJvbHNbcXVhZHJhbnRdID8/IFwiXCJ9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVtO1xufVxuIiwgImltcG9ydCB7IEZDIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRvb3RoQ29uZGl0aW9uR3JvdXAgfSBmcm9tIFwiLi90eXBlXCI7XG5cbnR5cGUgQ29uZGl0aW9uTGFiZWxzUHJvcHMgPSB7XG4gICAgY29uZGl0aW9ucz86IFRvb3RoQ29uZGl0aW9uR3JvdXBbXTtcbiAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgQ29uZGl0aW9uTGFiZWxzOiBGQzxDb25kaXRpb25MYWJlbHNQcm9wcz4gPSAoe1xuICAgIGNvbmRpdGlvbnMsXG4gICAgY2xhc3NOYW1lID0gXCJcIixcbn0pID0+IHtcbiAgICBpZiAoIWNvbmRpdGlvbnMgfHwgY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICAgICAgICAgIGdhcDogOCxcbiAgICAgICAgICAgICAgICBmb250RmFtaWx5OiBcInNhbnMtc2VyaWZcIixcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMTQsXG4gICAgICAgICAgICAgICAgZmxleFdyYXA6IFwid3JhcFwiLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHJvbGU9XCJsaXN0XCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJUb290aCBjb25kaXRpb24gbGVnZW5kXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge2NvbmRpdGlvbnMubWFwKChjb25kaXRpb24pID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGtleT17Y29uZGl0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICByb2xlPVwibGlzdGl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiA4LFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb25kaXRpb24uZmlsbENvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDJweCBzb2xpZCAke2NvbmRpdGlvbi5vdXRsaW5lQ29sb3IgPz8gY29uZGl0aW9uLmZpbGxDb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgdGV4dFRyYW5zZm9ybTogXCJjYXBpdGFsaXplXCIgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y29uZGl0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmRpdGlvbkxhYmVsczsiXSwKICAibWFwcGluZ3MiOiAibWJBQUEsSUFBQUEsR0FBQSxHQUFBQyxHQUFBRCxHQUFBLGdCQUFBRSxHQUFBLFlBQUFDLEdBQUEsZUFBQUMsS0FBQSxlQUFBQyxHQUFBTCxJQ0NBLElBQUFNLEVBUU8saUJDWUgsSUFBQUMsRUFBQSw2QkFwQlNDLEVBQVEsQ0FBQyxDQUNwQixLQUFBQyxFQUNBLFlBQUFDLEVBQ0EsV0FBQUMsRUFDQSxrQkFBQUMsRUFDQSxTQUFBQyxFQUNBLFVBQUFDLEVBQ0EsU0FBQUMsRUFDQSxRQUFBQyxFQUNBLFVBQUFDLEVBQ0EsUUFBQUMsRUFDQSxRQUFBQyxFQUNBLFFBQUFDLEVBQ0EsT0FBQUMsRUFDQSxTQUFBQyxDQUNGLElBQWtCLENBQ2hCLElBQU1DLEdBQWNULEdBQUEsWUFBQUEsRUFBVyxlQUFnQixlQUN6Q1UsR0FBWVYsR0FBQSxZQUFBQSxFQUFXLFlBQWEsZUFFMUMsU0FDRSxRQUFDLEtBQ0MsVUFBVyxHQUFHTCxDQUFJLElBQUlJLEVBQVcsV0FBYSxFQUFFLEdBQ2hELFNBQVVFLEVBQVcsR0FBSyxFQUMxQixRQUFTQSxFQUFXLE9BQVksSUFBTUMsR0FBQSxZQUFBQSxFQUFVUCxHQUNoRCxVQUFXTSxFQUFXLE9BQWFVLEdBQU1SLEdBQUEsWUFBQUEsRUFBWVEsRUFBR2hCLEdBQ3hELGFBQWNTLEVBQVdPLEdBQU1QLEVBQVFULEVBQU1nQixDQUFDLEVBQUksT0FDbEQsUUFBU04sRUFBV00sR0FBTU4sRUFBUVYsRUFBTWdCLENBQUMsRUFBSSxPQUM3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QUFPLE9BQ1AsT0FBUSxPQUNSLFdBQVksT0FDWixZQUFhLGNBRWYsRUFFQSxvQkFBQyxTQUFNLHNCQUFVLEVBRWhCMkQsR0FBaUIsSUFBSSxDQUFDLENBQUUsS0FBQTdDLEVBQU0sVUFBQTZELEVBQVcsTUFBQUMsQ0FBTSxFQUFHQyxPQUNqRCxPQUFDLEtBQ0MsS0FBSyxRQUNMLGFBQVlELEVBRVosVUFBV0QsRUFFVixTQUFBVixHQUFZLFNBQVNZLEVBQVEsQ0FBQyxFQUFFLEdBSDVCL0QsQ0FJUCxDQUNELEdBQ0gsRUFFQ0QsTUFDQyxPQUFDaUUsR0FBQSxDQUNDLE9BQVF4QyxFQUFZLE9BQ3BCLFNBQVVBLEVBQVksU0FDdEIsUUFBU0EsRUFBWSxRQUNyQixRQUFTMUIsRUFBUSxRQUNuQixFQUdETSxNQUNDLE9BQUM2RCxHQUFBLENBQWdCLFdBQVkvRCxFQUFpQixHQUVsRCxDQUVKLEVBRU9nRSxHQUFRNUUiLAogICJuYW1lcyI6IFsiaW5kZXhfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJPZG9udG9ncmFtIiwgIk9kb250b2dyYW1fZGVmYXVsdCIsICJnZXRWaWV3Qm94IiwgIl9fdG9Db21tb25KUyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgIlRlZXRoIiwgIm5hbWUiLCAib3V0bGluZVBhdGgiLCAic2hhZG93UGF0aCIsICJsaW5lSGlnaGxpZ2h0UGF0aCIsICJzZWxlY3RlZCIsICJjb25kaXRpb24iLCAicmVhZE9ubHkiLCAib25DbGljayIsICJvbktleURvd24iLCAib25Ib3ZlciIsICJvbkZvY3VzIiwgIm9uTGVhdmUiLCAib25CbHVyIiwgImNoaWxkcmVuIiwgInN0cm9rZUNvbG9yIiwgImZpbGxDb2xvciIsICJlIiwgImQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJBUlJPV19PRkZTRVQiLCAiVklFV1BPUlRfUEFERElORyIsICJjbGFtcCIsICJ2YWx1ZSIsICJtaW4iLCAibWF4IiwgImdldENvbnRlbnQiLCAiY29udGVudCIsICJwYXlsb2FkIiwgIk9kb250b2dyYW1Ub29sdGlwIiwgImFjdGl2ZSIsICJwb3NpdGlvbiIsICJyZWYiLCAiY29vcmRzIiwgInNldENvb3JkcyIsICJ0b29sdGlwQm94IiwgIngiLCAieSIsICJtYXhMZWZ0IiwgImxlZnQiLCAibmV4dFRvcCIsICJ0b3AiLCAidGVldGhQYXRocyIsICJOZXdUZWV0aFBhdGhzIiwgIm1hcFRvQ3NzVmFycyIsICJjb2xvcnMiLCAiY3NzVmFycyIsICJnZXRUb290aE5vdGF0aW9ucyIsICJmZGkiLCAibnVtIiwgInVuaXZlcnNhbCIsICJjb252ZXJ0RkRJVG9Ob3RhdGlvbiIsICJwYWxtZXIiLCAicGxhY2VtZW50cyIsICJtIiwgInF1YWRyYW50cyIsICJvbGRxdWFkcmFudHMiLCAibm90YXRpb24iLCAiZmRpVG9Vbml2ZXJzYWwiLCAicXVhZHJhbnQiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgIkNvbmRpdGlvbkxhYmVscyIsICJjb25kaXRpb25zIiwgImNsYXNzTmFtZSIsICJjb25kaXRpb24iLCAiTGFiZWxzX2RlZmF1bHQiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImdldFZpZXdCb3giLCAibGF5b3V0IiwgInNob3dIYWxmIiwgImZ1bGwiLCAidXBwZXIiLCAibG93ZXIiLCAiT2RvbnRvZ3JhbSIsICJkZWZhdWx0U2VsZWN0ZWQiLCAic2luZ2xlU2VsZWN0IiwgIm9uQ2hhbmdlIiwgImNsYXNzTmFtZSIsICJ0aGVtZSIsICJjb2xvcnMiLCAibm90YXRpb24iLCAidG9vbHRpcCIsICJzaG93VG9vbHRpcCIsICJuYW1lIiwgIm1heFRlZXRoIiwgInRlZXRoQ29uZGl0aW9ucyIsICJyZWFkT25seSIsICJzaG93TGFiZWxzIiwgInN0eWxlcyIsICJ0ZWV0aHBhdGgiLCAidGVldGhQYXRocyIsICJOZXdUZWV0aFBhdGhzIiwgInF1YWRyYW50cyIsICJvbGRxdWFkcmFudHMiLCAidG9vdGhUeXBlQnlOYW1lIiwgInQiLCAiZ2V0VG9vdGhUeXBlIiwgImlkIiwgInRvb3RoTmFtZSIsICJjbGFtcE1heFRlZXRoIiwgInZhbHVlIiwgImJ1aWxkVG9vdGhEZXRhaWwiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAidGhlbWVDb2xvcnMiLCAic2VsZWN0ZWQiLCAic2V0U2VsZWN0ZWQiLCAic3ZnUmVmIiwgInRvb2x0aXBEYXRhIiwgInNldFRvb2x0aXBEYXRhIiwgImhhbmRsZVRvZ2dsZSIsICJwcmV2aW91cyIsICJ1cGRhdGVkIiwgImhhbmRsZUtleURvd24iLCAiZXZlbnQiLCAiaGFuZGxlSG92ZXIiLCAicGxhY2VtZW50IiwgIl9hIiwgIl9iIiwgInBhdGgiLCAidG9vdGhCb3giLCAic3ZnQm94IiwgIm1hcmdpbiIsICJ4IiwgInkiLCAicGxhY2VtZW50cyIsICJzYWZlWSIsICJoYW5kbGVMZWF2ZSIsICJwcmV2IiwgInZpc2libGVRdWFkcmFudHMiLCAiZmlsdGVyZWRUZWV0aCIsICJjb25kaXRpb25NYXAiLCAibWFwIiwgImNvbmRpdGlvbiIsICJ0b290aElkIiwgInJlbmRlclRlZXRoIiwgInByZWZpeCIsICJ0b290aCIsICJkaXNwbGF5TmFtZSIsICJjb252ZXJ0RkRJVG9Ob3RhdGlvbiIsICJUZWV0aCIsICJjdXJyZW50SWQiLCAiZmluYWxDb2xvcnMiLCAibWFwVG9Dc3NWYXJzIiwgImNvbnRhaW5lckNsYXNzZXMiLCAidHJhbnNmb3JtIiwgImxhYmVsIiwgImluZGV4IiwgIk9kb250b2dyYW1Ub29sdGlwIiwgIkxhYmVsc19kZWZhdWx0IiwgIk9kb250b2dyYW1fZGVmYXVsdCJdCn0K
|
|
1
|
+
"use strict";var A=Object.defineProperty;var b1=Object.getOwnPropertyDescriptor;var y1=Object.getOwnPropertyNames;var M1=Object.prototype.hasOwnProperty;var P1=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},x1=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of y1(e))!M1.call(t,i)&&i!==o&&A(t,i,{get:()=>e[i],enumerable:!(s=b1(e,i))||s.enumerable});return t};var v1=t=>x1(A({},"__esModule",{value:!0}),t);var L1={};P1(L1,{Odontogram:()=>c1,default:()=>h1,getViewBox:()=>p1});module.exports=v1(L1);var l=require("react");var N=require("react/jsx-runtime"),w1=({conditions:t,className:e=""})=>!t||t.length===0?null:(0,N.jsx)("ul",{className:e,style:{display:"flex",gap:8,fontFamily:"sans-serif",fontSize:14,flexWrap:"wrap"},"aria-label":"Tooth condition legend",children:t.map(o=>(0,N.jsxs)("li",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,N.jsx)("span",{"aria-hidden":"true",style:{width:14,height:14,borderRadius:4,background:o.fillColor,border:`2px solid ${o.outlineColor??o.fillColor}`,display:"inline-block"}}),(0,N.jsx)("span",{style:{textTransform:"capitalize"},children:o.label})]},o.label))}),X=w1;var L=require("react/jsx-runtime"),Y=({name:t,outlinePath:e,shadowPath:o,lineHighlightPath:s,selected:i,condition:a,readOnly:h,onClick:p,onKeyDown:u,onHover:M,onFocus:w,onLeave:k,onBlur:P,children:C})=>{let y=(a==null?void 0:a.outlineColor)??"currentColor",x=(a==null?void 0:a.fillColor)??"currentColor";return(0,L.jsxs)("g",{className:`${t} ${i?"selected":""}`,onClick:h?void 0:()=>p==null?void 0:p(t),onKeyDown:h?void 0:m=>u==null?void 0:u(m,t),onMouseEnter:M?m=>M(t,m):void 0,onFocus:w?m=>w(t,m):void 0,onMouseLeave:k,onBlur:P,role:h?void 0:"option","aria-selected":h?void 0:i,tabIndex:h?-1:0,"aria-label":h?void 0:`Tooth ${t.replace("teeth-","")}`,"aria-disabled":h,style:{cursor:h?"default":"pointer",color:y},children:[C,(0,L.jsx)("path",{stroke:y,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",d:e}),(0,L.jsx)("path",{fill:x,d:o,"data-colored":a?"true":void 0,style:{opacity:a?1:void 0}}),Array.isArray(s)?s.map(m=>(0,L.jsx)("path",{stroke:y,strokeLinecap:"round",strokeLinejoin:"round",d:m},m)):(0,L.jsx)("path",{stroke:y,strokeLinecap:"round",strokeLinejoin:"round",d:s})]})};var S=require("react"),b=require("react/jsx-runtime"),t1=12,R=8,e1=(t,e,o)=>Math.min(Math.max(t,e),o),k1=t=>t.startsWith("bottom"),T1=(t,e)=>{if(t)return typeof t=="function"?t(e):t};function o1({active:t,payload:e,position:o,content:s}){let i=(0,S.useRef)(null),[a,h]=(0,S.useState)(null);return(0,S.useEffect)(()=>{if(!(t&&i.current&&o))return;let p=i.current.getBoundingClientRect(),{x:u,placement:M,margin:w,anchorRect:k}=o,P=Math.max(R,window.innerWidth-p.width-R),C=e1(u-p.width/2,R,P),y=k.top-p.height-w-t1,x=k.bottom+w+t1,m=k1(M),d=m,f=m?x:y;!d&&f<R&&(d=!0,f=x);let B=Math.max(R,window.innerHeight-p.height-R);d&&f>B&&(d=!1,f=y),f=e1(f,R,B),h({left:C,top:f,isBottomPlacement:d})},[t,o]),t&&e?(0,b.jsxs)("div",{ref:i,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"var(--odontogram-tooltip-bg, rgba(0,0,0,0.85))",color:"var(--odontogram-tooltip-fg, #fff)",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,left:(a==null?void 0:a.left)??-9999,top:(a==null?void 0:a.top)??-9999,opacity:a?1:0,transition:"opacity 0.15s ease"},children:[T1(s,e)??(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{children:["Tooth: ",e.notations.fdi]}),(0,b.jsxs)("div",{children:["Type: ",e.type]}),(0,b.jsxs)("div",{children:["Universal: ",e.notations.universal,", Palmer:"," ",e.notations.palmer]})]}),(0,b.jsx)("div",{className:"odontogram-tooltip-arrow",style:{position:"absolute",left:"50%",transform:"translateX(-50%)",width:0,height:0,borderLeft:"6px solid transparent",borderRight:"6px solid transparent",...a!=null&&a.isBottomPlacement?{top:"-6px",borderBottom:"6px solid var(--odontogram-tooltip-bg, rgba(0, 0, 0, 0.85))"}:{bottom:"-6px",borderTop:"6px solid var(--odontogram-tooltip-bg, rgba(0, 0, 0, 0.85))"}}})]}):null}var r1=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}],a1=[{name:"1",type:"Central Incisor",outlinePath:"M397.992 51.339C396.126 51.1841 393.495 50.5617 393.495 50.5617C393.495 50.5617 388.804 49.6453 386.903 48.5677C384.873 47.4162 382.213 45.7195 381.838 44.0514C381.487 42.4836 381.216 40.0226 381.478 38.243L381.503 38.0727C381.82 35.9287 382.29 32.7452 382.642 29.3191C382.817 27.6207 382.583 26.5905 383.332 24.0911C384.118 21.4652 384.555 20.2179 385.09 19.2766C385.648 18.2937 386.375 17.5159 386.841 16.5072C387.593 14.8802 388.91 12.8822 390.18 11.3573C390.902 10.4905 391.602 9.74461 392.207 9.11454C393.08 8.20669 394.629 6.4959 395.556 5.46719C396.866 4.01329 398.196 2.73364 399.344 2.32547C400.382 1.95648 401.652 1.80289 402.575 1.56192C403.741 1.25751 404.7 1.04041 406.481 1.59988C407.789 2.01078 408.79 2.15093 410.175 3.6958C411.909 5.63147 412.563 6.70795 413.119 7.75747C414.007 9.43534 415.224 11.7273 416.073 13.2435C416.584 14.1554 417.935 15.8859 419.471 20.7919C420.739 24.8422 421.417 27.4048 421.716 28.4564C422.057 29.6562 422.602 31.5093 422.815 33.7313C423.154 37.2832 423.699 40.0978 423.625 43.1077C423.562 45.6958 423.671 47.3905 422.667 48.4567C421.852 49.3227 420.962 50.1403 419.837 50.5815C418.166 51.2367 416.619 51.7043 415.323 51.8901C414.174 52.0548 409.33 52.1292 405.791 51.8445C404.461 51.7375 402.725 51.7319 397.992 51.339Z",shadowPath:"M410.562 10.2393C426.588 45.9698 419.344 47.3813 414.383 48.2436C409.421 49.1058 390.229 45.8566 389.156 45.6013C388.783 45.4122 381.586 45.5268 385.27 28.9613C388.307 15.307 399.25 6.5008 400.149 5.94125C402.84 4.2654 407.678 3.81025 410.562 10.2393Z",lineHighlightPath:"M386.65 40.1568C386.979 40.5013 390.29 43.0038 394.2 44.879C396.819 46.1347 400.79 46.3275 403.707 46.4582C411.145 46.8422 412.214 45.7688 414.456 45.2944C414.934 45.1809 415.23 45.0675 415.965 44.8037"},{name:"2",type:"Lateral Incisor",outlinePath:"M339.362 5.90227C342.255 3.71416 346.038 1.25774 347.807 1.15688C351.997 0.918049 355.515 3.10622 357.625 6.73623C361.668 13.6941 364.043 21.5609 365.951 29.3396C366.793 32.7727 371.064 45.061 366.866 47.897C360.805 55.8472 336.444 55.8684 329.833 49.9979C323.057 43.9805 325.09 29.7675 327.77 22.2921C329.981 16.1281 334.178 9.82403 339.362 5.90227Z",shadowPath:"M340.341 10.7533C342.637 9.01674 345.639 7.06721 347.044 6.98717C350.369 6.79762 353.161 8.53425 354.835 11.4152C358.044 16.9373 359.929 23.1807 361.443 29.3542C362.112 32.0788 365.502 41.8314 362.169 44.0822C357.359 50.3918 338.025 50.4086 332.779 45.7496C327.401 40.9738 329.014 29.6938 331.142 23.761C332.896 18.869 336.227 13.8658 340.341 10.7533Z",lineHighlightPath:"M334.964 39.2131C335.743 39.9998 343.128 45.3167 349.494 44.3903C352.66 43.9297 359.564 41.7577 360.67 41.2767"},{name:"3",type:"Canine",outlinePath:"M275.285 36.7016C275.461 34.8357 275.849 18.5473 286.018 5.57867C288.971 1.81325 299.434 0.829071 303.316 3.82989C310.408 9.31139 313.426 28.9506 310.396 37.4059C308.951 41.4393 297.215 55.4587 291.42 52.8366C285.975 50.3727 274.6 43.9742 275.285 36.7016Z",shadowPath:"M301.598 7.93945C307.291 12.3406 309.864 28.5513 307.396 35.4392C306.212 38.7427 296.601 50.225 291.854 48.0774C287.984 46.3265 281.376 42.5321 279.505 38.5086C275.156 29.1535 286.937 -3.39247 301.598 7.93945Z",lineHighlightPath:"M281.255 35.7132C281.766 36.2349 283.933 38.6225 286.307 40.4563C289.837 43.1816 290.269 43.5706 291.974 44.5673C293.243 45.3091 296.192 46.2724 304.782 36.2803 M287.379 19.4012C287.632 19.2016 291.839 21.1066 296.933 17.499"},{name:"4",type:"First Premolar",outlinePath:"M236.98 4.87854C231.34 8.91989 227.474 33.8121 227.41 33.9971C227.423 35.3948 224.346 44.1157 245.059 53.0117C246.025 53.4266 247.125 52.888 247.86 52.4695C248.67 52.0073 250.354 50.8376 253.096 48.11C254.772 46.4429 261.519 39.4872 261.637 34.8665C261.691 32.7406 261.314 28.4868 260.916 24.2565C260.517 20.0262 259.172 12.5851 258.255 9.7502C257.37 7.00905 252.569 -3.57975 236.98 4.87854Z",shadowPath:"M238.114 7.66346C233.204 11.182 229.838 32.8544 229.782 33.0155C229.793 34.2324 227.114 41.8252 245.148 49.5706C245.989 49.9317 246.947 49.4629 247.586 49.0985C248.293 48.6961 249.758 47.6777 252.146 45.3029C253.605 43.8514 259.479 37.7955 259.582 33.7724C259.629 31.9215 259.301 28.218 258.954 24.5348C258.607 20.8517 257.435 14.3731 256.638 11.905C255.866 9.51838 251.687 0.299255 238.114 7.66346Z",lineHighlightPath:"M232.699 39.8277C232.885 39.9138 233.796 40.4028 238.753 42.4719C241.555 43.6416 243.526 43.4623 245.192 43.1391C246.68 42.8502 249.007 41.9121 250.856 40.686C251.932 39.8864 252.954 38.9499 254.698 37.0231C255.147 36.4782 255.449 36.0189 256.052 35.3458 M239.545 12.8442C241.885 10.1252 250.366 10.5793 250.366 10.5793"},{name:"5",type:"Second Premolar",outlinePath:"M186.485 45.8905C188.39 47.4915 194.878 52.668 197.762 53.1457C200.384 53.5801 211.318 44.6344 213.743 37.254C214.322 35.4928 215.038 15.1384 208.58 4.13152C202.248 -2.02701 189.273 -0.756658 185.395 11.0477C183.218 17.6734 180.668 30.608 180.423 32.2205C180.177 33.8383 180.188 36.0117 180.547 38.1716C180.751 39.3933 180.853 40.0649 181.221 40.6135C181.726 41.3662 183.233 43.1574 186.485 45.8905Z",shadowPath:"M188.107 43.3403C189.761 44.7301 195.393 49.2236 197.896 49.6383C200.172 50.0154 209.664 42.2499 211.769 35.8432C212.271 34.3143 212.893 16.6453 207.287 7.09053C201.791 1.74449 190.527 2.84724 187.16 13.0943C185.271 18.8458 183.057 30.074 182.845 31.4738C182.631 32.8782 182.641 34.7648 182.953 36.6398C183.129 37.7003 183.218 38.2832 183.537 38.7594C183.976 39.4129 185.284 40.9678 188.107 43.3403Z",lineHighlightPath:"M185.566 38.954C200.902 47.5796 204.772 37.6999 208.388 34.1061 M191.566 11.1268C196.702 7.12464 201.745 8.78762 202.549 8.92105"},{name:"6",type:"First Molar",outlinePath:"M128.904 45.8941C130.676 47.3001 145.884 61.9755 162.145 45.1423C163.249 43.9986 172.589 28.7255 163.065 9.88792C162.022 7.82514 161.32 5.92758 160.392 4.9355C159.008 3.45593 158.296 2.7052 156.622 2.60279C155.155 2.51311 153.656 3.01459 150.242 3.84879C148.517 4.2702 147.372 4.53309 144.251 3.3168C143.121 2.87675 141.495 2.08665 139.43 1.98738C137.768 1.90751 136.636 1.9765 135.262 2.89208C133.14 4.30717 131.556 6.06007 130.301 8.67838C129.938 9.43672 129.094 10.8117 127.581 13.8497C126.625 15.77 125.381 18.4495 124.394 20.9063C123.406 23.3631 122.657 25.5204 122.24 27.0814C121.585 29.5351 120.898 32.0017 121.468 34.2957L121.471 34.3102C121.817 35.7 122.322 37.7345 123.709 39.8068C125.153 41.9637 126.819 44.2397 128.904 45.8941Z",shadowPath:"M131.01 43.4559C132.509 44.7414 145.836 57.4979 160.034 42.7994C160.999 41.8008 169.154 28.4646 160.838 12.016C159.927 10.2149 159.315 8.55796 158.504 7.6917C157.296 6.39976 156.674 5.74424 155.212 5.65482C153.932 5.57651 152.623 6.01439 149.641 6.7428C148.135 7.11076 147.135 7.34032 144.41 6.27827C143.424 5.89404 142.004 5.20414 140.2 5.11746C129.959 4.62519 125.555 25.666 125.191 27.029L125.189 27.0338C124.616 29.1822 122.705 36.3359 131.01 43.4559Z",lineHighlightPath:"M153.854 27.4742C149.502 26.6409 144.049 27.8519 142.802 30.5372C143.302 25.2189 138.067 23.5889 133.932 23.5051 M153.854 27.4742C156.709 28.0209 159.09 29.4476 159.498 31.9153 M153.854 27.4742C155.556 27.6746 159.3 27.5062 160.657 25.2286 M129.139 24.6538C129.507 24.1665 131.326 23.4523 133.932 23.5051 M133.932 23.5051C132.471 22.6048 129.672 20.364 130.173 18.6034"},{name:"7",type:"Second Molar",outlinePath:"M60.6793 25.3418C59.9161 27.6449 57.3636 48.9037 84.9129 53.0846C99.7889 54.3626 106.055 39.2037 106.365 36.7909C108.564 30.6549 106.469 17.6337 105.276 14.6833C103.739 10.8816 102.7 8.48706 101.946 7.37378C100.442 5.15401 99.23 3.29064 98.43 2.92655C97.2983 2.41145 95.3919 1.13034 91.2714 2.68435C88.4359 3.75373 86.0838 3.4998 83.6256 2.76604C80.7363 1.9036 76.9082 0.690209 75.4367 0.962055C74.4606 1.14236 73.4249 1.15689 72.6333 1.98215C71.4867 3.17764 70.1618 4.75807 67.8021 9.5839C66.634 11.9729 64.7932 15.7196 63.8949 17.7849C62.387 21.2519 61.3298 23.3785 60.6793 25.3418Z",shadowPath:"M63.8099 25.4532C63.1456 27.4579 60.9238 45.9624 84.9037 49.6015C97.8523 50.7139 103.307 37.5191 103.576 35.419C106.215 28.0569 104.202 16.4153 99.73 9.81324C98.4211 7.88108 97.3658 6.25914 96.6695 5.94222C95.6844 5.49387 93.796 4.7905 90.2093 6.14316C87.7412 7.07399 85.9229 6.4412 83.7832 5.80251C81.4234 5.09812 76.4488 2.79134 74.2151 5.12018C73.2171 6.16077 72.0638 7.53645 70.0098 11.737C67.83 16.195 65.3744 20.7318 63.8099 25.4532Z",lineHighlightPath:"M92.3375 21.9418C89.3377 22.2849 84.8906 23.6339 83.7253 27.9829C84.7838 23.138 77.3962 22.8185 73.5022 23.7247 M92.3375 21.9418C96.1666 21.5038 99.585 23.1101 100.215 24.165 M92.3375 21.9418C94.4127 21.402 98.5317 19.898 99.5584 17.8597 M68.7524 26.3173C69.2513 25.49 70.8242 24.3479 73.5022 23.7247 M73.5022 23.7247C71.8339 23.4169 68.3955 22.3238 67.9878 20.414"},{name:"8",type:"Third Molar",outlinePath:"M22.8836 52.8066C23.9272 53.0915 25.7986 52.8756 26.2096 52.9116C26.501 52.9372 29.1459 52.7852 30.9534 52.2805C33.3552 51.4149 34.9901 50.7777 35.8495 50.1498C37.4391 48.9886 39.8965 46.9387 41.9506 44.3052C43.4092 42.4352 44.6381 40.2207 45.6008 37.6721C46.2927 35.8405 46.8536 34.1203 46.9928 31.3837C47.0827 29.6169 47.0888 27.1207 46.8396 24.256C46.5904 21.3913 46.1008 18.2531 45.5737 15.8629C45.0466 13.4727 44.4986 11.8788 43.9103 10.4861C43.3219 9.09334 42.7016 7.94145 42.3718 7.27535C41.7672 6.05446 41.3188 4.92976 40.5172 4.18705C38.9052 2.69353 37.6504 2.08716 36.39 1.85884C35.3031 1.66195 33.6407 1.67752 32.5207 2.07341C30.9374 2.63304 30.0912 3.2864 27.6613 3.30729C24.3667 3.3356 22.5667 1.96049 20.5098 1.81402C17.0827 1.56998 15.2376 1.60216 14.1182 2.20976C13.2193 2.69768 12.0927 3.47083 9.80979 6.74515C9.14188 7.70312 8.43252 8.93509 6.93122 12.162C5.88407 14.4128 4.32452 17.8482 3.48639 19.6641C2.55627 21.6793 1.61739 23.4684 0.935372 26.3698C0.449847 28.4352 0.305589 30.9466 0.839682 33.6862C1.20408 35.5554 1.8879 38.1004 4.17249 41.0505C6.62542 44.218 8.40151 46.3149 9.38601 47.091C10.2686 47.7868 11.1762 48.4668 12.4397 49.0231C14.0734 49.7423 15.5681 50.8399 17.5147 51.4152C19.7705 52.0818 21.1395 52.3305 22.8836 52.8066Z",shadowPath:"M22.9904 49.6908C23.9066 49.9409 25.5494 49.7513 25.9103 49.783C26.166 49.8054 28.488 49.6719 30.0748 49.2289C32.1834 48.469 33.6186 47.9096 34.3731 47.3584C35.7686 46.3389 37.9259 44.5394 39.7292 42.2274C41.0097 40.5858 42.0885 38.6416 42.9337 36.4042C43.5411 34.7963 44.0335 33.2862 44.1557 30.8837C44.2346 29.3326 44.24 27.1413 44.0212 24.6263C43.8025 22.1114 43.3726 19.3564 42.9099 17.2581C42.4472 15.1598 41.9661 13.7604 41.4496 12.5378C40.9331 11.3151 40.3885 10.3039 40.099 9.71911C39.5682 8.64729 39.1745 7.65993 38.4708 7.00789C37.0556 5.69674 35.9541 5.16442 34.8476 4.96398C33.8934 4.79113 32.434 4.8048 31.4507 5.15234C30.0608 5.64364 29.3179 6.21722 27.1847 6.23556C24.2924 6.26042 22.7122 5.05321 20.9064 4.92463C17.8978 4.71038 16.2779 4.73864 15.2953 5.27204C14.5061 5.70039 13.5171 6.37914 11.5129 9.25365C10.9266 10.0946 10.3038 11.1762 8.98585 14.0091C8.06656 15.9851 6.69744 19.001 5.96165 20.5951C5.1451 22.3642 4.32086 23.9349 3.72212 26.482C3.29588 28.2953 3.16924 30.4999 3.63812 32.9051C3.95802 34.546 4.55834 36.7803 6.56397 39.3702C8.71739 42.1509 10.2766 43.9917 11.1409 44.6731C11.9158 45.2839 12.7125 45.8809 13.8217 46.3692C15.256 47.0006 16.5682 47.9643 18.2771 48.4693C20.2574 49.0544 21.4592 49.2728 22.9904 49.6908Z",lineHighlightPath:"M7.13742 27.9101C7.89327 26.717 10.2562 25.7846 12.8627 25.483M38.0458 27.6444C37.0983 25.9368 34.2284 24.8447 31.1328 24.7739M37.58 21.3626C36.685 22.4687 34.1426 24.6994 31.1328 24.7739M31.1328 24.7739C27.1226 24.6823 22.7336 26.3048 21.6544 30.5239C21.9221 26.1555 17.0744 24.9957 12.8627 25.483M6.646 21.8371C7.23084 23.1942 9.29296 25.8232 12.8627 25.483"}];function n1(t){let e={};return t.darkBlue&&(e["--dark-blue"]=t.darkBlue),t.baseBlue&&(e["--base-blue"]=t.baseBlue),t.lightBlue&&(e["--light-blue"]=t.lightBlue),e}function i1(t){let e=t.replace("teeth-",""),o=F(t,"Universal"),s=F(t,"Palmer");return{fdi:e,universal:o,palmer:s}}var G={top:(t,e)=>({x:t.left+t.width/2,y:t.top-e}),"top-start":(t,e)=>({x:t.left,y:t.top-e}),"top-end":(t,e)=>({x:t.right,y:t.top-e}),bottom:(t,e)=>({x:t.left+t.width/2,y:t.bottom+e}),"bottom-start":(t,e)=>({x:t.left,y:t.bottom+e}),"bottom-end":(t,e)=>({x:t.right,y:t.bottom+e}),left:(t,e)=>({x:t.left-e,y:t.top+t.height/2}),"left-start":(t,e)=>({x:t.left-e,y:t.top}),"left-end":(t,e)=>({x:t.left-e,y:t.bottom}),right:(t,e)=>({x:t.right+e,y:t.top+t.height/2}),"right-start":(t,e)=>({x:t.right+e,y:t.top}),"right-end":(t,e)=>({x:t.right+e,y:t.bottom})},l1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"translate(840, 0) scale(-1, 1) translate(-55,0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -150)",label:"Lower Right"},{name:"fourth",transform:"translate(840, 0) scale(-1, -1) translate(-55,-150)",label:"Lower Left"}],s1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right"},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left"}];function F(t,e){let o=t.replace("teeth-",""),s={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(e==="Universal")return String(s[o]??o);if(e==="Palmer"){if(o.length<2)return o;let i=o[0];return`${o[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[i]??""}`}return o}var g=require("react/jsx-runtime");function p1(t,e){if(t==="square")return e==="upper"?"0 0 900 75":e==="lower"?"0 75 900 75 ":"0 0 900 150";let o="0 0 409 694",s="0 0 409 347",i="0 347 409 347";return e==="upper"?s:e==="lower"?i:o}var c1=({defaultSelected:t=[],singleSelect:e=!1,onChange:o,className:s="",theme:i="light",colors:a={},notation:h="FDI",tooltip:p={margin:10,placement:"top"},showTooltip:u=!0,showHalf:M="full",name:w,maxTeeth:k=8,teethConditions:P,readOnly:C=!1,showLabels:y=!1,layout:x="circle",styles:m})=>{let d=x==="circle"?r1:a1,f=x==="circle"?s1:l1,B=(0,l.useMemo)(()=>new Map(d.map(r=>[r.name,r.type])),[d]),$=(0,l.useCallback)(r=>{let c=r.replace("teeth-","").slice(1);return B.get(c)??"Unknown"},[B]),V=(0,l.useCallback)(r=>typeof r!="number"||Number.isNaN(r)?d.length:Math.max(0,Math.min(d.length,Math.floor(r))),[d]),I=(0,l.useCallback)(r=>({id:r,notations:i1(r),type:$(r)}),[$]),C1=i==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[H,m1]=(0,l.useState)(()=>new Set(e?t.slice(0,1):t)),W=(0,l.useRef)(null),[E,z]=(0,l.useState)({active:!1}),O=(0,l.useCallback)(r=>{C||m1(c=>{let n=new Set(c);return e?n.has(r)?n.delete(r):(n.clear(),n.add(r)):n.has(r)?n.delete(r):n.add(r),o==null||o(Array.from(n).map(I)),n})},[o,C,I,e]),j=(0,l.useCallback)((r,c)=>{C||(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),O(c))},[O,C]),U=(0,l.useCallback)((r,c,n="right")=>{var K,Q;let Z=c.currentTarget.querySelector("path");if(!(Z&&W.current))return;let v=Z.getBoundingClientRect(),T=p.margin??10,{x:D}=((Q=(K=G)[n])==null?void 0:Q.call(K,v,T))??G.right(v,T);z({active:!0,position:{x:D,placement:n,margin:T,anchorRect:{top:v.top,right:v.right,bottom:v.bottom,left:v.left}},payload:I(r)})},[p.margin,I]),q=(0,l.useCallback)(()=>{z(r=>({...r,active:!1}))},[]),d1=M==="upper"?f.slice(0,2):M==="lower"?f.slice(2):f,_=(0,l.useMemo)(()=>d.slice(0,V(k)),[k,V,d]),J=(0,l.useMemo)(()=>{let r=new Map;if(P)for(let c of P)for(let n of c.teeth)r.set(n,c);return r},[P]),u1=(0,l.useCallback)(r=>_.map(c=>{let n=`${r}${c.name}`,Z=F(n,h),v=J.get(n);return(0,g.jsx)(Y,{readOnly:C,...c,name:n,selected:H.has(n),condition:v,onClick:O,onKeyDown:j,onHover:u?(T,D)=>U(T,D,p.placement):void 0,onFocus:u?(T,D)=>U(T,D,p.placement):void 0,onLeave:u?q:void 0,onBlur:u?q:void 0,children:(0,g.jsx)("title",{children:Z})},n)}),[_,h,J,C,H,O,j,U,q,u,p.placement]),f1={...C1,...n1(a)},g1=["Odontogram",i==="dark"?"dark-theme":"",s].filter(Boolean).join(" ");return(0,g.jsxs)("div",{className:g1,style:{...f1,width:"100%",margin:"0 auto",display:"flex",flexDirection:"column",gap:"20px",justifyContent:"center",alignItems:"center",...m},role:C?"group":"listbox","aria-multiselectable":C?void 0:!e,"aria-label":"Odontogram","data-read-only":C?"true":"false",tabIndex:C?-1:0,children:[(0,g.jsx)("input",{type:"hidden",name:w??"teeth",value:JSON.stringify(Array.from(H))}),(0,g.jsxs)("svg",{ref:W,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:p1(x,M),className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[(0,g.jsx)("title",{children:"Odontogram"}),d1.map(({name:r,transform:c,label:n},Z)=>(0,g.jsx)("g",{transform:c,children:u1(`teeth-${Z+1}`)},r))]}),u&&(0,g.jsx)(o1,{active:E.active,position:E.position,payload:E.payload,content:p.content}),y&&(0,g.jsx)(X,{conditions:P})]})},h1=c1;0&&(module.exports={Odontogram,getViewBox});
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9PZG9udG9ncmFtLnRzeCIsICIuLi9zcmMvTGFiZWxzLnRzeCIsICIuLi9zcmMvVGVldGgudHN4IiwgIi4uL3NyYy9Ub29sdGlwLnRzeCIsICIuLi9zcmMvZGF0YS50cyIsICIuLi9zcmMvdXRpbHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi9PZG9udG9ncmFtXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL09kb250b2dyYW1cIjtcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZVwiO1xuIiwgImltcG9ydCBcIi4vc3R5bGVzLmNzc1wiO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NQcm9wZXJ0aWVzLFxuICB0eXBlIEZDLFxuICB0eXBlIEtleWJvYXJkRXZlbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDb25kaXRpb25MYWJlbHMgZnJvbSBcIi4vTGFiZWxzXCI7XG5pbXBvcnQgeyBUZWV0aCB9IGZyb20gXCIuL1RlZXRoXCI7XG5pbXBvcnQgeyBPZG9udG9ncmFtVG9vbHRpcCB9IGZyb20gXCIuL1Rvb2x0aXBcIjtcbmltcG9ydCB7IE5ld1RlZXRoUGF0aHMsIHRlZXRoUGF0aHMgfSBmcm9tIFwiLi9kYXRhXCI7XG5pbXBvcnQgdHlwZSB7XG4gIE9kb250b2dyYW1Qcm9wcyxcbiAgUGxhY2VtZW50LFxuICBUb290aENvbmRpdGlvbkdyb3VwLFxuICBUb290aERldGFpbCxcbiAgVG9vdGhJbnRlcmFjdGlvbkV2ZW50LFxufSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQge1xuICBjb252ZXJ0RkRJVG9Ob3RhdGlvbixcbiAgZ2V0VG9vdGhOb3RhdGlvbnMsXG4gIG1hcFRvQ3NzVmFycyxcbiAgcXVhZHJhbnRzIGFzIG5ld3F1YWRyYW50cyxcbiAgb2xkcXVhZHJhbnRzLFxuICBwbGFjZW1lbnRzLFxufSBmcm9tIFwiLi91dGlsc1wiO1xuXG50eXBlIExheW91dCA9IFwiY2lyY2xlXCIgfCBcInNxdWFyZVwiO1xudHlwZSBTaG93SGFsZiA9IFwiZnVsbFwiIHwgXCJ1cHBlclwiIHwgXCJsb3dlclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld0JveChsYXlvdXQ6IExheW91dCwgc2hvd0hhbGY6IFNob3dIYWxmKTogc3RyaW5nIHtcbiAgaWYgKGxheW91dCA9PT0gXCJzcXVhcmVcIikge1xuICAgIC8vIGxpbmVhciBkb2VzIG5vdCBzdXBwb3J0IGhhbGYgc2xpY2luZyAoc2luZ2xlIHJvdylcblxuICAgIGlmIChzaG93SGFsZiA9PT0gXCJ1cHBlclwiKSB7XG4gICAgICByZXR1cm4gXCIwIDAgOTAwIDc1XCI7XG4gICAgfVxuICAgIGlmIChzaG93SGFsZiA9PT0gXCJsb3dlclwiKSB7XG4gICAgICByZXR1cm4gXCIwIDc1IDkwMCA3NSBcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gXCIwIDAgOTAwIDE1MFwiO1xuICB9XG5cbiAgLy8gY2lyY2xlIGxheW91dFxuICBjb25zdCBmdWxsID0gXCIwIDAgNDA5IDY5NFwiO1xuICBjb25zdCB1cHBlciA9IFwiMCAwIDQwOSAzNDdcIjtcbiAgY29uc3QgbG93ZXIgPSBcIjAgMzQ3IDQwOSAzNDdcIjtcblxuICBpZiAoc2hvd0hhbGYgPT09IFwidXBwZXJcIikge1xuICAgIHJldHVybiB1cHBlcjtcbiAgfVxuICBpZiAoc2hvd0hhbGYgPT09IFwibG93ZXJcIikge1xuICAgIHJldHVybiBsb3dlcjtcbiAgfVxuICByZXR1cm4gZnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IE9kb250b2dyYW06IEZDPE9kb250b2dyYW1Qcm9wcz4gPSAoe1xuICBkZWZhdWx0U2VsZWN0ZWQgPSBbXSxcbiAgc2luZ2xlU2VsZWN0ID0gZmFsc2UsXG4gIG9uQ2hhbmdlLFxuICBjbGFzc05hbWUgPSBcIlwiLFxuICB0aGVtZSA9IFwibGlnaHRcIixcbiAgY29sb3JzID0ge30sXG4gIG5vdGF0aW9uID0gXCJGRElcIixcbiAgdG9vbHRpcCA9IHtcbiAgICBtYXJnaW46IDEwLFxuICAgIHBsYWNlbWVudDogXCJ0b3BcIixcbiAgfSxcbiAgc2hvd1Rvb2x0aXAgPSB0cnVlLFxuICBzaG93SGFsZiA9IFwiZnVsbFwiLFxuICBuYW1lLFxuICBtYXhUZWV0aCA9IDgsXG4gIHRlZXRoQ29uZGl0aW9ucyxcbiAgcmVhZE9ubHkgPSBmYWxzZSxcbiAgc2hvd0xhYmVscyA9IGZhbHNlLFxuICBsYXlvdXQgPSBcImNpcmNsZVwiLFxuICBzdHlsZXMsXG59KSA9PiB7XG4gIC8qKlxuICAgKiBNZW1vOiB0b290aCB0eXBlIGxvb2t1cFxuICAgKi9cblxuICBjb25zdCB0ZWV0aHBhdGggPSBsYXlvdXQgPT09IFwiY2lyY2xlXCIgPyB0ZWV0aFBhdGhzIDogTmV3VGVldGhQYXRocztcblxuICBjb25zdCBxdWFkcmFudHMgPSBsYXlvdXQgPT09IFwiY2lyY2xlXCIgPyBvbGRxdWFkcmFudHMgOiBuZXdxdWFkcmFudHM7XG5cbiAgY29uc3QgdG9vdGhUeXBlQnlOYW1lID0gdXNlTWVtbyhcbiAgICAoKSA9PiBuZXcgTWFwKHRlZXRocGF0aC5tYXAoKHQpID0+IFt0Lm5hbWUsIHQudHlwZV0pKSxcbiAgICBbdGVldGhwYXRoXSxcbiAgKTtcblxuICAvKipcbiAgICogSGVscGVyc1xuICAgKi9cbiAgY29uc3QgZ2V0VG9vdGhUeXBlID0gdXNlQ2FsbGJhY2soXG4gICAgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRvb3RoTmFtZSA9IGlkLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIikuc2xpY2UoMSk7XG4gICAgICByZXR1cm4gdG9vdGhUeXBlQnlOYW1lLmdldCh0b290aE5hbWUpID8/IFwiVW5rbm93blwiO1xuICAgIH0sXG4gICAgW3Rvb3RoVHlwZUJ5TmFtZV0sXG4gICk7XG5cbiAgY29uc3QgY2xhbXBNYXhUZWV0aCA9IHVzZUNhbGxiYWNrKCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJudW1iZXJcIiB8fCBOdW1iZXIuaXNOYU4odmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGVldGhwYXRoLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKHRlZXRocGF0aC5sZW5ndGgsIE1hdGguZmxvb3IodmFsdWUpKSk7XG4gIH0sIFt0ZWV0aHBhdGhdKTtcblxuICBjb25zdCBidWlsZFRvb3RoRGV0YWlsID0gdXNlQ2FsbGJhY2soXG4gICAgKGlkOiBzdHJpbmcpOiBUb290aERldGFpbCA9PiAoe1xuICAgICAgaWQsXG4gICAgICBub3RhdGlvbnM6IGdldFRvb3RoTm90YXRpb25zKGlkKSxcbiAgICAgIHR5cGU6IGdldFRvb3RoVHlwZShpZCksXG4gICAgfSksXG4gICAgW2dldFRvb3RoVHlwZV0sXG4gICk7XG5cbiAgLyoqXG4gICAqIFRoZW1lXG4gICAqL1xuICBjb25zdCB0aGVtZUNvbG9ycyA9XG4gICAgdGhlbWUgPT09IFwiZGFya1wiXG4gICAgICA/IHtcbiAgICAgICAgXCItLWRhcmstYmx1ZVwiOiBcIiNhYWI2ZmZcIixcbiAgICAgICAgXCItLWJhc2UtYmx1ZVwiOiBcIiNkMGQ1ZjZcIixcbiAgICAgICAgXCItLWxpZ2h0LWJsdWVcIjogXCIjNTM2MWU2XCIsXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgXCItLWRhcmstYmx1ZVwiOiBcIiMzZTVlZGNcIixcbiAgICAgICAgXCItLWJhc2UtYmx1ZVwiOiBcIiM4YTk4YmVcIixcbiAgICAgICAgXCItLWxpZ2h0LWJsdWVcIjogXCIjYzZjY2Y4XCIsXG4gICAgICB9O1xuXG4gIC8qKlxuICAgKiBTdGF0ZVxuICAgKi9cbiAgY29uc3QgW3NlbGVjdGVkLCBzZXRTZWxlY3RlZF0gPSB1c2VTdGF0ZTxTZXQ8c3RyaW5nPj4oXG4gICAgKCkgPT4gbmV3IFNldChzaW5nbGVTZWxlY3QgPyBkZWZhdWx0U2VsZWN0ZWQuc2xpY2UoMCwgMSkgOiBkZWZhdWx0U2VsZWN0ZWQpLFxuICApO1xuXG4gIGNvbnN0IHN2Z1JlZiA9IHVzZVJlZjxTVkdTVkdFbGVtZW50PihudWxsKTtcblxuICBjb25zdCBbdG9vbHRpcERhdGEsIHNldFRvb2x0aXBEYXRhXSA9IHVzZVN0YXRlPHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgcG9zaXRpb24/OiB7XG4gICAgICB4OiBudW1iZXI7XG4gICAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudDtcbiAgICAgIG1hcmdpbjogbnVtYmVyO1xuICAgICAgYW5jaG9yUmVjdDoge1xuICAgICAgICB0b3A6IG51bWJlcjtcbiAgICAgICAgcmlnaHQ6IG51bWJlcjtcbiAgICAgICAgYm90dG9tOiBudW1iZXI7XG4gICAgICAgIGxlZnQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgICBwYXlsb2FkPzogVG9vdGhEZXRhaWw7XG4gIH0+KHsgYWN0aXZlOiBmYWxzZSB9KTtcblxuICAvKipcbiAgICogSGFuZGxlcnNcbiAgICovXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAocmVhZE9ubHkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRTZWxlY3RlZCgocHJldmlvdXMpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IG5ldyBTZXQocHJldmlvdXMpO1xuXG4gICAgICAgIGlmIChzaW5nbGVTZWxlY3QpIHtcbiAgICAgICAgICBpZiAodXBkYXRlZC5oYXMoaWQpKSB7XG4gICAgICAgICAgICB1cGRhdGVkLmRlbGV0ZShpZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVwZGF0ZWQuY2xlYXIoKTtcbiAgICAgICAgICAgIHVwZGF0ZWQuYWRkKGlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBkYXRlZC5oYXMoaWQpID8gdXBkYXRlZC5kZWxldGUoaWQpIDogdXBkYXRlZC5hZGQoaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgb25DaGFuZ2U/LihBcnJheS5mcm9tKHVwZGF0ZWQpLm1hcChidWlsZFRvb3RoRGV0YWlsKSk7XG4gICAgICAgIHJldHVybiB1cGRhdGVkO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIHJlYWRPbmx5LCBidWlsZFRvb3RoRGV0YWlsLCBzaW5nbGVTZWxlY3RdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQ8U1ZHR0VsZW1lbnQ+LCBpZDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAocmVhZE9ubHkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIgfHwgZXZlbnQua2V5ID09PSBcIiBcIikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBoYW5kbGVUb2dnbGUoaWQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZVRvZ2dsZSwgcmVhZE9ubHldLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUhvdmVyID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgaWQ6IHN0cmluZyxcbiAgICAgIGV2ZW50OiBUb290aEludGVyYWN0aW9uRXZlbnQsXG4gICAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9IFwicmlnaHRcIixcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHBhdGggPSBldmVudC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJwYXRoXCIpO1xuICAgICAgaWYgKCEocGF0aCAmJiBzdmdSZWYuY3VycmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0b290aEJveCA9IHBhdGguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBtYXJnaW4gPSB0b29sdGlwLm1hcmdpbiA/PyAxMDtcblxuICAgICAgY29uc3QgeyB4IH0gPVxuICAgICAgICBwbGFjZW1lbnRzW3BsYWNlbWVudF0/Lih0b290aEJveCwgbWFyZ2luKSA/P1xuICAgICAgICBwbGFjZW1lbnRzLnJpZ2h0KHRvb3RoQm94LCBtYXJnaW4pO1xuXG4gICAgICBzZXRUb29sdGlwRGF0YSh7XG4gICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICB4LFxuICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICBtYXJnaW4sXG4gICAgICAgICAgYW5jaG9yUmVjdDoge1xuICAgICAgICAgICAgdG9wOiB0b290aEJveC50b3AsXG4gICAgICAgICAgICByaWdodDogdG9vdGhCb3gucmlnaHQsXG4gICAgICAgICAgICBib3R0b206IHRvb3RoQm94LmJvdHRvbSxcbiAgICAgICAgICAgIGxlZnQ6IHRvb3RoQm94LmxlZnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGF5bG9hZDogYnVpbGRUb290aERldGFpbChpZCksXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFt0b29sdGlwLm1hcmdpbiwgYnVpbGRUb290aERldGFpbF0sXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlTGVhdmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VG9vbHRpcERhdGEoKHByZXYpID0+ICh7IC4uLnByZXYsIGFjdGl2ZTogZmFsc2UgfSkpO1xuICB9LCBbXSk7XG5cbiAgLyoqXG4gICAqIFF1YWRyYW50c1xuICAgKi9cbiAgY29uc3QgdmlzaWJsZVF1YWRyYW50cyA9XG4gICAgc2hvd0hhbGYgPT09IFwidXBwZXJcIlxuICAgICAgPyBxdWFkcmFudHMuc2xpY2UoMCwgMilcbiAgICAgIDogc2hvd0hhbGYgPT09IFwibG93ZXJcIlxuICAgICAgICA/IHF1YWRyYW50cy5zbGljZSgyKVxuICAgICAgICA6IHF1YWRyYW50cztcblxuICAvKipcbiAgICogVGVldGggc2xpY2VcbiAgICovXG4gIGNvbnN0IGZpbHRlcmVkVGVldGggPSB1c2VNZW1vKFxuICAgICgpID0+IHRlZXRocGF0aC5zbGljZSgwLCBjbGFtcE1heFRlZXRoKG1heFRlZXRoKSksXG4gICAgW21heFRlZXRoLCBjbGFtcE1heFRlZXRoLCB0ZWV0aHBhdGhdLFxuICApO1xuXG4gIC8qKlxuICAgKiBDb25kaXRpb24gbWFwXG4gICAqL1xuICBjb25zdCBjb25kaXRpb25NYXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgVG9vdGhDb25kaXRpb25Hcm91cD4oKTtcblxuICAgIGlmICh0ZWV0aENvbmRpdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIHRlZXRoQ29uZGl0aW9ucykge1xuICAgICAgICBmb3IgKGNvbnN0IHRvb3RoSWQgb2YgY29uZGl0aW9uLnRlZXRoKSB7XG4gICAgICAgICAgbWFwLnNldCh0b290aElkLCBjb25kaXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcDtcbiAgfSwgW3RlZXRoQ29uZGl0aW9uc10pO1xuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGVldGhcbiAgICovXG4gIGNvbnN0IHJlbmRlclRlZXRoID0gdXNlQ2FsbGJhY2soXG4gICAgKHByZWZpeDogc3RyaW5nKSA9PlxuICAgICAgZmlsdGVyZWRUZWV0aC5tYXAoKHRvb3RoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYCR7cHJlZml4fSR7dG9vdGgubmFtZX1gO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbik7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IGNvbmRpdGlvbk1hcC5nZXQoaWQpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFRlZXRoXG4gICAgICAgICAgICBrZXk9e2lkfVxuICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuXG4gICAgICAgICAgICB7Li4udG9vdGh9XG4gICAgICAgICAgICBuYW1lPXtpZH1cbiAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZC5oYXMoaWQpfVxuICAgICAgICAgICAgY29uZGl0aW9uPXtjb25kaXRpb259XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVUb2dnbGV9XG4gICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICBvbkhvdmVyPXtcbiAgICAgICAgICAgICAgc2hvd1Rvb2x0aXBcbiAgICAgICAgICAgICAgICA/IChjdXJyZW50SWQsIGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlSG92ZXIoY3VycmVudElkLCBldmVudCwgdG9vbHRpcC5wbGFjZW1lbnQpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uRm9jdXM9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcFxuICAgICAgICAgICAgICAgID8gKGN1cnJlbnRJZCwgZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVIb3ZlcihjdXJyZW50SWQsIGV2ZW50LCB0b29sdGlwLnBsYWNlbWVudClcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25MZWF2ZT17c2hvd1Rvb2x0aXAgPyBoYW5kbGVMZWF2ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uQmx1cj17c2hvd1Rvb2x0aXAgPyBoYW5kbGVMZWF2ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dGl0bGU+e2Rpc3BsYXlOYW1lfTwvdGl0bGU+XG4gICAgICAgICAgPC9UZWV0aD5cbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgIFtcbiAgICAgIGZpbHRlcmVkVGVldGgsXG4gICAgICBub3RhdGlvbixcbiAgICAgIGNvbmRpdGlvbk1hcCxcbiAgICAgIHJlYWRPbmx5LFxuICAgICAgc2VsZWN0ZWQsXG4gICAgICBoYW5kbGVUb2dnbGUsXG4gICAgICBoYW5kbGVLZXlEb3duLFxuICAgICAgaGFuZGxlSG92ZXIsXG4gICAgICBoYW5kbGVMZWF2ZSxcbiAgICAgIHNob3dUb29sdGlwLFxuICAgICAgdG9vbHRpcC5wbGFjZW1lbnQsXG4gICAgXSxcbiAgKTtcblxuICAvKipcbiAgICogQ29sb3JzXG4gICAqL1xuICBjb25zdCBmaW5hbENvbG9ycyA9IHtcbiAgICAuLi50aGVtZUNvbG9ycyxcbiAgICAuLi5tYXBUb0Nzc1ZhcnMoY29sb3JzKSxcbiAgfTtcblxuICBjb25zdCBjb250YWluZXJDbGFzc2VzID0gW1xuICAgIFwiT2RvbnRvZ3JhbVwiLFxuICAgIHRoZW1lID09PSBcImRhcmtcIiA/IFwiZGFyay10aGVtZVwiIDogXCJcIixcbiAgICBjbGFzc05hbWUsXG4gIF1cbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oXCIgXCIpO1xuXG4gIC8vd2UgaGF2ZSA0IGNvbmRpdGlvbnNcbiAgLy9sYXlvdXQgaXMgY2lyY2xlIG9yIHNxdWFyZVxuICAvLyBpZlxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjb250YWluZXJDbGFzc2VzfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uKGZpbmFsQ29sb3JzIGFzIENTU1Byb3BlcnRpZXMpLFxuICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAgICAgIGdhcDogXCIyMHB4XCIsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAuLi4oc3R5bGVzIGFzIENTU1Byb3BlcnRpZXMpLFxuICAgICAgfX1cbiAgICAgIHJvbGU9e3JlYWRPbmx5ID8gXCJncm91cFwiIDogXCJsaXN0Ym94XCJ9XG4gICAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT17cmVhZE9ubHkgPyB1bmRlZmluZWQgOiAhc2luZ2xlU2VsZWN0fVxuXG4gICAgICBhcmlhLWxhYmVsPVwiT2RvbnRvZ3JhbVwiXG4gICAgICBkYXRhLXJlYWQtb25seT17cmVhZE9ubHkgPyBcInRydWVcIiA6IFwiZmFsc2VcIn1cbiAgICAgIHRhYkluZGV4PXtyZWFkT25seSA/IC0xIDogMH1cbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgIG5hbWU9e25hbWUgPz8gXCJ0ZWV0aFwifVxuICAgICAgICB2YWx1ZT17SlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShzZWxlY3RlZCkpfVxuICAgICAgLz5cblxuICAgICAgPHN2Z1xuICAgICAgICByZWY9e3N2Z1JlZn1cbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgdmlld0JveD17Z2V0Vmlld0JveChsYXlvdXQsIHNob3dIYWxmKX1cbiAgICAgICAgY2xhc3NOYW1lPVwiT2RvbnRvZ3JhbVwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICAgICAgdG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDx0aXRsZT5PZG9udG9ncmFtPC90aXRsZT5cblxuICAgICAgICB7dmlzaWJsZVF1YWRyYW50cy5tYXAoKHsgbmFtZSwgdHJhbnNmb3JtLCBsYWJlbCB9LCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxnIGtleT17bmFtZX0gdHJhbnNmb3JtPXt0cmFuc2Zvcm19PlxuICAgICAgICAgICAge3JlbmRlclRlZXRoKGB0ZWV0aC0ke2luZGV4ICsgMX1gKX1cbiAgICAgICAgICA8L2c+XG4gICAgICAgICkpfVxuICAgICAgPC9zdmc+XG5cbiAgICAgIHtzaG93VG9vbHRpcCAmJiAoXG4gICAgICAgIDxPZG9udG9ncmFtVG9vbHRpcFxuICAgICAgICAgIGFjdGl2ZT17dG9vbHRpcERhdGEuYWN0aXZlfVxuICAgICAgICAgIHBvc2l0aW9uPXt0b29sdGlwRGF0YS5wb3NpdGlvbn1cbiAgICAgICAgICBwYXlsb2FkPXt0b29sdGlwRGF0YS5wYXlsb2FkfVxuICAgICAgICAgIGNvbnRlbnQ9e3Rvb2x0aXAuY29udGVudH1cbiAgICAgICAgLz5cbiAgICAgICl9XG5cbiAgICAgIHtzaG93TGFiZWxzICYmIDxDb25kaXRpb25MYWJlbHMgY29uZGl0aW9ucz17dGVldGhDb25kaXRpb25zfSAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9kb250b2dyYW07XG4iLCAiaW1wb3J0IHR5cGUgeyBGQyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBUb290aENvbmRpdGlvbkdyb3VwIH0gZnJvbSBcIi4vdHlwZVwiO1xuXG50eXBlIENvbmRpdGlvbkxhYmVsc1Byb3BzID0ge1xuXHRjb25kaXRpb25zPzogVG9vdGhDb25kaXRpb25Hcm91cFtdO1xuXHRjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgQ29uZGl0aW9uTGFiZWxzOiBGQzxDb25kaXRpb25MYWJlbHNQcm9wcz4gPSAoe1xuXHRjb25kaXRpb25zLFxuXHRjbGFzc05hbWUgPSBcIlwiLFxufSkgPT4ge1xuXHRpZiAoIWNvbmRpdGlvbnMgfHwgY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdHJldHVybiAoXG5cdFx0PHVsXG5cdFx0XHRjbGFzc05hbWU9e2NsYXNzTmFtZX1cblx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdFx0XHRnYXA6IDgsXG5cdFx0XHRcdGZvbnRGYW1pbHk6IFwic2Fucy1zZXJpZlwiLFxuXHRcdFx0XHRmb250U2l6ZTogMTQsXG5cdFx0XHRcdGZsZXhXcmFwOiBcIndyYXBcIixcblx0XHRcdH19XG5cdFx0XHRhcmlhLWxhYmVsPVwiVG9vdGggY29uZGl0aW9uIGxlZ2VuZFwiXG5cdFx0PlxuXHRcdFx0e2NvbmRpdGlvbnMubWFwKChjb25kaXRpb24pID0+IChcblx0XHRcdFx0PGxpXG5cdFx0XHRcdFx0a2V5PXtjb25kaXRpb24ubGFiZWx9XG5cdFx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdFx0XHRcdFx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0XHRcdFx0XHRcdGdhcDogOCxcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRcdGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0XHR3aWR0aDogMTQsXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogMTQsXG5cdFx0XHRcdFx0XHRcdGJvcmRlclJhZGl1czogNCxcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogY29uZGl0aW9uLmZpbGxDb2xvcixcblx0XHRcdFx0XHRcdFx0Ym9yZGVyOiBgMnB4IHNvbGlkICR7XG5cdFx0XHRcdFx0XHRcdFx0Y29uZGl0aW9uLm91dGxpbmVDb2xvciA/PyBjb25kaXRpb24uZmlsbENvbG9yXG5cdFx0XHRcdFx0XHRcdH1gLFxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDxzcGFuIHN0eWxlPXt7IHRleHRUcmFuc2Zvcm06IFwiY2FwaXRhbGl6ZVwiIH19Pntjb25kaXRpb24ubGFiZWx9PC9zcGFuPlxuXHRcdFx0XHQ8L2xpPlxuXHRcdFx0KSl9XG5cdFx0PC91bD5cblx0KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbmRpdGlvbkxhYmVscztcbiIsICJpbXBvcnQgdHlwZSB7IFRlZXRoUHJvcHMgfSBmcm9tIFwiLi90eXBlXCI7XG5leHBvcnQgY29uc3QgVGVldGggPSAoe1xuICBuYW1lLFxuICBvdXRsaW5lUGF0aCxcbiAgc2hhZG93UGF0aCxcbiAgbGluZUhpZ2hsaWdodFBhdGgsXG4gIHNlbGVjdGVkLFxuICBjb25kaXRpb24sXG4gIHJlYWRPbmx5LFxuICBvbkNsaWNrLFxuICBvbktleURvd24sXG4gIG9uSG92ZXIsXG4gIG9uRm9jdXMsXG4gIG9uTGVhdmUsXG4gIG9uQmx1cixcbiAgY2hpbGRyZW4sXG59OiBUZWV0aFByb3BzKSA9PiB7XG4gIGNvbnN0IHN0cm9rZUNvbG9yID0gY29uZGl0aW9uPy5vdXRsaW5lQ29sb3IgPz8gXCJjdXJyZW50Q29sb3JcIjtcbiAgY29uc3QgZmlsbENvbG9yID0gY29uZGl0aW9uPy5maWxsQ29sb3IgPz8gXCJjdXJyZW50Q29sb3JcIjtcblxuICByZXR1cm4gKFxuICAgIDxnXG4gICAgICBjbGFzc05hbWU9e2Ake25hbWV9ICR7c2VsZWN0ZWQgPyBcInNlbGVjdGVkXCIgOiBcIlwifWB9XG4gICAgICBvbkNsaWNrPXtyZWFkT25seSA/IHVuZGVmaW5lZCA6ICgpID0+IG9uQ2xpY2s/LihuYW1lKX1cbiAgICAgIG9uS2V5RG93bj17cmVhZE9ubHkgPyB1bmRlZmluZWQgOiAoZSkgPT4gb25LZXlEb3duPy4oZSwgbmFtZSl9XG4gICAgICBvbk1vdXNlRW50ZXI9e29uSG92ZXIgPyAoZSkgPT4gb25Ib3ZlcihuYW1lLCBlKSA6IHVuZGVmaW5lZH1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXMgPyAoZSkgPT4gb25Gb2N1cyhuYW1lLCBlKSA6IHVuZGVmaW5lZH1cbiAgICAgIG9uTW91c2VMZWF2ZT17b25MZWF2ZX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgcm9sZT17cmVhZE9ubHkgPyB1bmRlZmluZWQgOiBcIm9wdGlvblwifVxuICAgICAgYXJpYS1zZWxlY3RlZD17cmVhZE9ubHkgPyB1bmRlZmluZWQgOiBzZWxlY3RlZH1cbiAgICAgIHRhYkluZGV4PXtyZWFkT25seSA/IC0xIDogMH1cbiAgICAgIGFyaWEtbGFiZWw9e1xuICAgICAgICByZWFkT25seSA/IHVuZGVmaW5lZCA6IGBUb290aCAke25hbWUucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKX1gXG4gICAgICB9XG5cbiAgICAgIGFyaWEtZGlzYWJsZWQ9e3JlYWRPbmx5fVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgY3Vyc29yOiByZWFkT25seSA/IFwiZGVmYXVsdFwiIDogXCJwb2ludGVyXCIsXG4gICAgICAgIGNvbG9yOiBzdHJva2VDb2xvcixcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuXG4gICAgICB7Lyogb3V0bGluZSAqL31cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZT17c3Ryb2tlQ29sb3J9XG4gICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD17b3V0bGluZVBhdGh9XG4gICAgICAvPlxuXG4gICAgICB7LyogZmlsbCAqL31cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9e2ZpbGxDb2xvcn1cbiAgICAgICAgZD17c2hhZG93UGF0aH1cbiAgICAgICAgZGF0YS1jb2xvcmVkPXtjb25kaXRpb24gPyBcInRydWVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgc3R5bGU9e3sgb3BhY2l0eTogY29uZGl0aW9uID8gMSA6IHVuZGVmaW5lZCB9fVxuICAgICAgLz5cblxuICAgICAgey8qIGhpZ2hsaWdodCBsaW5lcyAqL31cbiAgICAgIHtBcnJheS5pc0FycmF5KGxpbmVIaWdobGlnaHRQYXRoKVxuICAgICAgICA/IGxpbmVIaWdobGlnaHRQYXRoLm1hcCgoZCkgPT4gKFxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBrZXk9e2R9XG4gICAgICAgICAgICBzdHJva2U9e3N0cm9rZUNvbG9yfVxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgZD17ZH1cbiAgICAgICAgICAvPlxuICAgICAgICApKVxuICAgICAgICA6IChcbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3Ryb2tlPXtzdHJva2VDb2xvcn1cbiAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIGQ9e2xpbmVIaWdobGlnaHRQYXRofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cblxuICAgIDwvZz5cbiAgKTtcbn07IiwgImltcG9ydCB7IHR5cGUgUmVhY3ROb2RlLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgUGxhY2VtZW50LCBUb29sdGlwQ29udGVudFJlbmRlcmVyLCBUb290aERldGFpbCB9IGZyb20gXCIuL3R5cGVcIjtcblxuY29uc3QgQVJST1dfT0ZGU0VUID0gMTI7XG5jb25zdCBWSUVXUE9SVF9QQURESU5HID0gODtcblxuZXhwb3J0IGludGVyZmFjZSBPZG9udG9ncmFtVG9vbHRpcFByb3BzIHtcblx0YWN0aXZlOiBib29sZWFuO1xuXHRwYXlsb2FkPzogVG9vdGhEZXRhaWw7XG5cdHBvc2l0aW9uPzoge1xuXHRcdHg6IG51bWJlcjtcblx0XHRwbGFjZW1lbnQ6IFBsYWNlbWVudDtcblx0XHRtYXJnaW46IG51bWJlcjtcblx0XHRhbmNob3JSZWN0OiB7XG5cdFx0XHR0b3A6IG51bWJlcjtcblx0XHRcdHJpZ2h0OiBudW1iZXI7XG5cdFx0XHRib3R0b206IG51bWJlcjtcblx0XHRcdGxlZnQ6IG51bWJlcjtcblx0XHR9O1xuXHR9O1xuXHRjb250ZW50PzogUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlcjtcbn1cblxuY29uc3QgY2xhbXAgPSAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSA9PlxuXHRNYXRoLm1pbihNYXRoLm1heCh2YWx1ZSwgbWluKSwgbWF4KTtcblxuY29uc3QgcHJlZmVyc0JvdHRvbSA9IChwbGFjZW1lbnQ6IFBsYWNlbWVudCkgPT4gcGxhY2VtZW50LnN0YXJ0c1dpdGgoXCJib3R0b21cIik7XG5cbmNvbnN0IGdldENvbnRlbnQgPSAoXG5cdGNvbnRlbnQ6IFJlYWN0Tm9kZSB8IFRvb2x0aXBDb250ZW50UmVuZGVyZXIgfCB1bmRlZmluZWQsXG5cdHBheWxvYWQ/OiBUb290aERldGFpbCxcbikgPT4ge1xuXHRpZiAoIWNvbnRlbnQpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0cmV0dXJuIHR5cGVvZiBjb250ZW50ID09PSBcImZ1bmN0aW9uXCIgPyBjb250ZW50KHBheWxvYWQpIDogY29udGVudDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBPZG9udG9ncmFtVG9vbHRpcCh7XG5cdGFjdGl2ZSxcblx0cGF5bG9hZCxcblx0cG9zaXRpb24sXG5cdGNvbnRlbnQsXG59OiBPZG9udG9ncmFtVG9vbHRpcFByb3BzKSB7XG5cdGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cdGNvbnN0IFtjb29yZHMsIHNldENvb3Jkc10gPSB1c2VTdGF0ZTx7XG5cdFx0bGVmdDogbnVtYmVyO1xuXHRcdHRvcDogbnVtYmVyO1xuXHRcdGlzQm90dG9tUGxhY2VtZW50OiBib29sZWFuO1xuXHR9IHwgbnVsbD4obnVsbCk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoIShhY3RpdmUgJiYgcmVmLmN1cnJlbnQgJiYgcG9zaXRpb24pKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgdG9vbHRpcEJveCA9IHJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdGNvbnN0IHsgeCwgcGxhY2VtZW50LCBtYXJnaW4sIGFuY2hvclJlY3QgfSA9IHBvc2l0aW9uO1xuXG5cdFx0Y29uc3QgbWF4TGVmdCA9IE1hdGgubWF4KFxuXHRcdFx0VklFV1BPUlRfUEFERElORyxcblx0XHRcdHdpbmRvdy5pbm5lcldpZHRoIC0gdG9vbHRpcEJveC53aWR0aCAtIFZJRVdQT1JUX1BBRERJTkcsXG5cdFx0KTtcblx0XHRjb25zdCBsZWZ0ID0gY2xhbXAoeCAtIHRvb2x0aXBCb3gud2lkdGggLyAyLCBWSUVXUE9SVF9QQURESU5HLCBtYXhMZWZ0KTtcblxuXHRcdGNvbnN0IHRvcFdoZW5BYm92ZSA9XG5cdFx0XHRhbmNob3JSZWN0LnRvcCAtIHRvb2x0aXBCb3guaGVpZ2h0IC0gbWFyZ2luIC0gQVJST1dfT0ZGU0VUO1xuXHRcdGNvbnN0IHRvcFdoZW5CZWxvdyA9IGFuY2hvclJlY3QuYm90dG9tICsgbWFyZ2luICsgQVJST1dfT0ZGU0VUO1xuXG5cdFx0Y29uc3Qgc2hvdWxkU3RhcnRCZWxvdyA9IHByZWZlcnNCb3R0b20ocGxhY2VtZW50KTtcblx0XHRsZXQgaXNCb3R0b21QbGFjZW1lbnQgPSBzaG91bGRTdGFydEJlbG93O1xuXHRcdGxldCB0b3AgPSBzaG91bGRTdGFydEJlbG93ID8gdG9wV2hlbkJlbG93IDogdG9wV2hlbkFib3ZlO1xuXG5cdFx0aWYgKCFpc0JvdHRvbVBsYWNlbWVudCAmJiB0b3AgPCBWSUVXUE9SVF9QQURESU5HKSB7XG5cdFx0XHRpc0JvdHRvbVBsYWNlbWVudCA9IHRydWU7XG5cdFx0XHR0b3AgPSB0b3BXaGVuQmVsb3c7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWF4VG9wID0gTWF0aC5tYXgoXG5cdFx0XHRWSUVXUE9SVF9QQURESU5HLFxuXHRcdFx0d2luZG93LmlubmVySGVpZ2h0IC0gdG9vbHRpcEJveC5oZWlnaHQgLSBWSUVXUE9SVF9QQURESU5HLFxuXHRcdCk7XG5cblx0XHRpZiAoaXNCb3R0b21QbGFjZW1lbnQgJiYgdG9wID4gbWF4VG9wKSB7XG5cdFx0XHRpc0JvdHRvbVBsYWNlbWVudCA9IGZhbHNlO1xuXHRcdFx0dG9wID0gdG9wV2hlbkFib3ZlO1xuXHRcdH1cblxuXHRcdHRvcCA9IGNsYW1wKHRvcCwgVklFV1BPUlRfUEFERElORywgbWF4VG9wKTtcblxuXHRcdHNldENvb3Jkcyh7IGxlZnQsIHRvcCwgaXNCb3R0b21QbGFjZW1lbnQgfSk7XG5cdH0sIFthY3RpdmUsIHBvc2l0aW9uXSk7XG5cblx0aWYgKCEoYWN0aXZlICYmIHBheWxvYWQpKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRyZXR1cm4gKFxuXHRcdDxkaXZcblx0XHRcdHJlZj17cmVmfVxuXHRcdFx0Y2xhc3NOYW1lPVwib2RvbnRvZ3JhbS10b29sdGlwXCJcblx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdHBvc2l0aW9uOiBcImZpeGVkXCIsXG5cdFx0XHRcdHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBcInZhcigtLW9kb250b2dyYW0tdG9vbHRpcC1iZywgcmdiYSgwLDAsMCwwLjg1KSlcIixcblx0XHRcdFx0Y29sb3I6IFwidmFyKC0tb2RvbnRvZ3JhbS10b29sdGlwLWZnLCAjZmZmKVwiLFxuXHRcdFx0XHRwYWRkaW5nOiBcIjZweCAxMHB4XCIsXG5cdFx0XHRcdGJvcmRlclJhZGl1czogXCI2cHhcIixcblx0XHRcdFx0Zm9udFNpemU6IFwiMTJweFwiLFxuXHRcdFx0XHRsaW5lSGVpZ2h0OiAxLjMsXG5cdFx0XHRcdHdoaXRlU3BhY2U6IFwibm93cmFwXCIsXG5cdFx0XHRcdHpJbmRleDogMTAwMCxcblx0XHRcdFx0bGVmdDogY29vcmRzPy5sZWZ0ID8/IC05OTk5LFxuXHRcdFx0XHR0b3A6IGNvb3Jkcz8udG9wID8/IC05OTk5LFxuXHRcdFx0XHRvcGFjaXR5OiBjb29yZHMgPyAxIDogMCxcblx0XHRcdFx0dHJhbnNpdGlvbjogXCJvcGFjaXR5IDAuMTVzIGVhc2VcIixcblx0XHRcdH19XG5cdFx0PlxuXHRcdFx0e2dldENvbnRlbnQoY29udGVudCwgcGF5bG9hZCkgPz8gKFxuXHRcdFx0XHQ8PlxuXHRcdFx0XHRcdDxkaXY+VG9vdGg6IHtwYXlsb2FkLm5vdGF0aW9ucy5mZGl9PC9kaXY+XG5cdFx0XHRcdFx0PGRpdj5UeXBlOiB7cGF5bG9hZC50eXBlfTwvZGl2PlxuXHRcdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0XHRVbml2ZXJzYWw6IHtwYXlsb2FkLm5vdGF0aW9ucy51bml2ZXJzYWx9LCBQYWxtZXI6e1wiIFwifVxuXHRcdFx0XHRcdFx0e3BheWxvYWQubm90YXRpb25zLnBhbG1lcn1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC8+XG5cdFx0XHQpfVxuXHRcdFx0PGRpdlxuXHRcdFx0XHRjbGFzc05hbWU9XCJvZG9udG9ncmFtLXRvb2x0aXAtYXJyb3dcIlxuXHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG5cdFx0XHRcdFx0bGVmdDogXCI1MCVcIixcblx0XHRcdFx0XHR0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxuXHRcdFx0XHRcdHdpZHRoOiAwLFxuXHRcdFx0XHRcdGhlaWdodDogMCxcblx0XHRcdFx0XHRib3JkZXJMZWZ0OiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuXHRcdFx0XHRcdGJvcmRlclJpZ2h0OiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuXHRcdFx0XHRcdC4uLihjb29yZHM/LmlzQm90dG9tUGxhY2VtZW50XG5cdFx0XHRcdFx0XHQ/IHtcblx0XHRcdFx0XHRcdFx0XHR0b3A6IFwiLTZweFwiLFxuXHRcdFx0XHRcdFx0XHRcdGJvcmRlckJvdHRvbTpcblx0XHRcdFx0XHRcdFx0XHRcdFwiNnB4IHNvbGlkIHZhcigtLW9kb250b2dyYW0tdG9vbHRpcC1iZywgcmdiYSgwLCAwLCAwLCAwLjg1KSlcIixcblx0XHRcdFx0XHRcdCAgfVxuXHRcdFx0XHRcdFx0OiB7XG5cdFx0XHRcdFx0XHRcdFx0Ym90dG9tOiBcIi02cHhcIixcblx0XHRcdFx0XHRcdFx0XHRib3JkZXJUb3A6XG5cdFx0XHRcdFx0XHRcdFx0XHRcIjZweCBzb2xpZCB2YXIoLS1vZG9udG9ncmFtLXRvb2x0aXAtYmcsIHJnYmEoMCwgMCwgMCwgMC44NSkpXCIsXG5cdFx0XHRcdFx0XHQgIH0pLFxuXHRcdFx0XHR9fVxuXHRcdFx0Lz5cblx0XHQ8L2Rpdj5cblx0KTtcbn1cbiIsICJleHBvcnQgY29uc3QgdGVldGhQYXRocyA9IFtcblx0e1xuXHRcdG5hbWU6IFwiMVwiLFxuXHRcdHR5cGU6IFwiQ2VudHJhbCBJbmNpc29yXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xNzMuOTUxIDEuNjk4Yy0yLjE5OC4xNi01LjMwMi44NjItNS4zMDIuODYycy01LjUzMSAxLjAyNS03Ljc4MSAyLjI3Yy0yLjQwMyAxLjMzMy01LjU1MyAzLjI5OS02LjAxMyA1LjI1OC0uNDMyIDEuODQtLjc4IDQuNzM0LS40OTEgNi44MzJsLjAyNy4yYy4zNDggMi41MjcuODY1IDYuMjggMS4yMzkgMTAuMzE2LjE4NiAyLS4xMDEgMy4yMS43NTEgNi4xNi44OTUgMy4xIDEuMzk1IDQuNTczIDIuMDEzIDUuNjg3LjY0NiAxLjE2NCAxLjQ5MyAyLjA4NyAyLjAzIDMuMjguODY2IDEuOTI0IDIuMzkzIDQuMjkgMy44NyA2LjFhNDguODA1IDQ4LjgwNSAwIDAgMCAyLjM2IDIuNjYzYzEuMDE2IDEuMDc4IDIuODE5IDMuMTEgMy44OTggNC4zMzEgMS41MjYgMS43MjcgMy4wNzYgMy4yNDggNC40MjMgMy43NDIgMS4yMTcuNDQ2IDIuNzA5LjY0MiAzLjc5My45MzYgMS4zNjkuMzcyIDIuNDk0LjYzOCA0LjU5NyAwIDEuNTQ1LS40NjggMi43MjUtLjYyMSA0LjM3Mi0yLjQyNCAyLjA2NC0yLjI1OCAyLjg0Ni0zLjUxNyAzLjUxMi00Ljc0NiAxLjA2NS0xLjk2NCAyLjUyNC00LjY0OCAzLjU0MS02LjQyMi42MTEtMS4wNjggMi4yMjEtMy4wODkgNC4wODYtOC44NDUgMS41NC00Ljc1MiAyLjM2Ny03Ljc2IDIuNzMxLTguOTk0LjQxNS0xLjQwOCAxLjA3OS0zLjU4MyAxLjM1NS02LjE5Ni40NC00LjE3NiAxLjExNC03LjQ4MiAxLjA2Mi0xMS4wMjYtLjA0NC0zLjA0Ni4xMDQtNS4wNC0xLjA2NS02LjMwNi0uOTUtMS4wMjktMS45ODgtMi4wMDEtMy4zMDYtMi41MzQtMS45NTktLjc5LTMuNzc1LTEuMzU4LTUuMjk4LTEuNTkyLTEuMzUxLS4yMDctNy4wNS0uMzUtMTEuMjE5LS4wNTctMS41NjcuMTEtMy42MS4wOTctOS4xODUuNTA1WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xODguMjY5IDUwLjIxNWMxOS4yNzUtNDEuODY3IDEwLjc2Ni00My42MTIgNC45MzctNDQuNjg0LTUuODI5LTEuMDczLTI4LjQ1NSAyLjUzLTI5LjcyIDIuODE3LS40NDIuMjE4LTguOTExIDAtNC43NjcgMTkuNTQgMy40MTYgMTYuMTA1IDE2LjE5MyAyNi41OTYgMTcuMjQ0IDI3LjI2NSAzLjE0OCAyLjAwMyA4LjgzNyAyLjU5NSAxMi4zMDYtNC45MzhaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xNjAuNDcyIDE0LjcyN2MuMzkyLS40MDIgNC4zMTctMy4zMDkgOC45NDEtNS40NyAzLjA5Ny0xLjQ0OCA3Ljc3My0xLjYyOSAxMS4yMDctMS43NDkgOC43NTktLjM2NSAxMC4wMDQuOTEgMTIuNjM3IDEuNDk1LjU2Mi4xMzkuOTA5LjI3NiAxLjc3MS41OTVcIixcblx0fSxcblxuXHR7XG5cdFx0bmFtZTogXCIyXCIsXG5cdFx0dHlwZTogXCJMYXRlcmFsIEluY2lzb3JcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTM1LjAxNiA2MC40MWMzLjQ0MyAxLjM1NSA3LjgzNCAyLjczIDkuNjAxIDIuMzQ2IDQuMTg1LS45MSA3LjA0NC00LjAxNyA4LjEyMy04LjE1MiAyLjA2OS03LjkyNyAyLjI0OS0xNi4yODggMS45OTUtMjQuNDM2LS4xMTMtMy41OTYuNzItMTYuODEtNC4xODQtMTguNDQ0LTguMTM1LTYuMTQtMzIuMDg4LjQ5NC0zNi45NzkgOC4wNTUtNS4wMTMgNy43NTEuODc4IDIxLjEzMSA1LjU2IDI3LjcyOCAzLjg2MiA1LjQ0IDkuNzE0IDEwLjQ3NCAxNS44ODQgMTIuOTAzWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMzQuNjUgNTUuMzg2YzIuNzMyIDEuMDc2IDYuMjE3IDIuMTY3IDcuNjIgMS44NjIgMy4zMjEtLjcyMyA1LjU5LTMuMTg4IDYuNDQ2LTYuNDcgMS42NDItNi4yOSAxLjc4Ni0xMi45MjcgMS41ODMtMTkuMzkzLS4wODktMi44NTQuNTcyLTEzLjM0Mi0zLjMyLTE0LjYzOC02LjQ1Ni00Ljg3My0yNS40NjYuMzkyLTI5LjM0OCA2LjM5My0zLjk3OSA2LjE1Mi42OTYgMTYuNzcgNC40MTMgMjIuMDA2IDMuMDY0IDQuMzE3IDcuNzA5IDguMzEzIDEyLjYwNiAxMC4yNFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTEyMS41NjkgMjguOTUyYy41NTEtLjk4NCA2LjM1NC04LjIxNCAxMi44NjYtOS4wNDUgMy4yMzgtLjQxMyAxMC42MTktLjE3IDExLjgzOCAwXCIsXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjNcIixcblx0XHR0eXBlOiBcIkNhbmluZVwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk03Ny42MyA2NC4yMzZjMS42OTIgMS40MDEgMTUuNTE2IDE0LjU4MyAzNC42OTggMTYuOTAzIDUuNTY5LjY3NCAxNS4wNTgtNy4xODQgMTUuNzg5LTEyLjg5IDEuMzM1LTEwLjQyMy0xMi40NDQtMjkuMjA1LTIxLjk2NS0zMy43MDMtNC41NDItMi4xNDUtMjUuODkyLTQuMDM5LTI4LjUyMyAyLjkzOS0yLjQ3MSA2LjU1Ny02LjU5NiAyMS4yOSAwIDI2Ljc1MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTIzLjI4NSA2Ni4yNjdjMS4wNzItOC4zNjgtMTAuMjM0LTIzLjk0LTE3Ljk5LTI3LjYwMy0zLjcyLTEuNzU3LTIxLjIwNi0zLjMwOC0yMy4zNiAyLjQwNy0xLjc1NyA0LjY2LTQuMDkgMTMuMjg0LTIuMzA2IDE4LjE3IDQuMTUgMTEuMzYgNDAuODk3IDI4LjU3MyA0My42NTYgNy4wMjZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTgyLjg0IDYwLjA0M2MtLjAxLS44NTUtLjE5My00LjYzLjI1Ni04LjEyLjY2Ny01LjE4NS43MDMtNS44NjYgMS4yOS04LjEwNi40MzctMS42NjYgMi4wODMtNC45MSAxNy40ODctMy43NDhcIixcblx0XHRcdFwiTTEwMS40MzggNjguNDljLjM3Ni0uMDQ1IDIuMjg0LTUuMTEyIDkuNDk4LTYuMzQ0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNFwiLFxuXHRcdHR5cGU6IFwiRmlyc3QgUHJlbW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNOTMuNjg0IDEwOC43NDhjLTcuNDk4IDMuMzk3LTM1LjM2OC03LjM5Ny0zNS41OTYtNy40NDEtMS40MjktLjg0Mi0xMi4yMTUtMi44NTQtOS4wNjgtMjkuNDE0LjE0Ny0xLjIzOCAxLjM1My0yLjA1IDIuMjE4LTIuNTU2Ljk1Ni0uNTU5IDMuMTU3LTEuNTk1IDcuNTg3LTIuNzk0IDIuNzA3LS43MzQgMTMuODU2LTMuNTQgMTguNjc0LS45MiAyLjIxNiAxLjIwNiA2LjM2MyA0LjExNyAxMC40NzMgNy4wMzYgNC4xMSAyLjkxOSAxMC45NTggOC43MTUgMTMuMzI3IDExLjMzOCAyLjI5MSAyLjUzNyAxMC4zMjQgMTMuNzUtNy42MTUgMjQuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk05MS40OTUgMTA1LjkzMWMtNi41MjggMi45NTgtMzAuNzkzLTYuNDQtMzAuOTkyLTYuNDc4LTEuMjQzLS43MzQtMTAuNjM0LTIuNDg2LTcuODk1LTI1LjYxLjEyOC0xLjA3OCAxLjE3OC0xLjc4NSAxLjkzMi0yLjIyNS44MzItLjQ4NyAyLjc0OC0xLjM5IDYuNjA1LTIuNDMzIDIuMzU3LS42MzkgMTIuMDY0LTMuMDgyIDE2LjI1OC0uOCAxLjkzIDEuMDUgNS41NCAzLjU4NCA5LjEyIDYuMTI1IDMuNTc4IDIuNTQxIDkuNTQgNy41ODggMTEuNjAzIDkuODcyIDEuOTk0IDIuMjA4IDguOTg3IDExLjk3MS02LjYzIDIxLjU0OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNTUuMjM0IDkyLjQxNGMuMDIyLS4yNDIuMDYtMS40NjkuODc1LTcuNzkuNDYtMy41NzMgMS44MTMtNS40OSAzLjEzNC03LjAxIDEuMTgtMS4zNTkgMy41MjQtMy4xOTMgNS44OC00LjM2NSAxLjQ2LS42MzIgMy4wMjktMS4xMjYgNi4wNDQtMS43NzYuODI2LS4xMzggMS40NzctLjE3NSAyLjUyNi0uMzk1XCIsXG5cdFx0XHRcIk04Ny4wMiAxMDEuMzg3YzQuMTgzLS43OTIgOC43NDctOS43NzQgOC43NDctOS43NzRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI1XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgUHJlbW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTMzLjM5NiAxMjcuNjUyYy0xLjA4OC0yLjcxMy00LjQ4Ni0xMS44NTItMy45NjItMTUuMjQ2LjQ3Ny0zLjA4NSAxNC40Ny0xMi4wMDggMjMuNTk1LTEyLjAwOCAyLjE3OCAwIDI1LjE1NyA2LjY2NSAzNS4wNzMgMTcuOTA4IDQuNTUxIDkuMzI0LTEuNjI0IDIzLjMzOS0xNi4yMiAyMy4zMzktOC4xOTMgMC0yMy41NjMtMS44OTctMjUuNDUzLTIuMjE1LTEuODk2LS4zMTktNC4zMTctMS4xMjgtNi41OTYtMi4zMjEtMS4yODktLjY3NS0yLTEuMDM1LTIuNDc4LTEuNjQ3LS42NTUtLjg0LTIuMTAxLTMuMTc4LTMuOTYtNy44MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzYuODM3IDEyNi43NzhjLS45NDUtMi4zNTYtMy44OTUtMTAuMjg5LTMuNDQtMTMuMjM1LjQxNC0yLjY3OSAxMi41NjEtMTAuNDI0IDIwLjQ4My0xMC40MjQgMS44OSAwIDIxLjgzNyA1Ljc4NSAzMC40NDUgMTUuNTQ1IDMuOTUxIDguMDk0LTEuNDEgMjAuMjYtMTQuMDggMjAuMjYtNy4xMTIgMC0yMC40NTQtMS42NDctMjIuMDk1LTEuOTIyLTEuNjQ1LS4yNzctMy43NDctLjk4LTUuNzI1LTIuMDE1LTEuMTItLjU4Ni0xLjczNy0uODk5LTIuMTUxLTEuNDMtLjU3LS43MjktMS44MjUtMi43NTktMy40MzctNi43NzlaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTQwLjggMTMxLjIyMWMtNC4wMDMtMjAuMjc4IDguNDQyLTIwLjk3NCAxMy43NzktMjMuNjkyXCIsXG5cdFx0XHRcIk03NC4wNTYgMTM0LjcyOWM2LjM1LTQuMjY0IDYuMzQzLTEwLjUwMyA2LjQ4OS0xMS40NDhcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI2XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBNb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzUuNTM5IDIwMy4zMjNjLTMuMzYzLjE5Ni0zMi43ODgtNC4wMi0yOC40OTUtNDIuNDY1IDMuNjMxLTIwLjQwOCAyNi4yMS0yMy4zNjQgMjkuNTU3LTIyLjkxMiA5LjAxOS0uNzQ1IDI1LjcyNyA2Ljc0MyAyOS4yNTUgOS40MDMgNC41NDYgMy40MjcgNy4zODQgNS42ODEgOC42MDYgNy4wOTIgMi40MzYgMi44MTQgNC40OTkgNS4xMSA0LjcgNi4zMTMuMjg0IDEuNzAzIDEuMzE3IDQuNzItMi4yNDggOS42ODctMi40NTMgMy40MTgtMi45NTcgNi42NjMtMi44NTYgMTAuMjIzLjExOCA0LjE4NS4zNyA5Ljc1NC0uNTI0IDExLjYzLS41OTIgMS4yNDQtLjk4NCAyLjYyNy0yLjM3NSAzLjM5Mi0yLjAxNSAxLjEwOC00LjYxIDIuMzE3LTExLjkzIDMuNzQ4LTMuNjIzLjcwOC05LjMwOSAxLjgzLTEyLjQwMSAyLjI5Mi01LjE5Ljc3Ny04LjQyMyAxLjQzLTExLjI4OSAxLjU5N1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzYuNTE1IDE5OS4wODVjLTIuOTI3LjE3LTI4LjU0LTMuNDk5LTI0LjgwMy0zNi45NjMgMy4xNi0xNy43NjQgMjIuODE0LTIwLjMzNyAyNS43MjctMTkuOTQ0IDEwLjgyLS44OTMgMjUuNzA5IDUuOTg5IDMyLjk1NSAxNC4zNTggMi4xMiAyLjQ1IDMuOTE3IDQuNDQ4IDQuMDkxIDUuNDk1LjI0OCAxLjQ4Mi41MTMgNC4yNjgtMi41OSA4LjU5MS0yLjEzNSAyLjk3NS0xLjk0IDUuNjQxLTEuODUyIDguNzQuMDk2IDMuNDE3IDEuNDAyIDEwLjkxNy0yLjUyMyAxMy4wNzYtMS43NTQuOTY0LTQuMDEzIDIuMDE2LTEwLjM4NCAzLjI2MS02Ljc2MiAxLjMyMi0xMy43MjggMi45ODQtMjAuNjIxIDMuMzg2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zNy4xMzIgMTkyLjE0N2MxLjI4OC0uMzcyIDMuMzg1LTIuMDcxIDUuMTgzLTUuNDM4bTkuMDA4LTM1Ljk4YzEuMTg4IDEuMjI0IDIuMTE0IDYuMzg1LjE1IDExLjM2M20wIDBjLTEuNTM3IDMuODk5LTQuOTQ0IDkuMzc4LTExLjE5NSA5LjM3OCA2Ljg3Ny4zMjEgNC42NTEgMTAuMzQzIDIuMDM3IDE1LjIzOW05LjE1OS0yNC42MTdjMS40Ny0yLjU4OSA0Ljk2Ni03LjU3MiA4LjA2OC04LjIxN20tMTcuMjI3IDMyLjgzNGMtLjE4NiAyLjM0OC4wNDQgNy4zNTEgMi40NTggOC41ODRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI3XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgTW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNNC45NjkgMjQ4LjEzMmMtMS4xODgtMi43NC0xNC43MDgtMjcuMTUyIDEyLjMxOS00Mi4xMzkgMS44MzYtMS4wMTggMjQuNTA4LTcuNzExIDQ1LjI4IDEwLjg3NCAyLjI3NCAyLjAzNSA0LjQ1NSAzLjU3OSA1LjQwMyA1LjEwMiAxLjQxNCAyLjI3MSAyLjEyOCAzLjQzNSAxLjY4NyA1LjYwNi0uMzg3IDEuOTAxLTEuNTQgMy42NDItMy43NyA3LjcxMS0xLjEyNyAyLjA1Ni0xLjg1NCAzLjQyNy0xLjM2OSA3LjgyNC4xNzUgMS41OS42MjcgMy45MzUuMDQ4IDYuNjAzLS40NjYgMi4xNDctLjk0MSAzLjU2Ny0yLjU3OCA1LjAwNi0yLjUzIDIuMjI0LTUuMzA3IDMuNjQ1LTkuMDc2IDQuMzUtMS4wOTEuMjA0LTMuMTMzLjgxMS03LjUyNSAxLjcwMi0yLjc3Ni41NjMtNi42MTkgMS4yMzQtMTAuMDkgMS42NTQtMy40Ny40Mi02LjQ3OC42MzgtOC42MTIuNjM2LTMuMzUzLS4wMDItNi43MzQuMDMxLTkuNDY1LTEuNDhsLS4wMTgtLjAxYy0xLjY1NC0uOTE1LTQuMDc2LTIuMjU1LTYuMjQ1LTQuNzMyLTIuMjU4LTIuNTc5LTQuNTkxLTUuNDgyLTUuOTg5LTguNzA3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk04Ljc5OSAyNDYuMjhjLTEuMTI4LTIuMzUyLTEyLjg0My0yMy43MDkgMTAuNzU2LTM2Ljc5NiAxLjYwNC0uODg5IDIxLjQtNi43MzIgMzkuNTM4IDkuNDk2IDEuOTg2IDEuNzc3IDMuODkgMy4xMjUgNC43MTcgNC40NTQgMS4yMzUgMS45ODMgMS44NTkgMyAxLjQ3MyA0Ljg5NS0uMzM3IDEuNjYtMS4zNDMgMy4xOC0zLjI5MSA2LjczNC0uOTg0IDEuNzk1LTEuNjE5IDIuOTkyLTEuMTk2IDYuODMxLjE1NCAxLjM4OS41NDggMy40MzYuMDQyIDUuNzY2LTIuODcyIDEzLjIzMS0zMS4yMTMgMTEuNjU3LTMzLjA3NiAxMS42NTZoLS4wMDdjLTIuOTM2LS4wMDMtMTIuNzE0LS4wMS0xOC45NTYtMTMuMDM2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMi4xNCAyNTUuMDkxYy43NDgtLjMwMyAyLjI4LTIuMzc4IDMuMTAzLTUuNzIxbS0xLjk5LTM1LjQ4MWMzLjAwOSAxLjM2MyA0LjAxNSA0Ljg4OCAzLjczNiA4LjcxNm0wIDBjLS40MjQgNS44MzUtMy44MzIgMTIuMzc3LTcuNjgzIDEzLjA0OSA2Ljk1NCAxLjE4IDcuMjQ0IDguNDE0IDUuOTM3IDEzLjcxNm0xLjc0Ni0yNi43NjVjLjMyNy0yLjI0IDEuODItNi45NTggNS4xOS03LjkxbS02LjkzNiAzNC42NzVjLjY1IDIuMTcyIDIuNTUgNi41MDcgNC45NjcgNi40NzFcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI4XCIsXG5cdFx0dHlwZTogXCJUaGlyZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0uODk1IDI5MS4zMzFjLS4zNjItMS4yMTgtLjExNi0zLjQxMS0uMTY0LTMuODkyLS4wMzUtLjM0LjEyNC0zLjQzOC43MjctNS41NTggMS4wNC0yLjgyIDEuODA4LTQuNzQgMi41NzMtNS43NTIgMS40MTMtMS44NzIgMy45MTMtNC43NjkgNy4xMzUtNy4yIDIuMjg4LTEuNzI2IDUuMDAzLTMuMTg3IDguMTMzLTQuMzM5IDIuMjQ5LS44MjggNC4zNjItMS41MDIgNy43MzItMS42OTMgMi4xNzUtLjEyMyA1LjI1LS4xNTUgOC43ODIuMTA4czcuNDAzLjgwNCAxMC4zNTMgMS4zOTcgNC45MiAxLjIxOCA2LjY0MSAxLjg5M2MxLjcyMi42NzUgMy4xNDggMS4zODkgMy45NzIgMS43NjggMS41MS42OTYgMi45IDEuMjA5IDMuODI0IDIuMTQgMS44NTcgMS44NzIgMi42MTcgMy4zMzQgMi45MTIgNC44MDcuMjU0IDEuMjcuMjUyIDMuMjE2LS4yMjQgNC41MzEtLjY3MiAxLjg1OS0xLjQ2OCAyLjg1Ni0xLjQ2OCA1LjcgMCAzLjg1NyAxLjcxMyA1Ljk1IDEuOTE1IDguMzU2LjMzNyA0LjAwOC4zMTcgNi4xNjgtLjQyIDcuNDg1LS41OTEgMS4wNTctMS41MzIgMi4zODMtNS41NDEgNS4wODgtMS4xNzMuNzkxLTIuNjg0IDEuNjM0LTYuNjQzIDMuNDI0LTIuNzYyIDEuMjQ4LTYuOTc3IDMuMTA4LTkuMjA1IDQuMTA3LTIuNDczIDEuMTA5LTQuNjY3IDIuMjI2LTguMjM0IDMuMDUzLTIuNTQuNTg5LTUuNjMxLjc4NC05LjAxMi4xODYtMi4zMDctLjQwOC01LjQ0OS0xLjE4My05LjEwNy0zLjgyNy0zLjkyOC0yLjgzOS02LjUzLTQuODk3LTcuNDk3LTYuMDQxLS44NjYtMS4wMjYtMS43MTQtMi4wODItMi40MTItMy41NTUtLjkwNC0xLjkwNS0yLjI3Mi0zLjY0My0zLTUuOTE2LS44NDYtMi42MzMtMS4xNjctNC4yMzMtMS43NzItNi4yN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNNC43MzIgMjkxLjE3NWMtLjMxNy0xLjA3LS4xMDEtMi45OTQtLjE0NC0zLjQxNi0uMDMtLjI5OS4xMS0zLjAxOS42MzgtNC44OC45MTQtMi40NzYgMS41ODgtNC4xNjEgMi4yNi01LjA1IDEuMjQtMS42NDMgMy40MzQtNC4xODcgNi4yNjMtNi4zMjEgMi4wMDktMS41MTUgNC4zOTMtMi43OTcgNy4xNC0zLjgwOSAxLjk3NC0uNzI3IDMuODMtMS4zMTggNi43ODgtMS40ODYgMS45MS0uMTA4IDQuNjEtLjEzNiA3LjcxLjA5NSAzLjEuMjMxIDYuNDk4LjcwNiA5LjA4OCAxLjIyNiAyLjU5LjUyMSA0LjMxOSAxLjA3IDUuODMgMS42NjIgMS41MTIuNTkyIDIuNzY0IDEuMjIgMy40ODcgMS41NTMgMS4zMjYuNjEgMi41NDcgMS4wNjEgMy4zNTcgMS44NzggMS42MyAxLjY0MyAyLjI5OCAyLjkyNyAyLjU1NyA0LjIyLjIyMyAxLjExNS4yMjEgMi44MjQtLjE5NiAzLjk3OC0uNTkgMS42MzItMS4yOSAyLjUwNy0xLjI5IDUuMDA0IDAgMy4zODUgMS41MDQgNS4yMjMgMS42ODIgNy4zMzUuMjk2IDMuNTE5LjI3OCA1LjQxNi0uMzY5IDYuNTcxLS41Mi45MjgtMS4zNDUgMi4wOTMtNC44NjUgNC40NjctMS4wMy42OTUtMi4zNTUgMS40MzUtNS44MzEgMy4wMDYtMi40MjUgMS4wOTYtNi4xMjYgMi43MjgtOC4wODIgMy42MDYtMi4xNy45NzMtNC4wOTYgMS45NTQtNy4yMjggMi42OC0yLjIyOS41MTctNC45NDQuNjg4LTcuOTEyLjE2My0yLjAyNC0uMzU4LTQuNzgzLTEuMDM4LTcuOTk1LTMuMzU5LTMuNDQ4LTIuNDkzLTUuNzMyLTQuMjk5LTYuNTgtNS4zMDQtLjc2MS0uOTAxLTEuNTA1LTEuODI3LTIuMTE5LTMuMTIxLS43OTMtMS42NzItMS45OTQtMy4xOTgtMi42MzQtNS4xOTMtLjc0Mi0yLjMxMi0xLjAyNC0zLjcxNy0xLjU1NS01LjUwNVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzEuNzMyIDMwOS41MTFjMS40NjItLjg5NyAyLjU4NS0zLjY3MiAyLjkzLTYuNzI2bS0yLjkzLTI5LjQ1M2MyLjExNCAxLjA5MiAzLjQ5IDQuNDQgMy42MSA4LjA2Mm00LjEzMy03LjU4Yy0xLjM1MyAxLjA1OC00LjA3NCA0LjA1Ny00LjEzNCA3LjU4bTAgMGMuMTU1IDQuNjkzLTEuNzk3IDkuODQ2LTYuOTgzIDExLjE1MiA1LjM3OS0uMzU3IDYuODU5IDUuMzA1IDYuMzAzIDEwLjIzOW00LjU1NyA3LjI0Yy0xLjY3OC0uNjcxLTQuOTM4LTMuMDU4LTQuNTU3LTcuMjRcIixcblx0XHRdLFxuXHR9LFxuXTtcblxuZXhwb3J0IGNvbnN0IE5ld1RlZXRoUGF0aHMgPSBbXG5cdHtcblx0XHRuYW1lOiBcIjFcIixcblx0XHR0eXBlOiBcIkNlbnRyYWwgSW5jaXNvclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzk3Ljk5MiA1MS4zMzlDMzk2LjEyNiA1MS4xODQxIDM5My40OTUgNTAuNTYxNyAzOTMuNDk1IDUwLjU2MTdDMzkzLjQ5NSA1MC41NjE3IDM4OC44MDQgNDkuNjQ1MyAzODYuOTAzIDQ4LjU2NzdDMzg0Ljg3MyA0Ny40MTYyIDM4Mi4yMTMgNDUuNzE5NSAzODEuODM4IDQ0LjA1MTRDMzgxLjQ4NyA0Mi40ODM2IDM4MS4yMTYgNDAuMDIyNiAzODEuNDc4IDM4LjI0M0wzODEuNTAzIDM4LjA3MjdDMzgxLjgyIDM1LjkyODcgMzgyLjI5IDMyLjc0NTIgMzgyLjY0MiAyOS4zMTkxQzM4Mi44MTcgMjcuNjIwNyAzODIuNTgzIDI2LjU5MDUgMzgzLjMzMiAyNC4wOTExQzM4NC4xMTggMjEuNDY1MiAzODQuNTU1IDIwLjIxNzkgMzg1LjA5IDE5LjI3NjZDMzg1LjY0OCAxOC4yOTM3IDM4Ni4zNzUgMTcuNTE1OSAzODYuODQxIDE2LjUwNzJDMzg3LjU5MyAxNC44ODAyIDM4OC45MSAxMi44ODIyIDM5MC4xOCAxMS4zNTczQzM5MC45MDIgMTAuNDkwNSAzOTEuNjAyIDkuNzQ0NjEgMzkyLjIwNyA5LjExNDU0QzM5My4wOCA4LjIwNjY5IDM5NC42MjkgNi40OTU5IDM5NS41NTYgNS40NjcxOUMzOTYuODY2IDQuMDEzMjkgMzk4LjE5NiAyLjczMzY0IDM5OS4zNDQgMi4zMjU0N0M0MDAuMzgyIDEuOTU2NDggNDAxLjY1MiAxLjgwMjg5IDQwMi41NzUgMS41NjE5MkM0MDMuNzQxIDEuMjU3NTEgNDA0LjcgMS4wNDA0MSA0MDYuNDgxIDEuNTk5ODhDNDA3Ljc4OSAyLjAxMDc4IDQwOC43OSAyLjE1MDkzIDQxMC4xNzUgMy42OTU4QzQxMS45MDkgNS42MzE0NyA0MTIuNTYzIDYuNzA3OTUgNDEzLjExOSA3Ljc1NzQ3QzQxNC4wMDcgOS40MzUzNCA0MTUuMjI0IDExLjcyNzMgNDE2LjA3MyAxMy4yNDM1QzQxNi41ODQgMTQuMTU1NCA0MTcuOTM1IDE1Ljg4NTkgNDE5LjQ3MSAyMC43OTE5QzQyMC43MzkgMjQuODQyMiA0MjEuNDE3IDI3LjQwNDggNDIxLjcxNiAyOC40NTY0QzQyMi4wNTcgMjkuNjU2MiA0MjIuNjAyIDMxLjUwOTMgNDIyLjgxNSAzMy43MzEzQzQyMy4xNTQgMzcuMjgzMiA0MjMuNjk5IDQwLjA5NzggNDIzLjYyNSA0My4xMDc3QzQyMy41NjIgNDUuNjk1OCA0MjMuNjcxIDQ3LjM5MDUgNDIyLjY2NyA0OC40NTY3QzQyMS44NTIgNDkuMzIyNyA0MjAuOTYyIDUwLjE0MDMgNDE5LjgzNyA1MC41ODE1QzQxOC4xNjYgNTEuMjM2NyA0MTYuNjE5IDUxLjcwNDMgNDE1LjMyMyA1MS44OTAxQzQxNC4xNzQgNTIuMDU0OCA0MDkuMzMgNTIuMTI5MiA0MDUuNzkxIDUxLjg0NDVDNDA0LjQ2MSA1MS43Mzc1IDQwMi43MjUgNTEuNzMxOSAzOTcuOTkyIDUxLjMzOVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNNDEwLjU2MiAxMC4yMzkzQzQyNi41ODggNDUuOTY5OCA0MTkuMzQ0IDQ3LjM4MTMgNDE0LjM4MyA0OC4yNDM2QzQwOS40MjEgNDkuMTA1OCAzOTAuMjI5IDQ1Ljg1NjYgMzg5LjE1NiA0NS42MDEzQzM4OC43ODMgNDUuNDEyMiAzODEuNTg2IDQ1LjUyNjggMzg1LjI3IDI4Ljk2MTNDMzg4LjMwNyAxNS4zMDcgMzk5LjI1IDYuNTAwOCA0MDAuMTQ5IDUuOTQxMjVDNDAyLjg0IDQuMjY1NCA0MDcuNjc4IDMuODEwMjUgNDEwLjU2MiAxMC4yMzkzWlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMzg2LjY1IDQwLjE1NjhDMzg2Ljk3OSA0MC41MDEzIDM5MC4yOSA0My4wMDM4IDM5NC4yIDQ0Ljg3OUMzOTYuODE5IDQ2LjEzNDcgNDAwLjc5IDQ2LjMyNzUgNDAzLjcwNyA0Ni40NTgyQzQxMS4xNDUgNDYuODQyMiA0MTIuMjE0IDQ1Ljc2ODggNDE0LjQ1NiA0NS4yOTQ0QzQxNC45MzQgNDUuMTgwOSA0MTUuMjMgNDUuMDY3NSA0MTUuOTY1IDQ0LjgwMzdcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiMlwiLFxuXHRcdHR5cGU6IFwiTGF0ZXJhbCBJbmNpc29yXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zMzkuMzYyIDUuOTAyMjdDMzQyLjI1NSAzLjcxNDE2IDM0Ni4wMzggMS4yNTc3NCAzNDcuODA3IDEuMTU2ODhDMzUxLjk5NyAwLjkxODA0OSAzNTUuNTE1IDMuMTA2MjIgMzU3LjYyNSA2LjczNjIzQzM2MS42NjggMTMuNjk0MSAzNjQuMDQzIDIxLjU2MDkgMzY1Ljk1MSAyOS4zMzk2QzM2Ni43OTMgMzIuNzcyNyAzNzEuMDY0IDQ1LjA2MSAzNjYuODY2IDQ3Ljg5N0MzNjAuODA1IDU1Ljg0NzIgMzM2LjQ0NCA1NS44Njg0IDMyOS44MzMgNDkuOTk3OUMzMjMuMDU3IDQzLjk4MDUgMzI1LjA5IDI5Ljc2NzUgMzI3Ljc3IDIyLjI5MjFDMzI5Ljk4MSAxNi4xMjgxIDMzNC4xNzggOS44MjQwMyAzMzkuMzYyIDUuOTAyMjdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM0MC4zNDEgMTAuNzUzM0MzNDIuNjM3IDkuMDE2NzQgMzQ1LjYzOSA3LjA2NzIxIDM0Ny4wNDQgNi45ODcxN0MzNTAuMzY5IDYuNzk3NjIgMzUzLjE2MSA4LjUzNDI1IDM1NC44MzUgMTEuNDE1MkMzNTguMDQ0IDE2LjkzNzMgMzU5LjkyOSAyMy4xODA3IDM2MS40NDMgMjkuMzU0MkMzNjIuMTEyIDMyLjA3ODggMzY1LjUwMiA0MS44MzE0IDM2Mi4xNjkgNDQuMDgyMkMzNTcuMzU5IDUwLjM5MTggMzM4LjAyNSA1MC40MDg2IDMzMi43NzkgNDUuNzQ5NkMzMjcuNDAxIDQwLjk3MzggMzI5LjAxNCAyOS42OTM4IDMzMS4xNDIgMjMuNzYxQzMzMi44OTYgMTguODY5IDMzNi4yMjcgMTMuODY1OCAzNDAuMzQxIDEwLjc1MzNaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0zMzQuOTY0IDM5LjIxMzFDMzM1Ljc0MyAzOS45OTk4IDM0My4xMjggNDUuMzE2NyAzNDkuNDk0IDQ0LjM5MDNDMzUyLjY2IDQzLjkyOTcgMzU5LjU2NCA0MS43NTc3IDM2MC42NyA0MS4yNzY3XCIsXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjNcIixcblx0XHR0eXBlOiBcIkNhbmluZVwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMjc1LjI4NSAzNi43MDE2QzI3NS40NjEgMzQuODM1NyAyNzUuODQ5IDE4LjU0NzMgMjg2LjAxOCA1LjU3ODY3QzI4OC45NzEgMS44MTMyNSAyOTkuNDM0IDAuODI5MDcxIDMwMy4zMTYgMy44Mjk4OUMzMTAuNDA4IDkuMzExMzkgMzEzLjQyNiAyOC45NTA2IDMxMC4zOTYgMzcuNDA1OUMzMDguOTUxIDQxLjQzOTMgMjk3LjIxNSA1NS40NTg3IDI5MS40MiA1Mi44MzY2QzI4NS45NzUgNTAuMzcyNyAyNzQuNiA0My45NzQyIDI3NS4yODUgMzYuNzAxNlpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzAxLjU5OCA3LjkzOTQ1QzMwNy4yOTEgMTIuMzQwNiAzMDkuODY0IDI4LjU1MTMgMzA3LjM5NiAzNS40MzkyQzMwNi4yMTIgMzguNzQyNyAyOTYuNjAxIDUwLjIyNSAyOTEuODU0IDQ4LjA3NzRDMjg3Ljk4NCA0Ni4zMjY1IDI4MS4zNzYgNDIuNTMyMSAyNzkuNTA1IDM4LjUwODZDMjc1LjE1NiAyOS4xNTM1IDI4Ni45MzcgLTMuMzkyNDcgMzAxLjU5OCA3LjkzOTQ1WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMjgxLjI1NSAzNS43MTMyQzI4MS43NjYgMzYuMjM0OSAyODMuOTMzIDM4LjYyMjUgMjg2LjMwNyA0MC40NTYzQzI4OS44MzcgNDMuMTgxNiAyOTAuMjY5IDQzLjU3MDYgMjkxLjk3NCA0NC41NjczQzI5My4yNDMgNDUuMzA5MSAyOTYuMTkyIDQ2LjI3MjQgMzA0Ljc4MiAzNi4yODAzIE0yODcuMzc5IDE5LjQwMTJDMjg3LjYzMiAxOS4yMDE2IDI5MS44MzkgMjEuMTA2NiAyOTYuOTMzIDE3LjQ5OVwiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI0XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBQcmVtb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMjM2Ljk4IDQuODc4NTRDMjMxLjM0IDguOTE5ODkgMjI3LjQ3NCAzMy44MTIxIDIyNy40MSAzMy45OTcxQzIyNy40MjMgMzUuMzk0OCAyMjQuMzQ2IDQ0LjExNTcgMjQ1LjA1OSA1My4wMTE3QzI0Ni4wMjUgNTMuNDI2NiAyNDcuMTI1IDUyLjg4OCAyNDcuODYgNTIuNDY5NUMyNDguNjcgNTIuMDA3MyAyNTAuMzU0IDUwLjgzNzYgMjUzLjA5NiA0OC4xMUMyNTQuNzcyIDQ2LjQ0MjkgMjYxLjUxOSAzOS40ODcyIDI2MS42MzcgMzQuODY2NUMyNjEuNjkxIDMyLjc0MDYgMjYxLjMxNCAyOC40ODY4IDI2MC45MTYgMjQuMjU2NUMyNjAuNTE3IDIwLjAyNjIgMjU5LjE3MiAxMi41ODUxIDI1OC4yNTUgOS43NTAyQzI1Ny4zNyA3LjAwOTA1IDI1Mi41NjkgLTMuNTc5NzUgMjM2Ljk4IDQuODc4NTRaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTIzOC4xMTQgNy42NjM0NkMyMzMuMjA0IDExLjE4MiAyMjkuODM4IDMyLjg1NDQgMjI5Ljc4MiAzMy4wMTU1QzIyOS43OTMgMzQuMjMyNCAyMjcuMTE0IDQxLjgyNTIgMjQ1LjE0OCA0OS41NzA2QzI0NS45ODkgNDkuOTMxNyAyNDYuOTQ3IDQ5LjQ2MjkgMjQ3LjU4NiA0OS4wOTg1QzI0OC4yOTMgNDguNjk2MSAyNDkuNzU4IDQ3LjY3NzcgMjUyLjE0NiA0NS4zMDI5QzI1My42MDUgNDMuODUxNCAyNTkuNDc5IDM3Ljc5NTUgMjU5LjU4MiAzMy43NzI0QzI1OS42MjkgMzEuOTIxNSAyNTkuMzAxIDI4LjIxOCAyNTguOTU0IDI0LjUzNDhDMjU4LjYwNyAyMC44NTE3IDI1Ny40MzUgMTQuMzczMSAyNTYuNjM4IDExLjkwNUMyNTUuODY2IDkuNTE4MzggMjUxLjY4NyAwLjI5OTI1NSAyMzguMTE0IDcuNjYzNDZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0yMzIuNjk5IDM5LjgyNzdDMjMyLjg4NSAzOS45MTM4IDIzMy43OTYgNDAuNDAyOCAyMzguNzUzIDQyLjQ3MTlDMjQxLjU1NSA0My42NDE2IDI0My41MjYgNDMuNDYyMyAyNDUuMTkyIDQzLjEzOTFDMjQ2LjY4IDQyLjg1MDIgMjQ5LjAwNyA0MS45MTIxIDI1MC44NTYgNDAuNjg2QzI1MS45MzIgMzkuODg2NCAyNTIuOTU0IDM4Ljk0OTkgMjU0LjY5OCAzNy4wMjMxQzI1NS4xNDcgMzYuNDc4MiAyNTUuNDQ5IDM2LjAxODkgMjU2LjA1MiAzNS4zNDU4IE0yMzkuNTQ1IDEyLjg0NDJDMjQxLjg4NSAxMC4xMjUyIDI1MC4zNjYgMTAuNTc5MyAyNTAuMzY2IDEwLjU3OTNcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNVwiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIFByZW1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xODYuNDg1IDQ1Ljg5MDVDMTg4LjM5IDQ3LjQ5MTUgMTk0Ljg3OCA1Mi42NjggMTk3Ljc2MiA1My4xNDU3QzIwMC4zODQgNTMuNTgwMSAyMTEuMzE4IDQ0LjYzNDQgMjEzLjc0MyAzNy4yNTRDMjE0LjMyMiAzNS40OTI4IDIxNS4wMzggMTUuMTM4NCAyMDguNTggNC4xMzE1MkMyMDIuMjQ4IC0yLjAyNzAxIDE4OS4yNzMgLTAuNzU2NjU4IDE4NS4zOTUgMTEuMDQ3N0MxODMuMjE4IDE3LjY3MzQgMTgwLjY2OCAzMC42MDggMTgwLjQyMyAzMi4yMjA1QzE4MC4xNzcgMzMuODM4MyAxODAuMTg4IDM2LjAxMTcgMTgwLjU0NyAzOC4xNzE2QzE4MC43NTEgMzkuMzkzMyAxODAuODUzIDQwLjA2NDkgMTgxLjIyMSA0MC42MTM1QzE4MS43MjYgNDEuMzY2MiAxODMuMjMzIDQzLjE1NzQgMTg2LjQ4NSA0NS44OTA1WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xODguMTA3IDQzLjM0MDNDMTg5Ljc2MSA0NC43MzAxIDE5NS4zOTMgNDkuMjIzNiAxOTcuODk2IDQ5LjYzODNDMjAwLjE3MiA1MC4wMTU0IDIwOS42NjQgNDIuMjQ5OSAyMTEuNzY5IDM1Ljg0MzJDMjEyLjI3MSAzNC4zMTQzIDIxMi44OTMgMTYuNjQ1MyAyMDcuMjg3IDcuMDkwNTNDMjAxLjc5MSAxLjc0NDQ5IDE5MC41MjcgMi44NDcyNCAxODcuMTYgMTMuMDk0M0MxODUuMjcxIDE4Ljg0NTggMTgzLjA1NyAzMC4wNzQgMTgyLjg0NSAzMS40NzM4QzE4Mi42MzEgMzIuODc4MiAxODIuNjQxIDM0Ljc2NDggMTgyLjk1MyAzNi42Mzk4QzE4My4xMjkgMzcuNzAwMyAxODMuMjE4IDM4LjI4MzIgMTgzLjUzNyAzOC43NTk0QzE4My45NzYgMzkuNDEyOSAxODUuMjg0IDQwLjk2NzggMTg4LjEwNyA0My4zNDAzWlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTg1LjU2NiAzOC45NTRDMjAwLjkwMiA0Ny41Nzk2IDIwNC43NzIgMzcuNjk5OSAyMDguMzg4IDM0LjEwNjEgTTE5MS41NjYgMTEuMTI2OEMxOTYuNzAyIDcuMTI0NjQgMjAxLjc0NSA4Ljc4NzYyIDIwMi41NDkgOC45MjEwNVwiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI2XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBNb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTI4LjkwNCA0NS44OTQxQzEzMC42NzYgNDcuMzAwMSAxNDUuODg0IDYxLjk3NTUgMTYyLjE0NSA0NS4xNDIzQzE2My4yNDkgNDMuOTk4NiAxNzIuNTg5IDI4LjcyNTUgMTYzLjA2NSA5Ljg4NzkyQzE2Mi4wMjIgNy44MjUxNCAxNjEuMzIgNS45Mjc1OCAxNjAuMzkyIDQuOTM1NUMxNTkuMDA4IDMuNDU1OTMgMTU4LjI5NiAyLjcwNTIgMTU2LjYyMiAyLjYwMjc5QzE1NS4xNTUgMi41MTMxMSAxNTMuNjU2IDMuMDE0NTkgMTUwLjI0MiAzLjg0ODc5QzE0OC41MTcgNC4yNzAyIDE0Ny4zNzIgNC41MzMwOSAxNDQuMjUxIDMuMzE2OEMxNDMuMTIxIDIuODc2NzUgMTQxLjQ5NSAyLjA4NjY1IDEzOS40MyAxLjk4NzM4QzEzNy43NjggMS45MDc1MSAxMzYuNjM2IDEuOTc2NSAxMzUuMjYyIDIuODkyMDhDMTMzLjE0IDQuMzA3MTcgMTMxLjU1NiA2LjA2MDA3IDEzMC4zMDEgOC42NzgzOEMxMjkuOTM4IDkuNDM2NzIgMTI5LjA5NCAxMC44MTE3IDEyNy41ODEgMTMuODQ5N0MxMjYuNjI1IDE1Ljc3IDEyNS4zODEgMTguNDQ5NSAxMjQuMzk0IDIwLjkwNjNDMTIzLjQwNiAyMy4zNjMxIDEyMi42NTcgMjUuNTIwNCAxMjIuMjQgMjcuMDgxNEMxMjEuNTg1IDI5LjUzNTEgMTIwLjg5OCAzMi4wMDE3IDEyMS40NjggMzQuMjk1N0wxMjEuNDcxIDM0LjMxMDJDMTIxLjgxNyAzNS43IDEyMi4zMjIgMzcuNzM0NSAxMjMuNzA5IDM5LjgwNjhDMTI1LjE1MyA0MS45NjM3IDEyNi44MTkgNDQuMjM5NyAxMjguOTA0IDQ1Ljg5NDFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEzMS4wMSA0My40NTU5QzEzMi41MDkgNDQuNzQxNCAxNDUuODM2IDU3LjQ5NzkgMTYwLjAzNCA0Mi43OTk0QzE2MC45OTkgNDEuODAwOCAxNjkuMTU0IDI4LjQ2NDYgMTYwLjgzOCAxMi4wMTZDMTU5LjkyNyAxMC4yMTQ5IDE1OS4zMTUgOC41NTc5NiAxNTguNTA0IDcuNjkxN0MxNTcuMjk2IDYuMzk5NzYgMTU2LjY3NCA1Ljc0NDI0IDE1NS4yMTIgNS42NTQ4MkMxNTMuOTMyIDUuNTc2NTEgMTUyLjYyMyA2LjAxNDM5IDE0OS42NDEgNi43NDI4QzE0OC4xMzUgNy4xMTA3NiAxNDcuMTM1IDcuMzQwMzIgMTQ0LjQxIDYuMjc4MjdDMTQzLjQyNCA1Ljg5NDA0IDE0Mi4wMDQgNS4yMDQxNCAxNDAuMiA1LjExNzQ2QzEyOS45NTkgNC42MjUxOSAxMjUuNTU1IDI1LjY2NiAxMjUuMTkxIDI3LjAyOUwxMjUuMTg5IDI3LjAzMzhDMTI0LjYxNiAyOS4xODIyIDEyMi43MDUgMzYuMzM1OSAxMzEuMDEgNDMuNDU1OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTE1My44NTQgMjcuNDc0MkMxNDkuNTAyIDI2LjY0MDkgMTQ0LjA0OSAyNy44NTE5IDE0Mi44MDIgMzAuNTM3MkMxNDMuMzAyIDI1LjIxODkgMTM4LjA2NyAyMy41ODg5IDEzMy45MzIgMjMuNTA1MSBNMTUzLjg1NCAyNy40NzQyQzE1Ni43MDkgMjguMDIwOSAxNTkuMDkgMjkuNDQ3NiAxNTkuNDk4IDMxLjkxNTMgTTE1My44NTQgMjcuNDc0MkMxNTUuNTU2IDI3LjY3NDYgMTU5LjMgMjcuNTA2MiAxNjAuNjU3IDI1LjIyODYgTTEyOS4xMzkgMjQuNjUzOEMxMjkuNTA3IDI0LjE2NjUgMTMxLjMyNiAyMy40NTIzIDEzMy45MzIgMjMuNTA1MSBNMTMzLjkzMiAyMy41MDUxQzEzMi40NzEgMjIuNjA0OCAxMjkuNjcyIDIwLjM2NCAxMzAuMTczIDE4LjYwMzRcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiN1wiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk02MC42NzkzIDI1LjM0MThDNTkuOTE2MSAyNy42NDQ5IDU3LjM2MzYgNDguOTAzNyA4NC45MTI5IDUzLjA4NDZDOTkuNzg4OSA1NC4zNjI2IDEwNi4wNTUgMzkuMjAzNyAxMDYuMzY1IDM2Ljc5MDlDMTA4LjU2NCAzMC42NTQ5IDEwNi40NjkgMTcuNjMzNyAxMDUuMjc2IDE0LjY4MzNDMTAzLjczOSAxMC44ODE2IDEwMi43IDguNDg3MDYgMTAxLjk0NiA3LjM3Mzc4QzEwMC40NDIgNS4xNTQwMSA5OS4yMyAzLjI5MDY0IDk4LjQzIDIuOTI2NTVDOTcuMjk4MyAyLjQxMTQ1IDk1LjM5MTkgMS4xMzAzNCA5MS4yNzE0IDIuNjg0MzVDODguNDM1OSAzLjc1MzczIDg2LjA4MzggMy40OTk4IDgzLjYyNTYgMi43NjYwNEM4MC43MzYzIDEuOTAzNiA3Ni45MDgyIDAuNjkwMjA5IDc1LjQzNjcgMC45NjIwNTVDNzQuNDYwNiAxLjE0MjM2IDczLjQyNDkgMS4xNTY4OSA3Mi42MzMzIDEuOTgyMTVDNzEuNDg2NyAzLjE3NzY0IDcwLjE2MTggNC43NTgwNyA2Ny44MDIxIDkuNTgzOUM2Ni42MzQgMTEuOTcyOSA2NC43OTMyIDE1LjcxOTYgNjMuODk0OSAxNy43ODQ5QzYyLjM4NyAyMS4yNTE5IDYxLjMyOTggMjMuMzc4NSA2MC42NzkzIDI1LjM0MThaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTYzLjgwOTkgMjUuNDUzMkM2My4xNDU2IDI3LjQ1NzkgNjAuOTIzOCA0NS45NjI0IDg0LjkwMzcgNDkuNjAxNUM5Ny44NTIzIDUwLjcxMzkgMTAzLjMwNyAzNy41MTkxIDEwMy41NzYgMzUuNDE5QzEwNi4yMTUgMjguMDU2OSAxMDQuMjAyIDE2LjQxNTMgOTkuNzMgOS44MTMyNEM5OC40MjExIDcuODgxMDggOTcuMzY1OCA2LjI1OTE0IDk2LjY2OTUgNS45NDIyMkM5NS42ODQ0IDUuNDkzODcgOTMuNzk2IDQuNzkwNSA5MC4yMDkzIDYuMTQzMTZDODcuNzQxMiA3LjA3Mzk5IDg1LjkyMjkgNi40NDEyIDgzLjc4MzIgNS44MDI1MUM4MS40MjM0IDUuMDk4MTIgNzYuNDQ4OCAyLjc5MTM0IDc0LjIxNTEgNS4xMjAxOEM3My4yMTcxIDYuMTYwNzcgNzIuMDYzOCA3LjUzNjQ1IDcwLjAwOTggMTEuNzM3QzY3LjgzIDE2LjE5NSA2NS4zNzQ0IDIwLjczMTggNjMuODA5OSAyNS40NTMyWlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNOTIuMzM3NSAyMS45NDE4Qzg5LjMzNzcgMjIuMjg0OSA4NC44OTA2IDIzLjYzMzkgODMuNzI1MyAyNy45ODI5Qzg0Ljc4MzggMjMuMTM4IDc3LjM5NjIgMjIuODE4NSA3My41MDIyIDIzLjcyNDcgTTkyLjMzNzUgMjEuOTQxOEM5Ni4xNjY2IDIxLjUwMzggOTkuNTg1IDIzLjExMDEgMTAwLjIxNSAyNC4xNjUgTTkyLjMzNzUgMjEuOTQxOEM5NC40MTI3IDIxLjQwMiA5OC41MzE3IDE5Ljg5OCA5OS41NTg0IDE3Ljg1OTcgTTY4Ljc1MjQgMjYuMzE3M0M2OS4yNTEzIDI1LjQ5IDcwLjgyNDIgMjQuMzQ3OSA3My41MDIyIDIzLjcyNDcgTTczLjUwMjIgMjMuNzI0N0M3MS44MzM5IDIzLjQxNjkgNjguMzk1NSAyMi4zMjM4IDY3Ljk4NzggMjAuNDE0XCIsXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjhcIixcblx0XHR0eXBlOiBcIlRoaXJkIE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0yMi44ODM2IDUyLjgwNjZDMjMuOTI3MiA1My4wOTE1IDI1Ljc5ODYgNTIuODc1NiAyNi4yMDk2IDUyLjkxMTZDMjYuNTAxIDUyLjkzNzIgMjkuMTQ1OSA1Mi43ODUyIDMwLjk1MzQgNTIuMjgwNUMzMy4zNTUyIDUxLjQxNDkgMzQuOTkwMSA1MC43Nzc3IDM1Ljg0OTUgNTAuMTQ5OEMzNy40MzkxIDQ4Ljk4ODYgMzkuODk2NSA0Ni45Mzg3IDQxLjk1MDYgNDQuMzA1MkM0My40MDkyIDQyLjQzNTIgNDQuNjM4MSA0MC4yMjA3IDQ1LjYwMDggMzcuNjcyMUM0Ni4yOTI3IDM1Ljg0MDUgNDYuODUzNiAzNC4xMjAzIDQ2Ljk5MjggMzEuMzgzN0M0Ny4wODI3IDI5LjYxNjkgNDcuMDg4OCAyNy4xMjA3IDQ2LjgzOTYgMjQuMjU2QzQ2LjU5MDQgMjEuMzkxMyA0Ni4xMDA4IDE4LjI1MzEgNDUuNTczNyAxNS44NjI5QzQ1LjA0NjYgMTMuNDcyNyA0NC40OTg2IDExLjg3ODggNDMuOTEwMyAxMC40ODYxQzQzLjMyMTkgOS4wOTMzNCA0Mi43MDE2IDcuOTQxNDUgNDIuMzcxOCA3LjI3NTM1QzQxLjc2NzIgNi4wNTQ0NiA0MS4zMTg4IDQuOTI5NzYgNDAuNTE3MiA0LjE4NzA1QzM4LjkwNTIgMi42OTM1MyAzNy42NTA0IDIuMDg3MTYgMzYuMzkgMS44NTg4NEMzNS4zMDMxIDEuNjYxOTUgMzMuNjQwNyAxLjY3NzUyIDMyLjUyMDcgMi4wNzM0MUMzMC45Mzc0IDIuNjMzMDQgMzAuMDkxMiAzLjI4NjQgMjcuNjYxMyAzLjMwNzI5QzI0LjM2NjcgMy4zMzU2IDIyLjU2NjcgMS45NjA0OSAyMC41MDk4IDEuODE0MDJDMTcuMDgyNyAxLjU2OTk4IDE1LjIzNzYgMS42MDIxNiAxNC4xMTgyIDIuMjA5NzZDMTMuMjE5MyAyLjY5NzY4IDEyLjA5MjcgMy40NzA4MyA5LjgwOTc5IDYuNzQ1MTVDOS4xNDE4OCA3LjcwMzEyIDguNDMyNTIgOC45MzUwOSA2LjkzMTIyIDEyLjE2MkM1Ljg4NDA3IDE0LjQxMjggNC4zMjQ1MiAxNy44NDgyIDMuNDg2MzkgMTkuNjY0MUMyLjU1NjI3IDIxLjY3OTMgMS42MTczOSAyMy40Njg0IDAuOTM1MzcyIDI2LjM2OThDMC40NDk4NDcgMjguNDM1MiAwLjMwNTU4OSAzMC45NDY2IDAuODM5NjgyIDMzLjY4NjJDMS4yMDQwOCAzNS41NTU0IDEuODg3OSAzOC4xMDA0IDQuMTcyNDkgNDEuMDUwNUM2LjYyNTQyIDQ0LjIxOCA4LjQwMTUxIDQ2LjMxNDkgOS4zODYwMSA0Ny4wOTFDMTAuMjY4NiA0Ny43ODY4IDExLjE3NjIgNDguNDY2OCAxMi40Mzk3IDQ5LjAyMzFDMTQuMDczNCA0OS43NDIzIDE1LjU2ODEgNTAuODM5OSAxNy41MTQ3IDUxLjQxNTJDMTkuNzcwNSA1Mi4wODE4IDIxLjEzOTUgNTIuMzMwNSAyMi44ODM2IDUyLjgwNjZaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTIyLjk5MDQgNDkuNjkwOEMyMy45MDY2IDQ5Ljk0MDkgMjUuNTQ5NCA0OS43NTEzIDI1LjkxMDMgNDkuNzgzQzI2LjE2NiA0OS44MDU0IDI4LjQ4OCA0OS42NzE5IDMwLjA3NDggNDkuMjI4OUMzMi4xODM0IDQ4LjQ2OSAzMy42MTg2IDQ3LjkwOTYgMzQuMzczMSA0Ny4zNTg0QzM1Ljc2ODYgNDYuMzM4OSAzNy45MjU5IDQ0LjUzOTQgMzkuNzI5MiA0Mi4yMjc0QzQxLjAwOTcgNDAuNTg1OCA0Mi4wODg1IDM4LjY0MTYgNDIuOTMzNyAzNi40MDQyQzQzLjU0MTEgMzQuNzk2MyA0NC4wMzM1IDMzLjI4NjIgNDQuMTU1NyAzMC44ODM3QzQ0LjIzNDYgMjkuMzMyNiA0NC4yNCAyNy4xNDEzIDQ0LjAyMTIgMjQuNjI2M0M0My44MDI1IDIyLjExMTQgNDMuMzcyNiAxOS4zNTY0IDQyLjkwOTkgMTcuMjU4MUM0Mi40NDcyIDE1LjE1OTggNDEuOTY2MSAxMy43NjA0IDQxLjQ0OTYgMTIuNTM3OEM0MC45MzMxIDExLjMxNTEgNDAuMzg4NSAxMC4zMDM5IDQwLjA5OSA5LjcxOTExQzM5LjU2ODIgOC42NDcyOSAzOS4xNzQ1IDcuNjU5OTMgMzguNDcwOCA3LjAwNzg5QzM3LjA1NTYgNS42OTY3NCAzNS45NTQxIDUuMTY0NDIgMzQuODQ3NiA0Ljk2Mzk4QzMzLjg5MzQgNC43OTExMyAzMi40MzQgNC44MDQ4IDMxLjQ1MDcgNS4xNTIzNEMzMC4wNjA4IDUuNjQzNjQgMjkuMzE3OSA2LjIxNzIyIDI3LjE4NDcgNi4yMzU1NkMyNC4yOTI0IDYuMjYwNDIgMjIuNzEyMiA1LjA1MzIxIDIwLjkwNjQgNC45MjQ2M0MxNy44OTc4IDQuNzEwMzggMTYuMjc3OSA0LjczODY0IDE1LjI5NTMgNS4yNzIwNEMxNC41MDYxIDUuNzAwMzkgMTMuNTE3MSA2LjM3OTE0IDExLjUxMjkgOS4yNTM2NUMxMC45MjY2IDEwLjA5NDYgMTAuMzAzOCAxMS4xNzYyIDguOTg1ODUgMTQuMDA5MUM4LjA2NjU2IDE1Ljk4NTEgNi42OTc0NCAxOS4wMDEgNS45NjE2NSAyMC41OTUxQzUuMTQ1MSAyMi4zNjQyIDQuMzIwODYgMjMuOTM0OSAzLjcyMjEyIDI2LjQ4MkMzLjI5NTg4IDI4LjI5NTMgMy4xNjkyNCAzMC40OTk5IDMuNjM4MTIgMzIuOTA1MUMzLjk1ODAyIDM0LjU0NiA0LjU1ODM0IDM2Ljc4MDMgNi41NjM5NyAzOS4zNzAyQzguNzE3MzkgNDIuMTUwOSAxMC4yNzY2IDQzLjk5MTcgMTEuMTQwOSA0NC42NzMxQzExLjkxNTggNDUuMjgzOSAxMi43MTI1IDQ1Ljg4MDkgMTMuODIxNyA0Ni4zNjkyQzE1LjI1NiA0Ny4wMDA2IDE2LjU2ODIgNDcuOTY0MyAxOC4yNzcxIDQ4LjQ2OTNDMjAuMjU3NCA0OS4wNTQ0IDIxLjQ1OTIgNDkuMjcyOCAyMi45OTA0IDQ5LjY5MDhaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk03LjEzNzQyIDI3LjkxMDFDNy44OTMyNyAyNi43MTcgMTAuMjU2MiAyNS43ODQ2IDEyLjg2MjcgMjUuNDgzTTM4LjA0NTggMjcuNjQ0NEMzNy4wOTgzIDI1LjkzNjggMzQuMjI4NCAyNC44NDQ3IDMxLjEzMjggMjQuNzczOU0zNy41OCAyMS4zNjI2QzM2LjY4NSAyMi40Njg3IDM0LjE0MjYgMjQuNjk5NCAzMS4xMzI4IDI0Ljc3MzlNMzEuMTMyOCAyNC43NzM5QzI3LjEyMjYgMjQuNjgyMyAyMi43MzM2IDI2LjMwNDggMjEuNjU0NCAzMC41MjM5QzIxLjkyMjEgMjYuMTU1NSAxNy4wNzQ0IDI0Ljk5NTcgMTIuODYyNyAyNS40ODNNNi42NDYgMjEuODM3MUM3LjIzMDg0IDIzLjE5NDIgOS4yOTI5NiAyNS44MjMyIDEyLjg2MjcgMjUuNDgzXCIsXG5cdH0sXG5dO1xuIiwgImltcG9ydCB0eXBlIHsgTm90YXRpb24sIE9kb250b2dyYW1Db2xvcnMsIFBsYWNlbWVudCB9IGZyb20gXCIuL3R5cGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvQ3NzVmFycyhjb2xvcnM6IE9kb250b2dyYW1Db2xvcnMpIHtcbiAgICBjb25zdCBjc3NWYXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICBpZiAoY29sb3JzLmRhcmtCbHVlKSB7XG4gICAgICAgIGNzc1ZhcnNbXCItLWRhcmstYmx1ZVwiXSA9IGNvbG9ycy5kYXJrQmx1ZTtcbiAgICB9XG4gICAgaWYgKGNvbG9ycy5iYXNlQmx1ZSkge1xuICAgICAgICBjc3NWYXJzW1wiLS1iYXNlLWJsdWVcIl0gPSBjb2xvcnMuYmFzZUJsdWU7XG4gICAgfVxuICAgIGlmIChjb2xvcnMubGlnaHRCbHVlKSB7XG4gICAgICAgIGNzc1ZhcnNbXCItLWxpZ2h0LWJsdWVcIl0gPSBjb2xvcnMubGlnaHRCbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBjc3NWYXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vdGhOb3RhdGlvbnMoZmRpOiBzdHJpbmcpIHtcbiAgICBjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcbiAgICBjb25zdCB1bml2ZXJzYWwgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihmZGksIFwiVW5pdmVyc2FsXCIpO1xuICAgIGNvbnN0IHBhbG1lciA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJQYWxtZXJcIik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBmZGk6IG51bSxcbiAgICAgICAgdW5pdmVyc2FsLFxuICAgICAgICBwYWxtZXIsXG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHBsYWNlbWVudHM6IFJlY29yZDxcbiAgICBQbGFjZW1lbnQsXG4gICAgKHRvb3RoQm94OiBET01SZWN0LCBtYXJnaW46IG51bWJlcikgPT4geyB4OiBudW1iZXI7IHk6IG51bWJlciB9XG4+ID0ge1xuICAgIHRvcDogKHQsIG0pID0+ICh7IHg6IHQubGVmdCArIHQud2lkdGggLyAyLCB5OiB0LnRvcCAtIG0gfSksXG4gICAgXCJ0b3Atc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCwgeTogdC50b3AgLSBtIH0pLFxuICAgIFwidG9wLWVuZFwiOiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCwgeTogdC50b3AgLSBtIH0pLFxuICAgIGJvdHRvbTogKHQsIG0pID0+ICh7IHg6IHQubGVmdCArIHQud2lkdGggLyAyLCB5OiB0LmJvdHRvbSArIG0gfSksXG4gICAgXCJib3R0b20tc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCwgeTogdC5ib3R0b20gKyBtIH0pLFxuICAgIFwiYm90dG9tLWVuZFwiOiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCwgeTogdC5ib3R0b20gKyBtIH0pLFxuICAgIGxlZnQ6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LnRvcCArIHQuaGVpZ2h0IC8gMiB9KSxcbiAgICBcImxlZnQtc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQudG9wIH0pLFxuICAgIFwibGVmdC1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQuYm90dG9tIH0pLFxuICAgIHJpZ2h0OiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCArIG0sIHk6IHQudG9wICsgdC5oZWlnaHQgLyAyIH0pLFxuICAgIFwicmlnaHQtc3RhcnRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQgKyBtLCB5OiB0LnRvcCB9KSxcbiAgICBcInJpZ2h0LWVuZFwiOiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCArIG0sIHk6IHQuYm90dG9tIH0pLFxufTtcblxuLy80MjUsIDU1XG5cbmV4cG9ydCBjb25zdCBxdWFkcmFudHM6IEFycmF5PHtcbiAgICBuYW1lOiBcImZpcnN0XCIgfCBcInNlY29uZFwiIHwgXCJ0aGlyZFwiIHwgXCJmb3VydGhcIjtcbiAgICB0cmFuc2Zvcm06IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xufT4gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZmlyc3RcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwcGVyIFJpZ2h0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic2Vjb25kXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDg0MCwgMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNTUsMClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwcGVyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ0aGlyZFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoMCwgLTE1MClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZm91cnRoXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDg0MCwgMCkgc2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTU1LC0xNTApXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJMb3dlciBMZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgXTtcblxuZXhwb3J0IGNvbnN0IG9sZHF1YWRyYW50czogQXJyYXk8e1xuICAgIG5hbWU6IFwiZmlyc3RcIiB8IFwic2Vjb25kXCIgfCBcInRoaXJkXCIgfCBcImZvdXJ0aFwiO1xuICAgIHRyYW5zZm9ybTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG59PiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJmaXJzdFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcIlwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiVXBwZXIgUmlnaHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzZWNvbmRcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC00MDksIDApXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJVcHBlciBMZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidGhpcmRcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKDAsIC02OTQpXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJMb3dlciBSaWdodFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImZvdXJ0aFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAtMSkgdHJhbnNsYXRlKC00MDksIC02OTQpXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJMb3dlciBMZWZ0XCIsXG4gICAgICAgIH0sXG4gICAgXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaTogc3RyaW5nLCBub3RhdGlvbjogTm90YXRpb24pIHtcbiAgICBjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuICAgIGNvbnN0IGZkaVRvVW5pdmVyc2FsOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge1xuICAgICAgICBcIjExXCI6IDgsXG4gICAgICAgIFwiMTJcIjogNyxcbiAgICAgICAgXCIxM1wiOiA2LFxuICAgICAgICBcIjE0XCI6IDUsXG4gICAgICAgIFwiMTVcIjogNCxcbiAgICAgICAgXCIxNlwiOiAzLFxuICAgICAgICBcIjE3XCI6IDIsXG4gICAgICAgIFwiMThcIjogMSxcbiAgICAgICAgXCIyMVwiOiA5LFxuICAgICAgICBcIjIyXCI6IDEwLFxuICAgICAgICBcIjIzXCI6IDExLFxuICAgICAgICBcIjI0XCI6IDEyLFxuICAgICAgICBcIjI1XCI6IDEzLFxuICAgICAgICBcIjI2XCI6IDE0LFxuICAgICAgICBcIjI3XCI6IDE1LFxuICAgICAgICBcIjI4XCI6IDE2LFxuICAgICAgICBcIjMxXCI6IDI0LFxuICAgICAgICBcIjMyXCI6IDIzLFxuICAgICAgICBcIjMzXCI6IDIyLFxuICAgICAgICBcIjM0XCI6IDIxLFxuICAgICAgICBcIjM1XCI6IDIwLFxuICAgICAgICBcIjM2XCI6IDE5LFxuICAgICAgICBcIjM3XCI6IDE4LFxuICAgICAgICBcIjM4XCI6IDE3LFxuICAgICAgICBcIjQxXCI6IDI1LFxuICAgICAgICBcIjQyXCI6IDI2LFxuICAgICAgICBcIjQzXCI6IDI3LFxuICAgICAgICBcIjQ0XCI6IDI4LFxuICAgICAgICBcIjQ1XCI6IDI5LFxuICAgICAgICBcIjQ2XCI6IDMwLFxuICAgICAgICBcIjQ3XCI6IDMxLFxuICAgICAgICBcIjQ4XCI6IDMyLFxuICAgIH07XG5cbiAgICBpZiAobm90YXRpb24gPT09IFwiVW5pdmVyc2FsXCIpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG4gICAgfVxuXG4gICAgaWYgKG5vdGF0aW9uID09PSBcIlBhbG1lclwiKSB7XG4gICAgICAgIGlmIChudW0ubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuIG51bTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1YWRyYW50ID0gbnVtWzBdO1xuICAgICAgICBjb25zdCB0b290aCA9IG51bVsxXTtcbiAgICAgICAgY29uc3Qgc3ltYm9sczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgIFwiMVwiOiBcIlVSXCIsXG4gICAgICAgICAgICBcIjJcIjogXCJVTFwiLFxuICAgICAgICAgICAgXCIzXCI6IFwiTExcIixcbiAgICAgICAgICAgIFwiNFwiOiBcIkxSXCIsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGAke3Rvb3RofSR7c3ltYm9sc1txdWFkcmFudF0gPz8gXCJcIn1gO1xuICAgIH1cblxuICAgIHJldHVybiBudW07XG59XG4iXSwKICAibWFwcGluZ3MiOiAibWJBQUEsSUFBQUEsR0FBQSxHQUFBQyxHQUFBRCxHQUFBLGdCQUFBRSxHQUFBLFlBQUFDLEdBQUEsZUFBQUMsS0FBQSxlQUFBQyxHQUFBTCxJQ0NBLElBQUFNLEVBUU8saUJDb0JILElBQUFDLEVBQUEsNkJBckJTQyxHQUE0QyxDQUFDLENBQ3pELFdBQUFDLEVBQ0EsVUFBQUMsRUFBWSxFQUNiLElBQ0ssQ0FBQ0QsR0FBY0EsRUFBVyxTQUFXLEVBQ2pDLFFBSVAsT0FBQyxNQUNBLFVBQVdDLEVBQ1gsTUFBTyxDQUNOLFFBQVMsT0FDVCxJQUFLLEVBQ0wsV0FBWSxhQUNaLFNBQVUsR0FDVixTQUFVLE1BQ1gsRUFDQSxhQUFXLHlCQUVWLFNBQUFE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QWEsVUFBV0YsRUFDdEIsU0FBQVYsR0FBWSxTQUFTWSxFQUFRLENBQUMsRUFBRSxHQUQzQjVELENBRVIsQ0FDRCxHQUNILEVBRUNELE1BQ0MsT0FBQzhELEdBQUEsQ0FDQyxPQUFRckMsRUFBWSxPQUNwQixTQUFVQSxFQUFZLFNBQ3RCLFFBQVNBLEVBQVksUUFDckIsUUFBUzFCLEVBQVEsUUFDbkIsRUFHRE0sTUFBYyxPQUFDMEQsRUFBQSxDQUFnQixXQUFZNUQsRUFBaUIsR0FDL0QsQ0FFSixFQUVPNkQsR0FBUXpFIiwKICAibmFtZXMiOiBbImluZGV4X2V4cG9ydHMiLCAiX19leHBvcnQiLCAiT2RvbnRvZ3JhbSIsICJPZG9udG9ncmFtX2RlZmF1bHQiLCAiZ2V0Vmlld0JveCIsICJfX3RvQ29tbW9uSlMiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJDb25kaXRpb25MYWJlbHMiLCAiY29uZGl0aW9ucyIsICJjbGFzc05hbWUiLCAiY29uZGl0aW9uIiwgIkxhYmVsc19kZWZhdWx0IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJUZWV0aCIsICJuYW1lIiwgIm91dGxpbmVQYXRoIiwgInNoYWRvd1BhdGgiLCAibGluZUhpZ2hsaWdodFBhdGgiLCAic2VsZWN0ZWQiLCAiY29uZGl0aW9uIiwgInJlYWRPbmx5IiwgIm9uQ2xpY2siLCAib25LZXlEb3duIiwgIm9uSG92ZXIiLCAib25Gb2N1cyIsICJvbkxlYXZlIiwgIm9uQmx1ciIsICJjaGlsZHJlbiIsICJzdHJva2VDb2xvciIsICJmaWxsQ29sb3IiLCAiZSIsICJkIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiQVJST1dfT0ZGU0VUIiwgIlZJRVdQT1JUX1BBRERJTkciLCAiY2xhbXAiLCAidmFsdWUiLCAibWluIiwgIm1heCIsICJwcmVmZXJzQm90dG9tIiwgInBsYWNlbWVudCIsICJnZXRDb250ZW50IiwgImNvbnRlbnQiLCAicGF5bG9hZCIsICJPZG9udG9ncmFtVG9vbHRpcCIsICJhY3RpdmUiLCAicG9zaXRpb24iLCAicmVmIiwgImNvb3JkcyIsICJzZXRDb29yZHMiLCAidG9vbHRpcEJveCIsICJ4IiwgIm1hcmdpbiIsICJhbmNob3JSZWN0IiwgIm1heExlZnQiLCAibGVmdCIsICJ0b3BXaGVuQWJvdmUiLCAidG9wV2hlbkJlbG93IiwgInNob3VsZFN0YXJ0QmVsb3ciLCAiaXNCb3R0b21QbGFjZW1lbnQiLCAidG9wIiwgIm1heFRvcCIsICJ0ZWV0aFBhdGhzIiwgIk5ld1RlZXRoUGF0aHMiLCAibWFwVG9Dc3NWYXJzIiwgImNvbG9ycyIsICJjc3NWYXJzIiwgImdldFRvb3RoTm90YXRpb25zIiwgImZkaSIsICJudW0iLCAidW5pdmVyc2FsIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgInBhbG1lciIsICJwbGFjZW1lbnRzIiwgIm0iLCAicXVhZHJhbnRzIiwgIm9sZHF1YWRyYW50cyIsICJub3RhdGlvbiIsICJmZGlUb1VuaXZlcnNhbCIsICJxdWFkcmFudCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiZ2V0Vmlld0JveCIsICJsYXlvdXQiLCAic2hvd0hhbGYiLCAiZnVsbCIsICJ1cHBlciIsICJsb3dlciIsICJPZG9udG9ncmFtIiwgImRlZmF1bHRTZWxlY3RlZCIsICJzaW5nbGVTZWxlY3QiLCAib25DaGFuZ2UiLCAiY2xhc3NOYW1lIiwgInRoZW1lIiwgImNvbG9ycyIsICJub3RhdGlvbiIsICJ0b29sdGlwIiwgInNob3dUb29sdGlwIiwgIm5hbWUiLCAibWF4VGVldGgiLCAidGVldGhDb25kaXRpb25zIiwgInJlYWRPbmx5IiwgInNob3dMYWJlbHMiLCAic3R5bGVzIiwgInRlZXRocGF0aCIsICJ0ZWV0aFBhdGhzIiwgIk5ld1RlZXRoUGF0aHMiLCAicXVhZHJhbnRzIiwgIm9sZHF1YWRyYW50cyIsICJ0b290aFR5cGVCeU5hbWUiLCAidCIsICJnZXRUb290aFR5cGUiLCAiaWQiLCAidG9vdGhOYW1lIiwgImNsYW1wTWF4VGVldGgiLCAidmFsdWUiLCAiYnVpbGRUb290aERldGFpbCIsICJnZXRUb290aE5vdGF0aW9ucyIsICJ0aGVtZUNvbG9ycyIsICJzZWxlY3RlZCIsICJzZXRTZWxlY3RlZCIsICJzdmdSZWYiLCAidG9vbHRpcERhdGEiLCAic2V0VG9vbHRpcERhdGEiLCAiaGFuZGxlVG9nZ2xlIiwgInByZXZpb3VzIiwgInVwZGF0ZWQiLCAiaGFuZGxlS2V5RG93biIsICJldmVudCIsICJoYW5kbGVIb3ZlciIsICJwbGFjZW1lbnQiLCAiX2EiLCAiX2IiLCAicGF0aCIsICJ0b290aEJveCIsICJtYXJnaW4iLCAieCIsICJwbGFjZW1lbnRzIiwgImhhbmRsZUxlYXZlIiwgInByZXYiLCAidmlzaWJsZVF1YWRyYW50cyIsICJmaWx0ZXJlZFRlZXRoIiwgImNvbmRpdGlvbk1hcCIsICJtYXAiLCAiY29uZGl0aW9uIiwgInRvb3RoSWQiLCAicmVuZGVyVGVldGgiLCAicHJlZml4IiwgInRvb3RoIiwgImRpc3BsYXlOYW1lIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgIlRlZXRoIiwgImN1cnJlbnRJZCIsICJmaW5hbENvbG9ycyIsICJtYXBUb0Nzc1ZhcnMiLCAiY29udGFpbmVyQ2xhc3NlcyIsICJ0cmFuc2Zvcm0iLCAibGFiZWwiLCAiaW5kZXgiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiTGFiZWxzX2RlZmF1bHQiLCAiT2RvbnRvZ3JhbV9kZWZhdWx0Il0KfQo=
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useCallback as f,useMemo as A,useRef as Z1,useState as s1}from"react";import{jsx as N,jsxs as b1}from"react/jsx-runtime";var X=({name:t,outlinePath:e,shadowPath:r,lineHighlightPath:s,selected:C,condition:n,readOnly:c,onClick:i,onKeyDown:p,onHover:u,onFocus:y,onLeave:M,onBlur:d,children:h})=>{let P=(n==null?void 0:n.outlineColor)??"currentColor",x=(n==null?void 0:n.fillColor)??"currentColor";return b1("g",{className:`${t} ${C?"selected":""}`,tabIndex:c?-1:0,onClick:c?void 0:()=>i==null?void 0:i(t),onKeyDown:c?void 0:m=>p==null?void 0:p(m,t),onMouseEnter:u?m=>u(t,m):void 0,onFocus:y?m=>y(t,m):void 0,onMouseLeave:M,onBlur:d,role:"option","aria-label":`Tooth ${t.replace("teeth-","")}`,"aria-selected":C,"aria-disabled":c,style:{cursor:c?"default":"pointer",color:P},children:[h,N("path",{stroke:P,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",d:e}),N("path",{fill:x,d:r,"data-colored":n?"true":void 0,style:{opacity:n?1:void 0}}),Array.isArray(s)?s.map(m=>N("path",{stroke:P,strokeLinecap:"round",strokeLinejoin:"round",d:m},m)):N("path",{stroke:P,strokeLinecap:"round",strokeLinejoin:"round",d:s})]})};import{useEffect as y1,useRef as M1,useState as P1}from"react";import{Fragment as w1,jsx as k1,jsxs as L}from"react/jsx-runtime";var Y=12,S=8,x1=(t,e,r)=>Math.min(Math.max(t,e),r),v1=(t,e)=>{if(t)return typeof t=="function"?t(e):t};function t1({active:t,payload:e,position:r,content:s}){let C=M1(null),[n,c]=P1(null);return y1(()=>{if(!(t&&C.current&&r))return;let i=C.current.getBoundingClientRect(),{x:p,y:u}=r,y=Math.max(S,window.innerWidth-i.width-S),M=x1(p-i.width/2,S,y),d=u-i.height-Y,h=d<S?u+Y:d;c({left:M,top:h})},[t,r,s,e]),t&&e?L("div",{ref:C,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"var(--odontogram-tooltip-bg, rgba(0,0,0,0.85))",color:"var(--odontogram-tooltip-fg, #fff)",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,left:(n==null?void 0:n.left)??-9999,top:(n==null?void 0:n.top)??-9999,opacity:n?1:0,transition:"opacity 0.15s ease"},children:[v1(s,e)??L(w1,{children:[L("div",{children:["Tooth: ",e.notations.fdi]}),L("div",{children:["Type: ",e.type]}),L("div",{children:["Universal: ",e.notations.universal,", Palmer:"," ",e.notations.palmer]})]}),k1("div",{className:"odontogram-tooltip-arrow",style:{position:"absolute",bottom:"-6px",left:"50%",transform:"translateX(-50%)",width:0,height:0,borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid var(--odontogram-tooltip-bg, rgba(0, 0, 0, 0.85))"}})]}):null}var e1=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}],o1=[{name:"1",type:"Central Incisor",outlinePath:"M397.992 51.339C396.126 51.1841 393.495 50.5617 393.495 50.5617C393.495 50.5617 388.804 49.6453 386.903 48.5677C384.873 47.4162 382.213 45.7195 381.838 44.0514C381.487 42.4836 381.216 40.0226 381.478 38.243L381.503 38.0727C381.82 35.9287 382.29 32.7452 382.642 29.3191C382.817 27.6207 382.583 26.5905 383.332 24.0911C384.118 21.4652 384.555 20.2179 385.09 19.2766C385.648 18.2937 386.375 17.5159 386.841 16.5072C387.593 14.8802 388.91 12.8822 390.18 11.3573C390.902 10.4905 391.602 9.74461 392.207 9.11454C393.08 8.20669 394.629 6.4959 395.556 5.46719C396.866 4.01329 398.196 2.73364 399.344 2.32547C400.382 1.95648 401.652 1.80289 402.575 1.56192C403.741 1.25751 404.7 1.04041 406.481 1.59988C407.789 2.01078 408.79 2.15093 410.175 3.6958C411.909 5.63147 412.563 6.70795 413.119 7.75747C414.007 9.43534 415.224 11.7273 416.073 13.2435C416.584 14.1554 417.935 15.8859 419.471 20.7919C420.739 24.8422 421.417 27.4048 421.716 28.4564C422.057 29.6562 422.602 31.5093 422.815 33.7313C423.154 37.2832 423.699 40.0978 423.625 43.1077C423.562 45.6958 423.671 47.3905 422.667 48.4567C421.852 49.3227 420.962 50.1403 419.837 50.5815C418.166 51.2367 416.619 51.7043 415.323 51.8901C414.174 52.0548 409.33 52.1292 405.791 51.8445C404.461 51.7375 402.725 51.7319 397.992 51.339Z",shadowPath:"M410.562 10.2393C426.588 45.9698 419.344 47.3813 414.383 48.2436C409.421 49.1058 390.229 45.8566 389.156 45.6013C388.783 45.4122 381.586 45.5268 385.27 28.9613C388.307 15.307 399.25 6.5008 400.149 5.94125C402.84 4.2654 407.678 3.81025 410.562 10.2393Z",lineHighlightPath:"M386.65 40.1568C386.979 40.5013 390.29 43.0038 394.2 44.879C396.819 46.1347 400.79 46.3275 403.707 46.4582C411.145 46.8422 412.214 45.7688 414.456 45.2944C414.934 45.1809 415.23 45.0675 415.965 44.8037"},{name:"2",type:"Lateral Incisor",outlinePath:"M339.362 5.90227C342.255 3.71416 346.038 1.25774 347.807 1.15688C351.997 0.918049 355.515 3.10622 357.625 6.73623C361.668 13.6941 364.043 21.5609 365.951 29.3396C366.793 32.7727 371.064 45.061 366.866 47.897C360.805 55.8472 336.444 55.8684 329.833 49.9979C323.057 43.9805 325.09 29.7675 327.77 22.2921C329.981 16.1281 334.178 9.82403 339.362 5.90227Z",shadowPath:"M340.341 10.7533C342.637 9.01674 345.639 7.06721 347.044 6.98717C350.369 6.79762 353.161 8.53425 354.835 11.4152C358.044 16.9373 359.929 23.1807 361.443 29.3542C362.112 32.0788 365.502 41.8314 362.169 44.0822C357.359 50.3918 338.025 50.4086 332.779 45.7496C327.401 40.9738 329.014 29.6938 331.142 23.761C332.896 18.869 336.227 13.8658 340.341 10.7533Z",lineHighlightPath:"M334.964 39.2131C335.743 39.9998 343.128 45.3167 349.494 44.3903C352.66 43.9297 359.564 41.7577 360.67 41.2767"},{name:"3",type:"Canine",outlinePath:"M275.285 36.7016C275.461 34.8357 275.849 18.5473 286.018 5.57867C288.971 1.81325 299.434 0.829071 303.316 3.82989C310.408 9.31139 313.426 28.9506 310.396 37.4059C308.951 41.4393 297.215 55.4587 291.42 52.8366C285.975 50.3727 274.6 43.9742 275.285 36.7016Z",shadowPath:"M301.598 7.93945C307.291 12.3406 309.864 28.5513 307.396 35.4392C306.212 38.7427 296.601 50.225 291.854 48.0774C287.984 46.3265 281.376 42.5321 279.505 38.5086C275.156 29.1535 286.937 -3.39247 301.598 7.93945Z",lineHighlightPath:"M281.255 35.7132C281.766 36.2349 283.933 38.6225 286.307 40.4563C289.837 43.1816 290.269 43.5706 291.974 44.5673C293.243 45.3091 296.192 46.2724 304.782 36.2803 M287.379 19.4012C287.632 19.2016 291.839 21.1066 296.933 17.499"},{name:"4",type:"First Premolar",outlinePath:"M236.98 4.87854C231.34 8.91989 227.474 33.8121 227.41 33.9971C227.423 35.3948 224.346 44.1157 245.059 53.0117C246.025 53.4266 247.125 52.888 247.86 52.4695C248.67 52.0073 250.354 50.8376 253.096 48.11C254.772 46.4429 261.519 39.4872 261.637 34.8665C261.691 32.7406 261.314 28.4868 260.916 24.2565C260.517 20.0262 259.172 12.5851 258.255 9.7502C257.37 7.00905 252.569 -3.57975 236.98 4.87854Z",shadowPath:"M238.114 7.66346C233.204 11.182 229.838 32.8544 229.782 33.0155C229.793 34.2324 227.114 41.8252 245.148 49.5706C245.989 49.9317 246.947 49.4629 247.586 49.0985C248.293 48.6961 249.758 47.6777 252.146 45.3029C253.605 43.8514 259.479 37.7955 259.582 33.7724C259.629 31.9215 259.301 28.218 258.954 24.5348C258.607 20.8517 257.435 14.3731 256.638 11.905C255.866 9.51838 251.687 0.299255 238.114 7.66346Z",lineHighlightPath:"M232.699 39.8277C232.885 39.9138 233.796 40.4028 238.753 42.4719C241.555 43.6416 243.526 43.4623 245.192 43.1391C246.68 42.8502 249.007 41.9121 250.856 40.686C251.932 39.8864 252.954 38.9499 254.698 37.0231C255.147 36.4782 255.449 36.0189 256.052 35.3458 M239.545 12.8442C241.885 10.1252 250.366 10.5793 250.366 10.5793"},{name:"5",type:"Second Premolar",outlinePath:"M186.485 45.8905C188.39 47.4915 194.878 52.668 197.762 53.1457C200.384 53.5801 211.318 44.6344 213.743 37.254C214.322 35.4928 215.038 15.1384 208.58 4.13152C202.248 -2.02701 189.273 -0.756658 185.395 11.0477C183.218 17.6734 180.668 30.608 180.423 32.2205C180.177 33.8383 180.188 36.0117 180.547 38.1716C180.751 39.3933 180.853 40.0649 181.221 40.6135C181.726 41.3662 183.233 43.1574 186.485 45.8905Z",shadowPath:"M188.107 43.3403C189.761 44.7301 195.393 49.2236 197.896 49.6383C200.172 50.0154 209.664 42.2499 211.769 35.8432C212.271 34.3143 212.893 16.6453 207.287 7.09053C201.791 1.74449 190.527 2.84724 187.16 13.0943C185.271 18.8458 183.057 30.074 182.845 31.4738C182.631 32.8782 182.641 34.7648 182.953 36.6398C183.129 37.7003 183.218 38.2832 183.537 38.7594C183.976 39.4129 185.284 40.9678 188.107 43.3403Z",lineHighlightPath:"M185.566 38.954C200.902 47.5796 204.772 37.6999 208.388 34.1061 M191.566 11.1268C196.702 7.12464 201.745 8.78762 202.549 8.92105"},{name:"6",type:"First Molar",outlinePath:"M128.904 45.8941C130.676 47.3001 145.884 61.9755 162.145 45.1423C163.249 43.9986 172.589 28.7255 163.065 9.88792C162.022 7.82514 161.32 5.92758 160.392 4.9355C159.008 3.45593 158.296 2.7052 156.622 2.60279C155.155 2.51311 153.656 3.01459 150.242 3.84879C148.517 4.2702 147.372 4.53309 144.251 3.3168C143.121 2.87675 141.495 2.08665 139.43 1.98738C137.768 1.90751 136.636 1.9765 135.262 2.89208C133.14 4.30717 131.556 6.06007 130.301 8.67838C129.938 9.43672 129.094 10.8117 127.581 13.8497C126.625 15.77 125.381 18.4495 124.394 20.9063C123.406 23.3631 122.657 25.5204 122.24 27.0814C121.585 29.5351 120.898 32.0017 121.468 34.2957L121.471 34.3102C121.817 35.7 122.322 37.7345 123.709 39.8068C125.153 41.9637 126.819 44.2397 128.904 45.8941Z",shadowPath:"M131.01 43.4559C132.509 44.7414 145.836 57.4979 160.034 42.7994C160.999 41.8008 169.154 28.4646 160.838 12.016C159.927 10.2149 159.315 8.55796 158.504 7.6917C157.296 6.39976 156.674 5.74424 155.212 5.65482C153.932 5.57651 152.623 6.01439 149.641 6.7428C148.135 7.11076 147.135 7.34032 144.41 6.27827C143.424 5.89404 142.004 5.20414 140.2 5.11746C129.959 4.62519 125.555 25.666 125.191 27.029L125.189 27.0338C124.616 29.1822 122.705 36.3359 131.01 43.4559Z",lineHighlightPath:"M153.854 27.4742C149.502 26.6409 144.049 27.8519 142.802 30.5372C143.302 25.2189 138.067 23.5889 133.932 23.5051 M153.854 27.4742C156.709 28.0209 159.09 29.4476 159.498 31.9153 M153.854 27.4742C155.556 27.6746 159.3 27.5062 160.657 25.2286 M129.139 24.6538C129.507 24.1665 131.326 23.4523 133.932 23.5051 M133.932 23.5051C132.471 22.6048 129.672 20.364 130.173 18.6034"},{name:"7",type:"Second Molar",outlinePath:"M60.6793 25.3418C59.9161 27.6449 57.3636 48.9037 84.9129 53.0846C99.7889 54.3626 106.055 39.2037 106.365 36.7909C108.564 30.6549 106.469 17.6337 105.276 14.6833C103.739 10.8816 102.7 8.48706 101.946 7.37378C100.442 5.15401 99.23 3.29064 98.43 2.92655C97.2983 2.41145 95.3919 1.13034 91.2714 2.68435C88.4359 3.75373 86.0838 3.4998 83.6256 2.76604C80.7363 1.9036 76.9082 0.690209 75.4367 0.962055C74.4606 1.14236 73.4249 1.15689 72.6333 1.98215C71.4867 3.17764 70.1618 4.75807 67.8021 9.5839C66.634 11.9729 64.7932 15.7196 63.8949 17.7849C62.387 21.2519 61.3298 23.3785 60.6793 25.3418Z",shadowPath:"M63.8099 25.4532C63.1456 27.4579 60.9238 45.9624 84.9037 49.6015C97.8523 50.7139 103.307 37.5191 103.576 35.419C106.215 28.0569 104.202 16.4153 99.73 9.81324C98.4211 7.88108 97.3658 6.25914 96.6695 5.94222C95.6844 5.49387 93.796 4.7905 90.2093 6.14316C87.7412 7.07399 85.9229 6.4412 83.7832 5.80251C81.4234 5.09812 76.4488 2.79134 74.2151 5.12018C73.2171 6.16077 72.0638 7.53645 70.0098 11.737C67.83 16.195 65.3744 20.7318 63.8099 25.4532Z",lineHighlightPath:"M92.3375 21.9418C89.3377 22.2849 84.8906 23.6339 83.7253 27.9829C84.7838 23.138 77.3962 22.8185 73.5022 23.7247 M92.3375 21.9418C96.1666 21.5038 99.585 23.1101 100.215 24.165 M92.3375 21.9418C94.4127 21.402 98.5317 19.898 99.5584 17.8597 M68.7524 26.3173C69.2513 25.49 70.8242 24.3479 73.5022 23.7247 M73.5022 23.7247C71.8339 23.4169 68.3955 22.3238 67.9878 20.414"},{name:"8",type:"Third Molar",outlinePath:"M22.8836 52.8066C23.9272 53.0915 25.7986 52.8756 26.2096 52.9116C26.501 52.9372 29.1459 52.7852 30.9534 52.2805C33.3552 51.4149 34.9901 50.7777 35.8495 50.1498C37.4391 48.9886 39.8965 46.9387 41.9506 44.3052C43.4092 42.4352 44.6381 40.2207 45.6008 37.6721C46.2927 35.8405 46.8536 34.1203 46.9928 31.3837C47.0827 29.6169 47.0888 27.1207 46.8396 24.256C46.5904 21.3913 46.1008 18.2531 45.5737 15.8629C45.0466 13.4727 44.4986 11.8788 43.9103 10.4861C43.3219 9.09334 42.7016 7.94145 42.3718 7.27535C41.7672 6.05446 41.3188 4.92976 40.5172 4.18705C38.9052 2.69353 37.6504 2.08716 36.39 1.85884C35.3031 1.66195 33.6407 1.67752 32.5207 2.07341C30.9374 2.63304 30.0912 3.2864 27.6613 3.30729C24.3667 3.3356 22.5667 1.96049 20.5098 1.81402C17.0827 1.56998 15.2376 1.60216 14.1182 2.20976C13.2193 2.69768 12.0927 3.47083 9.80979 6.74515C9.14188 7.70312 8.43252 8.93509 6.93122 12.162C5.88407 14.4128 4.32452 17.8482 3.48639 19.6641C2.55627 21.6793 1.61739 23.4684 0.935372 26.3698C0.449847 28.4352 0.305589 30.9466 0.839682 33.6862C1.20408 35.5554 1.8879 38.1004 4.17249 41.0505C6.62542 44.218 8.40151 46.3149 9.38601 47.091C10.2686 47.7868 11.1762 48.4668 12.4397 49.0231C14.0734 49.7423 15.5681 50.8399 17.5147 51.4152C19.7705 52.0818 21.1395 52.3305 22.8836 52.8066Z",shadowPath:"M22.9904 49.6908C23.9066 49.9409 25.5494 49.7513 25.9103 49.783C26.166 49.8054 28.488 49.6719 30.0748 49.2289C32.1834 48.469 33.6186 47.9096 34.3731 47.3584C35.7686 46.3389 37.9259 44.5394 39.7292 42.2274C41.0097 40.5858 42.0885 38.6416 42.9337 36.4042C43.5411 34.7963 44.0335 33.2862 44.1557 30.8837C44.2346 29.3326 44.24 27.1413 44.0212 24.6263C43.8025 22.1114 43.3726 19.3564 42.9099 17.2581C42.4472 15.1598 41.9661 13.7604 41.4496 12.5378C40.9331 11.3151 40.3885 10.3039 40.099 9.71911C39.5682 8.64729 39.1745 7.65993 38.4708 7.00789C37.0556 5.69674 35.9541 5.16442 34.8476 4.96398C33.8934 4.79113 32.434 4.8048 31.4507 5.15234C30.0608 5.64364 29.3179 6.21722 27.1847 6.23556C24.2924 6.26042 22.7122 5.05321 20.9064 4.92463C17.8978 4.71038 16.2779 4.73864 15.2953 5.27204C14.5061 5.70039 13.5171 6.37914 11.5129 9.25365C10.9266 10.0946 10.3038 11.1762 8.98585 14.0091C8.06656 15.9851 6.69744 19.001 5.96165 20.5951C5.1451 22.3642 4.32086 23.9349 3.72212 26.482C3.29588 28.2953 3.16924 30.4999 3.63812 32.9051C3.95802 34.546 4.55834 36.7803 6.56397 39.3702C8.71739 42.1509 10.2766 43.9917 11.1409 44.6731C11.9158 45.2839 12.7125 45.8809 13.8217 46.3692C15.256 47.0006 16.5682 47.9643 18.2771 48.4693C20.2574 49.0544 21.4592 49.2728 22.9904 49.6908Z",lineHighlightPath:"M7.13742 27.9101C7.89327 26.717 10.2562 25.7846 12.8627 25.483M38.0458 27.6444C37.0983 25.9368 34.2284 24.8447 31.1328 24.7739M37.58 21.3626C36.685 22.4687 34.1426 24.6994 31.1328 24.7739M31.1328 24.7739C27.1226 24.6823 22.7336 26.3048 21.6544 30.5239C21.9221 26.1555 17.0744 24.9957 12.8627 25.483M6.646 21.8371C7.23084 23.1942 9.29296 25.8232 12.8627 25.483"}];function r1(t){let e={};return t.darkBlue&&(e["--dark-blue"]=t.darkBlue),t.baseBlue&&(e["--base-blue"]=t.baseBlue),t.lightBlue&&(e["--light-blue"]=t.lightBlue),e}function a1(t){let e=t.replace("teeth-",""),r=O(t,"Universal"),s=O(t,"Palmer");return{fdi:e,universal:r,palmer:s}}var U={top:(t,e)=>({x:t.left+t.width/2,y:t.top-e}),"top-start":(t,e)=>({x:t.left,y:t.top-e}),"top-end":(t,e)=>({x:t.right,y:t.top-e}),bottom:(t,e)=>({x:t.left+t.width/2,y:t.bottom+e}),"bottom-start":(t,e)=>({x:t.left,y:t.bottom+e}),"bottom-end":(t,e)=>({x:t.right,y:t.bottom+e}),left:(t,e)=>({x:t.left-e,y:t.top+t.height/2}),"left-start":(t,e)=>({x:t.left-e,y:t.top}),"left-end":(t,e)=>({x:t.left-e,y:t.bottom}),right:(t,e)=>({x:t.right+e,y:t.top+t.height/2}),"right-start":(t,e)=>({x:t.right+e,y:t.top}),"right-end":(t,e)=>({x:t.right+e,y:t.bottom})},n1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"translate(855, 0) scale(-1, 1) translate(-55,0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -150)",label:"Lower Right"},{name:"fourth",transform:"translate(855, 0) scale(-1, -1) translate(-55,-150)",label:"Lower Left"}],i1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right"},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left"}];function O(t,e){let r=t.replace("teeth-",""),s={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(e==="Universal")return String(s[r]??r);if(e==="Palmer"){if(r.length<2)return r;let C=r[0];return`${r[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[C]??""}`}return r}import{jsx as q,jsxs as L1}from"react/jsx-runtime";var T1=({conditions:t,className:e=""})=>!t||t.length===0?null:q("div",{className:e,style:{display:"flex",gap:8,fontFamily:"sans-serif",fontSize:14,flexWrap:"wrap"},role:"list","aria-label":"Tooth condition legend",children:t.map(r=>L1("div",{role:"listitem",style:{display:"flex",alignItems:"center",gap:8},children:[q("span",{"aria-hidden":"true",style:{width:14,height:14,borderRadius:4,background:r.fillColor,border:`2px solid ${r.outlineColor??r.fillColor}`,display:"inline-block"}}),q("span",{style:{textTransform:"capitalize"},children:r.label})]},r.label))}),l1=T1;import{jsx as b,jsxs as C1}from"react/jsx-runtime";function R1(t,e){if(t==="square")return e==="upper"?"0 0 900 75":e==="lower"?"0 75 900 75 ":"0 0 900 150";let r="0 0 409 694",s="0 0 409 347",C="0 347 409 347";return e==="upper"?s:e==="lower"?C:r}var N1=({defaultSelected:t=[],singleSelect:e=!1,onChange:r,className:s="",theme:C="light",colors:n={},notation:c="FDI",tooltip:i={margin:10,placement:"top"},showTooltip:p=!0,showHalf:u="full",name:y,maxTeeth:M=8,teethConditions:d,readOnly:h=!1,showLabels:P=!1,layout:x="circle",styles:m})=>{let w=x==="circle"?e1:o1,B=x==="circle"?i1:n1,G=A(()=>new Map(w.map(o=>[o.name,o.type])),[w]),$=f(o=>{let l=o.replace("teeth-","").slice(1);return G.get(l)??"Unknown"},[G]),V=f(o=>typeof o!="number"||Number.isNaN(o)?w.length:Math.max(0,Math.min(w.length,Math.floor(o))),[]),Z=f(o=>({id:o,notations:a1(o),type:$(o)}),[$]),p1=C==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[D,c1]=s1(()=>new Set(e?t.slice(0,1):t)),E=Z1(null),[F,W]=s1({active:!1}),R=f(o=>{h||c1(l=>{let a=new Set(l);return e?a.has(o)?a.delete(o):(a.clear(),a.add(o)):a.has(o)?a.delete(o):a.add(o),r==null||r(Array.from(a).map(Z)),a})},[r,h,Z,e]),z=f((o,l)=>{h||(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),R(l))},[R,h]),I=f((o,l,a="right")=>{var K,Q;let v=l.currentTarget.querySelector("path");if(!(v&&E.current))return;let k=v.getBoundingClientRect(),T=E.current.getBoundingClientRect(),g=i.margin??10,{x:f1,y:J}=((Q=(K=U)[a])==null?void 0:Q.call(K,k,g))??U.right(k,g),g1=J<T.top?k.bottom+g:J;W({active:!0,position:{x:f1,y:g1},payload:Z(o)})},[i.margin,i.placement,Z]),H=f(()=>{W(o=>({...o,active:!1}))},[]),h1=u==="upper"?B.slice(0,2):u==="lower"?B.slice(2):B,j=A(()=>w.slice(0,V(M)),[M,V,x]),_=A(()=>{let o=new Map;return d==null||d.forEach(l=>{l.teeth.forEach(a=>{o.set(a,l)})}),o},[d]),d1=f(o=>j.map(l=>{let a=`${o}${l.name}`,v=O(a,c),k=_.get(a);return b(X,{readOnly:h,...l,name:a,selected:D.has(a),condition:k,onClick:R,onKeyDown:z,onHover:p?(T,g)=>I(T,g,i.placement):void 0,onFocus:p?(T,g)=>I(T,g,i.placement):void 0,onLeave:p?H:void 0,onBlur:p?H:void 0,children:b("title",{children:v})},a)}),[j,c,_,h,D,R,z,I,H,p,i.placement]),m1={...p1,...r1(n)},u1=["Odontogram",C==="dark"?"dark-theme":"",s].filter(Boolean).join(" ");return C1("div",{className:u1,style:{...m1,width:"100%",margin:"0 auto",display:"flex",flexDirection:"column",gap:"20px",justifyContent:"center",alignItems:"center",...m},role:"listbox","aria-label":"Odontogram","aria-multiselectable":!e,"data-read-only":h?"true":"false",children:[b("input",{type:"hidden",name:y??"teeth",value:JSON.stringify(Array.from(D))}),C1("svg",{ref:E,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:R1(x,u),className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[b("title",{children:"Odontogram"}),h1.map(({name:o,transform:l,label:a},v)=>b("g",{role:"group","aria-label":a,transform:l,children:d1(`teeth-${v+1}`)},o))]}),p&&b(t1,{active:F.active,position:F.position,payload:F.payload,content:i.content}),P&&b(l1,{conditions:d})]})},S1=N1;export{N1 as Odontogram,S1 as default,R1 as getViewBox};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL09kb250b2dyYW0udHN4IiwgIi4uL3NyYy9UZWV0aC50c3giLCAiLi4vc3JjL1Rvb2x0aXAudHN4IiwgIi4uL3NyYy9kYXRhLnRzIiwgIi4uL3NyYy91dGlscy50cyIsICIuLi9zcmMvTGFiZWxzLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFwiLi9zdHlsZXMuY3NzXCI7XG5pbXBvcnQge1xuICB0eXBlIENTU1Byb3BlcnRpZXMsXG4gIHR5cGUgRkMsXG4gIHR5cGUgS2V5Ym9hcmRFdmVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgVGVldGggfSBmcm9tIFwiLi9UZWV0aFwiO1xuaW1wb3J0IHsgT2RvbnRvZ3JhbVRvb2x0aXAgfSBmcm9tIFwiLi9Ub29sdGlwXCI7XG5pbXBvcnQgeyBOZXdUZWV0aFBhdGhzLCB0ZWV0aFBhdGhzIH0gZnJvbSBcIi4vZGF0YVwiO1xuaW1wb3J0IHR5cGUge1xuICBPZG9udG9ncmFtUHJvcHMsXG4gIFBsYWNlbWVudCxcbiAgVG9vdGhDb25kaXRpb25Hcm91cCxcbiAgVG9vdGhEZXRhaWwsXG4gIFRvb3RoSW50ZXJhY3Rpb25FdmVudCxcbn0gZnJvbSBcIi4vdHlwZVwiO1xuaW1wb3J0IHtcbiAgY29udmVydEZESVRvTm90YXRpb24sXG4gIGdldFRvb3RoTm90YXRpb25zLFxuICBtYXBUb0Nzc1ZhcnMsXG4gIHBsYWNlbWVudHMsXG4gIHF1YWRyYW50cyBhcyBuZXdxdWFkcmFudHMsXG4gIG9sZHF1YWRyYW50c1xufSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IENvbmRpdGlvbkxhYmVscyBmcm9tIFwiLi9MYWJlbHNcIjtcblxudHlwZSBMYXlvdXQgPSAnY2lyY2xlJyB8ICdzcXVhcmUnO1xudHlwZSBTaG93SGFsZiA9ICdmdWxsJyB8ICd1cHBlcicgfCAnbG93ZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld0JveChsYXlvdXQ6IExheW91dCwgc2hvd0hhbGY6IFNob3dIYWxmKTogc3RyaW5nIHtcbiAgaWYgKGxheW91dCA9PT0gJ3NxdWFyZScpIHtcbiAgICAvLyBsaW5lYXIgZG9lcyBub3Qgc3VwcG9ydCBoYWxmIHNsaWNpbmcgKHNpbmdsZSByb3cpXG5cbiAgICBpZiAoc2hvd0hhbGYgPT09ICd1cHBlcicpIHJldHVybiAnMCAwIDkwMCA3NSc7XG4gICAgaWYgKHNob3dIYWxmID09PSAnbG93ZXInKSByZXR1cm4gJzAgNzUgOTAwIDc1ICc7XG5cblxuICAgIHJldHVybiAnMCAwIDkwMCAxNTAnO1xuICB9XG5cbiAgLy8gY2lyY2xlIGxheW91dFxuICBjb25zdCBmdWxsID0gJzAgMCA0MDkgNjk0JztcbiAgY29uc3QgdXBwZXIgPSAnMCAwIDQwOSAzNDcnO1xuICBjb25zdCBsb3dlciA9ICcwIDM0NyA0MDkgMzQ3JztcblxuICBpZiAoc2hvd0hhbGYgPT09ICd1cHBlcicpIHJldHVybiB1cHBlcjtcbiAgaWYgKHNob3dIYWxmID09PSAnbG93ZXInKSByZXR1cm4gbG93ZXI7XG4gIHJldHVybiBmdWxsO1xufVxuXG5leHBvcnQgY29uc3QgT2RvbnRvZ3JhbTogRkM8T2RvbnRvZ3JhbVByb3BzPiA9ICh7XG4gIGRlZmF1bHRTZWxlY3RlZCA9IFtdLFxuICBzaW5nbGVTZWxlY3QgPSBmYWxzZSxcbiAgb25DaGFuZ2UsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG4gIHRoZW1lID0gXCJsaWdodFwiLFxuICBjb2xvcnMgPSB7fSxcbiAgbm90YXRpb24gPSBcIkZESVwiLFxuICB0b29sdGlwID0ge1xuICAgIG1hcmdpbjogMTAsXG4gICAgcGxhY2VtZW50OiBcInRvcFwiLFxuICB9LFxuICBzaG93VG9vbHRpcCA9IHRydWUsXG4gIHNob3dIYWxmID0gXCJmdWxsXCIsXG4gIG5hbWUsXG4gIG1heFRlZXRoID0gOCxcbiAgdGVldGhDb25kaXRpb25zLFxuICByZWFkT25seSA9IGZhbHNlLFxuICBzaG93TGFiZWxzID0gZmFsc2UsXG4gIGxheW91dCA9ICdjaXJjbGUnLFxuICBzdHlsZXNcbn0pID0+IHtcbiAgLyoqXG4gICAqIE1lbW86IHRvb3RoIHR5cGUgbG9va3VwXG4gICAqL1xuXG4gIGNvbnN0IHRlZXRocGF0aCA9IGxheW91dCA9PT0gJ2NpcmNsZScgPyB0ZWV0aFBhdGhzIDogTmV3VGVldGhQYXRocztcblxuICBjb25zdCBxdWFkcmFudHMgPSBsYXlvdXQgPT09ICdjaXJjbGUnID8gb2xkcXVhZHJhbnRzIDogbmV3cXVhZHJhbnRzO1xuXG4gIGNvbnN0IHRvb3RoVHlwZUJ5TmFtZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbmV3IE1hcCh0ZWV0aHBhdGgubWFwKCh0KSA9PiBbdC5uYW1lLCB0LnR5cGVdKSksXG4gICAgW3RlZXRocGF0aF1cbiAgKTtcblxuICAvKipcbiAgICogSGVscGVyc1xuICAgKi9cbiAgY29uc3QgZ2V0VG9vdGhUeXBlID0gdXNlQ2FsbGJhY2soXG4gICAgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRvb3RoTmFtZSA9IGlkLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIikuc2xpY2UoMSk7XG4gICAgICByZXR1cm4gdG9vdGhUeXBlQnlOYW1lLmdldCh0b290aE5hbWUpID8/IFwiVW5rbm93blwiO1xuICAgIH0sXG4gICAgW3Rvb3RoVHlwZUJ5TmFtZV1cbiAgKTtcblxuICBjb25zdCBjbGFtcE1heFRlZXRoID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIgfHwgTnVtYmVyLmlzTmFOKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdGVldGhwYXRoLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbih0ZWV0aHBhdGgubGVuZ3RoLCBNYXRoLmZsb29yKHZhbHVlKSkpO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICBjb25zdCBidWlsZFRvb3RoRGV0YWlsID0gdXNlQ2FsbGJhY2soXG4gICAgKGlkOiBzdHJpbmcpOiBUb290aERldGFpbCA9PiAoe1xuICAgICAgaWQsXG4gICAgICBub3RhdGlvbnM6IGdldFRvb3RoTm90YXRpb25zKGlkKSxcbiAgICAgIHR5cGU6IGdldFRvb3RoVHlwZShpZCksXG4gICAgfSksXG4gICAgW2dldFRvb3RoVHlwZV1cbiAgKTtcblxuICAvKipcbiAgICogVGhlbWVcbiAgICovXG4gIGNvbnN0IHRoZW1lQ29sb3JzID1cbiAgICB0aGVtZSA9PT0gXCJkYXJrXCJcbiAgICAgID8ge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiI2FhYjZmZlwiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiI2QwZDVmNlwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiM1MzYxZTZcIixcbiAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiIzNlNWVkY1wiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiIzhhOThiZVwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiNjNmNjZjhcIixcbiAgICAgIH07XG5cbiAgLyoqXG4gICAqIFN0YXRlXG4gICAqL1xuICBjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+PihcbiAgICAoKSA9PlxuICAgICAgbmV3IFNldChcbiAgICAgICAgc2luZ2xlU2VsZWN0ID8gZGVmYXVsdFNlbGVjdGVkLnNsaWNlKDAsIDEpIDogZGVmYXVsdFNlbGVjdGVkXG4gICAgICApXG4gICk7XG5cbiAgY29uc3Qgc3ZnUmVmID0gdXNlUmVmPFNWR1NWR0VsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFt0b29sdGlwRGF0YSwgc2V0VG9vbHRpcERhdGFdID0gdXNlU3RhdGU8e1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgICBwYXlsb2FkPzogVG9vdGhEZXRhaWw7XG4gIH0+KHsgYWN0aXZlOiBmYWxzZSB9KTtcblxuICAvKipcbiAgICogSGFuZGxlcnNcbiAgICovXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAocmVhZE9ubHkpIHJldHVybjtcblxuICAgICAgc2V0U2VsZWN0ZWQoKHByZXZpb3VzKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgU2V0KHByZXZpb3VzKTtcblxuICAgICAgICBpZiAoc2luZ2xlU2VsZWN0KSB7XG4gICAgICAgICAgaWYgKHVwZGF0ZWQuaGFzKGlkKSkge1xuICAgICAgICAgICAgdXBkYXRlZC5kZWxldGUoaWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cGRhdGVkLmNsZWFyKCk7XG4gICAgICAgICAgICB1cGRhdGVkLmFkZChpZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVwZGF0ZWQuaGFzKGlkKSA/IHVwZGF0ZWQuZGVsZXRlKGlkKSA6IHVwZGF0ZWQuYWRkKGlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9uQ2hhbmdlPy4oQXJyYXkuZnJvbSh1cGRhdGVkKS5tYXAoYnVpbGRUb290aERldGFpbCkpO1xuICAgICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW29uQ2hhbmdlLCByZWFkT25seSwgYnVpbGRUb290aERldGFpbCwgc2luZ2xlU2VsZWN0XVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQ8U1ZHR0VsZW1lbnQ+LCBpZDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAocmVhZE9ubHkpIHJldHVybjtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlVG9nZ2xlKGlkKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVUb2dnbGUsIHJlYWRPbmx5XVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUhvdmVyID0gdXNlQ2FsbGJhY2soXG4gICAgKFxuICAgICAgaWQ6IHN0cmluZyxcbiAgICAgIGV2ZW50OiBUb290aEludGVyYWN0aW9uRXZlbnQsXG4gICAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9IFwicmlnaHRcIlxuICAgICkgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcihcInBhdGhcIik7XG4gICAgICBpZiAoIShwYXRoICYmIHN2Z1JlZi5jdXJyZW50KSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB0b290aEJveCA9IHBhdGguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBzdmdCb3ggPSBzdmdSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IG1hcmdpbiA9IHRvb2x0aXAubWFyZ2luID8/IDEwO1xuXG4gICAgICBjb25zdCB7IHgsIHkgfSA9XG4gICAgICAgIHBsYWNlbWVudHNbcGxhY2VtZW50XT8uKHRvb3RoQm94LCBtYXJnaW4pID8/XG4gICAgICAgIHBsYWNlbWVudHMucmlnaHQodG9vdGhCb3gsIG1hcmdpbik7XG5cbiAgICAgIGNvbnN0IHNhZmVZID0geSA8IHN2Z0JveC50b3AgPyB0b290aEJveC5ib3R0b20gKyBtYXJnaW4gOiB5O1xuXG4gICAgICBzZXRUb29sdGlwRGF0YSh7XG4gICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgcG9zaXRpb246IHsgeCwgeTogc2FmZVkgfSxcbiAgICAgICAgcGF5bG9hZDogYnVpbGRUb290aERldGFpbChpZCksXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFt0b29sdGlwLm1hcmdpbiwgdG9vbHRpcC5wbGFjZW1lbnQsIGJ1aWxkVG9vdGhEZXRhaWxdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlTGVhdmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VG9vbHRpcERhdGEoKHByZXYpID0+ICh7IC4uLnByZXYsIGFjdGl2ZTogZmFsc2UgfSkpO1xuICB9LCBbXSk7XG5cbiAgLyoqXG4gICAqIFF1YWRyYW50c1xuICAgKi9cbiAgY29uc3QgdmlzaWJsZVF1YWRyYW50cyA9XG4gICAgc2hvd0hhbGYgPT09IFwidXBwZXJcIlxuICAgICAgPyBxdWFkcmFudHMuc2xpY2UoMCwgMilcbiAgICAgIDogc2hvd0hhbGYgPT09IFwibG93ZXJcIlxuICAgICAgICA/IHF1YWRyYW50cy5zbGljZSgyKVxuICAgICAgICA6IHF1YWRyYW50cztcblxuICAvKipcbiAgICogVGVldGggc2xpY2VcbiAgICovXG4gIGNvbnN0IGZpbHRlcmVkVGVldGggPSB1c2VNZW1vKFxuICAgICgpID0+IHRlZXRocGF0aC5zbGljZSgwLCBjbGFtcE1heFRlZXRoKG1heFRlZXRoKSksXG4gICAgW21heFRlZXRoLCBjbGFtcE1heFRlZXRoLCBsYXlvdXRdXG4gICk7XG5cbiAgLyoqXG4gICAqIENvbmRpdGlvbiBtYXBcbiAgICovXG4gIGNvbnN0IGNvbmRpdGlvbk1hcCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBUb290aENvbmRpdGlvbkdyb3VwPigpO1xuXG4gICAgdGVldGhDb25kaXRpb25zPy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgIGNvbmRpdGlvbi50ZWV0aC5mb3JFYWNoKCh0b290aElkKSA9PiB7XG4gICAgICAgIG1hcC5zZXQodG9vdGhJZCwgY29uZGl0aW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hcDtcbiAgfSwgW3RlZXRoQ29uZGl0aW9uc10pO1xuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGVldGhcbiAgICovXG4gIGNvbnN0IHJlbmRlclRlZXRoID0gdXNlQ2FsbGJhY2soXG4gICAgKHByZWZpeDogc3RyaW5nKSA9PlxuICAgICAgZmlsdGVyZWRUZWV0aC5tYXAoKHRvb3RoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYCR7cHJlZml4fSR7dG9vdGgubmFtZX1gO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbik7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IGNvbmRpdGlvbk1hcC5nZXQoaWQpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFRlZXRoXG4gICAgICAgICAgICBrZXk9e2lkfVxuICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgey4uLnRvb3RofVxuICAgICAgICAgICAgbmFtZT17aWR9XG4gICAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWQuaGFzKGlkKX1cbiAgICAgICAgICAgIGNvbmRpdGlvbj17Y29uZGl0aW9ufVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlfVxuICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgb25Ib3Zlcj17XG4gICAgICAgICAgICAgIHNob3dUb29sdGlwXG4gICAgICAgICAgICAgICAgPyAoY3VycmVudElkLCBldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUhvdmVyKGN1cnJlbnRJZCwgZXZlbnQsIHRvb2x0aXAucGxhY2VtZW50KVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkZvY3VzPXtcbiAgICAgICAgICAgICAgc2hvd1Rvb2x0aXBcbiAgICAgICAgICAgICAgICA/IChjdXJyZW50SWQsIGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlSG92ZXIoY3VycmVudElkLCBldmVudCwgdG9vbHRpcC5wbGFjZW1lbnQpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uTGVhdmU9e3Nob3dUb29sdGlwID8gaGFuZGxlTGVhdmUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBvbkJsdXI9e3Nob3dUb29sdGlwID8gaGFuZGxlTGVhdmUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHRpdGxlPntkaXNwbGF5TmFtZX08L3RpdGxlPlxuICAgICAgICAgIDwvVGVldGg+XG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICBbXG4gICAgICBmaWx0ZXJlZFRlZXRoLFxuICAgICAgbm90YXRpb24sXG4gICAgICBjb25kaXRpb25NYXAsXG4gICAgICByZWFkT25seSxcbiAgICAgIHNlbGVjdGVkLFxuICAgICAgaGFuZGxlVG9nZ2xlLFxuICAgICAgaGFuZGxlS2V5RG93bixcbiAgICAgIGhhbmRsZUhvdmVyLFxuICAgICAgaGFuZGxlTGVhdmUsXG4gICAgICBzaG93VG9vbHRpcCxcbiAgICAgIHRvb2x0aXAucGxhY2VtZW50LFxuICAgIF1cbiAgKTtcblxuICAvKipcbiAgICogQ29sb3JzXG4gICAqL1xuICBjb25zdCBmaW5hbENvbG9ycyA9IHtcbiAgICAuLi50aGVtZUNvbG9ycyxcbiAgICAuLi5tYXBUb0Nzc1ZhcnMoY29sb3JzKSxcbiAgfTtcblxuICBjb25zdCBjb250YWluZXJDbGFzc2VzID0gW1xuICAgIFwiT2RvbnRvZ3JhbVwiLFxuICAgIHRoZW1lID09PSBcImRhcmtcIiA/IFwiZGFyay10aGVtZVwiIDogXCJcIixcbiAgICBjbGFzc05hbWUsXG4gIF1cbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oXCIgXCIpO1xuXG5cbiAgLy93ZSBoYXZlIDQgY29uZGl0aW9ucyBcbiAgLy9sYXlvdXQgaXMgY2lyY2xlIG9yIHNxdWFyZSBcbiAgLy8gaWYgXG5cblxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjb250YWluZXJDbGFzc2VzfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uKGZpbmFsQ29sb3JzIGFzIENTU1Byb3BlcnRpZXMpLFxuICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgIG1hcmdpbjogXCIwIGF1dG9cIixcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IFwiY29sdW1uXCIsXG4gICAgICAgIGdhcDogXCIyMHB4XCIsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAuLi5zdHlsZXMgYXMgQ1NTUHJvcGVydGllc1xuICAgICAgfX1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIGFyaWEtbGFiZWw9XCJPZG9udG9ncmFtXCJcbiAgICAgIGFyaWEtbXVsdGlzZWxlY3RhYmxlPXshc2luZ2xlU2VsZWN0fVxuICAgICAgZGF0YS1yZWFkLW9ubHk9e3JlYWRPbmx5ID8gXCJ0cnVlXCIgOiBcImZhbHNlXCJ9XG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICBuYW1lPXtuYW1lID8/IFwidGVldGhcIn1cbiAgICAgICAgdmFsdWU9e0pTT04uc3RyaW5naWZ5KEFycmF5LmZyb20oc2VsZWN0ZWQpKX1cbiAgICAgIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgcmVmPXtzdmdSZWZ9XG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHZpZXdCb3g9e2dldFZpZXdCb3gobGF5b3V0LCBzaG93SGFsZilcbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWU9XCJPZG9udG9ncmFtXCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgICAgICB0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcblxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8dGl0bGU+T2RvbnRvZ3JhbTwvdGl0bGU+XG5cbiAgICAgICAge3Zpc2libGVRdWFkcmFudHMubWFwKCh7IG5hbWUsIHRyYW5zZm9ybSwgbGFiZWwgfSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8Z1xuICAgICAgICAgICAgcm9sZT1cImdyb3VwXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAga2V5PXtuYW1lfVxuICAgICAgICAgICAgdHJhbnNmb3JtPXt0cmFuc2Zvcm19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3JlbmRlclRlZXRoKGB0ZWV0aC0ke2luZGV4ICsgMX1gKX1cbiAgICAgICAgICA8L2c+XG4gICAgICAgICkpfVxuICAgICAgPC9zdmc+XG5cbiAgICAgIHtzaG93VG9vbHRpcCAmJiAoXG4gICAgICAgIDxPZG9udG9ncmFtVG9vbHRpcFxuICAgICAgICAgIGFjdGl2ZT17dG9vbHRpcERhdGEuYWN0aXZlfVxuICAgICAgICAgIHBvc2l0aW9uPXt0b29sdGlwRGF0YS5wb3NpdGlvbn1cbiAgICAgICAgICBwYXlsb2FkPXt0b29sdGlwRGF0YS5wYXlsb2FkfVxuICAgICAgICAgIGNvbnRlbnQ9e3Rvb2x0aXAuY29udGVudH1cbiAgICAgICAgLz5cbiAgICAgICl9XG5cbiAgICAgIHtzaG93TGFiZWxzICYmIChcbiAgICAgICAgPENvbmRpdGlvbkxhYmVscyBjb25kaXRpb25zPXt0ZWV0aENvbmRpdGlvbnN9IC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgT2RvbnRvZ3JhbTtcbiIsICJpbXBvcnQgdHlwZSB7IFRlZXRoUHJvcHMgfSBmcm9tIFwiLi90eXBlXCI7XG5leHBvcnQgY29uc3QgVGVldGggPSAoe1xuICBuYW1lLFxuICBvdXRsaW5lUGF0aCxcbiAgc2hhZG93UGF0aCxcbiAgbGluZUhpZ2hsaWdodFBhdGgsXG4gIHNlbGVjdGVkLFxuICBjb25kaXRpb24sXG4gIHJlYWRPbmx5LFxuICBvbkNsaWNrLFxuICBvbktleURvd24sXG4gIG9uSG92ZXIsXG4gIG9uRm9jdXMsXG4gIG9uTGVhdmUsXG4gIG9uQmx1cixcbiAgY2hpbGRyZW4sXG59OiBUZWV0aFByb3BzKSA9PiB7XG4gIGNvbnN0IHN0cm9rZUNvbG9yID0gY29uZGl0aW9uPy5vdXRsaW5lQ29sb3IgPz8gXCJjdXJyZW50Q29sb3JcIjtcbiAgY29uc3QgZmlsbENvbG9yID0gY29uZGl0aW9uPy5maWxsQ29sb3IgPz8gXCJjdXJyZW50Q29sb3JcIjtcblxuICByZXR1cm4gKFxuICAgIDxnXG4gICAgICBjbGFzc05hbWU9e2Ake25hbWV9ICR7c2VsZWN0ZWQgPyBcInNlbGVjdGVkXCIgOiBcIlwifWB9XG4gICAgICB0YWJJbmRleD17cmVhZE9ubHkgPyAtMSA6IDB9XG4gICAgICBvbkNsaWNrPXtyZWFkT25seSA/IHVuZGVmaW5lZCA6ICgpID0+IG9uQ2xpY2s/LihuYW1lKX1cbiAgICAgIG9uS2V5RG93bj17cmVhZE9ubHkgPyB1bmRlZmluZWQgOiAoZSkgPT4gb25LZXlEb3duPy4oZSwgbmFtZSl9XG4gICAgICBvbk1vdXNlRW50ZXI9e29uSG92ZXIgPyAoZSkgPT4gb25Ib3ZlcihuYW1lLCBlKSA6IHVuZGVmaW5lZH1cbiAgICAgIG9uRm9jdXM9e29uRm9jdXMgPyAoZSkgPT4gb25Gb2N1cyhuYW1lLCBlKSA6IHVuZGVmaW5lZH1cbiAgICAgIG9uTW91c2VMZWF2ZT17b25MZWF2ZX1cbiAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICBhcmlhLWxhYmVsPXtgVG9vdGggJHtuYW1lLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIil9YH1cblxuXG4gICAgICBhcmlhLXNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgIGFyaWEtZGlzYWJsZWQ9e3JlYWRPbmx5fVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgY3Vyc29yOiByZWFkT25seSA/IFwiZGVmYXVsdFwiIDogXCJwb2ludGVyXCIsXG4gICAgICAgIGNvbG9yOiBzdHJva2VDb2xvcixcbiAgICAgIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuXG4gICAgICB7Lyogb3V0bGluZSAqL31cbiAgICAgIDxwYXRoXG4gICAgICAgIHN0cm9rZT17c3Ryb2tlQ29sb3J9XG4gICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgZD17b3V0bGluZVBhdGh9XG4gICAgICAvPlxuXG4gICAgICB7LyogZmlsbCAqL31cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGw9e2ZpbGxDb2xvcn1cbiAgICAgICAgZD17c2hhZG93UGF0aH1cbiAgICAgICAgZGF0YS1jb2xvcmVkPXtjb25kaXRpb24gPyBcInRydWVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgc3R5bGU9e3sgb3BhY2l0eTogY29uZGl0aW9uID8gMSA6IHVuZGVmaW5lZCB9fVxuICAgICAgLz5cblxuICAgICAgey8qIGhpZ2hsaWdodCBsaW5lcyAqL31cbiAgICAgIHtBcnJheS5pc0FycmF5KGxpbmVIaWdobGlnaHRQYXRoKVxuICAgICAgICA/IGxpbmVIaWdobGlnaHRQYXRoLm1hcCgoZCkgPT4gKFxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBrZXk9e2R9XG4gICAgICAgICAgICBzdHJva2U9e3N0cm9rZUNvbG9yfVxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgZD17ZH1cbiAgICAgICAgICAvPlxuICAgICAgICApKVxuICAgICAgICA6IChcbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgc3Ryb2tlPXtzdHJva2VDb2xvcn1cbiAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgIGQ9e2xpbmVIaWdobGlnaHRQYXRofVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cblxuICAgIDwvZz5cbiAgKTtcbn07IiwgImltcG9ydCB7IHR5cGUgUmVhY3ROb2RlLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVG9vdGhEZXRhaWwsIFRvb2x0aXBDb250ZW50UmVuZGVyZXIgfSBmcm9tIFwiLi90eXBlXCI7XG5cbmNvbnN0IEFSUk9XX09GRlNFVCA9IDEyO1xuY29uc3QgVklFV1BPUlRfUEFERElORyA9IDg7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2RvbnRvZ3JhbVRvb2x0aXBQcm9wcyB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgcGF5bG9hZD86IFRvb3RoRGV0YWlsO1xuICBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgY29udGVudD86IFJlYWN0Tm9kZSB8IFRvb2x0aXBDb250ZW50UmVuZGVyZXI7XG59XG5cbmNvbnN0IGNsYW1wID0gKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT5cbiAgTWF0aC5taW4oTWF0aC5tYXgodmFsdWUsIG1pbiksIG1heCk7XG5cbmNvbnN0IGdldENvbnRlbnQgPSAoXG4gIGNvbnRlbnQ6IFJlYWN0Tm9kZSB8IFRvb2x0aXBDb250ZW50UmVuZGVyZXIgfCB1bmRlZmluZWQsXG4gIHBheWxvYWQ/OiBUb290aERldGFpbFxuKSA9PiB7XG4gIGlmICghY29udGVudCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gdHlwZW9mIGNvbnRlbnQgPT09IFwiZnVuY3Rpb25cIiA/IGNvbnRlbnQocGF5bG9hZCkgOiBjb250ZW50O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIE9kb250b2dyYW1Ub29sdGlwKHtcbiAgYWN0aXZlLFxuICBwYXlsb2FkLFxuICBwb3NpdGlvbixcbiAgY29udGVudCxcbn06IE9kb250b2dyYW1Ub29sdGlwUHJvcHMpIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2Nvb3Jkcywgc2V0Q29vcmRzXSA9IHVzZVN0YXRlPHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9IHwgbnVsbD4oXG4gICAgbnVsbFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCEoYWN0aXZlICYmIHJlZi5jdXJyZW50ICYmIHBvc2l0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRvb2x0aXBCb3ggPSByZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB7IHgsIHkgfSA9IHBvc2l0aW9uO1xuXG4gICAgY29uc3QgbWF4TGVmdCA9IE1hdGgubWF4KFxuICAgICAgVklFV1BPUlRfUEFERElORyxcbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIC0gdG9vbHRpcEJveC53aWR0aCAtIFZJRVdQT1JUX1BBRERJTkdcbiAgICApO1xuICAgIGNvbnN0IGxlZnQgPSBjbGFtcCh4IC0gdG9vbHRpcEJveC53aWR0aCAvIDIsIFZJRVdQT1JUX1BBRERJTkcsIG1heExlZnQpO1xuXG4gICAgY29uc3QgbmV4dFRvcCA9IHkgLSB0b29sdGlwQm94LmhlaWdodCAtIEFSUk9XX09GRlNFVDtcbiAgICBjb25zdCB0b3AgPSBuZXh0VG9wIDwgVklFV1BPUlRfUEFERElORyA/IHkgKyBBUlJPV19PRkZTRVQgOiBuZXh0VG9wO1xuXG4gICAgc2V0Q29vcmRzKHsgbGVmdCwgdG9wIH0pO1xuICB9LCBbYWN0aXZlLCBwb3NpdGlvbiwgY29udGVudCwgcGF5bG9hZF0pO1xuXG4gIGlmICghKGFjdGl2ZSAmJiBwYXlsb2FkKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT1cIm9kb250b2dyYW0tdG9vbHRpcFwiXG4gICAgICBzdHlsZT17e1xuICAgICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgYmFja2dyb3VuZDogXCJ2YXIoLS1vZG9udG9ncmFtLXRvb2x0aXAtYmcsIHJnYmEoMCwwLDAsMC44NSkpXCIsXG4gICAgICAgIGNvbG9yOiBcInZhcigtLW9kb250b2dyYW0tdG9vbHRpcC1mZywgI2ZmZilcIixcbiAgICAgICAgcGFkZGluZzogXCI2cHggMTBweFwiLFxuICAgICAgICBib3JkZXJSYWRpdXM6IFwiNnB4XCIsXG4gICAgICAgIGZvbnRTaXplOiBcIjEycHhcIixcbiAgICAgICAgbGluZUhlaWdodDogMS4zLFxuICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICB6SW5kZXg6IDEwMDAsXG4gICAgICAgIGxlZnQ6IGNvb3Jkcz8ubGVmdCA/PyAtOTk5OSxcbiAgICAgICAgdG9wOiBjb29yZHM/LnRvcCA/PyAtOTk5OSxcbiAgICAgICAgb3BhY2l0eTogY29vcmRzID8gMSA6IDAsXG4gICAgICAgIHRyYW5zaXRpb246IFwib3BhY2l0eSAwLjE1cyBlYXNlXCIsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtnZXRDb250ZW50KGNvbnRlbnQsIHBheWxvYWQpID8/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8ZGl2PlRvb3RoOiB7cGF5bG9hZC5ub3RhdGlvbnMuZmRpfTwvZGl2PlxuICAgICAgICAgIDxkaXY+VHlwZToge3BheWxvYWQudHlwZX08L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgVW5pdmVyc2FsOiB7cGF5bG9hZC5ub3RhdGlvbnMudW5pdmVyc2FsfSwgUGFsbWVyOntcIiBcIn1cbiAgICAgICAgICAgIHtwYXlsb2FkLm5vdGF0aW9ucy5wYWxtZXJ9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwib2RvbnRvZ3JhbS10b29sdGlwLWFycm93XCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgIGJvdHRvbTogXCItNnB4XCIsXG4gICAgICAgICAgbGVmdDogXCI1MCVcIixcbiAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxuICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICBib3JkZXJMZWZ0OiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuICAgICAgICAgIGJvcmRlclJpZ2h0OiBcIjZweCBzb2xpZCB0cmFuc3BhcmVudFwiLFxuICAgICAgICAgIGJvcmRlclRvcDpcbiAgICAgICAgICAgIFwiNnB4IHNvbGlkIHZhcigtLW9kb250b2dyYW0tdG9vbHRpcC1iZywgcmdiYSgwLCAwLCAwLCAwLjg1KSlcIixcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iLCAiZXhwb3J0IGNvbnN0IHRlZXRoUGF0aHMgPSBbXG5cdHtcblx0XHRuYW1lOiBcIjFcIixcblx0XHR0eXBlOiBcIkNlbnRyYWwgSW5jaXNvclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTczLjk1MSAxLjY5OGMtMi4xOTguMTYtNS4zMDIuODYyLTUuMzAyLjg2MnMtNS41MzEgMS4wMjUtNy43ODEgMi4yN2MtMi40MDMgMS4zMzMtNS41NTMgMy4yOTktNi4wMTMgNS4yNTgtLjQzMiAxLjg0LS43OCA0LjczNC0uNDkxIDYuODMybC4wMjcuMmMuMzQ4IDIuNTI3Ljg2NSA2LjI4IDEuMjM5IDEwLjMxNi4xODYgMi0uMTAxIDMuMjEuNzUxIDYuMTYuODk1IDMuMSAxLjM5NSA0LjU3MyAyLjAxMyA1LjY4Ny42NDYgMS4xNjQgMS40OTMgMi4wODcgMi4wMyAzLjI4Ljg2NiAxLjkyNCAyLjM5MyA0LjI5IDMuODcgNi4xYTQ4LjgwNSA0OC44MDUgMCAwIDAgMi4zNiAyLjY2M2MxLjAxNiAxLjA3OCAyLjgxOSAzLjExIDMuODk4IDQuMzMxIDEuNTI2IDEuNzI3IDMuMDc2IDMuMjQ4IDQuNDIzIDMuNzQyIDEuMjE3LjQ0NiAyLjcwOS42NDIgMy43OTMuOTM2IDEuMzY5LjM3MiAyLjQ5NC42MzggNC41OTcgMCAxLjU0NS0uNDY4IDIuNzI1LS42MjEgNC4zNzItMi40MjQgMi4wNjQtMi4yNTggMi44NDYtMy41MTcgMy41MTItNC43NDYgMS4wNjUtMS45NjQgMi41MjQtNC42NDggMy41NDEtNi40MjIuNjExLTEuMDY4IDIuMjIxLTMuMDg5IDQuMDg2LTguODQ1IDEuNTQtNC43NTIgMi4zNjctNy43NiAyLjczMS04Ljk5NC40MTUtMS40MDggMS4wNzktMy41ODMgMS4zNTUtNi4xOTYuNDQtNC4xNzYgMS4xMTQtNy40ODIgMS4wNjItMTEuMDI2LS4wNDQtMy4wNDYuMTA0LTUuMDQtMS4wNjUtNi4zMDYtLjk1LTEuMDI5LTEuOTg4LTIuMDAxLTMuMzA2LTIuNTM0LTEuOTU5LS43OS0zLjc3NS0xLjM1OC01LjI5OC0xLjU5Mi0xLjM1MS0uMjA3LTcuMDUtLjM1LTExLjIxOS0uMDU3LTEuNTY3LjExLTMuNjEuMDk3LTkuMTg1LjUwNVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTg4LjI2OSA1MC4yMTVjMTkuMjc1LTQxLjg2NyAxMC43NjYtNDMuNjEyIDQuOTM3LTQ0LjY4NC01LjgyOS0xLjA3My0yOC40NTUgMi41My0yOS43MiAyLjgxNy0uNDQyLjIxOC04LjkxMSAwLTQuNzY3IDE5LjU0IDMuNDE2IDE2LjEwNSAxNi4xOTMgMjYuNTk2IDE3LjI0NCAyNy4yNjUgMy4xNDggMi4wMDMgOC44MzcgMi41OTUgMTIuMzA2LTQuOTM4WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTYwLjQ3MiAxNC43MjdjLjM5Mi0uNDAyIDQuMzE3LTMuMzA5IDguOTQxLTUuNDcgMy4wOTctMS40NDggNy43NzMtMS42MjkgMTEuMjA3LTEuNzQ5IDguNzU5LS4zNjUgMTAuMDA0LjkxIDEyLjYzNyAxLjQ5NS41NjIuMTM5LjkwOS4yNzYgMS43NzEuNTk1XCIsXG5cdH0sXG5cblx0e1xuXHRcdG5hbWU6IFwiMlwiLFxuXHRcdHR5cGU6IFwiTGF0ZXJhbCBJbmNpc29yXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTEzNS4wMTYgNjAuNDFjMy40NDMgMS4zNTUgNy44MzQgMi43MyA5LjYwMSAyLjM0NiA0LjE4NS0uOTEgNy4wNDQtNC4wMTcgOC4xMjMtOC4xNTIgMi4wNjktNy45MjcgMi4yNDktMTYuMjg4IDEuOTk1LTI0LjQzNi0uMTEzLTMuNTk2LjcyLTE2LjgxLTQuMTg0LTE4LjQ0NC04LjEzNS02LjE0LTMyLjA4OC40OTQtMzYuOTc5IDguMDU1LTUuMDEzIDcuNzUxLjg3OCAyMS4xMzEgNS41NiAyNy43MjggMy44NjIgNS40NCA5LjcxNCAxMC40NzQgMTUuODg0IDEyLjkwM1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTM0LjY1IDU1LjM4NmMyLjczMiAxLjA3NiA2LjIxNyAyLjE2NyA3LjYyIDEuODYyIDMuMzIxLS43MjMgNS41OS0zLjE4OCA2LjQ0Ni02LjQ3IDEuNjQyLTYuMjkgMS43ODYtMTIuOTI3IDEuNTgzLTE5LjM5My0uMDg5LTIuODU0LjU3Mi0xMy4zNDItMy4zMi0xNC42MzgtNi40NTYtNC44NzMtMjUuNDY2LjM5Mi0yOS4zNDggNi4zOTMtMy45NzkgNi4xNTIuNjk2IDE2Ljc3IDQuNDEzIDIyLjAwNiAzLjA2NCA0LjMxNyA3LjcwOSA4LjMxMyAxMi42MDYgMTAuMjRaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xMjEuNTY5IDI4Ljk1MmMuNTUxLS45ODQgNi4zNTQtOC4yMTQgMTIuODY2LTkuMDQ1IDMuMjM4LS40MTMgMTAuNjE5LS4xNyAxMS44MzggMFwiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCIzXCIsXG5cdFx0dHlwZTogXCJDYW5pbmVcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNNzcuNjMgNjQuMjM2YzEuNjkyIDEuNDAxIDE1LjUxNiAxNC41ODMgMzQuNjk4IDE2LjkwMyA1LjU2OS42NzQgMTUuMDU4LTcuMTg0IDE1Ljc4OS0xMi44OSAxLjMzNS0xMC40MjMtMTIuNDQ0LTI5LjIwNS0yMS45NjUtMzMuNzAzLTQuNTQyLTIuMTQ1LTI1Ljg5Mi00LjAzOS0yOC41MjMgMi45MzktMi40NzEgNi41NTctNi41OTYgMjEuMjkgMCAyNi43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEyMy4yODUgNjYuMjY3YzEuMDcyLTguMzY4LTEwLjIzNC0yMy45NC0xNy45OS0yNy42MDMtMy43Mi0xLjc1Ny0yMS4yMDYtMy4zMDgtMjMuMzYgMi40MDctMS43NTcgNC42Ni00LjA5IDEzLjI4NC0yLjMwNiAxOC4xNyA0LjE1IDExLjM2IDQwLjg5NyAyOC41NzMgNDMuNjU2IDcuMDI2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk04Mi44NCA2MC4wNDNjLS4wMS0uODU1LS4xOTMtNC42My4yNTYtOC4xMi42NjctNS4xODUuNzAzLTUuODY2IDEuMjktOC4xMDYuNDM3LTEuNjY2IDIuMDgzLTQuOTEgMTcuNDg3LTMuNzQ4XCIsXG5cdFx0XHRcIk0xMDEuNDM4IDY4LjQ5Yy4zNzYtLjA0NSAyLjI4NC01LjExMiA5LjQ5OC02LjM0NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjRcIixcblx0XHR0eXBlOiBcIkZpcnN0IFByZW1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTkzLjY4NCAxMDguNzQ4Yy03LjQ5OCAzLjM5Ny0zNS4zNjgtNy4zOTctMzUuNTk2LTcuNDQxLTEuNDI5LS44NDItMTIuMjE1LTIuODU0LTkuMDY4LTI5LjQxNC4xNDctMS4yMzggMS4zNTMtMi4wNSAyLjIxOC0yLjU1Ni45NTYtLjU1OSAzLjE1Ny0xLjU5NSA3LjU4Ny0yLjc5NCAyLjcwNy0uNzM0IDEzLjg1Ni0zLjU0IDE4LjY3NC0uOTIgMi4yMTYgMS4yMDYgNi4zNjMgNC4xMTcgMTAuNDczIDcuMDM2IDQuMTEgMi45MTkgMTAuOTU4IDguNzE1IDEzLjMyNyAxMS4zMzggMi4yOTEgMi41MzcgMTAuMzI0IDEzLjc1LTcuNjE1IDI0Ljc1MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOTEuNDk1IDEwNS45MzFjLTYuNTI4IDIuOTU4LTMwLjc5My02LjQ0LTMwLjk5Mi02LjQ3OC0xLjI0My0uNzM0LTEwLjYzNC0yLjQ4Ni03Ljg5NS0yNS42MS4xMjgtMS4wNzggMS4xNzgtMS43ODUgMS45MzItMi4yMjUuODMyLS40ODcgMi43NDgtMS4zOSA2LjYwNS0yLjQzMyAyLjM1Ny0uNjM5IDEyLjA2NC0zLjA4MiAxNi4yNTgtLjggMS45MyAxLjA1IDUuNTQgMy41ODQgOS4xMiA2LjEyNSAzLjU3OCAyLjU0MSA5LjU0IDcuNTg4IDExLjYwMyA5Ljg3MiAxLjk5NCAyLjIwOCA4Ljk4NyAxMS45NzEtNi42MyAyMS41NDlaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTU1LjIzNCA5Mi40MTRjLjAyMi0uMjQyLjA2LTEuNDY5Ljg3NS03Ljc5LjQ2LTMuNTczIDEuODEzLTUuNDkgMy4xMzQtNy4wMSAxLjE4LTEuMzU5IDMuNTI0LTMuMTkzIDUuODgtNC4zNjUgMS40Ni0uNjMyIDMuMDI5LTEuMTI2IDYuMDQ0LTEuNzc2LjgyNi0uMTM4IDEuNDc3LS4xNzUgMi41MjYtLjM5NVwiLFxuXHRcdFx0XCJNODcuMDIgMTAxLjM4N2M0LjE4My0uNzkyIDguNzQ3LTkuNzc0IDguNzQ3LTkuNzc0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNVwiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIFByZW1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zMy4zOTYgMTI3LjY1MmMtMS4wODgtMi43MTMtNC40ODYtMTEuODUyLTMuOTYyLTE1LjI0Ni40NzctMy4wODUgMTQuNDctMTIuMDA4IDIzLjU5NS0xMi4wMDggMi4xNzggMCAyNS4xNTcgNi42NjUgMzUuMDczIDE3LjkwOCA0LjU1MSA5LjMyNC0xLjYyNCAyMy4zMzktMTYuMjIgMjMuMzM5LTguMTkzIDAtMjMuNTYzLTEuODk3LTI1LjQ1My0yLjIxNS0xLjg5Ni0uMzE5LTQuMzE3LTEuMTI4LTYuNTk2LTIuMzIxLTEuMjg5LS42NzUtMi0xLjAzNS0yLjQ3OC0xLjY0Ny0uNjU1LS44NC0yLjEwMS0zLjE3OC0zLjk2LTcuODFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjgzNyAxMjYuNzc4Yy0uOTQ1LTIuMzU2LTMuODk1LTEwLjI4OS0zLjQ0LTEzLjIzNS40MTQtMi42NzkgMTIuNTYxLTEwLjQyNCAyMC40ODMtMTAuNDI0IDEuODkgMCAyMS44MzcgNS43ODUgMzAuNDQ1IDE1LjU0NSAzLjk1MSA4LjA5NC0xLjQxIDIwLjI2LTE0LjA4IDIwLjI2LTcuMTEyIDAtMjAuNDU0LTEuNjQ3LTIyLjA5NS0xLjkyMi0xLjY0NS0uMjc3LTMuNzQ3LS45OC01LjcyNS0yLjAxNS0xLjEyLS41ODYtMS43MzctLjg5OS0yLjE1MS0xLjQzLS41Ny0uNzI5LTEuODI1LTIuNzU5LTMuNDM3LTYuNzc5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk00MC44IDEzMS4yMjFjLTQuMDAzLTIwLjI3OCA4LjQ0Mi0yMC45NzQgMTMuNzc5LTIzLjY5MlwiLFxuXHRcdFx0XCJNNzQuMDU2IDEzNC43MjljNi4zNS00LjI2NCA2LjM0My0xMC41MDMgNi40ODktMTEuNDQ4XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNlwiLFxuXHRcdHR5cGU6IFwiRmlyc3QgTW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTM1LjUzOSAyMDMuMzIzYy0zLjM2My4xOTYtMzIuNzg4LTQuMDItMjguNDk1LTQyLjQ2NSAzLjYzMS0yMC40MDggMjYuMjEtMjMuMzY0IDI5LjU1Ny0yMi45MTIgOS4wMTktLjc0NSAyNS43MjcgNi43NDMgMjkuMjU1IDkuNDAzIDQuNTQ2IDMuNDI3IDcuMzg0IDUuNjgxIDguNjA2IDcuMDkyIDIuNDM2IDIuODE0IDQuNDk5IDUuMTEgNC43IDYuMzEzLjI4NCAxLjcwMyAxLjMxNyA0LjcyLTIuMjQ4IDkuNjg3LTIuNDUzIDMuNDE4LTIuOTU3IDYuNjYzLTIuODU2IDEwLjIyMy4xMTggNC4xODUuMzcgOS43NTQtLjUyNCAxMS42My0uNTkyIDEuMjQ0LS45ODQgMi42MjctMi4zNzUgMy4zOTItMi4wMTUgMS4xMDgtNC42MSAyLjMxNy0xMS45MyAzLjc0OC0zLjYyMy43MDgtOS4zMDkgMS44My0xMi40MDEgMi4yOTItNS4xOS43NzctOC40MjMgMS40My0xMS4yODkgMS41OTdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjUxNSAxOTkuMDg1Yy0yLjkyNy4xNy0yOC41NC0zLjQ5OS0yNC44MDMtMzYuOTYzIDMuMTYtMTcuNzY0IDIyLjgxNC0yMC4zMzcgMjUuNzI3LTE5Ljk0NCAxMC44Mi0uODkzIDI1LjcwOSA1Ljk4OSAzMi45NTUgMTQuMzU4IDIuMTIgMi40NSAzLjkxNyA0LjQ0OCA0LjA5MSA1LjQ5NS4yNDggMS40ODIuNTEzIDQuMjY4LTIuNTkgOC41OTEtMi4xMzUgMi45NzUtMS45NCA1LjY0MS0xLjg1MiA4Ljc0LjA5NiAzLjQxNyAxLjQwMiAxMC45MTctMi41MjMgMTMuMDc2LTEuNzU0Ljk2NC00LjAxMyAyLjAxNi0xMC4zODQgMy4yNjEtNi43NjIgMS4zMjItMTMuNzI4IDIuOTg0LTIwLjYyMSAzLjM4NlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzcuMTMyIDE5Mi4xNDdjMS4yODgtLjM3MiAzLjM4NS0yLjA3MSA1LjE4My01LjQzOG05LjAwOC0zNS45OGMxLjE4OCAxLjIyNCAyLjExNCA2LjM4NS4xNSAxMS4zNjNtMCAwYy0xLjUzNyAzLjg5OS00Ljk0NCA5LjM3OC0xMS4xOTUgOS4zNzggNi44NzcuMzIxIDQuNjUxIDEwLjM0MyAyLjAzNyAxNS4yMzltOS4xNTktMjQuNjE3YzEuNDctMi41ODkgNC45NjYtNy41NzIgOC4wNjgtOC4yMTdtLTE3LjIyNyAzMi44MzRjLS4xODYgMi4zNDguMDQ0IDcuMzUxIDIuNDU4IDguNTg0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiN1wiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTQuOTY5IDI0OC4xMzJjLTEuMTg4LTIuNzQtMTQuNzA4LTI3LjE1MiAxMi4zMTktNDIuMTM5IDEuODM2LTEuMDE4IDI0LjUwOC03LjcxMSA0NS4yOCAxMC44NzQgMi4yNzQgMi4wMzUgNC40NTUgMy41NzkgNS40MDMgNS4xMDIgMS40MTQgMi4yNzEgMi4xMjggMy40MzUgMS42ODcgNS42MDYtLjM4NyAxLjkwMS0xLjU0IDMuNjQyLTMuNzcgNy43MTEtMS4xMjcgMi4wNTYtMS44NTQgMy40MjctMS4zNjkgNy44MjQuMTc1IDEuNTkuNjI3IDMuOTM1LjA0OCA2LjYwMy0uNDY2IDIuMTQ3LS45NDEgMy41NjctMi41NzggNS4wMDYtMi41MyAyLjIyNC01LjMwNyAzLjY0NS05LjA3NiA0LjM1LTEuMDkxLjIwNC0zLjEzMy44MTEtNy41MjUgMS43MDItMi43NzYuNTYzLTYuNjE5IDEuMjM0LTEwLjA5IDEuNjU0LTMuNDcuNDItNi40NzguNjM4LTguNjEyLjYzNi0zLjM1My0uMDAyLTYuNzM0LjAzMS05LjQ2NS0xLjQ4bC0uMDE4LS4wMWMtMS42NTQtLjkxNS00LjA3Ni0yLjI1NS02LjI0NS00LjczMi0yLjI1OC0yLjU3OS00LjU5MS01LjQ4Mi01Ljk4OS04LjcwN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOC43OTkgMjQ2LjI4Yy0xLjEyOC0yLjM1Mi0xMi44NDMtMjMuNzA5IDEwLjc1Ni0zNi43OTYgMS42MDQtLjg4OSAyMS40LTYuNzMyIDM5LjUzOCA5LjQ5NiAxLjk4NiAxLjc3NyAzLjg5IDMuMTI1IDQuNzE3IDQuNDU0IDEuMjM1IDEuOTgzIDEuODU5IDMgMS40NzMgNC44OTUtLjMzNyAxLjY2LTEuMzQzIDMuMTgtMy4yOTEgNi43MzQtLjk4NCAxLjc5NS0xLjYxOSAyLjk5Mi0xLjE5NiA2LjgzMS4xNTQgMS4zODkuNTQ4IDMuNDM2LjA0MiA1Ljc2Ni0yLjg3MiAxMy4yMzEtMzEuMjEzIDExLjY1Ny0zMy4wNzYgMTEuNjU2aC0uMDA3Yy0yLjkzNi0uMDAzLTEyLjcxNC0uMDEtMTguOTU2LTEzLjAzNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzIuMTQgMjU1LjA5MWMuNzQ4LS4zMDMgMi4yOC0yLjM3OCAzLjEwMy01LjcyMW0tMS45OS0zNS40ODFjMy4wMDkgMS4zNjMgNC4wMTUgNC44ODggMy43MzYgOC43MTZtMCAwYy0uNDI0IDUuODM1LTMuODMyIDEyLjM3Ny03LjY4MyAxMy4wNDkgNi45NTQgMS4xOCA3LjI0NCA4LjQxNCA1LjkzNyAxMy43MTZtMS43NDYtMjYuNzY1Yy4zMjctMi4yNCAxLjgyLTYuOTU4IDUuMTktNy45MW0tNi45MzYgMzQuNjc1Yy42NSAyLjE3MiAyLjU1IDYuNTA3IDQuOTY3IDYuNDcxXCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiOFwiLFxuXHRcdHR5cGU6IFwiVGhpcmQgTW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNLjg5NSAyOTEuMzMxYy0uMzYyLTEuMjE4LS4xMTYtMy40MTEtLjE2NC0zLjg5Mi0uMDM1LS4zNC4xMjQtMy40MzguNzI3LTUuNTU4IDEuMDQtMi44MiAxLjgwOC00Ljc0IDIuNTczLTUuNzUyIDEuNDEzLTEuODcyIDMuOTEzLTQuNzY5IDcuMTM1LTcuMiAyLjI4OC0xLjcyNiA1LjAwMy0zLjE4NyA4LjEzMy00LjMzOSAyLjI0OS0uODI4IDQuMzYyLTEuNTAyIDcuNzMyLTEuNjkzIDIuMTc1LS4xMjMgNS4yNS0uMTU1IDguNzgyLjEwOHM3LjQwMy44MDQgMTAuMzUzIDEuMzk3IDQuOTIgMS4yMTggNi42NDEgMS44OTNjMS43MjIuNjc1IDMuMTQ4IDEuMzg5IDMuOTcyIDEuNzY4IDEuNTEuNjk2IDIuOSAxLjIwOSAzLjgyNCAyLjE0IDEuODU3IDEuODcyIDIuNjE3IDMuMzM0IDIuOTEyIDQuODA3LjI1NCAxLjI3LjI1MiAzLjIxNi0uMjI0IDQuNTMxLS42NzIgMS44NTktMS40NjggMi44NTYtMS40NjggNS43IDAgMy44NTcgMS43MTMgNS45NSAxLjkxNSA4LjM1Ni4zMzcgNC4wMDguMzE3IDYuMTY4LS40MiA3LjQ4NS0uNTkxIDEuMDU3LTEuNTMyIDIuMzgzLTUuNTQxIDUuMDg4LTEuMTczLjc5MS0yLjY4NCAxLjYzNC02LjY0MyAzLjQyNC0yLjc2MiAxLjI0OC02Ljk3NyAzLjEwOC05LjIwNSA0LjEwNy0yLjQ3MyAxLjEwOS00LjY2NyAyLjIyNi04LjIzNCAzLjA1My0yLjU0LjU4OS01LjYzMS43ODQtOS4wMTIuMTg2LTIuMzA3LS40MDgtNS40NDktMS4xODMtOS4xMDctMy44MjctMy45MjgtMi44MzktNi41My00Ljg5Ny03LjQ5Ny02LjA0MS0uODY2LTEuMDI2LTEuNzE0LTIuMDgyLTIuNDEyLTMuNTU1LS45MDQtMS45MDUtMi4yNzItMy42NDMtMy01LjkxNi0uODQ2LTIuNjMzLTEuMTY3LTQuMjMzLTEuNzcyLTYuMjdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTQuNzMyIDI5MS4xNzVjLS4zMTctMS4wNy0uMTAxLTIuOTk0LS4xNDQtMy40MTYtLjAzLS4yOTkuMTEtMy4wMTkuNjM4LTQuODguOTE0LTIuNDc2IDEuNTg4LTQuMTYxIDIuMjYtNS4wNSAxLjI0LTEuNjQzIDMuNDM0LTQuMTg3IDYuMjYzLTYuMzIxIDIuMDA5LTEuNTE1IDQuMzkzLTIuNzk3IDcuMTQtMy44MDkgMS45NzQtLjcyNyAzLjgzLTEuMzE4IDYuNzg4LTEuNDg2IDEuOTEtLjEwOCA0LjYxLS4xMzYgNy43MS4wOTUgMy4xLjIzMSA2LjQ5OC43MDYgOS4wODggMS4yMjYgMi41OS41MjEgNC4zMTkgMS4wNyA1LjgzIDEuNjYyIDEuNTEyLjU5MiAyLjc2NCAxLjIyIDMuNDg3IDEuNTUzIDEuMzI2LjYxIDIuNTQ3IDEuMDYxIDMuMzU3IDEuODc4IDEuNjMgMS42NDMgMi4yOTggMi45MjcgMi41NTcgNC4yMi4yMjMgMS4xMTUuMjIxIDIuODI0LS4xOTYgMy45NzgtLjU5IDEuNjMyLTEuMjkgMi41MDctMS4yOSA1LjAwNCAwIDMuMzg1IDEuNTA0IDUuMjIzIDEuNjgyIDcuMzM1LjI5NiAzLjUxOS4yNzggNS40MTYtLjM2OSA2LjU3MS0uNTIuOTI4LTEuMzQ1IDIuMDkzLTQuODY1IDQuNDY3LTEuMDMuNjk1LTIuMzU1IDEuNDM1LTUuODMxIDMuMDA2LTIuNDI1IDEuMDk2LTYuMTI2IDIuNzI4LTguMDgyIDMuNjA2LTIuMTcuOTczLTQuMDk2IDEuOTU0LTcuMjI4IDIuNjgtMi4yMjkuNTE3LTQuOTQ0LjY4OC03LjkxMi4xNjMtMi4wMjQtLjM1OC00Ljc4My0xLjAzOC03Ljk5NS0zLjM1OS0zLjQ0OC0yLjQ5My01LjczMi00LjI5OS02LjU4LTUuMzA0LS43NjEtLjkwMS0xLjUwNS0xLjgyNy0yLjExOS0zLjEyMS0uNzkzLTEuNjcyLTEuOTk0LTMuMTk4LTIuNjM0LTUuMTkzLS43NDItMi4zMTItMS4wMjQtMy43MTctMS41NTUtNS41MDVaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMxLjczMiAzMDkuNTExYzEuNDYyLS44OTcgMi41ODUtMy42NzIgMi45My02LjcyNm0tMi45My0yOS40NTNjMi4xMTQgMS4wOTIgMy40OSA0LjQ0IDMuNjEgOC4wNjJtNC4xMzMtNy41OGMtMS4zNTMgMS4wNTgtNC4wNzQgNC4wNTctNC4xMzQgNy41OG0wIDBjLjE1NSA0LjY5My0xLjc5NyA5Ljg0Ni02Ljk4MyAxMS4xNTIgNS4zNzktLjM1NyA2Ljg1OSA1LjMwNSA2LjMwMyAxMC4yMzltNC41NTcgNy4yNGMtMS42NzgtLjY3MS00LjkzOC0zLjA1OC00LjU1Ny03LjI0XCIsXG5cdFx0XSxcblx0fSxcbl07XG5cbmV4cG9ydCBjb25zdCBOZXdUZWV0aFBhdGhzID0gW1xuXG5cdHtcblx0XHRcIm5hbWVcIjogXCIxXCIsXG5cdFx0XCJ0eXBlXCI6IFwiQ2VudHJhbCBJbmNpc29yXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk0zOTcuOTkyIDUxLjMzOUMzOTYuMTI2IDUxLjE4NDEgMzkzLjQ5NSA1MC41NjE3IDM5My40OTUgNTAuNTYxN0MzOTMuNDk1IDUwLjU2MTcgMzg4LjgwNCA0OS42NDUzIDM4Ni45MDMgNDguNTY3N0MzODQuODczIDQ3LjQxNjIgMzgyLjIxMyA0NS43MTk1IDM4MS44MzggNDQuMDUxNEMzODEuNDg3IDQyLjQ4MzYgMzgxLjIxNiA0MC4wMjI2IDM4MS40NzggMzguMjQzTDM4MS41MDMgMzguMDcyN0MzODEuODIgMzUuOTI4NyAzODIuMjkgMzIuNzQ1MiAzODIuNjQyIDI5LjMxOTFDMzgyLjgxNyAyNy42MjA3IDM4Mi41ODMgMjYuNTkwNSAzODMuMzMyIDI0LjA5MTFDMzg0LjExOCAyMS40NjUyIDM4NC41NTUgMjAuMjE3OSAzODUuMDkgMTkuMjc2NkMzODUuNjQ4IDE4LjI5MzcgMzg2LjM3NSAxNy41MTU5IDM4Ni44NDEgMTYuNTA3MkMzODcuNTkzIDE0Ljg4MDIgMzg4LjkxIDEyLjg4MjIgMzkwLjE4IDExLjM1NzNDMzkwLjkwMiAxMC40OTA1IDM5MS42MDIgOS43NDQ2MSAzOTIuMjA3IDkuMTE0NTRDMzkzLjA4IDguMjA2NjkgMzk0LjYyOSA2LjQ5NTkgMzk1LjU1NiA1LjQ2NzE5QzM5Ni44NjYgNC4wMTMyOSAzOTguMTk2IDIuNzMzNjQgMzk5LjM0NCAyLjMyNTQ3QzQwMC4zODIgMS45NTY0OCA0MDEuNjUyIDEuODAyODkgNDAyLjU3NSAxLjU2MTkyQzQwMy43NDEgMS4yNTc1MSA0MDQuNyAxLjA0MDQxIDQwNi40ODEgMS41OTk4OEM0MDcuNzg5IDIuMDEwNzggNDA4Ljc5IDIuMTUwOTMgNDEwLjE3NSAzLjY5NThDNDExLjkwOSA1LjYzMTQ3IDQxMi41NjMgNi43MDc5NSA0MTMuMTE5IDcuNzU3NDdDNDE0LjAwNyA5LjQzNTM0IDQxNS4yMjQgMTEuNzI3MyA0MTYuMDczIDEzLjI0MzVDNDE2LjU4NCAxNC4xNTU0IDQxNy45MzUgMTUuODg1OSA0MTkuNDcxIDIwLjc5MTlDNDIwLjczOSAyNC44NDIyIDQyMS40MTcgMjcuNDA0OCA0MjEuNzE2IDI4LjQ1NjRDNDIyLjA1NyAyOS42NTYyIDQyMi42MDIgMzEuNTA5MyA0MjIuODE1IDMzLjczMTNDNDIzLjE1NCAzNy4yODMyIDQyMy42OTkgNDAuMDk3OCA0MjMuNjI1IDQzLjEwNzdDNDIzLjU2MiA0NS42OTU4IDQyMy42NzEgNDcuMzkwNSA0MjIuNjY3IDQ4LjQ1NjdDNDIxLjg1MiA0OS4zMjI3IDQyMC45NjIgNTAuMTQwMyA0MTkuODM3IDUwLjU4MTVDNDE4LjE2NiA1MS4yMzY3IDQxNi42MTkgNTEuNzA0MyA0MTUuMzIzIDUxLjg5MDFDNDE0LjE3NCA1Mi4wNTQ4IDQwOS4zMyA1Mi4xMjkyIDQwNS43OTEgNTEuODQ0NUM0MDQuNDYxIDUxLjczNzUgNDAyLjcyNSA1MS43MzE5IDM5Ny45OTIgNTEuMzM5WlwiLFxuXHRcdFwic2hhZG93UGF0aFwiOiBcIk00MTAuNTYyIDEwLjIzOTNDNDI2LjU4OCA0NS45Njk4IDQxOS4zNDQgNDcuMzgxMyA0MTQuMzgzIDQ4LjI0MzZDNDA5LjQyMSA0OS4xMDU4IDM5MC4yMjkgNDUuODU2NiAzODkuMTU2IDQ1LjYwMTNDMzg4Ljc4MyA0NS40MTIyIDM4MS41ODYgNDUuNTI2OCAzODUuMjcgMjguOTYxM0MzODguMzA3IDE1LjMwNyAzOTkuMjUgNi41MDA4IDQwMC4xNDkgNS45NDEyNUM0MDIuODQgNC4yNjU0IDQwNy42NzggMy44MTAyNSA0MTAuNTYyIDEwLjIzOTNaXCIsXG5cdFx0XCJsaW5lSGlnaGxpZ2h0UGF0aFwiOiBcIk0zODYuNjUgNDAuMTU2OEMzODYuOTc5IDQwLjUwMTMgMzkwLjI5IDQzLjAwMzggMzk0LjIgNDQuODc5QzM5Ni44MTkgNDYuMTM0NyA0MDAuNzkgNDYuMzI3NSA0MDMuNzA3IDQ2LjQ1ODJDNDExLjE0NSA0Ni44NDIyIDQxMi4yMTQgNDUuNzY4OCA0MTQuNDU2IDQ1LjI5NDRDNDE0LjkzNCA0NS4xODA5IDQxNS4yMyA0NS4wNjc1IDQxNS45NjUgNDQuODAzN1wiXG5cdH0sXG5cdHtcblx0XHRcIm5hbWVcIjogXCIyXCIsXG5cdFx0XCJ0eXBlXCI6IFwiTGF0ZXJhbCBJbmNpc29yXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk0zMzkuMzYyIDUuOTAyMjdDMzQyLjI1NSAzLjcxNDE2IDM0Ni4wMzggMS4yNTc3NCAzNDcuODA3IDEuMTU2ODhDMzUxLjk5NyAwLjkxODA0OSAzNTUuNTE1IDMuMTA2MjIgMzU3LjYyNSA2LjczNjIzQzM2MS42NjggMTMuNjk0MSAzNjQuMDQzIDIxLjU2MDkgMzY1Ljk1MSAyOS4zMzk2QzM2Ni43OTMgMzIuNzcyNyAzNzEuMDY0IDQ1LjA2MSAzNjYuODY2IDQ3Ljg5N0MzNjAuODA1IDU1Ljg0NzIgMzM2LjQ0NCA1NS44Njg0IDMyOS44MzMgNDkuOTk3OUMzMjMuMDU3IDQzLjk4MDUgMzI1LjA5IDI5Ljc2NzUgMzI3Ljc3IDIyLjI5MjFDMzI5Ljk4MSAxNi4xMjgxIDMzNC4xNzggOS44MjQwMyAzMzkuMzYyIDUuOTAyMjdaXCIsXG5cdFx0XCJzaGFkb3dQYXRoXCI6IFwiTTM0MC4zNDEgMTAuNzUzM0MzNDIuNjM3IDkuMDE2NzQgMzQ1LjYzOSA3LjA2NzIxIDM0Ny4wNDQgNi45ODcxN0MzNTAuMzY5IDYuNzk3NjIgMzUzLjE2MSA4LjUzNDI1IDM1NC44MzUgMTEuNDE1MkMzNTguMDQ0IDE2LjkzNzMgMzU5LjkyOSAyMy4xODA3IDM2MS40NDMgMjkuMzU0MkMzNjIuMTEyIDMyLjA3ODggMzY1LjUwMiA0MS44MzE0IDM2Mi4xNjkgNDQuMDgyMkMzNTcuMzU5IDUwLjM5MTggMzM4LjAyNSA1MC40MDg2IDMzMi43NzkgNDUuNzQ5NkMzMjcuNDAxIDQwLjk3MzggMzI5LjAxNCAyOS42OTM4IDMzMS4xNDIgMjMuNzYxQzMzMi44OTYgMTguODY5IDMzNi4yMjcgMTMuODY1OCAzNDAuMzQxIDEwLjc1MzNaXCIsXG5cdFx0XCJsaW5lSGlnaGxpZ2h0UGF0aFwiOiBcIk0zMzQuOTY0IDM5LjIxMzFDMzM1Ljc0MyAzOS45OTk4IDM0My4xMjggNDUuMzE2NyAzNDkuNDk0IDQ0LjM5MDNDMzUyLjY2IDQzLjkyOTcgMzU5LjU2NCA0MS43NTc3IDM2MC42NyA0MS4yNzY3XCJcblx0fSxcblx0e1xuXHRcdFwibmFtZVwiOiBcIjNcIixcblx0XHRcInR5cGVcIjogXCJDYW5pbmVcIixcblx0XHRcIm91dGxpbmVQYXRoXCI6IFwiTTI3NS4yODUgMzYuNzAxNkMyNzUuNDYxIDM0LjgzNTcgMjc1Ljg0OSAxOC41NDczIDI4Ni4wMTggNS41Nzg2N0MyODguOTcxIDEuODEzMjUgMjk5LjQzNCAwLjgyOTA3MSAzMDMuMzE2IDMuODI5ODlDMzEwLjQwOCA5LjMxMTM5IDMxMy40MjYgMjguOTUwNiAzMTAuMzk2IDM3LjQwNTlDMzA4Ljk1MSA0MS40MzkzIDI5Ny4yMTUgNTUuNDU4NyAyOTEuNDIgNTIuODM2NkMyODUuOTc1IDUwLjM3MjcgMjc0LjYgNDMuOTc0MiAyNzUuMjg1IDM2LjcwMTZaXCIsXG5cdFx0XCJzaGFkb3dQYXRoXCI6IFwiTTMwMS41OTggNy45Mzk0NUMzMDcuMjkxIDEyLjM0MDYgMzA5Ljg2NCAyOC41NTEzIDMwNy4zOTYgMzUuNDM5MkMzMDYuMjEyIDM4Ljc0MjcgMjk2LjYwMSA1MC4yMjUgMjkxLjg1NCA0OC4wNzc0QzI4Ny45ODQgNDYuMzI2NSAyODEuMzc2IDQyLjUzMjEgMjc5LjUwNSAzOC41MDg2QzI3NS4xNTYgMjkuMTUzNSAyODYuOTM3IC0zLjM5MjQ3IDMwMS41OTggNy45Mzk0NVpcIixcblx0XHRcImxpbmVIaWdobGlnaHRQYXRoXCI6IFwiTTI4MS4yNTUgMzUuNzEzMkMyODEuNzY2IDM2LjIzNDkgMjgzLjkzMyAzOC42MjI1IDI4Ni4zMDcgNDAuNDU2M0MyODkuODM3IDQzLjE4MTYgMjkwLjI2OSA0My41NzA2IDI5MS45NzQgNDQuNTY3M0MyOTMuMjQzIDQ1LjMwOTEgMjk2LjE5MiA0Ni4yNzI0IDMwNC43ODIgMzYuMjgwMyBNMjg3LjM3OSAxOS40MDEyQzI4Ny42MzIgMTkuMjAxNiAyOTEuODM5IDIxLjEwNjYgMjk2LjkzMyAxNy40OTlcIlxuXHR9LFxuXHR7XG5cdFx0XCJuYW1lXCI6IFwiNFwiLFxuXHRcdFwidHlwZVwiOiBcIkZpcnN0IFByZW1vbGFyXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk0yMzYuOTggNC44Nzg1NEMyMzEuMzQgOC45MTk4OSAyMjcuNDc0IDMzLjgxMjEgMjI3LjQxIDMzLjk5NzFDMjI3LjQyMyAzNS4zOTQ4IDIyNC4zNDYgNDQuMTE1NyAyNDUuMDU5IDUzLjAxMTdDMjQ2LjAyNSA1My40MjY2IDI0Ny4xMjUgNTIuODg4IDI0Ny44NiA1Mi40Njk1QzI0OC42NyA1Mi4wMDczIDI1MC4zNTQgNTAuODM3NiAyNTMuMDk2IDQ4LjExQzI1NC43NzIgNDYuNDQyOSAyNjEuNTE5IDM5LjQ4NzIgMjYxLjYzNyAzNC44NjY1QzI2MS42OTEgMzIuNzQwNiAyNjEuMzE0IDI4LjQ4NjggMjYwLjkxNiAyNC4yNTY1QzI2MC41MTcgMjAuMDI2MiAyNTkuMTcyIDEyLjU4NTEgMjU4LjI1NSA5Ljc1MDJDMjU3LjM3IDcuMDA5MDUgMjUyLjU2OSAtMy41Nzk3NSAyMzYuOTggNC44Nzg1NFpcIixcblx0XHRcInNoYWRvd1BhdGhcIjogXCJNMjM4LjExNCA3LjY2MzQ2QzIzMy4yMDQgMTEuMTgyIDIyOS44MzggMzIuODU0NCAyMjkuNzgyIDMzLjAxNTVDMjI5Ljc5MyAzNC4yMzI0IDIyNy4xMTQgNDEuODI1MiAyNDUuMTQ4IDQ5LjU3MDZDMjQ1Ljk4OSA0OS45MzE3IDI0Ni45NDcgNDkuNDYyOSAyNDcuNTg2IDQ5LjA5ODVDMjQ4LjI5MyA0OC42OTYxIDI0OS43NTggNDcuNjc3NyAyNTIuMTQ2IDQ1LjMwMjlDMjUzLjYwNSA0My44NTE0IDI1OS40NzkgMzcuNzk1NSAyNTkuNTgyIDMzLjc3MjRDMjU5LjYyOSAzMS45MjE1IDI1OS4zMDEgMjguMjE4IDI1OC45NTQgMjQuNTM0OEMyNTguNjA3IDIwLjg1MTcgMjU3LjQzNSAxNC4zNzMxIDI1Ni42MzggMTEuOTA1QzI1NS44NjYgOS41MTgzOCAyNTEuNjg3IDAuMjk5MjU1IDIzOC4xMTQgNy42NjM0NlpcIixcblx0XHRcImxpbmVIaWdobGlnaHRQYXRoXCI6IFwiTTIzMi42OTkgMzkuODI3N0MyMzIuODg1IDM5LjkxMzggMjMzLjc5NiA0MC40MDI4IDIzOC43NTMgNDIuNDcxOUMyNDEuNTU1IDQzLjY0MTYgMjQzLjUyNiA0My40NjIzIDI0NS4xOTIgNDMuMTM5MUMyNDYuNjggNDIuODUwMiAyNDkuMDA3IDQxLjkxMjEgMjUwLjg1NiA0MC42ODZDMjUxLjkzMiAzOS44ODY0IDI1Mi45NTQgMzguOTQ5OSAyNTQuNjk4IDM3LjAyMzFDMjU1LjE0NyAzNi40NzgyIDI1NS40NDkgMzYuMDE4OSAyNTYuMDUyIDM1LjM0NTggTTIzOS41NDUgMTIuODQ0MkMyNDEuODg1IDEwLjEyNTIgMjUwLjM2NiAxMC41NzkzIDI1MC4zNjYgMTAuNTc5M1wiXG5cdH0sXG5cdHtcblx0XHRcIm5hbWVcIjogXCI1XCIsXG5cdFx0XCJ0eXBlXCI6IFwiU2Vjb25kIFByZW1vbGFyXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk0xODYuNDg1IDQ1Ljg5MDVDMTg4LjM5IDQ3LjQ5MTUgMTk0Ljg3OCA1Mi42NjggMTk3Ljc2MiA1My4xNDU3QzIwMC4zODQgNTMuNTgwMSAyMTEuMzE4IDQ0LjYzNDQgMjEzLjc0MyAzNy4yNTRDMjE0LjMyMiAzNS40OTI4IDIxNS4wMzggMTUuMTM4NCAyMDguNTggNC4xMzE1MkMyMDIuMjQ4IC0yLjAyNzAxIDE4OS4yNzMgLTAuNzU2NjU4IDE4NS4zOTUgMTEuMDQ3N0MxODMuMjE4IDE3LjY3MzQgMTgwLjY2OCAzMC42MDggMTgwLjQyMyAzMi4yMjA1QzE4MC4xNzcgMzMuODM4MyAxODAuMTg4IDM2LjAxMTcgMTgwLjU0NyAzOC4xNzE2QzE4MC43NTEgMzkuMzkzMyAxODAuODUzIDQwLjA2NDkgMTgxLjIyMSA0MC42MTM1QzE4MS43MjYgNDEuMzY2MiAxODMuMjMzIDQzLjE1NzQgMTg2LjQ4NSA0NS44OTA1WlwiLFxuXHRcdFwic2hhZG93UGF0aFwiOiBcIk0xODguMTA3IDQzLjM0MDNDMTg5Ljc2MSA0NC43MzAxIDE5NS4zOTMgNDkuMjIzNiAxOTcuODk2IDQ5LjYzODNDMjAwLjE3MiA1MC4wMTU0IDIwOS42NjQgNDIuMjQ5OSAyMTEuNzY5IDM1Ljg0MzJDMjEyLjI3MSAzNC4zMTQzIDIxMi44OTMgMTYuNjQ1MyAyMDcuMjg3IDcuMDkwNTNDMjAxLjc5MSAxLjc0NDQ5IDE5MC41MjcgMi44NDcyNCAxODcuMTYgMTMuMDk0M0MxODUuMjcxIDE4Ljg0NTggMTgzLjA1NyAzMC4wNzQgMTgyLjg0NSAzMS40NzM4QzE4Mi42MzEgMzIuODc4MiAxODIuNjQxIDM0Ljc2NDggMTgyLjk1MyAzNi42Mzk4QzE4My4xMjkgMzcuNzAwMyAxODMuMjE4IDM4LjI4MzIgMTgzLjUzNyAzOC43NTk0QzE4My45NzYgMzkuNDEyOSAxODUuMjg0IDQwLjk2NzggMTg4LjEwNyA0My4zNDAzWlwiLFxuXHRcdFwibGluZUhpZ2hsaWdodFBhdGhcIjogXCJNMTg1LjU2NiAzOC45NTRDMjAwLjkwMiA0Ny41Nzk2IDIwNC43NzIgMzcuNjk5OSAyMDguMzg4IDM0LjEwNjEgTTE5MS41NjYgMTEuMTI2OEMxOTYuNzAyIDcuMTI0NjQgMjAxLjc0NSA4Ljc4NzYyIDIwMi41NDkgOC45MjEwNVwiXG5cdH0sXG5cdHtcblx0XHRcIm5hbWVcIjogXCI2XCIsXG5cdFx0XCJ0eXBlXCI6IFwiRmlyc3QgTW9sYXJcIixcblx0XHRcIm91dGxpbmVQYXRoXCI6IFwiTTEyOC45MDQgNDUuODk0MUMxMzAuNjc2IDQ3LjMwMDEgMTQ1Ljg4NCA2MS45NzU1IDE2Mi4xNDUgNDUuMTQyM0MxNjMuMjQ5IDQzLjk5ODYgMTcyLjU4OSAyOC43MjU1IDE2My4wNjUgOS44ODc5MkMxNjIuMDIyIDcuODI1MTQgMTYxLjMyIDUuOTI3NTggMTYwLjM5MiA0LjkzNTVDMTU5LjAwOCAzLjQ1NTkzIDE1OC4yOTYgMi43MDUyIDE1Ni42MjIgMi42MDI3OUMxNTUuMTU1IDIuNTEzMTEgMTUzLjY1NiAzLjAxNDU5IDE1MC4yNDIgMy44NDg3OUMxNDguNTE3IDQuMjcwMiAxNDcuMzcyIDQuNTMzMDkgMTQ0LjI1MSAzLjMxNjhDMTQzLjEyMSAyLjg3Njc1IDE0MS40OTUgMi4wODY2NSAxMzkuNDMgMS45ODczOEMxMzcuNzY4IDEuOTA3NTEgMTM2LjYzNiAxLjk3NjUgMTM1LjI2MiAyLjg5MjA4QzEzMy4xNCA0LjMwNzE3IDEzMS41NTYgNi4wNjAwNyAxMzAuMzAxIDguNjc4MzhDMTI5LjkzOCA5LjQzNjcyIDEyOS4wOTQgMTAuODExNyAxMjcuNTgxIDEzLjg0OTdDMTI2LjYyNSAxNS43NyAxMjUuMzgxIDE4LjQ0OTUgMTI0LjM5NCAyMC45MDYzQzEyMy40MDYgMjMuMzYzMSAxMjIuNjU3IDI1LjUyMDQgMTIyLjI0IDI3LjA4MTRDMTIxLjU4NSAyOS41MzUxIDEyMC44OTggMzIuMDAxNyAxMjEuNDY4IDM0LjI5NTdMMTIxLjQ3MSAzNC4zMTAyQzEyMS44MTcgMzUuNyAxMjIuMzIyIDM3LjczNDUgMTIzLjcwOSAzOS44MDY4QzEyNS4xNTMgNDEuOTYzNyAxMjYuODE5IDQ0LjIzOTcgMTI4LjkwNCA0NS44OTQxWlwiLFxuXHRcdFwic2hhZG93UGF0aFwiOiBcIk0xMzEuMDEgNDMuNDU1OUMxMzIuNTA5IDQ0Ljc0MTQgMTQ1LjgzNiA1Ny40OTc5IDE2MC4wMzQgNDIuNzk5NEMxNjAuOTk5IDQxLjgwMDggMTY5LjE1NCAyOC40NjQ2IDE2MC44MzggMTIuMDE2QzE1OS45MjcgMTAuMjE0OSAxNTkuMzE1IDguNTU3OTYgMTU4LjUwNCA3LjY5MTdDMTU3LjI5NiA2LjM5OTc2IDE1Ni42NzQgNS43NDQyNCAxNTUuMjEyIDUuNjU0ODJDMTUzLjkzMiA1LjU3NjUxIDE1Mi42MjMgNi4wMTQzOSAxNDkuNjQxIDYuNzQyOEMxNDguMTM1IDcuMTEwNzYgMTQ3LjEzNSA3LjM0MDMyIDE0NC40MSA2LjI3ODI3QzE0My40MjQgNS44OTQwNCAxNDIuMDA0IDUuMjA0MTQgMTQwLjIgNS4xMTc0NkMxMjkuOTU5IDQuNjI1MTkgMTI1LjU1NSAyNS42NjYgMTI1LjE5MSAyNy4wMjlMMTI1LjE4OSAyNy4wMzM4QzEyNC42MTYgMjkuMTgyMiAxMjIuNzA1IDM2LjMzNTkgMTMxLjAxIDQzLjQ1NTlaXCIsXG5cdFx0XCJsaW5lSGlnaGxpZ2h0UGF0aFwiOiBcIk0xNTMuODU0IDI3LjQ3NDJDMTQ5LjUwMiAyNi42NDA5IDE0NC4wNDkgMjcuODUxOSAxNDIuODAyIDMwLjUzNzJDMTQzLjMwMiAyNS4yMTg5IDEzOC4wNjcgMjMuNTg4OSAxMzMuOTMyIDIzLjUwNTEgTTE1My44NTQgMjcuNDc0MkMxNTYuNzA5IDI4LjAyMDkgMTU5LjA5IDI5LjQ0NzYgMTU5LjQ5OCAzMS45MTUzIE0xNTMuODU0IDI3LjQ3NDJDMTU1LjU1NiAyNy42NzQ2IDE1OS4zIDI3LjUwNjIgMTYwLjY1NyAyNS4yMjg2IE0xMjkuMTM5IDI0LjY1MzhDMTI5LjUwNyAyNC4xNjY1IDEzMS4zMjYgMjMuNDUyMyAxMzMuOTMyIDIzLjUwNTEgTTEzMy45MzIgMjMuNTA1MUMxMzIuNDcxIDIyLjYwNDggMTI5LjY3MiAyMC4zNjQgMTMwLjE3MyAxOC42MDM0XCJcblx0fSxcblx0e1xuXHRcdFwibmFtZVwiOiBcIjdcIixcblx0XHRcInR5cGVcIjogXCJTZWNvbmQgTW9sYXJcIixcblx0XHRcIm91dGxpbmVQYXRoXCI6IFwiTTYwLjY3OTMgMjUuMzQxOEM1OS45MTYxIDI3LjY0NDkgNTcuMzYzNiA0OC45MDM3IDg0LjkxMjkgNTMuMDg0NkM5OS43ODg5IDU0LjM2MjYgMTA2LjA1NSAzOS4yMDM3IDEwNi4zNjUgMzYuNzkwOUMxMDguNTY0IDMwLjY1NDkgMTA2LjQ2OSAxNy42MzM3IDEwNS4yNzYgMTQuNjgzM0MxMDMuNzM5IDEwLjg4MTYgMTAyLjcgOC40ODcwNiAxMDEuOTQ2IDcuMzczNzhDMTAwLjQ0MiA1LjE1NDAxIDk5LjIzIDMuMjkwNjQgOTguNDMgMi45MjY1NUM5Ny4yOTgzIDIuNDExNDUgOTUuMzkxOSAxLjEzMDM0IDkxLjI3MTQgMi42ODQzNUM4OC40MzU5IDMuNzUzNzMgODYuMDgzOCAzLjQ5OTggODMuNjI1NiAyLjc2NjA0QzgwLjczNjMgMS45MDM2IDc2LjkwODIgMC42OTAyMDkgNzUuNDM2NyAwLjk2MjA1NUM3NC40NjA2IDEuMTQyMzYgNzMuNDI0OSAxLjE1Njg5IDcyLjYzMzMgMS45ODIxNUM3MS40ODY3IDMuMTc3NjQgNzAuMTYxOCA0Ljc1ODA3IDY3LjgwMjEgOS41ODM5QzY2LjYzNCAxMS45NzI5IDY0Ljc5MzIgMTUuNzE5NiA2My44OTQ5IDE3Ljc4NDlDNjIuMzg3IDIxLjI1MTkgNjEuMzI5OCAyMy4zNzg1IDYwLjY3OTMgMjUuMzQxOFpcIixcblx0XHRcInNoYWRvd1BhdGhcIjogXCJNNjMuODA5OSAyNS40NTMyQzYzLjE0NTYgMjcuNDU3OSA2MC45MjM4IDQ1Ljk2MjQgODQuOTAzNyA0OS42MDE1Qzk3Ljg1MjMgNTAuNzEzOSAxMDMuMzA3IDM3LjUxOTEgMTAzLjU3NiAzNS40MTlDMTA2LjIxNSAyOC4wNTY5IDEwNC4yMDIgMTYuNDE1MyA5OS43MyA5LjgxMzI0Qzk4LjQyMTEgNy44ODEwOCA5Ny4zNjU4IDYuMjU5MTQgOTYuNjY5NSA1Ljk0MjIyQzk1LjY4NDQgNS40OTM4NyA5My43OTYgNC43OTA1IDkwLjIwOTMgNi4xNDMxNkM4Ny43NDEyIDcuMDczOTkgODUuOTIyOSA2LjQ0MTIgODMuNzgzMiA1LjgwMjUxQzgxLjQyMzQgNS4wOTgxMiA3Ni40NDg4IDIuNzkxMzQgNzQuMjE1MSA1LjEyMDE4QzczLjIxNzEgNi4xNjA3NyA3Mi4wNjM4IDcuNTM2NDUgNzAuMDA5OCAxMS43MzdDNjcuODMgMTYuMTk1IDY1LjM3NDQgMjAuNzMxOCA2My44MDk5IDI1LjQ1MzJaXCIsXG5cdFx0XCJsaW5lSGlnaGxpZ2h0UGF0aFwiOiBcIk05Mi4zMzc1IDIxLjk0MThDODkuMzM3NyAyMi4yODQ5IDg0Ljg5MDYgMjMuNjMzOSA4My43MjUzIDI3Ljk4MjlDODQuNzgzOCAyMy4xMzggNzcuMzk2MiAyMi44MTg1IDczLjUwMjIgMjMuNzI0NyBNOTIuMzM3NSAyMS45NDE4Qzk2LjE2NjYgMjEuNTAzOCA5OS41ODUgMjMuMTEwMSAxMDAuMjE1IDI0LjE2NSBNOTIuMzM3NSAyMS45NDE4Qzk0LjQxMjcgMjEuNDAyIDk4LjUzMTcgMTkuODk4IDk5LjU1ODQgMTcuODU5NyBNNjguNzUyNCAyNi4zMTczQzY5LjI1MTMgMjUuNDkgNzAuODI0MiAyNC4zNDc5IDczLjUwMjIgMjMuNzI0NyBNNzMuNTAyMiAyMy43MjQ3QzcxLjgzMzkgMjMuNDE2OSA2OC4zOTU1IDIyLjMyMzggNjcuOTg3OCAyMC40MTRcIlxuXHR9LFxuXHR7XG5cdFx0XCJuYW1lXCI6IFwiOFwiLFxuXHRcdFwidHlwZVwiOiBcIlRoaXJkIE1vbGFyXCIsXG5cdFx0XCJvdXRsaW5lUGF0aFwiOiBcIk0yMi44ODM2IDUyLjgwNjZDMjMuOTI3MiA1My4wOTE1IDI1Ljc5ODYgNTIuODc1NiAyNi4yMDk2IDUyLjkxMTZDMjYuNTAxIDUyLjkzNzIgMjkuMTQ1OSA1Mi43ODUyIDMwLjk1MzQgNTIuMjgwNUMzMy4zNTUyIDUxLjQxNDkgMzQuOTkwMSA1MC43Nzc3IDM1Ljg0OTUgNTAuMTQ5OEMzNy40MzkxIDQ4Ljk4ODYgMzkuODk2NSA0Ni45Mzg3IDQxLjk1MDYgNDQuMzA1MkM0My40MDkyIDQyLjQzNTIgNDQuNjM4MSA0MC4yMjA3IDQ1LjYwMDggMzcuNjcyMUM0Ni4yOTI3IDM1Ljg0MDUgNDYuODUzNiAzNC4xMjAzIDQ2Ljk5MjggMzEuMzgzN0M0Ny4wODI3IDI5LjYxNjkgNDcuMDg4OCAyNy4xMjA3IDQ2LjgzOTYgMjQuMjU2QzQ2LjU5MDQgMjEuMzkxMyA0Ni4xMDA4IDE4LjI1MzEgNDUuNTczNyAxNS44NjI5QzQ1LjA0NjYgMTMuNDcyNyA0NC40OTg2IDExLjg3ODggNDMuOTEwMyAxMC40ODYxQzQzLjMyMTkgOS4wOTMzNCA0Mi43MDE2IDcuOTQxNDUgNDIuMzcxOCA3LjI3NTM1QzQxLjc2NzIgNi4wNTQ0NiA0MS4zMTg4IDQuOTI5NzYgNDAuNTE3MiA0LjE4NzA1QzM4LjkwNTIgMi42OTM1MyAzNy42NTA0IDIuMDg3MTYgMzYuMzkgMS44NTg4NEMzNS4zMDMxIDEuNjYxOTUgMzMuNjQwNyAxLjY3NzUyIDMyLjUyMDcgMi4wNzM0MUMzMC45Mzc0IDIuNjMzMDQgMzAuMDkxMiAzLjI4NjQgMjcuNjYxMyAzLjMwNzI5QzI0LjM2NjcgMy4zMzU2IDIyLjU2NjcgMS45NjA0OSAyMC41MDk4IDEuODE0MDJDMTcuMDgyNyAxLjU2OTk4IDE1LjIzNzYgMS42MDIxNiAxNC4xMTgyIDIuMjA5NzZDMTMuMjE5MyAyLjY5NzY4IDEyLjA5MjcgMy40NzA4MyA5LjgwOTc5IDYuNzQ1MTVDOS4xNDE4OCA3LjcwMzEyIDguNDMyNTIgOC45MzUwOSA2LjkzMTIyIDEyLjE2MkM1Ljg4NDA3IDE0LjQxMjggNC4zMjQ1MiAxNy44NDgyIDMuNDg2MzkgMTkuNjY0MUMyLjU1NjI3IDIxLjY3OTMgMS42MTczOSAyMy40Njg0IDAuOTM1MzcyIDI2LjM2OThDMC40NDk4NDcgMjguNDM1MiAwLjMwNTU4OSAzMC45NDY2IDAuODM5NjgyIDMzLjY4NjJDMS4yMDQwOCAzNS41NTU0IDEuODg3OSAzOC4xMDA0IDQuMTcyNDkgNDEuMDUwNUM2LjYyNTQyIDQ0LjIxOCA4LjQwMTUxIDQ2LjMxNDkgOS4zODYwMSA0Ny4wOTFDMTAuMjY4NiA0Ny43ODY4IDExLjE3NjIgNDguNDY2OCAxMi40Mzk3IDQ5LjAyMzFDMTQuMDczNCA0OS43NDIzIDE1LjU2ODEgNTAuODM5OSAxNy41MTQ3IDUxLjQxNTJDMTkuNzcwNSA1Mi4wODE4IDIxLjEzOTUgNTIuMzMwNSAyMi44ODM2IDUyLjgwNjZaXCIsXG5cdFx0XCJzaGFkb3dQYXRoXCI6IFwiTTIyLjk5MDQgNDkuNjkwOEMyMy45MDY2IDQ5Ljk0MDkgMjUuNTQ5NCA0OS43NTEzIDI1LjkxMDMgNDkuNzgzQzI2LjE2NiA0OS44MDU0IDI4LjQ4OCA0OS42NzE5IDMwLjA3NDggNDkuMjI4OUMzMi4xODM0IDQ4LjQ2OSAzMy42MTg2IDQ3LjkwOTYgMzQuMzczMSA0Ny4zNTg0QzM1Ljc2ODYgNDYuMzM4OSAzNy45MjU5IDQ0LjUzOTQgMzkuNzI5MiA0Mi4yMjc0QzQxLjAwOTcgNDAuNTg1OCA0Mi4wODg1IDM4LjY0MTYgNDIuOTMzNyAzNi40MDQyQzQzLjU0MTEgMzQuNzk2MyA0NC4wMzM1IDMzLjI4NjIgNDQuMTU1NyAzMC44ODM3QzQ0LjIzNDYgMjkuMzMyNiA0NC4yNCAyNy4xNDEzIDQ0LjAyMTIgMjQuNjI2M0M0My44MDI1IDIyLjExMTQgNDMuMzcyNiAxOS4zNTY0IDQyLjkwOTkgMTcuMjU4MUM0Mi40NDcyIDE1LjE1OTggNDEuOTY2MSAxMy43NjA0IDQxLjQ0OTYgMTIuNTM3OEM0MC45MzMxIDExLjMxNTEgNDAuMzg4NSAxMC4zMDM5IDQwLjA5OSA5LjcxOTExQzM5LjU2ODIgOC42NDcyOSAzOS4xNzQ1IDcuNjU5OTMgMzguNDcwOCA3LjAwNzg5QzM3LjA1NTYgNS42OTY3NCAzNS45NTQxIDUuMTY0NDIgMzQuODQ3NiA0Ljk2Mzk4QzMzLjg5MzQgNC43OTExMyAzMi40MzQgNC44MDQ4IDMxLjQ1MDcgNS4xNTIzNEMzMC4wNjA4IDUuNjQzNjQgMjkuMzE3OSA2LjIxNzIyIDI3LjE4NDcgNi4yMzU1NkMyNC4yOTI0IDYuMjYwNDIgMjIuNzEyMiA1LjA1MzIxIDIwLjkwNjQgNC45MjQ2M0MxNy44OTc4IDQuNzEwMzggMTYuMjc3OSA0LjczODY0IDE1LjI5NTMgNS4yNzIwNEMxNC41MDYxIDUuNzAwMzkgMTMuNTE3MSA2LjM3OTE0IDExLjUxMjkgOS4yNTM2NUMxMC45MjY2IDEwLjA5NDYgMTAuMzAzOCAxMS4xNzYyIDguOTg1ODUgMTQuMDA5MUM4LjA2NjU2IDE1Ljk4NTEgNi42OTc0NCAxOS4wMDEgNS45NjE2NSAyMC41OTUxQzUuMTQ1MSAyMi4zNjQyIDQuMzIwODYgMjMuOTM0OSAzLjcyMjEyIDI2LjQ4MkMzLjI5NTg4IDI4LjI5NTMgMy4xNjkyNCAzMC40OTk5IDMuNjM4MTIgMzIuOTA1MUMzLjk1ODAyIDM0LjU0NiA0LjU1ODM0IDM2Ljc4MDMgNi41NjM5NyAzOS4zNzAyQzguNzE3MzkgNDIuMTUwOSAxMC4yNzY2IDQzLjk5MTcgMTEuMTQwOSA0NC42NzMxQzExLjkxNTggNDUuMjgzOSAxMi43MTI1IDQ1Ljg4MDkgMTMuODIxNyA0Ni4zNjkyQzE1LjI1NiA0Ny4wMDA2IDE2LjU2ODIgNDcuOTY0MyAxOC4yNzcxIDQ4LjQ2OTNDMjAuMjU3NCA0OS4wNTQ0IDIxLjQ1OTIgNDkuMjcyOCAyMi45OTA0IDQ5LjY5MDhaXCIsXG5cdFx0XCJsaW5lSGlnaGxpZ2h0UGF0aFwiOiBcIk03LjEzNzQyIDI3LjkxMDFDNy44OTMyNyAyNi43MTcgMTAuMjU2MiAyNS43ODQ2IDEyLjg2MjcgMjUuNDgzTTM4LjA0NTggMjcuNjQ0NEMzNy4wOTgzIDI1LjkzNjggMzQuMjI4NCAyNC44NDQ3IDMxLjEzMjggMjQuNzczOU0zNy41OCAyMS4zNjI2QzM2LjY4NSAyMi40Njg3IDM0LjE0MjYgMjQuNjk5NCAzMS4xMzI4IDI0Ljc3MzlNMzEuMTMyOCAyNC43NzM5QzI3LjEyMjYgMjQuNjgyMyAyMi43MzM2IDI2LjMwNDggMjEuNjU0NCAzMC41MjM5QzIxLjkyMjEgMjYuMTU1NSAxNy4wNzQ0IDI0Ljk5NTcgMTIuODYyNyAyNS40ODNNNi42NDYgMjEuODM3MUM3LjIzMDg0IDIzLjE5NDIgOS4yOTI5NiAyNS44MjMyIDEyLjg2MjcgMjUuNDgzXCJcblx0fVxuXG5cbl0iLCAiaW1wb3J0IHsgTm90YXRpb24sIE9kb250b2dyYW1Db2xvcnMsIFBsYWNlbWVudCB9IGZyb20gXCIuL3R5cGVcIjtcblxuXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9Dc3NWYXJzKGNvbG9yczogT2RvbnRvZ3JhbUNvbG9ycykge1xuICAgIGNvbnN0IGNzc1ZhcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIGlmIChjb2xvcnMuZGFya0JsdWUpIHtcbiAgICAgICAgY3NzVmFyc1tcIi0tZGFyay1ibHVlXCJdID0gY29sb3JzLmRhcmtCbHVlO1xuICAgIH1cbiAgICBpZiAoY29sb3JzLmJhc2VCbHVlKSB7XG4gICAgICAgIGNzc1ZhcnNbXCItLWJhc2UtYmx1ZVwiXSA9IGNvbG9ycy5iYXNlQmx1ZTtcbiAgICB9XG4gICAgaWYgKGNvbG9ycy5saWdodEJsdWUpIHtcbiAgICAgICAgY3NzVmFyc1tcIi0tbGlnaHQtYmx1ZVwiXSA9IGNvbG9ycy5saWdodEJsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNzc1ZhcnM7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb3RoTm90YXRpb25zKGZkaTogc3RyaW5nKSB7XG4gICAgY29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG4gICAgY29uc3QgdW5pdmVyc2FsID0gY29udmVydEZESVRvTm90YXRpb24oZmRpLCBcIlVuaXZlcnNhbFwiKTtcbiAgICBjb25zdCBwYWxtZXIgPSBjb252ZXJ0RkRJVG9Ob3RhdGlvbihmZGksIFwiUGFsbWVyXCIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZmRpOiBudW0sXG4gICAgICAgIHVuaXZlcnNhbCxcbiAgICAgICAgcGFsbWVyLFxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBwbGFjZW1lbnRzOiBSZWNvcmQ8XG4gICAgUGxhY2VtZW50LFxuICAgICh0b290aEJveDogRE9NUmVjdCwgbWFyZ2luOiBudW1iZXIpID0+IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfVxuPiA9IHtcbiAgICB0b3A6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgKyB0LndpZHRoIC8gMiwgeTogdC50b3AgLSBtIH0pLFxuICAgIFwidG9wLXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQsIHk6IHQudG9wIC0gbSB9KSxcbiAgICBcInRvcC1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQsIHk6IHQudG9wIC0gbSB9KSxcbiAgICBib3R0b206ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgKyB0LndpZHRoIC8gMiwgeTogdC5ib3R0b20gKyBtIH0pLFxuICAgIFwiYm90dG9tLXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgICBcImJvdHRvbS1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgICBsZWZ0OiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0IC0gbSwgeTogdC50b3AgKyB0LmhlaWdodCAvIDIgfSksXG4gICAgXCJsZWZ0LXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LnRvcCB9KSxcbiAgICBcImxlZnQtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LmxlZnQgLSBtLCB5OiB0LmJvdHRvbSB9KSxcbiAgICByaWdodDogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQgKyBtLCB5OiB0LnRvcCArIHQuaGVpZ2h0IC8gMiB9KSxcbiAgICBcInJpZ2h0LXN0YXJ0XCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC50b3AgfSksXG4gICAgXCJyaWdodC1lbmRcIjogKHQsIG0pID0+ICh7IHg6IHQucmlnaHQgKyBtLCB5OiB0LmJvdHRvbSB9KSxcbn07XG5cblxuXG4vLzQyNSwgNTUgXG5cblxuZXhwb3J0IGNvbnN0IHF1YWRyYW50czogQXJyYXk8e1xuICAgIG5hbWU6IFwiZmlyc3RcIiB8IFwic2Vjb25kXCIgfCBcInRoaXJkXCIgfCBcImZvdXJ0aFwiO1xuICAgIHRyYW5zZm9ybTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG59PiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJmaXJzdFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcIlwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiVXBwZXIgUmlnaHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzZWNvbmRcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoODU1LCAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC01NSwwKVwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiVXBwZXIgTGVmdFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInRoaXJkXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoMSwgLTEpIHRyYW5zbGF0ZSgwLCAtMTUwKVwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiTG93ZXIgUmlnaHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJmb3VydGhcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoODU1LCAwKSBzY2FsZSgtMSwgLTEpIHRyYW5zbGF0ZSgtNTUsLTE1MClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICBdO1xuXG5cblxuXG5leHBvcnQgY29uc3Qgb2xkcXVhZHJhbnRzOiBBcnJheTx7XG4gICAgbmFtZTogXCJmaXJzdFwiIHwgXCJzZWNvbmRcIiB8IFwidGhpcmRcIiB8IFwiZm91cnRoXCI7XG4gICAgdHJhbnNmb3JtOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn0+ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImZpcnN0XCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwiXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJVcHBlciBSaWdodFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInNlY29uZFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTQwOSwgMClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwcGVyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ0aGlyZFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoMCwgLTY5NClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZm91cnRoXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTQwOSwgLTY5NClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICBdO1xuXG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaTogc3RyaW5nLCBub3RhdGlvbjogTm90YXRpb24pIHtcbiAgICBjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuICAgIGNvbnN0IGZkaVRvVW5pdmVyc2FsOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge1xuICAgICAgICBcIjExXCI6IDgsXG4gICAgICAgIFwiMTJcIjogNyxcbiAgICAgICAgXCIxM1wiOiA2LFxuICAgICAgICBcIjE0XCI6IDUsXG4gICAgICAgIFwiMTVcIjogNCxcbiAgICAgICAgXCIxNlwiOiAzLFxuICAgICAgICBcIjE3XCI6IDIsXG4gICAgICAgIFwiMThcIjogMSxcbiAgICAgICAgXCIyMVwiOiA5LFxuICAgICAgICBcIjIyXCI6IDEwLFxuICAgICAgICBcIjIzXCI6IDExLFxuICAgICAgICBcIjI0XCI6IDEyLFxuICAgICAgICBcIjI1XCI6IDEzLFxuICAgICAgICBcIjI2XCI6IDE0LFxuICAgICAgICBcIjI3XCI6IDE1LFxuICAgICAgICBcIjI4XCI6IDE2LFxuICAgICAgICBcIjMxXCI6IDI0LFxuICAgICAgICBcIjMyXCI6IDIzLFxuICAgICAgICBcIjMzXCI6IDIyLFxuICAgICAgICBcIjM0XCI6IDIxLFxuICAgICAgICBcIjM1XCI6IDIwLFxuICAgICAgICBcIjM2XCI6IDE5LFxuICAgICAgICBcIjM3XCI6IDE4LFxuICAgICAgICBcIjM4XCI6IDE3LFxuICAgICAgICBcIjQxXCI6IDI1LFxuICAgICAgICBcIjQyXCI6IDI2LFxuICAgICAgICBcIjQzXCI6IDI3LFxuICAgICAgICBcIjQ0XCI6IDI4LFxuICAgICAgICBcIjQ1XCI6IDI5LFxuICAgICAgICBcIjQ2XCI6IDMwLFxuICAgICAgICBcIjQ3XCI6IDMxLFxuICAgICAgICBcIjQ4XCI6IDMyLFxuICAgIH07XG5cbiAgICBpZiAobm90YXRpb24gPT09IFwiVW5pdmVyc2FsXCIpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG4gICAgfVxuXG4gICAgaWYgKG5vdGF0aW9uID09PSBcIlBhbG1lclwiKSB7XG4gICAgICAgIGlmIChudW0ubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuIG51bTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1YWRyYW50ID0gbnVtWzBdO1xuICAgICAgICBjb25zdCB0b290aCA9IG51bVsxXTtcbiAgICAgICAgY29uc3Qgc3ltYm9sczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgIFwiMVwiOiBcIlVSXCIsXG4gICAgICAgICAgICBcIjJcIjogXCJVTFwiLFxuICAgICAgICAgICAgXCIzXCI6IFwiTExcIixcbiAgICAgICAgICAgIFwiNFwiOiBcIkxSXCIsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGAke3Rvb3RofSR7c3ltYm9sc1txdWFkcmFudF0gPz8gXCJcIn1gO1xuICAgIH1cblxuICAgIHJldHVybiBudW07XG59XG4iLCAiaW1wb3J0IHsgRkMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVG9vdGhDb25kaXRpb25Hcm91cCB9IGZyb20gXCIuL3R5cGVcIjtcblxudHlwZSBDb25kaXRpb25MYWJlbHNQcm9wcyA9IHtcbiAgICBjb25kaXRpb25zPzogVG9vdGhDb25kaXRpb25Hcm91cFtdO1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBDb25kaXRpb25MYWJlbHM6IEZDPENvbmRpdGlvbkxhYmVsc1Byb3BzPiA9ICh7XG4gICAgY29uZGl0aW9ucyxcbiAgICBjbGFzc05hbWUgPSBcIlwiLFxufSkgPT4ge1xuICAgIGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgICAgICAgZ2FwOiA4LFxuICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk6IFwic2Fucy1zZXJpZlwiLFxuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxNCxcbiAgICAgICAgICAgICAgICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcm9sZT1cImxpc3RcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlRvb3RoIGNvbmRpdGlvbiBsZWdlbmRcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7Y29uZGl0aW9ucy5tYXAoKGNvbmRpdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAga2V5PXtjb25kaXRpb24ubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDgsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbmRpdGlvbi5maWxsQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMnB4IHNvbGlkICR7Y29uZGl0aW9uLm91dGxpbmVDb2xvciA/PyBjb25kaXRpb24uZmlsbENvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiaW5saW5lLWJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyB0ZXh0VHJhbnNmb3JtOiBcImNhcGl0YWxpemVcIiB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjb25kaXRpb24ubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29uZGl0aW9uTGFiZWxzOyJdLAogICJtYXBwaW5ncyI6ICJBQUNBLE9BSUUsZUFBQUEsRUFDQSxXQUFBQyxFQUNBLFVBQUFDLEdBQ0EsWUFBQUMsT0FDSyxRQ1lILE9BdUJFLE9BQUFDLEVBdkJGLFFBQUFDLE9BQUEsb0JBcEJHLElBQU1DLEVBQVEsQ0FBQyxDQUNwQixLQUFBQyxFQUNBLFlBQUFDLEVBQ0EsV0FBQUMsRUFDQSxrQkFBQUMsRUFDQSxTQUFBQyxFQUNBLFVBQUFDLEVBQ0EsU0FBQUMsRUFDQSxRQUFBQyxFQUNBLFVBQUFDLEVBQ0EsUUFBQUMsRUFDQSxRQUFBQyxFQUNBLFFBQUFDLEVBQ0EsT0FBQUMsRUFDQSxTQUFBQyxDQUNGLElBQWtCLENBQ2hCLElBQU1DLEdBQWNULEdBQUEsWUFBQUEsRUFBVyxlQUFnQixlQUN6Q1UsR0FBWVYsR0FBQSxZQUFBQSxFQUFXLFlBQWEsZUFFMUMsT0FDRVAsR0FBQyxLQUNDLFVBQVcsR0FBR0UsQ0FBSSxJQUFJSSxFQUFXLFdBQWEsRUFBRSxHQUNoRCxTQUFVRSxFQUFXLEdBQUssRUFDMUIsUUFBU0EsRUFBVyxPQUFZLElBQU1DLEdBQUEsWUFBQUEsRUFBVVAsR0FDaEQsVUFBV00sRUFBVyxPQUFhVSxHQUFNUixHQUFBLFlBQUFBLEVBQVlRLEVBQUdoQixHQUN4RCxhQUFjUyxFQUFXTyxHQUFNUCxFQUFRVCxFQUFNZ0IsQ0FBQyxFQUFJLE9BQ2xELFFBQVNOLEVBQVdNLEdBQU1OLEVBQVFWLEVBQU1nQixDQUFDLEVBQUksT0FDN0MsYUFBY0wsRUFDZCxPQUFRQyxFQUNSLEtBQUssU0FDTCxhQUFZLFNBQVNaLEVBQUssUUFBUSxTQUFVLEVBQUUsQ0FBQyxHQUcvQyxnQkFBZUksRUFDZixnQkFBZUUsRUFDZixNQUFPLENBQ0wsT0FBUUEsRUFBVyxVQUFZLFVBQy9CLE1BQU9RLENBQ1QsRUFFQyxVQUFBRCxFQUdEaEIsRUFBQyxRQUNDLE9BQVFpQixFQUNSLFlBQWEsRUFDYixjQUFjLFFBQ2QsZUFBZSxRQUNmLEVBQUdiLEVBQ0wsRUFHQUosRUFBQyxRQUNDLEtBQU1rQixFQUNOLEVBQUdiLEVBQ0gsZUFBY0csRUFBWSxPQUFTLE9BQ25DLE1BQU8sQ0FBRSxRQUFTQSxFQUFZLEVBQUksTUFBVSxFQUM5QyxFQUdDLE1BQU0sUUFBUUYsQ0FBaUIsRUFDNUJBLEVBQWtCLElBQUtjLEdBQ3ZCcEIsRUFBQyxRQUVDLE9BQVFpQixFQUNSLGNBQWMsUUFDZCxlQUFlLFFBQ2YsRUFBR0csR0FKRUEsQ0FLUCxDQUNELEVBRUNwQixFQUFDLFFBQ0MsT0FBUWlCLEVBQ1IsY0FBYyxRQUNkLGVBQWUsUUFDZixFQUFHWCxFQUNMLEdBSU4sQ0FFSixFQ25GQSxPQUF5QixhQUFBZSxHQUFXLFVBQUFDLEdBQVEsWUFBQUMsT0FBZ0IsUUFvRnBELG1CQUFBQyxHQVNGLE9BQUFDLEdBUkksUUFBQUMsTUFERixvQkFqRlIsSUFBTUMsRUFBZSxHQUNmQyxFQUFtQixFQVNuQkMsR0FBUSxDQUFDQyxFQUFlQyxFQUFhQyxJQUN6QyxLQUFLLElBQUksS0FBSyxJQUFJRixFQUFPQyxDQUFHLEVBQUdDLENBQUcsRUFFOUJDLEdBQWEsQ0FDakJDLEVBQ0FDLElBQ0csQ0FDSCxHQUFLRCxFQUlMLE9BQU8sT0FBT0EsR0FBWSxXQUFhQSxFQUFRQyxDQUFPLEVBQUlELENBQzVELEVBRU8sU0FBU0UsR0FBa0IsQ0FDaEMsT0FBQUMsRUFDQSxRQUFBRixFQUNBLFNBQUFHLEVBQ0EsUUFBQUosQ0FDRixFQUEyQixDQUN6QixJQUFNSyxFQUFNakIsR0FBdUIsSUFBSSxFQUNqQyxDQUFDa0IsRUFBUUMsQ0FBUyxFQUFJbEIsR0FDMUIsSUFDRixFQXNCQSxPQXBCQUYsR0FBVSxJQUFNLENBQ2QsR0FBSSxFQUFFZ0IsR0FBVUUsRUFBSSxTQUFXRCxHQUM3QixPQUdGLElBQU1JLEVBQWFILEVBQUksUUFBUSxzQkFBc0IsRUFDL0MsQ0FBRSxFQUFBSSxFQUFHLEVBQUFDLENBQUUsRUFBSU4sRUFFWE8sRUFBVSxLQUFLLElBQ25CakIsRUFDQSxPQUFPLFdBQWFjLEVBQVcsTUFBUWQsQ0FDekMsRUFDTWtCLEVBQU9qQixHQUFNYyxFQUFJRCxFQUFXLE1BQVEsRUFBR2QsRUFBa0JpQixDQUFPLEVBRWhFRSxFQUFVSCxFQUFJRixFQUFXLE9BQVNmLEVBQ2xDcUIsRUFBTUQsRUFBVW5CLEVBQW1CZ0IsRUFBSWpCLEVBQWVvQixFQUU1RE4sRUFBVSxDQUFFLEtBQUFLLEVBQU0sSUFBQUUsQ0FBSSxDQUFDLENBQ3pCLEVBQUcsQ0FBQ1gsRUFBUUMsRUFBVUosRUFBU0MsQ0FBTyxDQUFDLEVBRWpDRSxHQUFVRixFQUtkVCxFQUFDLE9BQ0MsSUFBS2EsRUFDTCxVQUFVLHFCQUNWLE1BQU8sQ0FDTCxTQUFVLFFBQ1YsY0FBZSxPQUNmLFdBQVksaURBQ1osTUFBTyxxQ0FDUCxRQUFTLFdBQ1QsYUFBYyxNQUNkLFNBQVUsT0FDVixXQUFZLElBQ1osV0FBWSxTQUNaLE9BQVEsSUFDUixNQUFNQyxHQUFBLFlBQUFBLEVBQVEsT0FBUSxNQUN0QixLQUFLQSxHQUFBLFlBQUFBLEVBQVEsTUFBTyxNQUNwQixRQUFTQSxFQUFTLEVBQUksRUFDdEIsV0FBWSxvQkFDZCxFQUVDLFVBQUFQLEdBQVdDLEVBQVNDLENBQU8sR0FDMUJULEVBQUFGLEdBQUEsQ0FDRSxVQUFBRSxFQUFDLE9BQUksb0JBQVFTLEVBQVEsVUFBVSxLQUFJLEVBQ25DVCxFQUFDLE9BQUksbUJBQU9TLEVBQVEsTUFBSyxFQUN6QlQsRUFBQyxPQUFJLHdCQUNTUyxFQUFRLFVBQVUsVUFBVSxZQUFVLElBQ2pEQSxFQUFRLFVBQVUsUUFDckIsR0FDRixFQUVGVixHQUFDLE9BQ0MsVUFBVSwyQkFDVixNQUFPLENBQ0wsU0FBVSxXQUNWLE9BQVEsT0FDUixLQUFNLE1BQ04sVUFBVyxtQkFDWCxNQUFPLEVBQ1AsT0FBUSxFQUNSLFdBQVksd0JBQ1osWUFBYSx3QkFDYixVQUNFLDZEQUNKLEVBQ0YsR0FDRixFQWpETyxJQW1EWCxDQzlHTyxJQUFNd0IsR0FBYSxDQUN6QixDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUNOLFlBQ0MsNjFCQUNELFdBQ0MsMk1BQ0Qsa0JBQ0MsbUpBQ0YsRUFFQSxDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUVOLFlBQ0MsMFFBQ0QsV0FDQyx5UUFDRCxrQkFDQyxtRkFDRixFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sU0FFTixZQUNDLDZNQUNELFdBQ0Msc0tBQ0Qsa0JBQW1CLENBQ2xCLDhHQUNBLGtEQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGlCQUVOLFlBQ0Msb1RBQ0QsV0FDQywwU0FDRCxrQkFBbUIsQ0FDbEIsK0tBQ0EsbURBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sa0JBQ04sWUFDQywyU0FDRCxXQUNDLHVTQUNELGtCQUFtQixDQUNsQix5REFDQSxzREFDRCxDQUNELEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxjQUNOLFlBQ0Msc2JBQ0QsV0FDQyxxVkFDRCxrQkFBbUIsQ0FDbEIsaVJBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sZUFFTixZQUNDLDhoQkFDRCxXQUNDLHNWQUNELGtCQUFtQixDQUNsQiwyUUFDRCxDQUNELEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxjQUVOLFlBQ0MsMjFCQUNELFdBQ0MsbTJCQUNELGtCQUFtQixDQUNsQiwwUUFDRCxDQUNELENBQ0QsRUFFYUMsR0FBZ0IsQ0FFNUIsQ0FDQyxLQUFRLElBQ1IsS0FBUSxrQkFDUixZQUFlLHF2Q0FDZixXQUFjLDhQQUNkLGtCQUFxQiwyTUFDdEIsRUFDQSxDQUNDLEtBQVEsSUFDUixLQUFRLGtCQUNSLFlBQWUsaVdBQ2YsV0FBYyxrV0FDZCxrQkFBcUIsZ0hBQ3RCLEVBQ0EsQ0FDQyxLQUFRLElBQ1IsS0FBUSxTQUNSLFlBQWUsa1FBQ2YsV0FBYyxvTkFDZCxrQkFBcUIsa09BQ3RCLEVBQ0EsQ0FDQyxLQUFRLElBQ1IsS0FBUSxpQkFDUixZQUFlLDBZQUNmLFdBQWMsa1pBQ2Qsa0JBQXFCLGlVQUN0QixFQUNBLENBQ0MsS0FBUSxJQUNSLEtBQVEsa0JBQ1IsWUFBZSxrWkFDZixXQUFjLGtaQUNkLGtCQUFxQixrSUFDdEIsRUFDQSxDQUNDLEtBQVEsSUFDUixLQUFRLGNBQ1IsWUFBZSxzdUJBQ2YsV0FBYywwY0FDZCxrQkFBcUIsa1hBQ3RCLEVBQ0EsQ0FDQyxLQUFRLElBQ1IsS0FBUSxlQUNSLFlBQWUsMmtCQUNmLFdBQWMsMGJBQ2Qsa0JBQXFCLDhXQUN0QixFQUNBLENBQ0MsS0FBUSxJQUNSLEtBQVEsY0FDUixZQUFlLDh1Q0FDZixXQUFjLHN1Q0FDZCxrQkFBcUIseVdBQ3RCLENBR0QsRUMzSk8sU0FBU0MsR0FBYUMsRUFBMEIsQ0FDbkQsSUFBTUMsRUFBa0MsQ0FBQyxFQUV6QyxPQUFJRCxFQUFPLFdBQ1BDLEVBQVEsYUFBYSxFQUFJRCxFQUFPLFVBRWhDQSxFQUFPLFdBQ1BDLEVBQVEsYUFBYSxFQUFJRCxFQUFPLFVBRWhDQSxFQUFPLFlBQ1BDLEVBQVEsY0FBYyxFQUFJRCxFQUFPLFdBRzlCQyxDQUNYLENBR08sU0FBU0MsR0FBa0JDLEVBQWEsQ0FDM0MsSUFBTUMsRUFBTUQsRUFBSSxRQUFRLFNBQVUsRUFBRSxFQUM5QkUsRUFBWUMsRUFBcUJILEVBQUssV0FBVyxFQUNqREksRUFBU0QsRUFBcUJILEVBQUssUUFBUSxFQUVqRCxNQUFPLENBQ0gsSUFBS0MsRUFDTCxVQUFBQyxFQUNBLE9BQUFFLENBQ0osQ0FDSixDQUVPLElBQU1DLEVBR1QsQ0FDQSxJQUFLLENBQUMsRUFBR0MsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFPLEVBQUUsTUFBUSxFQUFHLEVBQUcsRUFBRSxJQUFNQSxDQUFFLEdBQ3hELFlBQWEsQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLEtBQU0sRUFBRyxFQUFFLElBQU1BLENBQUUsR0FDbEQsVUFBVyxDQUFDLEVBQUdBLEtBQU8sQ0FBRSxFQUFHLEVBQUUsTUFBTyxFQUFHLEVBQUUsSUFBTUEsQ0FBRSxHQUNqRCxPQUFRLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFPLEVBQUUsTUFBUSxFQUFHLEVBQUcsRUFBRSxPQUFTQSxDQUFFLEdBQzlELGVBQWdCLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFNLEVBQUcsRUFBRSxPQUFTQSxDQUFFLEdBQ3hELGFBQWMsQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLE1BQU8sRUFBRyxFQUFFLE9BQVNBLENBQUUsR0FDdkQsS0FBTSxDQUFDLEVBQUdBLEtBQU8sQ0FBRSxFQUFHLEVBQUUsS0FBT0EsRUFBRyxFQUFHLEVBQUUsSUFBTSxFQUFFLE9BQVMsQ0FBRSxHQUMxRCxhQUFjLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxLQUFPQSxFQUFHLEVBQUcsRUFBRSxHQUFJLEdBQ25ELFdBQVksQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLEtBQU9BLEVBQUcsRUFBRyxFQUFFLE1BQU8sR0FDcEQsTUFBTyxDQUFDLEVBQUdBLEtBQU8sQ0FBRSxFQUFHLEVBQUUsTUFBUUEsRUFBRyxFQUFHLEVBQUUsSUFBTSxFQUFFLE9BQVMsQ0FBRSxHQUM1RCxjQUFlLENBQUMsRUFBR0EsS0FBTyxDQUFFLEVBQUcsRUFBRSxNQUFRQSxFQUFHLEVBQUcsRUFBRSxHQUFJLEdBQ3JELFlBQWEsQ0FBQyxFQUFHQSxLQUFPLENBQUUsRUFBRyxFQUFFLE1BQVFBLEVBQUcsRUFBRyxFQUFFLE1BQU8sRUFDMUQsRUFPYUMsR0FJUixDQUNHLENBQ0ksS0FBTSxRQUNOLFVBQVcsR0FDWCxNQUFPLGFBQ1gsRUFDQSxDQUNJLEtBQU0sU0FDTixVQUFXLGtEQUNYLE1BQU8sWUFDWCxFQUNBLENBQ0ksS0FBTSxRQUNOLFVBQVcsa0NBQ1gsTUFBTyxhQUNYLEVBQ0EsQ0FDSSxLQUFNLFNBQ04sVUFBVyxzREFDWCxNQUFPLFlBQ1gsQ0FDSixFQUtTQyxHQUlSLENBQ0csQ0FDSSxLQUFNLFFBQ04sVUFBVyxHQUNYLE1BQU8sYUFDWCxFQUNBLENBQ0ksS0FBTSxTQUNOLFVBQVcsa0NBQ1gsTUFBTyxZQUNYLEVBQ0EsQ0FDSSxLQUFNLFFBQ04sVUFBVyxrQ0FDWCxNQUFPLGFBQ1gsRUFDQSxDQUNJLEtBQU0sU0FDTixVQUFXLHNDQUNYLE1BQU8sWUFDWCxDQUNKLEVBSUcsU0FBU0wsRUFBcUJILEVBQWFTLEVBQW9CLENBQ2xFLElBQU1SLEVBQU1ELEVBQUksUUFBUSxTQUFVLEVBQUUsRUFFOUJVLEVBQXlDLENBQzNDLEdBQU0sRUFDTixHQUFNLEVBQ04sR0FBTSxFQUNOLEdBQU0sRUFDTixHQUFNLEVBQ04sR0FBTSxFQUNOLEdBQU0sRUFDTixHQUFNLEVBQ04sR0FBTSxFQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEdBQ04sR0FBTSxHQUNOLEdBQU0sR0FDTixHQUFNLEVBQ1YsRUFFQSxHQUFJRCxJQUFhLFlBQ2IsT0FBTyxPQUFPQyxFQUFlVCxDQUFHLEdBQUtBLENBQUcsRUFHNUMsR0FBSVEsSUFBYSxTQUFVLENBQ3ZCLEdBQUlSLEVBQUksT0FBUyxFQUNiLE9BQU9BLEVBR1gsSUFBTVUsRUFBV1YsRUFBSSxDQUFDLEVBU3RCLE1BQU8sR0FST0EsRUFBSSxDQUFDLENBUUosR0FQeUIsQ0FDcEMsRUFBSyxLQUNMLEVBQUssS0FDTCxFQUFLLEtBQ0wsRUFBSyxJQUNULEVBRTBCVSxDQUFRLEdBQUssRUFBRSxFQUM3QyxDQUVBLE9BQU9WLENBQ1gsQ0NsSmdCLE9BU0ksT0FBQVcsRUFUSixRQUFBQyxPQUFBLG9CQXBCVCxJQUFNQyxHQUE0QyxDQUFDLENBQ3RELFdBQUFDLEVBQ0EsVUFBQUMsRUFBWSxFQUNoQixJQUNRLENBQUNELEdBQWNBLEVBQVcsU0FBVyxFQUFVLEtBRy9DSCxFQUFDLE9BQ0csVUFBV0ksRUFDWCxNQUFPLENBQ0gsUUFBUyxPQUNULElBQUssRUFDTCxXQUFZLGFBQ1osU0FBVSxHQUNWLFNBQVUsTUFDZCxFQUNBLEtBQUssT0FDTCxhQUFXLHlCQUVWLFNBQUFELEVBQVcsSUFBS0UsR0FDYkosR0FBQyxPQUVHLEtBQUssV0FDTCxNQUFPLENBQ0gsUUFBUyxPQUNULFdBQVksU0FDWixJQUFLLENBQ1QsRUFFQSxVQUFBRCxFQUFDLFFBQ0csY0FBWSxPQUNaLE1BQU8sQ0FDSCxNQUFPLEdBQ1AsT0FBUSxHQUNSLGFBQWMsRUFDZCxXQUFZSyxFQUFVLFVBQ3RCLE9BQVEsYUFBYUEsRUFBVSxjQUFnQkEsRUFBVSxTQUNyRCxHQUNKLFFBQVMsY0FDYixFQUNKLEVBQ0FMLEVBQUMsUUFBSyxNQUFPLENBQUUsY0FBZSxZQUFhLEVBQ3RDLFNBQUFLLEVBQVUsTUFDZixJQXRCS0EsRUFBVSxLQXVCbkIsQ0FDSCxFQUNMLEVBSURDLEdBQVFKLEdMMk9ILGNBQUFLLEVBbUVOLFFBQUFDLE9BbkVNLG9CQXBRTCxTQUFTQyxHQUFXQyxFQUFnQkMsRUFBNEIsQ0FDckUsR0FBSUQsSUFBVyxTQUdiLE9BQUlDLElBQWEsUUFBZ0IsYUFDN0JBLElBQWEsUUFBZ0IsZUFHMUIsY0FJVCxJQUFNQyxFQUFPLGNBQ1BDLEVBQVEsY0FDUkMsRUFBUSxnQkFFZCxPQUFJSCxJQUFhLFFBQWdCRSxFQUM3QkYsSUFBYSxRQUFnQkcsRUFDMUJGLENBQ1QsQ0FFTyxJQUFNRyxHQUFrQyxDQUFDLENBQzlDLGdCQUFBQyxFQUFrQixDQUFDLEVBQ25CLGFBQUFDLEVBQWUsR0FDZixTQUFBQyxFQUNBLFVBQUFDLEVBQVksR0FDWixNQUFBQyxFQUFRLFFBQ1IsT0FBQUMsRUFBUyxDQUFDLEVBQ1YsU0FBQUMsRUFBVyxNQUNYLFFBQUFDLEVBQVUsQ0FDUixPQUFRLEdBQ1IsVUFBVyxLQUNiLEVBQ0EsWUFBQUMsRUFBYyxHQUNkLFNBQUFiLEVBQVcsT0FDWCxLQUFBYyxFQUNBLFNBQUFDLEVBQVcsRUFDWCxnQkFBQUMsRUFDQSxTQUFBQyxFQUFXLEdBQ1gsV0FBQUMsRUFBYSxHQUNiLE9BQUFuQixFQUFTLFNBQ1QsT0FBQW9CLENBQ0YsSUFBTSxDQUtKLElBQU1DLEVBQVlyQixJQUFXLFNBQVdzQixHQUFhQyxHQUUvQ0MsRUFBWXhCLElBQVcsU0FBV3lCLEdBQWVELEdBRWpERSxFQUFrQkMsRUFDdEIsSUFBTSxJQUFJLElBQUlOLEVBQVUsSUFBS08sR0FBTSxDQUFDQSxFQUFFLEtBQU1BLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDcEQsQ0FBQ1AsQ0FBUyxDQUNaLEVBS01RLEVBQWVDLEVBQ2xCQyxHQUFlLENBQ2QsSUFBTUMsRUFBWUQsRUFBRyxRQUFRLFNBQVUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUNsRCxPQUFPTCxFQUFnQixJQUFJTSxDQUFTLEdBQUssU0FDM0MsRUFDQSxDQUFDTixDQUFlLENBQ2xCLEVBRU1PLEVBQWdCSCxFQUNuQkksR0FDSyxPQUFPQSxHQUFVLFVBQVksT0FBTyxNQUFNQSxDQUFLLEVBQzFDYixFQUFVLE9BRVosS0FBSyxJQUFJLEVBQUcsS0FBSyxJQUFJQSxFQUFVLE9BQVEsS0FBSyxNQUFNYSxDQUFLLENBQUMsQ0FBQyxFQUVsRSxDQUFDLENBQ0gsRUFFTUMsRUFBbUJMLEVBQ3RCQyxJQUE2QixDQUM1QixHQUFBQSxFQUNBLFVBQVdLLEdBQWtCTCxDQUFFLEVBQy9CLEtBQU1GLEVBQWFFLENBQUUsQ0FDdkIsR0FDQSxDQUFDRixDQUFZLENBQ2YsRUFLTVEsR0FDSjNCLElBQVUsT0FDTixDQUNBLGNBQWUsVUFDZixjQUFlLFVBQ2YsZUFBZ0IsU0FDbEIsRUFDRSxDQUNBLGNBQWUsVUFDZixjQUFlLFVBQ2YsZUFBZ0IsU0FDbEIsRUFLRSxDQUFDNEIsRUFBVUMsRUFBVyxFQUFJQyxHQUM5QixJQUNFLElBQUksSUFDRmpDLEVBQWVELEVBQWdCLE1BQU0sRUFBRyxDQUFDLEVBQUlBLENBQy9DLENBQ0osRUFFTW1DLEVBQVNDLEdBQXNCLElBQUksRUFFbkMsQ0FBQ0MsRUFBYUMsQ0FBYyxFQUFJSixHQUluQyxDQUFFLE9BQVEsRUFBTSxDQUFDLEVBS2RLLEVBQWVmLEVBQ2xCQyxHQUFlLENBQ1ZiLEdBRUpxQixHQUFhTyxHQUFhLENBQ3hCLElBQU1DLEVBQVUsSUFBSSxJQUFJRCxDQUFRLEVBRWhDLE9BQUl2QyxFQUNFd0MsRUFBUSxJQUFJaEIsQ0FBRSxFQUNoQmdCLEVBQVEsT0FBT2hCLENBQUUsR0FFakJnQixFQUFRLE1BQU0sRUFDZEEsRUFBUSxJQUFJaEIsQ0FBRSxHQUdoQmdCLEVBQVEsSUFBSWhCLENBQUUsRUFBSWdCLEVBQVEsT0FBT2hCLENBQUUsRUFBSWdCLEVBQVEsSUFBSWhCLENBQUUsRUFHdkR2QixHQUFBLE1BQUFBLEVBQVcsTUFBTSxLQUFLdUMsQ0FBTyxFQUFFLElBQUlaLENBQWdCLEdBQzVDWSxDQUNULENBQUMsQ0FDSCxFQUNBLENBQUN2QyxFQUFVVSxFQUFVaUIsRUFBa0I1QixDQUFZLENBQ3JELEVBRU15QyxFQUFnQmxCLEVBQ3BCLENBQUNtQixFQUFtQ2xCLElBQWUsQ0FDN0NiLElBRUErQixFQUFNLE1BQVEsU0FBV0EsRUFBTSxNQUFRLE9BQ3pDQSxFQUFNLGVBQWUsRUFDckJKLEVBQWFkLENBQUUsRUFFbkIsRUFDQSxDQUFDYyxFQUFjM0IsQ0FBUSxDQUN6QixFQUVNZ0MsRUFBY3BCLEVBQ2xCLENBQ0VDLEVBQ0FrQixFQUNBRSxFQUF1QixVQUNwQixDQXRNVCxJQUFBQyxFQUFBQyxFQXVNTSxJQUFNQyxFQUFPTCxFQUFNLGNBQWMsY0FBYyxNQUFNLEVBQ3JELEdBQUksRUFBRUssR0FBUWIsRUFBTyxTQUFVLE9BRS9CLElBQU1jLEVBQVdELEVBQUssc0JBQXNCLEVBQ3RDRSxFQUFTZixFQUFPLFFBQVEsc0JBQXNCLEVBQzlDZ0IsRUFBUzVDLEVBQVEsUUFBVSxHQUUzQixDQUFFLEVBQUE2QyxHQUFHLEVBQUFDLENBQUUsSUFDWE4sR0FBQUQsRUFBQVEsR0FBV1QsS0FBWCxZQUFBRSxFQUFBLEtBQUFELEVBQXdCRyxFQUFVRSxLQUNsQ0csRUFBVyxNQUFNTCxFQUFVRSxDQUFNLEVBRTdCSSxHQUFRRixFQUFJSCxFQUFPLElBQU1ELEVBQVMsT0FBU0UsRUFBU0UsRUFFMURmLEVBQWUsQ0FDYixPQUFRLEdBQ1IsU0FBVSxDQUFFLEVBQUFjLEdBQUcsRUFBR0csRUFBTSxFQUN4QixRQUFTMUIsRUFBaUJKLENBQUUsQ0FDOUIsQ0FBQyxDQUNILEVBQ0EsQ0FBQ2xCLEVBQVEsT0FBUUEsRUFBUSxVQUFXc0IsQ0FBZ0IsQ0FDdEQsRUFFTTJCLEVBQWNoQyxFQUFZLElBQU0sQ0FDcENjLEVBQWdCbUIsSUFBVSxDQUFFLEdBQUdBLEVBQU0sT0FBUSxFQUFNLEVBQUUsQ0FDdkQsRUFBRyxDQUFDLENBQUMsRUFLQ0MsR0FDSi9ELElBQWEsUUFDVHVCLEVBQVUsTUFBTSxFQUFHLENBQUMsRUFDcEJ2QixJQUFhLFFBQ1h1QixFQUFVLE1BQU0sQ0FBQyxFQUNqQkEsRUFLRnlDLEVBQWdCdEMsRUFDcEIsSUFBTU4sRUFBVSxNQUFNLEVBQUdZLEVBQWNqQixDQUFRLENBQUMsRUFDaEQsQ0FBQ0EsRUFBVWlCLEVBQWVqQyxDQUFNLENBQ2xDLEVBS01rRSxFQUFldkMsRUFBUSxJQUFNLENBQ2pDLElBQU13QyxFQUFNLElBQUksSUFFaEIsT0FBQWxELEdBQUEsTUFBQUEsRUFBaUIsUUFBU21ELEdBQWMsQ0FDdENBLEVBQVUsTUFBTSxRQUFTQyxHQUFZLENBQ25DRixFQUFJLElBQUlFLEVBQVNELENBQVMsQ0FDNUIsQ0FBQyxDQUNILEdBRU9ELENBQ1QsRUFBRyxDQUFDbEQsQ0FBZSxDQUFDLEVBS2RxRCxHQUFjeEMsRUFDakJ5QyxHQUNDTixFQUFjLElBQUtPLEdBQVUsQ0FDM0IsSUFBTXpDLEVBQUssR0FBR3dDLENBQU0sR0FBR0MsRUFBTSxJQUFJLEdBQzNCQyxFQUFjQyxFQUFxQjNDLEVBQUluQixDQUFRLEVBQy9Dd0QsRUFBWUYsRUFBYSxJQUFJbkMsQ0FBRSxFQUVyQyxPQUNFbEMsRUFBQzhFLEVBQUEsQ0FFQyxTQUFVekQsRUFDVCxHQUFHc0QsRUFDSixLQUFNekMsRUFDTixTQUFVTyxFQUFTLElBQUlQLENBQUUsRUFDekIsVUFBV3FDLEVBQ1gsUUFBU3ZCLEVBQ1QsVUFBV0csRUFDWCxRQUNFbEMsRUFDSSxDQUFDOEQsRUFBVzNCLElBQ1pDLEVBQVkwQixFQUFXM0IsRUFBT3BDLEVBQVEsU0FBUyxFQUMvQyxPQUVOLFFBQ0VDLEVBQ0ksQ0FBQzhELEVBQVczQixJQUNaQyxFQUFZMEIsRUFBVzNCLEVBQU9wQyxFQUFRLFNBQVMsRUFDL0MsT0FFTixRQUFTQyxFQUFjZ0QsRUFBYyxPQUNyQyxPQUFRaEQsRUFBY2dELEVBQWMsT0FFcEMsU0FBQWpFLEVBQUMsU0FBTyxTQUFBNEUsRUFBWSxHQXZCZjFDLENBd0JQLENBRUosQ0FBQyxFQUNILENBQ0VrQyxFQUNBckQsRUFDQXNELEVBQ0FoRCxFQUNBb0IsRUFDQU8sRUFDQUcsRUFDQUUsRUFDQVksRUFDQWhELEVBQ0FELEVBQVEsU0FDVixDQUNGLEVBS01nRSxHQUFjLENBQ2xCLEdBQUd4QyxHQUNILEdBQUd5QyxHQUFhbkUsQ0FBTSxDQUN4QixFQUVNb0UsR0FBbUIsQ0FDdkIsYUFDQXJFLElBQVUsT0FBUyxhQUFlLEdBQ2xDRCxDQUNGLEVBQ0csT0FBTyxPQUFPLEVBQ2QsS0FBSyxHQUFHLEVBU1gsT0FDRVgsR0FBQyxPQUNDLFVBQVdpRixHQUNYLE1BQU8sQ0FDTCxHQUFJRixHQUNKLE1BQU8sT0FDUCxPQUFRLFNBQ1IsUUFBUyxPQUNULGNBQWUsU0FDZixJQUFLLE9BQ0wsZUFBZ0IsU0FDaEIsV0FBWSxTQUNaLEdBQUd6RCxDQUNMLEVBQ0EsS0FBSyxVQUNMLGFBQVcsYUFDWCx1QkFBc0IsQ0FBQ2IsRUFDdkIsaUJBQWdCVyxFQUFXLE9BQVMsUUFFcEMsVUFBQXJCLEVBQUMsU0FDQyxLQUFLLFNBQ0wsS0FBTWtCLEdBQVEsUUFDZCxNQUFPLEtBQUssVUFBVSxNQUFNLEtBQUt1QixDQUFRLENBQUMsRUFDNUMsRUFFQXhDLEdBQUMsT0FDQyxJQUFLMkMsRUFDTCxNQUFNLDZCQUNOLEtBQUssT0FDTCxRQUFTMUMsR0FBV0MsRUFBUUMsQ0FBUSxFQUVwQyxVQUFVLGFBQ1YsTUFBTyxDQUNMLE1BQU8sT0FDUCxPQUFRLE9BQ1IsV0FBWSxPQUNaLFlBQWEsY0FFZixFQUVBLFVBQUFKLEVBQUMsU0FBTSxzQkFBVSxFQUVoQm1FLEdBQWlCLElBQUksQ0FBQyxDQUFFLEtBQUFqRCxFQUFNLFVBQUFpRSxFQUFXLE1BQUFDLENBQU0sRUFBR0MsSUFDakRyRixFQUFDLEtBQ0MsS0FBSyxRQUNMLGFBQVlvRixFQUVaLFVBQVdELEVBRVYsU0FBQVYsR0FBWSxTQUFTWSxFQUFRLENBQUMsRUFBRSxHQUg1Qm5FLENBSVAsQ0FDRCxHQUNILEVBRUNELEdBQ0NqQixFQUFDc0YsR0FBQSxDQUNDLE9BQVF4QyxFQUFZLE9BQ3BCLFNBQVVBLEVBQVksU0FDdEIsUUFBU0EsRUFBWSxRQUNyQixRQUFTOUIsRUFBUSxRQUNuQixFQUdETSxHQUNDdEIsRUFBQ3VGLEdBQUEsQ0FBZ0IsV0FBWW5FLEVBQWlCLEdBRWxELENBRUosRUFFT29FLEdBQVFoRiIsCiAgIm5hbWVzIjogWyJ1c2VDYWxsYmFjayIsICJ1c2VNZW1vIiwgInVzZVJlZiIsICJ1c2VTdGF0ZSIsICJqc3giLCAianN4cyIsICJUZWV0aCIsICJuYW1lIiwgIm91dGxpbmVQYXRoIiwgInNoYWRvd1BhdGgiLCAibGluZUhpZ2hsaWdodFBhdGgiLCAic2VsZWN0ZWQiLCAiY29uZGl0aW9uIiwgInJlYWRPbmx5IiwgIm9uQ2xpY2siLCAib25LZXlEb3duIiwgIm9uSG92ZXIiLCAib25Gb2N1cyIsICJvbkxlYXZlIiwgIm9uQmx1ciIsICJjaGlsZHJlbiIsICJzdHJva2VDb2xvciIsICJmaWxsQ29sb3IiLCAiZSIsICJkIiwgInVzZUVmZmVjdCIsICJ1c2VSZWYiLCAidXNlU3RhdGUiLCAiRnJhZ21lbnQiLCAianN4IiwgImpzeHMiLCAiQVJST1dfT0ZGU0VUIiwgIlZJRVdQT1JUX1BBRERJTkciLCAiY2xhbXAiLCAidmFsdWUiLCAibWluIiwgIm1heCIsICJnZXRDb250ZW50IiwgImNvbnRlbnQiLCAicGF5bG9hZCIsICJPZG9udG9ncmFtVG9vbHRpcCIsICJhY3RpdmUiLCAicG9zaXRpb24iLCAicmVmIiwgImNvb3JkcyIsICJzZXRDb29yZHMiLCAidG9vbHRpcEJveCIsICJ4IiwgInkiLCAibWF4TGVmdCIsICJsZWZ0IiwgIm5leHRUb3AiLCAidG9wIiwgInRlZXRoUGF0aHMiLCAiTmV3VGVldGhQYXRocyIsICJtYXBUb0Nzc1ZhcnMiLCAiY29sb3JzIiwgImNzc1ZhcnMiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAiZmRpIiwgIm51bSIsICJ1bml2ZXJzYWwiLCAiY29udmVydEZESVRvTm90YXRpb24iLCAicGFsbWVyIiwgInBsYWNlbWVudHMiLCAibSIsICJxdWFkcmFudHMiLCAib2xkcXVhZHJhbnRzIiwgIm5vdGF0aW9uIiwgImZkaVRvVW5pdmVyc2FsIiwgInF1YWRyYW50IiwgImpzeCIsICJqc3hzIiwgIkNvbmRpdGlvbkxhYmVscyIsICJjb25kaXRpb25zIiwgImNsYXNzTmFtZSIsICJjb25kaXRpb24iLCAiTGFiZWxzX2RlZmF1bHQiLCAianN4IiwgImpzeHMiLCAiZ2V0Vmlld0JveCIsICJsYXlvdXQiLCAic2hvd0hhbGYiLCAiZnVsbCIsICJ1cHBlciIsICJsb3dlciIsICJPZG9udG9ncmFtIiwgImRlZmF1bHRTZWxlY3RlZCIsICJzaW5nbGVTZWxlY3QiLCAib25DaGFuZ2UiLCAiY2xhc3NOYW1lIiwgInRoZW1lIiwgImNvbG9ycyIsICJub3RhdGlvbiIsICJ0b29sdGlwIiwgInNob3dUb29sdGlwIiwgIm5hbWUiLCAibWF4VGVldGgiLCAidGVldGhDb25kaXRpb25zIiwgInJlYWRPbmx5IiwgInNob3dMYWJlbHMiLCAic3R5bGVzIiwgInRlZXRocGF0aCIsICJ0ZWV0aFBhdGhzIiwgIk5ld1RlZXRoUGF0aHMiLCAicXVhZHJhbnRzIiwgIm9sZHF1YWRyYW50cyIsICJ0b290aFR5cGVCeU5hbWUiLCAidXNlTWVtbyIsICJ0IiwgImdldFRvb3RoVHlwZSIsICJ1c2VDYWxsYmFjayIsICJpZCIsICJ0b290aE5hbWUiLCAiY2xhbXBNYXhUZWV0aCIsICJ2YWx1ZSIsICJidWlsZFRvb3RoRGV0YWlsIiwgImdldFRvb3RoTm90YXRpb25zIiwgInRoZW1lQ29sb3JzIiwgInNlbGVjdGVkIiwgInNldFNlbGVjdGVkIiwgInVzZVN0YXRlIiwgInN2Z1JlZiIsICJ1c2VSZWYiLCAidG9vbHRpcERhdGEiLCAic2V0VG9vbHRpcERhdGEiLCAiaGFuZGxlVG9nZ2xlIiwgInByZXZpb3VzIiwgInVwZGF0ZWQiLCAiaGFuZGxlS2V5RG93biIsICJldmVudCIsICJoYW5kbGVIb3ZlciIsICJwbGFjZW1lbnQiLCAiX2EiLCAiX2IiLCAicGF0aCIsICJ0b290aEJveCIsICJzdmdCb3giLCAibWFyZ2luIiwgIngiLCAieSIsICJwbGFjZW1lbnRzIiwgInNhZmVZIiwgImhhbmRsZUxlYXZlIiwgInByZXYiLCAidmlzaWJsZVF1YWRyYW50cyIsICJmaWx0ZXJlZFRlZXRoIiwgImNvbmRpdGlvbk1hcCIsICJtYXAiLCAiY29uZGl0aW9uIiwgInRvb3RoSWQiLCAicmVuZGVyVGVldGgiLCAicHJlZml4IiwgInRvb3RoIiwgImRpc3BsYXlOYW1lIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgIlRlZXRoIiwgImN1cnJlbnRJZCIsICJmaW5hbENvbG9ycyIsICJtYXBUb0Nzc1ZhcnMiLCAiY29udGFpbmVyQ2xhc3NlcyIsICJ0cmFuc2Zvcm0iLCAibGFiZWwiLCAiaW5kZXgiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiTGFiZWxzX2RlZmF1bHQiLCAiT2RvbnRvZ3JhbV9kZWZhdWx0Il0KfQo=
|
|
1
|
+
import{useCallback as P,useMemo as A,useRef as T1,useState as s1}from"react";import{jsx as U,jsxs as g1}from"react/jsx-runtime";var f1=({conditions:t,className:e=""})=>!t||t.length===0?null:U("ul",{className:e,style:{display:"flex",gap:8,fontFamily:"sans-serif",fontSize:14,flexWrap:"wrap"},"aria-label":"Tooth condition legend",children:t.map(r=>g1("li",{style:{display:"flex",alignItems:"center",gap:8},children:[U("span",{"aria-hidden":"true",style:{width:14,height:14,borderRadius:4,background:r.fillColor,border:`2px solid ${r.outlineColor??r.fillColor}`,display:"inline-block"}}),U("span",{style:{textTransform:"capitalize"},children:r.label})]},r.label))}),Q=f1;import{jsx as D,jsxs as b1}from"react/jsx-runtime";var X=({name:t,outlinePath:e,shadowPath:r,lineHighlightPath:c,selected:h,condition:a,readOnly:s,onClick:i,onKeyDown:d,onHover:g,onFocus:x,onLeave:v,onBlur:b,children:p})=>{let f=(a==null?void 0:a.outlineColor)??"currentColor",y=(a==null?void 0:a.fillColor)??"currentColor";return b1("g",{className:`${t} ${h?"selected":""}`,onClick:s?void 0:()=>i==null?void 0:i(t),onKeyDown:s?void 0:C=>d==null?void 0:d(C,t),onMouseEnter:g?C=>g(t,C):void 0,onFocus:x?C=>x(t,C):void 0,onMouseLeave:v,onBlur:b,role:s?void 0:"option","aria-selected":s?void 0:h,tabIndex:s?-1:0,"aria-label":s?void 0:`Tooth ${t.replace("teeth-","")}`,"aria-disabled":s,style:{cursor:s?"default":"pointer",color:f},children:[p,D("path",{stroke:f,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",d:e}),D("path",{fill:y,d:r,"data-colored":a?"true":void 0,style:{opacity:a?1:void 0}}),Array.isArray(c)?c.map(C=>D("path",{stroke:f,strokeLinecap:"round",strokeLinejoin:"round",d:C},C)):D("path",{stroke:f,strokeLinecap:"round",strokeLinejoin:"round",d:c})]})};import{useEffect as y1,useRef as M1,useState as P1}from"react";import{Fragment as w1,jsx as k1,jsxs as N}from"react/jsx-runtime";var Y=12,k=8,t1=(t,e,r)=>Math.min(Math.max(t,e),r),x1=t=>t.startsWith("bottom"),v1=(t,e)=>{if(t)return typeof t=="function"?t(e):t};function e1({active:t,payload:e,position:r,content:c}){let h=M1(null),[a,s]=P1(null);return y1(()=>{if(!(t&&h.current&&r))return;let i=h.current.getBoundingClientRect(),{x:d,placement:g,margin:x,anchorRect:v}=r,b=Math.max(k,window.innerWidth-i.width-k),p=t1(d-i.width/2,k,b),f=v.top-i.height-x-Y,y=v.bottom+x+Y,C=x1(g),m=C,u=C?y:f;!m&&u<k&&(m=!0,u=y);let R=Math.max(k,window.innerHeight-i.height-k);m&&u>R&&(m=!1,u=f),u=t1(u,k,R),s({left:p,top:u,isBottomPlacement:m})},[t,r]),t&&e?N("div",{ref:h,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"var(--odontogram-tooltip-bg, rgba(0,0,0,0.85))",color:"var(--odontogram-tooltip-fg, #fff)",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,left:(a==null?void 0:a.left)??-9999,top:(a==null?void 0:a.top)??-9999,opacity:a?1:0,transition:"opacity 0.15s ease"},children:[v1(c,e)??N(w1,{children:[N("div",{children:["Tooth: ",e.notations.fdi]}),N("div",{children:["Type: ",e.type]}),N("div",{children:["Universal: ",e.notations.universal,", Palmer:"," ",e.notations.palmer]})]}),k1("div",{className:"odontogram-tooltip-arrow",style:{position:"absolute",left:"50%",transform:"translateX(-50%)",width:0,height:0,borderLeft:"6px solid transparent",borderRight:"6px solid transparent",...a!=null&&a.isBottomPlacement?{top:"-6px",borderBottom:"6px solid var(--odontogram-tooltip-bg, rgba(0, 0, 0, 0.85))"}:{bottom:"-6px",borderTop:"6px solid var(--odontogram-tooltip-bg, rgba(0, 0, 0, 0.85))"}}})]}):null}var o1=[{name:"1",type:"Central Incisor",outlinePath:"M173.951 1.698c-2.198.16-5.302.862-5.302.862s-5.531 1.025-7.781 2.27c-2.403 1.333-5.553 3.299-6.013 5.258-.432 1.84-.78 4.734-.491 6.832l.027.2c.348 2.527.865 6.28 1.239 10.316.186 2-.101 3.21.751 6.16.895 3.1 1.395 4.573 2.013 5.687.646 1.164 1.493 2.087 2.03 3.28.866 1.924 2.393 4.29 3.87 6.1a48.805 48.805 0 0 0 2.36 2.663c1.016 1.078 2.819 3.11 3.898 4.331 1.526 1.727 3.076 3.248 4.423 3.742 1.217.446 2.709.642 3.793.936 1.369.372 2.494.638 4.597 0 1.545-.468 2.725-.621 4.372-2.424 2.064-2.258 2.846-3.517 3.512-4.746 1.065-1.964 2.524-4.648 3.541-6.422.611-1.068 2.221-3.089 4.086-8.845 1.54-4.752 2.367-7.76 2.731-8.994.415-1.408 1.079-3.583 1.355-6.196.44-4.176 1.114-7.482 1.062-11.026-.044-3.046.104-5.04-1.065-6.306-.95-1.029-1.988-2.001-3.306-2.534-1.959-.79-3.775-1.358-5.298-1.592-1.351-.207-7.05-.35-11.219-.057-1.567.11-3.61.097-9.185.505Z",shadowPath:"M188.269 50.215c19.275-41.867 10.766-43.612 4.937-44.684-5.829-1.073-28.455 2.53-29.72 2.817-.442.218-8.911 0-4.767 19.54 3.416 16.105 16.193 26.596 17.244 27.265 3.148 2.003 8.837 2.595 12.306-4.938Z",lineHighlightPath:"M160.472 14.727c.392-.402 4.317-3.309 8.941-5.47 3.097-1.448 7.773-1.629 11.207-1.749 8.759-.365 10.004.91 12.637 1.495.562.139.909.276 1.771.595"},{name:"2",type:"Lateral Incisor",outlinePath:"M135.016 60.41c3.443 1.355 7.834 2.73 9.601 2.346 4.185-.91 7.044-4.017 8.123-8.152 2.069-7.927 2.249-16.288 1.995-24.436-.113-3.596.72-16.81-4.184-18.444-8.135-6.14-32.088.494-36.979 8.055-5.013 7.751.878 21.131 5.56 27.728 3.862 5.44 9.714 10.474 15.884 12.903Z",shadowPath:"M134.65 55.386c2.732 1.076 6.217 2.167 7.62 1.862 3.321-.723 5.59-3.188 6.446-6.47 1.642-6.29 1.786-12.927 1.583-19.393-.089-2.854.572-13.342-3.32-14.638-6.456-4.873-25.466.392-29.348 6.393-3.979 6.152.696 16.77 4.413 22.006 3.064 4.317 7.709 8.313 12.606 10.24Z",lineHighlightPath:"M121.569 28.952c.551-.984 6.354-8.214 12.866-9.045 3.238-.413 10.619-.17 11.838 0"},{name:"3",type:"Canine",outlinePath:"M77.63 64.236c1.692 1.401 15.516 14.583 34.698 16.903 5.569.674 15.058-7.184 15.789-12.89 1.335-10.423-12.444-29.205-21.965-33.703-4.542-2.145-25.892-4.039-28.523 2.939-2.471 6.557-6.596 21.29 0 26.751Z",shadowPath:"M123.285 66.267c1.072-8.368-10.234-23.94-17.99-27.603-3.72-1.757-21.206-3.308-23.36 2.407-1.757 4.66-4.09 13.284-2.306 18.17 4.15 11.36 40.897 28.573 43.656 7.026Z",lineHighlightPath:["M82.84 60.043c-.01-.855-.193-4.63.256-8.12.667-5.185.703-5.866 1.29-8.106.437-1.666 2.083-4.91 17.487-3.748","M101.438 68.49c.376-.045 2.284-5.112 9.498-6.344"]},{name:"4",type:"First Premolar",outlinePath:"M93.684 108.748c-7.498 3.397-35.368-7.397-35.596-7.441-1.429-.842-12.215-2.854-9.068-29.414.147-1.238 1.353-2.05 2.218-2.556.956-.559 3.157-1.595 7.587-2.794 2.707-.734 13.856-3.54 18.674-.92 2.216 1.206 6.363 4.117 10.473 7.036 4.11 2.919 10.958 8.715 13.327 11.338 2.291 2.537 10.324 13.75-7.615 24.751Z",shadowPath:"M91.495 105.931c-6.528 2.958-30.793-6.44-30.992-6.478-1.243-.734-10.634-2.486-7.895-25.61.128-1.078 1.178-1.785 1.932-2.225.832-.487 2.748-1.39 6.605-2.433 2.357-.639 12.064-3.082 16.258-.8 1.93 1.05 5.54 3.584 9.12 6.125 3.578 2.541 9.54 7.588 11.603 9.872 1.994 2.208 8.987 11.971-6.63 21.549Z",lineHighlightPath:["M55.234 92.414c.022-.242.06-1.469.875-7.79.46-3.573 1.813-5.49 3.134-7.01 1.18-1.359 3.524-3.193 5.88-4.365 1.46-.632 3.029-1.126 6.044-1.776.826-.138 1.477-.175 2.526-.395","M87.02 101.387c4.183-.792 8.747-9.774 8.747-9.774"]},{name:"5",type:"Second Premolar",outlinePath:"M33.396 127.652c-1.088-2.713-4.486-11.852-3.962-15.246.477-3.085 14.47-12.008 23.595-12.008 2.178 0 25.157 6.665 35.073 17.908 4.551 9.324-1.624 23.339-16.22 23.339-8.193 0-23.563-1.897-25.453-2.215-1.896-.319-4.317-1.128-6.596-2.321-1.289-.675-2-1.035-2.478-1.647-.655-.84-2.101-3.178-3.96-7.81Z",shadowPath:"M36.837 126.778c-.945-2.356-3.895-10.289-3.44-13.235.414-2.679 12.561-10.424 20.483-10.424 1.89 0 21.837 5.785 30.445 15.545 3.951 8.094-1.41 20.26-14.08 20.26-7.112 0-20.454-1.647-22.095-1.922-1.645-.277-3.747-.98-5.725-2.015-1.12-.586-1.737-.899-2.151-1.43-.57-.729-1.825-2.759-3.437-6.779Z",lineHighlightPath:["M40.8 131.221c-4.003-20.278 8.442-20.974 13.779-23.692","M74.056 134.729c6.35-4.264 6.343-10.503 6.489-11.448"]},{name:"6",type:"First Molar",outlinePath:"M35.539 203.323c-3.363.196-32.788-4.02-28.495-42.465 3.631-20.408 26.21-23.364 29.557-22.912 9.019-.745 25.727 6.743 29.255 9.403 4.546 3.427 7.384 5.681 8.606 7.092 2.436 2.814 4.499 5.11 4.7 6.313.284 1.703 1.317 4.72-2.248 9.687-2.453 3.418-2.957 6.663-2.856 10.223.118 4.185.37 9.754-.524 11.63-.592 1.244-.984 2.627-2.375 3.392-2.015 1.108-4.61 2.317-11.93 3.748-3.623.708-9.309 1.83-12.401 2.292-5.19.777-8.423 1.43-11.289 1.597Z",shadowPath:"M36.515 199.085c-2.927.17-28.54-3.499-24.803-36.963 3.16-17.764 22.814-20.337 25.727-19.944 10.82-.893 25.709 5.989 32.955 14.358 2.12 2.45 3.917 4.448 4.091 5.495.248 1.482.513 4.268-2.59 8.591-2.135 2.975-1.94 5.641-1.852 8.74.096 3.417 1.402 10.917-2.523 13.076-1.754.964-4.013 2.016-10.384 3.261-6.762 1.322-13.728 2.984-20.621 3.386Z",lineHighlightPath:["M37.132 192.147c1.288-.372 3.385-2.071 5.183-5.438m9.008-35.98c1.188 1.224 2.114 6.385.15 11.363m0 0c-1.537 3.899-4.944 9.378-11.195 9.378 6.877.321 4.651 10.343 2.037 15.239m9.159-24.617c1.47-2.589 4.966-7.572 8.068-8.217m-17.227 32.834c-.186 2.348.044 7.351 2.458 8.584"]},{name:"7",type:"Second Molar",outlinePath:"M4.969 248.132c-1.188-2.74-14.708-27.152 12.319-42.139 1.836-1.018 24.508-7.711 45.28 10.874 2.274 2.035 4.455 3.579 5.403 5.102 1.414 2.271 2.128 3.435 1.687 5.606-.387 1.901-1.54 3.642-3.77 7.711-1.127 2.056-1.854 3.427-1.369 7.824.175 1.59.627 3.935.048 6.603-.466 2.147-.941 3.567-2.578 5.006-2.53 2.224-5.307 3.645-9.076 4.35-1.091.204-3.133.811-7.525 1.702-2.776.563-6.619 1.234-10.09 1.654-3.47.42-6.478.638-8.612.636-3.353-.002-6.734.031-9.465-1.48l-.018-.01c-1.654-.915-4.076-2.255-6.245-4.732-2.258-2.579-4.591-5.482-5.989-8.707Z",shadowPath:"M8.799 246.28c-1.128-2.352-12.843-23.709 10.756-36.796 1.604-.889 21.4-6.732 39.538 9.496 1.986 1.777 3.89 3.125 4.717 4.454 1.235 1.983 1.859 3 1.473 4.895-.337 1.66-1.343 3.18-3.291 6.734-.984 1.795-1.619 2.992-1.196 6.831.154 1.389.548 3.436.042 5.766-2.872 13.231-31.213 11.657-33.076 11.656h-.007c-2.936-.003-12.714-.01-18.956-13.036Z",lineHighlightPath:["M32.14 255.091c.748-.303 2.28-2.378 3.103-5.721m-1.99-35.481c3.009 1.363 4.015 4.888 3.736 8.716m0 0c-.424 5.835-3.832 12.377-7.683 13.049 6.954 1.18 7.244 8.414 5.937 13.716m1.746-26.765c.327-2.24 1.82-6.958 5.19-7.91m-6.936 34.675c.65 2.172 2.55 6.507 4.967 6.471"]},{name:"8",type:"Third Molar",outlinePath:"M.895 291.331c-.362-1.218-.116-3.411-.164-3.892-.035-.34.124-3.438.727-5.558 1.04-2.82 1.808-4.74 2.573-5.752 1.413-1.872 3.913-4.769 7.135-7.2 2.288-1.726 5.003-3.187 8.133-4.339 2.249-.828 4.362-1.502 7.732-1.693 2.175-.123 5.25-.155 8.782.108s7.403.804 10.353 1.397 4.92 1.218 6.641 1.893c1.722.675 3.148 1.389 3.972 1.768 1.51.696 2.9 1.209 3.824 2.14 1.857 1.872 2.617 3.334 2.912 4.807.254 1.27.252 3.216-.224 4.531-.672 1.859-1.468 2.856-1.468 5.7 0 3.857 1.713 5.95 1.915 8.356.337 4.008.317 6.168-.42 7.485-.591 1.057-1.532 2.383-5.541 5.088-1.173.791-2.684 1.634-6.643 3.424-2.762 1.248-6.977 3.108-9.205 4.107-2.473 1.109-4.667 2.226-8.234 3.053-2.54.589-5.631.784-9.012.186-2.307-.408-5.449-1.183-9.107-3.827-3.928-2.839-6.53-4.897-7.497-6.041-.866-1.026-1.714-2.082-2.412-3.555-.904-1.905-2.272-3.643-3-5.916-.846-2.633-1.167-4.233-1.772-6.27Z",shadowPath:"M4.732 291.175c-.317-1.07-.101-2.994-.144-3.416-.03-.299.11-3.019.638-4.88.914-2.476 1.588-4.161 2.26-5.05 1.24-1.643 3.434-4.187 6.263-6.321 2.009-1.515 4.393-2.797 7.14-3.809 1.974-.727 3.83-1.318 6.788-1.486 1.91-.108 4.61-.136 7.71.095 3.1.231 6.498.706 9.088 1.226 2.59.521 4.319 1.07 5.83 1.662 1.512.592 2.764 1.22 3.487 1.553 1.326.61 2.547 1.061 3.357 1.878 1.63 1.643 2.298 2.927 2.557 4.22.223 1.115.221 2.824-.196 3.978-.59 1.632-1.29 2.507-1.29 5.004 0 3.385 1.504 5.223 1.682 7.335.296 3.519.278 5.416-.369 6.571-.52.928-1.345 2.093-4.865 4.467-1.03.695-2.355 1.435-5.831 3.006-2.425 1.096-6.126 2.728-8.082 3.606-2.17.973-4.096 1.954-7.228 2.68-2.229.517-4.944.688-7.912.163-2.024-.358-4.783-1.038-7.995-3.359-3.448-2.493-5.732-4.299-6.58-5.304-.761-.901-1.505-1.827-2.119-3.121-.793-1.672-1.994-3.198-2.634-5.193-.742-2.312-1.024-3.717-1.555-5.505Z",lineHighlightPath:["M31.732 309.511c1.462-.897 2.585-3.672 2.93-6.726m-2.93-29.453c2.114 1.092 3.49 4.44 3.61 8.062m4.133-7.58c-1.353 1.058-4.074 4.057-4.134 7.58m0 0c.155 4.693-1.797 9.846-6.983 11.152 5.379-.357 6.859 5.305 6.303 10.239m4.557 7.24c-1.678-.671-4.938-3.058-4.557-7.24"]}],r1=[{name:"1",type:"Central Incisor",outlinePath:"M397.992 51.339C396.126 51.1841 393.495 50.5617 393.495 50.5617C393.495 50.5617 388.804 49.6453 386.903 48.5677C384.873 47.4162 382.213 45.7195 381.838 44.0514C381.487 42.4836 381.216 40.0226 381.478 38.243L381.503 38.0727C381.82 35.9287 382.29 32.7452 382.642 29.3191C382.817 27.6207 382.583 26.5905 383.332 24.0911C384.118 21.4652 384.555 20.2179 385.09 19.2766C385.648 18.2937 386.375 17.5159 386.841 16.5072C387.593 14.8802 388.91 12.8822 390.18 11.3573C390.902 10.4905 391.602 9.74461 392.207 9.11454C393.08 8.20669 394.629 6.4959 395.556 5.46719C396.866 4.01329 398.196 2.73364 399.344 2.32547C400.382 1.95648 401.652 1.80289 402.575 1.56192C403.741 1.25751 404.7 1.04041 406.481 1.59988C407.789 2.01078 408.79 2.15093 410.175 3.6958C411.909 5.63147 412.563 6.70795 413.119 7.75747C414.007 9.43534 415.224 11.7273 416.073 13.2435C416.584 14.1554 417.935 15.8859 419.471 20.7919C420.739 24.8422 421.417 27.4048 421.716 28.4564C422.057 29.6562 422.602 31.5093 422.815 33.7313C423.154 37.2832 423.699 40.0978 423.625 43.1077C423.562 45.6958 423.671 47.3905 422.667 48.4567C421.852 49.3227 420.962 50.1403 419.837 50.5815C418.166 51.2367 416.619 51.7043 415.323 51.8901C414.174 52.0548 409.33 52.1292 405.791 51.8445C404.461 51.7375 402.725 51.7319 397.992 51.339Z",shadowPath:"M410.562 10.2393C426.588 45.9698 419.344 47.3813 414.383 48.2436C409.421 49.1058 390.229 45.8566 389.156 45.6013C388.783 45.4122 381.586 45.5268 385.27 28.9613C388.307 15.307 399.25 6.5008 400.149 5.94125C402.84 4.2654 407.678 3.81025 410.562 10.2393Z",lineHighlightPath:"M386.65 40.1568C386.979 40.5013 390.29 43.0038 394.2 44.879C396.819 46.1347 400.79 46.3275 403.707 46.4582C411.145 46.8422 412.214 45.7688 414.456 45.2944C414.934 45.1809 415.23 45.0675 415.965 44.8037"},{name:"2",type:"Lateral Incisor",outlinePath:"M339.362 5.90227C342.255 3.71416 346.038 1.25774 347.807 1.15688C351.997 0.918049 355.515 3.10622 357.625 6.73623C361.668 13.6941 364.043 21.5609 365.951 29.3396C366.793 32.7727 371.064 45.061 366.866 47.897C360.805 55.8472 336.444 55.8684 329.833 49.9979C323.057 43.9805 325.09 29.7675 327.77 22.2921C329.981 16.1281 334.178 9.82403 339.362 5.90227Z",shadowPath:"M340.341 10.7533C342.637 9.01674 345.639 7.06721 347.044 6.98717C350.369 6.79762 353.161 8.53425 354.835 11.4152C358.044 16.9373 359.929 23.1807 361.443 29.3542C362.112 32.0788 365.502 41.8314 362.169 44.0822C357.359 50.3918 338.025 50.4086 332.779 45.7496C327.401 40.9738 329.014 29.6938 331.142 23.761C332.896 18.869 336.227 13.8658 340.341 10.7533Z",lineHighlightPath:"M334.964 39.2131C335.743 39.9998 343.128 45.3167 349.494 44.3903C352.66 43.9297 359.564 41.7577 360.67 41.2767"},{name:"3",type:"Canine",outlinePath:"M275.285 36.7016C275.461 34.8357 275.849 18.5473 286.018 5.57867C288.971 1.81325 299.434 0.829071 303.316 3.82989C310.408 9.31139 313.426 28.9506 310.396 37.4059C308.951 41.4393 297.215 55.4587 291.42 52.8366C285.975 50.3727 274.6 43.9742 275.285 36.7016Z",shadowPath:"M301.598 7.93945C307.291 12.3406 309.864 28.5513 307.396 35.4392C306.212 38.7427 296.601 50.225 291.854 48.0774C287.984 46.3265 281.376 42.5321 279.505 38.5086C275.156 29.1535 286.937 -3.39247 301.598 7.93945Z",lineHighlightPath:"M281.255 35.7132C281.766 36.2349 283.933 38.6225 286.307 40.4563C289.837 43.1816 290.269 43.5706 291.974 44.5673C293.243 45.3091 296.192 46.2724 304.782 36.2803 M287.379 19.4012C287.632 19.2016 291.839 21.1066 296.933 17.499"},{name:"4",type:"First Premolar",outlinePath:"M236.98 4.87854C231.34 8.91989 227.474 33.8121 227.41 33.9971C227.423 35.3948 224.346 44.1157 245.059 53.0117C246.025 53.4266 247.125 52.888 247.86 52.4695C248.67 52.0073 250.354 50.8376 253.096 48.11C254.772 46.4429 261.519 39.4872 261.637 34.8665C261.691 32.7406 261.314 28.4868 260.916 24.2565C260.517 20.0262 259.172 12.5851 258.255 9.7502C257.37 7.00905 252.569 -3.57975 236.98 4.87854Z",shadowPath:"M238.114 7.66346C233.204 11.182 229.838 32.8544 229.782 33.0155C229.793 34.2324 227.114 41.8252 245.148 49.5706C245.989 49.9317 246.947 49.4629 247.586 49.0985C248.293 48.6961 249.758 47.6777 252.146 45.3029C253.605 43.8514 259.479 37.7955 259.582 33.7724C259.629 31.9215 259.301 28.218 258.954 24.5348C258.607 20.8517 257.435 14.3731 256.638 11.905C255.866 9.51838 251.687 0.299255 238.114 7.66346Z",lineHighlightPath:"M232.699 39.8277C232.885 39.9138 233.796 40.4028 238.753 42.4719C241.555 43.6416 243.526 43.4623 245.192 43.1391C246.68 42.8502 249.007 41.9121 250.856 40.686C251.932 39.8864 252.954 38.9499 254.698 37.0231C255.147 36.4782 255.449 36.0189 256.052 35.3458 M239.545 12.8442C241.885 10.1252 250.366 10.5793 250.366 10.5793"},{name:"5",type:"Second Premolar",outlinePath:"M186.485 45.8905C188.39 47.4915 194.878 52.668 197.762 53.1457C200.384 53.5801 211.318 44.6344 213.743 37.254C214.322 35.4928 215.038 15.1384 208.58 4.13152C202.248 -2.02701 189.273 -0.756658 185.395 11.0477C183.218 17.6734 180.668 30.608 180.423 32.2205C180.177 33.8383 180.188 36.0117 180.547 38.1716C180.751 39.3933 180.853 40.0649 181.221 40.6135C181.726 41.3662 183.233 43.1574 186.485 45.8905Z",shadowPath:"M188.107 43.3403C189.761 44.7301 195.393 49.2236 197.896 49.6383C200.172 50.0154 209.664 42.2499 211.769 35.8432C212.271 34.3143 212.893 16.6453 207.287 7.09053C201.791 1.74449 190.527 2.84724 187.16 13.0943C185.271 18.8458 183.057 30.074 182.845 31.4738C182.631 32.8782 182.641 34.7648 182.953 36.6398C183.129 37.7003 183.218 38.2832 183.537 38.7594C183.976 39.4129 185.284 40.9678 188.107 43.3403Z",lineHighlightPath:"M185.566 38.954C200.902 47.5796 204.772 37.6999 208.388 34.1061 M191.566 11.1268C196.702 7.12464 201.745 8.78762 202.549 8.92105"},{name:"6",type:"First Molar",outlinePath:"M128.904 45.8941C130.676 47.3001 145.884 61.9755 162.145 45.1423C163.249 43.9986 172.589 28.7255 163.065 9.88792C162.022 7.82514 161.32 5.92758 160.392 4.9355C159.008 3.45593 158.296 2.7052 156.622 2.60279C155.155 2.51311 153.656 3.01459 150.242 3.84879C148.517 4.2702 147.372 4.53309 144.251 3.3168C143.121 2.87675 141.495 2.08665 139.43 1.98738C137.768 1.90751 136.636 1.9765 135.262 2.89208C133.14 4.30717 131.556 6.06007 130.301 8.67838C129.938 9.43672 129.094 10.8117 127.581 13.8497C126.625 15.77 125.381 18.4495 124.394 20.9063C123.406 23.3631 122.657 25.5204 122.24 27.0814C121.585 29.5351 120.898 32.0017 121.468 34.2957L121.471 34.3102C121.817 35.7 122.322 37.7345 123.709 39.8068C125.153 41.9637 126.819 44.2397 128.904 45.8941Z",shadowPath:"M131.01 43.4559C132.509 44.7414 145.836 57.4979 160.034 42.7994C160.999 41.8008 169.154 28.4646 160.838 12.016C159.927 10.2149 159.315 8.55796 158.504 7.6917C157.296 6.39976 156.674 5.74424 155.212 5.65482C153.932 5.57651 152.623 6.01439 149.641 6.7428C148.135 7.11076 147.135 7.34032 144.41 6.27827C143.424 5.89404 142.004 5.20414 140.2 5.11746C129.959 4.62519 125.555 25.666 125.191 27.029L125.189 27.0338C124.616 29.1822 122.705 36.3359 131.01 43.4559Z",lineHighlightPath:"M153.854 27.4742C149.502 26.6409 144.049 27.8519 142.802 30.5372C143.302 25.2189 138.067 23.5889 133.932 23.5051 M153.854 27.4742C156.709 28.0209 159.09 29.4476 159.498 31.9153 M153.854 27.4742C155.556 27.6746 159.3 27.5062 160.657 25.2286 M129.139 24.6538C129.507 24.1665 131.326 23.4523 133.932 23.5051 M133.932 23.5051C132.471 22.6048 129.672 20.364 130.173 18.6034"},{name:"7",type:"Second Molar",outlinePath:"M60.6793 25.3418C59.9161 27.6449 57.3636 48.9037 84.9129 53.0846C99.7889 54.3626 106.055 39.2037 106.365 36.7909C108.564 30.6549 106.469 17.6337 105.276 14.6833C103.739 10.8816 102.7 8.48706 101.946 7.37378C100.442 5.15401 99.23 3.29064 98.43 2.92655C97.2983 2.41145 95.3919 1.13034 91.2714 2.68435C88.4359 3.75373 86.0838 3.4998 83.6256 2.76604C80.7363 1.9036 76.9082 0.690209 75.4367 0.962055C74.4606 1.14236 73.4249 1.15689 72.6333 1.98215C71.4867 3.17764 70.1618 4.75807 67.8021 9.5839C66.634 11.9729 64.7932 15.7196 63.8949 17.7849C62.387 21.2519 61.3298 23.3785 60.6793 25.3418Z",shadowPath:"M63.8099 25.4532C63.1456 27.4579 60.9238 45.9624 84.9037 49.6015C97.8523 50.7139 103.307 37.5191 103.576 35.419C106.215 28.0569 104.202 16.4153 99.73 9.81324C98.4211 7.88108 97.3658 6.25914 96.6695 5.94222C95.6844 5.49387 93.796 4.7905 90.2093 6.14316C87.7412 7.07399 85.9229 6.4412 83.7832 5.80251C81.4234 5.09812 76.4488 2.79134 74.2151 5.12018C73.2171 6.16077 72.0638 7.53645 70.0098 11.737C67.83 16.195 65.3744 20.7318 63.8099 25.4532Z",lineHighlightPath:"M92.3375 21.9418C89.3377 22.2849 84.8906 23.6339 83.7253 27.9829C84.7838 23.138 77.3962 22.8185 73.5022 23.7247 M92.3375 21.9418C96.1666 21.5038 99.585 23.1101 100.215 24.165 M92.3375 21.9418C94.4127 21.402 98.5317 19.898 99.5584 17.8597 M68.7524 26.3173C69.2513 25.49 70.8242 24.3479 73.5022 23.7247 M73.5022 23.7247C71.8339 23.4169 68.3955 22.3238 67.9878 20.414"},{name:"8",type:"Third Molar",outlinePath:"M22.8836 52.8066C23.9272 53.0915 25.7986 52.8756 26.2096 52.9116C26.501 52.9372 29.1459 52.7852 30.9534 52.2805C33.3552 51.4149 34.9901 50.7777 35.8495 50.1498C37.4391 48.9886 39.8965 46.9387 41.9506 44.3052C43.4092 42.4352 44.6381 40.2207 45.6008 37.6721C46.2927 35.8405 46.8536 34.1203 46.9928 31.3837C47.0827 29.6169 47.0888 27.1207 46.8396 24.256C46.5904 21.3913 46.1008 18.2531 45.5737 15.8629C45.0466 13.4727 44.4986 11.8788 43.9103 10.4861C43.3219 9.09334 42.7016 7.94145 42.3718 7.27535C41.7672 6.05446 41.3188 4.92976 40.5172 4.18705C38.9052 2.69353 37.6504 2.08716 36.39 1.85884C35.3031 1.66195 33.6407 1.67752 32.5207 2.07341C30.9374 2.63304 30.0912 3.2864 27.6613 3.30729C24.3667 3.3356 22.5667 1.96049 20.5098 1.81402C17.0827 1.56998 15.2376 1.60216 14.1182 2.20976C13.2193 2.69768 12.0927 3.47083 9.80979 6.74515C9.14188 7.70312 8.43252 8.93509 6.93122 12.162C5.88407 14.4128 4.32452 17.8482 3.48639 19.6641C2.55627 21.6793 1.61739 23.4684 0.935372 26.3698C0.449847 28.4352 0.305589 30.9466 0.839682 33.6862C1.20408 35.5554 1.8879 38.1004 4.17249 41.0505C6.62542 44.218 8.40151 46.3149 9.38601 47.091C10.2686 47.7868 11.1762 48.4668 12.4397 49.0231C14.0734 49.7423 15.5681 50.8399 17.5147 51.4152C19.7705 52.0818 21.1395 52.3305 22.8836 52.8066Z",shadowPath:"M22.9904 49.6908C23.9066 49.9409 25.5494 49.7513 25.9103 49.783C26.166 49.8054 28.488 49.6719 30.0748 49.2289C32.1834 48.469 33.6186 47.9096 34.3731 47.3584C35.7686 46.3389 37.9259 44.5394 39.7292 42.2274C41.0097 40.5858 42.0885 38.6416 42.9337 36.4042C43.5411 34.7963 44.0335 33.2862 44.1557 30.8837C44.2346 29.3326 44.24 27.1413 44.0212 24.6263C43.8025 22.1114 43.3726 19.3564 42.9099 17.2581C42.4472 15.1598 41.9661 13.7604 41.4496 12.5378C40.9331 11.3151 40.3885 10.3039 40.099 9.71911C39.5682 8.64729 39.1745 7.65993 38.4708 7.00789C37.0556 5.69674 35.9541 5.16442 34.8476 4.96398C33.8934 4.79113 32.434 4.8048 31.4507 5.15234C30.0608 5.64364 29.3179 6.21722 27.1847 6.23556C24.2924 6.26042 22.7122 5.05321 20.9064 4.92463C17.8978 4.71038 16.2779 4.73864 15.2953 5.27204C14.5061 5.70039 13.5171 6.37914 11.5129 9.25365C10.9266 10.0946 10.3038 11.1762 8.98585 14.0091C8.06656 15.9851 6.69744 19.001 5.96165 20.5951C5.1451 22.3642 4.32086 23.9349 3.72212 26.482C3.29588 28.2953 3.16924 30.4999 3.63812 32.9051C3.95802 34.546 4.55834 36.7803 6.56397 39.3702C8.71739 42.1509 10.2766 43.9917 11.1409 44.6731C11.9158 45.2839 12.7125 45.8809 13.8217 46.3692C15.256 47.0006 16.5682 47.9643 18.2771 48.4693C20.2574 49.0544 21.4592 49.2728 22.9904 49.6908Z",lineHighlightPath:"M7.13742 27.9101C7.89327 26.717 10.2562 25.7846 12.8627 25.483M38.0458 27.6444C37.0983 25.9368 34.2284 24.8447 31.1328 24.7739M37.58 21.3626C36.685 22.4687 34.1426 24.6994 31.1328 24.7739M31.1328 24.7739C27.1226 24.6823 22.7336 26.3048 21.6544 30.5239C21.9221 26.1555 17.0744 24.9957 12.8627 25.483M6.646 21.8371C7.23084 23.1942 9.29296 25.8232 12.8627 25.483"}];function a1(t){let e={};return t.darkBlue&&(e["--dark-blue"]=t.darkBlue),t.baseBlue&&(e["--base-blue"]=t.baseBlue),t.lightBlue&&(e["--light-blue"]=t.lightBlue),e}function n1(t){let e=t.replace("teeth-",""),r=I(t,"Universal"),c=I(t,"Palmer");return{fdi:e,universal:r,palmer:c}}var q={top:(t,e)=>({x:t.left+t.width/2,y:t.top-e}),"top-start":(t,e)=>({x:t.left,y:t.top-e}),"top-end":(t,e)=>({x:t.right,y:t.top-e}),bottom:(t,e)=>({x:t.left+t.width/2,y:t.bottom+e}),"bottom-start":(t,e)=>({x:t.left,y:t.bottom+e}),"bottom-end":(t,e)=>({x:t.right,y:t.bottom+e}),left:(t,e)=>({x:t.left-e,y:t.top+t.height/2}),"left-start":(t,e)=>({x:t.left-e,y:t.top}),"left-end":(t,e)=>({x:t.left-e,y:t.bottom}),right:(t,e)=>({x:t.right+e,y:t.top+t.height/2}),"right-start":(t,e)=>({x:t.right+e,y:t.top}),"right-end":(t,e)=>({x:t.right+e,y:t.bottom})},i1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"translate(840, 0) scale(-1, 1) translate(-55,0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -150)",label:"Lower Right"},{name:"fourth",transform:"translate(840, 0) scale(-1, -1) translate(-55,-150)",label:"Lower Left"}],l1=[{name:"first",transform:"",label:"Upper Right"},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left"},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right"},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left"}];function I(t,e){let r=t.replace("teeth-",""),c={11:8,12:7,13:6,14:5,15:4,16:3,17:2,18:1,21:9,22:10,23:11,24:12,25:13,26:14,27:15,28:16,31:24,32:23,33:22,34:21,35:20,36:19,37:18,38:17,41:25,42:26,43:27,44:28,45:29,46:30,47:31,48:32};if(e==="Universal")return String(c[r]??r);if(e==="Palmer"){if(r.length<2)return r;let h=r[0];return`${r[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[h]??""}`}return r}import{jsx as T,jsxs as p1}from"react/jsx-runtime";function L1(t,e){if(t==="square")return e==="upper"?"0 0 900 75":e==="lower"?"0 75 900 75 ":"0 0 900 150";let r="0 0 409 694",c="0 0 409 347",h="0 347 409 347";return e==="upper"?c:e==="lower"?h:r}var R1=({defaultSelected:t=[],singleSelect:e=!1,onChange:r,className:c="",theme:h="light",colors:a={},notation:s="FDI",tooltip:i={margin:10,placement:"top"},showTooltip:d=!0,showHalf:g="full",name:x,maxTeeth:v=8,teethConditions:b,readOnly:p=!1,showLabels:f=!1,layout:y="circle",styles:C})=>{let m=y==="circle"?o1:r1,u=y==="circle"?l1:i1,R=A(()=>new Map(m.map(o=>[o.name,o.type])),[m]),G=P(o=>{let l=o.replace("teeth-","").slice(1);return R.get(l)??"Unknown"},[R]),$=P(o=>typeof o!="number"||Number.isNaN(o)?m.length:Math.max(0,Math.min(m.length,Math.floor(o))),[m]),S=P(o=>({id:o,notations:n1(o),type:G(o)}),[G]),c1=h==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[O,h1]=s1(()=>new Set(e?t.slice(0,1):t)),V=T1(null),[F,W]=s1({active:!1}),B=P(o=>{p||h1(l=>{let n=new Set(l);return e?n.has(o)?n.delete(o):(n.clear(),n.add(o)):n.has(o)?n.delete(o):n.add(o),r==null||r(Array.from(n).map(S)),n})},[r,p,S,e]),z=P((o,l)=>{p||(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),B(l))},[B,p]),H=P((o,l,n="right")=>{var J,K;let L=l.currentTarget.querySelector("path");if(!(L&&V.current))return;let M=L.getBoundingClientRect(),w=i.margin??10,{x:Z}=((K=(J=q)[n])==null?void 0:K.call(J,M,w))??q.right(M,w);W({active:!0,position:{x:Z,placement:n,margin:w,anchorRect:{top:M.top,right:M.right,bottom:M.bottom,left:M.left}},payload:S(o)})},[i.margin,S]),E=P(()=>{W(o=>({...o,active:!1}))},[]),C1=g==="upper"?u.slice(0,2):g==="lower"?u.slice(2):u,j=A(()=>m.slice(0,$(v)),[v,$,m]),_=A(()=>{let o=new Map;if(b)for(let l of b)for(let n of l.teeth)o.set(n,l);return o},[b]),m1=P(o=>j.map(l=>{let n=`${o}${l.name}`,L=I(n,s),M=_.get(n);return T(X,{readOnly:p,...l,name:n,selected:O.has(n),condition:M,onClick:B,onKeyDown:z,onHover:d?(w,Z)=>H(w,Z,i.placement):void 0,onFocus:d?(w,Z)=>H(w,Z,i.placement):void 0,onLeave:d?E:void 0,onBlur:d?E:void 0,children:T("title",{children:L})},n)}),[j,s,_,p,O,B,z,H,E,d,i.placement]),d1={...c1,...a1(a)},u1=["Odontogram",h==="dark"?"dark-theme":"",c].filter(Boolean).join(" ");return p1("div",{className:u1,style:{...d1,width:"100%",margin:"0 auto",display:"flex",flexDirection:"column",gap:"20px",justifyContent:"center",alignItems:"center",...C},role:p?"group":"listbox","aria-multiselectable":p?void 0:!e,"aria-label":"Odontogram","data-read-only":p?"true":"false",tabIndex:p?-1:0,children:[T("input",{type:"hidden",name:x??"teeth",value:JSON.stringify(Array.from(O))}),p1("svg",{ref:V,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:L1(y,g),className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[T("title",{children:"Odontogram"}),C1.map(({name:o,transform:l,label:n},L)=>T("g",{transform:l,children:m1(`teeth-${L+1}`)},o))]}),d&&T(e1,{active:F.active,position:F.position,payload:F.payload,content:i.content}),f&&T(Q,{conditions:b})]})},Z1=R1;export{R1 as Odontogram,Z1 as default,L1 as getViewBox};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL09kb250b2dyYW0udHN4IiwgIi4uL3NyYy9MYWJlbHMudHN4IiwgIi4uL3NyYy9UZWV0aC50c3giLCAiLi4vc3JjL1Rvb2x0aXAudHN4IiwgIi4uL3NyYy9kYXRhLnRzIiwgIi4uL3NyYy91dGlscy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFwiLi9zdHlsZXMuY3NzXCI7XG5pbXBvcnQge1xuICB0eXBlIENTU1Byb3BlcnRpZXMsXG4gIHR5cGUgRkMsXG4gIHR5cGUgS2V5Ym9hcmRFdmVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IENvbmRpdGlvbkxhYmVscyBmcm9tIFwiLi9MYWJlbHNcIjtcbmltcG9ydCB7IFRlZXRoIH0gZnJvbSBcIi4vVGVldGhcIjtcbmltcG9ydCB7IE9kb250b2dyYW1Ub29sdGlwIH0gZnJvbSBcIi4vVG9vbHRpcFwiO1xuaW1wb3J0IHsgTmV3VGVldGhQYXRocywgdGVldGhQYXRocyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB0eXBlIHtcbiAgT2RvbnRvZ3JhbVByb3BzLFxuICBQbGFjZW1lbnQsXG4gIFRvb3RoQ29uZGl0aW9uR3JvdXAsXG4gIFRvb3RoRGV0YWlsLFxuICBUb290aEludGVyYWN0aW9uRXZlbnQsXG59IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7XG4gIGNvbnZlcnRGRElUb05vdGF0aW9uLFxuICBnZXRUb290aE5vdGF0aW9ucyxcbiAgbWFwVG9Dc3NWYXJzLFxuICBxdWFkcmFudHMgYXMgbmV3cXVhZHJhbnRzLFxuICBvbGRxdWFkcmFudHMsXG4gIHBsYWNlbWVudHMsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbnR5cGUgTGF5b3V0ID0gXCJjaXJjbGVcIiB8IFwic3F1YXJlXCI7XG50eXBlIFNob3dIYWxmID0gXCJmdWxsXCIgfCBcInVwcGVyXCIgfCBcImxvd2VyXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaWV3Qm94KGxheW91dDogTGF5b3V0LCBzaG93SGFsZjogU2hvd0hhbGYpOiBzdHJpbmcge1xuICBpZiAobGF5b3V0ID09PSBcInNxdWFyZVwiKSB7XG4gICAgLy8gbGluZWFyIGRvZXMgbm90IHN1cHBvcnQgaGFsZiBzbGljaW5nIChzaW5nbGUgcm93KVxuXG4gICAgaWYgKHNob3dIYWxmID09PSBcInVwcGVyXCIpIHtcbiAgICAgIHJldHVybiBcIjAgMCA5MDAgNzVcIjtcbiAgICB9XG4gICAgaWYgKHNob3dIYWxmID09PSBcImxvd2VyXCIpIHtcbiAgICAgIHJldHVybiBcIjAgNzUgOTAwIDc1IFwiO1xuICAgIH1cblxuICAgIHJldHVybiBcIjAgMCA5MDAgMTUwXCI7XG4gIH1cblxuICAvLyBjaXJjbGUgbGF5b3V0XG4gIGNvbnN0IGZ1bGwgPSBcIjAgMCA0MDkgNjk0XCI7XG4gIGNvbnN0IHVwcGVyID0gXCIwIDAgNDA5IDM0N1wiO1xuICBjb25zdCBsb3dlciA9IFwiMCAzNDcgNDA5IDM0N1wiO1xuXG4gIGlmIChzaG93SGFsZiA9PT0gXCJ1cHBlclwiKSB7XG4gICAgcmV0dXJuIHVwcGVyO1xuICB9XG4gIGlmIChzaG93SGFsZiA9PT0gXCJsb3dlclwiKSB7XG4gICAgcmV0dXJuIGxvd2VyO1xuICB9XG4gIHJldHVybiBmdWxsO1xufVxuXG5leHBvcnQgY29uc3QgT2RvbnRvZ3JhbTogRkM8T2RvbnRvZ3JhbVByb3BzPiA9ICh7XG4gIGRlZmF1bHRTZWxlY3RlZCA9IFtdLFxuICBzaW5nbGVTZWxlY3QgPSBmYWxzZSxcbiAgb25DaGFuZ2UsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG4gIHRoZW1lID0gXCJsaWdodFwiLFxuICBjb2xvcnMgPSB7fSxcbiAgbm90YXRpb24gPSBcIkZESVwiLFxuICB0b29sdGlwID0ge1xuICAgIG1hcmdpbjogMTAsXG4gICAgcGxhY2VtZW50OiBcInRvcFwiLFxuICB9LFxuICBzaG93VG9vbHRpcCA9IHRydWUsXG4gIHNob3dIYWxmID0gXCJmdWxsXCIsXG4gIG5hbWUsXG4gIG1heFRlZXRoID0gOCxcbiAgdGVldGhDb25kaXRpb25zLFxuICByZWFkT25seSA9IGZhbHNlLFxuICBzaG93TGFiZWxzID0gZmFsc2UsXG4gIGxheW91dCA9IFwiY2lyY2xlXCIsXG4gIHN0eWxlcyxcbn0pID0+IHtcbiAgLyoqXG4gICAqIE1lbW86IHRvb3RoIHR5cGUgbG9va3VwXG4gICAqL1xuXG4gIGNvbnN0IHRlZXRocGF0aCA9IGxheW91dCA9PT0gXCJjaXJjbGVcIiA/IHRlZXRoUGF0aHMgOiBOZXdUZWV0aFBhdGhzO1xuXG4gIGNvbnN0IHF1YWRyYW50cyA9IGxheW91dCA9PT0gXCJjaXJjbGVcIiA/IG9sZHF1YWRyYW50cyA6IG5ld3F1YWRyYW50cztcblxuICBjb25zdCB0b290aFR5cGVCeU5hbWUgPSB1c2VNZW1vKFxuICAgICgpID0+IG5ldyBNYXAodGVldGhwYXRoLm1hcCgodCkgPT4gW3QubmFtZSwgdC50eXBlXSkpLFxuICAgIFt0ZWV0aHBhdGhdLFxuICApO1xuXG4gIC8qKlxuICAgKiBIZWxwZXJzXG4gICAqL1xuICBjb25zdCBnZXRUb290aFR5cGUgPSB1c2VDYWxsYmFjayhcbiAgICAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdG9vdGhOYW1lID0gaWQucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKS5zbGljZSgxKTtcbiAgICAgIHJldHVybiB0b290aFR5cGVCeU5hbWUuZ2V0KHRvb3RoTmFtZSkgPz8gXCJVbmtub3duXCI7XG4gICAgfSxcbiAgICBbdG9vdGhUeXBlQnlOYW1lXSxcbiAgKTtcblxuICBjb25zdCBjbGFtcE1heFRlZXRoID0gdXNlQ2FsbGJhY2soKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiIHx8IE51bWJlci5pc05hTih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB0ZWV0aHBhdGgubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5taW4odGVldGhwYXRoLmxlbmd0aCwgTWF0aC5mbG9vcih2YWx1ZSkpKTtcbiAgfSwgW3RlZXRocGF0aF0pO1xuXG4gIGNvbnN0IGJ1aWxkVG9vdGhEZXRhaWwgPSB1c2VDYWxsYmFjayhcbiAgICAoaWQ6IHN0cmluZyk6IFRvb3RoRGV0YWlsID0+ICh7XG4gICAgICBpZCxcbiAgICAgIG5vdGF0aW9uczogZ2V0VG9vdGhOb3RhdGlvbnMoaWQpLFxuICAgICAgdHlwZTogZ2V0VG9vdGhUeXBlKGlkKSxcbiAgICB9KSxcbiAgICBbZ2V0VG9vdGhUeXBlXSxcbiAgKTtcblxuICAvKipcbiAgICogVGhlbWVcbiAgICovXG4gIGNvbnN0IHRoZW1lQ29sb3JzID1cbiAgICB0aGVtZSA9PT0gXCJkYXJrXCJcbiAgICAgID8ge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiI2FhYjZmZlwiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiI2QwZDVmNlwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiM1MzYxZTZcIixcbiAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICBcIi0tZGFyay1ibHVlXCI6IFwiIzNlNWVkY1wiLFxuICAgICAgICBcIi0tYmFzZS1ibHVlXCI6IFwiIzhhOThiZVwiLFxuICAgICAgICBcIi0tbGlnaHQtYmx1ZVwiOiBcIiNjNmNjZjhcIixcbiAgICAgIH07XG5cbiAgLyoqXG4gICAqIFN0YXRlXG4gICAqL1xuICBjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+PihcbiAgICAoKSA9PiBuZXcgU2V0KHNpbmdsZVNlbGVjdCA/IGRlZmF1bHRTZWxlY3RlZC5zbGljZSgwLCAxKSA6IGRlZmF1bHRTZWxlY3RlZCksXG4gICk7XG5cbiAgY29uc3Qgc3ZnUmVmID0gdXNlUmVmPFNWR1NWR0VsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFt0b29sdGlwRGF0YSwgc2V0VG9vbHRpcERhdGFdID0gdXNlU3RhdGU8e1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICBwb3NpdGlvbj86IHtcbiAgICAgIHg6IG51bWJlcjtcbiAgICAgIHBsYWNlbWVudDogUGxhY2VtZW50O1xuICAgICAgbWFyZ2luOiBudW1iZXI7XG4gICAgICBhbmNob3JSZWN0OiB7XG4gICAgICAgIHRvcDogbnVtYmVyO1xuICAgICAgICByaWdodDogbnVtYmVyO1xuICAgICAgICBib3R0b206IG51bWJlcjtcbiAgICAgICAgbGVmdDogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHBheWxvYWQ/OiBUb290aERldGFpbDtcbiAgfT4oeyBhY3RpdmU6IGZhbHNlIH0pO1xuXG4gIC8qKlxuICAgKiBIYW5kbGVyc1xuICAgKi9cbiAgY29uc3QgaGFuZGxlVG9nZ2xlID0gdXNlQ2FsbGJhY2soXG4gICAgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChyZWFkT25seSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNldFNlbGVjdGVkKChwcmV2aW91cykgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gbmV3IFNldChwcmV2aW91cyk7XG5cbiAgICAgICAgaWYgKHNpbmdsZVNlbGVjdCkge1xuICAgICAgICAgIGlmICh1cGRhdGVkLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHVwZGF0ZWQuZGVsZXRlKGlkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXBkYXRlZC5jbGVhcigpO1xuICAgICAgICAgICAgdXBkYXRlZC5hZGQoaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVkLmhhcyhpZCkgPyB1cGRhdGVkLmRlbGV0ZShpZCkgOiB1cGRhdGVkLmFkZChpZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbkNoYW5nZT8uKEFycmF5LmZyb20odXBkYXRlZCkubWFwKGJ1aWxkVG9vdGhEZXRhaWwpKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgcmVhZE9ubHksIGJ1aWxkVG9vdGhEZXRhaWwsIHNpbmdsZVNlbGVjdF0sXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChyZWFkT25seSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGhhbmRsZVRvZ2dsZShpZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlVG9nZ2xlLCByZWFkT25seV0sXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlSG92ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBpZDogc3RyaW5nLFxuICAgICAgZXZlbnQ6IFRvb3RoSW50ZXJhY3Rpb25FdmVudCxcbiAgICAgIHBsYWNlbWVudDogUGxhY2VtZW50ID0gXCJyaWdodFwiLFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcihcInBhdGhcIik7XG4gICAgICBpZiAoIShwYXRoICYmIHN2Z1JlZi5jdXJyZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRvb3RoQm94ID0gcGF0aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IG1hcmdpbiA9IHRvb2x0aXAubWFyZ2luID8/IDEwO1xuXG4gICAgICBjb25zdCB7IHggfSA9XG4gICAgICAgIHBsYWNlbWVudHNbcGxhY2VtZW50XT8uKHRvb3RoQm94LCBtYXJnaW4pID8/XG4gICAgICAgIHBsYWNlbWVudHMucmlnaHQodG9vdGhCb3gsIG1hcmdpbik7XG5cbiAgICAgIHNldFRvb2x0aXBEYXRhKHtcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHgsXG4gICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgIG1hcmdpbixcbiAgICAgICAgICBhbmNob3JSZWN0OiB7XG4gICAgICAgICAgICB0b3A6IHRvb3RoQm94LnRvcCxcbiAgICAgICAgICAgIHJpZ2h0OiB0b290aEJveC5yaWdodCxcbiAgICAgICAgICAgIGJvdHRvbTogdG9vdGhCb3guYm90dG9tLFxuICAgICAgICAgICAgbGVmdDogdG9vdGhCb3gubGVmdCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwYXlsb2FkOiBidWlsZFRvb3RoRGV0YWlsKGlkKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW3Rvb2x0aXAubWFyZ2luLCBidWlsZFRvb3RoRGV0YWlsXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVMZWF2ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUb29sdGlwRGF0YSgocHJldikgPT4gKHsgLi4ucHJldiwgYWN0aXZlOiBmYWxzZSB9KSk7XG4gIH0sIFtdKTtcblxuICAvKipcbiAgICogUXVhZHJhbnRzXG4gICAqL1xuICBjb25zdCB2aXNpYmxlUXVhZHJhbnRzID1cbiAgICBzaG93SGFsZiA9PT0gXCJ1cHBlclwiXG4gICAgICA/IHF1YWRyYW50cy5zbGljZSgwLCAyKVxuICAgICAgOiBzaG93SGFsZiA9PT0gXCJsb3dlclwiXG4gICAgICAgID8gcXVhZHJhbnRzLnNsaWNlKDIpXG4gICAgICAgIDogcXVhZHJhbnRzO1xuXG4gIC8qKlxuICAgKiBUZWV0aCBzbGljZVxuICAgKi9cbiAgY29uc3QgZmlsdGVyZWRUZWV0aCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gdGVldGhwYXRoLnNsaWNlKDAsIGNsYW1wTWF4VGVldGgobWF4VGVldGgpKSxcbiAgICBbbWF4VGVldGgsIGNsYW1wTWF4VGVldGgsIHRlZXRocGF0aF0sXG4gICk7XG5cbiAgLyoqXG4gICAqIENvbmRpdGlvbiBtYXBcbiAgICovXG4gIGNvbnN0IGNvbmRpdGlvbk1hcCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBUb290aENvbmRpdGlvbkdyb3VwPigpO1xuXG4gICAgaWYgKHRlZXRoQ29uZGl0aW9ucykge1xuICAgICAgZm9yIChjb25zdCBjb25kaXRpb24gb2YgdGVldGhDb25kaXRpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgdG9vdGhJZCBvZiBjb25kaXRpb24udGVldGgpIHtcbiAgICAgICAgICBtYXAuc2V0KHRvb3RoSWQsIGNvbmRpdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWFwO1xuICB9LCBbdGVldGhDb25kaXRpb25zXSk7XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0ZWV0aFxuICAgKi9cbiAgY29uc3QgcmVuZGVyVGVldGggPSB1c2VDYWxsYmFjayhcbiAgICAocHJlZml4OiBzdHJpbmcpID0+XG4gICAgICBmaWx0ZXJlZFRlZXRoLm1hcCgodG9vdGgpID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBgJHtwcmVmaXh9JHt0b290aC5uYW1lfWA7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gY29udmVydEZESVRvTm90YXRpb24oaWQsIG5vdGF0aW9uKTtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gY29uZGl0aW9uTWFwLmdldChpZCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8VGVldGhcbiAgICAgICAgICAgIGtleT17aWR9XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG5cbiAgICAgICAgICAgIHsuLi50b290aH1cbiAgICAgICAgICAgIG5hbWU9e2lkfVxuICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkLmhhcyhpZCl9XG4gICAgICAgICAgICBjb25kaXRpb249e2NvbmRpdGlvbn1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cbiAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgIG9uSG92ZXI9e1xuICAgICAgICAgICAgICBzaG93VG9vbHRpcFxuICAgICAgICAgICAgICAgID8gKGN1cnJlbnRJZCwgZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVIb3ZlcihjdXJyZW50SWQsIGV2ZW50LCB0b29sdGlwLnBsYWNlbWVudClcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25Gb2N1cz17XG4gICAgICAgICAgICAgIHNob3dUb29sdGlwXG4gICAgICAgICAgICAgICAgPyAoY3VycmVudElkLCBldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUhvdmVyKGN1cnJlbnRJZCwgZXZlbnQsIHRvb2x0aXAucGxhY2VtZW50KVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkxlYXZlPXtzaG93VG9vbHRpcCA/IGhhbmRsZUxlYXZlIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25CbHVyPXtzaG93VG9vbHRpcCA/IGhhbmRsZUxlYXZlIDogdW5kZWZpbmVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx0aXRsZT57ZGlzcGxheU5hbWV9PC90aXRsZT5cbiAgICAgICAgICA8L1RlZXRoPlxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgW1xuICAgICAgZmlsdGVyZWRUZWV0aCxcbiAgICAgIG5vdGF0aW9uLFxuICAgICAgY29uZGl0aW9uTWFwLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBzZWxlY3RlZCxcbiAgICAgIGhhbmRsZVRvZ2dsZSxcbiAgICAgIGhhbmRsZUtleURvd24sXG4gICAgICBoYW5kbGVIb3ZlcixcbiAgICAgIGhhbmRsZUxlYXZlLFxuICAgICAgc2hvd1Rvb2x0aXAsXG4gICAgICB0b29sdGlwLnBsYWNlbWVudCxcbiAgICBdLFxuICApO1xuXG4gIC8qKlxuICAgKiBDb2xvcnNcbiAgICovXG4gIGNvbnN0IGZpbmFsQ29sb3JzID0ge1xuICAgIC4uLnRoZW1lQ29sb3JzLFxuICAgIC4uLm1hcFRvQ3NzVmFycyhjb2xvcnMpLFxuICB9O1xuXG4gIGNvbnN0IGNvbnRhaW5lckNsYXNzZXMgPSBbXG4gICAgXCJPZG9udG9ncmFtXCIsXG4gICAgdGhlbWUgPT09IFwiZGFya1wiID8gXCJkYXJrLXRoZW1lXCIgOiBcIlwiLFxuICAgIGNsYXNzTmFtZSxcbiAgXVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbihcIiBcIik7XG5cbiAgLy93ZSBoYXZlIDQgY29uZGl0aW9uc1xuICAvL2xheW91dCBpcyBjaXJjbGUgb3Igc3F1YXJlXG4gIC8vIGlmXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NvbnRhaW5lckNsYXNzZXN9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi4oZmluYWxDb2xvcnMgYXMgQ1NTUHJvcGVydGllcyksXG4gICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgbWFyZ2luOiBcIjAgYXV0b1wiLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgICAgICAgZ2FwOiBcIjIwcHhcIixcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgIC4uLihzdHlsZXMgYXMgQ1NTUHJvcGVydGllcyksXG4gICAgICB9fVxuICAgICAgcm9sZT17cmVhZE9ubHkgPyBcImdyb3VwXCIgOiBcImxpc3Rib3hcIn1cbiAgICAgIGFyaWEtbXVsdGlzZWxlY3RhYmxlPXtyZWFkT25seSA/IHVuZGVmaW5lZCA6ICFzaW5nbGVTZWxlY3R9XG5cbiAgICAgIGFyaWEtbGFiZWw9XCJPZG9udG9ncmFtXCJcbiAgICAgIGRhdGEtcmVhZC1vbmx5PXtyZWFkT25seSA/IFwidHJ1ZVwiIDogXCJmYWxzZVwifVxuICAgICAgdGFiSW5kZXg9e3JlYWRPbmx5ID8gLTEgOiAwfVxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgbmFtZT17bmFtZSA/PyBcInRlZXRoXCJ9XG4gICAgICAgIHZhbHVlPXtKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKHNlbGVjdGVkKSl9XG4gICAgICAvPlxuXG4gICAgICA8c3ZnXG4gICAgICAgIHJlZj17c3ZnUmVmfVxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICB2aWV3Qm94PXtnZXRWaWV3Qm94KGxheW91dCwgc2hvd0hhbGYpfVxuICAgICAgICBjbGFzc05hbWU9XCJPZG9udG9ncmFtXCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgICAgICB0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPHRpdGxlPk9kb250b2dyYW08L3RpdGxlPlxuXG4gICAgICAgIHt2aXNpYmxlUXVhZHJhbnRzLm1hcCgoeyBuYW1lLCB0cmFuc2Zvcm0sIGxhYmVsIH0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPGcga2V5PXtuYW1lfSB0cmFuc2Zvcm09e3RyYW5zZm9ybX0+XG4gICAgICAgICAgICB7cmVuZGVyVGVldGgoYHRlZXRoLSR7aW5kZXggKyAxfWApfVxuICAgICAgICAgIDwvZz5cbiAgICAgICAgKSl9XG4gICAgICA8L3N2Zz5cblxuICAgICAge3Nob3dUb29sdGlwICYmIChcbiAgICAgICAgPE9kb250b2dyYW1Ub29sdGlwXG4gICAgICAgICAgYWN0aXZlPXt0b29sdGlwRGF0YS5hY3RpdmV9XG4gICAgICAgICAgcG9zaXRpb249e3Rvb2x0aXBEYXRhLnBvc2l0aW9ufVxuICAgICAgICAgIHBheWxvYWQ9e3Rvb2x0aXBEYXRhLnBheWxvYWR9XG4gICAgICAgICAgY29udGVudD17dG9vbHRpcC5jb250ZW50fVxuICAgICAgICAvPlxuICAgICAgKX1cblxuICAgICAge3Nob3dMYWJlbHMgJiYgPENvbmRpdGlvbkxhYmVscyBjb25kaXRpb25zPXt0ZWV0aENvbmRpdGlvbnN9IC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgT2RvbnRvZ3JhbTtcbiIsICJpbXBvcnQgdHlwZSB7IEZDIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRvb3RoQ29uZGl0aW9uR3JvdXAgfSBmcm9tIFwiLi90eXBlXCI7XG5cbnR5cGUgQ29uZGl0aW9uTGFiZWxzUHJvcHMgPSB7XG5cdGNvbmRpdGlvbnM/OiBUb290aENvbmRpdGlvbkdyb3VwW107XG5cdGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBDb25kaXRpb25MYWJlbHM6IEZDPENvbmRpdGlvbkxhYmVsc1Byb3BzPiA9ICh7XG5cdGNvbmRpdGlvbnMsXG5cdGNsYXNzTmFtZSA9IFwiXCIsXG59KSA9PiB7XG5cdGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0cmV0dXJuIChcblx0XHQ8dWxcblx0XHRcdGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuXHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0XHRcdGdhcDogOCxcblx0XHRcdFx0Zm9udEZhbWlseTogXCJzYW5zLXNlcmlmXCIsXG5cdFx0XHRcdGZvbnRTaXplOiAxNCxcblx0XHRcdFx0ZmxleFdyYXA6IFwid3JhcFwiLFxuXHRcdFx0fX1cblx0XHRcdGFyaWEtbGFiZWw9XCJUb290aCBjb25kaXRpb24gbGVnZW5kXCJcblx0XHQ+XG5cdFx0XHR7Y29uZGl0aW9ucy5tYXAoKGNvbmRpdGlvbikgPT4gKFxuXHRcdFx0XHQ8bGlcblx0XHRcdFx0XHRrZXk9e2NvbmRpdGlvbi5sYWJlbH1cblx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0XHRcdFx0XHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRcdFx0XHRcdFx0Z2FwOiA4LFxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCJcblx0XHRcdFx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdFx0XHRcdHdpZHRoOiAxNCxcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiAxNCxcblx0XHRcdFx0XHRcdFx0Ym9yZGVyUmFkaXVzOiA0LFxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBjb25kaXRpb24uZmlsbENvbG9yLFxuXHRcdFx0XHRcdFx0XHRib3JkZXI6IGAycHggc29saWQgJHtcblx0XHRcdFx0XHRcdFx0XHRjb25kaXRpb24ub3V0bGluZUNvbG9yID8/IGNvbmRpdGlvbi5maWxsQ29sb3Jcblx0XHRcdFx0XHRcdFx0fWAsXG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IFwiaW5saW5lLWJsb2NrXCIsXG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PHNwYW4gc3R5bGU9e3sgdGV4dFRyYW5zZm9ybTogXCJjYXBpdGFsaXplXCIgfX0+e2NvbmRpdGlvbi5sYWJlbH08L3NwYW4+XG5cdFx0XHRcdDwvbGk+XG5cdFx0XHQpKX1cblx0XHQ8L3VsPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29uZGl0aW9uTGFiZWxzO1xuIiwgImltcG9ydCB0eXBlIHsgVGVldGhQcm9wcyB9IGZyb20gXCIuL3R5cGVcIjtcbmV4cG9ydCBjb25zdCBUZWV0aCA9ICh7XG4gIG5hbWUsXG4gIG91dGxpbmVQYXRoLFxuICBzaGFkb3dQYXRoLFxuICBsaW5lSGlnaGxpZ2h0UGF0aCxcbiAgc2VsZWN0ZWQsXG4gIGNvbmRpdGlvbixcbiAgcmVhZE9ubHksXG4gIG9uQ2xpY2ssXG4gIG9uS2V5RG93bixcbiAgb25Ib3ZlcixcbiAgb25Gb2N1cyxcbiAgb25MZWF2ZSxcbiAgb25CbHVyLFxuICBjaGlsZHJlbixcbn06IFRlZXRoUHJvcHMpID0+IHtcbiAgY29uc3Qgc3Ryb2tlQ29sb3IgPSBjb25kaXRpb24/Lm91dGxpbmVDb2xvciA/PyBcImN1cnJlbnRDb2xvclwiO1xuICBjb25zdCBmaWxsQ29sb3IgPSBjb25kaXRpb24/LmZpbGxDb2xvciA/PyBcImN1cnJlbnRDb2xvclwiO1xuXG4gIHJldHVybiAoXG4gICAgPGdcbiAgICAgIGNsYXNzTmFtZT17YCR7bmFtZX0gJHtzZWxlY3RlZCA/IFwic2VsZWN0ZWRcIiA6IFwiXCJ9YH1cbiAgICAgIG9uQ2xpY2s9e3JlYWRPbmx5ID8gdW5kZWZpbmVkIDogKCkgPT4gb25DbGljaz8uKG5hbWUpfVxuICAgICAgb25LZXlEb3duPXtyZWFkT25seSA/IHVuZGVmaW5lZCA6IChlKSA9PiBvbktleURvd24/LihlLCBuYW1lKX1cbiAgICAgIG9uTW91c2VFbnRlcj17b25Ib3ZlciA/IChlKSA9PiBvbkhvdmVyKG5hbWUsIGUpIDogdW5kZWZpbmVkfVxuICAgICAgb25Gb2N1cz17b25Gb2N1cyA/IChlKSA9PiBvbkZvY3VzKG5hbWUsIGUpIDogdW5kZWZpbmVkfVxuICAgICAgb25Nb3VzZUxlYXZlPXtvbkxlYXZlfVxuICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICByb2xlPXtyZWFkT25seSA/IHVuZGVmaW5lZCA6IFwib3B0aW9uXCJ9XG4gICAgICBhcmlhLXNlbGVjdGVkPXtyZWFkT25seSA/IHVuZGVmaW5lZCA6IHNlbGVjdGVkfVxuICAgICAgdGFiSW5kZXg9e3JlYWRPbmx5ID8gLTEgOiAwfVxuICAgICAgYXJpYS1sYWJlbD17XG4gICAgICAgIHJlYWRPbmx5ID8gdW5kZWZpbmVkIDogYFRvb3RoICR7bmFtZS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpfWBcbiAgICAgIH1cblxuICAgICAgYXJpYS1kaXNhYmxlZD17cmVhZE9ubHl9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBjdXJzb3I6IHJlYWRPbmx5ID8gXCJkZWZhdWx0XCIgOiBcInBvaW50ZXJcIixcbiAgICAgICAgY29sb3I6IHN0cm9rZUNvbG9yLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG5cbiAgICAgIHsvKiBvdXRsaW5lICovfVxuICAgICAgPHBhdGhcbiAgICAgICAgc3Ryb2tlPXtzdHJva2VDb2xvcn1cbiAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICBkPXtvdXRsaW5lUGF0aH1cbiAgICAgIC8+XG5cbiAgICAgIHsvKiBmaWxsICovfVxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbD17ZmlsbENvbG9yfVxuICAgICAgICBkPXtzaGFkb3dQYXRofVxuICAgICAgICBkYXRhLWNvbG9yZWQ9e2NvbmRpdGlvbiA/IFwidHJ1ZVwiIDogdW5kZWZpbmVkfVxuICAgICAgICBzdHlsZT17eyBvcGFjaXR5OiBjb25kaXRpb24gPyAxIDogdW5kZWZpbmVkIH19XG4gICAgICAvPlxuXG4gICAgICB7LyogaGlnaGxpZ2h0IGxpbmVzICovfVxuICAgICAge0FycmF5LmlzQXJyYXkobGluZUhpZ2hsaWdodFBhdGgpXG4gICAgICAgID8gbGluZUhpZ2hsaWdodFBhdGgubWFwKChkKSA9PiAoXG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGtleT17ZH1cbiAgICAgICAgICAgIHN0cm9rZT17c3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICBkPXtkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpXG4gICAgICAgIDogKFxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBzdHJva2U9e3N0cm9rZUNvbG9yfVxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgZD17bGluZUhpZ2hsaWdodFBhdGh9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cblxuXG4gICAgPC9nPlxuICApO1xufTsiLCAiaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQsIFRvb2x0aXBDb250ZW50UmVuZGVyZXIsIFRvb3RoRGV0YWlsIH0gZnJvbSBcIi4vdHlwZVwiO1xuXG5jb25zdCBBUlJPV19PRkZTRVQgPSAxMjtcbmNvbnN0IFZJRVdQT1JUX1BBRERJTkcgPSA4O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9kb250b2dyYW1Ub29sdGlwUHJvcHMge1xuXHRhY3RpdmU6IGJvb2xlYW47XG5cdHBheWxvYWQ/OiBUb290aERldGFpbDtcblx0cG9zaXRpb24/OiB7XG5cdFx0eDogbnVtYmVyO1xuXHRcdHBsYWNlbWVudDogUGxhY2VtZW50O1xuXHRcdG1hcmdpbjogbnVtYmVyO1xuXHRcdGFuY2hvclJlY3Q6IHtcblx0XHRcdHRvcDogbnVtYmVyO1xuXHRcdFx0cmlnaHQ6IG51bWJlcjtcblx0XHRcdGJvdHRvbTogbnVtYmVyO1xuXHRcdFx0bGVmdDogbnVtYmVyO1xuXHRcdH07XG5cdH07XG5cdGNvbnRlbnQ/OiBSZWFjdE5vZGUgfCBUb29sdGlwQ29udGVudFJlbmRlcmVyO1xufVxuXG5jb25zdCBjbGFtcCA9ICh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+XG5cdE1hdGgubWluKE1hdGgubWF4KHZhbHVlLCBtaW4pLCBtYXgpO1xuXG5jb25zdCBwcmVmZXJzQm90dG9tID0gKHBsYWNlbWVudDogUGxhY2VtZW50KSA9PiBwbGFjZW1lbnQuc3RhcnRzV2l0aChcImJvdHRvbVwiKTtcblxuY29uc3QgZ2V0Q29udGVudCA9IChcblx0Y29udGVudDogUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlciB8IHVuZGVmaW5lZCxcblx0cGF5bG9hZD86IFRvb3RoRGV0YWlsLFxuKSA9PiB7XG5cdGlmICghY29udGVudCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRyZXR1cm4gdHlwZW9mIGNvbnRlbnQgPT09IFwiZnVuY3Rpb25cIiA/IGNvbnRlbnQocGF5bG9hZCkgOiBjb250ZW50O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIE9kb250b2dyYW1Ub29sdGlwKHtcblx0YWN0aXZlLFxuXHRwYXlsb2FkLFxuXHRwb3NpdGlvbixcblx0Y29udGVudCxcbn06IE9kb250b2dyYW1Ub29sdGlwUHJvcHMpIHtcblx0Y29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblx0Y29uc3QgW2Nvb3Jkcywgc2V0Q29vcmRzXSA9IHVzZVN0YXRlPHtcblx0XHRsZWZ0OiBudW1iZXI7XG5cdFx0dG9wOiBudW1iZXI7XG5cdFx0aXNCb3R0b21QbGFjZW1lbnQ6IGJvb2xlYW47XG5cdH0gfCBudWxsPihudWxsKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmICghKGFjdGl2ZSAmJiByZWYuY3VycmVudCAmJiBwb3NpdGlvbikpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCB0b29sdGlwQm94ID0gcmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0Y29uc3QgeyB4LCBwbGFjZW1lbnQsIG1hcmdpbiwgYW5jaG9yUmVjdCB9ID0gcG9zaXRpb247XG5cblx0XHRjb25zdCBtYXhMZWZ0ID0gTWF0aC5tYXgoXG5cdFx0XHRWSUVXUE9SVF9QQURESU5HLFxuXHRcdFx0d2luZG93LmlubmVyV2lkdGggLSB0b29sdGlwQm94LndpZHRoIC0gVklFV1BPUlRfUEFERElORyxcblx0XHQpO1xuXHRcdGNvbnN0IGxlZnQgPSBjbGFtcCh4IC0gdG9vbHRpcEJveC53aWR0aCAvIDIsIFZJRVdQT1JUX1BBRERJTkcsIG1heExlZnQpO1xuXG5cdFx0Y29uc3QgdG9wV2hlbkFib3ZlID1cblx0XHRcdGFuY2hvclJlY3QudG9wIC0gdG9vbHRpcEJveC5oZWlnaHQgLSBtYXJnaW4gLSBBUlJPV19PRkZTRVQ7XG5cdFx0Y29uc3QgdG9wV2hlbkJlbG93ID0gYW5jaG9yUmVjdC5ib3R0b20gKyBtYXJnaW4gKyBBUlJPV19PRkZTRVQ7XG5cblx0XHRjb25zdCBzaG91bGRTdGFydEJlbG93ID0gcHJlZmVyc0JvdHRvbShwbGFjZW1lbnQpO1xuXHRcdGxldCBpc0JvdHRvbVBsYWNlbWVudCA9IHNob3VsZFN0YXJ0QmVsb3c7XG5cdFx0bGV0IHRvcCA9IHNob3VsZFN0YXJ0QmVsb3cgPyB0b3BXaGVuQmVsb3cgOiB0b3BXaGVuQWJvdmU7XG5cblx0XHRpZiAoIWlzQm90dG9tUGxhY2VtZW50ICYmIHRvcCA8IFZJRVdQT1JUX1BBRERJTkcpIHtcblx0XHRcdGlzQm90dG9tUGxhY2VtZW50ID0gdHJ1ZTtcblx0XHRcdHRvcCA9IHRvcFdoZW5CZWxvdztcblx0XHR9XG5cblx0XHRjb25zdCBtYXhUb3AgPSBNYXRoLm1heChcblx0XHRcdFZJRVdQT1JUX1BBRERJTkcsXG5cdFx0XHR3aW5kb3cuaW5uZXJIZWlnaHQgLSB0b29sdGlwQm94LmhlaWdodCAtIFZJRVdQT1JUX1BBRERJTkcsXG5cdFx0KTtcblxuXHRcdGlmIChpc0JvdHRvbVBsYWNlbWVudCAmJiB0b3AgPiBtYXhUb3ApIHtcblx0XHRcdGlzQm90dG9tUGxhY2VtZW50ID0gZmFsc2U7XG5cdFx0XHR0b3AgPSB0b3BXaGVuQWJvdmU7XG5cdFx0fVxuXG5cdFx0dG9wID0gY2xhbXAodG9wLCBWSUVXUE9SVF9QQURESU5HLCBtYXhUb3ApO1xuXG5cdFx0c2V0Q29vcmRzKHsgbGVmdCwgdG9wLCBpc0JvdHRvbVBsYWNlbWVudCB9KTtcblx0fSwgW2FjdGl2ZSwgcG9zaXRpb25dKTtcblxuXHRpZiAoIShhY3RpdmUgJiYgcGF5bG9hZCkpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0cmVmPXtyZWZ9XG5cdFx0XHRjbGFzc05hbWU9XCJvZG9udG9ncmFtLXRvb2x0aXBcIlxuXHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0cG9zaXRpb246IFwiZml4ZWRcIixcblx0XHRcdFx0cG9pbnRlckV2ZW50czogXCJub25lXCIsXG5cdFx0XHRcdGJhY2tncm91bmQ6IFwidmFyKC0tb2RvbnRvZ3JhbS10b29sdGlwLWJnLCByZ2JhKDAsMCwwLDAuODUpKVwiLFxuXHRcdFx0XHRjb2xvcjogXCJ2YXIoLS1vZG9udG9ncmFtLXRvb2x0aXAtZmcsICNmZmYpXCIsXG5cdFx0XHRcdHBhZGRpbmc6IFwiNnB4IDEwcHhcIixcblx0XHRcdFx0Ym9yZGVyUmFkaXVzOiBcIjZweFwiLFxuXHRcdFx0XHRmb250U2l6ZTogXCIxMnB4XCIsXG5cdFx0XHRcdGxpbmVIZWlnaHQ6IDEuMyxcblx0XHRcdFx0d2hpdGVTcGFjZTogXCJub3dyYXBcIixcblx0XHRcdFx0ekluZGV4OiAxMDAwLFxuXHRcdFx0XHRsZWZ0OiBjb29yZHM/LmxlZnQgPz8gLTk5OTksXG5cdFx0XHRcdHRvcDogY29vcmRzPy50b3AgPz8gLTk5OTksXG5cdFx0XHRcdG9wYWNpdHk6IGNvb3JkcyA/IDEgOiAwLFxuXHRcdFx0XHR0cmFuc2l0aW9uOiBcIm9wYWNpdHkgMC4xNXMgZWFzZVwiLFxuXHRcdFx0fX1cblx0XHQ+XG5cdFx0XHR7Z2V0Q29udGVudChjb250ZW50LCBwYXlsb2FkKSA/PyAoXG5cdFx0XHRcdDw+XG5cdFx0XHRcdFx0PGRpdj5Ub290aDoge3BheWxvYWQubm90YXRpb25zLmZkaX08L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2PlR5cGU6IHtwYXlsb2FkLnR5cGV9PC9kaXY+XG5cdFx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHRcdFVuaXZlcnNhbDoge3BheWxvYWQubm90YXRpb25zLnVuaXZlcnNhbH0sIFBhbG1lcjp7XCIgXCJ9XG5cdFx0XHRcdFx0XHR7cGF5bG9hZC5ub3RhdGlvbnMucGFsbWVyfVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8Lz5cblx0XHRcdCl9XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzTmFtZT1cIm9kb250b2dyYW0tdG9vbHRpcC1hcnJvd1wiXG5cdFx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdFx0cG9zaXRpb246IFwiYWJzb2x1dGVcIixcblx0XHRcdFx0XHRsZWZ0OiBcIjUwJVwiLFxuXHRcdFx0XHRcdHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKC01MCUpXCIsXG5cdFx0XHRcdFx0d2lkdGg6IDAsXG5cdFx0XHRcdFx0aGVpZ2h0OiAwLFxuXHRcdFx0XHRcdGJvcmRlckxlZnQ6IFwiNnB4IHNvbGlkIHRyYW5zcGFyZW50XCIsXG5cdFx0XHRcdFx0Ym9yZGVyUmlnaHQ6IFwiNnB4IHNvbGlkIHRyYW5zcGFyZW50XCIsXG5cdFx0XHRcdFx0Li4uKGNvb3Jkcz8uaXNCb3R0b21QbGFjZW1lbnRcblx0XHRcdFx0XHRcdD8ge1xuXHRcdFx0XHRcdFx0XHRcdHRvcDogXCItNnB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyQm90dG9tOlxuXHRcdFx0XHRcdFx0XHRcdFx0XCI2cHggc29saWQgdmFyKC0tb2RvbnRvZ3JhbS10b29sdGlwLWJnLCByZ2JhKDAsIDAsIDAsIDAuODUpKVwiLFxuXHRcdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0XHQ6IHtcblx0XHRcdFx0XHRcdFx0XHRib3R0b206IFwiLTZweFwiLFxuXHRcdFx0XHRcdFx0XHRcdGJvcmRlclRvcDpcblx0XHRcdFx0XHRcdFx0XHRcdFwiNnB4IHNvbGlkIHZhcigtLW9kb250b2dyYW0tdG9vbHRpcC1iZywgcmdiYSgwLCAwLCAwLCAwLjg1KSlcIixcblx0XHRcdFx0XHRcdCAgfSksXG5cdFx0XHRcdH19XG5cdFx0XHQvPlxuXHRcdDwvZGl2PlxuXHQpO1xufVxuIiwgImV4cG9ydCBjb25zdCB0ZWV0aFBhdGhzID0gW1xuXHR7XG5cdFx0bmFtZTogXCIxXCIsXG5cdFx0dHlwZTogXCJDZW50cmFsIEluY2lzb3JcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTE3My45NTEgMS42OThjLTIuMTk4LjE2LTUuMzAyLjg2Mi01LjMwMi44NjJzLTUuNTMxIDEuMDI1LTcuNzgxIDIuMjdjLTIuNDAzIDEuMzMzLTUuNTUzIDMuMjk5LTYuMDEzIDUuMjU4LS40MzIgMS44NC0uNzggNC43MzQtLjQ5MSA2LjgzMmwuMDI3LjJjLjM0OCAyLjUyNy44NjUgNi4yOCAxLjIzOSAxMC4zMTYuMTg2IDItLjEwMSAzLjIxLjc1MSA2LjE2Ljg5NSAzLjEgMS4zOTUgNC41NzMgMi4wMTMgNS42ODcuNjQ2IDEuMTY0IDEuNDkzIDIuMDg3IDIuMDMgMy4yOC44NjYgMS45MjQgMi4zOTMgNC4yOSAzLjg3IDYuMWE0OC44MDUgNDguODA1IDAgMCAwIDIuMzYgMi42NjNjMS4wMTYgMS4wNzggMi44MTkgMy4xMSAzLjg5OCA0LjMzMSAxLjUyNiAxLjcyNyAzLjA3NiAzLjI0OCA0LjQyMyAzLjc0MiAxLjIxNy40NDYgMi43MDkuNjQyIDMuNzkzLjkzNiAxLjM2OS4zNzIgMi40OTQuNjM4IDQuNTk3IDAgMS41NDUtLjQ2OCAyLjcyNS0uNjIxIDQuMzcyLTIuNDI0IDIuMDY0LTIuMjU4IDIuODQ2LTMuNTE3IDMuNTEyLTQuNzQ2IDEuMDY1LTEuOTY0IDIuNTI0LTQuNjQ4IDMuNTQxLTYuNDIyLjYxMS0xLjA2OCAyLjIyMS0zLjA4OSA0LjA4Ni04Ljg0NSAxLjU0LTQuNzUyIDIuMzY3LTcuNzYgMi43MzEtOC45OTQuNDE1LTEuNDA4IDEuMDc5LTMuNTgzIDEuMzU1LTYuMTk2LjQ0LTQuMTc2IDEuMTE0LTcuNDgyIDEuMDYyLTExLjAyNi0uMDQ0LTMuMDQ2LjEwNC01LjA0LTEuMDY1LTYuMzA2LS45NS0xLjAyOS0xLjk4OC0yLjAwMS0zLjMwNi0yLjUzNC0xLjk1OS0uNzktMy43NzUtMS4zNTgtNS4yOTgtMS41OTItMS4zNTEtLjIwNy03LjA1LS4zNS0xMS4yMTktLjA1Ny0xLjU2Ny4xMS0zLjYxLjA5Ny05LjE4NS41MDVaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTE4OC4yNjkgNTAuMjE1YzE5LjI3NS00MS44NjcgMTAuNzY2LTQzLjYxMiA0LjkzNy00NC42ODQtNS44MjktMS4wNzMtMjguNDU1IDIuNTMtMjkuNzIgMi44MTctLjQ0Mi4yMTgtOC45MTEgMC00Ljc2NyAxOS41NCAzLjQxNiAxNi4xMDUgMTYuMTkzIDI2LjU5NiAxNy4yNDQgMjcuMjY1IDMuMTQ4IDIuMDAzIDguODM3IDIuNTk1IDEyLjMwNi00LjkzOFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTE2MC40NzIgMTQuNzI3Yy4zOTItLjQwMiA0LjMxNy0zLjMwOSA4Ljk0MS01LjQ3IDMuMDk3LTEuNDQ4IDcuNzczLTEuNjI5IDExLjIwNy0xLjc0OSA4Ljc1OS0uMzY1IDEwLjAwNC45MSAxMi42MzcgMS40OTUuNTYyLjEzOS45MDkuMjc2IDEuNzcxLjU5NVwiLFxuXHR9LFxuXG5cdHtcblx0XHRuYW1lOiBcIjJcIixcblx0XHR0eXBlOiBcIkxhdGVyYWwgSW5jaXNvclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xMzUuMDE2IDYwLjQxYzMuNDQzIDEuMzU1IDcuODM0IDIuNzMgOS42MDEgMi4zNDYgNC4xODUtLjkxIDcuMDQ0LTQuMDE3IDguMTIzLTguMTUyIDIuMDY5LTcuOTI3IDIuMjQ5LTE2LjI4OCAxLjk5NS0yNC40MzYtLjExMy0zLjU5Ni43Mi0xNi44MS00LjE4NC0xOC40NDQtOC4xMzUtNi4xNC0zMi4wODguNDk0LTM2Ljk3OSA4LjA1NS01LjAxMyA3Ljc1MS44NzggMjEuMTMxIDUuNTYgMjcuNzI4IDMuODYyIDUuNDQgOS43MTQgMTAuNDc0IDE1Ljg4NCAxMi45MDNaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEzNC42NSA1NS4zODZjMi43MzIgMS4wNzYgNi4yMTcgMi4xNjcgNy42MiAxLjg2MiAzLjMyMS0uNzIzIDUuNTktMy4xODggNi40NDYtNi40NyAxLjY0Mi02LjI5IDEuNzg2LTEyLjkyNyAxLjU4My0xOS4zOTMtLjA4OS0yLjg1NC41NzItMTMuMzQyLTMuMzItMTQuNjM4LTYuNDU2LTQuODczLTI1LjQ2Ni4zOTItMjkuMzQ4IDYuMzkzLTMuOTc5IDYuMTUyLjY5NiAxNi43NyA0LjQxMyAyMi4wMDYgMy4wNjQgNC4zMTcgNy43MDkgOC4zMTMgMTIuNjA2IDEwLjI0WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTIxLjU2OSAyOC45NTJjLjU1MS0uOTg0IDYuMzU0LTguMjE0IDEyLjg2Ni05LjA0NSAzLjIzOC0uNDEzIDEwLjYxOS0uMTcgMTEuODM4IDBcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiM1wiLFxuXHRcdHR5cGU6IFwiQ2FuaW5lXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTc3LjYzIDY0LjIzNmMxLjY5MiAxLjQwMSAxNS41MTYgMTQuNTgzIDM0LjY5OCAxNi45MDMgNS41NjkuNjc0IDE1LjA1OC03LjE4NCAxNS43ODktMTIuODkgMS4zMzUtMTAuNDIzLTEyLjQ0NC0yOS4yMDUtMjEuOTY1LTMzLjcwMy00LjU0Mi0yLjE0NS0yNS44OTItNC4wMzktMjguNTIzIDIuOTM5LTIuNDcxIDYuNTU3LTYuNTk2IDIxLjI5IDAgMjYuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMjMuMjg1IDY2LjI2N2MxLjA3Mi04LjM2OC0xMC4yMzQtMjMuOTQtMTcuOTktMjcuNjAzLTMuNzItMS43NTctMjEuMjA2LTMuMzA4LTIzLjM2IDIuNDA3LTEuNzU3IDQuNjYtNC4wOSAxMy4yODQtMi4zMDYgMTguMTcgNC4xNSAxMS4zNiA0MC44OTcgMjguNTczIDQzLjY1NiA3LjAyNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNODIuODQgNjAuMDQzYy0uMDEtLjg1NS0uMTkzLTQuNjMuMjU2LTguMTIuNjY3LTUuMTg1LjcwMy01Ljg2NiAxLjI5LTguMTA2LjQzNy0xLjY2NiAyLjA4My00LjkxIDE3LjQ4Ny0zLjc0OFwiLFxuXHRcdFx0XCJNMTAxLjQzOCA2OC40OWMuMzc2LS4wNDUgMi4yODQtNS4xMTIgOS40OTgtNi4zNDRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI0XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBQcmVtb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk05My42ODQgMTA4Ljc0OGMtNy40OTggMy4zOTctMzUuMzY4LTcuMzk3LTM1LjU5Ni03LjQ0MS0xLjQyOS0uODQyLTEyLjIxNS0yLjg1NC05LjA2OC0yOS40MTQuMTQ3LTEuMjM4IDEuMzUzLTIuMDUgMi4yMTgtMi41NTYuOTU2LS41NTkgMy4xNTctMS41OTUgNy41ODctMi43OTQgMi43MDctLjczNCAxMy44NTYtMy41NCAxOC42NzQtLjkyIDIuMjE2IDEuMjA2IDYuMzYzIDQuMTE3IDEwLjQ3MyA3LjAzNiA0LjExIDIuOTE5IDEwLjk1OCA4LjcxNSAxMy4zMjcgMTEuMzM4IDIuMjkxIDIuNTM3IDEwLjMyNCAxMy43NS03LjYxNSAyNC43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTkxLjQ5NSAxMDUuOTMxYy02LjUyOCAyLjk1OC0zMC43OTMtNi40NC0zMC45OTItNi40NzgtMS4yNDMtLjczNC0xMC42MzQtMi40ODYtNy44OTUtMjUuNjEuMTI4LTEuMDc4IDEuMTc4LTEuNzg1IDEuOTMyLTIuMjI1LjgzMi0uNDg3IDIuNzQ4LTEuMzkgNi42MDUtMi40MzMgMi4zNTctLjYzOSAxMi4wNjQtMy4wODIgMTYuMjU4LS44IDEuOTMgMS4wNSA1LjU0IDMuNTg0IDkuMTIgNi4xMjUgMy41NzggMi41NDEgOS41NCA3LjU4OCAxMS42MDMgOS44NzIgMS45OTQgMi4yMDggOC45ODcgMTEuOTcxLTYuNjMgMjEuNTQ5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk01NS4yMzQgOTIuNDE0Yy4wMjItLjI0Mi4wNi0xLjQ2OS44NzUtNy43OS40Ni0zLjU3MyAxLjgxMy01LjQ5IDMuMTM0LTcuMDEgMS4xOC0xLjM1OSAzLjUyNC0zLjE5MyA1Ljg4LTQuMzY1IDEuNDYtLjYzMiAzLjAyOS0xLjEyNiA2LjA0NC0xLjc3Ni44MjYtLjEzOCAxLjQ3Ny0uMTc1IDIuNTI2LS4zOTVcIixcblx0XHRcdFwiTTg3LjAyIDEwMS4zODdjNC4xODMtLjc5MiA4Ljc0Ny05Ljc3NCA4Ljc0Ny05Ljc3NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjVcIixcblx0XHR0eXBlOiBcIlNlY29uZCBQcmVtb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzMuMzk2IDEyNy42NTJjLTEuMDg4LTIuNzEzLTQuNDg2LTExLjg1Mi0zLjk2Mi0xNS4yNDYuNDc3LTMuMDg1IDE0LjQ3LTEyLjAwOCAyMy41OTUtMTIuMDA4IDIuMTc4IDAgMjUuMTU3IDYuNjY1IDM1LjA3MyAxNy45MDggNC41NTEgOS4zMjQtMS42MjQgMjMuMzM5LTE2LjIyIDIzLjMzOS04LjE5MyAwLTIzLjU2My0xLjg5Ny0yNS40NTMtMi4yMTUtMS44OTYtLjMxOS00LjMxNy0xLjEyOC02LjU5Ni0yLjMyMS0xLjI4OS0uNjc1LTItMS4wMzUtMi40NzgtMS42NDctLjY1NS0uODQtMi4xMDEtMy4xNzgtMy45Ni03LjgxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi44MzcgMTI2Ljc3OGMtLjk0NS0yLjM1Ni0zLjg5NS0xMC4yODktMy40NC0xMy4yMzUuNDE0LTIuNjc5IDEyLjU2MS0xMC40MjQgMjAuNDgzLTEwLjQyNCAxLjg5IDAgMjEuODM3IDUuNzg1IDMwLjQ0NSAxNS41NDUgMy45NTEgOC4wOTQtMS40MSAyMC4yNi0xNC4wOCAyMC4yNi03LjExMiAwLTIwLjQ1NC0xLjY0Ny0yMi4wOTUtMS45MjItMS42NDUtLjI3Ny0zLjc0Ny0uOTgtNS43MjUtMi4wMTUtMS4xMi0uNTg2LTEuNzM3LS44OTktMi4xNTEtMS40My0uNTctLjcyOS0xLjgyNS0yLjc1OS0zLjQzNy02Ljc3OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNDAuOCAxMzEuMjIxYy00LjAwMy0yMC4yNzggOC40NDItMjAuOTc0IDEzLjc3OS0yMy42OTJcIixcblx0XHRcdFwiTTc0LjA1NiAxMzQuNzI5YzYuMzUtNC4yNjQgNi4zNDMtMTAuNTAzIDYuNDg5LTExLjQ0OFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjZcIixcblx0XHR0eXBlOiBcIkZpcnN0IE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zNS41MzkgMjAzLjMyM2MtMy4zNjMuMTk2LTMyLjc4OC00LjAyLTI4LjQ5NS00Mi40NjUgMy42MzEtMjAuNDA4IDI2LjIxLTIzLjM2NCAyOS41NTctMjIuOTEyIDkuMDE5LS43NDUgMjUuNzI3IDYuNzQzIDI5LjI1NSA5LjQwMyA0LjU0NiAzLjQyNyA3LjM4NCA1LjY4MSA4LjYwNiA3LjA5MiAyLjQzNiAyLjgxNCA0LjQ5OSA1LjExIDQuNyA2LjMxMy4yODQgMS43MDMgMS4zMTcgNC43Mi0yLjI0OCA5LjY4Ny0yLjQ1MyAzLjQxOC0yLjk1NyA2LjY2My0yLjg1NiAxMC4yMjMuMTE4IDQuMTg1LjM3IDkuNzU0LS41MjQgMTEuNjMtLjU5MiAxLjI0NC0uOTg0IDIuNjI3LTIuMzc1IDMuMzkyLTIuMDE1IDEuMTA4LTQuNjEgMi4zMTctMTEuOTMgMy43NDgtMy42MjMuNzA4LTkuMzA5IDEuODMtMTIuNDAxIDIuMjkyLTUuMTkuNzc3LTguNDIzIDEuNDMtMTEuMjg5IDEuNTk3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi41MTUgMTk5LjA4NWMtMi45MjcuMTctMjguNTQtMy40OTktMjQuODAzLTM2Ljk2MyAzLjE2LTE3Ljc2NCAyMi44MTQtMjAuMzM3IDI1LjcyNy0xOS45NDQgMTAuODItLjg5MyAyNS43MDkgNS45ODkgMzIuOTU1IDE0LjM1OCAyLjEyIDIuNDUgMy45MTcgNC40NDggNC4wOTEgNS40OTUuMjQ4IDEuNDgyLjUxMyA0LjI2OC0yLjU5IDguNTkxLTIuMTM1IDIuOTc1LTEuOTQgNS42NDEtMS44NTIgOC43NC4wOTYgMy40MTcgMS40MDIgMTAuOTE3LTIuNTIzIDEzLjA3Ni0xLjc1NC45NjQtNC4wMTMgMi4wMTYtMTAuMzg0IDMuMjYxLTYuNzYyIDEuMzIyLTEzLjcyOCAyLjk4NC0yMC42MjEgMy4zODZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTM3LjEzMiAxOTIuMTQ3YzEuMjg4LS4zNzIgMy4zODUtMi4wNzEgNS4xODMtNS40MzhtOS4wMDgtMzUuOThjMS4xODggMS4yMjQgMi4xMTQgNi4zODUuMTUgMTEuMzYzbTAgMGMtMS41MzcgMy44OTktNC45NDQgOS4zNzgtMTEuMTk1IDkuMzc4IDYuODc3LjMyMSA0LjY1MSAxMC4zNDMgMi4wMzcgMTUuMjM5bTkuMTU5LTI0LjYxN2MxLjQ3LTIuNTg5IDQuOTY2LTcuNTcyIDguMDY4LTguMjE3bS0xNy4yMjcgMzIuODM0Yy0uMTg2IDIuMzQ4LjA0NCA3LjM1MSAyLjQ1OCA4LjU4NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjdcIixcblx0XHR0eXBlOiBcIlNlY29uZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk00Ljk2OSAyNDguMTMyYy0xLjE4OC0yLjc0LTE0LjcwOC0yNy4xNTIgMTIuMzE5LTQyLjEzOSAxLjgzNi0xLjAxOCAyNC41MDgtNy43MTEgNDUuMjggMTAuODc0IDIuMjc0IDIuMDM1IDQuNDU1IDMuNTc5IDUuNDAzIDUuMTAyIDEuNDE0IDIuMjcxIDIuMTI4IDMuNDM1IDEuNjg3IDUuNjA2LS4zODcgMS45MDEtMS41NCAzLjY0Mi0zLjc3IDcuNzExLTEuMTI3IDIuMDU2LTEuODU0IDMuNDI3LTEuMzY5IDcuODI0LjE3NSAxLjU5LjYyNyAzLjkzNS4wNDggNi42MDMtLjQ2NiAyLjE0Ny0uOTQxIDMuNTY3LTIuNTc4IDUuMDA2LTIuNTMgMi4yMjQtNS4zMDcgMy42NDUtOS4wNzYgNC4zNS0xLjA5MS4yMDQtMy4xMzMuODExLTcuNTI1IDEuNzAyLTIuNzc2LjU2My02LjYxOSAxLjIzNC0xMC4wOSAxLjY1NC0zLjQ3LjQyLTYuNDc4LjYzOC04LjYxMi42MzYtMy4zNTMtLjAwMi02LjczNC4wMzEtOS40NjUtMS40OGwtLjAxOC0uMDFjLTEuNjU0LS45MTUtNC4wNzYtMi4yNTUtNi4yNDUtNC43MzItMi4yNTgtMi41NzktNC41OTEtNS40ODItNS45ODktOC43MDdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTguNzk5IDI0Ni4yOGMtMS4xMjgtMi4zNTItMTIuODQzLTIzLjcwOSAxMC43NTYtMzYuNzk2IDEuNjA0LS44ODkgMjEuNC02LjczMiAzOS41MzggOS40OTYgMS45ODYgMS43NzcgMy44OSAzLjEyNSA0LjcxNyA0LjQ1NCAxLjIzNSAxLjk4MyAxLjg1OSAzIDEuNDczIDQuODk1LS4zMzcgMS42Ni0xLjM0MyAzLjE4LTMuMjkxIDYuNzM0LS45ODQgMS43OTUtMS42MTkgMi45OTItMS4xOTYgNi44MzEuMTU0IDEuMzg5LjU0OCAzLjQzNi4wNDIgNS43NjYtMi44NzIgMTMuMjMxLTMxLjIxMyAxMS42NTctMzMuMDc2IDExLjY1NmgtLjAwN2MtMi45MzYtLjAwMy0xMi43MTQtLjAxLTE4Ljk1Ni0xMy4wMzZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMyLjE0IDI1NS4wOTFjLjc0OC0uMzAzIDIuMjgtMi4zNzggMy4xMDMtNS43MjFtLTEuOTktMzUuNDgxYzMuMDA5IDEuMzYzIDQuMDE1IDQuODg4IDMuNzM2IDguNzE2bTAgMGMtLjQyNCA1LjgzNS0zLjgzMiAxMi4zNzctNy42ODMgMTMuMDQ5IDYuOTU0IDEuMTggNy4yNDQgOC40MTQgNS45MzcgMTMuNzE2bTEuNzQ2LTI2Ljc2NWMuMzI3LTIuMjQgMS44Mi02Ljk1OCA1LjE5LTcuOTFtLTYuOTM2IDM0LjY3NWMuNjUgMi4xNzIgMi41NSA2LjUwNyA0Ljk2NyA2LjQ3MVwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjhcIixcblx0XHR0eXBlOiBcIlRoaXJkIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTS44OTUgMjkxLjMzMWMtLjM2Mi0xLjIxOC0uMTE2LTMuNDExLS4xNjQtMy44OTItLjAzNS0uMzQuMTI0LTMuNDM4LjcyNy01LjU1OCAxLjA0LTIuODIgMS44MDgtNC43NCAyLjU3My01Ljc1MiAxLjQxMy0xLjg3MiAzLjkxMy00Ljc2OSA3LjEzNS03LjIgMi4yODgtMS43MjYgNS4wMDMtMy4xODcgOC4xMzMtNC4zMzkgMi4yNDktLjgyOCA0LjM2Mi0xLjUwMiA3LjczMi0xLjY5MyAyLjE3NS0uMTIzIDUuMjUtLjE1NSA4Ljc4Mi4xMDhzNy40MDMuODA0IDEwLjM1MyAxLjM5NyA0LjkyIDEuMjE4IDYuNjQxIDEuODkzYzEuNzIyLjY3NSAzLjE0OCAxLjM4OSAzLjk3MiAxLjc2OCAxLjUxLjY5NiAyLjkgMS4yMDkgMy44MjQgMi4xNCAxLjg1NyAxLjg3MiAyLjYxNyAzLjMzNCAyLjkxMiA0LjgwNy4yNTQgMS4yNy4yNTIgMy4yMTYtLjIyNCA0LjUzMS0uNjcyIDEuODU5LTEuNDY4IDIuODU2LTEuNDY4IDUuNyAwIDMuODU3IDEuNzEzIDUuOTUgMS45MTUgOC4zNTYuMzM3IDQuMDA4LjMxNyA2LjE2OC0uNDIgNy40ODUtLjU5MSAxLjA1Ny0xLjUzMiAyLjM4My01LjU0MSA1LjA4OC0xLjE3My43OTEtMi42ODQgMS42MzQtNi42NDMgMy40MjQtMi43NjIgMS4yNDgtNi45NzcgMy4xMDgtOS4yMDUgNC4xMDctMi40NzMgMS4xMDktNC42NjcgMi4yMjYtOC4yMzQgMy4wNTMtMi41NC41ODktNS42MzEuNzg0LTkuMDEyLjE4Ni0yLjMwNy0uNDA4LTUuNDQ5LTEuMTgzLTkuMTA3LTMuODI3LTMuOTI4LTIuODM5LTYuNTMtNC44OTctNy40OTctNi4wNDEtLjg2Ni0xLjAyNi0xLjcxNC0yLjA4Mi0yLjQxMi0zLjU1NS0uOTA0LTEuOTA1LTIuMjcyLTMuNjQzLTMtNS45MTYtLjg0Ni0yLjYzMy0xLjE2Ny00LjIzMy0xLjc3Mi02LjI3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk00LjczMiAyOTEuMTc1Yy0uMzE3LTEuMDctLjEwMS0yLjk5NC0uMTQ0LTMuNDE2LS4wMy0uMjk5LjExLTMuMDE5LjYzOC00Ljg4LjkxNC0yLjQ3NiAxLjU4OC00LjE2MSAyLjI2LTUuMDUgMS4yNC0xLjY0MyAzLjQzNC00LjE4NyA2LjI2My02LjMyMSAyLjAwOS0xLjUxNSA0LjM5My0yLjc5NyA3LjE0LTMuODA5IDEuOTc0LS43MjcgMy44My0xLjMxOCA2Ljc4OC0xLjQ4NiAxLjkxLS4xMDggNC42MS0uMTM2IDcuNzEuMDk1IDMuMS4yMzEgNi40OTguNzA2IDkuMDg4IDEuMjI2IDIuNTkuNTIxIDQuMzE5IDEuMDcgNS44MyAxLjY2MiAxLjUxMi41OTIgMi43NjQgMS4yMiAzLjQ4NyAxLjU1MyAxLjMyNi42MSAyLjU0NyAxLjA2MSAzLjM1NyAxLjg3OCAxLjYzIDEuNjQzIDIuMjk4IDIuOTI3IDIuNTU3IDQuMjIuMjIzIDEuMTE1LjIyMSAyLjgyNC0uMTk2IDMuOTc4LS41OSAxLjYzMi0xLjI5IDIuNTA3LTEuMjkgNS4wMDQgMCAzLjM4NSAxLjUwNCA1LjIyMyAxLjY4MiA3LjMzNS4yOTYgMy41MTkuMjc4IDUuNDE2LS4zNjkgNi41NzEtLjUyLjkyOC0xLjM0NSAyLjA5My00Ljg2NSA0LjQ2Ny0xLjAzLjY5NS0yLjM1NSAxLjQzNS01LjgzMSAzLjAwNi0yLjQyNSAxLjA5Ni02LjEyNiAyLjcyOC04LjA4MiAzLjYwNi0yLjE3Ljk3My00LjA5NiAxLjk1NC03LjIyOCAyLjY4LTIuMjI5LjUxNy00Ljk0NC42ODgtNy45MTIuMTYzLTIuMDI0LS4zNTgtNC43ODMtMS4wMzgtNy45OTUtMy4zNTktMy40NDgtMi40OTMtNS43MzItNC4yOTktNi41OC01LjMwNC0uNzYxLS45MDEtMS41MDUtMS44MjctMi4xMTktMy4xMjEtLjc5My0xLjY3Mi0xLjk5NC0zLjE5OC0yLjYzNC01LjE5My0uNzQyLTIuMzEyLTEuMDI0LTMuNzE3LTEuNTU1LTUuNTA1WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMS43MzIgMzA5LjUxMWMxLjQ2Mi0uODk3IDIuNTg1LTMuNjcyIDIuOTMtNi43MjZtLTIuOTMtMjkuNDUzYzIuMTE0IDEuMDkyIDMuNDkgNC40NCAzLjYxIDguMDYybTQuMTMzLTcuNThjLTEuMzUzIDEuMDU4LTQuMDc0IDQuMDU3LTQuMTM0IDcuNThtMCAwYy4xNTUgNC42OTMtMS43OTcgOS44NDYtNi45ODMgMTEuMTUyIDUuMzc5LS4zNTcgNi44NTkgNS4zMDUgNi4zMDMgMTAuMjM5bTQuNTU3IDcuMjRjLTEuNjc4LS42NzEtNC45MzgtMy4wNTgtNC41NTctNy4yNFwiLFxuXHRcdF0sXG5cdH0sXG5dO1xuXG5leHBvcnQgY29uc3QgTmV3VGVldGhQYXRocyA9IFtcblx0e1xuXHRcdG5hbWU6IFwiMVwiLFxuXHRcdHR5cGU6IFwiQ2VudHJhbCBJbmNpc29yXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zOTcuOTkyIDUxLjMzOUMzOTYuMTI2IDUxLjE4NDEgMzkzLjQ5NSA1MC41NjE3IDM5My40OTUgNTAuNTYxN0MzOTMuNDk1IDUwLjU2MTcgMzg4LjgwNCA0OS42NDUzIDM4Ni45MDMgNDguNTY3N0MzODQuODczIDQ3LjQxNjIgMzgyLjIxMyA0NS43MTk1IDM4MS44MzggNDQuMDUxNEMzODEuNDg3IDQyLjQ4MzYgMzgxLjIxNiA0MC4wMjI2IDM4MS40NzggMzguMjQzTDM4MS41MDMgMzguMDcyN0MzODEuODIgMzUuOTI4NyAzODIuMjkgMzIuNzQ1MiAzODIuNjQyIDI5LjMxOTFDMzgyLjgxNyAyNy42MjA3IDM4Mi41ODMgMjYuNTkwNSAzODMuMzMyIDI0LjA5MTFDMzg0LjExOCAyMS40NjUyIDM4NC41NTUgMjAuMjE3OSAzODUuMDkgMTkuMjc2NkMzODUuNjQ4IDE4LjI5MzcgMzg2LjM3NSAxNy41MTU5IDM4Ni44NDEgMTYuNTA3MkMzODcuNTkzIDE0Ljg4MDIgMzg4LjkxIDEyLjg4MjIgMzkwLjE4IDExLjM1NzNDMzkwLjkwMiAxMC40OTA1IDM5MS42MDIgOS43NDQ2MSAzOTIuMjA3IDkuMTE0NTRDMzkzLjA4IDguMjA2NjkgMzk0LjYyOSA2LjQ5NTkgMzk1LjU1NiA1LjQ2NzE5QzM5Ni44NjYgNC4wMTMyOSAzOTguMTk2IDIuNzMzNjQgMzk5LjM0NCAyLjMyNTQ3QzQwMC4zODIgMS45NTY0OCA0MDEuNjUyIDEuODAyODkgNDAyLjU3NSAxLjU2MTkyQzQwMy43NDEgMS4yNTc1MSA0MDQuNyAxLjA0MDQxIDQwNi40ODEgMS41OTk4OEM0MDcuNzg5IDIuMDEwNzggNDA4Ljc5IDIuMTUwOTMgNDEwLjE3NSAzLjY5NThDNDExLjkwOSA1LjYzMTQ3IDQxMi41NjMgNi43MDc5NSA0MTMuMTE5IDcuNzU3NDdDNDE0LjAwNyA5LjQzNTM0IDQxNS4yMjQgMTEuNzI3MyA0MTYuMDczIDEzLjI0MzVDNDE2LjU4NCAxNC4xNTU0IDQxNy45MzUgMTUuODg1OSA0MTkuNDcxIDIwLjc5MTlDNDIwLjczOSAyNC44NDIyIDQyMS40MTcgMjcuNDA0OCA0MjEuNzE2IDI4LjQ1NjRDNDIyLjA1NyAyOS42NTYyIDQyMi42MDIgMzEuNTA5MyA0MjIuODE1IDMzLjczMTNDNDIzLjE1NCAzNy4yODMyIDQyMy42OTkgNDAuMDk3OCA0MjMuNjI1IDQzLjEwNzdDNDIzLjU2MiA0NS42OTU4IDQyMy42NzEgNDcuMzkwNSA0MjIuNjY3IDQ4LjQ1NjdDNDIxLjg1MiA0OS4zMjI3IDQyMC45NjIgNTAuMTQwMyA0MTkuODM3IDUwLjU4MTVDNDE4LjE2NiA1MS4yMzY3IDQxNi42MTkgNTEuNzA0MyA0MTUuMzIzIDUxLjg5MDFDNDE0LjE3NCA1Mi4wNTQ4IDQwOS4zMyA1Mi4xMjkyIDQwNS43OTEgNTEuODQ0NUM0MDQuNDYxIDUxLjczNzUgNDAyLjcyNSA1MS43MzE5IDM5Ny45OTIgNTEuMzM5WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk00MTAuNTYyIDEwLjIzOTNDNDI2LjU4OCA0NS45Njk4IDQxOS4zNDQgNDcuMzgxMyA0MTQuMzgzIDQ4LjI0MzZDNDA5LjQyMSA0OS4xMDU4IDM5MC4yMjkgNDUuODU2NiAzODkuMTU2IDQ1LjYwMTNDMzg4Ljc4MyA0NS40MTIyIDM4MS41ODYgNDUuNTI2OCAzODUuMjcgMjguOTYxM0MzODguMzA3IDE1LjMwNyAzOTkuMjUgNi41MDA4IDQwMC4xNDkgNS45NDEyNUM0MDIuODQgNC4yNjU0IDQwNy42NzggMy44MTAyNSA0MTAuNTYyIDEwLjIzOTNaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0zODYuNjUgNDAuMTU2OEMzODYuOTc5IDQwLjUwMTMgMzkwLjI5IDQzLjAwMzggMzk0LjIgNDQuODc5QzM5Ni44MTkgNDYuMTM0NyA0MDAuNzkgNDYuMzI3NSA0MDMuNzA3IDQ2LjQ1ODJDNDExLjE0NSA0Ni44NDIyIDQxMi4yMTQgNDUuNzY4OCA0MTQuNDU2IDQ1LjI5NDRDNDE0LjkzNCA0NS4xODA5IDQxNS4yMyA0NS4wNjc1IDQxNS45NjUgNDQuODAzN1wiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCIyXCIsXG5cdFx0dHlwZTogXCJMYXRlcmFsIEluY2lzb3JcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTMzOS4zNjIgNS45MDIyN0MzNDIuMjU1IDMuNzE0MTYgMzQ2LjAzOCAxLjI1Nzc0IDM0Ny44MDcgMS4xNTY4OEMzNTEuOTk3IDAuOTE4MDQ5IDM1NS41MTUgMy4xMDYyMiAzNTcuNjI1IDYuNzM2MjNDMzYxLjY2OCAxMy42OTQxIDM2NC4wNDMgMjEuNTYwOSAzNjUuOTUxIDI5LjMzOTZDMzY2Ljc5MyAzMi43NzI3IDM3MS4wNjQgNDUuMDYxIDM2Ni44NjYgNDcuODk3QzM2MC44MDUgNTUuODQ3MiAzMzYuNDQ0IDU1Ljg2ODQgMzI5LjgzMyA0OS45OTc5QzMyMy4wNTcgNDMuOTgwNSAzMjUuMDkgMjkuNzY3NSAzMjcuNzcgMjIuMjkyMUMzMjkuOTgxIDE2LjEyODEgMzM0LjE3OCA5LjgyNDAzIDMzOS4zNjIgNS45MDIyN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMzQwLjM0MSAxMC43NTMzQzM0Mi42MzcgOS4wMTY3NCAzNDUuNjM5IDcuMDY3MjEgMzQ3LjA0NCA2Ljk4NzE3QzM1MC4zNjkgNi43OTc2MiAzNTMuMTYxIDguNTM0MjUgMzU0LjgzNSAxMS40MTUyQzM1OC4wNDQgMTYuOTM3MyAzNTkuOTI5IDIzLjE4MDcgMzYxLjQ0MyAyOS4zNTQyQzM2Mi4xMTIgMzIuMDc4OCAzNjUuNTAyIDQxLjgzMTQgMzYyLjE2OSA0NC4wODIyQzM1Ny4zNTkgNTAuMzkxOCAzMzguMDI1IDUwLjQwODYgMzMyLjc3OSA0NS43NDk2QzMyNy40MDEgNDAuOTczOCAzMjkuMDE0IDI5LjY5MzggMzMxLjE0MiAyMy43NjFDMzMyLjg5NiAxOC44NjkgMzM2LjIyNyAxMy44NjU4IDM0MC4zNDEgMTAuNzUzM1pcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTMzNC45NjQgMzkuMjEzMUMzMzUuNzQzIDM5Ljk5OTggMzQzLjEyOCA0NS4zMTY3IDM0OS40OTQgNDQuMzkwM0MzNTIuNjYgNDMuOTI5NyAzNTkuNTY0IDQxLjc1NzcgMzYwLjY3IDQxLjI3NjdcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiM1wiLFxuXHRcdHR5cGU6IFwiQ2FuaW5lXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0yNzUuMjg1IDM2LjcwMTZDMjc1LjQ2MSAzNC44MzU3IDI3NS44NDkgMTguNTQ3MyAyODYuMDE4IDUuNTc4NjdDMjg4Ljk3MSAxLjgxMzI1IDI5OS40MzQgMC44MjkwNzEgMzAzLjMxNiAzLjgyOTg5QzMxMC40MDggOS4zMTEzOSAzMTMuNDI2IDI4Ljk1MDYgMzEwLjM5NiAzNy40MDU5QzMwOC45NTEgNDEuNDM5MyAyOTcuMjE1IDU1LjQ1ODcgMjkxLjQyIDUyLjgzNjZDMjg1Ljk3NSA1MC4zNzI3IDI3NC42IDQzLjk3NDIgMjc1LjI4NSAzNi43MDE2WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zMDEuNTk4IDcuOTM5NDVDMzA3LjI5MSAxMi4zNDA2IDMwOS44NjQgMjguNTUxMyAzMDcuMzk2IDM1LjQzOTJDMzA2LjIxMiAzOC43NDI3IDI5Ni42MDEgNTAuMjI1IDI5MS44NTQgNDguMDc3NEMyODcuOTg0IDQ2LjMyNjUgMjgxLjM3NiA0Mi41MzIxIDI3OS41MDUgMzguNTA4NkMyNzUuMTU2IDI5LjE1MzUgMjg2LjkzNyAtMy4zOTI0NyAzMDEuNTk4IDcuOTM5NDVaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0yODEuMjU1IDM1LjcxMzJDMjgxLjc2NiAzNi4yMzQ5IDI4My45MzMgMzguNjIyNSAyODYuMzA3IDQwLjQ1NjNDMjg5LjgzNyA0My4xODE2IDI5MC4yNjkgNDMuNTcwNiAyOTEuOTc0IDQ0LjU2NzNDMjkzLjI0MyA0NS4zMDkxIDI5Ni4xOTIgNDYuMjcyNCAzMDQuNzgyIDM2LjI4MDMgTTI4Ny4zNzkgMTkuNDAxMkMyODcuNjMyIDE5LjIwMTYgMjkxLjgzOSAyMS4xMDY2IDI5Ni45MzMgMTcuNDk5XCIsXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjRcIixcblx0XHR0eXBlOiBcIkZpcnN0IFByZW1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0yMzYuOTggNC44Nzg1NEMyMzEuMzQgOC45MTk4OSAyMjcuNDc0IDMzLjgxMjEgMjI3LjQxIDMzLjk5NzFDMjI3LjQyMyAzNS4zOTQ4IDIyNC4zNDYgNDQuMTE1NyAyNDUuMDU5IDUzLjAxMTdDMjQ2LjAyNSA1My40MjY2IDI0Ny4xMjUgNTIuODg4IDI0Ny44NiA1Mi40Njk1QzI0OC42NyA1Mi4wMDczIDI1MC4zNTQgNTAuODM3NiAyNTMuMDk2IDQ4LjExQzI1NC43NzIgNDYuNDQyOSAyNjEuNTE5IDM5LjQ4NzIgMjYxLjYzNyAzNC44NjY1QzI2MS42OTEgMzIuNzQwNiAyNjEuMzE0IDI4LjQ4NjggMjYwLjkxNiAyNC4yNTY1QzI2MC41MTcgMjAuMDI2MiAyNTkuMTcyIDEyLjU4NTEgMjU4LjI1NSA5Ljc1MDJDMjU3LjM3IDcuMDA5MDUgMjUyLjU2OSAtMy41Nzk3NSAyMzYuOTggNC44Nzg1NFpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMjM4LjExNCA3LjY2MzQ2QzIzMy4yMDQgMTEuMTgyIDIyOS44MzggMzIuODU0NCAyMjkuNzgyIDMzLjAxNTVDMjI5Ljc5MyAzNC4yMzI0IDIyNy4xMTQgNDEuODI1MiAyNDUuMTQ4IDQ5LjU3MDZDMjQ1Ljk4OSA0OS45MzE3IDI0Ni45NDcgNDkuNDYyOSAyNDcuNTg2IDQ5LjA5ODVDMjQ4LjI5MyA0OC42OTYxIDI0OS43NTggNDcuNjc3NyAyNTIuMTQ2IDQ1LjMwMjlDMjUzLjYwNSA0My44NTE0IDI1OS40NzkgMzcuNzk1NSAyNTkuNTgyIDMzLjc3MjRDMjU5LjYyOSAzMS45MjE1IDI1OS4zMDEgMjguMjE4IDI1OC45NTQgMjQuNTM0OEMyNTguNjA3IDIwLjg1MTcgMjU3LjQzNSAxNC4zNzMxIDI1Ni42MzggMTEuOTA1QzI1NS44NjYgOS41MTgzOCAyNTEuNjg3IDAuMjk5MjU1IDIzOC4xMTQgNy42NjM0NlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTIzMi42OTkgMzkuODI3N0MyMzIuODg1IDM5LjkxMzggMjMzLjc5NiA0MC40MDI4IDIzOC43NTMgNDIuNDcxOUMyNDEuNTU1IDQzLjY0MTYgMjQzLjUyNiA0My40NjIzIDI0NS4xOTIgNDMuMTM5MUMyNDYuNjggNDIuODUwMiAyNDkuMDA3IDQxLjkxMjEgMjUwLjg1NiA0MC42ODZDMjUxLjkzMiAzOS44ODY0IDI1Mi45NTQgMzguOTQ5OSAyNTQuNjk4IDM3LjAyMzFDMjU1LjE0NyAzNi40NzgyIDI1NS40NDkgMzYuMDE4OSAyNTYuMDUyIDM1LjM0NTggTTIzOS41NDUgMTIuODQ0MkMyNDEuODg1IDEwLjEyNTIgMjUwLjM2NiAxMC41NzkzIDI1MC4zNjYgMTAuNTc5M1wiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI1XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgUHJlbW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTE4Ni40ODUgNDUuODkwNUMxODguMzkgNDcuNDkxNSAxOTQuODc4IDUyLjY2OCAxOTcuNzYyIDUzLjE0NTdDMjAwLjM4NCA1My41ODAxIDIxMS4zMTggNDQuNjM0NCAyMTMuNzQzIDM3LjI1NEMyMTQuMzIyIDM1LjQ5MjggMjE1LjAzOCAxNS4xMzg0IDIwOC41OCA0LjEzMTUyQzIwMi4yNDggLTIuMDI3MDEgMTg5LjI3MyAtMC43NTY2NTggMTg1LjM5NSAxMS4wNDc3QzE4My4yMTggMTcuNjczNCAxODAuNjY4IDMwLjYwOCAxODAuNDIzIDMyLjIyMDVDMTgwLjE3NyAzMy44MzgzIDE4MC4xODggMzYuMDExNyAxODAuNTQ3IDM4LjE3MTZDMTgwLjc1MSAzOS4zOTMzIDE4MC44NTMgNDAuMDY0OSAxODEuMjIxIDQwLjYxMzVDMTgxLjcyNiA0MS4zNjYyIDE4My4yMzMgNDMuMTU3NCAxODYuNDg1IDQ1Ljg5MDVaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTE4OC4xMDcgNDMuMzQwM0MxODkuNzYxIDQ0LjczMDEgMTk1LjM5MyA0OS4yMjM2IDE5Ny44OTYgNDkuNjM4M0MyMDAuMTcyIDUwLjAxNTQgMjA5LjY2NCA0Mi4yNDk5IDIxMS43NjkgMzUuODQzMkMyMTIuMjcxIDM0LjMxNDMgMjEyLjg5MyAxNi42NDUzIDIwNy4yODcgNy4wOTA1M0MyMDEuNzkxIDEuNzQ0NDkgMTkwLjUyNyAyLjg0NzI0IDE4Ny4xNiAxMy4wOTQzQzE4NS4yNzEgMTguODQ1OCAxODMuMDU3IDMwLjA3NCAxODIuODQ1IDMxLjQ3MzhDMTgyLjYzMSAzMi44NzgyIDE4Mi42NDEgMzQuNzY0OCAxODIuOTUzIDM2LjYzOThDMTgzLjEyOSAzNy43MDAzIDE4My4yMTggMzguMjgzMiAxODMuNTM3IDM4Ljc1OTRDMTgzLjk3NiAzOS40MTI5IDE4NS4yODQgNDAuOTY3OCAxODguMTA3IDQzLjM0MDNaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xODUuNTY2IDM4Ljk1NEMyMDAuOTAyIDQ3LjU3OTYgMjA0Ljc3MiAzNy42OTk5IDIwOC4zODggMzQuMTA2MSBNMTkxLjU2NiAxMS4xMjY4QzE5Ni43MDIgNy4xMjQ2NCAyMDEuNzQ1IDguNzg3NjIgMjAyLjU0OSA4LjkyMTA1XCIsXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjZcIixcblx0XHR0eXBlOiBcIkZpcnN0IE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xMjguOTA0IDQ1Ljg5NDFDMTMwLjY3NiA0Ny4zMDAxIDE0NS44ODQgNjEuOTc1NSAxNjIuMTQ1IDQ1LjE0MjNDMTYzLjI0OSA0My45OTg2IDE3Mi41ODkgMjguNzI1NSAxNjMuMDY1IDkuODg3OTJDMTYyLjAyMiA3LjgyNTE0IDE2MS4zMiA1LjkyNzU4IDE2MC4zOTIgNC45MzU1QzE1OS4wMDggMy40NTU5MyAxNTguMjk2IDIuNzA1MiAxNTYuNjIyIDIuNjAyNzlDMTU1LjE1NSAyLjUxMzExIDE1My42NTYgMy4wMTQ1OSAxNTAuMjQyIDMuODQ4NzlDMTQ4LjUxNyA0LjI3MDIgMTQ3LjM3MiA0LjUzMzA5IDE0NC4yNTEgMy4zMTY4QzE0My4xMjEgMi44NzY3NSAxNDEuNDk1IDIuMDg2NjUgMTM5LjQzIDEuOTg3MzhDMTM3Ljc2OCAxLjkwNzUxIDEzNi42MzYgMS45NzY1IDEzNS4yNjIgMi44OTIwOEMxMzMuMTQgNC4zMDcxNyAxMzEuNTU2IDYuMDYwMDcgMTMwLjMwMSA4LjY3ODM4QzEyOS45MzggOS40MzY3MiAxMjkuMDk0IDEwLjgxMTcgMTI3LjU4MSAxMy44NDk3QzEyNi42MjUgMTUuNzcgMTI1LjM4MSAxOC40NDk1IDEyNC4zOTQgMjAuOTA2M0MxMjMuNDA2IDIzLjM2MzEgMTIyLjY1NyAyNS41MjA0IDEyMi4yNCAyNy4wODE0QzEyMS41ODUgMjkuNTM1MSAxMjAuODk4IDMyLjAwMTcgMTIxLjQ2OCAzNC4yOTU3TDEyMS40NzEgMzQuMzEwMkMxMjEuODE3IDM1LjcgMTIyLjMyMiAzNy43MzQ1IDEyMy43MDkgMzkuODA2OEMxMjUuMTUzIDQxLjk2MzcgMTI2LjgxOSA0NC4yMzk3IDEyOC45MDQgNDUuODk0MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTMxLjAxIDQzLjQ1NTlDMTMyLjUwOSA0NC43NDE0IDE0NS44MzYgNTcuNDk3OSAxNjAuMDM0IDQyLjc5OTRDMTYwLjk5OSA0MS44MDA4IDE2OS4xNTQgMjguNDY0NiAxNjAuODM4IDEyLjAxNkMxNTkuOTI3IDEwLjIxNDkgMTU5LjMxNSA4LjU1Nzk2IDE1OC41MDQgNy42OTE3QzE1Ny4yOTYgNi4zOTk3NiAxNTYuNjc0IDUuNzQ0MjQgMTU1LjIxMiA1LjY1NDgyQzE1My45MzIgNS41NzY1MSAxNTIuNjIzIDYuMDE0MzkgMTQ5LjY0MSA2Ljc0MjhDMTQ4LjEzNSA3LjExMDc2IDE0Ny4xMzUgNy4zNDAzMiAxNDQuNDEgNi4yNzgyN0MxNDMuNDI0IDUuODk0MDQgMTQyLjAwNCA1LjIwNDE0IDE0MC4yIDUuMTE3NDZDMTI5Ljk1OSA0LjYyNTE5IDEyNS41NTUgMjUuNjY2IDEyNS4xOTEgMjcuMDI5TDEyNS4xODkgMjcuMDMzOEMxMjQuNjE2IDI5LjE4MjIgMTIyLjcwNSAzNi4zMzU5IDEzMS4wMSA0My40NTU5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTUzLjg1NCAyNy40NzQyQzE0OS41MDIgMjYuNjQwOSAxNDQuMDQ5IDI3Ljg1MTkgMTQyLjgwMiAzMC41MzcyQzE0My4zMDIgMjUuMjE4OSAxMzguMDY3IDIzLjU4ODkgMTMzLjkzMiAyMy41MDUxIE0xNTMuODU0IDI3LjQ3NDJDMTU2LjcwOSAyOC4wMjA5IDE1OS4wOSAyOS40NDc2IDE1OS40OTggMzEuOTE1MyBNMTUzLjg1NCAyNy40NzQyQzE1NS41NTYgMjcuNjc0NiAxNTkuMyAyNy41MDYyIDE2MC42NTcgMjUuMjI4NiBNMTI5LjEzOSAyNC42NTM4QzEyOS41MDcgMjQuMTY2NSAxMzEuMzI2IDIzLjQ1MjMgMTMzLjkzMiAyMy41MDUxIE0xMzMuOTMyIDIzLjUwNTFDMTMyLjQ3MSAyMi42MDQ4IDEyOS42NzIgMjAuMzY0IDEzMC4xNzMgMTguNjAzNFwiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI3XCIsXG5cdFx0dHlwZTogXCJTZWNvbmQgTW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTYwLjY3OTMgMjUuMzQxOEM1OS45MTYxIDI3LjY0NDkgNTcuMzYzNiA0OC45MDM3IDg0LjkxMjkgNTMuMDg0NkM5OS43ODg5IDU0LjM2MjYgMTA2LjA1NSAzOS4yMDM3IDEwNi4zNjUgMzYuNzkwOUMxMDguNTY0IDMwLjY1NDkgMTA2LjQ2OSAxNy42MzM3IDEwNS4yNzYgMTQuNjgzM0MxMDMuNzM5IDEwLjg4MTYgMTAyLjcgOC40ODcwNiAxMDEuOTQ2IDcuMzczNzhDMTAwLjQ0MiA1LjE1NDAxIDk5LjIzIDMuMjkwNjQgOTguNDMgMi45MjY1NUM5Ny4yOTgzIDIuNDExNDUgOTUuMzkxOSAxLjEzMDM0IDkxLjI3MTQgMi42ODQzNUM4OC40MzU5IDMuNzUzNzMgODYuMDgzOCAzLjQ5OTggODMuNjI1NiAyLjc2NjA0QzgwLjczNjMgMS45MDM2IDc2LjkwODIgMC42OTAyMDkgNzUuNDM2NyAwLjk2MjA1NUM3NC40NjA2IDEuMTQyMzYgNzMuNDI0OSAxLjE1Njg5IDcyLjYzMzMgMS45ODIxNUM3MS40ODY3IDMuMTc3NjQgNzAuMTYxOCA0Ljc1ODA3IDY3LjgwMjEgOS41ODM5QzY2LjYzNCAxMS45NzI5IDY0Ljc5MzIgMTUuNzE5NiA2My44OTQ5IDE3Ljc4NDlDNjIuMzg3IDIxLjI1MTkgNjEuMzI5OCAyMy4zNzg1IDYwLjY3OTMgMjUuMzQxOFpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNNjMuODA5OSAyNS40NTMyQzYzLjE0NTYgMjcuNDU3OSA2MC45MjM4IDQ1Ljk2MjQgODQuOTAzNyA0OS42MDE1Qzk3Ljg1MjMgNTAuNzEzOSAxMDMuMzA3IDM3LjUxOTEgMTAzLjU3NiAzNS40MTlDMTA2LjIxNSAyOC4wNTY5IDEwNC4yMDIgMTYuNDE1MyA5OS43MyA5LjgxMzI0Qzk4LjQyMTEgNy44ODEwOCA5Ny4zNjU4IDYuMjU5MTQgOTYuNjY5NSA1Ljk0MjIyQzk1LjY4NDQgNS40OTM4NyA5My43OTYgNC43OTA1IDkwLjIwOTMgNi4xNDMxNkM4Ny43NDEyIDcuMDczOTkgODUuOTIyOSA2LjQ0MTIgODMuNzgzMiA1LjgwMjUxQzgxLjQyMzQgNS4wOTgxMiA3Ni40NDg4IDIuNzkxMzQgNzQuMjE1MSA1LjEyMDE4QzczLjIxNzEgNi4xNjA3NyA3Mi4wNjM4IDcuNTM2NDUgNzAuMDA5OCAxMS43MzdDNjcuODMgMTYuMTk1IDY1LjM3NDQgMjAuNzMxOCA2My44MDk5IDI1LjQ1MzJaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk05Mi4zMzc1IDIxLjk0MThDODkuMzM3NyAyMi4yODQ5IDg0Ljg5MDYgMjMuNjMzOSA4My43MjUzIDI3Ljk4MjlDODQuNzgzOCAyMy4xMzggNzcuMzk2MiAyMi44MTg1IDczLjUwMjIgMjMuNzI0NyBNOTIuMzM3NSAyMS45NDE4Qzk2LjE2NjYgMjEuNTAzOCA5OS41ODUgMjMuMTEwMSAxMDAuMjE1IDI0LjE2NSBNOTIuMzM3NSAyMS45NDE4Qzk0LjQxMjcgMjEuNDAyIDk4LjUzMTcgMTkuODk4IDk5LjU1ODQgMTcuODU5NyBNNjguNzUyNCAyNi4zMTczQzY5LjI1MTMgMjUuNDkgNzAuODI0MiAyNC4zNDc5IDczLjUwMjIgMjMuNzI0NyBNNzMuNTAyMiAyMy43MjQ3QzcxLjgzMzkgMjMuNDE2OSA2OC4zOTU1IDIyLjMyMzggNjcuOTg3OCAyMC40MTRcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiOFwiLFxuXHRcdHR5cGU6IFwiVGhpcmQgTW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTIyLjg4MzYgNTIuODA2NkMyMy45MjcyIDUzLjA5MTUgMjUuNzk4NiA1Mi44NzU2IDI2LjIwOTYgNTIuOTExNkMyNi41MDEgNTIuOTM3MiAyOS4xNDU5IDUyLjc4NTIgMzAuOTUzNCA1Mi4yODA1QzMzLjM1NTIgNTEuNDE0OSAzNC45OTAxIDUwLjc3NzcgMzUuODQ5NSA1MC4xNDk4QzM3LjQzOTEgNDguOTg4NiAzOS44OTY1IDQ2LjkzODcgNDEuOTUwNiA0NC4zMDUyQzQzLjQwOTIgNDIuNDM1MiA0NC42MzgxIDQwLjIyMDcgNDUuNjAwOCAzNy42NzIxQzQ2LjI5MjcgMzUuODQwNSA0Ni44NTM2IDM0LjEyMDMgNDYuOTkyOCAzMS4zODM3QzQ3LjA4MjcgMjkuNjE2OSA0Ny4wODg4IDI3LjEyMDcgNDYuODM5NiAyNC4yNTZDNDYuNTkwNCAyMS4zOTEzIDQ2LjEwMDggMTguMjUzMSA0NS41NzM3IDE1Ljg2MjlDNDUuMDQ2NiAxMy40NzI3IDQ0LjQ5ODYgMTEuODc4OCA0My45MTAzIDEwLjQ4NjFDNDMuMzIxOSA5LjA5MzM0IDQyLjcwMTYgNy45NDE0NSA0Mi4zNzE4IDcuMjc1MzVDNDEuNzY3MiA2LjA1NDQ2IDQxLjMxODggNC45Mjk3NiA0MC41MTcyIDQuMTg3MDVDMzguOTA1MiAyLjY5MzUzIDM3LjY1MDQgMi4wODcxNiAzNi4zOSAxLjg1ODg0QzM1LjMwMzEgMS42NjE5NSAzMy42NDA3IDEuNjc3NTIgMzIuNTIwNyAyLjA3MzQxQzMwLjkzNzQgMi42MzMwNCAzMC4wOTEyIDMuMjg2NCAyNy42NjEzIDMuMzA3MjlDMjQuMzY2NyAzLjMzNTYgMjIuNTY2NyAxLjk2MDQ5IDIwLjUwOTggMS44MTQwMkMxNy4wODI3IDEuNTY5OTggMTUuMjM3NiAxLjYwMjE2IDE0LjExODIgMi4yMDk3NkMxMy4yMTkzIDIuNjk3NjggMTIuMDkyNyAzLjQ3MDgzIDkuODA5NzkgNi43NDUxNUM5LjE0MTg4IDcuNzAzMTIgOC40MzI1MiA4LjkzNTA5IDYuOTMxMjIgMTIuMTYyQzUuODg0MDcgMTQuNDEyOCA0LjMyNDUyIDE3Ljg0ODIgMy40ODYzOSAxOS42NjQxQzIuNTU2MjcgMjEuNjc5MyAxLjYxNzM5IDIzLjQ2ODQgMC45MzUzNzIgMjYuMzY5OEMwLjQ0OTg0NyAyOC40MzUyIDAuMzA1NTg5IDMwLjk0NjYgMC44Mzk2ODIgMzMuNjg2MkMxLjIwNDA4IDM1LjU1NTQgMS44ODc5IDM4LjEwMDQgNC4xNzI0OSA0MS4wNTA1QzYuNjI1NDIgNDQuMjE4IDguNDAxNTEgNDYuMzE0OSA5LjM4NjAxIDQ3LjA5MUMxMC4yNjg2IDQ3Ljc4NjggMTEuMTc2MiA0OC40NjY4IDEyLjQzOTcgNDkuMDIzMUMxNC4wNzM0IDQ5Ljc0MjMgMTUuNTY4MSA1MC44Mzk5IDE3LjUxNDcgNTEuNDE1MkMxOS43NzA1IDUyLjA4MTggMjEuMTM5NSA1Mi4zMzA1IDIyLjg4MzYgNTIuODA2NlpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMjIuOTkwNCA0OS42OTA4QzIzLjkwNjYgNDkuOTQwOSAyNS41NDk0IDQ5Ljc1MTMgMjUuOTEwMyA0OS43ODNDMjYuMTY2IDQ5LjgwNTQgMjguNDg4IDQ5LjY3MTkgMzAuMDc0OCA0OS4yMjg5QzMyLjE4MzQgNDguNDY5IDMzLjYxODYgNDcuOTA5NiAzNC4zNzMxIDQ3LjM1ODRDMzUuNzY4NiA0Ni4zMzg5IDM3LjkyNTkgNDQuNTM5NCAzOS43MjkyIDQyLjIyNzRDNDEuMDA5NyA0MC41ODU4IDQyLjA4ODUgMzguNjQxNiA0Mi45MzM3IDM2LjQwNDJDNDMuNTQxMSAzNC43OTYzIDQ0LjAzMzUgMzMuMjg2MiA0NC4xNTU3IDMwLjg4MzdDNDQuMjM0NiAyOS4zMzI2IDQ0LjI0IDI3LjE0MTMgNDQuMDIxMiAyNC42MjYzQzQzLjgwMjUgMjIuMTExNCA0My4zNzI2IDE5LjM1NjQgNDIuOTA5OSAxNy4yNTgxQzQyLjQ0NzIgMTUuMTU5OCA0MS45NjYxIDEzLjc2MDQgNDEuNDQ5NiAxMi41Mzc4QzQwLjkzMzEgMTEuMzE1MSA0MC4zODg1IDEwLjMwMzkgNDAuMDk5IDkuNzE5MTFDMzkuNTY4MiA4LjY0NzI5IDM5LjE3NDUgNy42NTk5MyAzOC40NzA4IDcuMDA3ODlDMzcuMDU1NiA1LjY5Njc0IDM1Ljk1NDEgNS4xNjQ0MiAzNC44NDc2IDQuOTYzOThDMzMuODkzNCA0Ljc5MTEzIDMyLjQzNCA0LjgwNDggMzEuNDUwNyA1LjE1MjM0QzMwLjA2MDggNS42NDM2NCAyOS4zMTc5IDYuMjE3MjIgMjcuMTg0NyA2LjIzNTU2QzI0LjI5MjQgNi4yNjA0MiAyMi43MTIyIDUuMDUzMjEgMjAuOTA2NCA0LjkyNDYzQzE3Ljg5NzggNC43MTAzOCAxNi4yNzc5IDQuNzM4NjQgMTUuMjk1MyA1LjI3MjA0QzE0LjUwNjEgNS43MDAzOSAxMy41MTcxIDYuMzc5MTQgMTEuNTEyOSA5LjI1MzY1QzEwLjkyNjYgMTAuMDk0NiAxMC4zMDM4IDExLjE3NjIgOC45ODU4NSAxNC4wMDkxQzguMDY2NTYgMTUuOTg1MSA2LjY5NzQ0IDE5LjAwMSA1Ljk2MTY1IDIwLjU5NTFDNS4xNDUxIDIyLjM2NDIgNC4zMjA4NiAyMy45MzQ5IDMuNzIyMTIgMjYuNDgyQzMuMjk1ODggMjguMjk1MyAzLjE2OTI0IDMwLjQ5OTkgMy42MzgxMiAzMi45MDUxQzMuOTU4MDIgMzQuNTQ2IDQuNTU4MzQgMzYuNzgwMyA2LjU2Mzk3IDM5LjM3MDJDOC43MTczOSA0Mi4xNTA5IDEwLjI3NjYgNDMuOTkxNyAxMS4xNDA5IDQ0LjY3MzFDMTEuOTE1OCA0NS4yODM5IDEyLjcxMjUgNDUuODgwOSAxMy44MjE3IDQ2LjM2OTJDMTUuMjU2IDQ3LjAwMDYgMTYuNTY4MiA0Ny45NjQzIDE4LjI3NzEgNDguNDY5M0MyMC4yNTc0IDQ5LjA1NDQgMjEuNDU5MiA0OS4yNzI4IDIyLjk5MDQgNDkuNjkwOFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTcuMTM3NDIgMjcuOTEwMUM3Ljg5MzI3IDI2LjcxNyAxMC4yNTYyIDI1Ljc4NDYgMTIuODYyNyAyNS40ODNNMzguMDQ1OCAyNy42NDQ0QzM3LjA5ODMgMjUuOTM2OCAzNC4yMjg0IDI0Ljg0NDcgMzEuMTMyOCAyNC43NzM5TTM3LjU4IDIxLjM2MjZDMzYuNjg1IDIyLjQ2ODcgMzQuMTQyNiAyNC42OTk0IDMxLjEzMjggMjQuNzczOU0zMS4xMzI4IDI0Ljc3MzlDMjcuMTIyNiAyNC42ODIzIDIyLjczMzYgMjYuMzA0OCAyMS42NTQ0IDMwLjUyMzlDMjEuOTIyMSAyNi4xNTU1IDE3LjA3NDQgMjQuOTk1NyAxMi44NjI3IDI1LjQ4M002LjY0NiAyMS44MzcxQzcuMjMwODQgMjMuMTk0MiA5LjI5Mjk2IDI1LjgyMzIgMTIuODYyNyAyNS40ODNcIixcblx0fSxcbl07XG4iLCAiaW1wb3J0IHR5cGUgeyBOb3RhdGlvbiwgT2RvbnRvZ3JhbUNvbG9ycywgUGxhY2VtZW50IH0gZnJvbSBcIi4vdHlwZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9Dc3NWYXJzKGNvbG9yczogT2RvbnRvZ3JhbUNvbG9ycykge1xuICAgIGNvbnN0IGNzc1ZhcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIGlmIChjb2xvcnMuZGFya0JsdWUpIHtcbiAgICAgICAgY3NzVmFyc1tcIi0tZGFyay1ibHVlXCJdID0gY29sb3JzLmRhcmtCbHVlO1xuICAgIH1cbiAgICBpZiAoY29sb3JzLmJhc2VCbHVlKSB7XG4gICAgICAgIGNzc1ZhcnNbXCItLWJhc2UtYmx1ZVwiXSA9IGNvbG9ycy5iYXNlQmx1ZTtcbiAgICB9XG4gICAgaWYgKGNvbG9ycy5saWdodEJsdWUpIHtcbiAgICAgICAgY3NzVmFyc1tcIi0tbGlnaHQtYmx1ZVwiXSA9IGNvbG9ycy5saWdodEJsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNzc1ZhcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb290aE5vdGF0aW9ucyhmZGk6IHN0cmluZykge1xuICAgIGNvbnN0IG51bSA9IGZkaS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuICAgIGNvbnN0IHVuaXZlcnNhbCA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJVbml2ZXJzYWxcIik7XG4gICAgY29uc3QgcGFsbWVyID0gY29udmVydEZESVRvTm90YXRpb24oZmRpLCBcIlBhbG1lclwiKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGZkaTogbnVtLFxuICAgICAgICB1bml2ZXJzYWwsXG4gICAgICAgIHBhbG1lcixcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgcGxhY2VtZW50czogUmVjb3JkPFxuICAgIFBsYWNlbWVudCxcbiAgICAodG9vdGhCb3g6IERPTVJlY3QsIG1hcmdpbjogbnVtYmVyKSA9PiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH1cbj4gPSB7XG4gICAgdG9wOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQudG9wIC0gbSB9KSxcbiAgICBcInRvcC1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0LCB5OiB0LnRvcCAtIG0gfSksXG4gICAgXCJ0b3AtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LnRvcCAtIG0gfSksXG4gICAgYm90dG9tOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0ICsgdC53aWR0aCAvIDIsIHk6IHQuYm90dG9tICsgbSB9KSxcbiAgICBcImJvdHRvbS1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0LCB5OiB0LmJvdHRvbSArIG0gfSksXG4gICAgXCJib3R0b20tZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0LCB5OiB0LmJvdHRvbSArIG0gfSksXG4gICAgbGVmdDogKHQsIG0pID0+ICh7IHg6IHQubGVmdCAtIG0sIHk6IHQudG9wICsgdC5oZWlnaHQgLyAyIH0pLFxuICAgIFwibGVmdC1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0IC0gbSwgeTogdC50b3AgfSksXG4gICAgXCJsZWZ0LWVuZFwiOiAodCwgbSkgPT4gKHsgeDogdC5sZWZ0IC0gbSwgeTogdC5ib3R0b20gfSksXG4gICAgcmlnaHQ6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC50b3AgKyB0LmhlaWdodCAvIDIgfSksXG4gICAgXCJyaWdodC1zdGFydFwiOiAodCwgbSkgPT4gKHsgeDogdC5yaWdodCArIG0sIHk6IHQudG9wIH0pLFxuICAgIFwicmlnaHQtZW5kXCI6ICh0LCBtKSA9PiAoeyB4OiB0LnJpZ2h0ICsgbSwgeTogdC5ib3R0b20gfSksXG59O1xuXG4vLzQyNSwgNTVcblxuZXhwb3J0IGNvbnN0IHF1YWRyYW50czogQXJyYXk8e1xuICAgIG5hbWU6IFwiZmlyc3RcIiB8IFwic2Vjb25kXCIgfCBcInRoaXJkXCIgfCBcImZvdXJ0aFwiO1xuICAgIHRyYW5zZm9ybTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG59PiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJmaXJzdFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcIlwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiVXBwZXIgUmlnaHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzZWNvbmRcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoODQwLCAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC01NSwwKVwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiVXBwZXIgTGVmdFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInRoaXJkXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoMSwgLTEpIHRyYW5zbGF0ZSgwLCAtMTUwKVwiLFxuICAgICAgICAgICAgbGFiZWw6IFwiTG93ZXIgUmlnaHRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJmb3VydGhcIixcbiAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoODQwLCAwKSBzY2FsZSgtMSwgLTEpIHRyYW5zbGF0ZSgtNTUsLTE1MClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICBdO1xuXG5leHBvcnQgY29uc3Qgb2xkcXVhZHJhbnRzOiBBcnJheTx7XG4gICAgbmFtZTogXCJmaXJzdFwiIHwgXCJzZWNvbmRcIiB8IFwidGhpcmRcIiB8IFwiZm91cnRoXCI7XG4gICAgdHJhbnNmb3JtOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn0+ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImZpcnN0XCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwiXCIsXG4gICAgICAgICAgICBsYWJlbDogXCJVcHBlciBSaWdodFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInNlY29uZFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTQwOSwgMClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIlVwcGVyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ0aGlyZFwiLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBcInNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoMCwgLTY5NClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZm91cnRoXCIsXG4gICAgICAgICAgICB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTQwOSwgLTY5NClcIixcbiAgICAgICAgICAgIGxhYmVsOiBcIkxvd2VyIExlZnRcIixcbiAgICAgICAgfSxcbiAgICBdO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZESVRvTm90YXRpb24oZmRpOiBzdHJpbmcsIG5vdGF0aW9uOiBOb3RhdGlvbikge1xuICAgIGNvbnN0IG51bSA9IGZkaS5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuXG4gICAgY29uc3QgZmRpVG9Vbml2ZXJzYWw6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gICAgICAgIFwiMTFcIjogOCxcbiAgICAgICAgXCIxMlwiOiA3LFxuICAgICAgICBcIjEzXCI6IDYsXG4gICAgICAgIFwiMTRcIjogNSxcbiAgICAgICAgXCIxNVwiOiA0LFxuICAgICAgICBcIjE2XCI6IDMsXG4gICAgICAgIFwiMTdcIjogMixcbiAgICAgICAgXCIxOFwiOiAxLFxuICAgICAgICBcIjIxXCI6IDksXG4gICAgICAgIFwiMjJcIjogMTAsXG4gICAgICAgIFwiMjNcIjogMTEsXG4gICAgICAgIFwiMjRcIjogMTIsXG4gICAgICAgIFwiMjVcIjogMTMsXG4gICAgICAgIFwiMjZcIjogMTQsXG4gICAgICAgIFwiMjdcIjogMTUsXG4gICAgICAgIFwiMjhcIjogMTYsXG4gICAgICAgIFwiMzFcIjogMjQsXG4gICAgICAgIFwiMzJcIjogMjMsXG4gICAgICAgIFwiMzNcIjogMjIsXG4gICAgICAgIFwiMzRcIjogMjEsXG4gICAgICAgIFwiMzVcIjogMjAsXG4gICAgICAgIFwiMzZcIjogMTksXG4gICAgICAgIFwiMzdcIjogMTgsXG4gICAgICAgIFwiMzhcIjogMTcsXG4gICAgICAgIFwiNDFcIjogMjUsXG4gICAgICAgIFwiNDJcIjogMjYsXG4gICAgICAgIFwiNDNcIjogMjcsXG4gICAgICAgIFwiNDRcIjogMjgsXG4gICAgICAgIFwiNDVcIjogMjksXG4gICAgICAgIFwiNDZcIjogMzAsXG4gICAgICAgIFwiNDdcIjogMzEsXG4gICAgICAgIFwiNDhcIjogMzIsXG4gICAgfTtcblxuICAgIGlmIChub3RhdGlvbiA9PT0gXCJVbml2ZXJzYWxcIikge1xuICAgICAgICByZXR1cm4gU3RyaW5nKGZkaVRvVW5pdmVyc2FsW251bV0gPz8gbnVtKTtcbiAgICB9XG5cbiAgICBpZiAobm90YXRpb24gPT09IFwiUGFsbWVyXCIpIHtcbiAgICAgICAgaWYgKG51bS5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVhZHJhbnQgPSBudW1bMF07XG4gICAgICAgIGNvbnN0IHRvb3RoID0gbnVtWzFdO1xuICAgICAgICBjb25zdCBzeW1ib2xzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAgICAgXCIxXCI6IFwiVVJcIixcbiAgICAgICAgICAgIFwiMlwiOiBcIlVMXCIsXG4gICAgICAgICAgICBcIjNcIjogXCJMTFwiLFxuICAgICAgICAgICAgXCI0XCI6IFwiTFJcIixcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gYCR7dG9vdGh9JHtzeW1ib2xzW3F1YWRyYW50XSA/PyBcIlwifWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUNBLE9BSUUsZUFBQUEsRUFDQSxXQUFBQyxFQUNBLFVBQUFDLEdBQ0EsWUFBQUMsT0FDSyxRQ29CSCxPQVFDLE9BQUFDLEVBUkQsUUFBQUMsT0FBQSxvQkFyQkcsSUFBTUMsR0FBNEMsQ0FBQyxDQUN6RCxXQUFBQyxFQUNBLFVBQUFDLEVBQVksRUFDYixJQUNLLENBQUNELEdBQWNBLEVBQVcsU0FBVyxFQUNqQyxLQUlQSCxFQUFDLE1BQ0EsVUFBV0ksRUFDWCxNQUFPLENBQ04sUUFBUyxPQUNULElBQUssRUFDTCxXQUFZLGFBQ1osU0FBVSxHQUNWLFNBQVUsTUFDWCxFQUNBLGFBQVcseUJBRVYsU0FBQUQsRUFBVyxJQUFLRSxHQUNoQkosR0FBQyxNQUVBLE1BQU8sQ0FDTixRQUFTLE9BQ1QsV0FBWSxTQUNaLElBQUssQ0FDTixFQUVBLFVBQUFELEVBQUMsUUFDQSxjQUFZLE9BQ1osTUFBTyxDQUNOLE1BQU8sR0FDUCxPQUFRLEdBQ1IsYUFBYyxFQUNkLFdBQVlLLEVBQVUsVUFD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QyxFQUFNLFVBQUE4RCxFQUFXLE1BQUFDLENBQU0sRUFBR0MsSUFDakRsRixFQUFDLEtBQWEsVUFBV2dGLEVBQ3RCLFNBQUFWLEdBQVksU0FBU1ksRUFBUSxDQUFDLEVBQUUsR0FEM0JoRSxDQUVSLENBQ0QsR0FDSCxFQUVDRCxHQUNDakIsRUFBQ21GLEdBQUEsQ0FDQyxPQUFRckMsRUFBWSxPQUNwQixTQUFVQSxFQUFZLFNBQ3RCLFFBQVNBLEVBQVksUUFDckIsUUFBUzlCLEVBQVEsUUFDbkIsRUFHRE0sR0FBY3RCLEVBQUNvRixFQUFBLENBQWdCLFdBQVloRSxFQUFpQixHQUMvRCxDQUVKLEVBRU9pRSxHQUFRN0UiLAogICJuYW1lcyI6IFsidXNlQ2FsbGJhY2siLCAidXNlTWVtbyIsICJ1c2VSZWYiLCAidXNlU3RhdGUiLCAianN4IiwgImpzeHMiLCAiQ29uZGl0aW9uTGFiZWxzIiwgImNvbmRpdGlvbnMiLCAiY2xhc3NOYW1lIiwgImNvbmRpdGlvbiIsICJMYWJlbHNfZGVmYXVsdCIsICJqc3giLCAianN4cyIsICJUZWV0aCIsICJuYW1lIiwgIm91dGxpbmVQYXRoIiwgInNoYWRvd1BhdGgiLCAibGluZUhpZ2hsaWdodFBhdGgiLCAic2VsZWN0ZWQiLCAiY29uZGl0aW9uIiwgInJlYWRPbmx5IiwgIm9uQ2xpY2siLCAib25LZXlEb3duIiwgIm9uSG92ZXIiLCAib25Gb2N1cyIsICJvbkxlYXZlIiwgIm9uQmx1ciIsICJjaGlsZHJlbiIsICJzdHJva2VDb2xvciIsICJmaWxsQ29sb3IiLCAiZSIsICJkIiwgInVzZUVmZmVjdCIsICJ1c2VSZWYiLCAidXNlU3RhdGUiLCAiRnJhZ21lbnQiLCAianN4IiwgImpzeHMiLCAiQVJST1dfT0ZGU0VUIiwgIlZJRVdQT1JUX1BBRERJTkciLCAiY2xhbXAiLCAidmFsdWUiLCAibWluIiwgIm1heCIsICJwcmVmZXJzQm90dG9tIiwgInBsYWNlbWVudCIsICJnZXRDb250ZW50IiwgImNvbnRlbnQiLCAicGF5bG9hZCIsICJPZG9udG9ncmFtVG9vbHRpcCIsICJhY3RpdmUiLCAicG9zaXRpb24iLCAicmVmIiwgImNvb3JkcyIsICJzZXRDb29yZHMiLCAidG9vbHRpcEJveCIsICJ4IiwgIm1hcmdpbiIsICJhbmNob3JSZWN0IiwgIm1heExlZnQiLCAibGVmdCIsICJ0b3BXaGVuQWJvdmUiLCAidG9wV2hlbkJlbG93IiwgInNob3VsZFN0YXJ0QmVsb3ciLCAiaXNCb3R0b21QbGFjZW1lbnQiLCAidG9wIiwgIm1heFRvcCIsICJ0ZWV0aFBhdGhzIiwgIk5ld1RlZXRoUGF0aHMiLCAibWFwVG9Dc3NWYXJzIiwgImNvbG9ycyIsICJjc3NWYXJzIiwgImdldFRvb3RoTm90YXRpb25zIiwgImZkaSIsICJudW0iLCAidW5pdmVyc2FsIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgInBhbG1lciIsICJwbGFjZW1lbnRzIiwgIm0iLCAicXVhZHJhbnRzIiwgIm9sZHF1YWRyYW50cyIsICJub3RhdGlvbiIsICJmZGlUb1VuaXZlcnNhbCIsICJxdWFkcmFudCIsICJqc3giLCAianN4cyIsICJnZXRWaWV3Qm94IiwgImxheW91dCIsICJzaG93SGFsZiIsICJmdWxsIiwgInVwcGVyIiwgImxvd2VyIiwgIk9kb250b2dyYW0iLCAiZGVmYXVsdFNlbGVjdGVkIiwgInNpbmdsZVNlbGVjdCIsICJvbkNoYW5nZSIsICJjbGFzc05hbWUiLCAidGhlbWUiLCAiY29sb3JzIiwgIm5vdGF0aW9uIiwgInRvb2x0aXAiLCAic2hvd1Rvb2x0aXAiLCAibmFtZSIsICJtYXhUZWV0aCIsICJ0ZWV0aENvbmRpdGlvbnMiLCAicmVhZE9ubHkiLCAic2hvd0xhYmVscyIsICJzdHlsZXMiLCAidGVldGhwYXRoIiwgInRlZXRoUGF0aHMiLCAiTmV3VGVldGhQYXRocyIsICJxdWFkcmFudHMiLCAib2xkcXVhZHJhbnRzIiwgInRvb3RoVHlwZUJ5TmFtZSIsICJ1c2VNZW1vIiwgInQiLCAiZ2V0VG9vdGhUeXBlIiwgInVzZUNhbGxiYWNrIiwgImlkIiwgInRvb3RoTmFtZSIsICJjbGFtcE1heFRlZXRoIiwgInZhbHVlIiwgImJ1aWxkVG9vdGhEZXRhaWwiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAidGhlbWVDb2xvcnMiLCAic2VsZWN0ZWQiLCAic2V0U2VsZWN0ZWQiLCAidXNlU3RhdGUiLCAic3ZnUmVmIiwgInVzZVJlZiIsICJ0b29sdGlwRGF0YSIsICJzZXRUb29sdGlwRGF0YSIsICJoYW5kbGVUb2dnbGUiLCAicHJldmlvdXMiLCAidXBkYXRlZCIsICJoYW5kbGVLZXlEb3duIiwgImV2ZW50IiwgImhhbmRsZUhvdmVyIiwgInBsYWNlbWVudCIsICJfYSIsICJfYiIsICJwYXRoIiwgInRvb3RoQm94IiwgIm1hcmdpbiIsICJ4IiwgInBsYWNlbWVudHMiLCAiaGFuZGxlTGVhdmUiLCAicHJldiIsICJ2aXNpYmxlUXVhZHJhbnRzIiwgImZpbHRlcmVkVGVldGgiLCAiY29uZGl0aW9uTWFwIiwgIm1hcCIsICJjb25kaXRpb24iLCAidG9vdGhJZCIsICJyZW5kZXJUZWV0aCIsICJwcmVmaXgiLCAidG9vdGgiLCAiZGlzcGxheU5hbWUiLCAiY29udmVydEZESVRvTm90YXRpb24iLCAiVGVldGgiLCAiY3VycmVudElkIiwgImZpbmFsQ29sb3JzIiwgIm1hcFRvQ3NzVmFycyIsICJjb250YWluZXJDbGFzc2VzIiwgInRyYW5zZm9ybSIsICJsYWJlbCIsICJpbmRleCIsICJPZG9udG9ncmFtVG9vbHRpcCIsICJMYWJlbHNfZGVmYXVsdCIsICJPZG9udG9ncmFtX2RlZmF1bHQiXQp9Cg==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-odontogram",
|
|
3
3
|
"description": "dental chart for selecting teeth",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.5",
|
|
5
5
|
"author": "Pratik Sharma <sharma.pratik2016@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"keywords": [
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
17
|
-
"url": ""
|
|
17
|
+
"url": "https://github.com/biomathcode/react-odontogram"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
20
|
"dev": "concurrently \"pnpm build --watch\" \"pnpm storybook\" \"pnpm test\" ",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"link:self": "pnpm link --global",
|
|
31
31
|
"prepare": "lefthook install",
|
|
32
32
|
"deploy-storybook": "gh-pages -d storybook-static",
|
|
33
|
-
"coverage": "vitest run --coverage"
|
|
33
|
+
"test:coverage": "vitest run --coverage"
|
|
34
34
|
},
|
|
35
35
|
"types": "./dist/index.d.ts",
|
|
36
36
|
"exports": {
|
|
@@ -118,4 +118,4 @@
|
|
|
118
118
|
"lefthook"
|
|
119
119
|
]
|
|
120
120
|
}
|
|
121
|
-
}
|
|
121
|
+
}
|