react-odontogram 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/index.css +2 -2
- package/dist/index.d.mts +31 -1
- package/dist/index.d.ts +31 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# 🦷 `react-odontogram`
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
|
|
5
7
|
[](https://www.npmjs.com/package/react-odontogram)
|
|
6
8
|
[](https://www.npmjs.com/package/react-odontogram)
|
|
7
9
|
[](https://biomathcode.github.io/react-odontogram)
|
|
@@ -11,6 +13,14 @@ Built with SVG and React hooks — fully customizable, accessible, and designed
|
|
|
11
13
|
|
|
12
14
|
---
|
|
13
15
|
|
|
16
|
+
## 🖼️ Preview
|
|
17
|
+
|
|
18
|
+
| Light Mode | Dark Mode |
|
|
19
|
+
| ------------------------------------------ | ---------------------------------------- |
|
|
20
|
+
|  |  |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
14
24
|
## 🧩 Demo
|
|
15
25
|
|
|
16
26
|
👉 **Live Preview:** [https://biomathcode.github.io/react-odontogram](https://biomathcode.github.io/react-odontogram)
|
package/dist/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--dark-blue: #3e5edc;--base-blue: #8a98be;--light-blue: #c6ccf8}.Odontogram svg.dark-theme{--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 svg path:nth-of-type(2){opacity:0;transition:all ease-in .2s}.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}g[class^=teeth-]:hover path:nth-of-type(2){fill:var(--light-blue);opacity:1}
|
|
2
|
-
/*# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
:root{--dark-blue: #3e5edc;--base-blue: #8a98be;--light-blue: #c6ccf8}.Odontogram svg.dark-theme{--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 svg path:nth-of-type(2){opacity:0;transition:all ease-in .2s}.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}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)}.dark-theme .odontogram-tooltip{background:#fffffff2;color:#000}
|
|
2
|
+
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3N0eWxlcy5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIjpyb290IHtcblx0LS1kYXJrLWJsdWU6ICMzZTVlZGM7XG5cdC0tYmFzZS1ibHVlOiAjOGE5OGJlO1xuXHQtLWxpZ2h0LWJsdWU6ICNjNmNjZjg7XG59XG5cbi8qIFx1RDgzQ1x1REYxOSBEYXJrIHRoZW1lIG92ZXJyaWRlcyAqL1xuLk9kb250b2dyYW0gc3ZnLmRhcmstdGhlbWUge1xuXHQtLWRhcmstYmx1ZTogI2FhYjZmZjsgLyogbGlnaHRlciBibHVlIGZvciBjb250cmFzdCBvbiBkYXJrIGJnICovXG5cdC0tYmFzZS1ibHVlOiAjZDBkNWY2OyAvKiBsaWdodCBtdXRlZCBiYXNlICovXG5cdC0tbGlnaHQtYmx1ZTogIzUzNjFlNjsgLyogdmlicmFudCBoaWdobGlnaHQgYmx1ZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMGIwZDFhOyAvKiBvcHRpb25hbCBwYWdlIGJhY2tncm91bmQgKi9cblx0Y29sb3Itc2NoZW1lOiBkYXJrO1xuXHRjb2xvcjogI2U0ZTZlZjtcbn1cblxuLk9kb250b2dyYW0gc3ZnIHtcblx0Y29sb3I6IHZhcigtLWJhc2UtYmx1ZSk7XG5cdGZpbGw6IFwibm9uZVwiO1xuXHR0cmFuc2l0aW9uOiBhbGwgZWFzZS1pbiAxMjVtcztcbn1cblxuLk9kb250b2dyYW0gc3ZnIHBhdGg6bnRoLW9mLXR5cGUoMikge1xuXHRvcGFjaXR5OiAwO1xuXHR0cmFuc2l0aW9uOiBhbGwgZWFzZS1pbiAyMDBtcztcbn1cblxuLk9kb250b2dyYW0gZy5zZWxlY3RlZCBwYXRoOm50aC1vZi10eXBlKDIpIHtcblx0ZmlsbDogdmFyKC0tbGlnaHQtYmx1ZSk7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5PZG9udG9ncmFtIGcuc2VsZWN0ZWQgcGF0aDpmaXJzdC1vZi10eXBlIHtcblx0dHJhbnNpdGlvbjogc3Ryb2tlIDFzIGVhc2U7XG59XG5cbi8qIEFuaW1hdGUgZGFzaCBvbiBob3ZlciAqL1xuLk9kb250b2dyYW0gZy5zZWxlY3RlZDpob3ZlciBwYXRoOmZpcnN0LW9mLXR5cGUge1xuXHRzdHJva2U6IGN1cnJlbnRDb2xvcjtcblx0c3Ryb2tlLXdpZHRoOiAxO1xuXHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdHN0cm9rZS1kYXNoYXJyYXk6IDQgNDsgLyogZGFzaCBsZW5ndGggKyBnYXAgKi9cblx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cdHRyYW5zaXRpb246IHN0cm9rZSA1cyBlYXNlO1xuXHRhbmltYXRpb246IGRhc2gtbW92ZSAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdGFuaW1hdGlvbi1kZWxheTogMXM7XG5cblx0ZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgOHB4IGN1cnJlbnRDb2xvcik7XG5cdC13ZWJraXQtZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgOHB4IGN1cnJlbnRDb2xvcik7XG59XG5cbkBrZXlmcmFtZXMgZGFzaC1tb3ZlIHtcblx0dG8ge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiA4OyAvKiBtb3ZlIGJ5IG9uZSBkYXNoK2dhcCBsZW5ndGggKi9cblx0fVxufVxuXG4uT2RvbnRvZ3JhbSBnLnNlbGVjdGVkIHtcblx0LyogZmlsbDogdmFyKC0tbGlnaHQtYmx1ZSk7ICAqL1xuXHQvKiBzdHJva2U6IHZhcigtLWRhcmstYmx1ZSk7ICovXG5cdC8qIHN0cm9rZS13aWR0aDogMS41OyAqL1xuXHR0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuXHRjb2xvcjogdmFyKC0tZGFyay1ibHVlKTtcbn1cblxuLk9kb250b2dyYW0gZy5zZWxlY3RlZCBwYXRoIHtcblx0c3Ryb2tlLXdpZHRoOiAxLjU7XG59XG5cbmdbY2xhc3NePVwidGVldGgtXCJdOmhvdmVyIHBhdGg6bnRoLW9mLXR5cGUoMikge1xuXHRmaWxsOiB2YXIoLS1saWdodC1ibHVlKTtcblx0b3BhY2l0eTogMTtcbn1cblxuXG5cbi5vZG9udG9ncmFtLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbi5kYXJrLXRoZW1lIC5vZG9udG9ncmFtLXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBjb2xvcjogIzAwMDtcbn0iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxNQUNDLGFBQWEsUUFDYixhQUFhLFFBQ2IsY0FBYyxPQUNmLENBR0EsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxXQUNmLGFBQWEsUUFDYixhQUFhLFFBQ2IsY0FBYyxRQUNkLGlCQUFrQixRQUNsQixhQUFjLEtBQ2QsTUFBTyxPQUNSLENBRUEsQ0FUQyxXQVNXLElBQ1gsTUFBTyxJQUFJLGFBQ1gsS0FBTSxPQUNOLFdBQVksSUFBSSxRQUFRLEtBQ3pCLENBRUEsQ0FmQyxXQWVXLElBQUksSUFBSSxnQkFDbkIsUUFBUyxFQUNULFdBQVksSUFBSSxRQUFRLEdBQ3pCLENBRUEsQ0FwQkMsV0FvQlcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxnQkFDMUIsS0FBTSxJQUFJLGNBQ1YsUUFBUyxDQUNWLENBRUEsQ0F6QkMsV0F5QlcsQ0FBQyxDQUxDLFNBS1MsSUFBSSxlQUMxQixXQUFZLE9BQU8sR0FBRyxJQUN2QixDQUdBLENBOUJDLFdBOEJXLENBQUMsQ0FWQyxRQVVRLE9BQU8sSUFBSSxlQUNoQyxPQUFRLGFBQ1IsYUFBYyxFQUNkLGVBQWdCLE1BQ2hCLGlCQUFrQixFQUFFLEVBQ3BCLGtCQUFtQixFQUNuQixXQUFZLE9BQU8sR0FBRyxLQUN0QixVQUFXLFVBQVUsR0FBRyxPQUFPLFNBQy9CLGdCQUFpQixHQUVqQixPQUFRLFlBQVksRUFBRSxFQUFFLElBQUksY0FDNUIsZUFBZ0IsWUFBWSxFQUFFLEVBQUUsSUFBSSxhQUNyQyxDQUVBLFdBUFksVUFRWCxHQUNDLGtCQUFtQixDQUNwQixDQUNELENBRUEsQ0FsREMsV0FrRFcsQ0FBQyxDQTlCQyxTQWtDYixXQUFZLElBQUksSUFBSyxLQUNyQixNQUFPLElBQUksWUFDWixDQUVBLENBMURDLFdBMERXLENBQUMsQ0F0Q0MsU0FzQ1MsS0FDdEIsYUFBYyxHQUNmLENBRUEsQ0FBQyxDQUFDLGNBQWdCLE9BQU8sSUFBSSxnQkFDNUIsS0FBTSxJQUFJLGNBQ1YsUUFBUyxDQUNWLENBSUEsQ0FBQyxtQkFDQyxXQUFZLEVBQUUsSUFBSSxJQUFJLFVBQ3RCLGdCQUFpQixLQUFLLElBQ3hCLENBRUEsQ0ExRWdCLFdBMEVKLENBTFgsbUJBTUMsV0FBWSxVQUNaLE1BQU8sSUFDVCIsCiAgIm5hbWVzIjogW10KfQo= */
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
type Placement = "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
|
|
4
|
+
interface TeethProps {
|
|
5
|
+
name: string;
|
|
6
|
+
outlinePath: string;
|
|
7
|
+
shadowPath: string;
|
|
8
|
+
lineHighlightPath: string | string[];
|
|
9
|
+
selected?: boolean;
|
|
10
|
+
onClick?: (name: string) => void;
|
|
11
|
+
onKeyDown?: (e: React.KeyboardEvent<SVGGElement>, name: string) => void;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
onHover?: (name: string, event: React.MouseEvent, placement?: Placement) => void;
|
|
14
|
+
onLeave?: () => void;
|
|
15
|
+
}
|
|
1
16
|
interface ToothDetail {
|
|
2
17
|
id: string;
|
|
3
18
|
notations: {
|
|
@@ -16,7 +31,22 @@ interface OdontogramProps {
|
|
|
16
31
|
theme: "light" | "dark";
|
|
17
32
|
colors: Record<string, string>;
|
|
18
33
|
notation?: "FDI" | "Universal" | "Palmer";
|
|
34
|
+
tooltip?: {
|
|
35
|
+
placement?: Placement;
|
|
36
|
+
margin?: number;
|
|
37
|
+
content?: React.ReactNode | ((payload?: ToothDetail) => React.ReactNode);
|
|
38
|
+
};
|
|
39
|
+
showTooltip?: boolean;
|
|
40
|
+
showHalf?: "upper" | "lower" | "full";
|
|
19
41
|
}
|
|
42
|
+
declare function convertFDIToNotation(fdi: string, notation: "FDI" | "Universal" | "Palmer"): string;
|
|
43
|
+
declare function getToothNotations(fdi: string): {
|
|
44
|
+
fdi: string;
|
|
45
|
+
universal: string;
|
|
46
|
+
palmer: string;
|
|
47
|
+
};
|
|
48
|
+
declare const Teeth: ({ name, outlinePath, shadowPath, lineHighlightPath, selected, onClick, onKeyDown, onHover, onLeave, children, }: TeethProps) => react_jsx_runtime.JSX.Element;
|
|
20
49
|
declare const Odontogram: React.FC<OdontogramProps>;
|
|
50
|
+
declare function mapToCssVars(colors: Record<string, string | undefined>): Record<string, string>;
|
|
21
51
|
|
|
22
|
-
export { Odontogram as default };
|
|
52
|
+
export { Odontogram, type OdontogramProps, Teeth, type TeethProps, type ToothDetail, convertFDIToNotation, Odontogram as default, getToothNotations, mapToCssVars };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
type Placement = "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
|
|
4
|
+
interface TeethProps {
|
|
5
|
+
name: string;
|
|
6
|
+
outlinePath: string;
|
|
7
|
+
shadowPath: string;
|
|
8
|
+
lineHighlightPath: string | string[];
|
|
9
|
+
selected?: boolean;
|
|
10
|
+
onClick?: (name: string) => void;
|
|
11
|
+
onKeyDown?: (e: React.KeyboardEvent<SVGGElement>, name: string) => void;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
onHover?: (name: string, event: React.MouseEvent, placement?: Placement) => void;
|
|
14
|
+
onLeave?: () => void;
|
|
15
|
+
}
|
|
1
16
|
interface ToothDetail {
|
|
2
17
|
id: string;
|
|
3
18
|
notations: {
|
|
@@ -16,7 +31,22 @@ interface OdontogramProps {
|
|
|
16
31
|
theme: "light" | "dark";
|
|
17
32
|
colors: Record<string, string>;
|
|
18
33
|
notation?: "FDI" | "Universal" | "Palmer";
|
|
34
|
+
tooltip?: {
|
|
35
|
+
placement?: Placement;
|
|
36
|
+
margin?: number;
|
|
37
|
+
content?: React.ReactNode | ((payload?: ToothDetail) => React.ReactNode);
|
|
38
|
+
};
|
|
39
|
+
showTooltip?: boolean;
|
|
40
|
+
showHalf?: "upper" | "lower" | "full";
|
|
19
41
|
}
|
|
42
|
+
declare function convertFDIToNotation(fdi: string, notation: "FDI" | "Universal" | "Palmer"): string;
|
|
43
|
+
declare function getToothNotations(fdi: string): {
|
|
44
|
+
fdi: string;
|
|
45
|
+
universal: string;
|
|
46
|
+
palmer: string;
|
|
47
|
+
};
|
|
48
|
+
declare const Teeth: ({ name, outlinePath, shadowPath, lineHighlightPath, selected, onClick, onKeyDown, onHover, onLeave, children, }: TeethProps) => react_jsx_runtime.JSX.Element;
|
|
20
49
|
declare const Odontogram: React.FC<OdontogramProps>;
|
|
50
|
+
declare function mapToCssVars(colors: Record<string, string | undefined>): Record<string, string>;
|
|
21
51
|
|
|
22
|
-
export { Odontogram as default };
|
|
52
|
+
export { Odontogram, type OdontogramProps, Teeth, type TeethProps, type ToothDetail, convertFDIToNotation, Odontogram as default, getToothNotations, mapToCssVars };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var k=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var L=(e,t)=>{for(var a in t)k(e,a,{get:t[a],enumerable:!0})},$=(e,t,a,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of R(t))!x.call(e,i)&&i!==a&&k(e,i,{get:()=>t[i],enumerable:!(s=O(t,i))||s.enumerable});return e};var N=e=>$(k({},"__esModule",{value:!0}),e);var F={};L(F,{default:()=>w});module.exports=N(F);var m=require("react");var y=[{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"]}];var o=require("react/jsx-runtime");function v(e,t){let a=e.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(t==="Universal")return String(s[a]??a);if(t==="Palmer"){let i=a[0];return`${a[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[i]??""}`}return a}function B(e){let t=e.replace("teeth-",""),a=v(e,"Universal"),s=v(e,"Palmer");return{fdi:t,universal:a,palmer:s}}var I=({name:e,outlinePath:t,shadowPath:a,lineHighlightPath:s,selected:i,onClick:c,onKeyDown:h,children:u})=>(0,o.jsxs)("g",{className:`${e} ${i?"selected":""}`,tabIndex:0,onClick:()=>c==null?void 0:c(e),onKeyDown:d=>h==null?void 0:h(d,e),role:"button","aria-pressed":i,"aria-label":`Tooth ${e}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[u,(0,o.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:t}),(0,o.jsx)("path",{fill:"currentColor",d:a}),Array.isArray(s)?s.map((d,g)=>(0,o.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d},g)):(0,o.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:s})]}),U=({defaultSelected:e=[],onChange:t,className:a="",theme:s="light",colors:i={},notation:c})=>{let h=s==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[u,d]=(0,m.useState)(new Set(e)),g=(0,m.useCallback)(r=>{d(l=>{let n=new Set(l);n.has(r)?n.delete(r):n.add(r);let p=Array.from(n).map(f=>{let T=f.replace("teeth-","").slice(1),b=y.find(C=>C.name===T);return{id:f,notations:B(f),type:(b==null?void 0:b.type)??"Unknown"}});return t==null||t(p),n})},[t]),Z=(0,m.useCallback)((r,l)=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),g(l))},[g]),P=[{name:"first",transform:""},{name:"second",transform:"scale(-1, 1) translate(-409, 0)"},{name:"third",transform:"scale(1, -1) translate(0, -694)"},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)"}],M=r=>y.map(l=>{let n=`${r}${l.name}`,p=v(n,c??"FDI");return(0,o.jsx)(I,{...l,name:n,selected:u.has(n),onClick:g,onKeyDown:Z,children:(0,o.jsx)("title",{children:p})},n)}),S={...h,...D(i)};return(0,o.jsx)("div",{className:`Odontogram ${s==="dark"?"dark-theme":""}`,style:{...S,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},children:(0,o.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 409 694",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[(0,o.jsx)("g",{name:"upper",children:P.slice(0,2).map(({name:r,transform:l},n)=>(0,o.jsx)("g",{name:r,transform:l,children:M(`teeth-${n+1}`)},r))}),(0,o.jsx)("g",{name:"lower",children:P.slice(2).map(({name:r,transform:l},n)=>(0,o.jsx)("g",{name:r,transform:l,children:M(`teeth-${n+3}`)},r))})]})})};function D(e){let t={};return e.darkBlue&&(t["--dark-blue"]=e.darkBlue),e.baseBlue&&(t["--base-blue"]=e.baseBlue),e.lightBlue&&(t["--light-blue"]=e.lightBlue),t}var w=U;
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9PZG9udG9ncmFtLnRzeCIsICIuLi9zcmMvZGF0YS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCIuL09kb250b2dyYW1cIjtcbiIsICJpbXBvcnQgXCIuL3N0eWxlcy5jc3NcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdGVldGhQYXRocyB9IGZyb20gXCIuL2RhdGFcIjtcblxuaW50ZXJmYWNlIFRlZXRoUHJvcHMge1xuXHRuYW1lOiBzdHJpbmc7XG5cdG91dGxpbmVQYXRoOiBzdHJpbmc7XG5cdHNoYWRvd1BhdGg6IHN0cmluZztcblx0bGluZUhpZ2hsaWdodFBhdGg6IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRzZWxlY3RlZD86IGJvb2xlYW47XG5cdG9uQ2xpY2s/OiAobmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuXHRvbktleURvd24/OiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4gdm9pZDtcblx0Y2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vdGhEZXRhaWwge1xuXHRpZDogc3RyaW5nO1xuXHRub3RhdGlvbnM6IHtcblx0XHRmZGk6IHN0cmluZztcblx0XHR1bml2ZXJzYWw6IHN0cmluZztcblx0XHRwYWxtZXI6IHN0cmluZztcblx0fTtcblx0dHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9kb250b2dyYW1Qcm9wcyB7XG5cdGRlZmF1bHRTZWxlY3RlZD86IHN0cmluZ1tdO1xuXHRvbkNoYW5nZT86IChzZWxlY3RlZDogVG9vdGhEZXRhaWxbXSkgPT4gdm9pZDtcblx0Y2xhc3NOYW1lPzogc3RyaW5nO1xuXHRzZWxlY3RlZENvbG9yPzogc3RyaW5nO1xuXHRob3ZlckNvbG9yPzogc3RyaW5nO1xuXHR0aGVtZTogXCJsaWdodFwiIHwgXCJkYXJrXCI7XG5cdGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0bm90YXRpb24/OiBcIkZESVwiIHwgXCJVbml2ZXJzYWxcIiB8IFwiUGFsbWVyXCI7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRGRElUb05vdGF0aW9uKFxuXHRmZGk6IHN0cmluZyxcblx0bm90YXRpb246IFwiRkRJXCIgfCBcIlVuaXZlcnNhbFwiIHwgXCJQYWxtZXJcIixcbikge1xuXHRjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuXHRjb25zdCBmZGlUb1VuaXZlcnNhbDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcblx0XHRcIjExXCI6IDgsXG5cdFx0XCIxMlwiOiA3LFxuXHRcdFwiMTNcIjogNixcblx0XHRcIjE0XCI6IDUsXG5cdFx0XCIxNVwiOiA0LFxuXHRcdFwiMTZcIjogMyxcblx0XHRcIjE3XCI6IDIsXG5cdFx0XCIxOFwiOiAxLFxuXHRcdFwiMjFcIjogOSxcblx0XHRcIjIyXCI6IDEwLFxuXHRcdFwiMjNcIjogMTEsXG5cdFx0XCIyNFwiOiAxMixcblx0XHRcIjI1XCI6IDEzLFxuXHRcdFwiMjZcIjogMTQsXG5cdFx0XCIyN1wiOiAxNSxcblx0XHRcIjI4XCI6IDE2LFxuXHRcdFwiMzFcIjogMjQsXG5cdFx0XCIzMlwiOiAyMyxcblx0XHRcIjMzXCI6IDIyLFxuXHRcdFwiMzRcIjogMjEsXG5cdFx0XCIzNVwiOiAyMCxcblx0XHRcIjM2XCI6IDE5LFxuXHRcdFwiMzdcIjogMTgsXG5cdFx0XCIzOFwiOiAxNyxcblx0XHRcIjQxXCI6IDI1LFxuXHRcdFwiNDJcIjogMjYsXG5cdFx0XCI0M1wiOiAyNyxcblx0XHRcIjQ0XCI6IDI4LFxuXHRcdFwiNDVcIjogMjksXG5cdFx0XCI0NlwiOiAzMCxcblx0XHRcIjQ3XCI6IDMxLFxuXHRcdFwiNDhcIjogMzIsXG5cdH07XG5cblx0aWYgKG5vdGF0aW9uID09PSBcIlVuaXZlcnNhbFwiKSB7XG5cdFx0cmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG5cdH1cblxuXHRpZiAobm90YXRpb24gPT09IFwiUGFsbWVyXCIpIHtcblx0XHRjb25zdCBxdWFkcmFudCA9IG51bVswXTtcblx0XHRjb25zdCB0b290aCA9IG51bVsxXTtcblx0XHRjb25zdCBzeW1ib2xzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuXHRcdFx0XCIxXCI6IFwiVVJcIiwgLy8gdXBwZXIgcmlnaHRcblx0XHRcdFwiMlwiOiBcIlVMXCIsIC8vIHVwcGVyIGxlZnRcblx0XHRcdFwiM1wiOiBcIkxMXCIsIC8vIGxvd2VyIGxlZnRcblx0XHRcdFwiNFwiOiBcIkxSXCIsIC8vIGxvd2VyIHJpZ2h0XG5cdFx0fTtcblx0XHRyZXR1cm4gYCR7dG9vdGh9JHtzeW1ib2xzW3F1YWRyYW50XSA/PyBcIlwifWA7XG5cdH1cblxuXHRyZXR1cm4gbnVtO1xufVxuXG5mdW5jdGlvbiBnZXRUb290aE5vdGF0aW9ucyhmZGk6IHN0cmluZykge1xuXHRjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblx0Y29uc3QgdW5pdmVyc2FsID0gY29udmVydEZESVRvTm90YXRpb24oZmRpLCBcIlVuaXZlcnNhbFwiKTtcblx0Y29uc3QgcGFsbWVyID0gY29udmVydEZESVRvTm90YXRpb24oZmRpLCBcIlBhbG1lclwiKTtcblx0cmV0dXJuIHtcblx0XHRmZGk6IG51bSxcblx0XHR1bml2ZXJzYWwsXG5cdFx0cGFsbWVyLFxuXHR9O1xufVxuXG5jb25zdCBUZWV0aCA9ICh7XG5cdG5hbWUsXG5cdG91dGxpbmVQYXRoLFxuXHRzaGFkb3dQYXRoLFxuXHRsaW5lSGlnaGxpZ2h0UGF0aCxcblx0c2VsZWN0ZWQsXG5cdG9uQ2xpY2ssXG5cdG9uS2V5RG93bixcblx0Y2hpbGRyZW4sXG59OiBUZWV0aFByb3BzKSA9PiAoXG5cdDxnXG5cdFx0Y2xhc3NOYW1lPXtgJHtuYW1lfSAke3NlbGVjdGVkID8gXCJzZWxlY3RlZFwiIDogXCJcIn1gfVxuXHRcdHRhYkluZGV4PXswfVxuXHRcdG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LihuYW1lKX1cblx0XHRvbktleURvd249eyhlKSA9PiBvbktleURvd24/LihlLCBuYW1lKX1cblx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRhcmlhLXByZXNzZWQ9e3NlbGVjdGVkfVxuXHRcdGFyaWEtbGFiZWw9e2BUb290aCAke25hbWV9YH1cblx0XHRzdHlsZT17e1xuXHRcdFx0Y3Vyc29yOiBcInBvaW50ZXJcIixcblx0XHRcdG91dGxpbmU6IFwibm9uZVwiLFxuXHRcdFx0dG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG5cdFx0XHR0cmFuc2l0aW9uOiBcImFsbCAwLjJzIGVhc2VcIixcblx0XHR9fVxuXHQ+XG5cdFx0e2NoaWxkcmVufVxuXHRcdDxwYXRoXG5cdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0c3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcblx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0ZD17b3V0bGluZVBhdGh9XG5cdFx0Lz5cblx0XHQ8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD17c2hhZG93UGF0aH0gLz5cblx0XHR7QXJyYXkuaXNBcnJheShsaW5lSGlnaGxpZ2h0UGF0aCkgPyAoXG5cdFx0XHRsaW5lSGlnaGxpZ2h0UGF0aC5tYXAoKGQsIGkpID0+IChcblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRrZXk9e2l9XG5cdFx0XHRcdFx0c3Ryb2tlPVwiY3VycmVudENvbG9yXCJcblx0XHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0XHRcdGQ9e2R9XG5cdFx0XHRcdC8+XG5cdFx0XHQpKVxuXHRcdCkgOiAoXG5cdFx0XHQ8cGF0aFxuXHRcdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcblx0XHRcdFx0ZD17bGluZUhpZ2hsaWdodFBhdGh9XG5cdFx0XHQvPlxuXHRcdCl9XG5cdDwvZz5cbik7XG5cbmNvbnN0IE9kb250b2dyYW06IFJlYWN0LkZDPE9kb250b2dyYW1Qcm9wcz4gPSAoe1xuXHRkZWZhdWx0U2VsZWN0ZWQgPSBbXSxcblx0b25DaGFuZ2UsXG5cdGNsYXNzTmFtZSA9IFwiXCIsXG5cdHRoZW1lID0gXCJsaWdodFwiLFxuXHRjb2xvcnMgPSB7fSxcblx0bm90YXRpb24sXG59KSA9PiB7XG5cdGNvbnN0IHRoZW1lQ29sb3JzID1cblx0XHR0aGVtZSA9PT0gXCJkYXJrXCJcblx0XHRcdD8ge1xuXHRcdFx0XHRcdFwiLS1kYXJrLWJsdWVcIjogXCIjYWFiNmZmXCIsXG5cdFx0XHRcdFx0XCItLWJhc2UtYmx1ZVwiOiBcIiNkMGQ1ZjZcIixcblx0XHRcdFx0XHRcIi0tbGlnaHQtYmx1ZVwiOiBcIiM1MzYxZTZcIixcblx0XHRcdFx0fVxuXHRcdFx0OiB7XG5cdFx0XHRcdFx0XCItLWRhcmstYmx1ZVwiOiBcIiMzZTVlZGNcIixcblx0XHRcdFx0XHRcIi0tYmFzZS1ibHVlXCI6IFwiIzhhOThiZVwiLFxuXHRcdFx0XHRcdFwiLS1saWdodC1ibHVlXCI6IFwiI2M2Y2NmOFwiLFxuXHRcdFx0XHR9O1xuXG5cdGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGU8U2V0PHN0cmluZz4+KFxuXHRcdG5ldyBTZXQoZGVmYXVsdFNlbGVjdGVkKSxcblx0KTtcblxuXHRjb25zdCBoYW5kbGVUb2dnbGUgPSB1c2VDYWxsYmFjayhcblx0XHQobmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRzZXRTZWxlY3RlZCgocHJldikgPT4ge1xuXHRcdFx0XHRjb25zdCB1cGRhdGVkID0gbmV3IFNldChwcmV2KTtcblx0XHRcdFx0dXBkYXRlZC5oYXMobmFtZSkgPyB1cGRhdGVkLmRlbGV0ZShuYW1lKSA6IHVwZGF0ZWQuYWRkKG5hbWUpO1xuXG5cdFx0XHRcdC8vIGJ1aWxkIGRldGFpbGVkIEpTT04gb3V0cHV0XG5cdFx0XHRcdGNvbnN0IGRldGFpbHMgPSBBcnJheS5mcm9tKHVwZGF0ZWQpLm1hcCgoaWQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBmZGkgPSBpZC5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuXHRcdFx0XHRcdGNvbnN0IHRvb3RoQmFzZSA9IGZkaS5zbGljZSgxKTtcblx0XHRcdFx0XHRjb25zdCB0b290aERhdGEgPSB0ZWV0aFBhdGhzLmZpbmQoKHQpID0+IHQubmFtZSA9PT0gdG9vdGhCYXNlKTtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0aWQsXG5cdFx0XHRcdFx0XHRub3RhdGlvbnM6IGdldFRvb3RoTm90YXRpb25zKGlkKSxcblx0XHRcdFx0XHRcdHR5cGU6IHRvb3RoRGF0YT8udHlwZSA/PyBcIlVua25vd25cIixcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRvbkNoYW5nZT8uKGRldGFpbHMpO1xuXHRcdFx0XHRyZXR1cm4gdXBkYXRlZDtcblx0XHRcdH0pO1xuXHRcdH0sXG5cdFx0W29uQ2hhbmdlXSxcblx0KTtcblx0Y29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuXHRcdChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PFNWR0dFbGVtZW50PiwgbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRpZiAoZS5rZXkgPT09IFwiRW50ZXJcIiB8fCBlLmtleSA9PT0gXCIgXCIpIHtcblx0XHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRoYW5kbGVUb2dnbGUobmFtZSk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRbaGFuZGxlVG9nZ2xlXSxcblx0KTtcblxuXHRjb25zdCBxdWFkcmFudHMgPSBbXG5cdFx0eyBuYW1lOiBcImZpcnN0XCIsIHRyYW5zZm9ybTogXCJcIiB9LFxuXHRcdHsgbmFtZTogXCJzZWNvbmRcIiwgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTQwOSwgMClcIiB9LFxuXHRcdHsgbmFtZTogXCJ0aGlyZFwiLCB0cmFuc2Zvcm06IFwic2NhbGUoMSwgLTEpIHRyYW5zbGF0ZSgwLCAtNjk0KVwiIH0sXG5cdFx0eyBuYW1lOiBcImZvdXJ0aFwiLCB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTQwOSwgLTY5NClcIiB9LFxuXHRdO1xuXG5cdGNvbnN0IHJlbmRlclRlZXRoID0gKHByZWZpeDogc3RyaW5nKSA9PlxuXHRcdHRlZXRoUGF0aHMubWFwKCh0b290aCkgPT4ge1xuXHRcdFx0Y29uc3QgaWQgPSBgJHtwcmVmaXh9JHt0b290aC5uYW1lfWA7XG5cdFx0XHRjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbiA/PyBcIkZESVwiKTsgLy8gXHVEODNDXHVERDk1XG5cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxUZWV0aFxuXHRcdFx0XHRcdGtleT17aWR9XG5cdFx0XHRcdFx0ey4uLnRvb3RofVxuXHRcdFx0XHRcdG5hbWU9e2lkfVxuXHRcdFx0XHRcdHNlbGVjdGVkPXtzZWxlY3RlZC5oYXMoaWQpfVxuXHRcdFx0XHRcdG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cblx0XHRcdFx0XHRvbktleURvd249e2hhbmRsZUtleURvd259XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8dGl0bGU+e2Rpc3BsYXlOYW1lfTwvdGl0bGU+XG5cdFx0XHRcdDwvVGVldGg+XG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdGNvbnN0IGZpbmFsQ29sb3JzID0geyAuLi50aGVtZUNvbG9ycywgLi4ubWFwVG9Dc3NWYXJzKGNvbG9ycykgfTtcblxuXHRyZXR1cm4gKFxuXHRcdDxkaXZcblx0XHRcdGNsYXNzTmFtZT17YE9kb250b2dyYW0gJHt0aGVtZSA9PT0gXCJkYXJrXCIgPyBcImRhcmstdGhlbWVcIiA6IFwiXCJ9YH1cblx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdC4uLihmaW5hbENvbG9ycyBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzKSxcblx0XHRcdFx0d2lkdGg6IFwiMTAwJVwiLFxuXHRcdFx0XHRtYXhXaWR0aDogMzAwLFxuXHRcdFx0XHRtYXJnaW46IFwiMCBhdXRvXCIsXG5cdFx0XHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdFx0XHRqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcblx0XHRcdFx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0XHRcdH19XG5cdFx0PlxuXHRcdFx0PHN2Z1xuXHRcdFx0XHR4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcblx0XHRcdFx0ZmlsbD1cIm5vbmVcIlxuXHRcdFx0XHR2aWV3Qm94PVwiMCAwIDQwOSA2OTRcIlxuXHRcdFx0XHRjbGFzc05hbWU9XCJPZG9udG9ncmFtXCJcblx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHR3aWR0aDogXCIxMDAlXCIsXG5cdFx0XHRcdFx0aGVpZ2h0OiBcImF1dG9cIixcblx0XHRcdFx0XHR1c2VyU2VsZWN0OiBcIm5vbmVcIixcblx0XHRcdFx0XHR0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcblx0XHRcdFx0fX1cblx0XHRcdD5cblx0XHRcdFx0PGcgbmFtZT1cInVwcGVyXCI+XG5cdFx0XHRcdFx0e3F1YWRyYW50cy5zbGljZSgwLCAyKS5tYXAoKHsgbmFtZSwgdHJhbnNmb3JtIH0sIGluZGV4KSA9PiAoXG5cdFx0XHRcdFx0XHQ8ZyBrZXk9e25hbWV9IG5hbWU9e25hbWV9IHRyYW5zZm9ybT17dHJhbnNmb3JtfT5cblx0XHRcdFx0XHRcdFx0e3JlbmRlclRlZXRoKGB0ZWV0aC0ke2luZGV4ICsgMX1gKX1cblx0XHRcdFx0XHRcdDwvZz5cblx0XHRcdFx0XHQpKX1cblx0XHRcdFx0PC9nPlxuXG5cdFx0XHRcdDxnIG5hbWU9XCJsb3dlclwiPlxuXHRcdFx0XHRcdHtxdWFkcmFudHMuc2xpY2UoMikubWFwKCh7IG5hbWUsIHRyYW5zZm9ybSB9LCBpbmRleCkgPT4gKFxuXHRcdFx0XHRcdFx0PGcga2V5PXtuYW1lfSBuYW1lPXtuYW1lfSB0cmFuc2Zvcm09e3RyYW5zZm9ybX0+XG5cdFx0XHRcdFx0XHRcdHtyZW5kZXJUZWV0aChgdGVldGgtJHtpbmRleCArIDN9YCl9XG5cdFx0XHRcdFx0XHQ8L2c+XG5cdFx0XHRcdFx0KSl9XG5cdFx0XHRcdDwvZz5cblx0XHRcdDwvc3ZnPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZnVuY3Rpb24gbWFwVG9Dc3NWYXJzKGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPikge1xuXHRjb25zdCBjc3NWYXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cdGlmIChjb2xvcnMuZGFya0JsdWUpIHtcblx0XHRjc3NWYXJzW1wiLS1kYXJrLWJsdWVcIl0gPSBjb2xvcnMuZGFya0JsdWU7XG5cdH1cblx0aWYgKGNvbG9ycy5iYXNlQmx1ZSkge1xuXHRcdGNzc1ZhcnNbXCItLWJhc2UtYmx1ZVwiXSA9IGNvbG9ycy5iYXNlQmx1ZTtcblx0fVxuXHRpZiAoY29sb3JzLmxpZ2h0Qmx1ZSkge1xuXHRcdGNzc1ZhcnNbXCItLWxpZ2h0LWJsdWVcIl0gPSBjb2xvcnMubGlnaHRCbHVlO1xuXHR9XG5cdHJldHVybiBjc3NWYXJzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBPZG9udG9ncmFtO1xuIiwgImV4cG9ydCBjb25zdCB0ZWV0aFBhdGhzID0gW1xuXHR7XG5cdFx0bmFtZTogXCIxXCIsXG5cdFx0dHlwZTogXCJDZW50cmFsIEluY2lzb3JcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTE3My45NTEgMS42OThjLTIuMTk4LjE2LTUuMzAyLjg2Mi01LjMwMi44NjJzLTUuNTMxIDEuMDI1LTcuNzgxIDIuMjdjLTIuNDAzIDEuMzMzLTUuNTUzIDMuMjk5LTYuMDEzIDUuMjU4LS40MzIgMS44NC0uNzggNC43MzQtLjQ5MSA2LjgzMmwuMDI3LjJjLjM0OCAyLjUyNy44NjUgNi4yOCAxLjIzOSAxMC4zMTYuMTg2IDItLjEwMSAzLjIxLjc1MSA2LjE2Ljg5NSAzLjEgMS4zOTUgNC41NzMgMi4wMTMgNS42ODcuNjQ2IDEuMTY0IDEuNDkzIDIuMDg3IDIuMDMgMy4yOC44NjYgMS45MjQgMi4zOTMgNC4yOSAzLjg3IDYuMWE0OC44MDUgNDguODA1IDAgMCAwIDIuMzYgMi42NjNjMS4wMTYgMS4wNzggMi44MTkgMy4xMSAzLjg5OCA0LjMzMSAxLjUyNiAxLjcyNyAzLjA3NiAzLjI0OCA0LjQyMyAzLjc0MiAxLjIxNy40NDYgMi43MDkuNjQyIDMuNzkzLjkzNiAxLjM2OS4zNzIgMi40OTQuNjM4IDQuNTk3IDAgMS41NDUtLjQ2OCAyLjcyNS0uNjIxIDQuMzcyLTIuNDI0IDIuMDY0LTIuMjU4IDIuODQ2LTMuNTE3IDMuNTEyLTQuNzQ2IDEuMDY1LTEuOTY0IDIuNTI0LTQuNjQ4IDMuNTQxLTYuNDIyLjYxMS0xLjA2OCAyLjIyMS0zLjA4OSA0LjA4Ni04Ljg0NSAxLjU0LTQuNzUyIDIuMzY3LTcuNzYgMi43MzEtOC45OTQuNDE1LTEuNDA4IDEuMDc5LTMuNTgzIDEuMzU1LTYuMTk2LjQ0LTQuMTc2IDEuMTE0LTcuNDgyIDEuMDYyLTExLjAyNi0uMDQ0LTMuMDQ2LjEwNC01LjA0LTEuMDY1LTYuMzA2LS45NS0xLjAyOS0xLjk4OC0yLjAwMS0zLjMwNi0yLjUzNC0xLjk1OS0uNzktMy43NzUtMS4zNTgtNS4yOTgtMS41OTItMS4zNTEtLjIwNy03LjA1LS4zNS0xMS4yMTktLjA1Ny0xLjU2Ny4xMS0zLjYxLjA5Ny05LjE4NS41MDVaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTE4OC4yNjkgNTAuMjE1YzE5LjI3NS00MS44NjcgMTAuNzY2LTQzLjYxMiA0LjkzNy00NC42ODQtNS44MjktMS4wNzMtMjguNDU1IDIuNTMtMjkuNzIgMi44MTctLjQ0Mi4yMTgtOC45MTEgMC00Ljc2NyAxOS41NCAzLjQxNiAxNi4xMDUgMTYuMTkzIDI2LjU5NiAxNy4yNDQgMjcuMjY1IDMuMTQ4IDIuMDAzIDguODM3IDIuNTk1IDEyLjMwNi00LjkzOFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTE2MC40NzIgMTQuNzI3Yy4zOTItLjQwMiA0LjMxNy0zLjMwOSA4Ljk0MS01LjQ3IDMuMDk3LTEuNDQ4IDcuNzczLTEuNjI5IDExLjIwNy0xLjc0OSA4Ljc1OS0uMzY1IDEwLjAwNC45MSAxMi42MzcgMS40OTUuNTYyLjEzOS45MDkuMjc2IDEuNzcxLjU5NVwiLFxuXHR9LFxuXG5cdHtcblx0XHRuYW1lOiBcIjJcIixcblx0XHR0eXBlOiBcIkxhdGVyYWwgSW5jaXNvclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xMzUuMDE2IDYwLjQxYzMuNDQzIDEuMzU1IDcuODM0IDIuNzMgOS42MDEgMi4zNDYgNC4xODUtLjkxIDcuMDQ0LTQuMDE3IDguMTIzLTguMTUyIDIuMDY5LTcuOTI3IDIuMjQ5LTE2LjI4OCAxLjk5NS0yNC40MzYtLjExMy0zLjU5Ni43Mi0xNi44MS00LjE4NC0xOC40NDQtOC4xMzUtNi4xNC0zMi4wODguNDk0LTM2Ljk3OSA4LjA1NS01LjAxMyA3Ljc1MS44NzggMjEuMTMxIDUuNTYgMjcuNzI4IDMuODYyIDUuNDQgOS43MTQgMTAuNDc0IDE1Ljg4NCAxMi45MDNaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEzNC42NSA1NS4zODZjMi43MzIgMS4wNzYgNi4yMTcgMi4xNjcgNy42MiAxLjg2MiAzLjMyMS0uNzIzIDUuNTktMy4xODggNi40NDYtNi40NyAxLjY0Mi02LjI5IDEuNzg2LTEyLjkyNyAxLjU4My0xOS4zOTMtLjA4OS0yLjg1NC41NzItMTMuMzQyLTMuMzItMTQuNjM4LTYuNDU2LTQuODczLTI1LjQ2Ni4zOTItMjkuMzQ4IDYuMzkzLTMuOTc5IDYuMTUyLjY5NiAxNi43NyA0LjQxMyAyMi4wMDYgMy4wNjQgNC4zMTcgNy43MDkgOC4zMTMgMTIuNjA2IDEwLjI0WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTIxLjU2OSAyOC45NTJjLjU1MS0uOTg0IDYuMzU0LTguMjE0IDEyLjg2Ni05LjA0NSAzLjIzOC0uNDEzIDEwLjYxOS0uMTcgMTEuODM4IDBcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiM1wiLFxuXHRcdHR5cGU6IFwiQ2FuaW5lXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTc3LjYzIDY0LjIzNmMxLjY5MiAxLjQwMSAxNS41MTYgMTQuNTgzIDM0LjY5OCAxNi45MDMgNS41NjkuNjc0IDE1LjA1OC03LjE4NCAxNS43ODktMTIuODkgMS4zMzUtMTAuNDIzLTEyLjQ0NC0yOS4yMDUtMjEuOTY1LTMzLjcwMy00LjU0Mi0yLjE0NS0yNS44OTItNC4wMzktMjguNTIzIDIuOTM5LTIuNDcxIDYuNTU3LTYuNTk2IDIxLjI5IDAgMjYuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMjMuMjg1IDY2LjI2N2MxLjA3Mi04LjM2OC0xMC4yMzQtMjMuOTQtMTcuOTktMjcuNjAzLTMuNzItMS43NTctMjEuMjA2LTMuMzA4LTIzLjM2IDIuNDA3LTEuNzU3IDQuNjYtNC4wOSAxMy4yODQtMi4zMDYgMTguMTcgNC4xNSAxMS4zNiA0MC44OTcgMjguNTczIDQzLjY1NiA3LjAyNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNODIuODQgNjAuMDQzYy0uMDEtLjg1NS0uMTkzLTQuNjMuMjU2LTguMTIuNjY3LTUuMTg1LjcwMy01Ljg2NiAxLjI5LTguMTA2LjQzNy0xLjY2NiAyLjA4My00LjkxIDE3LjQ4Ny0zLjc0OFwiLFxuXHRcdFx0XCJNMTAxLjQzOCA2OC40OWMuMzc2LS4wNDUgMi4yODQtNS4xMTIgOS40OTgtNi4zNDRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI0XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBQcmVtb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk05My42ODQgMTA4Ljc0OGMtNy40OTggMy4zOTctMzUuMzY4LTcuMzk3LTM1LjU5Ni03LjQ0MS0xLjQyOS0uODQyLTEyLjIxNS0yLjg1NC05LjA2OC0yOS40MTQuMTQ3LTEuMjM4IDEuMzUzLTIuMDUgMi4yMTgtMi41NTYuOTU2LS41NTkgMy4xNTctMS41OTUgNy41ODctMi43OTQgMi43MDctLjczNCAxMy44NTYtMy41NCAxOC42NzQtLjkyIDIuMjE2IDEuMjA2IDYuMzYzIDQuMTE3IDEwLjQ3MyA3LjAzNiA0LjExIDIuOTE5IDEwLjk1OCA4LjcxNSAxMy4zMjcgMTEuMzM4IDIuMjkxIDIuNTM3IDEwLjMyNCAxMy43NS03LjYxNSAyNC43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTkxLjQ5NSAxMDUuOTMxYy02LjUyOCAyLjk1OC0zMC43OTMtNi40NC0zMC45OTItNi40NzgtMS4yNDMtLjczNC0xMC42MzQtMi40ODYtNy44OTUtMjUuNjEuMTI4LTEuMDc4IDEuMTc4LTEuNzg1IDEuOTMyLTIuMjI1LjgzMi0uNDg3IDIuNzQ4LTEuMzkgNi42MDUtMi40MzMgMi4zNTctLjYzOSAxMi4wNjQtMy4wODIgMTYuMjU4LS44IDEuOTMgMS4wNSA1LjU0IDMuNTg0IDkuMTIgNi4xMjUgMy41NzggMi41NDEgOS41NCA3LjU4OCAxMS42MDMgOS44NzIgMS45OTQgMi4yMDggOC45ODcgMTEuOTcxLTYuNjMgMjEuNTQ5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk01NS4yMzQgOTIuNDE0Yy4wMjItLjI0Mi4wNi0xLjQ2OS44NzUtNy43OS40Ni0zLjU3MyAxLjgxMy01LjQ5IDMuMTM0LTcuMDEgMS4xOC0xLjM1OSAzLjUyNC0zLjE5MyA1Ljg4LTQuMzY1IDEuNDYtLjYzMiAzLjAyOS0xLjEyNiA2LjA0NC0xLjc3Ni44MjYtLjEzOCAxLjQ3Ny0uMTc1IDIuNTI2LS4zOTVcIixcblx0XHRcdFwiTTg3LjAyIDEwMS4zODdjNC4xODMtLjc5MiA4Ljc0Ny05Ljc3NCA4Ljc0Ny05Ljc3NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjVcIixcblx0XHR0eXBlOiBcIlNlY29uZCBQcmVtb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzMuMzk2IDEyNy42NTJjLTEuMDg4LTIuNzEzLTQuNDg2LTExLjg1Mi0zLjk2Mi0xNS4yNDYuNDc3LTMuMDg1IDE0LjQ3LTEyLjAwOCAyMy41OTUtMTIuMDA4IDIuMTc4IDAgMjUuMTU3IDYuNjY1IDM1LjA3MyAxNy45MDggNC41NTEgOS4zMjQtMS42MjQgMjMuMzM5LTE2LjIyIDIzLjMzOS04LjE5MyAwLTIzLjU2My0xLjg5Ny0yNS40NTMtMi4yMTUtMS44OTYtLjMxOS00LjMxNy0xLjEyOC02LjU5Ni0yLjMyMS0xLjI4OS0uNjc1LTItMS4wMzUtMi40NzgtMS42NDctLjY1NS0uODQtMi4xMDEtMy4xNzgtMy45Ni03LjgxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi44MzcgMTI2Ljc3OGMtLjk0NS0yLjM1Ni0zLjg5NS0xMC4yODktMy40NC0xMy4yMzUuNDE0LTIuNjc5IDEyLjU2MS0xMC40MjQgMjAuNDgzLTEwLjQyNCAxLjg5IDAgMjEuODM3IDUuNzg1IDMwLjQ0NSAxNS41NDUgMy45NTEgOC4wOTQtMS40MSAyMC4yNi0xNC4wOCAyMC4yNi03LjExMiAwLTIwLjQ1NC0xLjY0Ny0yMi4wOTUtMS45MjItMS42NDUtLjI3Ny0zLjc0Ny0uOTgtNS43MjUtMi4wMTUtMS4xMi0uNTg2LTEuNzM3LS44OTktMi4xNTEtMS40My0uNTctLjcyOS0xLjgyNS0yLjc1OS0zLjQzNy02Ljc3OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNDAuOCAxMzEuMjIxYy00LjAwMy0yMC4yNzggOC40NDItMjAuOTc0IDEzLjc3OS0yMy42OTJcIixcblx0XHRcdFwiTTc0LjA1NiAxMzQuNzI5YzYuMzUtNC4yNjQgNi4zNDMtMTAuNTAzIDYuNDg5LTExLjQ0OFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjZcIixcblx0XHR0eXBlOiBcIkZpcnN0IE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zNS41MzkgMjAzLjMyM2MtMy4zNjMuMTk2LTMyLjc4OC00LjAyLTI4LjQ5NS00Mi40NjUgMy42MzEtMjAuNDA4IDI2LjIxLTIzLjM2NCAyOS41NTctMjIuOTEyIDkuMDE5LS43NDUgMjUuNzI3IDYuNzQzIDI5LjI1NSA5LjQwMyA0LjU0NiAzLjQyNyA3LjM4NCA1LjY4MSA4LjYwNiA3LjA5MiAyLjQzNiAyLjgxNCA0LjQ5OSA1LjExIDQuNyA2LjMxMy4yODQgMS43MDMgMS4zMTcgNC43Mi0yLjI0OCA5LjY4Ny0yLjQ1MyAzLjQxOC0yLjk1NyA2LjY2My0yLjg1NiAxMC4yMjMuMTE4IDQuMTg1LjM3IDkuNzU0LS41MjQgMTEuNjMtLjU5MiAxLjI0NC0uOTg0IDIuNjI3LTIuMzc1IDMuMzkyLTIuMDE1IDEuMTA4LTQuNjEgMi4zMTctMTEuOTMgMy43NDgtMy42MjMuNzA4LTkuMzA5IDEuODMtMTIuNDAxIDIuMjkyLTUuMTkuNzc3LTguNDIzIDEuNDMtMTEuMjg5IDEuNTk3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi41MTUgMTk5LjA4NWMtMi45MjcuMTctMjguNTQtMy40OTktMjQuODAzLTM2Ljk2MyAzLjE2LTE3Ljc2NCAyMi44MTQtMjAuMzM3IDI1LjcyNy0xOS45NDQgMTAuODItLjg5MyAyNS43MDkgNS45ODkgMzIuOTU1IDE0LjM1OCAyLjEyIDIuNDUgMy45MTcgNC40NDggNC4wOTEgNS40OTUuMjQ4IDEuNDgyLjUxMyA0LjI2OC0yLjU5IDguNTkxLTIuMTM1IDIuOTc1LTEuOTQgNS42NDEtMS44NTIgOC43NC4wOTYgMy40MTcgMS40MDIgMTAuOTE3LTIuNTIzIDEzLjA3Ni0xLjc1NC45NjQtNC4wMTMgMi4wMTYtMTAuMzg0IDMuMjYxLTYuNzYyIDEuMzIyLTEzLjcyOCAyLjk4NC0yMC42MjEgMy4zODZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTM3LjEzMiAxOTIuMTQ3YzEuMjg4LS4zNzIgMy4zODUtMi4wNzEgNS4xODMtNS40MzhtOS4wMDgtMzUuOThjMS4xODggMS4yMjQgMi4xMTQgNi4zODUuMTUgMTEuMzYzbTAgMGMtMS41MzcgMy44OTktNC45NDQgOS4zNzgtMTEuMTk1IDkuMzc4IDYuODc3LjMyMSA0LjY1MSAxMC4zNDMgMi4wMzcgMTUuMjM5bTkuMTU5LTI0LjYxN2MxLjQ3LTIuNTg5IDQuOTY2LTcuNTcyIDguMDY4LTguMjE3bS0xNy4yMjcgMzIuODM0Yy0uMTg2IDIuMzQ4LjA0NCA3LjM1MSAyLjQ1OCA4LjU4NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjdcIixcblx0XHR0eXBlOiBcIlNlY29uZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk00Ljk2OSAyNDguMTMyYy0xLjE4OC0yLjc0LTE0LjcwOC0yNy4xNTIgMTIuMzE5LTQyLjEzOSAxLjgzNi0xLjAxOCAyNC41MDgtNy43MTEgNDUuMjggMTAuODc0IDIuMjc0IDIuMDM1IDQuNDU1IDMuNTc5IDUuNDAzIDUuMTAyIDEuNDE0IDIuMjcxIDIuMTI4IDMuNDM1IDEuNjg3IDUuNjA2LS4zODcgMS45MDEtMS41NCAzLjY0Mi0zLjc3IDcuNzExLTEuMTI3IDIuMDU2LTEuODU0IDMuNDI3LTEuMzY5IDcuODI0LjE3NSAxLjU5LjYyNyAzLjkzNS4wNDggNi42MDMtLjQ2NiAyLjE0Ny0uOTQxIDMuNTY3LTIuNTc4IDUuMDA2LTIuNTMgMi4yMjQtNS4zMDcgMy42NDUtOS4wNzYgNC4zNS0xLjA5MS4yMDQtMy4xMzMuODExLTcuNTI1IDEuNzAyLTIuNzc2LjU2My02LjYxOSAxLjIzNC0xMC4wOSAxLjY1NC0zLjQ3LjQyLTYuNDc4LjYzOC04LjYxMi42MzYtMy4zNTMtLjAwMi02LjczNC4wMzEtOS40NjUtMS40OGwtLjAxOC0uMDFjLTEuNjU0LS45MTUtNC4wNzYtMi4yNTUtNi4yNDUtNC43MzItMi4yNTgtMi41NzktNC41OTEtNS40ODItNS45ODktOC43MDdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTguNzk5IDI0Ni4yOGMtMS4xMjgtMi4zNTItMTIuODQzLTIzLjcwOSAxMC43NTYtMzYuNzk2IDEuNjA0LS44ODkgMjEuNC02LjczMiAzOS41MzggOS40OTYgMS45ODYgMS43NzcgMy44OSAzLjEyNSA0LjcxNyA0LjQ1NCAxLjIzNSAxLjk4MyAxLjg1OSAzIDEuNDczIDQuODk1LS4zMzcgMS42Ni0xLjM0MyAzLjE4LTMuMjkxIDYuNzM0LS45ODQgMS43OTUtMS42MTkgMi45OTItMS4xOTYgNi44MzEuMTU0IDEuMzg5LjU0OCAzLjQzNi4wNDIgNS43NjYtMi44NzIgMTMuMjMxLTMxLjIxMyAxMS42NTctMzMuMDc2IDExLjY1NmgtLjAwN2MtMi45MzYtLjAwMy0xMi43MTQtLjAxLTE4Ljk1Ni0xMy4wMzZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMyLjE0IDI1NS4wOTFjLjc0OC0uMzAzIDIuMjgtMi4zNzggMy4xMDMtNS43MjFtLTEuOTktMzUuNDgxYzMuMDA5IDEuMzYzIDQuMDE1IDQuODg4IDMuNzM2IDguNzE2bTAgMGMtLjQyNCA1LjgzNS0zLjgzMiAxMi4zNzctNy42ODMgMTMuMDQ5IDYuOTU0IDEuMTggNy4yNDQgOC40MTQgNS45MzcgMTMuNzE2bTEuNzQ2LTI2Ljc2NWMuMzI3LTIuMjQgMS44Mi02Ljk1OCA1LjE5LTcuOTFtLTYuOTM2IDM0LjY3NWMuNjUgMi4xNzIgMi41NSA2LjUwNyA0Ljk2NyA2LjQ3MVwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjhcIixcblx0XHR0eXBlOiBcIlRoaXJkIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTS44OTUgMjkxLjMzMWMtLjM2Mi0xLjIxOC0uMTE2LTMuNDExLS4xNjQtMy44OTItLjAzNS0uMzQuMTI0LTMuNDM4LjcyNy01LjU1OCAxLjA0LTIuODIgMS44MDgtNC43NCAyLjU3My01Ljc1MiAxLjQxMy0xLjg3MiAzLjkxMy00Ljc2OSA3LjEzNS03LjIgMi4yODgtMS43MjYgNS4wMDMtMy4xODcgOC4xMzMtNC4zMzkgMi4yNDktLjgyOCA0LjM2Mi0xLjUwMiA3LjczMi0xLjY5MyAyLjE3NS0uMTIzIDUuMjUtLjE1NSA4Ljc4Mi4xMDhzNy40MDMuODA0IDEwLjM1MyAxLjM5NyA0LjkyIDEuMjE4IDYuNjQxIDEuODkzYzEuNzIyLjY3NSAzLjE0OCAxLjM4OSAzLjk3MiAxLjc2OCAxLjUxLjY5NiAyLjkgMS4yMDkgMy44MjQgMi4xNCAxLjg1NyAxLjg3MiAyLjYxNyAzLjMzNCAyLjkxMiA0LjgwNy4yNTQgMS4yNy4yNTIgMy4yMTYtLjIyNCA0LjUzMS0uNjcyIDEuODU5LTEuNDY4IDIuODU2LTEuNDY4IDUuNyAwIDMuODU3IDEuNzEzIDUuOTUgMS45MTUgOC4zNTYuMzM3IDQuMDA4LjMxNyA2LjE2OC0uNDIgNy40ODUtLjU5MSAxLjA1Ny0xLjUzMiAyLjM4My01LjU0MSA1LjA4OC0xLjE3My43OTEtMi42ODQgMS42MzQtNi42NDMgMy40MjQtMi43NjIgMS4yNDgtNi45NzcgMy4xMDgtOS4yMDUgNC4xMDctMi40NzMgMS4xMDktNC42NjcgMi4yMjYtOC4yMzQgMy4wNTMtMi41NC41ODktNS42MzEuNzg0LTkuMDEyLjE4Ni0yLjMwNy0uNDA4LTUuNDQ5LTEuMTgzLTkuMTA3LTMuODI3LTMuOTI4LTIuODM5LTYuNTMtNC44OTctNy40OTctNi4wNDEtLjg2Ni0xLjAyNi0xLjcxNC0yLjA4Mi0yLjQxMi0zLjU1NS0uOTA0LTEuOTA1LTIuMjcyLTMuNjQzLTMtNS45MTYtLjg0Ni0yLjYzMy0xLjE2Ny00LjIzMy0xLjc3Mi02LjI3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk00LjczMiAyOTEuMTc1Yy0uMzE3LTEuMDctLjEwMS0yLjk5NC0uMTQ0LTMuNDE2LS4wMy0uMjk5LjExLTMuMDE5LjYzOC00Ljg4LjkxNC0yLjQ3NiAxLjU4OC00LjE2MSAyLjI2LTUuMDUgMS4yNC0xLjY0MyAzLjQzNC00LjE4NyA2LjI2My02LjMyMSAyLjAwOS0xLjUxNSA0LjM5My0yLjc5NyA3LjE0LTMuODA5IDEuOTc0LS43MjcgMy44My0xLjMxOCA2Ljc4OC0xLjQ4NiAxLjkxLS4xMDggNC42MS0uMTM2IDcuNzEuMDk1IDMuMS4yMzEgNi40OTguNzA2IDkuMDg4IDEuMjI2IDIuNTkuNTIxIDQuMzE5IDEuMDcgNS44MyAxLjY2MiAxLjUxMi41OTIgMi43NjQgMS4yMiAzLjQ4NyAxLjU1MyAxLjMyNi42MSAyLjU0NyAxLjA2MSAzLjM1NyAxLjg3OCAxLjYzIDEuNjQzIDIuMjk4IDIuOTI3IDIuNTU3IDQuMjIuMjIzIDEuMTE1LjIyMSAyLjgyNC0uMTk2IDMuOTc4LS41OSAxLjYzMi0xLjI5IDIuNTA3LTEuMjkgNS4wMDQgMCAzLjM4NSAxLjUwNCA1LjIyMyAxLjY4MiA3LjMzNS4yOTYgMy41MTkuMjc4IDUuNDE2LS4zNjkgNi41NzEtLjUyLjkyOC0xLjM0NSAyLjA5My00Ljg2NSA0LjQ2Ny0xLjAzLjY5NS0yLjM1NSAxLjQzNS01LjgzMSAzLjAwNi0yLjQyNSAxLjA5Ni02LjEyNiAyLjcyOC04LjA4MiAzLjYwNi0yLjE3Ljk3My00LjA5NiAxLjk1NC03LjIyOCAyLjY4LTIuMjI5LjUxNy00Ljk0NC42ODgtNy45MTIuMTYzLTIuMDI0LS4zNTgtNC43ODMtMS4wMzgtNy45OTUtMy4zNTktMy40NDgtMi40OTMtNS43MzItNC4yOTktNi41OC01LjMwNC0uNzYxLS45MDEtMS41MDUtMS44MjctMi4xMTktMy4xMjEtLjc5My0xLjY3Mi0xLjk5NC0zLjE5OC0yLjYzNC01LjE5My0uNzQyLTIuMzEyLTEuMDI0LTMuNzE3LTEuNTU1LTUuNTA1WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMS43MzIgMzA5LjUxMWMxLjQ2Mi0uODk3IDIuNTg1LTMuNjcyIDIuOTMtNi43MjZtLTIuOTMtMjkuNDUzYzIuMTE0IDEuMDkyIDMuNDkgNC40NCAzLjYxIDguMDYybTQuMTMzLTcuNThjLTEuMzUzIDEuMDU4LTQuMDc0IDQuMDU3LTQuMTM0IDcuNThtMCAwYy4xNTUgNC42OTMtMS43OTcgOS44NDYtNi45ODMgMTEuMTUyIDUuMzc5LS4zNTcgNi44NTkgNS4zMDUgNi4zMDMgMTAuMjM5bTQuNTU3IDcuMjRjLTEuNjc4LS42NzEtNC45MzgtMy4wNTgtNC41NTctNy4yNFwiLFxuXHRcdF0sXG5cdH0sXG5dO1xuIl0sCiAgIm1hcHBpbmdzIjogInlhQUFBLElBQUFBLEVBQUEsR0FBQUMsRUFBQUQsRUFBQSxhQUFBRSxJQUFBLGVBQUFDLEVBQUFILEdDQ0EsSUFBQUksRUFBc0MsaUJDRC9CLElBQU1DLEVBQWEsQ0FDekIsQ0FDQyxLQUFNLElBQ04sS0FBTSxrQkFDTixZQUNDLDYxQkFDRCxXQUNDLDJNQUNELGtCQUNDLG1KQUNGLEVBRUEsQ0FDQyxLQUFNLElBQ04sS0FBTSxrQkFFTixZQUNDLDBRQUNELFdBQ0MseVFBQ0Qsa0JBQ0MsbUZBQ0YsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLFNBRU4sWUFDQyw2TUFDRCxXQUNDLHNLQUNELGtCQUFtQixDQUNsQiw4R0FDQSxrREFDRCxDQUNELEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxpQkFFTixZQUNDLG9UQUNELFdBQ0MsMFNBQ0Qsa0JBQW1CLENBQ2xCLCtLQUNBLG1EQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUNOLFlBQ0MsMlNBQ0QsV0FDQyx1U0FDRCxrQkFBbUIsQ0FDbEIseURBQ0Esc0RBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sY0FDTixZQUNDLHNiQUNELFdBQ0MscVZBQ0Qsa0JBQW1CLENBQ2xCLGlSQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGVBRU4sWUFDQyw4aEJBQ0QsV0FDQyxzVkFDRCxrQkFBbUIsQ0FDbEIsMlFBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sY0FFTixZQUNDLDIxQkFDRCxXQUNDLG0yQkFDRCxrQkFBbUIsQ0FD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RUFBUSxhQUFhLEVBQUl0QixFQUFPLFVBRTdCQSxFQUFPLFlBQ1ZzQixFQUFRLGNBQWMsRUFBSXRCLEVBQU8sV0FFM0JzQixDQUNSLENBRUEsSUFBT0MsRUFBUTVCIiwKICAibmFtZXMiOiBbImluZGV4X2V4cG9ydHMiLCAiX19leHBvcnQiLCAiT2RvbnRvZ3JhbV9kZWZhdWx0IiwgIl9fdG9Db21tb25KUyIsICJpbXBvcnRfcmVhY3QiLCAidGVldGhQYXRocyIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiY29udmVydEZESVRvTm90YXRpb24iLCAiZmRpIiwgIm5vdGF0aW9uIiwgIm51bSIsICJmZGlUb1VuaXZlcnNhbCIsICJxdWFkcmFudCIsICJnZXRUb290aE5vdGF0aW9ucyIsICJ1bml2ZXJzYWwiLCAicGFsbWVyIiwgIlRlZXRoIiwgIm5hbWUiLCAib3V0bGluZVBhdGgiLCAic2hhZG93UGF0aCIsICJsaW5lSGlnaGxpZ2h0UGF0aCIsICJzZWxlY3RlZCIsICJvbkNsaWNrIiwgIm9uS2V5RG93biIsICJjaGlsZHJlbiIsICJlIiwgImkiLCAiT2RvbnRvZ3JhbSIsICJkZWZhdWx0U2VsZWN0ZWQiLCAib25DaGFuZ2UiLCAiY2xhc3NOYW1lIiwgInRoZW1lIiwgImNvbG9ycyIsICJ0aGVtZUNvbG9ycyIsICJzZXRTZWxlY3RlZCIsICJoYW5kbGVUb2dnbGUiLCAicHJldiIsICJ1cGRhdGVkIiwgImRldGFpbHMiLCAiaWQiLCAidG9vdGhCYXNlIiwgInRvb3RoRGF0YSIsICJ0ZWV0aFBhdGhzIiwgInQiLCAiaGFuZGxlS2V5RG93biIsICJxdWFkcmFudHMiLCAicmVuZGVyVGVldGgiLCAicHJlZml4IiwgInRvb3RoIiwgImRpc3BsYXlOYW1lIiwgImZpbmFsQ29sb3JzIiwgIm1hcFRvQ3NzVmFycyIsICJ0cmFuc2Zvcm0iLCAiaW5kZXgiLCAiY3NzVmFycyIsICJPZG9udG9ncmFtX2RlZmF1bHQiXQp9Cg==
|
|
1
|
+
"use strict";var D=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var r in e)D(t,r,{get:e[r],enumerable:!0})},Y=(t,e,r,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of W(e))!J.call(t,a)&&a!==r&&D(t,a,{get:()=>e[a],enumerable:!(l=Q(e,a))||l.enumerable});return t};var _=t=>Y(D({},"__esModule",{value:!0}),t);var t1={};X(t1,{Odontogram:()=>F,Teeth:()=>I,convertFDIToNotation:()=>w,default:()=>A,getToothNotations:()=>E,mapToCssVars:()=>G});module.exports=_(t1);var b=require("react");var R=[{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"]}];var M=require("react"),f=require("react/jsx-runtime"),e1=(t,e)=>typeof t=="function"?t(e):t,$=({active:t,payload:e,position:r,content:l})=>{var u,s,v;let a=(0,M.useRef)(null);return(0,M.useEffect)(()=>{if(a.current&&r){let{x:k,y:P}=r;a.current.style.left=`${k+10}px`,a.current.style.top=`${P+10}px`}},[r]),!t||!e?null:(0,f.jsx)("div",{ref:a,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"rgba(0, 0, 0, 0.75)",color:"#fff",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,transform:"translate(-50%, -100%)",transition:"opacity 0.15s ease"},children:e1(l,e)??(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{children:["Tooth: ",(u=e==null?void 0:e.notations)==null?void 0:u.fdi]}),(0,f.jsxs)("div",{children:["Type: ",e==null?void 0:e.type]}),(0,f.jsxs)("div",{children:["Universal: ",(s=e==null?void 0:e.notations)==null?void 0:s.universal,", Palmer:"," ",(v=e==null?void 0:e.notations)==null?void 0:v.palmer]})]})})};var g=require("react/jsx-runtime");function w(t,e){let r=t.replace("teeth-",""),l={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(l[r]??r);if(e==="Palmer"){let a=r[0];return`${r[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[a]??""}`}return r}function E(t){let e=t.replace("teeth-",""),r=w(t,"Universal"),l=w(t,"Palmer");return{fdi:e,universal:r,palmer:l}}var I=({name:t,outlinePath:e,shadowPath:r,lineHighlightPath:l,selected:a,onClick:u,onKeyDown:s,onHover:v,onLeave:k,children:P})=>(0,g.jsxs)("g",{className:`${t} ${a?"selected":""}`,tabIndex:0,onClick:()=>u==null?void 0:u(t),onKeyDown:y=>s==null?void 0:s(y,t),onMouseMove:y=>v==null?void 0:v(t,y),onMouseLeave:k,role:"button","aria-pressed":a,"aria-label":`Tooth ${t}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[P,(0,g.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:e}),(0,g.jsx)("path",{fill:"currentColor",d:r}),Array.isArray(l)?l.map((y,T)=>(0,g.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:y},T)):(0,g.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:l})]}),F=({defaultSelected:t=[],onChange:e,className:r="",theme:l="light",colors:a={},notation:u,tooltip:s={margin:10},showTooltip:v=!0,showHalf:k="full"})=>{let P=l==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[y,T]=(0,b.useState)(new Set(t)),L=(0,b.useRef)(null),o1=(0,b.useRef)(null),[C,B]=(0,b.useState)({active:!1}),S=(0,b.useCallback)(n=>{T(m=>{let h=new Set(m);h.has(n)?h.delete(n):h.add(n);let x=Array.from(h).map(p=>{let N=p.replace("teeth-","").slice(1),i=R.find(c=>c.name===N);return{id:p,notations:E(p),type:(i==null?void 0:i.type)??"Unknown"}});return e==null||e(x),h})},[e]),H=(0,b.useCallback)((n,m)=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),S(m))},[S]),O=[{name:"first",transform:"",label:"Upper Right",position:{x:100,y:30}},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left",position:{x:309,y:30}},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right",position:{x:100,y:664}},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left",position:{x:309,y:664}}],Z=O;k==="upper"?Z=O.slice(0,2):k==="lower"&&(Z=O.slice(2));let V=(n,m,h="right")=>{var U;let p=m.currentTarget.querySelector("path");if(!p||!L.current)return;let o=p.getBoundingClientRect(),N=L.current.getBoundingClientRect(),i=(s==null?void 0:s.margin)||10,c=o.left,d=o.top;switch(h){case"top":c=o.left+o.width/2,d=o.top-i;break;case"top-start":c=o.left,d=o.top-i;break;case"top-end":c=o.right,d=o.top-i;break;case"bottom":c=o.left+o.width/2,d=o.bottom+i;break;case"bottom-start":c=o.left,d=o.bottom+i;break;case"bottom-end":c=o.right,d=o.bottom+i;break;case"left":c=o.left-i,d=o.top+o.height/2;break;case"left-start":c=o.left-i,d=o.top;break;case"left-end":c=o.left-i,d=o.bottom;break;case"right":c=o.right+i,d=o.top+o.height/2;break;case"right-start":c=o.right+i,d=o.top;break;case"right-end":c=o.right+i,d=o.bottom;break}d<N.top&&(d=o.bottom+i),B({active:!0,position:{x:c,y:d},payload:{id:n,notations:E(n),type:((U=R.find(K=>K.name===n.replace("teeth-","").slice(1)))==null?void 0:U.type)??"Unknown"}})},q=()=>B(n=>({...n,active:!1})),j=n=>R.map(m=>{let h=`${n}${m.name}`,x=w(h,u??"FDI");return(0,g.jsx)(I,{...m,name:h,selected:y.has(h),onClick:S,onKeyDown:H,onHover:(p,o)=>V(p,o,s==null?void 0:s.placement),onLeave:q,children:(0,g.jsx)("title",{children:x})},h)}),z={...P,...G(a)};return(0,g.jsxs)("div",{className:`Odontogram ${l==="dark"?"dark-theme":""}`,style:{...z,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},children:[(0,g.jsx)("svg",{ref:L,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:k==="full"?"0 0 409 694":k==="upper"?"0 0 409 347":"0 200 409 694",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:Z.map(({name:n,transform:m,label:h,position:x},p)=>(0,g.jsx)("g",{name:n,transform:m,children:j(`teeth-${p+1}`)},n))}),v&&(0,g.jsx)($,{active:C.active,position:C.position,payload:C.payload,content:s==null?void 0:s.content})]})};function G(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}var A=F;0&&(module.exports={Odontogram,Teeth,convertFDIToNotation,getToothNotations,mapToCssVars});
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9PZG9udG9ncmFtLnRzeCIsICIuLi9zcmMvZGF0YS50cyIsICIuLi9zcmMvVG9vbHRpcC50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbIlxuZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCIuL09kb250b2dyYW1cIjtcblxuZXhwb3J0ICogZnJvbSAnLi9PZG9udG9ncmFtJzsiLCAiaW1wb3J0IFwiLi9zdHlsZXMuY3NzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdGVldGhQYXRocyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB7IE9kb250b2dyYW1Ub29sdGlwIH0gZnJvbSBcIi4vVG9vbHRpcFwiO1xuXG50eXBlIFBsYWNlbWVudCA9XG5cdHwgXCJ0b3BcIlxuXHR8IFwidG9wLXN0YXJ0XCJcblx0fCBcInRvcC1lbmRcIlxuXHR8IFwicmlnaHRcIlxuXHR8IFwicmlnaHQtc3RhcnRcIlxuXHR8IFwicmlnaHQtZW5kXCJcblx0fCBcImJvdHRvbVwiXG5cdHwgXCJib3R0b20tc3RhcnRcIlxuXHR8IFwiYm90dG9tLWVuZFwiXG5cdHwgXCJsZWZ0XCJcblx0fCBcImxlZnQtc3RhcnRcIlxuXHR8IFwibGVmdC1lbmRcIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIFRlZXRoUHJvcHMge1xuXHRuYW1lOiBzdHJpbmc7XG5cdG91dGxpbmVQYXRoOiBzdHJpbmc7XG5cdHNoYWRvd1BhdGg6IHN0cmluZztcblx0bGluZUhpZ2hsaWdodFBhdGg6IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRzZWxlY3RlZD86IGJvb2xlYW47XG5cdG9uQ2xpY2s/OiAobmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuXHRvbktleURvd24/OiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4gdm9pZDtcblx0Y2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG5cdG9uSG92ZXI/OiAobmFtZTogc3RyaW5nLCBldmVudDogUmVhY3QuTW91c2VFdmVudCwgcGxhY2VtZW50PzogUGxhY2VtZW50KSA9PiB2b2lkO1xuXHRvbkxlYXZlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb290aERldGFpbCB7XG5cdGlkOiBzdHJpbmc7XG5cdG5vdGF0aW9uczoge1xuXHRcdGZkaTogc3RyaW5nO1xuXHRcdHVuaXZlcnNhbDogc3RyaW5nO1xuXHRcdHBhbG1lcjogc3RyaW5nO1xuXHR9O1xuXHR0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2RvbnRvZ3JhbVByb3BzIHtcblx0ZGVmYXVsdFNlbGVjdGVkPzogc3RyaW5nW107XG5cdG9uQ2hhbmdlPzogKHNlbGVjdGVkOiBUb290aERldGFpbFtdKSA9PiB2b2lkO1xuXHRjbGFzc05hbWU/OiBzdHJpbmc7XG5cdHNlbGVjdGVkQ29sb3I/OiBzdHJpbmc7XG5cdGhvdmVyQ29sb3I/OiBzdHJpbmc7XG5cdHRoZW1lOiBcImxpZ2h0XCIgfCBcImRhcmtcIjtcblx0Y29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRub3RhdGlvbj86IFwiRkRJXCIgfCBcIlVuaXZlcnNhbFwiIHwgXCJQYWxtZXJcIjtcblx0dG9vbHRpcD86IHtcblx0XHRwbGFjZW1lbnQ/OiBQbGFjZW1lbnQ7XG5cdFx0bWFyZ2luPzogbnVtYmVyO1xuXHRcdGNvbnRlbnQ/OiBSZWFjdC5SZWFjdE5vZGUgfCAoKHBheWxvYWQ/OiBUb290aERldGFpbCkgPT4gUmVhY3QuUmVhY3ROb2RlKTtcblx0fTtcblx0c2hvd1Rvb2x0aXA/OiBib29sZWFuO1xuXHRzaG93SGFsZj86IFwidXBwZXJcIiB8IFwibG93ZXJcIiB8IFwiZnVsbFwiO1xuXG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGRElUb05vdGF0aW9uKFxuXHRmZGk6IHN0cmluZyxcblx0bm90YXRpb246IFwiRkRJXCIgfCBcIlVuaXZlcnNhbFwiIHwgXCJQYWxtZXJcIixcbikge1xuXHRjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuXHRjb25zdCBmZGlUb1VuaXZlcnNhbDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcblx0XHRcIjExXCI6IDgsXG5cdFx0XCIxMlwiOiA3LFxuXHRcdFwiMTNcIjogNixcblx0XHRcIjE0XCI6IDUsXG5cdFx0XCIxNVwiOiA0LFxuXHRcdFwiMTZcIjogMyxcblx0XHRcIjE3XCI6IDIsXG5cdFx0XCIxOFwiOiAxLFxuXHRcdFwiMjFcIjogOSxcblx0XHRcIjIyXCI6IDEwLFxuXHRcdFwiMjNcIjogMTEsXG5cdFx0XCIyNFwiOiAxMixcblx0XHRcIjI1XCI6IDEzLFxuXHRcdFwiMjZcIjogMTQsXG5cdFx0XCIyN1wiOiAxNSxcblx0XHRcIjI4XCI6IDE2LFxuXHRcdFwiMzFcIjogMjQsXG5cdFx0XCIzMlwiOiAyMyxcblx0XHRcIjMzXCI6IDIyLFxuXHRcdFwiMzRcIjogMjEsXG5cdFx0XCIzNVwiOiAyMCxcblx0XHRcIjM2XCI6IDE5LFxuXHRcdFwiMzdcIjogMTgsXG5cdFx0XCIzOFwiOiAxNyxcblx0XHRcIjQxXCI6IDI1LFxuXHRcdFwiNDJcIjogMjYsXG5cdFx0XCI0M1wiOiAyNyxcblx0XHRcIjQ0XCI6IDI4LFxuXHRcdFwiNDVcIjogMjksXG5cdFx0XCI0NlwiOiAzMCxcblx0XHRcIjQ3XCI6IDMxLFxuXHRcdFwiNDhcIjogMzIsXG5cdH07XG5cblx0aWYgKG5vdGF0aW9uID09PSBcIlVuaXZlcnNhbFwiKSB7XG5cdFx0cmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG5cdH1cblxuXHRpZiAobm90YXRpb24gPT09IFwiUGFsbWVyXCIpIHtcblx0XHRjb25zdCBxdWFkcmFudCA9IG51bVswXTtcblx0XHRjb25zdCB0b290aCA9IG51bVsxXTtcblx0XHRjb25zdCBzeW1ib2xzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuXHRcdFx0XCIxXCI6IFwiVVJcIiwgLy8gdXBwZXIgcmlnaHRcblx0XHRcdFwiMlwiOiBcIlVMXCIsIC8vIHVwcGVyIGxlZnRcblx0XHRcdFwiM1wiOiBcIkxMXCIsIC8vIGxvd2VyIGxlZnRcblx0XHRcdFwiNFwiOiBcIkxSXCIsIC8vIGxvd2VyIHJpZ2h0XG5cdFx0fTtcblx0XHRyZXR1cm4gYCR7dG9vdGh9JHtzeW1ib2xzW3F1YWRyYW50XSA/PyBcIlwifWA7XG5cdH1cblxuXHRyZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vdGhOb3RhdGlvbnMoZmRpOiBzdHJpbmcpIHtcblx0Y29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG5cdGNvbnN0IHVuaXZlcnNhbCA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJVbml2ZXJzYWxcIik7XG5cdGNvbnN0IHBhbG1lciA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJQYWxtZXJcIik7XG5cdHJldHVybiB7XG5cdFx0ZmRpOiBudW0sXG5cdFx0dW5pdmVyc2FsLFxuXHRcdHBhbG1lcixcblx0fTtcbn1cblxuZXhwb3J0IGNvbnN0IFRlZXRoID0gKHtcblx0bmFtZSxcblx0b3V0bGluZVBhdGgsXG5cdHNoYWRvd1BhdGgsXG5cdGxpbmVIaWdobGlnaHRQYXRoLFxuXHRzZWxlY3RlZCxcblx0b25DbGljayxcblx0b25LZXlEb3duLFxuXHRvbkhvdmVyLFxuXHRvbkxlYXZlLFxuXHRjaGlsZHJlbixcbn06IFRlZXRoUHJvcHMpID0+IChcblx0PGdcblx0XHRjbGFzc05hbWU9e2Ake25hbWV9ICR7c2VsZWN0ZWQgPyBcInNlbGVjdGVkXCIgOiBcIlwifWB9XG5cdFx0dGFiSW5kZXg9ezB9XG5cdFx0b25DbGljaz17KCkgPT4gb25DbGljaz8uKG5hbWUpfVxuXHRcdG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bj8uKGUsIG5hbWUpfVxuXHRcdG9uTW91c2VNb3ZlPXsoZSkgPT4gb25Ib3Zlcj8uKG5hbWUsIGUpfVxuXHRcdG9uTW91c2VMZWF2ZT17b25MZWF2ZX1cblx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRhcmlhLXByZXNzZWQ9e3NlbGVjdGVkfVxuXHRcdGFyaWEtbGFiZWw9e2BUb290aCAke25hbWV9YH1cblx0XHRzdHlsZT17e1xuXHRcdFx0Y3Vyc29yOiBcInBvaW50ZXJcIixcblx0XHRcdG91dGxpbmU6IFwibm9uZVwiLFxuXHRcdFx0dG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG5cdFx0XHR0cmFuc2l0aW9uOiBcImFsbCAwLjJzIGVhc2VcIixcblx0XHR9fVxuXHQ+XG5cdFx0e2NoaWxkcmVufVxuXHRcdDxwYXRoXG5cdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0c3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcblx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0ZD17b3V0bGluZVBhdGh9XG5cdFx0Lz5cblx0XHQ8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD17c2hhZG93UGF0aH0gLz5cblx0XHR7QXJyYXkuaXNBcnJheShsaW5lSGlnaGxpZ2h0UGF0aCkgPyAoXG5cdFx0XHRsaW5lSGlnaGxpZ2h0UGF0aC5tYXAoKGQsIGkpID0+IChcblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRrZXk9e2l9XG5cdFx0XHRcdFx0c3Ryb2tlPVwiY3VycmVudENvbG9yXCJcblx0XHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0XHRcdGQ9e2R9XG5cdFx0XHRcdC8+XG5cdFx0XHQpKVxuXHRcdCkgOiAoXG5cdFx0XHQ8cGF0aFxuXHRcdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcblx0XHRcdFx0ZD17bGluZUhpZ2hsaWdodFBhdGh9XG5cdFx0XHQvPlxuXHRcdCl9XG5cdDwvZz5cbik7XG5cbmV4cG9ydCBjb25zdCBPZG9udG9ncmFtOiBSZWFjdC5GQzxPZG9udG9ncmFtUHJvcHM+ID0gKHtcblx0ZGVmYXVsdFNlbGVjdGVkID0gW10sXG5cdG9uQ2hhbmdlLFxuXHRjbGFzc05hbWUgPSBcIlwiLFxuXHR0aGVtZSA9IFwibGlnaHRcIixcblx0Y29sb3JzID0ge30sXG5cdG5vdGF0aW9uLFxuXHR0b29sdGlwID0ge1xuXHRcdG1hcmdpbjogMTAsXG5cdH0sXG5cdHNob3dUb29sdGlwID0gdHJ1ZSxcblx0c2hvd0hhbGYgPSAnZnVsbCcsXG5cbn0pID0+IHtcblx0Y29uc3QgdGhlbWVDb2xvcnMgPVxuXHRcdHRoZW1lID09PSBcImRhcmtcIlxuXHRcdFx0PyB7XG5cdFx0XHRcdFwiLS1kYXJrLWJsdWVcIjogXCIjYWFiNmZmXCIsXG5cdFx0XHRcdFwiLS1iYXNlLWJsdWVcIjogXCIjZDBkNWY2XCIsXG5cdFx0XHRcdFwiLS1saWdodC1ibHVlXCI6IFwiIzUzNjFlNlwiLFxuXHRcdFx0fVxuXHRcdFx0OiB7XG5cdFx0XHRcdFwiLS1kYXJrLWJsdWVcIjogXCIjM2U1ZWRjXCIsXG5cdFx0XHRcdFwiLS1iYXNlLWJsdWVcIjogXCIjOGE5OGJlXCIsXG5cdFx0XHRcdFwiLS1saWdodC1ibHVlXCI6IFwiI2M2Y2NmOFwiLFxuXHRcdFx0fTtcblxuXHRjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+Pihcblx0XHRuZXcgU2V0KGRlZmF1bHRTZWxlY3RlZCksXG5cdCk7XG5cblx0Y29uc3Qgc3ZnUmVmID0gdXNlUmVmPFNWR1NWR0VsZW1lbnQ+KG51bGwpO1xuXHRjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuXHRjb25zdCBbdG9vbHRpcERhdGEsIHNldFRvb2x0aXBEYXRhXSA9IHVzZVN0YXRlPHtcblx0XHRhY3RpdmU6IGJvb2xlYW47XG5cdFx0cG9zaXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG5cdFx0cGF5bG9hZD86IFRvb3RoRGV0YWlsO1xuXHR9Pih7IGFjdGl2ZTogZmFsc2UgfSk7XG5cblx0Y29uc3QgaGFuZGxlVG9nZ2xlID0gdXNlQ2FsbGJhY2soXG5cdFx0KG5hbWU6IHN0cmluZykgPT4ge1xuXHRcdFx0c2V0U2VsZWN0ZWQoKHByZXYpID0+IHtcblx0XHRcdFx0Y29uc3QgdXBkYXRlZCA9IG5ldyBTZXQocHJldik7XG5cdFx0XHRcdHVwZGF0ZWQuaGFzKG5hbWUpID8gdXBkYXRlZC5kZWxldGUobmFtZSkgOiB1cGRhdGVkLmFkZChuYW1lKTtcblxuXHRcdFx0XHQvLyBidWlsZCBkZXRhaWxlZCBKU09OIG91dHB1dFxuXHRcdFx0XHRjb25zdCBkZXRhaWxzID0gQXJyYXkuZnJvbSh1cGRhdGVkKS5tYXAoKGlkKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgZmRpID0gaWQucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblx0XHRcdFx0XHRjb25zdCB0b290aEJhc2UgPSBmZGkuc2xpY2UoMSk7XG5cdFx0XHRcdFx0Y29uc3QgdG9vdGhEYXRhID0gdGVldGhQYXRocy5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IHRvb3RoQmFzZSk7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdGlkLFxuXHRcdFx0XHRcdFx0bm90YXRpb25zOiBnZXRUb290aE5vdGF0aW9ucyhpZCksXG5cdFx0XHRcdFx0XHR0eXBlOiB0b290aERhdGE/LnR5cGUgPz8gXCJVbmtub3duXCIsXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0b25DaGFuZ2U/LihkZXRhaWxzKTtcblx0XHRcdFx0cmV0dXJuIHVwZGF0ZWQ7XG5cdFx0XHR9KTtcblx0XHR9LFxuXHRcdFtvbkNoYW5nZV0sXG5cdCk7XG5cdGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcblx0XHQoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4ge1xuXHRcdFx0aWYgKGUua2V5ID09PSBcIkVudGVyXCIgfHwgZS5rZXkgPT09IFwiIFwiKSB7XG5cdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0aGFuZGxlVG9nZ2xlKG5hbWUpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0W2hhbmRsZVRvZ2dsZV0sXG5cdCk7XG5cblx0Y29uc3QgcXVhZHJhbnRzOiBBcnJheTx7XG5cdFx0bmFtZTogXCJmaXJzdFwiIHwgXCJzZWNvbmRcIiB8IFwidGhpcmRcIiB8IFwiZm91cnRoXCI7XG5cdFx0dHJhbnNmb3JtOiBzdHJpbmc7XG5cdFx0bGFiZWw6IHN0cmluZztcblx0XHRwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuXHR9PiA9IFtcblx0XHRcdHsgbmFtZTogXCJmaXJzdFwiLCB0cmFuc2Zvcm06IFwiXCIsIGxhYmVsOiBcIlVwcGVyIFJpZ2h0XCIsIHBvc2l0aW9uOiB7IHg6IDEwMCwgeTogMzAgfSB9LFxuXHRcdFx0eyBuYW1lOiBcInNlY29uZFwiLCB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNDA5LCAwKVwiLCBsYWJlbDogXCJVcHBlciBMZWZ0XCIsIHBvc2l0aW9uOiB7IHg6IDMwOSwgeTogMzAgfSB9LFxuXHRcdFx0eyBuYW1lOiBcInRoaXJkXCIsIHRyYW5zZm9ybTogXCJzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKDAsIC02OTQpXCIsIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsIHBvc2l0aW9uOiB7IHg6IDEwMCwgeTogNjY0IH0gfSxcblx0XHRcdHsgbmFtZTogXCJmb3VydGhcIiwgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAtMSkgdHJhbnNsYXRlKC00MDksIC02OTQpXCIsIGxhYmVsOiBcIkxvd2VyIExlZnRcIiwgcG9zaXRpb246IHsgeDogMzA5LCB5OiA2NjQgfSB9LFxuXHRcdF07XG5cblx0bGV0IHZpc2libGVRdWFkcmFudHMgPSBxdWFkcmFudHM7XG5cdGlmIChzaG93SGFsZiA9PT0gXCJ1cHBlclwiKSB7XG5cdFx0dmlzaWJsZVF1YWRyYW50cyA9IHF1YWRyYW50cy5zbGljZSgwLCAyKTtcblx0fSBlbHNlIGlmIChzaG93SGFsZiA9PT0gXCJsb3dlclwiKSB7XG5cdFx0dmlzaWJsZVF1YWRyYW50cyA9IHF1YWRyYW50cy5zbGljZSgyKTtcblx0fVxuXG5cblxuXHRjb25zdCBoYW5kbGVIb3ZlciA9IChcblx0XHRuYW1lOiBzdHJpbmcsXG5cdFx0ZTogUmVhY3QuTW91c2VFdmVudCxcblx0XHRwbGFjZW1lbnQ6IFBsYWNlbWVudCA9IFwicmlnaHRcIiAvLyBkZWZhdWx0XG5cdCkgPT4ge1xuXHRcdGNvbnN0IHRhcmdldCA9IGUuY3VycmVudFRhcmdldCBhcyBTVkdHRWxlbWVudDtcblx0XHRjb25zdCBwYXRoID0gdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJwYXRoXCIpO1xuXG5cdFx0aWYgKCFwYXRoIHx8ICFzdmdSZWYuY3VycmVudCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgdG9vdGhCb3ggPSBwYXRoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdGNvbnN0IHN2Z0JveCA9IHN2Z1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG5cdFx0Y29uc3QgbWFyZ2luID0gdG9vbHRpcD8ubWFyZ2luIHx8IDEwOyAvLyBkaXN0YW5jZSBiZXR3ZWVuIHRvb3RoIGFuZCB0b29sdGlwXG5cblx0XHQvLyBDb21wdXRlIHRvb2x0aXAgcG9zaXRpb24ganVzdCBhYm92ZSBvciBiZWxvdyBkZXBlbmRpbmcgb24gc3BhY2Vcblx0XHRsZXQgeCA9IHRvb3RoQm94LmxlZnRcblx0XHRsZXQgeSA9IHRvb3RoQm94LnRvcFxuXG5cdFx0c3dpdGNoIChwbGFjZW1lbnQpIHtcblx0XHRcdGNhc2UgXCJ0b3BcIjpcblx0XHRcdFx0eCA9IHRvb3RoQm94LmxlZnQgKyB0b290aEJveC53aWR0aCAvIDI7XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3AgLSBtYXJnaW47XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcInRvcC1zdGFydFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gubGVmdDtcblx0XHRcdFx0eSA9IHRvb3RoQm94LnRvcCAtIG1hcmdpbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwidG9wLWVuZFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQ7XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3AgLSBtYXJnaW47XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcImJvdHRvbVwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gubGVmdCArIHRvb3RoQm94LndpZHRoIC8gMjtcblx0XHRcdFx0eSA9IHRvb3RoQm94LmJvdHRvbSArIG1hcmdpbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiYm90dG9tLXN0YXJ0XCI6XG5cdFx0XHRcdHggPSB0b290aEJveC5sZWZ0O1xuXHRcdFx0XHR5ID0gdG9vdGhCb3guYm90dG9tICsgbWFyZ2luO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJib3R0b20tZW5kXCI6XG5cdFx0XHRcdHggPSB0b290aEJveC5yaWdodDtcblx0XHRcdFx0eSA9IHRvb3RoQm94LmJvdHRvbSArIG1hcmdpbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwibGVmdFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gubGVmdCAtIG1hcmdpbjtcblx0XHRcdFx0eSA9IHRvb3RoQm94LnRvcCArIHRvb3RoQm94LmhlaWdodCAvIDI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcImxlZnQtc3RhcnRcIjpcblx0XHRcdFx0eCA9IHRvb3RoQm94LmxlZnQgLSBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3A7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcImxlZnQtZW5kXCI6XG5cdFx0XHRcdHggPSB0b290aEJveC5sZWZ0IC0gbWFyZ2luO1xuXHRcdFx0XHR5ID0gdG9vdGhCb3guYm90dG9tO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJyaWdodFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQgKyBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3AgKyB0b290aEJveC5oZWlnaHQgLyAyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJyaWdodC1zdGFydFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQgKyBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3A7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcInJpZ2h0LWVuZFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQgKyBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC5ib3R0b207XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXG5cdFx0Ly8gSWYgdG9vbHRpcCB3b3VsZCBnbyBhYm92ZSBzdmcsIHBsYWNlIGl0IGJlbG93IGluc3RlYWRcblx0XHRpZiAoeSA8IHN2Z0JveC50b3ApIHtcblx0XHRcdHkgPSB0b290aEJveC5ib3R0b20gKyBtYXJnaW47XG5cdFx0fVxuXG5cdFx0c2V0VG9vbHRpcERhdGEoe1xuXHRcdFx0YWN0aXZlOiB0cnVlLFxuXHRcdFx0cG9zaXRpb246IHsgeCwgeSB9LFxuXHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRpZDogbmFtZSxcblx0XHRcdFx0bm90YXRpb25zOiBnZXRUb290aE5vdGF0aW9ucyhuYW1lKSxcblx0XHRcdFx0dHlwZTogdGVldGhQYXRocy5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IG5hbWUucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKS5zbGljZSgxKSlcblx0XHRcdFx0XHQ/LnR5cGUgPz8gXCJVbmtub3duXCIsXG5cdFx0XHR9LFxuXHRcdH0pO1xuXHR9O1xuXHRjb25zdCBoYW5kbGVMZWF2ZSA9ICgpID0+IHNldFRvb2x0aXBEYXRhKChwKSA9PiAoeyAuLi5wLCBhY3RpdmU6IGZhbHNlIH0pKTtcblxuXG5cdGNvbnN0IHJlbmRlclRlZXRoID0gKHByZWZpeDogc3RyaW5nKSA9PlxuXHRcdHRlZXRoUGF0aHMubWFwKCh0b290aCkgPT4ge1xuXHRcdFx0Y29uc3QgaWQgPSBgJHtwcmVmaXh9JHt0b290aC5uYW1lfWA7XG5cdFx0XHRjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbiA/PyBcIkZESVwiKTsgLy8gXHVEODNDXHVERDk1XG5cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxUZWV0aFxuXHRcdFx0XHRcdGtleT17aWR9XG5cdFx0XHRcdFx0ey4uLnRvb3RofVxuXHRcdFx0XHRcdG5hbWU9e2lkfVxuXHRcdFx0XHRcdHNlbGVjdGVkPXtzZWxlY3RlZC5oYXMoaWQpfVxuXHRcdFx0XHRcdG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cblx0XHRcdFx0XHRvbktleURvd249e2hhbmRsZUtleURvd259XG5cdFx0XHRcdFx0b25Ib3Zlcj17KG5hbWUsIGUpID0+IGhhbmRsZUhvdmVyKG5hbWUsIGUsIHRvb2x0aXA/LnBsYWNlbWVudCl9XG5cdFx0XHRcdFx0b25MZWF2ZT17aGFuZGxlTGVhdmV9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8dGl0bGU+e2Rpc3BsYXlOYW1lfTwvdGl0bGU+XG5cdFx0XHRcdDwvVGVldGg+XG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cblx0Y29uc3QgZmluYWxDb2xvcnMgPSB7IC4uLnRoZW1lQ29sb3JzLCAuLi5tYXBUb0Nzc1ZhcnMoY29sb3JzKSB9O1xuXG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3NOYW1lPXtgT2RvbnRvZ3JhbSAke3RoZW1lID09PSBcImRhcmtcIiA/IFwiZGFyay10aGVtZVwiIDogXCJcIn1gfVxuXHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0Li4uKGZpbmFsQ29sb3JzIGFzIFJlYWN0LkNTU1Byb3BlcnRpZXMpLFxuXHRcdFx0XHR3aWR0aDogXCIxMDAlXCIsXG5cdFx0XHRcdG1heFdpZHRoOiAzMDAsXG5cdFx0XHRcdG1hcmdpbjogXCIwIGF1dG9cIixcblx0XHRcdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0XHRcdGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuXHRcdFx0XHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRcdFx0XHQvLyBpc29sYXRpb246IFwiaXNvbGF0ZVwiLFxuXHRcdFx0fX1cblx0XHQ+XG5cdFx0XHQ8c3ZnXG5cdFx0XHRcdHJlZj17c3ZnUmVmfVxuXHRcdFx0XHR4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcblx0XHRcdFx0ZmlsbD1cIm5vbmVcIlxuXHRcdFx0XHR2aWV3Qm94PXtzaG93SGFsZiA9PT0gXCJmdWxsXCIgPyBcIjAgMCA0MDkgNjk0XCIgOiBzaG93SGFsZiA9PT0gJ3VwcGVyJyA/IFwiMCAwIDQwOSAzNDdcIiA6IFwiMCAyMDAgNDA5IDY5NFwifVxuXHRcdFx0XHRjbGFzc05hbWU9XCJPZG9udG9ncmFtXCJcblx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHR3aWR0aDogXCIxMDAlXCIsXG5cdFx0XHRcdFx0aGVpZ2h0OiBcImF1dG9cIixcblx0XHRcdFx0XHR1c2VyU2VsZWN0OiBcIm5vbmVcIixcblx0XHRcdFx0XHR0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcblx0XHRcdFx0fX1cblx0XHRcdD5cblxuXHRcdFx0XHR7dmlzaWJsZVF1YWRyYW50cy5tYXAoKHsgbmFtZSwgdHJhbnNmb3JtLCBsYWJlbCwgcG9zaXRpb24gfSwgaW5kZXgpID0+IChcblx0XHRcdFx0XHQ8ZyBrZXk9e25hbWV9IG5hbWU9e25hbWV9IHRyYW5zZm9ybT17dHJhbnNmb3JtfT5cblx0XHRcdFx0XHRcdHtyZW5kZXJUZWV0aChgdGVldGgtJHtpbmRleCArIDF9YCl9XG5cblx0XHRcdFx0XHQ8L2c+XG5cdFx0XHRcdCkpfVxuXHRcdFx0PC9zdmc+XG5cdFx0XHR7c2hvd1Rvb2x0aXAgJiYgKFxuXHRcdFx0XHQ8T2RvbnRvZ3JhbVRvb2x0aXBcblx0XHRcdFx0XHRhY3RpdmU9e3Rvb2x0aXBEYXRhLmFjdGl2ZX1cblx0XHRcdFx0XHRwb3NpdGlvbj17dG9vbHRpcERhdGEucG9zaXRpb259XG5cdFx0XHRcdFx0cGF5bG9hZD17dG9vbHRpcERhdGEucGF5bG9hZH1cblx0XHRcdFx0XHRjb250ZW50PXt0b29sdGlwPy5jb250ZW50fVxuXHRcdFx0XHQvPlxuXHRcdFx0KX1cblx0XHQ8L2Rpdj5cblx0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb0Nzc1ZhcnMoY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KSB7XG5cdGNvbnN0IGNzc1ZhcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblx0aWYgKGNvbG9ycy5kYXJrQmx1ZSkge1xuXHRcdGNzc1ZhcnNbXCItLWRhcmstYmx1ZVwiXSA9IGNvbG9ycy5kYXJrQmx1ZTtcblx0fVxuXHRpZiAoY29sb3JzLmJhc2VCbHVlKSB7XG5cdFx0Y3NzVmFyc1tcIi0tYmFzZS1ibHVlXCJdID0gY29sb3JzLmJhc2VCbHVlO1xuXHR9XG5cdGlmIChjb2xvcnMubGlnaHRCbHVlKSB7XG5cdFx0Y3NzVmFyc1tcIi0tbGlnaHQtYmx1ZVwiXSA9IGNvbG9ycy5saWdodEJsdWU7XG5cdH1cblx0cmV0dXJuIGNzc1ZhcnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9kb250b2dyYW07XG4iLCAiZXhwb3J0IGNvbnN0IHRlZXRoUGF0aHMgPSBbXG5cdHtcblx0XHRuYW1lOiBcIjFcIixcblx0XHR0eXBlOiBcIkNlbnRyYWwgSW5jaXNvclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTczLjk1MSAxLjY5OGMtMi4xOTguMTYtNS4zMDIuODYyLTUuMzAyLjg2MnMtNS41MzEgMS4wMjUtNy43ODEgMi4yN2MtMi40MDMgMS4zMzMtNS41NTMgMy4yOTktNi4wMTMgNS4yNTgtLjQzMiAxLjg0LS43OCA0LjczNC0uNDkxIDYuODMybC4wMjcuMmMuMzQ4IDIuNTI3Ljg2NSA2LjI4IDEuMjM5IDEwLjMxNi4xODYgMi0uMTAxIDMuMjEuNzUxIDYuMTYuODk1IDMuMSAxLjM5NSA0LjU3MyAyLjAxMyA1LjY4Ny42NDYgMS4xNjQgMS40OTMgMi4wODcgMi4wMyAzLjI4Ljg2NiAxLjkyNCAyLjM5MyA0LjI5IDMuODcgNi4xYTQ4LjgwNSA0OC44MDUgMCAwIDAgMi4zNiAyLjY2M2MxLjAxNiAxLjA3OCAyLjgxOSAzLjExIDMuODk4IDQuMzMxIDEuNTI2IDEuNzI3IDMuMDc2IDMuMjQ4IDQuNDIzIDMuNzQyIDEuMjE3LjQ0NiAyLjcwOS42NDIgMy43OTMuOTM2IDEuMzY5LjM3MiAyLjQ5NC42MzggNC41OTcgMCAxLjU0NS0uNDY4IDIuNzI1LS42MjEgNC4zNzItMi40MjQgMi4wNjQtMi4yNTggMi44NDYtMy41MTcgMy41MTItNC43NDYgMS4wNjUtMS45NjQgMi41MjQtNC42NDggMy41NDEtNi40MjIuNjExLTEuMDY4IDIuMjIxLTMuMDg5IDQuMDg2LTguODQ1IDEuNTQtNC43NTIgMi4zNjctNy43NiAyLjczMS04Ljk5NC40MTUtMS40MDggMS4wNzktMy41ODMgMS4zNTUtNi4xOTYuNDQtNC4xNzYgMS4xMTQtNy40ODIgMS4wNjItMTEuMDI2LS4wNDQtMy4wNDYuMTA0LTUuMDQtMS4wNjUtNi4zMDYtLjk1LTEuMDI5LTEuOTg4LTIuMDAxLTMuMzA2LTIuNTM0LTEuOTU5LS43OS0zLjc3NS0xLjM1OC01LjI5OC0xLjU5Mi0xLjM1MS0uMjA3LTcuMDUtLjM1LTExLjIxOS0uMDU3LTEuNTY3LjExLTMuNjEuMDk3LTkuMTg1LjUwNVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTg4LjI2OSA1MC4yMTVjMTkuMjc1LTQxLjg2NyAxMC43NjYtNDMuNjEyIDQuOTM3LTQ0LjY4NC01LjgyOS0xLjA3My0yOC40NTUgMi41My0yOS43MiAyLjgxNy0uNDQyLjIxOC04LjkxMSAwLTQuNzY3IDE5LjU0IDMuNDE2IDE2LjEwNSAxNi4xOTMgMjYuNTk2IDE3LjI0NCAyNy4yNjUgMy4xNDggMi4wMDMgOC44MzcgMi41OTUgMTIuMzA2LTQuOTM4WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTYwLjQ3MiAxNC43MjdjLjM5Mi0uNDAyIDQuMzE3LTMuMzA5IDguOTQxLTUuNDcgMy4wOTctMS40NDggNy43NzMtMS42MjkgMTEuMjA3LTEuNzQ5IDguNzU5LS4zNjUgMTAuMDA0LjkxIDEyLjYzNyAxLjQ5NS41NjIuMTM5LjkwOS4yNzYgMS43NzEuNTk1XCIsXG5cdH0sXG5cblx0e1xuXHRcdG5hbWU6IFwiMlwiLFxuXHRcdHR5cGU6IFwiTGF0ZXJhbCBJbmNpc29yXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTEzNS4wMTYgNjAuNDFjMy40NDMgMS4zNTUgNy44MzQgMi43MyA5LjYwMSAyLjM0NiA0LjE4NS0uOTEgNy4wNDQtNC4wMTcgOC4xMjMtOC4xNTIgMi4wNjktNy45MjcgMi4yNDktMTYuMjg4IDEuOTk1LTI0LjQzNi0uMTEzLTMuNTk2LjcyLTE2LjgxLTQuMTg0LTE4LjQ0NC04LjEzNS02LjE0LTMyLjA4OC40OTQtMzYuOTc5IDguMDU1LTUuMDEzIDcuNzUxLjg3OCAyMS4xMzEgNS41NiAyNy43MjggMy44NjIgNS40NCA5LjcxNCAxMC40NzQgMTUuODg0IDEyLjkwM1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTM0LjY1IDU1LjM4NmMyLjczMiAxLjA3NiA2LjIxNyAyLjE2NyA3LjYyIDEuODYyIDMuMzIxLS43MjMgNS41OS0zLjE4OCA2LjQ0Ni02LjQ3IDEuNjQyLTYuMjkgMS43ODYtMTIuOTI3IDEuNTgzLTE5LjM5My0uMDg5LTIuODU0LjU3Mi0xMy4zNDItMy4zMi0xNC42MzgtNi40NTYtNC44NzMtMjUuNDY2LjM5Mi0yOS4zNDggNi4zOTMtMy45NzkgNi4xNTIuNjk2IDE2Ljc3IDQuNDEzIDIyLjAwNiAzLjA2NCA0LjMxNyA3LjcwOSA4LjMxMyAxMi42MDYgMTAuMjRaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xMjEuNTY5IDI4Ljk1MmMuNTUxLS45ODQgNi4zNTQtOC4yMTQgMTIuODY2LTkuMDQ1IDMuMjM4LS40MTMgMTAuNjE5LS4xNyAxMS44MzggMFwiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCIzXCIsXG5cdFx0dHlwZTogXCJDYW5pbmVcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNNzcuNjMgNjQuMjM2YzEuNjkyIDEuNDAxIDE1LjUxNiAxNC41ODMgMzQuNjk4IDE2LjkwMyA1LjU2OS42NzQgMTUuMDU4LTcuMTg0IDE1Ljc4OS0xMi44OSAxLjMzNS0xMC40MjMtMTIuNDQ0LTI5LjIwNS0yMS45NjUtMzMuNzAzLTQuNTQyLTIuMTQ1LTI1Ljg5Mi00LjAzOS0yOC41MjMgMi45MzktMi40NzEgNi41NTctNi41OTYgMjEuMjkgMCAyNi43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEyMy4yODUgNjYuMjY3YzEuMDcyLTguMzY4LTEwLjIzNC0yMy45NC0xNy45OS0yNy42MDMtMy43Mi0xLjc1Ny0yMS4yMDYtMy4zMDgtMjMuMzYgMi40MDctMS43NTcgNC42Ni00LjA5IDEzLjI4NC0yLjMwNiAxOC4xNyA0LjE1IDExLjM2IDQwLjg5NyAyOC41NzMgNDMuNjU2IDcuMDI2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk04Mi44NCA2MC4wNDNjLS4wMS0uODU1LS4xOTMtNC42My4yNTYtOC4xMi42NjctNS4xODUuNzAzLTUuODY2IDEuMjktOC4xMDYuNDM3LTEuNjY2IDIuMDgzLTQuOTEgMTcuNDg3LTMuNzQ4XCIsXG5cdFx0XHRcIk0xMDEuNDM4IDY4LjQ5Yy4zNzYtLjA0NSAyLjI4NC01LjExMiA5LjQ5OC02LjM0NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjRcIixcblx0XHR0eXBlOiBcIkZpcnN0IFByZW1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTkzLjY4NCAxMDguNzQ4Yy03LjQ5OCAzLjM5Ny0zNS4zNjgtNy4zOTctMzUuNTk2LTcuNDQxLTEuNDI5LS44NDItMTIuMjE1LTIuODU0LTkuMDY4LTI5LjQxNC4xNDctMS4yMzggMS4zNTMtMi4wNSAyLjIxOC0yLjU1Ni45NTYtLjU1OSAzLjE1Ny0xLjU5NSA3LjU4Ny0yLjc5NCAyLjcwNy0uNzM0IDEzLjg1Ni0zLjU0IDE4LjY3NC0uOTIgMi4yMTYgMS4yMDYgNi4zNjMgNC4xMTcgMTAuNDczIDcuMDM2IDQuMTEgMi45MTkgMTAuOTU4IDguNzE1IDEzLjMyNyAxMS4zMzggMi4yOTEgMi41MzcgMTAuMzI0IDEzLjc1LTcuNjE1IDI0Ljc1MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOTEuNDk1IDEwNS45MzFjLTYuNTI4IDIuOTU4LTMwLjc5My02LjQ0LTMwLjk5Mi02LjQ3OC0xLjI0My0uNzM0LTEwLjYzNC0yLjQ4Ni03Ljg5NS0yNS42MS4xMjgtMS4wNzggMS4xNzgtMS43ODUgMS45MzItMi4yMjUuODMyLS40ODcgMi43NDgtMS4zOSA2LjYwNS0yLjQzMyAyLjM1Ny0uNjM5IDEyLjA2NC0zLjA4MiAxNi4yNTgtLjggMS45MyAxLjA1IDUuNTQgMy41ODQgOS4xMiA2LjEyNSAzLjU3OCAyLjU0MSA5LjU0IDcuNTg4IDExLjYwMyA5Ljg3MiAxLjk5NCAyLjIwOCA4Ljk4NyAxMS45NzEtNi42MyAyMS41NDlaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTU1LjIzNCA5Mi40MTRjLjAyMi0uMjQyLjA2LTEuNDY5Ljg3NS03Ljc5LjQ2LTMuNTczIDEuODEzLTUuNDkgMy4xMzQtNy4wMSAxLjE4LTEuMzU5IDMuNTI0LTMuMTkzIDUuODgtNC4zNjUgMS40Ni0uNjMyIDMuMDI5LTEuMTI2IDYuMDQ0LTEuNzc2LjgyNi0uMTM4IDEuNDc3LS4xNzUgMi41MjYtLjM5NVwiLFxuXHRcdFx0XCJNODcuMDIgMTAxLjM4N2M0LjE4My0uNzkyIDguNzQ3LTkuNzc0IDguNzQ3LTkuNzc0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNVwiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIFByZW1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zMy4zOTYgMTI3LjY1MmMtMS4wODgtMi43MTMtNC40ODYtMTEuODUyLTMuOTYyLTE1LjI0Ni40NzctMy4wODUgMTQuNDctMTIuMDA4IDIzLjU5NS0xMi4wMDggMi4xNzggMCAyNS4xNTcgNi42NjUgMzUuMDczIDE3LjkwOCA0LjU1MSA5LjMyNC0xLjYyNCAyMy4zMzktMTYuMjIgMjMuMzM5LTguMTkzIDAtMjMuNTYzLTEuODk3LTI1LjQ1My0yLjIxNS0xLjg5Ni0uMzE5LTQuMzE3LTEuMTI4LTYuNTk2LTIuMzIxLTEuMjg5LS42NzUtMi0xLjAzNS0yLjQ3OC0xLjY0Ny0uNjU1LS44NC0yLjEwMS0zLjE3OC0zLjk2LTcuODFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjgzNyAxMjYuNzc4Yy0uOTQ1LTIuMzU2LTMuODk1LTEwLjI4OS0zLjQ0LTEzLjIzNS40MTQtMi42NzkgMTIuNTYxLTEwLjQyNCAyMC40ODMtMTAuNDI0IDEuODkgMCAyMS44MzcgNS43ODUgMzAuNDQ1IDE1LjU0NSAzLjk1MSA4LjA5NC0xLjQxIDIwLjI2LTE0LjA4IDIwLjI2LTcuMTEyIDAtMjAuNDU0LTEuNjQ3LTIyLjA5NS0xLjkyMi0xLjY0NS0uMjc3LTMuNzQ3LS45OC01LjcyNS0yLjAxNS0xLjEyLS41ODYtMS43MzctLjg5OS0yLjE1MS0xLjQzLS41Ny0uNzI5LTEuODI1LTIuNzU5LTMuNDM3LTYuNzc5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk00MC44IDEzMS4yMjFjLTQuMDAzLTIwLjI3OCA4LjQ0Mi0yMC45NzQgMTMuNzc5LTIzLjY5MlwiLFxuXHRcdFx0XCJNNzQuMDU2IDEzNC43MjljNi4zNS00LjI2NCA2LjM0My0xMC41MDMgNi40ODktMTEuNDQ4XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNlwiLFxuXHRcdHR5cGU6IFwiRmlyc3QgTW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTM1LjUzOSAyMDMuMzIzYy0zLjM2My4xOTYtMzIuNzg4LTQuMDItMjguNDk1LTQyLjQ2NSAzLjYzMS0yMC40MDggMjYuMjEtMjMuMzY0IDI5LjU1Ny0yMi45MTIgOS4wMTktLjc0NSAyNS43MjcgNi43NDMgMjkuMjU1IDkuNDAzIDQuNTQ2IDMuNDI3IDcuMzg0IDUuNjgxIDguNjA2IDcuMDkyIDIuNDM2IDIuODE0IDQuNDk5IDUuMTEgNC43IDYuMzEzLjI4NCAxLjcwMyAxLjMxNyA0LjcyLTIuMjQ4IDkuNjg3LTIuNDUzIDMuNDE4LTIuOTU3IDYuNjYzLTIuODU2IDEwLjIyMy4xMTggNC4xODUuMzcgOS43NTQtLjUyNCAxMS42My0uNTkyIDEuMjQ0LS45ODQgMi42MjctMi4zNzUgMy4zOTItMi4wMTUgMS4xMDgtNC42MSAyLjMxNy0xMS45MyAzLjc0OC0zLjYyMy43MDgtOS4zMDkgMS44My0xMi40MDEgMi4yOTItNS4xOS43NzctOC40MjMgMS40My0xMS4yODkgMS41OTdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjUxNSAxOTkuMDg1Yy0yLjkyNy4xNy0yOC41NC0zLjQ5OS0yNC44MDMtMzYuOTYzIDMuMTYtMTcuNzY0IDIyLjgxNC0yMC4zMzcgMjUuNzI3LTE5Ljk0NCAxMC44Mi0uODkzIDI1LjcwOSA1Ljk4OSAzMi45NTUgMTQuMzU4IDIuMTIgMi40NSAzLjkxNyA0LjQ0OCA0LjA5MSA1LjQ5NS4yNDggMS40ODIuNTEzIDQuMjY4LTIuNTkgOC41OTEtMi4xMzUgMi45NzUtMS45NCA1LjY0MS0xLjg1MiA4Ljc0LjA5NiAzLjQxNyAxLjQwMiAxMC45MTctMi41MjMgMTMuMDc2LTEuNzU0Ljk2NC00LjAxMyAyLjAxNi0xMC4zODQgMy4yNjEtNi43NjIgMS4zMjItMTMuNzI4IDIuOTg0LTIwLjYyMSAzLjM4NlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzcuMTMyIDE5Mi4xNDdjMS4yODgtLjM3MiAzLjM4NS0yLjA3MSA1LjE4My01LjQzOG05LjAwOC0zNS45OGMxLjE4OCAxLjIyNCAyLjExNCA2LjM4NS4xNSAxMS4zNjNtMCAwYy0xLjUzNyAzLjg5OS00Ljk0NCA5LjM3OC0xMS4xOTUgOS4zNzggNi44NzcuMzIxIDQuNjUxIDEwLjM0MyAyLjAzNyAxNS4yMzltOS4xNTktMjQuNjE3YzEuNDctMi41ODkgNC45NjYtNy41NzIgOC4wNjgtOC4yMTdtLTE3LjIyNyAzMi44MzRjLS4xODYgMi4zNDguMDQ0IDcuMzUxIDIuNDU4IDguNTg0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiN1wiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTQuOTY5IDI0OC4xMzJjLTEuMTg4LTIuNzQtMTQuNzA4LTI3LjE1MiAxMi4zMTktNDIuMTM5IDEuODM2LTEuMDE4IDI0LjUwOC03LjcxMSA0NS4yOCAxMC44NzQgMi4yNzQgMi4wMzUgNC40NTUgMy41NzkgNS40MDMgNS4xMDIgMS40MTQgMi4yNzEgMi4xMjggMy40MzUgMS42ODcgNS42MDYtLjM4NyAxLjkwMS0xLjU0IDMuNjQyLTMuNzcgNy43MTEtMS4xMjcgMi4wNTYtMS44NTQgMy40MjctMS4zNjkgNy44MjQuMTc1IDEuNTkuNjI3IDMuOTM1LjA0OCA2LjYwMy0uNDY2IDIuMTQ3LS45NDEgMy41NjctMi41NzggNS4wMDYtMi41MyAyLjIyNC01LjMwNyAzLjY0NS05LjA3NiA0LjM1LTEuMDkxLjIwNC0zLjEzMy44MTEtNy41MjUgMS43MDItMi43NzYuNTYzLTYuNjE5IDEuMjM0LTEwLjA5IDEuNjU0LTMuNDcuNDItNi40NzguNjM4LTguNjEyLjYzNi0zLjM1My0uMDAyLTYuNzM0LjAzMS05LjQ2NS0xLjQ4bC0uMDE4LS4wMWMtMS42NTQtLjkxNS00LjA3Ni0yLjI1NS02LjI0NS00LjczMi0yLjI1OC0yLjU3OS00LjU5MS01LjQ4Mi01Ljk4OS04LjcwN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOC43OTkgMjQ2LjI4Yy0xLjEyOC0yLjM1Mi0xMi44NDMtMjMuNzA5IDEwLjc1Ni0zNi43OTYgMS42MDQtLjg4OSAyMS40LTYuNzMyIDM5LjUzOCA5LjQ5NiAxLjk4NiAxLjc3NyAzLjg5IDMuMTI1IDQuNzE3IDQuNDU0IDEuMjM1IDEuOTgzIDEuODU5IDMgMS40NzMgNC44OTUtLjMzNyAxLjY2LTEuMzQzIDMuMTgtMy4yOTEgNi43MzQtLjk4NCAxLjc5NS0xLjYxOSAyLjk5Mi0xLjE5NiA2LjgzMS4xNTQgMS4zODkuNTQ4IDMuNDM2LjA0MiA1Ljc2Ni0yLjg3MiAxMy4yMzEtMzEuMjEzIDExLjY1Ny0zMy4wNzYgMTEuNjU2aC0uMDA3Yy0yLjkzNi0uMDAzLTEyLjcxNC0uMDEtMTguOTU2LTEzLjAzNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzIuMTQgMjU1LjA5MWMuNzQ4LS4zMDMgMi4yOC0yLjM3OCAzLjEwMy01LjcyMW0tMS45OS0zNS40ODFjMy4wMDkgMS4zNjMgNC4wMTUgNC44ODggMy43MzYgOC43MTZtMCAwYy0uNDI0IDUuODM1LTMuODMyIDEyLjM3Ny03LjY4MyAxMy4wNDkgNi45NTQgMS4xOCA3LjI0NCA4LjQxNCA1LjkzNyAxMy43MTZtMS43NDYtMjYuNzY1Yy4zMjctMi4yNCAxLjgyLTYuOTU4IDUuMTktNy45MW0tNi45MzYgMzQuNjc1Yy42NSAyLjE3MiAyLjU1IDYuNTA3IDQuOTY3IDYuNDcxXCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiOFwiLFxuXHRcdHR5cGU6IFwiVGhpcmQgTW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNLjg5NSAyOTEuMzMxYy0uMzYyLTEuMjE4LS4xMTYtMy40MTEtLjE2NC0zLjg5Mi0uMDM1LS4zNC4xMjQtMy40MzguNzI3LTUuNTU4IDEuMDQtMi44MiAxLjgwOC00Ljc0IDIuNTczLTUuNzUyIDEuNDEzLTEuODcyIDMuOTEzLTQuNzY5IDcuMTM1LTcuMiAyLjI4OC0xLjcyNiA1LjAwMy0zLjE4NyA4LjEzMy00LjMzOSAyLjI0OS0uODI4IDQuMzYyLTEuNTAyIDcuNzMyLTEuNjkzIDIuMTc1LS4xMjMgNS4yNS0uMTU1IDguNzgyLjEwOHM3LjQwMy44MDQgMTAuMzUzIDEuMzk3IDQuOTIgMS4yMTggNi42NDEgMS44OTNjMS43MjIuNjc1IDMuMTQ4IDEuMzg5IDMuOTcyIDEuNzY4IDEuNTEuNjk2IDIuOSAxLjIwOSAzLjgyNCAyLjE0IDEuODU3IDEuODcyIDIuNjE3IDMuMzM0IDIuOTEyIDQuODA3LjI1NCAxLjI3LjI1MiAzLjIxNi0uMjI0IDQuNTMxLS42NzIgMS44NTktMS40NjggMi44NTYtMS40NjggNS43IDAgMy44NTcgMS43MTMgNS45NSAxLjkxNSA4LjM1Ni4zMzcgNC4wMDguMzE3IDYuMTY4LS40MiA3LjQ4NS0uNTkxIDEuMDU3LTEuNTMyIDIuMzgzLTUuNTQxIDUuMDg4LTEuMTczLjc5MS0yLjY4NCAxLjYzNC02LjY0MyAzLjQyNC0yLjc2MiAxLjI0OC02Ljk3NyAzLjEwOC05LjIwNSA0LjEwNy0yLjQ3MyAxLjEwOS00LjY2NyAyLjIyNi04LjIzNCAzLjA1My0yLjU0LjU4OS01LjYzMS43ODQtOS4wMTIuMTg2LTIuMzA3LS40MDgtNS40NDktMS4xODMtOS4xMDctMy44MjctMy45MjgtMi44MzktNi41My00Ljg5Ny03LjQ5Ny02LjA0MS0uODY2LTEuMDI2LTEuNzE0LTIuMDgyLTIuNDEyLTMuNTU1LS45MDQtMS45MDUtMi4yNzItMy42NDMtMy01LjkxNi0uODQ2LTIuNjMzLTEuMTY3LTQuMjMzLTEuNzcyLTYuMjdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTQuNzMyIDI5MS4xNzVjLS4zMTctMS4wNy0uMTAxLTIuOTk0LS4xNDQtMy40MTYtLjAzLS4yOTkuMTEtMy4wMTkuNjM4LTQuODguOTE0LTIuNDc2IDEuNTg4LTQuMTYxIDIuMjYtNS4wNSAxLjI0LTEuNjQzIDMuNDM0LTQuMTg3IDYuMjYzLTYuMzIxIDIuMDA5LTEuNTE1IDQuMzkzLTIuNzk3IDcuMTQtMy44MDkgMS45NzQtLjcyNyAzLjgzLTEuMzE4IDYuNzg4LTEuNDg2IDEuOTEtLjEwOCA0LjYxLS4xMzYgNy43MS4wOTUgMy4xLjIzMSA2LjQ5OC43MDYgOS4wODggMS4yMjYgMi41OS41MjEgNC4zMTkgMS4wNyA1LjgzIDEuNjYyIDEuNTEyLjU5MiAyLjc2NCAxLjIyIDMuNDg3IDEuNTUzIDEuMzI2LjYxIDIuNTQ3IDEuMDYxIDMuMzU3IDEuODc4IDEuNjMgMS42NDMgMi4yOTggMi45MjcgMi41NTcgNC4yMi4yMjMgMS4xMTUuMjIxIDIuODI0LS4xOTYgMy45NzgtLjU5IDEuNjMyLTEuMjkgMi41MDctMS4yOSA1LjAwNCAwIDMuMzg1IDEuNTA0IDUuMjIzIDEuNjgyIDcuMzM1LjI5NiAzLjUxOS4yNzggNS40MTYtLjM2OSA2LjU3MS0uNTIuOTI4LTEuMzQ1IDIuMDkzLTQuODY1IDQuNDY3LTEuMDMuNjk1LTIuMzU1IDEuNDM1LTUuODMxIDMuMDA2LTIuNDI1IDEuMDk2LTYuMTI2IDIuNzI4LTguMDgyIDMuNjA2LTIuMTcuOTczLTQuMDk2IDEuOTU0LTcuMjI4IDIuNjgtMi4yMjkuNTE3LTQuOTQ0LjY4OC03LjkxMi4xNjMtMi4wMjQtLjM1OC00Ljc4My0xLjAzOC03Ljk5NS0zLjM1OS0zLjQ0OC0yLjQ5My01LjczMi00LjI5OS02LjU4LTUuMzA0LS43NjEtLjkwMS0xLjUwNS0xLjgyNy0yLjExOS0zLjEyMS0uNzkzLTEuNjcyLTEuOTk0LTMuMTk4LTIuNjM0LTUuMTkzLS43NDItMi4zMTItMS4wMjQtMy43MTctMS41NTUtNS41MDVaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMxLjczMiAzMDkuNTExYzEuNDYyLS44OTcgMi41ODUtMy42NzIgMi45My02LjcyNm0tMi45My0yOS40NTNjMi4xMTQgMS4wOTIgMy40OSA0LjQ0IDMuNjEgOC4wNjJtNC4xMzMtNy41OGMtMS4zNTMgMS4wNTgtNC4wNzQgNC4wNTctNC4xMzQgNy41OG0wIDBjLjE1NSA0LjY5My0xLjc5NyA5Ljg0Ni02Ljk4MyAxMS4xNTIgNS4zNzktLjM1NyA2Ljg1OSA1LjMwNSA2LjMwMyAxMC4yMzltNC41NTcgNy4yNGMtMS42NzgtLjY3MS00LjkzOC0zLjA1OC00LjU1Ny03LjI0XCIsXG5cdFx0XSxcblx0fSxcbl07XG4iLCAiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRSZW5kZXJlciA9IChwYXlsb2FkPzogYW55KSA9PiBSZWFjdC5SZWFjdE5vZGU7XG5cblxuZXhwb3J0IGludGVyZmFjZSBPZG9udG9ncmFtVG9vbHRpcFByb3BzIHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgcGF5bG9hZD86IGFueTtcbiAgICBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgICBjb250ZW50PzogUmVhY3QuUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlcjtcbn1cblxuY29uc3QgZ2V0Q29udGVudCA9IChcbiAgICBjb250ZW50OiBSZWFjdC5SZWFjdE5vZGUgfCBUb29sdGlwQ29udGVudFJlbmRlcmVyLFxuICAgIHBheWxvYWQ/OiBhbnlcbikgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgY29udGVudCA9PT0gXCJmdW5jdGlvblwiID8gY29udGVudChwYXlsb2FkKSA6IGNvbnRlbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgT2RvbnRvZ3JhbVRvb2x0aXA6IFJlYWN0LkZDPE9kb250b2dyYW1Ub29sdGlwUHJvcHM+ID0gKHtcbiAgICBhY3RpdmUsXG4gICAgcGF5bG9hZCxcbiAgICBwb3NpdGlvbixcbiAgICBjb250ZW50LFxufSkgPT4ge1xuICAgIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cblxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHJlZi5jdXJyZW50ICYmIHBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IHBvc2l0aW9uO1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQuc3R5bGUubGVmdCA9IGAke3ggKyAxMH1weGA7XG4gICAgICAgICAgICByZWYuY3VycmVudC5zdHlsZS50b3AgPSBgJHt5ICsgMTB9cHhgO1xuICAgICAgICB9XG4gICAgfSwgW3Bvc2l0aW9uXSk7XG5cbiAgICBpZiAoIWFjdGl2ZSB8fCAhcGF5bG9hZCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9kb250b2dyYW0tdG9vbHRpcFwiXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogXCJyZ2JhKDAsIDAsIDAsIDAuNzUpXCIsXG4gICAgICAgICAgICAgICAgY29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiNnB4IDEwcHhcIixcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiNnB4XCIsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMTJweFwiLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuMyxcbiAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC0xMDAlKVwiLFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IFwib3BhY2l0eSAwLjE1cyBlYXNlXCIsXG4gICAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgICB7Z2V0Q29udGVudChjb250ZW50LCBwYXlsb2FkKSA/PyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5Ub290aDoge3BheWxvYWQ/Lm5vdGF0aW9ucz8uZmRpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlR5cGU6IHtwYXlsb2FkPy50eXBlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2FsOiB7cGF5bG9hZD8ubm90YXRpb25zPy51bml2ZXJzYWx9LCBQYWxtZXI6e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAge3BheWxvYWQ/Lm5vdGF0aW9ucz8ucGFsbWVyfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogInlhQUFBLElBQUFBLEdBQUEsR0FBQUMsRUFBQUQsR0FBQSxnQkFBQUUsRUFBQSxVQUFBQyxFQUFBLHlCQUFBQyxFQUFBLFlBQUFDLEVBQUEsc0JBQUFDLEVBQUEsaUJBQUFDLElBQUEsZUFBQUMsRUFBQVIsSUNDQSxJQUFBUyxFQUE4QyxpQkNEdkMsSUFBTUMsRUFBYSxDQUN6QixDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUNOLFlBQ0MsNjFCQUNELFdBQ0MsMk1BQ0Qsa0JBQ0MsbUpBQ0YsRUFFQSxDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUVOLFlBQ0MsMFFBQ0QsV0FDQyx5UUFDRCxrQkFDQyxtRkFDRixFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sU0FFTixZQUNDLDZNQUNELFdBQ0Msc0tBQ0Qsa0JBQW1CLENBQ2xCLDhHQUNBLGtEQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGlCQUVOLFlBQ0Msb1RBQ0QsV0FDQywwU0FDRCxrQkFBbUIs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Z0JBQ3RGLFVBQVUsYUFDVixNQUFPLENBQ04sTUFBTyxPQUNQLE9BQVEsT0FDUixXQUFZLE9BQ1osWUFBYSxjQUNkLEVBR0MsU0FBQWtCLEVBQWlCLElBQUksQ0FBQyxDQUFFLEtBQUF2QyxFQUFNLFVBQUF5RCxFQUFXLE1BQUFDLEVBQU8sU0FBQUMsQ0FBUyxFQUFHQyxPQUM1RCxPQUFDLEtBQWEsS0FBTTVELEVBQU0sVUFBV3lELEVBQ25DLFNBQUFOLEVBQVksU0FBU1MsRUFBUSxDQUFDLEVBQUUsR0FEMUI1RCxDQUdSLENBQ0EsRUFDRixFQUNDb0IsTUFDQSxPQUFDeUMsRUFBQSxDQUNBLE9BQVFuQyxFQUFZLE9BQ3BCLFNBQVVBLEVBQVksU0FDdEIsUUFBU0EsRUFBWSxRQUNyQixRQUFTUCxHQUFBLFlBQUFBLEVBQVMsUUFDbkIsR0FFRixDQUVGLEVBRU8sU0FBU3FDLEVBQWF0QyxFQUE0QyxDQUN4RSxJQUFNNEMsRUFBa0MsQ0FBQyxFQUN6QyxPQUFJNUMsRUFBTyxXQUNWNEMsRUFBUSxhQUFhLEVBQUk1QyxFQUFPLFVBRTdCQSxFQUFPLFdBQ1Y0QyxFQUFRLGFBQWEsRUFBSTVDLEVBQU8sVUFFN0JBLEVBQU8sWUFDVjRDLEVBQVEsY0FBYyxFQUFJNUMsRUFBTyxXQUUzQjRDLENBQ1IsQ0FFQSxJQUFPQyxFQUFRbEQiLAogICJuYW1lcyI6IFsiaW5kZXhfZXhwb3J0cyIsICJfX2V4cG9ydCIsICJPZG9udG9ncmFtIiwgIlRlZXRoIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgIk9kb250b2dyYW1fZGVmYXVsdCIsICJnZXRUb290aE5vdGF0aW9ucyIsICJtYXBUb0Nzc1ZhcnMiLCAiX190b0NvbW1vbkpTIiwgImltcG9ydF9yZWFjdCIsICJ0ZWV0aFBhdGhzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiZ2V0Q29udGVudCIsICJjb250ZW50IiwgInBheWxvYWQiLCAiT2RvbnRvZ3JhbVRvb2x0aXAiLCAiYWN0aXZlIiwgInBvc2l0aW9uIiwgIl9hIiwgIl9iIiwgIl9jIiwgInJlZiIsICJ4IiwgInkiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgImZkaSIsICJub3RhdGlvbiIsICJudW0iLCAiZmRpVG9Vbml2ZXJzYWwiLCAicXVhZHJhbnQiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAidW5pdmVyc2FsIiwgInBhbG1lciIsICJUZWV0aCIsICJuYW1lIiwgIm91dGxpbmVQYXRoIiwgInNoYWRvd1BhdGgiLCAibGluZUhpZ2hsaWdodFBhdGgiLCAic2VsZWN0ZWQiLCAib25DbGljayIsICJvbktleURvd24iLCAib25Ib3ZlciIsICJvbkxlYXZlIiwgImNoaWxkcmVuIiwgImUiLCAiZCIsICJpIiwgIk9kb250b2dyYW0iLCAiZGVmYXVsdFNlbGVjdGVkIiwgIm9uQ2hhbmdlIiwgImNsYXNzTmFtZSIsICJ0aGVtZSIsICJjb2xvcnMiLCAidG9vbHRpcCIsICJzaG93VG9vbHRpcCIsICJzaG93SGFsZiIsICJ0aGVtZUNvbG9ycyIsICJzZXRTZWxlY3RlZCIsICJzdmdSZWYiLCAidG9vbHRpcFJlZiIsICJ0b29sdGlwRGF0YSIsICJzZXRUb29sdGlwRGF0YSIsICJoYW5kbGVUb2dnbGUiLCAicHJldiIsICJ1cGRhdGVkIiwgImRldGFpbHMiLCAiaWQiLCAidG9vdGhCYXNlIiwgInRvb3RoRGF0YSIsICJ0ZWV0aFBhdGhzIiwgInQiLCAiaGFuZGxlS2V5RG93biIsICJxdWFkcmFudHMiLCAidmlzaWJsZVF1YWRyYW50cyIsICJoYW5kbGVIb3ZlciIsICJwbGFjZW1lbnQiLCAiX2EiLCAicGF0aCIsICJ0b290aEJveCIsICJzdmdCb3giLCAibWFyZ2luIiwgIngiLCAieSIsICJoYW5kbGVMZWF2ZSIsICJwIiwgInJlbmRlclRlZXRoIiwgInByZWZpeCIsICJ0b290aCIsICJkaXNwbGF5TmFtZSIsICJmaW5hbENvbG9ycyIsICJtYXBUb0Nzc1ZhcnMiLCAidHJhbnNmb3JtIiwgImxhYmVsIiwgInBvc2l0aW9uIiwgImluZGV4IiwgIk9kb250b2dyYW1Ub29sdGlwIiwgImNzc1ZhcnMiLCAiT2RvbnRvZ3JhbV9kZWZhdWx0Il0KfQo=
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useCallback as P,useState as C}from"react";var b=[{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"]}];import{jsx as o,jsxs as M}from"react/jsx-runtime";function k(e,t){let n=e.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(t==="Universal")return String(s[n]??n);if(t==="Palmer"){let l=n[0];return`${n[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[l]??""}`}return n}function O(e){let t=e.replace("teeth-",""),n=k(e,"Universal"),s=k(e,"Palmer");return{fdi:t,universal:n,palmer:s}}var R=({name:e,outlinePath:t,shadowPath:n,lineHighlightPath:s,selected:l,onClick:c,onKeyDown:h,children:m})=>M("g",{className:`${e} ${l?"selected":""}`,tabIndex:0,onClick:()=>c==null?void 0:c(e),onKeyDown:d=>h==null?void 0:h(d,e),role:"button","aria-pressed":l,"aria-label":`Tooth ${e}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[m,o("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:t}),o("path",{fill:"currentColor",d:n}),Array.isArray(s)?s.map((d,g)=>o("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d},g)):o("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:s})]}),x=({defaultSelected:e=[],onChange:t,className:n="",theme:s="light",colors:l={},notation:c})=>{let h=s==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[m,d]=C(new Set(e)),g=P(a=>{d(i=>{let r=new Set(i);r.has(a)?r.delete(a):r.add(a);let u=Array.from(r).map(p=>{let S=p.replace("teeth-","").slice(1),f=b.find(T=>T.name===S);return{id:p,notations:O(p),type:(f==null?void 0:f.type)??"Unknown"}});return t==null||t(u),r})},[t]),w=P((a,i)=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),g(i))},[g]),y=[{name:"first",transform:""},{name:"second",transform:"scale(-1, 1) translate(-409, 0)"},{name:"third",transform:"scale(1, -1) translate(0, -694)"},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)"}],v=a=>b.map(i=>{let r=`${a}${i.name}`,u=k(r,c??"FDI");return o(R,{...i,name:r,selected:m.has(r),onClick:g,onKeyDown:w,children:o("title",{children:u})},r)}),Z={...h,...L(l)};return o("div",{className:`Odontogram ${s==="dark"?"dark-theme":""}`,style:{...Z,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},children:M("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 409 694",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:[o("g",{name:"upper",children:y.slice(0,2).map(({name:a,transform:i},r)=>o("g",{name:a,transform:i,children:v(`teeth-${r+1}`)},a))}),o("g",{name:"lower",children:y.slice(2).map(({name:a,transform:i},r)=>o("g",{name:a,transform:i,children:v(`teeth-${r+3}`)},a))})]})})};function L(e){let t={};return e.darkBlue&&(t["--dark-blue"]=e.darkBlue),e.baseBlue&&(t["--base-blue"]=e.baseBlue),e.lightBlue&&(t["--light-blue"]=e.lightBlue),t}var $=x;export{$ as default};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL09kb250b2dyYW0udHN4IiwgIi4uL3NyYy9kYXRhLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgXCIuL3N0eWxlcy5jc3NcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdGVldGhQYXRocyB9IGZyb20gXCIuL2RhdGFcIjtcblxuaW50ZXJmYWNlIFRlZXRoUHJvcHMge1xuXHRuYW1lOiBzdHJpbmc7XG5cdG91dGxpbmVQYXRoOiBzdHJpbmc7XG5cdHNoYWRvd1BhdGg6IHN0cmluZztcblx0bGluZUhpZ2hsaWdodFBhdGg6IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRzZWxlY3RlZD86IGJvb2xlYW47XG5cdG9uQ2xpY2s/OiAobmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuXHRvbktleURvd24/OiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4gdm9pZDtcblx0Y2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vdGhEZXRhaWwge1xuXHRpZDogc3RyaW5nO1xuXHRub3RhdGlvbnM6IHtcblx0XHRmZGk6IHN0cmluZztcblx0XHR1bml2ZXJzYWw6IHN0cmluZztcblx0XHRwYWxtZXI6IHN0cmluZztcblx0fTtcblx0dHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9kb250b2dyYW1Qcm9wcyB7XG5cdGRlZmF1bHRTZWxlY3RlZD86IHN0cmluZ1tdO1xuXHRvbkNoYW5nZT86IChzZWxlY3RlZDogVG9vdGhEZXRhaWxbXSkgPT4gdm9pZDtcblx0Y2xhc3NOYW1lPzogc3RyaW5nO1xuXHRzZWxlY3RlZENvbG9yPzogc3RyaW5nO1xuXHRob3ZlckNvbG9yPzogc3RyaW5nO1xuXHR0aGVtZTogXCJsaWdodFwiIHwgXCJkYXJrXCI7XG5cdGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0bm90YXRpb24/OiBcIkZESVwiIHwgXCJVbml2ZXJzYWxcIiB8IFwiUGFsbWVyXCI7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRGRElUb05vdGF0aW9uKFxuXHRmZGk6IHN0cmluZyxcblx0bm90YXRpb246IFwiRkRJXCIgfCBcIlVuaXZlcnNhbFwiIHwgXCJQYWxtZXJcIixcbikge1xuXHRjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuXHRjb25zdCBmZGlUb1VuaXZlcnNhbDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcblx0XHRcIjExXCI6IDgsXG5cdFx0XCIxMlwiOiA3LFxuXHRcdFwiMTNcIjogNixcblx0XHRcIjE0XCI6IDUsXG5cdFx0XCIxNVwiOiA0LFxuXHRcdFwiMTZcIjogMyxcblx0XHRcIjE3XCI6IDIsXG5cdFx0XCIxOFwiOiAxLFxuXHRcdFwiMjFcIjogOSxcblx0XHRcIjIyXCI6IDEwLFxuXHRcdFwiMjNcIjogMTEsXG5cdFx0XCIyNFwiOiAxMixcblx0XHRcIjI1XCI6IDEzLFxuXHRcdFwiMjZcIjogMTQsXG5cdFx0XCIyN1wiOiAxNSxcblx0XHRcIjI4XCI6IDE2LFxuXHRcdFwiMzFcIjogMjQsXG5cdFx0XCIzMlwiOiAyMyxcblx0XHRcIjMzXCI6IDIyLFxuXHRcdFwiMzRcIjogMjEsXG5cdFx0XCIzNVwiOiAyMCxcblx0XHRcIjM2XCI6IDE5LFxuXHRcdFwiMzdcIjogMTgsXG5cdFx0XCIzOFwiOiAxNyxcblx0XHRcIjQxXCI6IDI1LFxuXHRcdFwiNDJcIjogMjYsXG5cdFx0XCI0M1wiOiAyNyxcblx0XHRcIjQ0XCI6IDI4LFxuXHRcdFwiNDVcIjogMjksXG5cdFx0XCI0NlwiOiAzMCxcblx0XHRcIjQ3XCI6IDMxLFxuXHRcdFwiNDhcIjogMzIsXG5cdH07XG5cblx0aWYgKG5vdGF0aW9uID09PSBcIlVuaXZlcnNhbFwiKSB7XG5cdFx0cmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG5cdH1cblxuXHRpZiAobm90YXRpb24gPT09IFwiUGFsbWVyXCIpIHtcblx0XHRjb25zdCBxdWFkcmFudCA9IG51bVswXTtcblx0XHRjb25zdCB0b290aCA9IG51bVsxXTtcblx0XHRjb25zdCBzeW1ib2xzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuXHRcdFx0XCIxXCI6IFwiVVJcIiwgLy8gdXBwZXIgcmlnaHRcblx0XHRcdFwiMlwiOiBcIlVMXCIsIC8vIHVwcGVyIGxlZnRcblx0XHRcdFwiM1wiOiBcIkxMXCIsIC8vIGxvd2VyIGxlZnRcblx0XHRcdFwiNFwiOiBcIkxSXCIsIC8vIGxvd2VyIHJpZ2h0XG5cdFx0fTtcblx0XHRyZXR1cm4gYCR7dG9vdGh9JHtzeW1ib2xzW3F1YWRyYW50XSA/PyBcIlwifWA7XG5cdH1cblxuXHRyZXR1cm4gbnVtO1xufVxuXG5mdW5jdGlvbiBnZXRUb290aE5vdGF0aW9ucyhmZGk6IHN0cmluZykge1xuXHRjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblx0Y29uc3QgdW5pdmVyc2FsID0gY29udmVydEZESVRvTm90YXRpb24oZmRpLCBcIlVuaXZlcnNhbFwiKTtcblx0Y29uc3QgcGFsbWVyID0gY29udmVydEZESVRvTm90YXRpb24oZmRpLCBcIlBhbG1lclwiKTtcblx0cmV0dXJuIHtcblx0XHRmZGk6IG51bSxcblx0XHR1bml2ZXJzYWwsXG5cdFx0cGFsbWVyLFxuXHR9O1xufVxuXG5jb25zdCBUZWV0aCA9ICh7XG5cdG5hbWUsXG5cdG91dGxpbmVQYXRoLFxuXHRzaGFkb3dQYXRoLFxuXHRsaW5lSGlnaGxpZ2h0UGF0aCxcblx0c2VsZWN0ZWQsXG5cdG9uQ2xpY2ssXG5cdG9uS2V5RG93bixcblx0Y2hpbGRyZW4sXG59OiBUZWV0aFByb3BzKSA9PiAoXG5cdDxnXG5cdFx0Y2xhc3NOYW1lPXtgJHtuYW1lfSAke3NlbGVjdGVkID8gXCJzZWxlY3RlZFwiIDogXCJcIn1gfVxuXHRcdHRhYkluZGV4PXswfVxuXHRcdG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LihuYW1lKX1cblx0XHRvbktleURvd249eyhlKSA9PiBvbktleURvd24/LihlLCBuYW1lKX1cblx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRhcmlhLXByZXNzZWQ9e3NlbGVjdGVkfVxuXHRcdGFyaWEtbGFiZWw9e2BUb290aCAke25hbWV9YH1cblx0XHRzdHlsZT17e1xuXHRcdFx0Y3Vyc29yOiBcInBvaW50ZXJcIixcblx0XHRcdG91dGxpbmU6IFwibm9uZVwiLFxuXHRcdFx0dG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG5cdFx0XHR0cmFuc2l0aW9uOiBcImFsbCAwLjJzIGVhc2VcIixcblx0XHR9fVxuXHQ+XG5cdFx0e2NoaWxkcmVufVxuXHRcdDxwYXRoXG5cdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0c3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcblx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0ZD17b3V0bGluZVBhdGh9XG5cdFx0Lz5cblx0XHQ8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD17c2hhZG93UGF0aH0gLz5cblx0XHR7QXJyYXkuaXNBcnJheShsaW5lSGlnaGxpZ2h0UGF0aCkgPyAoXG5cdFx0XHRsaW5lSGlnaGxpZ2h0UGF0aC5tYXAoKGQsIGkpID0+IChcblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRrZXk9e2l9XG5cdFx0XHRcdFx0c3Ryb2tlPVwiY3VycmVudENvbG9yXCJcblx0XHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0XHRcdGQ9e2R9XG5cdFx0XHRcdC8+XG5cdFx0XHQpKVxuXHRcdCkgOiAoXG5cdFx0XHQ8cGF0aFxuXHRcdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcblx0XHRcdFx0ZD17bGluZUhpZ2hsaWdodFBhdGh9XG5cdFx0XHQvPlxuXHRcdCl9XG5cdDwvZz5cbik7XG5cbmNvbnN0IE9kb250b2dyYW06IFJlYWN0LkZDPE9kb250b2dyYW1Qcm9wcz4gPSAoe1xuXHRkZWZhdWx0U2VsZWN0ZWQgPSBbXSxcblx0b25DaGFuZ2UsXG5cdGNsYXNzTmFtZSA9IFwiXCIsXG5cdHRoZW1lID0gXCJsaWdodFwiLFxuXHRjb2xvcnMgPSB7fSxcblx0bm90YXRpb24sXG59KSA9PiB7XG5cdGNvbnN0IHRoZW1lQ29sb3JzID1cblx0XHR0aGVtZSA9PT0gXCJkYXJrXCJcblx0XHRcdD8ge1xuXHRcdFx0XHRcdFwiLS1kYXJrLWJsdWVcIjogXCIjYWFiNmZmXCIsXG5cdFx0XHRcdFx0XCItLWJhc2UtYmx1ZVwiOiBcIiNkMGQ1ZjZcIixcblx0XHRcdFx0XHRcIi0tbGlnaHQtYmx1ZVwiOiBcIiM1MzYxZTZcIixcblx0XHRcdFx0fVxuXHRcdFx0OiB7XG5cdFx0XHRcdFx0XCItLWRhcmstYmx1ZVwiOiBcIiMzZTVlZGNcIixcblx0XHRcdFx0XHRcIi0tYmFzZS1ibHVlXCI6IFwiIzhhOThiZVwiLFxuXHRcdFx0XHRcdFwiLS1saWdodC1ibHVlXCI6IFwiI2M2Y2NmOFwiLFxuXHRcdFx0XHR9O1xuXG5cdGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGU8U2V0PHN0cmluZz4+KFxuXHRcdG5ldyBTZXQoZGVmYXVsdFNlbGVjdGVkKSxcblx0KTtcblxuXHRjb25zdCBoYW5kbGVUb2dnbGUgPSB1c2VDYWxsYmFjayhcblx0XHQobmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRzZXRTZWxlY3RlZCgocHJldikgPT4ge1xuXHRcdFx0XHRjb25zdCB1cGRhdGVkID0gbmV3IFNldChwcmV2KTtcblx0XHRcdFx0dXBkYXRlZC5oYXMobmFtZSkgPyB1cGRhdGVkLmRlbGV0ZShuYW1lKSA6IHVwZGF0ZWQuYWRkKG5hbWUpO1xuXG5cdFx0XHRcdC8vIGJ1aWxkIGRldGFpbGVkIEpTT04gb3V0cHV0XG5cdFx0XHRcdGNvbnN0IGRldGFpbHMgPSBBcnJheS5mcm9tKHVwZGF0ZWQpLm1hcCgoaWQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBmZGkgPSBpZC5yZXBsYWNlKFwidGVldGgtXCIsIFwiXCIpO1xuXHRcdFx0XHRcdGNvbnN0IHRvb3RoQmFzZSA9IGZkaS5zbGljZSgxKTtcblx0XHRcdFx0XHRjb25zdCB0b290aERhdGEgPSB0ZWV0aFBhdGhzLmZpbmQoKHQpID0+IHQubmFtZSA9PT0gdG9vdGhCYXNlKTtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0aWQsXG5cdFx0XHRcdFx0XHRub3RhdGlvbnM6IGdldFRvb3RoTm90YXRpb25zKGlkKSxcblx0XHRcdFx0XHRcdHR5cGU6IHRvb3RoRGF0YT8udHlwZSA/PyBcIlVua25vd25cIixcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRvbkNoYW5nZT8uKGRldGFpbHMpO1xuXHRcdFx0XHRyZXR1cm4gdXBkYXRlZDtcblx0XHRcdH0pO1xuXHRcdH0sXG5cdFx0W29uQ2hhbmdlXSxcblx0KTtcblx0Y29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuXHRcdChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PFNWR0dFbGVtZW50PiwgbmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRpZiAoZS5rZXkgPT09IFwiRW50ZXJcIiB8fCBlLmtleSA9PT0gXCIgXCIpIHtcblx0XHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRoYW5kbGVUb2dnbGUobmFtZSk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRbaGFuZGxlVG9nZ2xlXSxcblx0KTtcblxuXHRjb25zdCBxdWFkcmFudHMgPSBbXG5cdFx0eyBuYW1lOiBcImZpcnN0XCIsIHRyYW5zZm9ybTogXCJcIiB9LFxuXHRcdHsgbmFtZTogXCJzZWNvbmRcIiwgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTQwOSwgMClcIiB9LFxuXHRcdHsgbmFtZTogXCJ0aGlyZFwiLCB0cmFuc2Zvcm06IFwic2NhbGUoMSwgLTEpIHRyYW5zbGF0ZSgwLCAtNjk0KVwiIH0sXG5cdFx0eyBuYW1lOiBcImZvdXJ0aFwiLCB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIC0xKSB0cmFuc2xhdGUoLTQwOSwgLTY5NClcIiB9LFxuXHRdO1xuXG5cdGNvbnN0IHJlbmRlclRlZXRoID0gKHByZWZpeDogc3RyaW5nKSA9PlxuXHRcdHRlZXRoUGF0aHMubWFwKCh0b290aCkgPT4ge1xuXHRcdFx0Y29uc3QgaWQgPSBgJHtwcmVmaXh9JHt0b290aC5uYW1lfWA7XG5cdFx0XHRjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbiA/PyBcIkZESVwiKTsgLy8gXHVEODNDXHVERDk1XG5cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxUZWV0aFxuXHRcdFx0XHRcdGtleT17aWR9XG5cdFx0XHRcdFx0ey4uLnRvb3RofVxuXHRcdFx0XHRcdG5hbWU9e2lkfVxuXHRcdFx0XHRcdHNlbGVjdGVkPXtzZWxlY3RlZC5oYXMoaWQpfVxuXHRcdFx0XHRcdG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cblx0XHRcdFx0XHRvbktleURvd249e2hhbmRsZUtleURvd259XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8dGl0bGU+e2Rpc3BsYXlOYW1lfTwvdGl0bGU+XG5cdFx0XHRcdDwvVGVldGg+XG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdGNvbnN0IGZpbmFsQ29sb3JzID0geyAuLi50aGVtZUNvbG9ycywgLi4ubWFwVG9Dc3NWYXJzKGNvbG9ycykgfTtcblxuXHRyZXR1cm4gKFxuXHRcdDxkaXZcblx0XHRcdGNsYXNzTmFtZT17YE9kb250b2dyYW0gJHt0aGVtZSA9PT0gXCJkYXJrXCIgPyBcImRhcmstdGhlbWVcIiA6IFwiXCJ9YH1cblx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdC4uLihmaW5hbENvbG9ycyBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzKSxcblx0XHRcdFx0d2lkdGg6IFwiMTAwJVwiLFxuXHRcdFx0XHRtYXhXaWR0aDogMzAwLFxuXHRcdFx0XHRtYXJnaW46IFwiMCBhdXRvXCIsXG5cdFx0XHRcdGRpc3BsYXk6IFwiZmxleFwiLFxuXHRcdFx0XHRqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcblx0XHRcdFx0YWxpZ25JdGVtczogXCJjZW50ZXJcIixcblx0XHRcdH19XG5cdFx0PlxuXHRcdFx0PHN2Z1xuXHRcdFx0XHR4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcblx0XHRcdFx0ZmlsbD1cIm5vbmVcIlxuXHRcdFx0XHR2aWV3Qm94PVwiMCAwIDQwOSA2OTRcIlxuXHRcdFx0XHRjbGFzc05hbWU9XCJPZG9udG9ncmFtXCJcblx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHR3aWR0aDogXCIxMDAlXCIsXG5cdFx0XHRcdFx0aGVpZ2h0OiBcImF1dG9cIixcblx0XHRcdFx0XHR1c2VyU2VsZWN0OiBcIm5vbmVcIixcblx0XHRcdFx0XHR0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcblx0XHRcdFx0fX1cblx0XHRcdD5cblx0XHRcdFx0PGcgbmFtZT1cInVwcGVyXCI+XG5cdFx0XHRcdFx0e3F1YWRyYW50cy5zbGljZSgwLCAyKS5tYXAoKHsgbmFtZSwgdHJhbnNmb3JtIH0sIGluZGV4KSA9PiAoXG5cdFx0XHRcdFx0XHQ8ZyBrZXk9e25hbWV9IG5hbWU9e25hbWV9IHRyYW5zZm9ybT17dHJhbnNmb3JtfT5cblx0XHRcdFx0XHRcdFx0e3JlbmRlclRlZXRoKGB0ZWV0aC0ke2luZGV4ICsgMX1gKX1cblx0XHRcdFx0XHRcdDwvZz5cblx0XHRcdFx0XHQpKX1cblx0XHRcdFx0PC9nPlxuXG5cdFx0XHRcdDxnIG5hbWU9XCJsb3dlclwiPlxuXHRcdFx0XHRcdHtxdWFkcmFudHMuc2xpY2UoMikubWFwKCh7IG5hbWUsIHRyYW5zZm9ybSB9LCBpbmRleCkgPT4gKFxuXHRcdFx0XHRcdFx0PGcga2V5PXtuYW1lfSBuYW1lPXtuYW1lfSB0cmFuc2Zvcm09e3RyYW5zZm9ybX0+XG5cdFx0XHRcdFx0XHRcdHtyZW5kZXJUZWV0aChgdGVldGgtJHtpbmRleCArIDN9YCl9XG5cdFx0XHRcdFx0XHQ8L2c+XG5cdFx0XHRcdFx0KSl9XG5cdFx0XHRcdDwvZz5cblx0XHRcdDwvc3ZnPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcblxuZnVuY3Rpb24gbWFwVG9Dc3NWYXJzKGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPikge1xuXHRjb25zdCBjc3NWYXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cdGlmIChjb2xvcnMuZGFya0JsdWUpIHtcblx0XHRjc3NWYXJzW1wiLS1kYXJrLWJsdWVcIl0gPSBjb2xvcnMuZGFya0JsdWU7XG5cdH1cblx0aWYgKGNvbG9ycy5iYXNlQmx1ZSkge1xuXHRcdGNzc1ZhcnNbXCItLWJhc2UtYmx1ZVwiXSA9IGNvbG9ycy5iYXNlQmx1ZTtcblx0fVxuXHRpZiAoY29sb3JzLmxpZ2h0Qmx1ZSkge1xuXHRcdGNzc1ZhcnNbXCItLWxpZ2h0LWJsdWVcIl0gPSBjb2xvcnMubGlnaHRCbHVlO1xuXHR9XG5cdHJldHVybiBjc3NWYXJzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBPZG9udG9ncmFtO1xuIiwgImV4cG9ydCBjb25zdCB0ZWV0aFBhdGhzID0gW1xuXHR7XG5cdFx0bmFtZTogXCIxXCIsXG5cdFx0dHlwZTogXCJDZW50cmFsIEluY2lzb3JcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTE3My45NTEgMS42OThjLTIuMTk4LjE2LTUuMzAyLjg2Mi01LjMwMi44NjJzLTUuNTMxIDEuMDI1LTcuNzgxIDIuMjdjLTIuNDAzIDEuMzMzLTUuNTUzIDMuMjk5LTYuMDEzIDUuMjU4LS40MzIgMS44NC0uNzggNC43MzQtLjQ5MSA2LjgzMmwuMDI3LjJjLjM0OCAyLjUyNy44NjUgNi4yOCAxLjIzOSAxMC4zMTYuMTg2IDItLjEwMSAzLjIxLjc1MSA2LjE2Ljg5NSAzLjEgMS4zOTUgNC41NzMgMi4wMTMgNS42ODcuNjQ2IDEuMTY0IDEuNDkzIDIuMDg3IDIuMDMgMy4yOC44NjYgMS45MjQgMi4zOTMgNC4yOSAzLjg3IDYuMWE0OC44MDUgNDguODA1IDAgMCAwIDIuMzYgMi42NjNjMS4wMTYgMS4wNzggMi44MTkgMy4xMSAzLjg5OCA0LjMzMSAxLjUyNiAxLjcyNyAzLjA3NiAzLjI0OCA0LjQyMyAzLjc0MiAxLjIxNy40NDYgMi43MDkuNjQyIDMuNzkzLjkzNiAxLjM2OS4zNzIgMi40OTQuNjM4IDQuNTk3IDAgMS41NDUtLjQ2OCAyLjcyNS0uNjIxIDQuMzcyLTIuNDI0IDIuMDY0LTIuMjU4IDIuODQ2LTMuNTE3IDMuNTEyLTQuNzQ2IDEuMDY1LTEuOTY0IDIuNTI0LTQuNjQ4IDMuNTQxLTYuNDIyLjYxMS0xLjA2OCAyLjIyMS0zLjA4OSA0LjA4Ni04Ljg0NSAxLjU0LTQuNzUyIDIuMzY3LTcuNzYgMi43MzEtOC45OTQuNDE1LTEuNDA4IDEuMDc5LTMuNTgzIDEuMzU1LTYuMTk2LjQ0LTQuMTc2IDEuMTE0LTcuNDgyIDEuMDYyLTExLjAyNi0uMDQ0LTMuMDQ2LjEwNC01LjA0LTEuMDY1LTYuMzA2LS45NS0xLjAyOS0xLjk4OC0yLjAwMS0zLjMwNi0yLjUzNC0xLjk1OS0uNzktMy43NzUtMS4zNTgtNS4yOTgtMS41OTItMS4zNTEtLjIwNy03LjA1LS4zNS0xMS4yMTktLjA1Ny0xLjU2Ny4xMS0zLjYxLjA5Ny05LjE4NS41MDVaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTE4OC4yNjkgNTAuMjE1YzE5LjI3NS00MS44NjcgMTAuNzY2LTQzLjYxMiA0LjkzNy00NC42ODQtNS44MjktMS4wNzMtMjguNDU1IDIuNTMtMjkuNzIgMi44MTctLjQ0Mi4yMTgtOC45MTEgMC00Ljc2NyAxOS41NCAzLjQxNiAxNi4xMDUgMTYuMTkzIDI2LjU5NiAxNy4yNDQgMjcuMjY1IDMuMTQ4IDIuMDAzIDguODM3IDIuNTk1IDEyLjMwNi00LjkzOFpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDpcblx0XHRcdFwiTTE2MC40NzIgMTQuNzI3Yy4zOTItLjQwMiA0LjMxNy0zLjMwOSA4Ljk0MS01LjQ3IDMuMDk3LTEuNDQ4IDcuNzczLTEuNjI5IDExLjIwNy0xLjc0OSA4Ljc1OS0uMzY1IDEwLjAwNC45MSAxMi42MzcgMS40OTUuNTYyLjEzOS45MDkuMjc2IDEuNzcxLjU5NVwiLFxuXHR9LFxuXG5cdHtcblx0XHRuYW1lOiBcIjJcIixcblx0XHR0eXBlOiBcIkxhdGVyYWwgSW5jaXNvclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0xMzUuMDE2IDYwLjQxYzMuNDQzIDEuMzU1IDcuODM0IDIuNzMgOS42MDEgMi4zNDYgNC4xODUtLjkxIDcuMDQ0LTQuMDE3IDguMTIzLTguMTUyIDIuMDY5LTcuOTI3IDIuMjQ5LTE2LjI4OCAxLjk5NS0yNC40MzYtLjExMy0zLjU5Ni43Mi0xNi44MS00LjE4NC0xOC40NDQtOC4xMzUtNi4xNC0zMi4wODguNDk0LTM2Ljk3OSA4LjA1NS01LjAxMyA3Ljc1MS44NzggMjEuMTMxIDUuNTYgMjcuNzI4IDMuODYyIDUuNDQgOS43MTQgMTAuNDc0IDE1Ljg4NCAxMi45MDNaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEzNC42NSA1NS4zODZjMi43MzIgMS4wNzYgNi4yMTcgMi4xNjcgNy42MiAxLjg2MiAzLjMyMS0uNzIzIDUuNTktMy4xODggNi40NDYtNi40NyAxLjY0Mi02LjI5IDEuNzg2LTEyLjkyNyAxLjU4My0xOS4zOTMtLjA4OS0yLjg1NC41NzItMTMuMzQyLTMuMzItMTQuNjM4LTYuNDU2LTQuODczLTI1LjQ2Ni4zOTItMjkuMzQ4IDYuMzkzLTMuOTc5IDYuMTUyLjY5NiAxNi43NyA0LjQxMyAyMi4wMDYgMy4wNjQgNC4zMTcgNy43MDkgOC4zMTMgMTIuNjA2IDEwLjI0WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTIxLjU2OSAyOC45NTJjLjU1MS0uOTg0IDYuMzU0LTguMjE0IDEyLjg2Ni05LjA0NSAzLjIzOC0uNDEzIDEwLjYxOS0uMTcgMTEuODM4IDBcIixcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiM1wiLFxuXHRcdHR5cGU6IFwiQ2FuaW5lXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTc3LjYzIDY0LjIzNmMxLjY5MiAxLjQwMSAxNS41MTYgMTQuNTgzIDM0LjY5OCAxNi45MDMgNS41NjkuNjc0IDE1LjA1OC03LjE4NCAxNS43ODktMTIuODkgMS4zMzUtMTAuNDIzLTEyLjQ0NC0yOS4yMDUtMjEuOTY1LTMzLjcwMy00LjU0Mi0yLjE0NS0yNS44OTItNC4wMzktMjguNTIzIDIuOTM5LTIuNDcxIDYuNTU3LTYuNTk2IDIxLjI5IDAgMjYuNzUxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0xMjMuMjg1IDY2LjI2N2MxLjA3Mi04LjM2OC0xMC4yMzQtMjMuOTQtMTcuOTktMjcuNjAzLTMuNzItMS43NTctMjEuMjA2LTMuMzA4LTIzLjM2IDIuNDA3LTEuNzU3IDQuNjYtNC4wOSAxMy4yODQtMi4zMDYgMTguMTcgNC4xNSAxMS4zNiA0MC44OTcgMjguNTczIDQzLjY1NiA3LjAyNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNODIuODQgNjAuMDQzYy0uMDEtLjg1NS0uMTkzLTQuNjMuMjU2LTguMTIuNjY3LTUuMTg1LjcwMy01Ljg2NiAxLjI5LTguMTA2LjQzNy0xLjY2NiAyLjA4My00LjkxIDE3LjQ4Ny0zLjc0OFwiLFxuXHRcdFx0XCJNMTAxLjQzOCA2OC40OWMuMzc2LS4wNDUgMi4yODQtNS4xMTIgOS40OTgtNi4zNDRcIixcblx0XHRdLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCI0XCIsXG5cdFx0dHlwZTogXCJGaXJzdCBQcmVtb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk05My42ODQgMTA4Ljc0OGMtNy40OTggMy4zOTctMzUuMzY4LTcuMzk3LTM1LjU5Ni03LjQ0MS0xLjQyOS0uODQyLTEyLjIxNS0yLjg1NC05LjA2OC0yOS40MTQuMTQ3LTEuMjM4IDEuMzUzLTIuMDUgMi4yMTgtMi41NTYuOTU2LS41NTkgMy4xNTctMS41OTUgNy41ODctMi43OTQgMi43MDctLjczNCAxMy44NTYtMy41NCAxOC42NzQtLjkyIDIuMjE2IDEuMjA2IDYuMzYzIDQuMTE3IDEwLjQ3MyA3LjAzNiA0LjExIDIuOTE5IDEwLjk1OCA4LjcxNSAxMy4zMjcgMTEuMzM4IDIuMjkxIDIuNTM3IDEwLjMyNCAxMy43NS03LjYxNSAyNC43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTkxLjQ5NSAxMDUuOTMxYy02LjUyOCAyLjk1OC0zMC43OTMtNi40NC0zMC45OTItNi40NzgtMS4yNDMtLjczNC0xMC42MzQtMi40ODYtNy44OTUtMjUuNjEuMTI4LTEuMDc4IDEuMTc4LTEuNzg1IDEuOTMyLTIuMjI1LjgzMi0uNDg3IDIuNzQ4LTEuMzkgNi42MDUtMi40MzMgMi4zNTctLjYzOSAxMi4wNjQtMy4wODIgMTYuMjU4LS44IDEuOTMgMS4wNSA1LjU0IDMuNTg0IDkuMTIgNi4xMjUgMy41NzggMi41NDEgOS41NCA3LjU4OCAxMS42MDMgOS44NzIgMS45OTQgMi4yMDggOC45ODcgMTEuOTcxLTYuNjMgMjEuNTQ5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk01NS4yMzQgOTIuNDE0Yy4wMjItLjI0Mi4wNi0xLjQ2OS44NzUtNy43OS40Ni0zLjU3MyAxLjgxMy01LjQ5IDMuMTM0LTcuMDEgMS4xOC0xLjM1OSAzLjUyNC0zLjE5MyA1Ljg4LTQuMzY1IDEuNDYtLjYzMiAzLjAyOS0xLjEyNiA2LjA0NC0xLjc3Ni44MjYtLjEzOCAxLjQ3Ny0uMTc1IDIuNTI2LS4zOTVcIixcblx0XHRcdFwiTTg3LjAyIDEwMS4zODdjNC4xODMtLjc5MiA4Ljc0Ny05Ljc3NCA4Ljc0Ny05Ljc3NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjVcIixcblx0XHR0eXBlOiBcIlNlY29uZCBQcmVtb2xhclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMzMuMzk2IDEyNy42NTJjLTEuMDg4LTIuNzEzLTQuNDg2LTExLjg1Mi0zLjk2Mi0xNS4yNDYuNDc3LTMuMDg1IDE0LjQ3LTEyLjAwOCAyMy41OTUtMTIuMDA4IDIuMTc4IDAgMjUuMTU3IDYuNjY1IDM1LjA3MyAxNy45MDggNC41NTEgOS4zMjQtMS42MjQgMjMuMzM5LTE2LjIyIDIzLjMzOS04LjE5MyAwLTIzLjU2My0xLjg5Ny0yNS40NTMtMi4yMTUtMS44OTYtLjMxOS00LjMxNy0xLjEyOC02LjU5Ni0yLjMyMS0xLjI4OS0uNjc1LTItMS4wMzUtMi40NzgtMS42NDctLjY1NS0uODQtMi4xMDEtMy4xNzgtMy45Ni03LjgxWlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi44MzcgMTI2Ljc3OGMtLjk0NS0yLjM1Ni0zLjg5NS0xMC4yODktMy40NC0xMy4yMzUuNDE0LTIuNjc5IDEyLjU2MS0xMC40MjQgMjAuNDgzLTEwLjQyNCAxLjg5IDAgMjEuODM3IDUuNzg1IDMwLjQ0NSAxNS41NDUgMy45NTEgOC4wOTQtMS40MSAyMC4yNi0xNC4wOCAyMC4yNi03LjExMiAwLTIwLjQ1NC0xLjY0Ny0yMi4wOTUtMS45MjItMS42NDUtLjI3Ny0zLjc0Ny0uOTgtNS43MjUtMi4wMTUtMS4xMi0uNTg2LTEuNzM3LS44OTktMi4xNTEtMS40My0uNTctLjcyOS0xLjgyNS0yLjc1OS0zLjQzNy02Ljc3OVpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNNDAuOCAxMzEuMjIxYy00LjAwMy0yMC4yNzggOC40NDItMjAuOTc0IDEzLjc3OS0yMy42OTJcIixcblx0XHRcdFwiTTc0LjA1NiAxMzQuNzI5YzYuMzUtNC4yNjQgNi4zNDMtMTAuNTAzIDYuNDg5LTExLjQ0OFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjZcIixcblx0XHR0eXBlOiBcIkZpcnN0IE1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zNS41MzkgMjAzLjMyM2MtMy4zNjMuMTk2LTMyLjc4OC00LjAyLTI4LjQ5NS00Mi40NjUgMy42MzEtMjAuNDA4IDI2LjIxLTIzLjM2NCAyOS41NTctMjIuOTEyIDkuMDE5LS43NDUgMjUuNzI3IDYuNzQzIDI5LjI1NSA5LjQwMyA0LjU0NiAzLjQyNyA3LjM4NCA1LjY4MSA4LjYwNiA3LjA5MiAyLjQzNiAyLjgxNCA0LjQ5OSA1LjExIDQuNyA2LjMxMy4yODQgMS43MDMgMS4zMTcgNC43Mi0yLjI0OCA5LjY4Ny0yLjQ1MyAzLjQxOC0yLjk1NyA2LjY2My0yLjg1NiAxMC4yMjMuMTE4IDQuMTg1LjM3IDkuNzU0LS41MjQgMTEuNjMtLjU5MiAxLjI0NC0uOTg0IDIuNjI3LTIuMzc1IDMuMzkyLTIuMDE1IDEuMTA4LTQuNjEgMi4zMTctMTEuOTMgMy43NDgtMy42MjMuNzA4LTkuMzA5IDEuODMtMTIuNDAxIDIuMjkyLTUuMTkuNzc3LTguNDIzIDEuNDMtMTEuMjg5IDEuNTk3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk0zNi41MTUgMTk5LjA4NWMtMi45MjcuMTctMjguNTQtMy40OTktMjQuODAzLTM2Ljk2MyAzLjE2LTE3Ljc2NCAyMi44MTQtMjAuMzM3IDI1LjcyNy0xOS45NDQgMTAuODItLjg5MyAyNS43MDkgNS45ODkgMzIuOTU1IDE0LjM1OCAyLjEyIDIuNDUgMy45MTcgNC40NDggNC4wOTEgNS40OTUuMjQ4IDEuNDgyLjUxMyA0LjI2OC0yLjU5IDguNTkxLTIuMTM1IDIuOTc1LTEuOTQgNS42NDEtMS44NTIgOC43NC4wOTYgMy40MTcgMS40MDIgMTAuOTE3LTIuNTIzIDEzLjA3Ni0xLjc1NC45NjQtNC4wMTMgMi4wMTYtMTAuMzg0IDMuMjYxLTYuNzYyIDEuMzIyLTEzLjcyOCAyLjk4NC0yMC42MjEgMy4zODZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTM3LjEzMiAxOTIuMTQ3YzEuMjg4LS4zNzIgMy4zODUtMi4wNzEgNS4xODMtNS40MzhtOS4wMDgtMzUuOThjMS4xODggMS4yMjQgMi4xMTQgNi4zODUuMTUgMTEuMzYzbTAgMGMtMS41MzcgMy44OTktNC45NDQgOS4zNzgtMTEuMTk1IDkuMzc4IDYuODc3LjMyMSA0LjY1MSAxMC4zNDMgMi4wMzcgMTUuMjM5bTkuMTU5LTI0LjYxN2MxLjQ3LTIuNTg5IDQuOTY2LTcuNTcyIDguMDY4LTguMjE3bS0xNy4yMjcgMzIuODM0Yy0uMTg2IDIuMzQ4LjA0NCA3LjM1MSAyLjQ1OCA4LjU4NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjdcIixcblx0XHR0eXBlOiBcIlNlY29uZCBNb2xhclwiLFxuXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk00Ljk2OSAyNDguMTMyYy0xLjE4OC0yLjc0LTE0LjcwOC0yNy4xNTIgMTIuMzE5LTQyLjEzOSAxLjgzNi0xLjAxOCAyNC41MDgtNy43MTEgNDUuMjggMTAuODc0IDIuMjc0IDIuMDM1IDQuNDU1IDMuNTc5IDUuNDAzIDUuMTAyIDEuNDE0IDIuMjcxIDIuMTI4IDMuNDM1IDEuNjg3IDUuNjA2LS4zODcgMS45MDEtMS41NCAzLjY0Mi0zLjc3IDcuNzExLTEuMTI3IDIuMDU2LTEuODU0IDMuNDI3LTEuMzY5IDcuODI0LjE3NSAxLjU5LjYyNyAzLjkzNS4wNDggNi42MDMtLjQ2NiAyLjE0Ny0uOTQxIDMuNTY3LTIuNTc4IDUuMDA2LTIuNTMgMi4yMjQtNS4zMDcgMy42NDUtOS4wNzYgNC4zNS0xLjA5MS4yMDQtMy4xMzMuODExLTcuNTI1IDEuNzAyLTIuNzc2LjU2My02LjYxOSAxLjIzNC0xMC4wOSAxLjY1NC0zLjQ3LjQyLTYuNDc4LjYzOC04LjYxMi42MzYtMy4zNTMtLjAwMi02LjczNC4wMzEtOS40NjUtMS40OGwtLjAxOC0uMDFjLTEuNjU0LS45MTUtNC4wNzYtMi4yNTUtNi4yNDUtNC43MzItMi4yNTgtMi41NzktNC41OTEtNS40ODItNS45ODktOC43MDdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTguNzk5IDI0Ni4yOGMtMS4xMjgtMi4zNTItMTIuODQzLTIzLjcwOSAxMC43NTYtMzYuNzk2IDEuNjA0LS44ODkgMjEuNC02LjczMiAzOS41MzggOS40OTYgMS45ODYgMS43NzcgMy44OSAzLjEyNSA0LjcxNyA0LjQ1NCAxLjIzNSAxLjk4MyAxLjg1OSAzIDEuNDczIDQuODk1LS4zMzcgMS42Ni0xLjM0MyAzLjE4LTMuMjkxIDYuNzM0LS45ODQgMS43OTUtMS42MTkgMi45OTItMS4xOTYgNi44MzEuMTU0IDEuMzg5LjU0OCAzLjQzNi4wNDIgNS43NjYtMi44NzIgMTMuMjMxLTMxLjIxMyAxMS42NTctMzMuMDc2IDExLjY1NmgtLjAwN2MtMi45MzYtLjAwMy0xMi43MTQtLjAxLTE4Ljk1Ni0xMy4wMzZaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMyLjE0IDI1NS4wOTFjLjc0OC0uMzAzIDIuMjgtMi4zNzggMy4xMDMtNS43MjFtLTEuOTktMzUuNDgxYzMuMDA5IDEuMzYzIDQuMDE1IDQuODg4IDMuNzM2IDguNzE2bTAgMGMtLjQyNCA1LjgzNS0zLjgzMiAxMi4zNzctNy42ODMgMTMuMDQ5IDYuOTU0IDEuMTggNy4yNDQgOC40MTQgNS45MzcgMTMuNzE2bTEuNzQ2LTI2Ljc2NWMuMzI3LTIuMjQgMS44Mi02Ljk1OCA1LjE5LTcuOTFtLTYuOTM2IDM0LjY3NWMuNjUgMi4xNzIgMi41NSA2LjUwNyA0Ljk2NyA2LjQ3MVwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjhcIixcblx0XHR0eXBlOiBcIlRoaXJkIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTS44OTUgMjkxLjMzMWMtLjM2Mi0xLjIxOC0uMTE2LTMuNDExLS4xNjQtMy44OTItLjAzNS0uMzQuMTI0LTMuNDM4LjcyNy01LjU1OCAxLjA0LTIuODIgMS44MDgtNC43NCAyLjU3My01Ljc1MiAxLjQxMy0xLjg3MiAzLjkxMy00Ljc2OSA3LjEzNS03LjIgMi4yODgtMS43MjYgNS4wMDMtMy4xODcgOC4xMzMtNC4zMzkgMi4yNDktLjgyOCA0LjM2Mi0xLjUwMiA3LjczMi0xLjY5MyAyLjE3NS0uMTIzIDUuMjUtLjE1NSA4Ljc4Mi4xMDhzNy40MDMuODA0IDEwLjM1MyAxLjM5NyA0LjkyIDEuMjE4IDYuNjQxIDEuODkzYzEuNzIyLjY3NSAzLjE0OCAxLjM4OSAzLjk3MiAxLjc2OCAxLjUxLjY5NiAyLjkgMS4yMDkgMy44MjQgMi4xNCAxLjg1NyAxLjg3MiAyLjYxNyAzLjMzNCAyLjkxMiA0LjgwNy4yNTQgMS4yNy4yNTIgMy4yMTYtLjIyNCA0LjUzMS0uNjcyIDEuODU5LTEuNDY4IDIuODU2LTEuNDY4IDUuNyAwIDMuODU3IDEuNzEzIDUuOTUgMS45MTUgOC4zNTYuMzM3IDQuMDA4LjMxNyA2LjE2OC0uNDIgNy40ODUtLjU5MSAxLjA1Ny0xLjUzMiAyLjM4My01LjU0MSA1LjA4OC0xLjE3My43OTEtMi42ODQgMS42MzQtNi42NDMgMy40MjQtMi43NjIgMS4yNDgtNi45NzcgMy4xMDgtOS4yMDUgNC4xMDctMi40NzMgMS4xMDktNC42NjcgMi4yMjYtOC4yMzQgMy4wNTMtMi41NC41ODktNS42MzEuNzg0LTkuMDEyLjE4Ni0yLjMwNy0uNDA4LTUuNDQ5LTEuMTgzLTkuMTA3LTMuODI3LTMuOTI4LTIuODM5LTYuNTMtNC44OTctNy40OTctNi4wNDEtLjg2Ni0xLjAyNi0xLjcxNC0yLjA4Mi0yLjQxMi0zLjU1NS0uOTA0LTEuOTA1LTIuMjcyLTMuNjQzLTMtNS45MTYtLjg0Ni0yLjYzMy0xLjE2Ny00LjIzMy0xLjc3Mi02LjI3WlwiLFxuXHRcdHNoYWRvd1BhdGg6XG5cdFx0XHRcIk00LjczMiAyOTEuMTc1Yy0uMzE3LTEuMDctLjEwMS0yLjk5NC0uMTQ0LTMuNDE2LS4wMy0uMjk5LjExLTMuMDE5LjYzOC00Ljg4LjkxNC0yLjQ3NiAxLjU4OC00LjE2MSAyLjI2LTUuMDUgMS4yNC0xLjY0MyAzLjQzNC00LjE4NyA2LjI2My02LjMyMSAyLjAwOS0xLjUxNSA0LjM5My0yLjc5NyA3LjE0LTMuODA5IDEuOTc0LS43MjcgMy44My0xLjMxOCA2Ljc4OC0xLjQ4NiAxLjkxLS4xMDggNC42MS0uMTM2IDcuNzEuMDk1IDMuMS4yMzEgNi40OTguNzA2IDkuMDg4IDEuMjI2IDIuNTkuNTIxIDQuMzE5IDEuMDcgNS44MyAxLjY2MiAxLjUxMi41OTIgMi43NjQgMS4yMiAzLjQ4NyAxLjU1MyAxLjMyNi42MSAyLjU0NyAxLjA2MSAzLjM1NyAxLjg3OCAxLjYzIDEuNjQzIDIuMjk4IDIuOTI3IDIuNTU3IDQuMjIuMjIzIDEuMTE1LjIyMSAyLjgyNC0uMTk2IDMuOTc4LS41OSAxLjYzMi0xLjI5IDIuNTA3LTEuMjkgNS4wMDQgMCAzLjM4NSAxLjUwNCA1LjIyMyAxLjY4MiA3LjMzNS4yOTYgMy41MTkuMjc4IDUuNDE2LS4zNjkgNi41NzEtLjUyLjkyOC0xLjM0NSAyLjA5My00Ljg2NSA0LjQ2Ny0xLjAzLjY5NS0yLjM1NSAxLjQzNS01LjgzMSAzLjAwNi0yLjQyNSAxLjA5Ni02LjEyNiAyLjcyOC04LjA4MiAzLjYwNi0yLjE3Ljk3My00LjA5NiAxLjk1NC03LjIyOCAyLjY4LTIuMjI5LjUxNy00Ljk0NC42ODgtNy45MTIuMTYzLTIuMDI0LS4zNTgtNC43ODMtMS4wMzgtNy45OTUtMy4zNTktMy40NDgtMi40OTMtNS43MzItNC4yOTktNi41OC01LjMwNC0uNzYxLS45MDEtMS41MDUtMS44MjctMi4xMTktMy4xMjEtLjc5My0xLjY3Mi0xLjk5NC0zLjE5OC0yLjYzNC01LjE5My0uNzQyLTIuMzEyLTEuMDI0LTMuNzE3LTEuNTU1LTUuNTA1WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk0zMS43MzIgMzA5LjUxMWMxLjQ2Mi0uODk3IDIuNTg1LTMuNjcyIDIuOTMtNi43MjZtLTIuOTMtMjkuNDUzYzIuMTE0IDEuMDkyIDMuNDkgNC40NCAzLjYxIDguMDYybTQuMTMzLTcuNThjLTEuMzUzIDEuMDU4LTQuMDc0IDQuMDU3LTQuMTM0IDcuNThtMCAwYy4xNTUgNC42OTMtMS43OTcgOS44NDYtNi45ODMgMTEuMTUyIDUuMzc5LS4zNTcgNi44NTkgNS4zMDUgNi4zMDMgMTAuMjM5bTQuNTU3IDcuMjRjLTEuNjc4LS42NzEtNC45MzgtMy4wNTgtNC41NTctNy4yNFwiLFxuXHRcdF0sXG5cdH0sXG5dO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQ0EsT0FBUyxlQUFBQSxFQUFhLFlBQUFDLE1BQWdCLFFDRC9CLElBQU1DLEVBQWEsQ0FDekIsQ0FDQyxLQUFNLElBQ04sS0FBTSxrQkFDTixZQUNDLDYxQkFDRCxXQUNDLDJNQUNELGtCQUNDLG1KQUNGLEVBRUEsQ0FDQyxLQUFNLElBQ04sS0FBTSxrQkFFTixZQUNDLDBRQUNELFdBQ0MseVFBQ0Qsa0JBQ0MsbUZBQ0YsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLFNBRU4sWUFDQyw2TUFDRCxXQUNDLHNLQUNELGtCQUFtQixDQUNsQiw4R0FDQSxrREFDRCxDQUNELEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxpQkFFTixZQUNDLG9UQUNELFdBQ0MsMFNBQ0Qsa0JBQW1CLENBQ2xCLCtLQUNBLG1EQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUNOLFlBQ0MsMlNBQ0QsV0FDQyx1U0FDRCxrQkFBbUIsQ0FDbEIseURBQ0Esc0RBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sY0FDTixZQUNDLHNiQUNELFdBQ0MscVZBQ0Qsa0JBQW1CLENBQ2xCLGlSQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGVBRU4sWUFDQyw4aEJBQ0QsV0FDQyxzVkFDRCxrQkFBbUIsQ0FDbEIsMlFBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sY0FFTixZQUNDLDIxQkFDRCxXQUNDLG0yQkFDRCxrQkFBbUIsQ0FDbEIsMFFBQ0QsQ0FDRCxDQUNELEVEcUJDLE9BZ0JDLE9BQUFDLEVBaEJELFFBQUFDLE1BQUEsb0JBakZELFNBQVNDLEVBQ1JDLEVBQ0FDLEVBQ0MsQ0FDRCxJQUFNQyxFQUFNRixFQUFJLFFB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RUFBSXhCLEVBQU8sV0FFM0J3QixDQUNSLENBRUEsSUFBT0MsRUFBUTlCIiwKICAibmFtZXMiOiBbInVzZUNhbGxiYWNrIiwgInVzZVN0YXRlIiwgInRlZXRoUGF0aHMiLCAianN4IiwgImpzeHMiLCAiY29udmVydEZESVRvTm90YXRpb24iLCAiZmRpIiwgIm5vdGF0aW9uIiwgIm51bSIsICJmZGlUb1VuaXZlcnNhbCIsICJxdWFkcmFudCIsICJnZXRUb290aE5vdGF0aW9ucyIsICJ1bml2ZXJzYWwiLCAicGFsbWVyIiwgIlRlZXRoIiwgIm5hbWUiLCAib3V0bGluZVBhdGgiLCAic2hhZG93UGF0aCIsICJsaW5lSGlnaGxpZ2h0UGF0aCIsICJzZWxlY3RlZCIsICJvbkNsaWNrIiwgIm9uS2V5RG93biIsICJjaGlsZHJlbiIsICJlIiwgImkiLCAiT2RvbnRvZ3JhbSIsICJkZWZhdWx0U2VsZWN0ZWQiLCAib25DaGFuZ2UiLCAiY2xhc3NOYW1lIiwgInRoZW1lIiwgImNvbG9ycyIsICJ0aGVtZUNvbG9ycyIsICJzZXRTZWxlY3RlZCIsICJ1c2VTdGF0ZSIsICJoYW5kbGVUb2dnbGUiLCAidXNlQ2FsbGJhY2siLCAicHJldiIsICJ1cGRhdGVkIiwgImRldGFpbHMiLCAiaWQiLCAidG9vdGhCYXNlIiwgInRvb3RoRGF0YSIsICJ0ZWV0aFBhdGhzIiwgInQiLCAiaGFuZGxlS2V5RG93biIsICJxdWFkcmFudHMiLCAicmVuZGVyVGVldGgiLCAicHJlZml4IiwgInRvb3RoIiwgImRpc3BsYXlOYW1lIiwgImZpbmFsQ29sb3JzIiwgIm1hcFRvQ3NzVmFycyIsICJ0cmFuc2Zvcm0iLCAiaW5kZXgiLCAiY3NzVmFycyIsICJPZG9udG9ncmFtX2RlZmF1bHQiXQp9Cg==
|
|
1
|
+
import{useCallback as E,useRef as B,useState as U}from"react";var P=[{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"]}];import{useEffect as j,useRef as z}from"react";import{Fragment as Q,jsx as W,jsxs as x}from"react/jsx-runtime";var K=(o,t)=>typeof o=="function"?o(t):o,D=({active:o,payload:t,position:l,content:d})=>{var p,n,f;let h=z(null);return j(()=>{if(h.current&&l){let{x:b,y:k}=l;h.current.style.left=`${b+10}px`,h.current.style.top=`${k+10}px`}},[l]),!o||!t?null:W("div",{ref:h,className:"odontogram-tooltip",style:{position:"fixed",pointerEvents:"none",background:"rgba(0, 0, 0, 0.75)",color:"#fff",padding:"6px 10px",borderRadius:"6px",fontSize:"12px",lineHeight:1.3,whiteSpace:"nowrap",zIndex:1e3,transform:"translate(-50%, -100%)",transition:"opacity 0.15s ease"},children:K(d,t)??x(Q,{children:[x("div",{children:["Tooth: ",(p=t==null?void 0:t.notations)==null?void 0:p.fdi]}),x("div",{children:["Type: ",t==null?void 0:t.type]}),x("div",{children:["Universal: ",(n=t==null?void 0:t.notations)==null?void 0:n.universal,", Palmer:"," ",(f=t==null?void 0:t.notations)==null?void 0:f.palmer]})]})})};import{jsx as u,jsxs as I}from"react/jsx-runtime";function O(o,t){let l=o.replace("teeth-",""),d={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(t==="Universal")return String(d[l]??l);if(t==="Palmer"){let h=l[0];return`${l[1]}${{1:"UR",2:"UL",3:"LL",4:"LR"}[h]??""}`}return l}function $(o){let t=o.replace("teeth-",""),l=O(o,"Universal"),d=O(o,"Palmer");return{fdi:t,universal:l,palmer:d}}var J=({name:o,outlinePath:t,shadowPath:l,lineHighlightPath:d,selected:h,onClick:p,onKeyDown:n,onHover:f,onLeave:b,children:k})=>I("g",{className:`${o} ${h?"selected":""}`,tabIndex:0,onClick:()=>p==null?void 0:p(o),onKeyDown:v=>n==null?void 0:n(v,o),onMouseMove:v=>f==null?void 0:f(o,v),onMouseLeave:b,role:"button","aria-pressed":h,"aria-label":`Tooth ${o}`,style:{cursor:"pointer",outline:"none",touchAction:"manipulation",transition:"all 0.2s ease"},children:[k,u("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:t}),u("path",{fill:"currentColor",d:l}),Array.isArray(d)?d.map((v,R)=>u("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:v},R)):u("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d})]}),X=({defaultSelected:o=[],onChange:t,className:l="",theme:d="light",colors:h={},notation:p,tooltip:n={margin:10},showTooltip:f=!0,showHalf:b="full"})=>{let k=d==="dark"?{"--dark-blue":"#aab6ff","--base-blue":"#d0d5f6","--light-blue":"#5361e6"}:{"--dark-blue":"#3e5edc","--base-blue":"#8a98be","--light-blue":"#c6ccf8"},[v,R]=U(new Set(o)),M=B(null),e1=B(null),[w,Z]=U({active:!1}),T=E(r=>{R(g=>{let c=new Set(g);c.has(r)?c.delete(r):c.add(r);let y=Array.from(c).map(m=>{let S=m.replace("teeth-","").slice(1),a=P.find(s=>s.name===S);return{id:m,notations:$(m),type:(a==null?void 0:a.type)??"Unknown"}});return t==null||t(y),c})},[t]),F=E((r,g)=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),T(g))},[T]),L=[{name:"first",transform:"",label:"Upper Right",position:{x:100,y:30}},{name:"second",transform:"scale(-1, 1) translate(-409, 0)",label:"Upper Left",position:{x:309,y:30}},{name:"third",transform:"scale(1, -1) translate(0, -694)",label:"Lower Right",position:{x:100,y:664}},{name:"fourth",transform:"scale(-1, -1) translate(-409, -694)",label:"Lower Left",position:{x:309,y:664}}],C=L;b==="upper"?C=L.slice(0,2):b==="lower"&&(C=L.slice(2));let G=(r,g,c="right")=>{var N;let m=g.currentTarget.querySelector("path");if(!m||!M.current)return;let e=m.getBoundingClientRect(),S=M.current.getBoundingClientRect(),a=(n==null?void 0:n.margin)||10,s=e.left,i=e.top;switch(c){case"top":s=e.left+e.width/2,i=e.top-a;break;case"top-start":s=e.left,i=e.top-a;break;case"top-end":s=e.right,i=e.top-a;break;case"bottom":s=e.left+e.width/2,i=e.bottom+a;break;case"bottom-start":s=e.left,i=e.bottom+a;break;case"bottom-end":s=e.right,i=e.bottom+a;break;case"left":s=e.left-a,i=e.top+e.height/2;break;case"left-start":s=e.left-a,i=e.top;break;case"left-end":s=e.left-a,i=e.bottom;break;case"right":s=e.right+a,i=e.top+e.height/2;break;case"right-start":s=e.right+a,i=e.top;break;case"right-end":s=e.right+a,i=e.bottom;break}i<S.top&&(i=e.bottom+a),Z({active:!0,position:{x:s,y:i},payload:{id:r,notations:$(r),type:((N=P.find(q=>q.name===r.replace("teeth-","").slice(1)))==null?void 0:N.type)??"Unknown"}})},A=()=>Z(r=>({...r,active:!1})),H=r=>P.map(g=>{let c=`${r}${g.name}`,y=O(c,p??"FDI");return u(J,{...g,name:c,selected:v.has(c),onClick:T,onKeyDown:F,onHover:(m,e)=>G(m,e,n==null?void 0:n.placement),onLeave:A,children:u("title",{children:y})},c)}),V={...k,...Y(h)};return I("div",{className:`Odontogram ${d==="dark"?"dark-theme":""}`,style:{...V,width:"100%",maxWidth:300,margin:"0 auto",display:"flex",justifyContent:"center",alignItems:"center"},children:[u("svg",{ref:M,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:b==="full"?"0 0 409 694":b==="upper"?"0 0 409 347":"0 200 409 694",className:"Odontogram",style:{width:"100%",height:"auto",userSelect:"none",touchAction:"manipulation"},children:C.map(({name:r,transform:g,label:c,position:y},m)=>u("g",{name:r,transform:g,children:H(`teeth-${m+1}`)},r))}),f&&u(D,{active:w.active,position:w.position,payload:w.payload,content:n==null?void 0:n.content})]})};function Y(o){let t={};return o.darkBlue&&(t["--dark-blue"]=o.darkBlue),o.baseBlue&&(t["--base-blue"]=o.baseBlue),o.lightBlue&&(t["--light-blue"]=o.lightBlue),t}var _=X;export{X as Odontogram,J as Teeth,O as convertFDIToNotation,_ as default,$ as getToothNotations,Y as mapToCssVars};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL09kb250b2dyYW0udHN4IiwgIi4uL3NyYy9kYXRhLnRzIiwgIi4uL3NyYy9Ub29sdGlwLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFwiLi9zdHlsZXMuY3NzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdGVldGhQYXRocyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB7IE9kb250b2dyYW1Ub29sdGlwIH0gZnJvbSBcIi4vVG9vbHRpcFwiO1xuXG50eXBlIFBsYWNlbWVudCA9XG5cdHwgXCJ0b3BcIlxuXHR8IFwidG9wLXN0YXJ0XCJcblx0fCBcInRvcC1lbmRcIlxuXHR8IFwicmlnaHRcIlxuXHR8IFwicmlnaHQtc3RhcnRcIlxuXHR8IFwicmlnaHQtZW5kXCJcblx0fCBcImJvdHRvbVwiXG5cdHwgXCJib3R0b20tc3RhcnRcIlxuXHR8IFwiYm90dG9tLWVuZFwiXG5cdHwgXCJsZWZ0XCJcblx0fCBcImxlZnQtc3RhcnRcIlxuXHR8IFwibGVmdC1lbmRcIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIFRlZXRoUHJvcHMge1xuXHRuYW1lOiBzdHJpbmc7XG5cdG91dGxpbmVQYXRoOiBzdHJpbmc7XG5cdHNoYWRvd1BhdGg6IHN0cmluZztcblx0bGluZUhpZ2hsaWdodFBhdGg6IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRzZWxlY3RlZD86IGJvb2xlYW47XG5cdG9uQ2xpY2s/OiAobmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuXHRvbktleURvd24/OiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4gdm9pZDtcblx0Y2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG5cdG9uSG92ZXI/OiAobmFtZTogc3RyaW5nLCBldmVudDogUmVhY3QuTW91c2VFdmVudCwgcGxhY2VtZW50PzogUGxhY2VtZW50KSA9PiB2b2lkO1xuXHRvbkxlYXZlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb290aERldGFpbCB7XG5cdGlkOiBzdHJpbmc7XG5cdG5vdGF0aW9uczoge1xuXHRcdGZkaTogc3RyaW5nO1xuXHRcdHVuaXZlcnNhbDogc3RyaW5nO1xuXHRcdHBhbG1lcjogc3RyaW5nO1xuXHR9O1xuXHR0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2RvbnRvZ3JhbVByb3BzIHtcblx0ZGVmYXVsdFNlbGVjdGVkPzogc3RyaW5nW107XG5cdG9uQ2hhbmdlPzogKHNlbGVjdGVkOiBUb290aERldGFpbFtdKSA9PiB2b2lkO1xuXHRjbGFzc05hbWU/OiBzdHJpbmc7XG5cdHNlbGVjdGVkQ29sb3I/OiBzdHJpbmc7XG5cdGhvdmVyQ29sb3I/OiBzdHJpbmc7XG5cdHRoZW1lOiBcImxpZ2h0XCIgfCBcImRhcmtcIjtcblx0Y29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRub3RhdGlvbj86IFwiRkRJXCIgfCBcIlVuaXZlcnNhbFwiIHwgXCJQYWxtZXJcIjtcblx0dG9vbHRpcD86IHtcblx0XHRwbGFjZW1lbnQ/OiBQbGFjZW1lbnQ7XG5cdFx0bWFyZ2luPzogbnVtYmVyO1xuXHRcdGNvbnRlbnQ/OiBSZWFjdC5SZWFjdE5vZGUgfCAoKHBheWxvYWQ/OiBUb290aERldGFpbCkgPT4gUmVhY3QuUmVhY3ROb2RlKTtcblx0fTtcblx0c2hvd1Rvb2x0aXA/OiBib29sZWFuO1xuXHRzaG93SGFsZj86IFwidXBwZXJcIiB8IFwibG93ZXJcIiB8IFwiZnVsbFwiO1xuXG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGRElUb05vdGF0aW9uKFxuXHRmZGk6IHN0cmluZyxcblx0bm90YXRpb246IFwiRkRJXCIgfCBcIlVuaXZlcnNhbFwiIHwgXCJQYWxtZXJcIixcbikge1xuXHRjb25zdCBudW0gPSBmZGkucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblxuXHRjb25zdCBmZGlUb1VuaXZlcnNhbDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcblx0XHRcIjExXCI6IDgsXG5cdFx0XCIxMlwiOiA3LFxuXHRcdFwiMTNcIjogNixcblx0XHRcIjE0XCI6IDUsXG5cdFx0XCIxNVwiOiA0LFxuXHRcdFwiMTZcIjogMyxcblx0XHRcIjE3XCI6IDIsXG5cdFx0XCIxOFwiOiAxLFxuXHRcdFwiMjFcIjogOSxcblx0XHRcIjIyXCI6IDEwLFxuXHRcdFwiMjNcIjogMTEsXG5cdFx0XCIyNFwiOiAxMixcblx0XHRcIjI1XCI6IDEzLFxuXHRcdFwiMjZcIjogMTQsXG5cdFx0XCIyN1wiOiAxNSxcblx0XHRcIjI4XCI6IDE2LFxuXHRcdFwiMzFcIjogMjQsXG5cdFx0XCIzMlwiOiAyMyxcblx0XHRcIjMzXCI6IDIyLFxuXHRcdFwiMzRcIjogMjEsXG5cdFx0XCIzNVwiOiAyMCxcblx0XHRcIjM2XCI6IDE5LFxuXHRcdFwiMzdcIjogMTgsXG5cdFx0XCIzOFwiOiAxNyxcblx0XHRcIjQxXCI6IDI1LFxuXHRcdFwiNDJcIjogMjYsXG5cdFx0XCI0M1wiOiAyNyxcblx0XHRcIjQ0XCI6IDI4LFxuXHRcdFwiNDVcIjogMjksXG5cdFx0XCI0NlwiOiAzMCxcblx0XHRcIjQ3XCI6IDMxLFxuXHRcdFwiNDhcIjogMzIsXG5cdH07XG5cblx0aWYgKG5vdGF0aW9uID09PSBcIlVuaXZlcnNhbFwiKSB7XG5cdFx0cmV0dXJuIFN0cmluZyhmZGlUb1VuaXZlcnNhbFtudW1dID8/IG51bSk7XG5cdH1cblxuXHRpZiAobm90YXRpb24gPT09IFwiUGFsbWVyXCIpIHtcblx0XHRjb25zdCBxdWFkcmFudCA9IG51bVswXTtcblx0XHRjb25zdCB0b290aCA9IG51bVsxXTtcblx0XHRjb25zdCBzeW1ib2xzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuXHRcdFx0XCIxXCI6IFwiVVJcIiwgLy8gdXBwZXIgcmlnaHRcblx0XHRcdFwiMlwiOiBcIlVMXCIsIC8vIHVwcGVyIGxlZnRcblx0XHRcdFwiM1wiOiBcIkxMXCIsIC8vIGxvd2VyIGxlZnRcblx0XHRcdFwiNFwiOiBcIkxSXCIsIC8vIGxvd2VyIHJpZ2h0XG5cdFx0fTtcblx0XHRyZXR1cm4gYCR7dG9vdGh9JHtzeW1ib2xzW3F1YWRyYW50XSA/PyBcIlwifWA7XG5cdH1cblxuXHRyZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vdGhOb3RhdGlvbnMoZmRpOiBzdHJpbmcpIHtcblx0Y29uc3QgbnVtID0gZmRpLnJlcGxhY2UoXCJ0ZWV0aC1cIiwgXCJcIik7XG5cdGNvbnN0IHVuaXZlcnNhbCA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJVbml2ZXJzYWxcIik7XG5cdGNvbnN0IHBhbG1lciA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGZkaSwgXCJQYWxtZXJcIik7XG5cdHJldHVybiB7XG5cdFx0ZmRpOiBudW0sXG5cdFx0dW5pdmVyc2FsLFxuXHRcdHBhbG1lcixcblx0fTtcbn1cblxuZXhwb3J0IGNvbnN0IFRlZXRoID0gKHtcblx0bmFtZSxcblx0b3V0bGluZVBhdGgsXG5cdHNoYWRvd1BhdGgsXG5cdGxpbmVIaWdobGlnaHRQYXRoLFxuXHRzZWxlY3RlZCxcblx0b25DbGljayxcblx0b25LZXlEb3duLFxuXHRvbkhvdmVyLFxuXHRvbkxlYXZlLFxuXHRjaGlsZHJlbixcbn06IFRlZXRoUHJvcHMpID0+IChcblx0PGdcblx0XHRjbGFzc05hbWU9e2Ake25hbWV9ICR7c2VsZWN0ZWQgPyBcInNlbGVjdGVkXCIgOiBcIlwifWB9XG5cdFx0dGFiSW5kZXg9ezB9XG5cdFx0b25DbGljaz17KCkgPT4gb25DbGljaz8uKG5hbWUpfVxuXHRcdG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bj8uKGUsIG5hbWUpfVxuXHRcdG9uTW91c2VNb3ZlPXsoZSkgPT4gb25Ib3Zlcj8uKG5hbWUsIGUpfVxuXHRcdG9uTW91c2VMZWF2ZT17b25MZWF2ZX1cblx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRhcmlhLXByZXNzZWQ9e3NlbGVjdGVkfVxuXHRcdGFyaWEtbGFiZWw9e2BUb290aCAke25hbWV9YH1cblx0XHRzdHlsZT17e1xuXHRcdFx0Y3Vyc29yOiBcInBvaW50ZXJcIixcblx0XHRcdG91dGxpbmU6IFwibm9uZVwiLFxuXHRcdFx0dG91Y2hBY3Rpb246IFwibWFuaXB1bGF0aW9uXCIsXG5cdFx0XHR0cmFuc2l0aW9uOiBcImFsbCAwLjJzIGVhc2VcIixcblx0XHR9fVxuXHQ+XG5cdFx0e2NoaWxkcmVufVxuXHRcdDxwYXRoXG5cdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0c3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcblx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0ZD17b3V0bGluZVBhdGh9XG5cdFx0Lz5cblx0XHQ8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD17c2hhZG93UGF0aH0gLz5cblx0XHR7QXJyYXkuaXNBcnJheShsaW5lSGlnaGxpZ2h0UGF0aCkgPyAoXG5cdFx0XHRsaW5lSGlnaGxpZ2h0UGF0aC5tYXAoKGQsIGkpID0+IChcblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRrZXk9e2l9XG5cdFx0XHRcdFx0c3Ryb2tlPVwiY3VycmVudENvbG9yXCJcblx0XHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRcdHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuXHRcdFx0XHRcdGQ9e2R9XG5cdFx0XHRcdC8+XG5cdFx0XHQpKVxuXHRcdCkgOiAoXG5cdFx0XHQ8cGF0aFxuXHRcdFx0XHRzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuXHRcdFx0XHRzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuXHRcdFx0XHRzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcblx0XHRcdFx0ZD17bGluZUhpZ2hsaWdodFBhdGh9XG5cdFx0XHQvPlxuXHRcdCl9XG5cdDwvZz5cbik7XG5cbmV4cG9ydCBjb25zdCBPZG9udG9ncmFtOiBSZWFjdC5GQzxPZG9udG9ncmFtUHJvcHM+ID0gKHtcblx0ZGVmYXVsdFNlbGVjdGVkID0gW10sXG5cdG9uQ2hhbmdlLFxuXHRjbGFzc05hbWUgPSBcIlwiLFxuXHR0aGVtZSA9IFwibGlnaHRcIixcblx0Y29sb3JzID0ge30sXG5cdG5vdGF0aW9uLFxuXHR0b29sdGlwID0ge1xuXHRcdG1hcmdpbjogMTAsXG5cdH0sXG5cdHNob3dUb29sdGlwID0gdHJ1ZSxcblx0c2hvd0hhbGYgPSAnZnVsbCcsXG5cbn0pID0+IHtcblx0Y29uc3QgdGhlbWVDb2xvcnMgPVxuXHRcdHRoZW1lID09PSBcImRhcmtcIlxuXHRcdFx0PyB7XG5cdFx0XHRcdFwiLS1kYXJrLWJsdWVcIjogXCIjYWFiNmZmXCIsXG5cdFx0XHRcdFwiLS1iYXNlLWJsdWVcIjogXCIjZDBkNWY2XCIsXG5cdFx0XHRcdFwiLS1saWdodC1ibHVlXCI6IFwiIzUzNjFlNlwiLFxuXHRcdFx0fVxuXHRcdFx0OiB7XG5cdFx0XHRcdFwiLS1kYXJrLWJsdWVcIjogXCIjM2U1ZWRjXCIsXG5cdFx0XHRcdFwiLS1iYXNlLWJsdWVcIjogXCIjOGE5OGJlXCIsXG5cdFx0XHRcdFwiLS1saWdodC1ibHVlXCI6IFwiI2M2Y2NmOFwiLFxuXHRcdFx0fTtcblxuXHRjb25zdCBbc2VsZWN0ZWQsIHNldFNlbGVjdGVkXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+Pihcblx0XHRuZXcgU2V0KGRlZmF1bHRTZWxlY3RlZCksXG5cdCk7XG5cblx0Y29uc3Qgc3ZnUmVmID0gdXNlUmVmPFNWR1NWR0VsZW1lbnQ+KG51bGwpO1xuXHRjb25zdCB0b29sdGlwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuXHRjb25zdCBbdG9vbHRpcERhdGEsIHNldFRvb2x0aXBEYXRhXSA9IHVzZVN0YXRlPHtcblx0XHRhY3RpdmU6IGJvb2xlYW47XG5cdFx0cG9zaXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG5cdFx0cGF5bG9hZD86IFRvb3RoRGV0YWlsO1xuXHR9Pih7IGFjdGl2ZTogZmFsc2UgfSk7XG5cblx0Y29uc3QgaGFuZGxlVG9nZ2xlID0gdXNlQ2FsbGJhY2soXG5cdFx0KG5hbWU6IHN0cmluZykgPT4ge1xuXHRcdFx0c2V0U2VsZWN0ZWQoKHByZXYpID0+IHtcblx0XHRcdFx0Y29uc3QgdXBkYXRlZCA9IG5ldyBTZXQocHJldik7XG5cdFx0XHRcdHVwZGF0ZWQuaGFzKG5hbWUpID8gdXBkYXRlZC5kZWxldGUobmFtZSkgOiB1cGRhdGVkLmFkZChuYW1lKTtcblxuXHRcdFx0XHQvLyBidWlsZCBkZXRhaWxlZCBKU09OIG91dHB1dFxuXHRcdFx0XHRjb25zdCBkZXRhaWxzID0gQXJyYXkuZnJvbSh1cGRhdGVkKS5tYXAoKGlkKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgZmRpID0gaWQucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKTtcblx0XHRcdFx0XHRjb25zdCB0b290aEJhc2UgPSBmZGkuc2xpY2UoMSk7XG5cdFx0XHRcdFx0Y29uc3QgdG9vdGhEYXRhID0gdGVldGhQYXRocy5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IHRvb3RoQmFzZSk7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdGlkLFxuXHRcdFx0XHRcdFx0bm90YXRpb25zOiBnZXRUb290aE5vdGF0aW9ucyhpZCksXG5cdFx0XHRcdFx0XHR0eXBlOiB0b290aERhdGE/LnR5cGUgPz8gXCJVbmtub3duXCIsXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0b25DaGFuZ2U/LihkZXRhaWxzKTtcblx0XHRcdFx0cmV0dXJuIHVwZGF0ZWQ7XG5cdFx0XHR9KTtcblx0XHR9LFxuXHRcdFtvbkNoYW5nZV0sXG5cdCk7XG5cdGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcblx0XHQoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxTVkdHRWxlbWVudD4sIG5hbWU6IHN0cmluZykgPT4ge1xuXHRcdFx0aWYgKGUua2V5ID09PSBcIkVudGVyXCIgfHwgZS5rZXkgPT09IFwiIFwiKSB7XG5cdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0aGFuZGxlVG9nZ2xlKG5hbWUpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0W2hhbmRsZVRvZ2dsZV0sXG5cdCk7XG5cblx0Y29uc3QgcXVhZHJhbnRzOiBBcnJheTx7XG5cdFx0bmFtZTogXCJmaXJzdFwiIHwgXCJzZWNvbmRcIiB8IFwidGhpcmRcIiB8IFwiZm91cnRoXCI7XG5cdFx0dHJhbnNmb3JtOiBzdHJpbmc7XG5cdFx0bGFiZWw6IHN0cmluZztcblx0XHRwb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuXHR9PiA9IFtcblx0XHRcdHsgbmFtZTogXCJmaXJzdFwiLCB0cmFuc2Zvcm06IFwiXCIsIGxhYmVsOiBcIlVwcGVyIFJpZ2h0XCIsIHBvc2l0aW9uOiB7IHg6IDEwMCwgeTogMzAgfSB9LFxuXHRcdFx0eyBuYW1lOiBcInNlY29uZFwiLCB0cmFuc2Zvcm06IFwic2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNDA5LCAwKVwiLCBsYWJlbDogXCJVcHBlciBMZWZ0XCIsIHBvc2l0aW9uOiB7IHg6IDMwOSwgeTogMzAgfSB9LFxuXHRcdFx0eyBuYW1lOiBcInRoaXJkXCIsIHRyYW5zZm9ybTogXCJzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKDAsIC02OTQpXCIsIGxhYmVsOiBcIkxvd2VyIFJpZ2h0XCIsIHBvc2l0aW9uOiB7IHg6IDEwMCwgeTogNjY0IH0gfSxcblx0XHRcdHsgbmFtZTogXCJmb3VydGhcIiwgdHJhbnNmb3JtOiBcInNjYWxlKC0xLCAtMSkgdHJhbnNsYXRlKC00MDksIC02OTQpXCIsIGxhYmVsOiBcIkxvd2VyIExlZnRcIiwgcG9zaXRpb246IHsgeDogMzA5LCB5OiA2NjQgfSB9LFxuXHRcdF07XG5cblx0bGV0IHZpc2libGVRdWFkcmFudHMgPSBxdWFkcmFudHM7XG5cdGlmIChzaG93SGFsZiA9PT0gXCJ1cHBlclwiKSB7XG5cdFx0dmlzaWJsZVF1YWRyYW50cyA9IHF1YWRyYW50cy5zbGljZSgwLCAyKTtcblx0fSBlbHNlIGlmIChzaG93SGFsZiA9PT0gXCJsb3dlclwiKSB7XG5cdFx0dmlzaWJsZVF1YWRyYW50cyA9IHF1YWRyYW50cy5zbGljZSgyKTtcblx0fVxuXG5cblxuXHRjb25zdCBoYW5kbGVIb3ZlciA9IChcblx0XHRuYW1lOiBzdHJpbmcsXG5cdFx0ZTogUmVhY3QuTW91c2VFdmVudCxcblx0XHRwbGFjZW1lbnQ6IFBsYWNlbWVudCA9IFwicmlnaHRcIiAvLyBkZWZhdWx0XG5cdCkgPT4ge1xuXHRcdGNvbnN0IHRhcmdldCA9IGUuY3VycmVudFRhcmdldCBhcyBTVkdHRWxlbWVudDtcblx0XHRjb25zdCBwYXRoID0gdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJwYXRoXCIpO1xuXG5cdFx0aWYgKCFwYXRoIHx8ICFzdmdSZWYuY3VycmVudCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgdG9vdGhCb3ggPSBwYXRoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdGNvbnN0IHN2Z0JveCA9IHN2Z1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG5cdFx0Y29uc3QgbWFyZ2luID0gdG9vbHRpcD8ubWFyZ2luIHx8IDEwOyAvLyBkaXN0YW5jZSBiZXR3ZWVuIHRvb3RoIGFuZCB0b29sdGlwXG5cblx0XHQvLyBDb21wdXRlIHRvb2x0aXAgcG9zaXRpb24ganVzdCBhYm92ZSBvciBiZWxvdyBkZXBlbmRpbmcgb24gc3BhY2Vcblx0XHRsZXQgeCA9IHRvb3RoQm94LmxlZnRcblx0XHRsZXQgeSA9IHRvb3RoQm94LnRvcFxuXG5cdFx0c3dpdGNoIChwbGFjZW1lbnQpIHtcblx0XHRcdGNhc2UgXCJ0b3BcIjpcblx0XHRcdFx0eCA9IHRvb3RoQm94LmxlZnQgKyB0b290aEJveC53aWR0aCAvIDI7XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3AgLSBtYXJnaW47XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcInRvcC1zdGFydFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gubGVmdDtcblx0XHRcdFx0eSA9IHRvb3RoQm94LnRvcCAtIG1hcmdpbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwidG9wLWVuZFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQ7XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3AgLSBtYXJnaW47XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcImJvdHRvbVwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gubGVmdCArIHRvb3RoQm94LndpZHRoIC8gMjtcblx0XHRcdFx0eSA9IHRvb3RoQm94LmJvdHRvbSArIG1hcmdpbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiYm90dG9tLXN0YXJ0XCI6XG5cdFx0XHRcdHggPSB0b290aEJveC5sZWZ0O1xuXHRcdFx0XHR5ID0gdG9vdGhCb3guYm90dG9tICsgbWFyZ2luO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJib3R0b20tZW5kXCI6XG5cdFx0XHRcdHggPSB0b290aEJveC5yaWdodDtcblx0XHRcdFx0eSA9IHRvb3RoQm94LmJvdHRvbSArIG1hcmdpbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwibGVmdFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gubGVmdCAtIG1hcmdpbjtcblx0XHRcdFx0eSA9IHRvb3RoQm94LnRvcCArIHRvb3RoQm94LmhlaWdodCAvIDI7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcImxlZnQtc3RhcnRcIjpcblx0XHRcdFx0eCA9IHRvb3RoQm94LmxlZnQgLSBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3A7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcImxlZnQtZW5kXCI6XG5cdFx0XHRcdHggPSB0b290aEJveC5sZWZ0IC0gbWFyZ2luO1xuXHRcdFx0XHR5ID0gdG9vdGhCb3guYm90dG9tO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJyaWdodFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQgKyBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3AgKyB0b290aEJveC5oZWlnaHQgLyAyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJyaWdodC1zdGFydFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQgKyBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC50b3A7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcInJpZ2h0LWVuZFwiOlxuXHRcdFx0XHR4ID0gdG9vdGhCb3gucmlnaHQgKyBtYXJnaW47XG5cdFx0XHRcdHkgPSB0b290aEJveC5ib3R0b207XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXG5cdFx0Ly8gSWYgdG9vbHRpcCB3b3VsZCBnbyBhYm92ZSBzdmcsIHBsYWNlIGl0IGJlbG93IGluc3RlYWRcblx0XHRpZiAoeSA8IHN2Z0JveC50b3ApIHtcblx0XHRcdHkgPSB0b290aEJveC5ib3R0b20gKyBtYXJnaW47XG5cdFx0fVxuXG5cdFx0c2V0VG9vbHRpcERhdGEoe1xuXHRcdFx0YWN0aXZlOiB0cnVlLFxuXHRcdFx0cG9zaXRpb246IHsgeCwgeSB9LFxuXHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRpZDogbmFtZSxcblx0XHRcdFx0bm90YXRpb25zOiBnZXRUb290aE5vdGF0aW9ucyhuYW1lKSxcblx0XHRcdFx0dHlwZTogdGVldGhQYXRocy5maW5kKCh0KSA9PiB0Lm5hbWUgPT09IG5hbWUucmVwbGFjZShcInRlZXRoLVwiLCBcIlwiKS5zbGljZSgxKSlcblx0XHRcdFx0XHQ/LnR5cGUgPz8gXCJVbmtub3duXCIsXG5cdFx0XHR9LFxuXHRcdH0pO1xuXHR9O1xuXHRjb25zdCBoYW5kbGVMZWF2ZSA9ICgpID0+IHNldFRvb2x0aXBEYXRhKChwKSA9PiAoeyAuLi5wLCBhY3RpdmU6IGZhbHNlIH0pKTtcblxuXG5cdGNvbnN0IHJlbmRlclRlZXRoID0gKHByZWZpeDogc3RyaW5nKSA9PlxuXHRcdHRlZXRoUGF0aHMubWFwKCh0b290aCkgPT4ge1xuXHRcdFx0Y29uc3QgaWQgPSBgJHtwcmVmaXh9JHt0b290aC5uYW1lfWA7XG5cdFx0XHRjb25zdCBkaXNwbGF5TmFtZSA9IGNvbnZlcnRGRElUb05vdGF0aW9uKGlkLCBub3RhdGlvbiA/PyBcIkZESVwiKTsgLy8gXHVEODNDXHVERDk1XG5cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxUZWV0aFxuXHRcdFx0XHRcdGtleT17aWR9XG5cdFx0XHRcdFx0ey4uLnRvb3RofVxuXHRcdFx0XHRcdG5hbWU9e2lkfVxuXHRcdFx0XHRcdHNlbGVjdGVkPXtzZWxlY3RlZC5oYXMoaWQpfVxuXHRcdFx0XHRcdG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZX1cblx0XHRcdFx0XHRvbktleURvd249e2hhbmRsZUtleURvd259XG5cdFx0XHRcdFx0b25Ib3Zlcj17KG5hbWUsIGUpID0+IGhhbmRsZUhvdmVyKG5hbWUsIGUsIHRvb2x0aXA/LnBsYWNlbWVudCl9XG5cdFx0XHRcdFx0b25MZWF2ZT17aGFuZGxlTGVhdmV9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8dGl0bGU+e2Rpc3BsYXlOYW1lfTwvdGl0bGU+XG5cdFx0XHRcdDwvVGVldGg+XG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cblx0Y29uc3QgZmluYWxDb2xvcnMgPSB7IC4uLnRoZW1lQ29sb3JzLCAuLi5tYXBUb0Nzc1ZhcnMoY29sb3JzKSB9O1xuXG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3NOYW1lPXtgT2RvbnRvZ3JhbSAke3RoZW1lID09PSBcImRhcmtcIiA/IFwiZGFyay10aGVtZVwiIDogXCJcIn1gfVxuXHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0Li4uKGZpbmFsQ29sb3JzIGFzIFJlYWN0LkNTU1Byb3BlcnRpZXMpLFxuXHRcdFx0XHR3aWR0aDogXCIxMDAlXCIsXG5cdFx0XHRcdG1heFdpZHRoOiAzMDAsXG5cdFx0XHRcdG1hcmdpbjogXCIwIGF1dG9cIixcblx0XHRcdFx0ZGlzcGxheTogXCJmbGV4XCIsXG5cdFx0XHRcdGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuXHRcdFx0XHRhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuXHRcdFx0XHQvLyBpc29sYXRpb246IFwiaXNvbGF0ZVwiLFxuXHRcdFx0fX1cblx0XHQ+XG5cdFx0XHQ8c3ZnXG5cdFx0XHRcdHJlZj17c3ZnUmVmfVxuXHRcdFx0XHR4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcblx0XHRcdFx0ZmlsbD1cIm5vbmVcIlxuXHRcdFx0XHR2aWV3Qm94PXtzaG93SGFsZiA9PT0gXCJmdWxsXCIgPyBcIjAgMCA0MDkgNjk0XCIgOiBzaG93SGFsZiA9PT0gJ3VwcGVyJyA/IFwiMCAwIDQwOSAzNDdcIiA6IFwiMCAyMDAgNDA5IDY5NFwifVxuXHRcdFx0XHRjbGFzc05hbWU9XCJPZG9udG9ncmFtXCJcblx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHR3aWR0aDogXCIxMDAlXCIsXG5cdFx0XHRcdFx0aGVpZ2h0OiBcImF1dG9cIixcblx0XHRcdFx0XHR1c2VyU2VsZWN0OiBcIm5vbmVcIixcblx0XHRcdFx0XHR0b3VjaEFjdGlvbjogXCJtYW5pcHVsYXRpb25cIixcblx0XHRcdFx0fX1cblx0XHRcdD5cblxuXHRcdFx0XHR7dmlzaWJsZVF1YWRyYW50cy5tYXAoKHsgbmFtZSwgdHJhbnNmb3JtLCBsYWJlbCwgcG9zaXRpb24gfSwgaW5kZXgpID0+IChcblx0XHRcdFx0XHQ8ZyBrZXk9e25hbWV9IG5hbWU9e25hbWV9IHRyYW5zZm9ybT17dHJhbnNmb3JtfT5cblx0XHRcdFx0XHRcdHtyZW5kZXJUZWV0aChgdGVldGgtJHtpbmRleCArIDF9YCl9XG5cblx0XHRcdFx0XHQ8L2c+XG5cdFx0XHRcdCkpfVxuXHRcdFx0PC9zdmc+XG5cdFx0XHR7c2hvd1Rvb2x0aXAgJiYgKFxuXHRcdFx0XHQ8T2RvbnRvZ3JhbVRvb2x0aXBcblx0XHRcdFx0XHRhY3RpdmU9e3Rvb2x0aXBEYXRhLmFjdGl2ZX1cblx0XHRcdFx0XHRwb3NpdGlvbj17dG9vbHRpcERhdGEucG9zaXRpb259XG5cdFx0XHRcdFx0cGF5bG9hZD17dG9vbHRpcERhdGEucGF5bG9hZH1cblx0XHRcdFx0XHRjb250ZW50PXt0b29sdGlwPy5jb250ZW50fVxuXHRcdFx0XHQvPlxuXHRcdFx0KX1cblx0XHQ8L2Rpdj5cblx0KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb0Nzc1ZhcnMoY29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KSB7XG5cdGNvbnN0IGNzc1ZhcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblx0aWYgKGNvbG9ycy5kYXJrQmx1ZSkge1xuXHRcdGNzc1ZhcnNbXCItLWRhcmstYmx1ZVwiXSA9IGNvbG9ycy5kYXJrQmx1ZTtcblx0fVxuXHRpZiAoY29sb3JzLmJhc2VCbHVlKSB7XG5cdFx0Y3NzVmFyc1tcIi0tYmFzZS1ibHVlXCJdID0gY29sb3JzLmJhc2VCbHVlO1xuXHR9XG5cdGlmIChjb2xvcnMubGlnaHRCbHVlKSB7XG5cdFx0Y3NzVmFyc1tcIi0tbGlnaHQtYmx1ZVwiXSA9IGNvbG9ycy5saWdodEJsdWU7XG5cdH1cblx0cmV0dXJuIGNzc1ZhcnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9kb250b2dyYW07XG4iLCAiZXhwb3J0IGNvbnN0IHRlZXRoUGF0aHMgPSBbXG5cdHtcblx0XHRuYW1lOiBcIjFcIixcblx0XHR0eXBlOiBcIkNlbnRyYWwgSW5jaXNvclwiLFxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNMTczLjk1MSAxLjY5OGMtMi4xOTguMTYtNS4zMDIuODYyLTUuMzAyLjg2MnMtNS41MzEgMS4wMjUtNy43ODEgMi4yN2MtMi40MDMgMS4zMzMtNS41NTMgMy4yOTktNi4wMTMgNS4yNTgtLjQzMiAxLjg0LS43OCA0LjczNC0uNDkxIDYuODMybC4wMjcuMmMuMzQ4IDIuNTI3Ljg2NSA2LjI4IDEuMjM5IDEwLjMxNi4xODYgMi0uMTAxIDMuMjEuNzUxIDYuMTYuODk1IDMuMSAxLjM5NSA0LjU3MyAyLjAxMyA1LjY4Ny42NDYgMS4xNjQgMS40OTMgMi4wODcgMi4wMyAzLjI4Ljg2NiAxLjkyNCAyLjM5MyA0LjI5IDMuODcgNi4xYTQ4LjgwNSA0OC44MDUgMCAwIDAgMi4zNiAyLjY2M2MxLjAxNiAxLjA3OCAyLjgxOSAzLjExIDMuODk4IDQuMzMxIDEuNTI2IDEuNzI3IDMuMDc2IDMuMjQ4IDQuNDIzIDMuNzQyIDEuMjE3LjQ0NiAyLjcwOS42NDIgMy43OTMuOTM2IDEuMzY5LjM3MiAyLjQ5NC42MzggNC41OTcgMCAxLjU0NS0uNDY4IDIuNzI1LS42MjEgNC4zNzItMi40MjQgMi4wNjQtMi4yNTggMi44NDYtMy41MTcgMy41MTItNC43NDYgMS4wNjUtMS45NjQgMi41MjQtNC42NDggMy41NDEtNi40MjIuNjExLTEuMDY4IDIuMjIxLTMuMDg5IDQuMDg2LTguODQ1IDEuNTQtNC43NTIgMi4zNjctNy43NiAyLjczMS04Ljk5NC40MTUtMS40MDggMS4wNzktMy41ODMgMS4zNTUtNi4xOTYuNDQtNC4xNzYgMS4xMTQtNy40ODIgMS4wNjItMTEuMDI2LS4wNDQtMy4wNDYuMTA0LTUuMDQtMS4wNjUtNi4zMDYtLjk1LTEuMDI5LTEuOTg4LTIuMDAxLTMuMzA2LTIuNTM0LTEuOTU5LS43OS0zLjc3NS0xLjM1OC01LjI5OC0xLjU5Mi0xLjM1MS0uMjA3LTcuMDUtLjM1LTExLjIxOS0uMDU3LTEuNTY3LjExLTMuNjEuMDk3LTkuMTg1LjUwNVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTg4LjI2OSA1MC4yMTVjMTkuMjc1LTQxLjg2NyAxMC43NjYtNDMuNjEyIDQuOTM3LTQ0LjY4NC01LjgyOS0xLjA3My0yOC40NTUgMi41My0yOS43MiAyLjgxNy0uNDQyLjIxOC04LjkxMSAwLTQuNzY3IDE5LjU0IDMuNDE2IDE2LjEwNSAxNi4xOTMgMjYuNTk2IDE3LjI0NCAyNy4yNjUgMy4xNDggMi4wMDMgOC44MzcgMi41OTUgMTIuMzA2LTQuOTM4WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOlxuXHRcdFx0XCJNMTYwLjQ3MiAxNC43MjdjLjM5Mi0uNDAyIDQuMzE3LTMuMzA5IDguOTQxLTUuNDcgMy4wOTctMS40NDggNy43NzMtMS42MjkgMTEuMjA3LTEuNzQ5IDguNzU5LS4zNjUgMTAuMDA0LjkxIDEyLjYzNyAxLjQ5NS41NjIuMTM5LjkwOS4yNzYgMS43NzEuNTk1XCIsXG5cdH0sXG5cblx0e1xuXHRcdG5hbWU6IFwiMlwiLFxuXHRcdHR5cGU6IFwiTGF0ZXJhbCBJbmNpc29yXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTEzNS4wMTYgNjAuNDFjMy40NDMgMS4zNTUgNy44MzQgMi43MyA5LjYwMSAyLjM0NiA0LjE4NS0uOTEgNy4wNDQtNC4wMTcgOC4xMjMtOC4xNTIgMi4wNjktNy45MjcgMi4yNDktMTYuMjg4IDEuOTk1LTI0LjQzNi0uMTEzLTMuNTk2LjcyLTE2LjgxLTQuMTg0LTE4LjQ0NC04LjEzNS02LjE0LTMyLjA4OC40OTQtMzYuOTc5IDguMDU1LTUuMDEzIDcuNzUxLjg3OCAyMS4xMzEgNS41NiAyNy43MjggMy44NjIgNS40NCA5LjcxNCAxMC40NzQgMTUuODg0IDEyLjkwM1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNMTM0LjY1IDU1LjM4NmMyLjczMiAxLjA3NiA2LjIxNyAyLjE2NyA3LjYyIDEuODYyIDMuMzIxLS43MjMgNS41OS0zLjE4OCA2LjQ0Ni02LjQ3IDEuNjQyLTYuMjkgMS43ODYtMTIuOTI3IDEuNTgzLTE5LjM5My0uMDg5LTIuODU0LjU3Mi0xMy4zNDItMy4zMi0xNC42MzgtNi40NTYtNC44NzMtMjUuNDY2LjM5Mi0yOS4zNDggNi4zOTMtMy45NzkgNi4xNTIuNjk2IDE2Ljc3IDQuNDEzIDIyLjAwNiAzLjA2NCA0LjMxNyA3LjcwOSA4LjMxMyAxMi42MDYgMTAuMjRaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6XG5cdFx0XHRcIk0xMjEuNTY5IDI4Ljk1MmMuNTUxLS45ODQgNi4zNTQtOC4yMTQgMTIuODY2LTkuMDQ1IDMuMjM4LS40MTMgMTAuNjE5LS4xNyAxMS44MzggMFwiLFxuXHR9LFxuXHR7XG5cdFx0bmFtZTogXCIzXCIsXG5cdFx0dHlwZTogXCJDYW5pbmVcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNNzcuNjMgNjQuMjM2YzEuNjkyIDEuNDAxIDE1LjUxNiAxNC41ODMgMzQuNjk4IDE2LjkwMyA1LjU2OS42NzQgMTUuMDU4LTcuMTg0IDE1Ljc4OS0xMi44OSAxLjMzNS0xMC40MjMtMTIuNDQ0LTI5LjIwNS0yMS45NjUtMzMuNzAzLTQuNTQyLTIuMTQ1LTI1Ljg5Mi00LjAzOS0yOC41MjMgMi45MzktMi40NzEgNi41NTctNi41OTYgMjEuMjkgMCAyNi43NTFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTEyMy4yODUgNjYuMjY3YzEuMDcyLTguMzY4LTEwLjIzNC0yMy45NC0xNy45OS0yNy42MDMtMy43Mi0xLjc1Ny0yMS4yMDYtMy4zMDgtMjMuMzYgMi40MDctMS43NTcgNC42Ni00LjA5IDEzLjI4NC0yLjMwNiAxOC4xNyA0LjE1IDExLjM2IDQwLjg5NyAyOC41NzMgNDMuNjU2IDcuMDI2WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk04Mi44NCA2MC4wNDNjLS4wMS0uODU1LS4xOTMtNC42My4yNTYtOC4xMi42NjctNS4xODUuNzAzLTUuODY2IDEuMjktOC4xMDYuNDM3LTEuNjY2IDIuMDgzLTQuOTEgMTcuNDg3LTMuNzQ4XCIsXG5cdFx0XHRcIk0xMDEuNDM4IDY4LjQ5Yy4zNzYtLjA0NSAyLjI4NC01LjExMiA5LjQ5OC02LjM0NFwiLFxuXHRcdF0sXG5cdH0sXG5cdHtcblx0XHRuYW1lOiBcIjRcIixcblx0XHR0eXBlOiBcIkZpcnN0IFByZW1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTkzLjY4NCAxMDguNzQ4Yy03LjQ5OCAzLjM5Ny0zNS4zNjgtNy4zOTctMzUuNTk2LTcuNDQxLTEuNDI5LS44NDItMTIuMjE1LTIuODU0LTkuMDY4LTI5LjQxNC4xNDctMS4yMzggMS4zNTMtMi4wNSAyLjIxOC0yLjU1Ni45NTYtLjU1OSAzLjE1Ny0xLjU5NSA3LjU4Ny0yLjc5NCAyLjcwNy0uNzM0IDEzLjg1Ni0zLjU0IDE4LjY3NC0uOTIgMi4yMTYgMS4yMDYgNi4zNjMgNC4xMTcgMTAuNDczIDcuMDM2IDQuMTEgMi45MTkgMTAuOTU4IDguNzE1IDEzLjMyNyAxMS4zMzggMi4yOTEgMi41MzcgMTAuMzI0IDEzLjc1LTcuNjE1IDI0Ljc1MVpcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOTEuNDk1IDEwNS45MzFjLTYuNTI4IDIuOTU4LTMwLjc5My02LjQ0LTMwLjk5Mi02LjQ3OC0xLjI0My0uNzM0LTEwLjYzNC0yLjQ4Ni03Ljg5NS0yNS42MS4xMjgtMS4wNzggMS4xNzgtMS43ODUgMS45MzItMi4yMjUuODMyLS40ODcgMi43NDgtMS4zOSA2LjYwNS0yLjQzMyAyLjM1Ny0uNjM5IDEyLjA2NC0zLjA4MiAxNi4yNTgtLjggMS45MyAxLjA1IDUuNTQgMy41ODQgOS4xMiA2LjEyNSAzLjU3OCAyLjU0MSA5LjU0IDcuNTg4IDExLjYwMyA5Ljg3MiAxLjk5NCAyLjIwOCA4Ljk4NyAxMS45NzEtNi42MyAyMS41NDlaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTU1LjIzNCA5Mi40MTRjLjAyMi0uMjQyLjA2LTEuNDY5Ljg3NS03Ljc5LjQ2LTMuNTczIDEuODEzLTUuNDkgMy4xMzQtNy4wMSAxLjE4LTEuMzU5IDMuNTI0LTMuMTkzIDUuODgtNC4zNjUgMS40Ni0uNjMyIDMuMDI5LTEuMTI2IDYuMDQ0LTEuNzc2LjgyNi0uMTM4IDEuNDc3LS4xNzUgMi41MjYtLjM5NVwiLFxuXHRcdFx0XCJNODcuMDIgMTAxLjM4N2M0LjE4My0uNzkyIDguNzQ3LTkuNzc0IDguNzQ3LTkuNzc0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNVwiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIFByZW1vbGFyXCIsXG5cdFx0b3V0bGluZVBhdGg6XG5cdFx0XHRcIk0zMy4zOTYgMTI3LjY1MmMtMS4wODgtMi43MTMtNC40ODYtMTEuODUyLTMuOTYyLTE1LjI0Ni40NzctMy4wODUgMTQuNDctMTIuMDA4IDIzLjU5NS0xMi4wMDggMi4xNzggMCAyNS4xNTcgNi42NjUgMzUuMDczIDE3LjkwOCA0LjU1MSA5LjMyNC0xLjYyNCAyMy4zMzktMTYuMjIgMjMuMzM5LTguMTkzIDAtMjMuNTYzLTEuODk3LTI1LjQ1My0yLjIxNS0xLjg5Ni0uMzE5LTQuMzE3LTEuMTI4LTYuNTk2LTIuMzIxLTEuMjg5LS42NzUtMi0xLjAzNS0yLjQ3OC0xLjY0Ny0uNjU1LS44NC0yLjEwMS0zLjE3OC0zLjk2LTcuODFaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjgzNyAxMjYuNzc4Yy0uOTQ1LTIuMzU2LTMuODk1LTEwLjI4OS0zLjQ0LTEzLjIzNS40MTQtMi42NzkgMTIuNTYxLTEwLjQyNCAyMC40ODMtMTAuNDI0IDEuODkgMCAyMS44MzcgNS43ODUgMzAuNDQ1IDE1LjU0NSAzLjk1MSA4LjA5NC0xLjQxIDIwLjI2LTE0LjA4IDIwLjI2LTcuMTEyIDAtMjAuNDU0LTEuNjQ3LTIyLjA5NS0xLjkyMi0xLjY0NS0uMjc3LTMuNzQ3LS45OC01LjcyNS0yLjAxNS0xLjEyLS41ODYtMS43MzctLjg5OS0yLjE1MS0xLjQzLS41Ny0uNzI5LTEuODI1LTIuNzU5LTMuNDM3LTYuNzc5WlwiLFxuXHRcdGxpbmVIaWdobGlnaHRQYXRoOiBbXG5cdFx0XHRcIk00MC44IDEzMS4yMjFjLTQuMDAzLTIwLjI3OCA4LjQ0Mi0yMC45NzQgMTMuNzc5LTIzLjY5MlwiLFxuXHRcdFx0XCJNNzQuMDU2IDEzNC43MjljNi4zNS00LjI2NCA2LjM0My0xMC41MDMgNi40ODktMTEuNDQ4XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiNlwiLFxuXHRcdHR5cGU6IFwiRmlyc3QgTW9sYXJcIixcblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTM1LjUzOSAyMDMuMzIzYy0zLjM2My4xOTYtMzIuNzg4LTQuMDItMjguNDk1LTQyLjQ2NSAzLjYzMS0yMC40MDggMjYuMjEtMjMuMzY0IDI5LjU1Ny0yMi45MTIgOS4wMTktLjc0NSAyNS43MjcgNi43NDMgMjkuMjU1IDkuNDAzIDQuNTQ2IDMuNDI3IDcuMzg0IDUuNjgxIDguNjA2IDcuMDkyIDIuNDM2IDIuODE0IDQuNDk5IDUuMTEgNC43IDYuMzEzLjI4NCAxLjcwMyAxLjMxNyA0LjcyLTIuMjQ4IDkuNjg3LTIuNDUzIDMuNDE4LTIuOTU3IDYuNjYzLTIuODU2IDEwLjIyMy4xMTggNC4xODUuMzcgOS43NTQtLjUyNCAxMS42My0uNTkyIDEuMjQ0LS45ODQgMi42MjctMi4zNzUgMy4zOTItMi4wMTUgMS4xMDgtNC42MSAyLjMxNy0xMS45MyAzLjc0OC0zLjYyMy43MDgtOS4zMDkgMS44My0xMi40MDEgMi4yOTItNS4xOS43NzctOC40MjMgMS40My0xMS4yODkgMS41OTdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTM2LjUxNSAxOTkuMDg1Yy0yLjkyNy4xNy0yOC41NC0zLjQ5OS0yNC44MDMtMzYuOTYzIDMuMTYtMTcuNzY0IDIyLjgxNC0yMC4zMzcgMjUuNzI3LTE5Ljk0NCAxMC44Mi0uODkzIDI1LjcwOSA1Ljk4OSAzMi45NTUgMTQuMzU4IDIuMTIgMi40NSAzLjkxNyA0LjQ0OCA0LjA5MSA1LjQ5NS4yNDggMS40ODIuNTEzIDQuMjY4LTIuNTkgOC41OTEtMi4xMzUgMi45NzUtMS45NCA1LjY0MS0xLjg1MiA4Ljc0LjA5NiAzLjQxNyAxLjQwMiAxMC45MTctMi41MjMgMTMuMDc2LTEuNzU0Ljk2NC00LjAxMyAyLjAxNi0xMC4zODQgMy4yNjEtNi43NjIgMS4zMjItMTMuNzI4IDIuOTg0LTIwLjYyMSAzLjM4NlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzcuMTMyIDE5Mi4xNDdjMS4yODgtLjM3MiAzLjM4NS0yLjA3MSA1LjE4My01LjQzOG05LjAwOC0zNS45OGMxLjE4OCAxLjIyNCAyLjExNCA2LjM4NS4xNSAxMS4zNjNtMCAwYy0xLjUzNyAzLjg5OS00Ljk0NCA5LjM3OC0xMS4xOTUgOS4zNzggNi44NzcuMzIxIDQuNjUxIDEwLjM0MyAyLjAzNyAxNS4yMzltOS4xNTktMjQuNjE3YzEuNDctMi41ODkgNC45NjYtNy41NzIgOC4wNjgtOC4yMTdtLTE3LjIyNyAzMi44MzRjLS4xODYgMi4zNDguMDQ0IDcuMzUxIDIuNDU4IDguNTg0XCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiN1wiLFxuXHRcdHR5cGU6IFwiU2Vjb25kIE1vbGFyXCIsXG5cblx0XHRvdXRsaW5lUGF0aDpcblx0XHRcdFwiTTQuOTY5IDI0OC4xMzJjLTEuMTg4LTIuNzQtMTQuNzA4LTI3LjE1MiAxMi4zMTktNDIuMTM5IDEuODM2LTEuMDE4IDI0LjUwOC03LjcxMSA0NS4yOCAxMC44NzQgMi4yNzQgMi4wMzUgNC40NTUgMy41NzkgNS40MDMgNS4xMDIgMS40MTQgMi4yNzEgMi4xMjggMy40MzUgMS42ODcgNS42MDYtLjM4NyAxLjkwMS0xLjU0IDMuNjQyLTMuNzcgNy43MTEtMS4xMjcgMi4wNTYtMS44NTQgMy40MjctMS4zNjkgNy44MjQuMTc1IDEuNTkuNjI3IDMuOTM1LjA0OCA2LjYwMy0uNDY2IDIuMTQ3LS45NDEgMy41NjctMi41NzggNS4wMDYtMi41MyAyLjIyNC01LjMwNyAzLjY0NS05LjA3NiA0LjM1LTEuMDkxLjIwNC0zLjEzMy44MTEtNy41MjUgMS43MDItMi43NzYuNTYzLTYuNjE5IDEuMjM0LTEwLjA5IDEuNjU0LTMuNDcuNDItNi40NzguNjM4LTguNjEyLjYzNi0zLjM1My0uMDAyLTYuNzM0LjAzMS05LjQ2NS0xLjQ4bC0uMDE4LS4wMWMtMS42NTQtLjkxNS00LjA3Ni0yLjI1NS02LjI0NS00LjczMi0yLjI1OC0yLjU3OS00LjU5MS01LjQ4Mi01Ljk4OS04LjcwN1pcIixcblx0XHRzaGFkb3dQYXRoOlxuXHRcdFx0XCJNOC43OTkgMjQ2LjI4Yy0xLjEyOC0yLjM1Mi0xMi44NDMtMjMuNzA5IDEwLjc1Ni0zNi43OTYgMS42MDQtLjg4OSAyMS40LTYuNzMyIDM5LjUzOCA5LjQ5NiAxLjk4NiAxLjc3NyAzLjg5IDMuMTI1IDQuNzE3IDQuNDU0IDEuMjM1IDEuOTgzIDEuODU5IDMgMS40NzMgNC44OTUtLjMzNyAxLjY2LTEuMzQzIDMuMTgtMy4yOTEgNi43MzQtLjk4NCAxLjc5NS0xLjYxOSAyLjk5Mi0xLjE5NiA2LjgzMS4xNTQgMS4zODkuNTQ4IDMuNDM2LjA0MiA1Ljc2Ni0yLjg3MiAxMy4yMzEtMzEuMjEzIDExLjY1Ny0zMy4wNzYgMTEuNjU2aC0uMDA3Yy0yLjkzNi0uMDAzLTEyLjcxNC0uMDEtMTguOTU2LTEzLjAzNlpcIixcblx0XHRsaW5lSGlnaGxpZ2h0UGF0aDogW1xuXHRcdFx0XCJNMzIuMTQgMjU1LjA5MWMuNzQ4LS4zMDMgMi4yOC0yLjM3OCAzLjEwMy01LjcyMW0tMS45OS0zNS40ODFjMy4wMDkgMS4zNjMgNC4wMTUgNC44ODggMy43MzYgOC43MTZtMCAwYy0uNDI0IDUuODM1LTMuODMyIDEyLjM3Ny03LjY4MyAxMy4wNDkgNi45NTQgMS4xOCA3LjI0NCA4LjQxNCA1LjkzNyAxMy43MTZtMS43NDYtMjYuNzY1Yy4zMjctMi4yNCAxLjgyLTYuOTU4IDUuMTktNy45MW0tNi45MzYgMzQuNjc1Yy42NSAyLjE3MiAyLjU1IDYuNTA3IDQuOTY3IDYuNDcxXCIsXG5cdFx0XSxcblx0fSxcblx0e1xuXHRcdG5hbWU6IFwiOFwiLFxuXHRcdHR5cGU6IFwiVGhpcmQgTW9sYXJcIixcblxuXHRcdG91dGxpbmVQYXRoOlxuXHRcdFx0XCJNLjg5NSAyOTEuMzMxYy0uMzYyLTEuMjE4LS4xMTYtMy40MTEtLjE2NC0zLjg5Mi0uMDM1LS4zNC4xMjQtMy40MzguNzI3LTUuNTU4IDEuMDQtMi44MiAxLjgwOC00Ljc0IDIuNTczLTUuNzUyIDEuNDEzLTEuODcyIDMuOTEzLTQuNzY5IDcuMTM1LTcuMiAyLjI4OC0xLjcyNiA1LjAwMy0zLjE4NyA4LjEzMy00LjMzOSAyLjI0OS0uODI4IDQuMzYyLTEuNTAyIDcuNzMyLTEuNjkzIDIuMTc1LS4xMjMgNS4yNS0uMTU1IDguNzgyLjEwOHM3LjQwMy44MDQgMTAuMzUzIDEuMzk3IDQuOTIgMS4yMTggNi42NDEgMS44OTNjMS43MjIuNjc1IDMuMTQ4IDEuMzg5IDMuOTcyIDEuNzY4IDEuNTEuNjk2IDIuOSAxLjIwOSAzLjgyNCAyLjE0IDEuODU3IDEuODcyIDIuNjE3IDMuMzM0IDIuOTEyIDQuODA3LjI1NCAxLjI3LjI1MiAzLjIxNi0uMjI0IDQuNTMxLS42NzIgMS44NTktMS40NjggMi44NTYtMS40NjggNS43IDAgMy44NTcgMS43MTMgNS45NSAxLjkxNSA4LjM1Ni4zMzcgNC4wMDguMzE3IDYuMTY4LS40MiA3LjQ4NS0uNTkxIDEuMDU3LTEuNTMyIDIuMzgzLTUuNTQxIDUuMDg4LTEuMTczLjc5MS0yLjY4NCAxLjYzNC02LjY0MyAzLjQyNC0yLjc2MiAxLjI0OC02Ljk3NyAzLjEwOC05LjIwNSA0LjEwNy0yLjQ3MyAxLjEwOS00LjY2NyAyLjIyNi04LjIzNCAzLjA1My0yLjU0LjU4OS01LjYzMS43ODQtOS4wMTIuMTg2LTIuMzA3LS40MDgtNS40NDktMS4xODMtOS4xMDctMy44MjctMy45MjgtMi44MzktNi41My00Ljg5Ny03LjQ5Ny02LjA0MS0uODY2LTEuMDI2LTEuNzE0LTIuMDgyLTIuNDEyLTMuNTU1LS45MDQtMS45MDUtMi4yNzItMy42NDMtMy01LjkxNi0uODQ2LTIuNjMzLTEuMTY3LTQuMjMzLTEuNzcyLTYuMjdaXCIsXG5cdFx0c2hhZG93UGF0aDpcblx0XHRcdFwiTTQuNzMyIDI5MS4xNzVjLS4zMTctMS4wNy0uMTAxLTIuOTk0LS4xNDQtMy40MTYtLjAzLS4yOTkuMTEtMy4wMTkuNjM4LTQuODguOTE0LTIuNDc2IDEuNTg4LTQuMTYxIDIuMjYtNS4wNSAxLjI0LTEuNjQzIDMuNDM0LTQuMTg3IDYuMjYzLTYuMzIxIDIuMDA5LTEuNTE1IDQuMzkzLTIuNzk3IDcuMTQtMy44MDkgMS45NzQtLjcyNyAzLjgzLTEuMzE4IDYuNzg4LTEuNDg2IDEuOTEtLjEwOCA0LjYxLS4xMzYgNy43MS4wOTUgMy4xLjIzMSA2LjQ5OC43MDYgOS4wODggMS4yMjYgMi41OS41MjEgNC4zMTkgMS4wNyA1LjgzIDEuNjYyIDEuNTEyLjU5MiAyLjc2NCAxLjIyIDMuNDg3IDEuNTUzIDEuMzI2LjYxIDIuNTQ3IDEuMDYxIDMuMzU3IDEuODc4IDEuNjMgMS42NDMgMi4yOTggMi45MjcgMi41NTcgNC4yMi4yMjMgMS4xMTUuMjIxIDIuODI0LS4xOTYgMy45NzgtLjU5IDEuNjMyLTEuMjkgMi41MDctMS4yOSA1LjAwNCAwIDMuMzg1IDEuNTA0IDUuMjIzIDEuNjgyIDcuMzM1LjI5NiAzLjUxOS4yNzggNS40MTYtLjM2OSA2LjU3MS0uNTIuOTI4LTEuMzQ1IDIuMDkzLTQuODY1IDQuNDY3LTEuMDMuNjk1LTIuMzU1IDEuNDM1LTUuODMxIDMuMDA2LTIuNDI1IDEuMDk2LTYuMTI2IDIuNzI4LTguMDgyIDMuNjA2LTIuMTcuOTczLTQuMDk2IDEuOTU0LTcuMjI4IDIuNjgtMi4yMjkuNTE3LTQuOTQ0LjY4OC03LjkxMi4xNjMtMi4wMjQtLjM1OC00Ljc4My0xLjAzOC03Ljk5NS0zLjM1OS0zLjQ0OC0yLjQ5My01LjczMi00LjI5OS02LjU4LTUuMzA0LS43NjEtLjkwMS0xLjUwNS0xLjgyNy0yLjExOS0zLjEyMS0uNzkzLTEuNjcyLTEuOTk0LTMuMTk4LTIuNjM0LTUuMTkzLS43NDItMi4zMTItMS4wMjQtMy43MTctMS41NTUtNS41MDVaXCIsXG5cdFx0bGluZUhpZ2hsaWdodFBhdGg6IFtcblx0XHRcdFwiTTMxLjczMiAzMDkuNTExYzEuNDYyLS44OTcgMi41ODUtMy42NzIgMi45My02LjcyNm0tMi45My0yOS40NTNjMi4xMTQgMS4wOTIgMy40OSA0LjQ0IDMuNjEgOC4wNjJtNC4xMzMtNy41OGMtMS4zNTMgMS4wNTgtNC4wNzQgNC4wNTctNC4xMzQgNy41OG0wIDBjLjE1NSA0LjY5My0xLjc5NyA5Ljg0Ni02Ljk4MyAxMS4xNTIgNS4zNzktLjM1NyA2Ljg1OSA1LjMwNSA2LjMwMyAxMC4yMzltNC41NTcgNy4yNGMtMS42NzgtLjY3MS00LjkzOC0zLjA1OC00LjU1Ny03LjI0XCIsXG5cdFx0XSxcblx0fSxcbl07XG4iLCAiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcENvbnRlbnRSZW5kZXJlciA9IChwYXlsb2FkPzogYW55KSA9PiBSZWFjdC5SZWFjdE5vZGU7XG5cblxuZXhwb3J0IGludGVyZmFjZSBPZG9udG9ncmFtVG9vbHRpcFByb3BzIHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgcGF5bG9hZD86IGFueTtcbiAgICBwb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgICBjb250ZW50PzogUmVhY3QuUmVhY3ROb2RlIHwgVG9vbHRpcENvbnRlbnRSZW5kZXJlcjtcbn1cblxuY29uc3QgZ2V0Q29udGVudCA9IChcbiAgICBjb250ZW50OiBSZWFjdC5SZWFjdE5vZGUgfCBUb29sdGlwQ29udGVudFJlbmRlcmVyLFxuICAgIHBheWxvYWQ/OiBhbnlcbikgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgY29udGVudCA9PT0gXCJmdW5jdGlvblwiID8gY29udGVudChwYXlsb2FkKSA6IGNvbnRlbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgT2RvbnRvZ3JhbVRvb2x0aXA6IFJlYWN0LkZDPE9kb250b2dyYW1Ub29sdGlwUHJvcHM+ID0gKHtcbiAgICBhY3RpdmUsXG4gICAgcGF5bG9hZCxcbiAgICBwb3NpdGlvbixcbiAgICBjb250ZW50LFxufSkgPT4ge1xuICAgIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cblxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHJlZi5jdXJyZW50ICYmIHBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IHBvc2l0aW9uO1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQuc3R5bGUubGVmdCA9IGAke3ggKyAxMH1weGA7XG4gICAgICAgICAgICByZWYuY3VycmVudC5zdHlsZS50b3AgPSBgJHt5ICsgMTB9cHhgO1xuICAgICAgICB9XG4gICAgfSwgW3Bvc2l0aW9uXSk7XG5cbiAgICBpZiAoIWFjdGl2ZSB8fCAhcGF5bG9hZCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9kb250b2dyYW0tdG9vbHRpcFwiXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogXCJyZ2JhKDAsIDAsIDAsIDAuNzUpXCIsXG4gICAgICAgICAgICAgICAgY29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiNnB4IDEwcHhcIixcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiNnB4XCIsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMTJweFwiLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuMyxcbiAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC0xMDAlKVwiLFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IFwib3BhY2l0eSAwLjE1cyBlYXNlXCIsXG4gICAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgICB7Z2V0Q29udGVudChjb250ZW50LCBwYXlsb2FkKSA/PyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5Ub290aDoge3BheWxvYWQ/Lm5vdGF0aW9ucz8uZmRpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlR5cGU6IHtwYXlsb2FkPy50eXBlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2FsOiB7cGF5bG9hZD8ubm90YXRpb25zPy51bml2ZXJzYWx9LCBQYWxtZXI6e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAge3BheWxvYWQ/Lm5vdGF0aW9ucz8ucGFsbWVyfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQ0EsT0FBUyxlQUFBQSxFQUFhLFVBQUFDLEVBQVEsWUFBQUMsTUFBZ0IsUUNEdkMsSUFBTUMsRUFBYSxDQUN6QixDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUNOLFlBQ0MsNjFCQUNELFdBQ0MsMk1BQ0Qsa0JBQ0MsbUpBQ0YsRUFFQSxDQUNDLEtBQU0sSUFDTixLQUFNLGtCQUVOLFlBQ0MsMFFBQ0QsV0FDQyx5UUFDRCxrQkFDQyxtRkFDRixFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sU0FFTixZQUNDLDZNQUNELFdBQ0Msc0tBQ0Qsa0JBQW1CLENBQ2xCLDhHQUNBLGtEQUNELENBQ0QsRUFDQSxDQUNDLEtBQU0sSUFDTixLQUFNLGlCQUVOLFlBQ0Msb1RBQ0QsV0FDQywwU0FDRCxrQkFBbUIsQ0FDbEIsK0tBQ0EsbURBQ0QsQ0FDRCxFQUNBLENBQ0MsS0FBTSxJQUNOLEtBQU0sa0JBQ04sWUFDQywyU0FDRCxXQUNDLHVTQUNELGtCQUFtQixDQUNsQix5REFDQSxzREFDRCxDQUNELEVBQ0EsQ0FDQyxLQUFNLElBQ04sS0FBTSxjQUNOLFlBQ0Msc2JBQ0QsV0FDQyxxVkFDRCxrQkFBbUIsQ0FDbEIsaVJBQ0QsQ0FDRCxFQUNBLENB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RUFHQyxTQUFBcUIsRUFBaUIsSUFBSSxDQUFDLENBQUUsS0FBQTFDLEVBQU0sVUFBQTRELEVBQVcsTUFBQUMsRUFBTyxTQUFBQyxDQUFTLEVBQUdDLElBQzVEM0UsRUFBQyxLQUFhLEtBQU1ZLEVBQU0sVUFBVzRELEVBQ25DLFNBQUFOLEVBQVksU0FBU1MsRUFBUSxDQUFDLEVBQUUsR0FEMUIvRCxDQUdSLENBQ0EsRUFDRixFQUNDb0IsR0FDQWhDLEVBQUM0RSxFQUFBLENBQ0EsT0FBUXBDLEVBQVksT0FDcEIsU0FBVUEsRUFBWSxTQUN0QixRQUFTQSxFQUFZLFFBQ3JCLFFBQVNULEdBQUEsWUFBQUEsRUFBUyxRQUNuQixHQUVGLENBRUYsRUFFTyxTQUFTd0MsRUFBYXpDLEVBQTRDLENBQ3hFLElBQU0rQyxFQUFrQyxDQUFDLEVBQ3pDLE9BQUkvQyxFQUFPLFdBQ1YrQyxFQUFRLGFBQWEsRUFBSS9DLEVBQU8sVUFFN0JBLEVBQU8sV0FDVitDLEVBQVEsYUFBYSxFQUFJL0MsRUFBTyxVQUU3QkEsRUFBTyxZQUNWK0MsRUFBUSxjQUFjLEVBQUkvQyxFQUFPLFdBRTNCK0MsQ0FDUixDQUVBLElBQU9DLEVBQVFyRCIsCiAgIm5hbWVzIjogWyJ1c2VDYWxsYmFjayIsICJ1c2VSZWYiLCAidXNlU3RhdGUiLCAidGVldGhQYXRocyIsICJ1c2VFZmZlY3QiLCAidXNlUmVmIiwgIkZyYWdtZW50IiwgImpzeCIsICJqc3hzIiwgImdldENvbnRlbnQiLCAiY29udGVudCIsICJwYXlsb2FkIiwgIk9kb250b2dyYW1Ub29sdGlwIiwgImFjdGl2ZSIsICJwb3NpdGlvbiIsICJfYSIsICJfYiIsICJfYyIsICJyZWYiLCAieCIsICJ5IiwgImpzeCIsICJqc3hzIiwgImNvbnZlcnRGRElUb05vdGF0aW9uIiwgImZkaSIsICJub3RhdGlvbiIsICJudW0iLCAiZmRpVG9Vbml2ZXJzYWwiLCAicXVhZHJhbnQiLCAiZ2V0VG9vdGhOb3RhdGlvbnMiLCAidW5pdmVyc2FsIiwgInBhbG1lciIsICJUZWV0aCIsICJuYW1lIiwgIm91dGxpbmVQYXRoIiwgInNoYWRvd1BhdGgiLCAibGluZUhpZ2hsaWdodFBhdGgiLCAic2VsZWN0ZWQiLCAib25DbGljayIsICJvbktleURvd24iLCAib25Ib3ZlciIsICJvbkxlYXZlIiwgImNoaWxkcmVuIiwgImUiLCAiZCIsICJpIiwgIk9kb250b2dyYW0iLCAiZGVmYXVsdFNlbGVjdGVkIiwgIm9uQ2hhbmdlIiwgImNsYXNzTmFtZSIsICJ0aGVtZSIsICJjb2xvcnMiLCAidG9vbHRpcCIsICJzaG93VG9vbHRpcCIsICJzaG93SGFsZiIsICJ0aGVtZUNvbG9ycyIsICJzZXRTZWxlY3RlZCIsICJ1c2VTdGF0ZSIsICJzdmdSZWYiLCAidXNlUmVmIiwgInRvb2x0aXBSZWYiLCAidG9vbHRpcERhdGEiLCAic2V0VG9vbHRpcERhdGEiLCAiaGFuZGxlVG9nZ2xlIiwgInVzZUNhbGxiYWNrIiwgInByZXYiLCAidXBkYXRlZCIsICJkZXRhaWxzIiwgImlkIiwgInRvb3RoQmFzZSIsICJ0b290aERhdGEiLCAidGVldGhQYXRocyIsICJ0IiwgImhhbmRsZUtleURvd24iLCAicXVhZHJhbnRzIiwgInZpc2libGVRdWFkcmFudHMiLCAiaGFuZGxlSG92ZXIiLCAicGxhY2VtZW50IiwgIl9hIiwgInBhdGgiLCAidG9vdGhCb3giLCAic3ZnQm94IiwgIm1hcmdpbiIsICJ4IiwgInkiLCAiaGFuZGxlTGVhdmUiLCAicCIsICJyZW5kZXJUZWV0aCIsICJwcmVmaXgiLCAidG9vdGgiLCAiZGlzcGxheU5hbWUiLCAiZmluYWxDb2xvcnMiLCAibWFwVG9Dc3NWYXJzIiwgInRyYW5zZm9ybSIsICJsYWJlbCIsICJwb3NpdGlvbiIsICJpbmRleCIsICJPZG9udG9ncmFtVG9vbHRpcCIsICJjc3NWYXJzIiwgIk9kb250b2dyYW1fZGVmYXVsdCJdCn0K
|