multi/changes.html

2217 lines
1.2 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<title>changes.md</title>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<style>
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
body {
font-family: "Segoe WPC", "Segoe UI", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";
font-size: 14px;
padding: 0 12px;
line-height: 22px;
word-wrap: break-word;
}
#code-csp-warning {
position: fixed;
top: 0;
right: 0;
color: white;
margin: 16px;
text-align: center;
font-size: 12px;
font-family: sans-serif;
background-color:#444444;
cursor: pointer;
padding: 6px;
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
}
#code-csp-warning:hover {
text-decoration: none;
background-color:#007acc;
box-shadow: 2px 2px 2px rgba(0,0,0,.25);
}
body.scrollBeyondLastLine {
margin-bottom: calc(100vh - 22px);
}
body.showEditorSelection .code-line {
position: relative;
}
body.showEditorSelection .code-active-line:before,
body.showEditorSelection .code-line:hover:before {
content: "";
display: block;
position: absolute;
top: 0;
left: -12px;
height: 100%;
}
body.showEditorSelection li.code-active-line:before,
body.showEditorSelection li.code-line:hover:before {
left: -30px;
}
.vscode-light.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(0, 0, 0, 0.15);
}
.vscode-light.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(0, 0, 0, 0.40);
}
.vscode-dark.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(255, 255, 255, 0.4);
}
.vscode-dark.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(255, 255, 255, 0.60);
}
.vscode-high-contrast.showEditorSelection .code-active-line:before {
border-left: 3px solid rgba(255, 160, 0, 0.7);
}
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
border-left: 3px solid rgba(255, 160, 0, 1);
}
img {
max-width: 100%;
max-height: 100%;
}
a {
color: #4080D0;
text-decoration: none;
}
a:focus,
input:focus,
select:focus,
textarea:focus {
outline: 1px solid -webkit-focus-ring-color;
outline-offset: -1px;
}
hr {
border: 0;
height: 2px;
border-bottom: 2px solid;
}
h1 {
padding-bottom: 0.3em;
line-height: 1.2;
border-bottom-width: 1px;
border-bottom-style: solid;
}
h1, h2, h3 {
font-weight: normal;
}
h1 code,
h2 code,
h3 code,
h4 code,
h5 code,
h6 code {
font-size: inherit;
line-height: auto;
}
a:hover {
color: #4080D0;
text-decoration: underline;
}
table {
border-collapse: collapse;
}
table > thead > tr > th {
text-align: left;
border-bottom: 1px solid;
}
table > thead > tr > th,
table > thead > tr > td,
table > tbody > tr > th,
table > tbody > tr > td {
padding: 5px 10px;
}
table > tbody > tr + tr > td {
border-top: 1px solid;
}
blockquote {
margin: 0 7px 0 5px;
padding: 0 16px 0 10px;
border-left: 5px solid;
}
code {
font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
font-size: 14px;
line-height: 19px;
}
body.wordWrap pre {
white-space: pre-wrap;
}
.mac code {
font-size: 12px;
line-height: 18px;
}
pre:not(.hljs),
pre.hljs code > div {
padding: 16px;
border-radius: 3px;
overflow: auto;
}
/** Theming */
.vscode-light,
.vscode-light pre code {
color: rgb(30, 30, 30);
}
.vscode-dark,
.vscode-dark pre code {
color: #DDD;
}
.vscode-high-contrast,
.vscode-high-contrast pre code {
color: white;
}
.vscode-light code {
color: #A31515;
}
.vscode-dark code {
color: #D7BA7D;
}
.vscode-light pre:not(.hljs),
.vscode-light code > div {
background-color: rgba(220, 220, 220, 0.4);
}
.vscode-dark pre:not(.hljs),
.vscode-dark code > div {
background-color: rgba(10, 10, 10, 0.4);
}
.vscode-high-contrast pre:not(.hljs),
.vscode-high-contrast code > div {
background-color: rgb(0, 0, 0);
}
.vscode-high-contrast h1 {
border-color: rgb(0, 0, 0);
}
.vscode-light table > thead > tr > th {
border-color: rgba(0, 0, 0, 0.69);
}
.vscode-dark table > thead > tr > th {
border-color: rgba(255, 255, 255, 0.69);
}
.vscode-light h1,
.vscode-light hr,
.vscode-light table > tbody > tr + tr > td {
border-color: rgba(0, 0, 0, 0.18);
}
.vscode-dark h1,
.vscode-dark hr,
.vscode-dark table > tbody > tr + tr > td {
border-color: rgba(255, 255, 255, 0.18);
}
.vscode-light blockquote,
.vscode-dark blockquote {
background: rgba(127, 127, 127, 0.1);
border-color: rgba(0, 122, 204, 0.5);
}
.vscode-high-contrast blockquote {
background: transparent;
border-color: #fff;
}
</style>
<style>
/* Tomorrow Theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* Tomorrow Comment */
.hljs-comment,
.hljs-quote {
color: #8e908c;
}
/* Tomorrow Red */
.hljs-variable,
.hljs-template-variable,
.hljs-tag,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-regexp,
.hljs-deletion {
color: #c82829;
}
/* Tomorrow Orange */
.hljs-number,
.hljs-built_in,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params,
.hljs-meta,
.hljs-link {
color: #f5871f;
}
/* Tomorrow Yellow */
.hljs-attribute {
color: #eab700;
}
/* Tomorrow Green */
.hljs-string,
.hljs-symbol,
.hljs-bullet,
.hljs-addition {
color: #718c00;
}
/* Tomorrow Blue */
.hljs-title,
.hljs-section {
color: #4271ae;
}
/* Tomorrow Purple */
.hljs-keyword,
.hljs-selector-tag {
color: #8959a8;
}
.hljs {
display: block;
overflow-x: auto;
color: #4d4d4c;
padding: 0.5em;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
</style>
<style>
/*
* Markdown PDF CSS
*/
body {
font-family: "Meiryo", "Segoe WPC", "Segoe UI", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";
}
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
border-radius: 3px;
overflow-x: auto;
white-space: pre-wrap;
overflow-wrap: break-word;
}
pre:not(.hljs) {
padding: 23px;
line-height: 19px;
}
blockquote {
background: rgba(127, 127, 127, 0.1);
border-color: rgba(0, 122, 204, 0.5);
}
.emoji {
height: 1.4em;
}
/* for inline code */
:not(pre):not(.hljs) > code {
color: #C9AE75; /* Change the old color so it seems less like an error */
font-size: inherit;
}
/* Page Break : use <div class="page"/> to insert page break
-------------------------------------------------------- */
.page {
page-break-after: always;
}
</style>
<script>
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}(window,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=213)}([function(t,e,n){"use strict";n.r(e);var r=function(t,e){return t<e?-1:t>e?1:t>=e?0:NaN},i=function(t){var e;return 1===t.length&&(e=t,t=function(t,n){return r(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var a=r+i>>>1;t(e[a],n)<0?r=a+1:i=a}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var a=r+i>>>1;t(e[a],n)>0?i=a:r=a+1}return r}}};var a=i(r),o=a.right,s=a.left,u=o,c=function(t,e){null==e&&(e=f);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return a};function f(t,e){return[t,e]}var l=function(t,e,n){var r,i,a,o,s=t.length,u=e.length,c=new Array(s*u);for(null==n&&(n=f),r=a=0;r<s;++r)for(o=t[r],i=0;i<u;++i,++a)c[a]=n(o,e[i]);return c},h=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},d=function(t){return null===t?NaN:+t},p=function(t,e){var n,r,i=t.length,a=0,o=-1,s=0,u=0;if(null==e)for(;++o<i;)isNaN(n=d(t[o]))||(u+=(r=n-s)*(n-(s+=r/++a)));else for(;++o<i;)isNaN(n=d(e(t[o],o,t)))||(u+=(r=n-s)*(n-(s+=r/++a)));if(a>1)return u/(a-1)},g=function(t,e){var n=p(t,e);return n?Math.sqrt(n):n},y=function(t,e){var n,r,i,a=t.length,o=-1;if(null==e){for(;++o<a;)if(null!=(n=t[o])&&n>=n)for(r=i=n;++o<a;)null!=(n=t[o])&&(r>n&&(r=n),i<n&&(i=n))}else for(;++o<a;)if(null!=(n=e(t[o],o,t))&&n>=n)for(r=i=n;++o<a;)null!=(n=e(t[o],o,t))&&(r>n&&(r=n),i<n&&(i=n));return[r,i]},b=Array.prototype,m=b.slice,v=b.map,_=function(t){return function(){return t}},w=function(t){return t},x=function(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),a=new Array(i);++r<i;)a[r]=t+r*n;return a},k=Math.sqrt(50),E=Math.sqrt(10),A=Math.sqrt(2),S=function(t,e,n){var r,i,a,o,s=-1;if(n=+n,(t=+t)===(e=+e)&&n>0)return[t];if((r=e<t)&&(i=t,t=e,e=i),0===(o=M(t,e,n))||!isFinite(o))return[];if(o>0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s<i;)a[s]=(t+s)*o;else for(t=Math.floor(t*o),e=Math.ceil(e*o),a=new Array(i=Math.ceil(t-e+1));++s<i;)a[s]=(t-s)/o;return r&&a.reverse(),a};function M(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=k?10:a>=E?5:a>=A?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=k?10:a>=E?5:a>=A?2:1)}function T(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=k?i*=10:a>=E?i*=5:a>=A&&(i*=2),e<t?-i:i}var D=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1},C=function(){var t=w,e=y,n=D;function r(r){var i,a,o=r.length,s=new Array(o);for(i=0;i<o;++i)s[i]=t(r[i],i,r);var c=e(s),f=c[0],l=c[1],h=n(s,f,l);Array.isArray(h)||(h=T(f,l,h),h=x(Math.ceil(f/h)*h,l,h));for(var d=h.length;h[0]<=f;)h.shift(),--d;for(;h[d-1]>l;)h.pop(),--d;var p,g=new Array(d+1);for(i=0;i<=d;++i)(p=g[i]=[]).x0=i>0?h[i-1]:f,p.x1=i<d?h[i]:l;for(i=0;i<o;++i)f<=(a=s[i])&&a<=l&&g[u(h,a,0,d)].push(r[i]);return g}return r.value=function(e){return arguments.length?(t="function"==typeof e?e:_(e),r):t},r.domain=function(t){return arguments.length?(e="function"==typeof t?t:_([t[0],t[1]]),r):e},r.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?_(m.call(t)):_(t),r):n},r},O=function(t,e,n){if(null==n&&(n=d),r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),o=+n(t[a],a,t);return o+(+n(t[a+1],a+1,t)-o)*(i-a)}},R=function(t,e,n){return t=v.call(t,d).sort(r),Math.ceil((n-e)/(2*(O(t,.75)-O(t,.25))*Math.pow(t.length,-1/3)))},N=function(t,e,n){return Math.ceil((n-e)/(3.5*g(t)*Math.pow(t.length,-1/3)))},I=function(t,e){var n,r,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(n=t[a])&&n>=n)for(r=n;++a<i;)null!=(n=t[a])&&n>r&&(r=n)}else for(;++a<i;)if(null!=(n=e(t[a],a,t))&&n>=n)for(r=n;++a<i;)null!=(n=e(t[a],a,t))&&n>r&&(r=n);return r},B=function(t,e){var n,r=t.length,i=r,a=-1,o=0;if(null==e)for(;++a<r;)isNaN(n=d(t[a]))?--i:o+=n;else for(;++a<r;)isNaN(n=d(e(t[a],a,t)))?--i:o+=n;if(i)return o/i},L=function(t,e){var n,i=t.length,a=-1,o=[];if(null==e)for(;++a<i;)isNaN(n=d(t[a]))||o.push(n);else for(;++a<i;)isNaN(n=d(e(t[a],a,t)))||o.push(n);return O(o.sort(r),.5)},P=function(t){for(var e,n,r,i=t.length,a=-1,o=0;++a<i;)o+=t[a].length;for(n=new Array(o);--i>=0;)for(e=(r=t[i]).length;--e>=0;)n[--o]=r[e];return n},F=function(t,e){var n,r,i=t.length,a=-1;if(null==e){for(;++a<i;)if(null!=(n=t[a])&&n>=n)for(r=n;++a<i;)null!=(n=t[a])&&r>n&&(r=n)}else for(;++a<i;)if(null!=(n=e(t[a],a,t))&&n>=n)for(r=n;++a<i;)null!=(n=e(t[a],a,t))&&r>n&&(r=n);return r},q=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r},j=function(t,e){if(n=t.length){var n,i,a=0,o=0,s=t[o];for(null==e&&(e=r);++a<n;)(e(i=t[a],s)<0||0!==e(s,s))&&(s=i,o=a);return 0===e(s,s)?o:void 0}},U=function(t,e,n){for(var r,i,a=(null==n?t.length:n)-(e=null==e?0:+e);a;)i=Math.random()*a--|0,r=t[a+e],t[a+e]=t[i+e],t[i+e]=r;return t},z=function(t,e){var n,r=t.length,i=-1,a=0;if(null==e)for(;++i<r;)(n=+t[i])&&(a+=n);else for(;++i<r;)(n=+e(t[i],i,t))&&(a+=n);return a},Y=function(t){if(!(i=t.length))return[];for(var e=-1,n=F(t,H),r=new Array(n);++e<n;)for(var i,a=-1,o=r[e]=new Array(i);++a<i;)o[a]=t[a][e];return r};function H(t){return t.length}var V=function(){return Y(arguments)},$=Array.prototype.slice,G=function(t){return t},W=1,K=2,X=3,Z=4,J=1e-6;function Q(t){return"translate("+(t+.5)+",0)"}function tt(t){return"translate(0,"+(t+.5)+")"}function et(t){return function(e){return+t(e)}}function nt(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function rt(){return!this.__axis}function it(t,e){var n=[],r=null,i=null,a=6,o=6,s=3,u=t===W||t===Z?-1:1,c=t===Z||t===K?"x":"y",f=t===W||t===X?Q:tt;function l(l){var h=null==r?e.ticks?e.ticks.apply(e,n):e.domain():r,d=null==i?e.tickFormat?e.tickFormat.apply(e,n):G:i,p=Math.max(a,0)+s,g=e.range(),y=+g[0]+.5,b=+g[g.length-1]+.5,m=(e.bandwidth?nt:et)(e.copy()),v=l.selection?l.selection():l,_=v.selectAll(".domain").data([null]),w=v.selectAll(".tick").data(h,e).order(),x=w.exit(),k=w.enter().append("g").attr("class","tick"),E=w.select("line"),A=w.select("text");_=_.merge(_.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(k),E=E.merge(k.append("line").attr("stroke","currentColor").attr(c+"2",u*a)),A=A.merge(k.append("text").attr("fill","currentColor").attr(c,u*p).attr("dy",t===W?"0em":t===X?"0.71em":"0.32em")),l!==v&&(_=_.transition(l),w=w.transition(l),E=E.transition(l),A=A.transition(l),x=x.transition(l).attr("opacity",J).attr("transform",(function(t){return isFinite(t=m(t))?f(t):this.getAttribute("transform")})),k.attr("opacity",J).attr("transform",(function(t){var e=this.parentNode.__axis;return f(e&&isFinite(e=e(t))?e:m(t))}))),x.remove(),_.attr("d",t===Z||t==K?o?"M"+u*o+","+y+"H0.5V"+b+"H"+u*o:"M0.5,"+y+"V"+b:o?"M"+y+","+u*o+"V0.5H"+b+"V"+u*o:"M"+y+",0.5H"+b),w.attr("opacity",1).attr("transform",(function(t){return f(m(t))})),E.attr(c+"2",u*a),A.attr(c,u*p).text(d),v.filter(rt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===K?"start":t===Z?"end":"middle"),v.each((function(){this.__axis=m}))}return l.scale=function(t){return arguments.length?(e=t,l):e},l.ticks=function(){return n=$.call(arguments),l},l.tickArguments=function(t){return arguments.length?(n=null==t?[]:$.call(t),l):n.slice()},l.tickValues=function(t){return arguments.length?(r=null==t?null:$.call(t),l):r&&r.slice()},l.tickFormat=function(t){return arguments.length?(i=t,l):i},l.tickSize=function(t){return arguments.length?(a=o=+t,l):a},l.tickSizeInner=function(t){return arguments.length?(a=+t,l):a},l.tickSizeOuter=function(t){return arguments.length?(o=+t,l):o},l.tickPadding=function(t){return arguments.length?(s=+t,l):s},l}function at(t){return it(W,t)}function ot(t){return it(K,t)}function st(t){return it(X,t)}function ut(t){return it(Z,t)}var ct={value:function(){}};function ft(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new lt(r)}function lt(t){this._=t}function ht(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",r=t.indexOf(".");if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function dt(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}function pt(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=ct,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}lt.prototype=ft.prototype={constructor:lt,on:function(t,e){var n,r=this._,i=ht(t+"",r),a=-1,o=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<o;)if(n=(t=i[a]).type)r[n]=pt(r[n],t.name,e);else if(null==e)for(n in r)r[n]=pt(r[n],t.name,null);return this}for(;++a<o;)if((n=(t=i[a]).type)&&(n=dt(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new lt(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),a=0;a<n;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=0,n=(r=this._[t]).length;a<n;++a)r[a].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(e,n)}};var gt=ft,yt="http://www.w3.org/1999/xhtml",bt={svg:"http://www.w3.org/2000/svg",xhtml:yt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},mt=function(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),bt.hasOwnProperty(e)?{space:bt[e],local:t}:t};function vt(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===yt&&e.documentElement.namespaceURI===yt?e.createElement(t):e.createElementNS(n,t)}}function _t(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}var wt=function(t){var e=mt(t);return(e.local?_t:vt)(e)};function xt(){}var kt=function(t){return null==t?xt:function(){return this.querySelector(t)}};function Et(){return[]}var At=function(t){return null==t?Et:function(){return this.querySelectorAll(t)}},St=function(t){return function(){return this.matches(t)}},Mt=function(t){return new Array(t.length)};function Tt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}Tt.prototype={constructor:Tt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var Dt="$";function Ct(t,e,n,r,i,a){for(var o,s=0,u=e.length,c=a.length;s<c;++s)(o=e[s])?(o.__data__=a[s],r[s]=o):n[s]=new Tt(t,a[s]);for(;s<u;++s)(o=e[s])&&(i[s]=o)}function Ot(t,e,n,r,i,a,o){var s,u,c,f={},l=e.length,h=a.length,d=new Array(l);for(s=0;s<l;++s)(u=e[s])&&(d[s]=c=Dt+o.call(u,u.__data__,s,e),c in f?i[s]=u:f[c]=u);for(s=0;s<h;++s)(u=f[c=Dt+o.call(t,a[s],s,a)])?(r[s]=u,u.__data__=a[s],f[c]=null):n[s]=new Tt(t,a[s]);for(s=0;s<l;++s)(u=e[s])&&f[d[s]]===u&&(i[s]=u)}function Rt(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Nt(t){return function(){this.removeAttribute(t)}}function It(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Bt(t,e){return function(){this.setAttribute(t,e)}}function Lt(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Pt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function Ft(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}var qt=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView};function jt(t){return function(){this.style.removeProperty(t)}}function Ut(t,e,n){return function(){this.style.setProperty(t,e,n)}}function zt(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Yt(t,e){return t.style.getPropertyValue(e)||qt(t).getComputedStyle(t,null).getPropertyValue(e)}function Ht(t){return function(){delete this[t]}}function Vt(t,e){return function(){this[t]=e}}function $t(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function Gt(t){return t.trim().split(/^|\s+/)}function Wt(t){return t.classList||new Kt(t)}function Kt(t){this._node=t,this._names=Gt(t.getAttribute("class")||"")}function Xt(t,e){for(var n=Wt(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function Zt(t,e){for(var n=Wt(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Jt(t){return function(){Xt(this,t)}}function Qt(t){return function(){Zt(this,t)}}function te(t,e){return function(){(e.apply(this,arguments)?Xt:Zt)(this,t)}}Kt.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function ee(){this.textContent=""}function ne(t){return function(){this.textContent=t}}function re(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function ie(){this.innerHTML=""}function ae(t){return function(){this.innerHTML=t}}function oe(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function se(){this.nextSibling&&this.parentNode.appendChild(this)}function ue(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ce(){return null}function fe(){var t=this.parentNode;t&&t.removeChild(this)}function le(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function he(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}var de={},pe=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(de={mouseenter:"mouseover",mouseleave:"mouseout"}));function ge(t,e,n){return t=ye(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function ye(t,e,n){return function(r){var i=pe;pe=r;try{t.call(this,this.__data__,e,n)}finally{pe=i}}}function be(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function me(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,a=e.length;r<a;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++i]=n:this.removeEventListener(n.type,n.listener,n.capture);++i?e.length=i:delete this.__on}}}function ve(t,e,n){var r=de.hasOwnProperty(t.type)?ge:ye;return function(i,a,o){var s,u=this.__on,c=r(e,a,o);if(u)for(var f=0,l=u.length;f<l;++f)if((s=u[f]).type===t.type&&s.name===t.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=e);this.addEventListener(t.type,c,n),s={type:t.type,name:t.name,value:e,listener:c,capture:n},u?u.push(s):this.__on=[s]}}function _e(t,e,n,r){var i=pe;t.sourceEvent=pe,pe=t;try{return e.apply(n,r)}finally{pe=i}}function we(t,e,n){var r=qt(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function xe(t,e){return function(){return we(this,t,e)}}function ke(t,e){return function(){return we(this,t,e.apply(this,arguments))}}var Ee=[null];function Ae(t,e){this._groups=t,this._parents=e}function Se(){return new Ae([[document.documentElement]],Ee)}Ae.prototype=Se.prototype={constructor:Ae,select:function(t){"function"!=typeof t&&(t=kt(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a,o,s=e[i],u=s.length,c=r[i]=new Array(u),f=0;f<u;++f)(a=s[f])&&(o=t.call(a,a.__data__,f,s))&&("__data__"in a&&(o.__data__=a.__data__),c[f]=o);return new Ae(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=At(t));for(var e=this._groups,n=e.length,r=[],i=[],a=0;a<n;++a)for(var o,s=e[a],u=s.length,c=0;c<u;++c)(o=s[c])&&(r.push(t.call(o,o.__data__,c,s)),i.push(o));return new Ae(r,i)},filter:function(t){"function"!=typeof t&&(t=St(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a,o=e[i],s=o.length,u=r[i]=[],c=0;c<s;++c)(a=o[c])&&t.call(a,a.__data__,c,o)&&u.push(a);return new Ae(r,this._parents)},data:function(t,e){if(!t)return p=new Array(this.size()),f=-1,this.each((function(t){p[++f]=t})),p;var n,r=e?Ot:Ct,i=this._parents,a=this._groups;"function"!=typeof t&&(n=t,t=function(){return n});for(var o=a.length,s=new Array(o),u=new Array(o),c=new Array(o),f=0;f<o;++f){var l=i[f],h=a[f],d=h.length,p=t.call(l,l&&l.__data__,f,i),g=p.length,y=u[f]=new Array(g),b=s[f]=new Array(g);r(l,h,y,b,c[f]=new Array(d),p,e);for(var m,v,_=0,w=0;_<g;++_)if(m=y[_]){for(_>=w&&(w=_+1);!(v=b[w])&&++w<g;);m._next=v||null}}return(s=new Ae(s,i))._enter=u,s._exit=c,s},enter:function(){return new Ae(this._enter||this._groups.map(Mt),this._parents)},exit:function(){return new Ae(this._exit||this._groups.map(Mt),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,a=this.exit();return r="function"==typeof t?t(r):r.append(t+""),null!=e&&(i=e(i)),null==n?a.remove():n(a),r&&i?r.merge(i).order():i},merge:function(t){for(var e=this._groups,n=t._groups,r=e.length,i=n.length,a=Math.min(r,i),o=new Array(r),s=0;s<a;++s)for(var u,c=e[s],f=n[s],l=c.length,h=o[s]=new Array(l),d=0;d<l;++d)(u=c[d]||f[d])&&(h[d]=u);for(;s<r;++s)o[s]=e[s];return new Ae(o,this._parents)},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],a=i.length-1,o=i[a];--a>=0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=Rt);for(var n=this._groups,r=n.length,i=new Array(r),a=0;a<r;++a){for(var o,s=n[a],u=s.length,c=i[a]=new Array(u),f=0;f<u;++f)(o=s[f])&&(c[f]=o);c.sort(e)}return new Ae(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null},size:function(){var t=0;return this.each((function(){++t})),t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,a=e[n],o=0,s=a.length;o<s;++o)(i=a[o])&&t.call(i,i.__data__,o,a);return this},attr:function(t,e){var n=mt(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?It:Nt:"function"==typeof e?n.local?Ft:Pt:n.local?Lt:Bt)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?jt:"function"==typeof e?zt:Ut)(t,e,null==n?"":n)):Yt(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Ht:"function"==typeof e?$t:Vt)(t,e)):this.node()[t]},classed:function(t,e){var n=Gt(t+"");if(arguments.length<2){for(var r=Wt(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?te:e?Jt:Qt)(n,e))},text:function(t){return arguments.length?this.each(null==t?ee:("function"==typeof t?re:ne)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?ie:("function"==typeof t?oe:ae)(t)):this.node().innerHTML},raise:function(){return this.each(se)},lower:function(){return this.each(ue)},append:function(t){var e="function"==typeof t?t:wt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:wt(t),r=null==e?ce:"function"==typeof e?e:kt(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(fe)},clone:function(t){return this.select(t?he:le)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,a=be(t+""),o=a.length;if(!(arguments.length<2)){for(s=e?ve:me,null==n&&(n=!1),r=0;r<o;++r)this.each(s(a[r],e,n));return this}var s=this.node().__on;if(s)for(var u,c=0,f=s.length;c<f;++c)for(r=0,u=s[c];r<o;++r)if((i=a[r]).type===u.type&&i.name===u.name)return u.value},dispatch:function(t,e){return this.each(("function"==typeof e?ke:xe)(t,e))}};var Me=Se,Te=function(t){return"string"==typeof t?new Ae([[document.querySelector(t)]],[document.documentElement]):new Ae([[t]],Ee)},De=function(t){return Te(wt(t).call(document.documentElement))},Ce=0;function Oe(){return new Re}function Re(){this._="@"+(++Ce).toString(36)}Re.prototype=Oe.prototype={constructor:Re,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var Ne=function(){for(var t,e=pe;t=e.sourceEvent;)e=t;return e},Ie=function(t,e){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]},Be=function(t){var e=Ne();return e.changedTouches&&(e=e.changedTouches[0]),Ie(t,e)},Le=function(t){return"string"==typeof t?new Ae([document.querySelectorAll(t)],[document.documentElement]):new Ae([null==t?[]:t],Ee)},Pe=function(t,e,n){arguments.length<3&&(n=e,e=Ne().changedTouches);for(var r,i=0,a=e?e.length:0;i<a;++i)if((r=e[i]).identifier===n)return Ie(t,r);return null},Fe=function(t,e){null==e&&(e=Ne().touches);for(var n=0,r=e?e.length:0,i=new Array(r);n<r;++n)i[n]=Ie(t,e[n]);return i};function qe(){pe.stopImmediatePropagation()}var je=function(){pe.preventDefault(),pe.stopImmediatePropagation()},Ue=function(t){var e=t.document.documentElement,n=Te(t).on("dragstart.drag",je,!0);"onselectstart"in e?n.on("selectstart.drag",je,!0):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")};function ze(t,e){var n=t.document.documentElement,r=Te(t).on("dragstart.drag",null);e&&(r.on("click.drag",je,!0),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Ye=function(t){return function(){return t}};function He(t,e,n,r,i,a,o,s,u,c){this.target=t,this.type=e,this.subject=n,this.identifier=r,this.active=i,this.x=a,this.y=o,this.dx=s,this.dy=u,this._=c}function Ve(){return!pe.ctrlKey&&!pe.button}function $e(){return this.parentNode}function Ge(t){return null==t?{x:pe.x,y:pe.y}:t}function We(){return navigator.maxTouchPoints||"ontouchstart"in this}He.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Ke=function(){var t,e,n,r,i=Ve,a=$e,o=Ge,s=We,u={},c=gt("start","drag","end"),f=0,l=0;function h(t){t.on("mousedown.drag",d).filter(s).on("touchstart.drag",y).on("touchmove.drag",b).on("touchend.drag touchcancel.drag",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(){if(!r&&i.apply(this,arguments)){var o=v("mouse",a.apply(this,arguments),Be,this,arguments);o&&(Te(pe.view).on("mousemove.drag",p,!0).on("mouseup.drag",g,!0),Ue(pe.view),qe(),n=!1,t=pe.clientX,e=pe.clientY,o("start"))}}function p(){if(je(),!n){var r=pe.clientX-t,i=pe.clientY-e;n=r*r+i*i>l}u.mouse("drag")}function g(){Te(pe.view).on("mousemove.drag mouseup.drag",null),ze(pe.view,n),je(),u.mouse("end")}function y(){if(i.apply(this,arguments)){var t,e,n=pe.changedTouches,r=a.apply(this,arguments),o=n.length;for(t=0;t<o;++t)(e=v(n[t].identifier,r,Pe,this,arguments))&&(qe(),e("start"))}}function b(){var t,e,n=pe.changedTouches,r=n.length;for(t=0;t<r;++t)(e=u[n[t].identifier])&&(je(),e("drag"))}function m(){var t,e,n=pe.changedTouches,i=n.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<i;++t)(e=u[n[t].identifier])&&(qe(),e("end"))}function v(t,e,n,r,i){var a,s,l,d=n(e,t),p=c.copy();if(_e(new He(h,"beforestart",a,t,f,d[0],d[1],0,0,p),(function(){return null!=(pe.subject=a=o.apply(r,i))&&(s=a.x-d[0]||0,l=a.y-d[1]||0,!0)})))return function o(c){var g,y=d;switch(c){case"start":u[t]=o,g=f++;break;case"end":delete u[t],--f;case"drag":d=n(e,t),g=f}_e(new He(h,c,a,t,g,d[0]+s,d[1]+l,d[0]-y[0],d[1]-y[1],p),p.apply,p,[c,r,i])}}return h.filter=function(t){return arguments.length?(i="function"==typeof t?t:Ye(!!t),h):i},h.container=function(t){return arguments.length?(a="function"==typeof t?t:Ye(t),h):a},h.subject=function(t){return arguments.length?(o="function"==typeof t?t:Ye(t),h):o},h.touchable=function(t){return arguments.length?(s="function"==typeof t?t:Ye(!!t),h):s},h.on=function(){var t=c.on.apply(c,arguments);return t===c?h:t},h.clickDistance=function(t){return arguments.length?(l=(t=+t)*t,h):Math.sqrt(l)},h},Xe=function(t,e,n){t.prototype=e.prototype=n,n.constructor=t};function Ze(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Je(){}var Qe="\\s*([+-]?\\d+)\\s*",tn="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",en="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",nn=/^#([0-9a-f]{3,8})$/,rn=new RegExp("^rgb\\("+[Qe,Qe,Qe]+"\\)$"),an=new RegExp("^rgb\\("+[en,en,en]+"\\)$"),on=new RegExp("^rgba\\("+[Qe,Qe,Qe,tn]+"\\)$"),sn=new RegExp("^rgba\\("+[en,en,en,tn]+"\\)$"),un=new RegExp("^hsl\\("+[tn,en,en]+"\\)$"),cn=new RegExp("^hsla\\("+[tn,en,en,tn]+"\\)$"),fn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function ln(){return this.rgb().formatHex()}function hn(){return this.rgb().formatRgb()}function dn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=nn.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?pn(e):3===n?new mn(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?new mn(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?new mn(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=rn.exec(t))?new mn(e[1],e[2],e[3],1):(e=an.exec(t))?new mn(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=on.exec(t))?gn(e[1],e[2],e[3],e[4]):(e=sn.exec(t))?gn(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=un.exec(t))?xn(e[1],e[2]/100,e[3]/100,1):(e=cn.exec(t))?xn(e[1],e[2]/100,e[3]/100,e[4]):fn.hasOwnProperty(t)?pn(fn[t]):"transparent"===t?new mn(NaN,NaN,NaN,0):null}function pn(t){return new mn(t>>16&255,t>>8&255,255&t,1)}function gn(t,e,n,r){return r<=0&&(t=e=n=NaN),new mn(t,e,n,r)}function yn(t){return t instanceof Je||(t=dn(t)),t?new mn((t=t.rgb()).r,t.g,t.b,t.opacity):new mn}function bn(t,e,n,r){return 1===arguments.length?yn(t):new mn(t,e,n,null==r?1:r)}function mn(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function vn(){return"#"+wn(this.r)+wn(this.g)+wn(this.b)}function _n(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function wn(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function xn(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new An(t,e,n,r)}function kn(t){if(t instanceof An)return new An(t.h,t.s,t.l,t.opacity);if(t instanceof Je||(t=dn(t)),!t)return new An;if(t instanceof An)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,s=a-i,u=(a+i)/2;return s?(o=e===a?(n-r)/s+6*(n<r):n===a?(r-e)/s+2:(e-n)/s+4,s/=u<.5?a+i:2-a-i,o*=60):s=u>0&&u<1?0:o,new An(o,s,u,t.opacity)}function En(t,e,n,r){return 1===arguments.length?kn(t):new An(t,e,n,null==r?1:r)}function An(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Sn(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Mn(t,e,n,r,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*n+(1+3*t+3*a-3*o)*r+o*i)/6}Xe(Je,dn,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:ln,formatHex:ln,formatHsl:function(){return kn(this).formatHsl()},formatRgb:hn,toString:hn}),Xe(mn,bn,Ze(Je,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new mn(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new mn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vn,formatHex:vn,formatRgb:_n,toString:_n})),Xe(An,En,Ze(Je,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new An(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new An(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new mn(Sn(t>=240?t-240:t+120,i,r),Sn(t,i,r),Sn(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var Tn=function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],o=r>0?t[r-1]:2*i-a,s=r<e-1?t[r+2]:2*a-i;return Mn((n-r/e)*e,o,i,a,s)}},Dn=function(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],a=t[r%e],o=t[(r+1)%e],s=t[(r+2)%e];return Mn((n-r/e)*e,i,a,o,s)}},Cn=function(t){return function(){return t}};function On(t,e){return function(n){return t+n*e}}function Rn(t,e){var n=e-t;return n?On(t,n>180||n<-180?n-360*Math.round(n/360):n):Cn(isNaN(t)?e:t)}function Nn(t){return 1==(t=+t)?In:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):Cn(isNaN(e)?n:e)}}function In(t,e){var n=e-t;return n?On(t,n):Cn(isNaN(t)?e:t)}var Bn=function t(e){var n=Nn(e);function r(t,e){var r=n((t=bn(t)).r,(e=bn(e)).r),i=n(t.g,e.g),a=n(t.b,e.b),o=In(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return r.gamma=t,r}(1);function Ln(t){return function(e){var n,r,i=e.length,a=new Array(i),o=new Array(i),s=new Array(i);for(n=0;n<i;++n)r=bn(e[n]),a[n]=r.r||0,o[n]=r.g||0,s[n]=r.b||0;return a=t(a),o=t(o),s=t(s),r.opacity=1,function(t){return r.r=a(t),r.g=o(t),r.b=s(t),r+""}}}var Pn=Ln(Tn),Fn=Ln(Dn),qn=function(t,e){var n,r=e?e.length:0,i=t?Math.min(r,t.length):0,a=new Array(i),o=new Array(r);for(n=0;n<i;++n)a[n]=Xn(t[n],e[n]);for(;n<r;++n)o[n]=e[n];return function(t){for(n=0;n<i;++n)o[n]=a[n](t);return o}},jn=function(t,e){var n=new Date;return e-=t=+t,function(r){return n.setTime(t+e*r),n}},Un=function(t,e){return e-=t=+t,function(n){return t+e*n}},zn=function(t,e){var n,r={},i={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?r[n]=Xn(t[n],e[n]):i[n]=e[n];return function(t){for(n in r)i[n]=r[n](t);return i}},Yn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hn=new RegExp(Yn.source,"g");var Vn,$n,Gn,Wn,Kn=function(t,e){var n,r,i,a=Yn.lastIndex=Hn.lastIndex=0,o=-1,s=[],u=[];for(t+="",e+="";(n=Yn.exec(t))&&(r=Hn.exec(e));)(i=r.index)>a&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,u.push({i:o,x:Un(n,r)})),a=Hn.lastIndex;return a<e.length&&(i=e.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?u[0]?function(t){return function(e){return t(e)+""}}(u[0].x):function(t){return function(){return t}}(e):(e=u.length,function(t){for(var n,r=0;r<e;++r)s[(n=u[r]).i]=n.x(t);return s.join("")})},Xn=function(t,e){var n,r=typeof e;return null==e||"boolean"===r?Cn(e):("number"===r?Un:"string"===r?(n=dn(e))?(e=n,Bn):Kn:e instanceof dn?Bn:e instanceof Date?jn:Array.isArray(e)?qn:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?zn:Un)(t,e)},Zn=function(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}},Jn=function(t,e){var n=Rn(+t,+e);return function(t){var e=n(t);return e-360*Math.floor(e/360)}},Qn=function(t,e){return e-=t=+t,function(n){return Math.round(t+e*n)}},tr=180/Math.PI,er={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},nr=function(t,e,n,r,i,a){var o,s,u;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(u=t*n+e*r)&&(n-=t*u,r-=e*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),t*r<e*n&&(t=-t,e=-e,u=-u,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*tr,skewX:Math.atan(u)*tr,scaleX:o,scaleY:s}};function rr(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(a,o){var s=[],u=[];return a=t(a),o=t(o),function(t,r,i,a,o,s){if(t!==i||r!==a){var u=o.push("translate(",null,e,null,n);s.push({i:u-4,x:Un(t,i)},{i:u-2,x:Un(r,a)})}else(i||a)&&o.push("translate("+i+e+a+n)}(a.translateX,a.translateY,o.translateX,o.translateY,s,u),function(t,e,n,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:Un(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}(a.rotate,o.rotate,s,u),function(t,e,n,a){t!==e?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:Un(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}(a.skewX,o.skewX,s,u),function(t,e,n,r,a,o){if(t!==n||e!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:Un(t,n)},{i:s-2,x:Un(e,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,u),a=o=null,function(t){for(var e,n=-1,r=u.length;++n<r;)s[(e=u[n]).i]=e.x(t);return s.join("")}}}var ir=rr((function(t){return"none"===t?er:(Vn||(Vn=document.createElement("DIV"),$n=document.documentElement,Gn=document.defaultView),Vn.style.transform=t,t=Gn.getComputedStyle($n.appendChild(Vn),null).getPropertyValue("transform"),$n.removeChild(Vn),t=t.slice(7,-1).split(","),nr(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),ar=rr((function(t){return null==t?er:(Wn||(Wn=document.createElementNS("http://www.w3.org/2000/svg","g")),Wn.setAttribute("transform",t),(t=Wn.transform.baseVal.consolidate())?(t=t.matrix,nr(t.a,t.b,t.c,t.d,t.e,t.f)):er)}),", ",")",")"),or=Math.SQRT2;function sr(t){return((t=Math.exp(t))+1/t)/2}var ur=function(t,e){var n,r,i=t[0],a=t[1],o=t[2],s=e[0],u=e[1],c=e[2],f=s-i,l=u-a,h=f*f+l*l;if(h<1e-12)r=Math.log(c/o)/or,n=function(t){return[i+t*f,a+t*l,o*Math.exp(or*t*r)]};else{var d=Math.sqrt(h),p=(c*c-o*o+4*h)/(2*o*2*d),g=(c*c-o*o-4*h)/(2*c*2*d),y=Math.log(Math.sqrt(p*p+1)-p),b=Math.log(Math.sqrt(g*g+1)-g);r=(b-y)/or,n=function(t){var e,n=t*r,s=sr(y),u=o/(2*d)*(s*(e=or*n+y,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(y));return[i+u*f,a+u*l,o*s/sr(or*n+y)]}}return n.duration=1e3*r,n};function cr(t){return function(e,n){var r=t((e=En(e)).h,(n=En(n)).h),i=In(e.s,n.s),a=In(e.l,n.l),o=In(e.opacity,n.opacity);return function(t){return e.h=r(t),e.s=i(t),e.l=a(t),e.opacity=o(t),e+""}}}var fr=cr(Rn),lr=cr(In),hr=Math.PI/180,dr=180/Math.PI,pr=.96422,gr=1,yr=.82521,br=4/29,mr=6/29,vr=3*mr*mr,_r=mr*mr*mr;function wr(t){if(t instanceof Er)return new Er(t.l,t.a,t.b,t.opacity);if(t instanceof Rr)return Nr(t);t instanceof mn||(t=yn(t));var e,n,r=Tr(t.r),i=Tr(t.g),a=Tr(t.b),o=Ar((.2225045*r+.7168786*i+.0606169*a)/gr);return r===i&&i===a?e=n=o:(e=Ar((.4360747*r+.3850649*i+.1430804*a)/pr),n=Ar((.0139322*r+.0971045*i+.7141733*a)/yr)),new Er(116*o-16,500*(e-o),200*(o-n),t.opacity)}function xr(t,e){return new Er(t,0,0,null==e?1:e)}function kr(t,e,n,r){return 1===arguments.length?wr(t):new Er(t,e,n,null==r?1:r)}function Er(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function Ar(t){return t>_r?Math.pow(t,1/3):t/vr+br}function Sr(t){return t>mr?t*t*t:vr*(t-br)}function Mr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Tr(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Dr(t){if(t instanceof Rr)return new Rr(t.h,t.c,t.l,t.opacity);if(t instanceof Er||(t=wr(t)),0===t.a&&0===t.b)return new Rr(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*dr;return new Rr(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Cr(t,e,n,r){return 1===arguments.length?Dr(t):new Rr(n,e,t,null==r?1:r)}function Or(t,e,n,r){return 1===arguments.length?Dr(t):new Rr(t,e,n,null==r?1:r)}function Rr(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function Nr(t){if(isNaN(t.h))return new Er(t.l,0,0,t.opacity);var e=t.h*hr;return new Er(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function Ir(t,e){var n=In((t=kr(t)).l,(e=kr(e)).l),r=In(t.a,e.a),i=In(t.b,e.b),a=In(t.opacity,e.opacity);return function(e){return t.l=n(e),t.a=r(e),t.b=i(e),t.opacity=a(e),t+""}}function Br(t){return function(e,n){var r=t((e=Or(e)).h,(n=Or(n)).h),i=In(e.c,n.c),a=In(e.l,n.l),o=In(e.opacity,n.opacity);return function(t){return e.h=r(t),e.c=i(t),e.l=a(t),e.opacity=o(t),e+""}}}Xe(Er,kr,Ze(Je,{brighter:function(t){return new Er(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Er(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new mn(Mr(3.1338561*(e=pr*Sr(e))-1.6168667*(t=gr*Sr(t))-.4906146*(n=yr*Sr(n))),Mr(-.9787684*e+1.9161415*t+.033454*n),Mr(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),Xe(Rr,Or,Ze(Je,{brighter:function(t){return new Rr(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Rr(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Nr(this).rgb()}}));var Lr=Br(Rn),Pr=Br(In),Fr=-.29227,qr=-.90649,jr=1.97294,Ur=jr*qr,zr=1.78277*jr,Yr=1.78277*Fr- -.14861*qr;function Hr(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof Vr)return new Vr(t.h,t.s,t.l,t.opacity);t instanceof mn||(t=yn(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(Yr*r+Ur*e-zr*n)/(Yr+Ur-zr),a=r-i,o=(jr*(n-i)-Fr*a)/qr,s=Math.sqrt(o*o+a*a)/(jr*i*(1-i)),u=s?Math.atan2(o,a)*dr-120:NaN;return new Vr(u<0?u+360:u,s,i,t.opacity)}(t):new Vr(t,e,n,null==r?1:r)}function Vr(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function $r(t){return function e(n){function r(e,r){var i=t((e=Hr(e)).h,(r=Hr(r)).h),a=In(e.s,r.s),o=In(e.l,r.l),s=In(e.opacity,r.opacity);return function(t){return e.h=i(t),e.s=a(t),e.l=o(Math.pow(t,n)),e.opacity=s(t),e+""}}return n=+n,r.gamma=e,r}(1)}Xe(Vr,Hr,Ze(Je,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Vr(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Vr(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*hr,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new mn(255*(e+n*(-.14861*r+1.78277*i)),255*(e+n*(Fr*r+qr*i)),255*(e+n*(jr*r)),this.opacity)}}));var Gr=$r(Rn),Wr=$r(In);function Kr(t,e){for(var n=0,r=e.length-1,i=e[0],a=new Array(r<0?0:r);n<r;)a[n]=t(i,i=e[++n]);return function(t){var e=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return a[e](t-e)}}var Xr,Zr,Jr=function(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n},Qr=0,ti=0,ei=0,ni=1e3,ri=0,ii=0,ai=0,oi="object"==typeof performance&&performance.now?performance:Date,si="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ui(){return ii||(si(ci),ii=oi.now()+ai)}function ci(){ii=0}function fi(){this._call=this._time=this._next=null}function li(t,e,n){var r=new fi;return r.restart(t,e,n),r}function hi(){ui(),++Qr;for(var t,e=Xr;e;)(t=ii-e._time)>=0&&e._call.call(null,t),e=e._next;--Qr}function di(){ii=(ri=oi.now())+ai,Qr=ti=0;try{hi()}finally{Qr=0,function(){var t,e,n=Xr,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Xr=e);Zr=t,gi(r)}(),ii=0}}function pi(){var t=oi.now(),e=t-ri;e>ni&&(ai-=e,ri=t)}function gi(t){Qr||(ti&&(ti=clearTimeout(ti)),t-ii>24?(t<1/0&&(ti=setTimeout(di,t-oi.now()-ai)),ei&&(ei=clearInterval(ei))):(ei||(ri=oi.now(),ei=setInterval(pi,ni)),Qr=1,si(di)))}fi.prototype=li.prototype={constructor:fi,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?ui():+n)+(null==e?0:+e),this._next||Zr===this||(Zr?Zr._next=this:Xr=this,Zr=this),this._call=t,this._time=n,gi()},stop:function(){this._call&&(this._call=null,this._time=1/0,gi())}};var yi=function(t,e,n){var r=new fi;return e=null==e?0:+e,r.restart((function(n){r.stop(),t(n+e)}),e,n),r},bi=function(t,e,n){var r=new fi,i=e;return null==e?(r.restart(t,e,n),r):(e=+e,n=null==n?ui():+n,r.restart((function a(o){o+=i,r.restart(a,i+=e,n),t(o)}),e,n),r)},mi=gt("start","end","cancel","interrupt"),vi=[],_i=0,wi=1,xi=2,ki=3,Ei=4,Ai=5,Si=6,Mi=function(t,e,n,r,i,a){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function a(u){var c,f,l,h;if(n.state!==wi)return s();for(c in i)if((h=i[c]).name===n.name){if(h.state===ki)return yi(a);h.state===Ei?(h.state=Si,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[c]):+c<e&&(h.state=Si,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete i[c])}if(yi((function(){n.state===ki&&(n.state=Ei,n.timer.restart(o,n.delay,n.time),o(u))})),n.state=xi,n.on.call("start",t,t.__data__,n.index,n.group),n.state===xi){for(n.state=ki,r=new Array(l=n.tween.length),c=0,f=-1;c<l;++c)(h=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(r[++f]=h);r.length=f+1}}function o(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(s),n.state=Ai,1),a=-1,o=r.length;++a<o;)r[a].call(t,i);n.state===Ai&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){for(var r in n.state=Si,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=li((function(t){n.state=wi,n.timer.restart(a,n.delay,n.time),n.delay<=t&&a(t-n.delay)}),0,n.time)}(t,n,{name:e,index:r,group:i,on:mi,tween:vi,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:_i})};function Ti(t,e){var n=Ci(t,e);if(n.state>_i)throw new Error("too late; already scheduled");return n}function Di(t,e){var n=Ci(t,e);if(n.state>ki)throw new Error("too late; already running");return n}function Ci(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}var Oi=function(t,e){var n,r,i,a=t.__transition,o=!0;if(a){for(i in e=null==e?null:e+"",a)(n=a[i]).name===e?(r=n.state>xi&&n.state<Ai,n.state=Si,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete a[i]):o=!1;o&&delete t.__transition}};function Ri(t,e){var n,r;return function(){var i=Di(this,t),a=i.tween;if(a!==n)for(var o=0,s=(r=n=a).length;o<s;++o)if(r[o].name===e){(r=r.slice()).splice(o,1);break}i.tween=r}}function Ni(t,e,n){var r,i;if("function"!=typeof n)throw new Error;return function(){var a=Di(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:e,value:n},u=0,c=i.length;u<c;++u)if(i[u].name===e){i[u]=s;break}u===c&&i.push(s)}a.tween=i}}function Ii(t,e,n){var r=t._id;return t.each((function(){var t=Di(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Ci(t,r).value[e]}}var Bi=function(t,e){var n;return("number"==typeof e?Un:e instanceof dn?Bn:(n=dn(e))?(e=n,Bn):Kn)(t,e)};function Li(t){return function(){this.removeAttribute(t)}}function Pi(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Fi(t,e,n){var r,i,a=n+"";return function(){var o=this.getAttribute(t);return o===a?null:o===r?i:i=e(r=o,n)}}function qi(t,e,n){var r,i,a=n+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===a?null:o===r?i:i=e(r=o,n)}}function ji(t,e,n){var r,i,a;return function(){var o,s,u=n(this);if(null!=u)return(o=this.getAttribute(t))===(s=u+"")?null:o===r&&s===i?a:(i=s,a=e(r=o,u));this.removeAttribute(t)}}function Ui(t,e,n){var r,i,a;return function(){var o,s,u=n(this);if(null!=u)return(o=this.getAttributeNS(t.space,t.local))===(s=u+"")?null:o===r&&s===i?a:(i=s,a=e(r=o,u));this.removeAttributeNS(t.space,t.local)}}function zi(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(t,e){return function(n){this.setAttributeNS(t.space,t.local,e(n))}}(t,i)),n}return i._value=e,i}function Yi(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(t,e){return function(n){this.setAttribute(t,e(n))}}(t,i)),n}return i._value=e,i}function Hi(t,e){return function(){Ti(this,t).delay=+e.apply(this,arguments)}}function Vi(t,e){return e=+e,function(){Ti(this,t).delay=e}}function $i(t,e){return function(){Di(this,t).duration=+e.apply(this,arguments)}}function Gi(t,e){return e=+e,function(){Di(this,t).duration=e}}function Wi(t,e){if("function"!=typeof e)throw new Error;return function(){Di(this,t).ease=e}}function Ki(t,e,n){var r,i,a=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Ti:Di;return function(){var o=a(this,t),s=o.on;s!==r&&(i=(r=s).copy()).on(e,n),o.on=i}}var Xi=Me.prototype.constructor;function Zi(t){return function(){this.style.removeProperty(t)}}function Ji(t,e,n){var r,i;function a(){var a=e.apply(this,arguments);return a!==i&&(r=(i=a)&&function(t,e,n){return function(r){this.style.setProperty(t,e(r),n)}}(t,a,n)),r}return a._value=e,a}var Qi=0;function ta(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function ea(t){return Me().transition(t)}function na(){return++Qi}var ra=Me.prototype;function ia(t){return+t}function aa(t){return t*t}function oa(t){return t*(2-t)}function sa(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function ua(t){return t*t*t}function ca(t){return--t*t*t+1}function fa(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}ta.prototype=ea.prototype={constructor:ta,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=kt(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var s,u,c=r[o],f=c.length,l=a[o]=new Array(f),h=0;h<f;++h)(s=c[h])&&(u=t.call(s,s.__data__,h,c))&&("__data__"in s&&(u.__data__=s.__data__),l[h]=u,Mi(l[h],e,n,h,l,Ci(s,n)));return new ta(a,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=At(t));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var u,c=r[s],f=c.length,l=0;l<f;++l)if(u=c[l]){for(var h,d=t.call(u,u.__data__,l,c),p=Ci(u,n),g=0,y=d.length;g<y;++g)(h=d[g])&&Mi(h,e,n,g,d,p);a.push(d),o.push(u)}return new ta(a,o,e,n)},filter:function(t){"function"!=typeof t&&(t=St(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a,o=e[i],s=o.length,u=r[i]=[],c=0;c<s;++c)(a=o[c])&&t.call(a,a.__data__,c,o)&&u.push(a);return new ta(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,a=Math.min(r,i),o=new Array(r),s=0;s<a;++s)for(var u,c=e[s],f=n[s],l=c.length,h=o[s]=new Array(l),d=0;d<l;++d)(u=c[d]||f[d])&&(h[d]=u);for(;s<r;++s)o[s]=e[s];return new ta(o,this._parents,this._name,this._id)},selection:function(){return new Xi(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=na(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o,s=r[a],u=s.length,c=0;c<u;++c)if(o=s[c]){var f=Ci(o,e);Mi(o,t,n,c,s,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new ta(r,this._parents,t,n)},call:ra.call,nodes:ra.nodes,node:ra.node,size:ra.size,empty:ra.empty,each:ra.each,on:function(t,e){var n=this._id;return arguments.length<2?Ci(this.node(),n).on.on(t):this.each(Ki(n,t,e))},attr:function(t,e){var n=mt(t),r="transform"===n?ar:Bi;return this.attrTween(t,"function"==typeof e?(n.local?Ui:ji)(n,r,Ii(this,"attr."+t,e)):null==e?(n.local?Pi:Li)(n):(n.local?qi:Fi)(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var r=mt(t);return this.tween(n,(r.local?zi:Yi)(r,e))},style:function(t,e,n){var r="transform"==(t+="")?ir:Bi;return null==e?this.styleTween(t,function(t,e){var n,r,i;return function(){var a=Yt(this,t),o=(this.style.removeProperty(t),Yt(this,t));return a===o?null:a===n&&o===r?i:i=e(n=a,r=o)}}(t,r)).on("end.style."+t,Zi(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var r,i,a;return function(){var o=Yt(this,t),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(t),u=s=Yt(this,t)),o===u?null:o===r&&u===i?a:(i=u,a=e(r=o,s))}}(t,r,Ii(this,"style."+t,e))).each(function(t,e){var n,r,i,a,o="style."+e,s="end."+o;return function(){var u=Di(this,t),c=u.on,f=null==u.value[o]?a||(a=Zi(e)):void 0;c===n&&i===f||(r=(n=c).copy()).on(s,i=f),u.on=r}}(this._id,t)):this.styleTween(t,function(t,e,n){var r,i,a=n+"";return function(){var o=Yt(this,t);return o===a?null:o===r?i:i=e(r=o,n)}}(t,r,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,Ji(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(Ii(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}));var t},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=Ci(this.node(),n).tween,a=0,o=i.length;a<o;++a)if((r=i[a]).name===t)return r.value;return null}return this.each((null==e?Ri:Ni)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Hi:Vi)(e,t)):Ci(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?$i:Gi)(e,t)):Ci(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(Wi(e,t)):Ci(this.node(),e).ease},end:function(){var t,e,n=this,r=n._id,i=n.size();return new Promise((function(a,o){var s={value:o},u={value:function(){0==--i&&a()}};n.each((function(){var n=Di(this,r),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(u)),n.on=e}))}))}};var la=function t(e){function n(t){return Math.pow(t,e)}return e=+e,n.exponent=t,n}(3),ha=function t(e){function n(t){return 1-Math.pow(1-t,e)}return e=+e,n.exponent=t,n}(3),da=function t(e){function n(t){return((t*=2)<=1?Math.pow(t,e):2-Math.pow(2-t,e))/2}return e=+e,n.exponent=t,n}(3),pa=Math.PI,ga=pa/2;function ya(t){return 1-Math.cos(t*ga)}function ba(t){return Math.sin(t*ga)}function ma(t){return(1-Math.cos(pa*t))/2}function va(t){return Math.pow(2,10*t-10)}function _a(t){return 1-Math.pow(2,-10*t)}function wa(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function xa(t){return 1-Math.sqrt(1-t*t)}function ka(t){return Math.sqrt(1- --t*t)}function Ea(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var Aa=4/11,Sa=6/11,Ma=8/11,Ta=.75,Da=9/11,Ca=10/11,Oa=.9375,Ra=21/22,Na=63/64,Ia=1/Aa/Aa;function Ba(t){return 1-La(1-t)}function La(t){return(t=+t)<Aa?Ia*t*t:t<Ma?Ia*(t-=Sa)*t+Ta:t<Ca?Ia*(t-=Da)*t+Oa:Ia*(t-=Ra)*t+Na}function Pa(t){return((t*=2)<=1?1-La(1-t):La(t-1)+1)/2}var Fa=function t(e){function n(t){return t*t*((e+1)*t-e)}return e=+e,n.overshoot=t,n}(1.70158),qa=function t(e){function n(t){return--t*t*((e+1)*t+e)+1}return e=+e,n.overshoot=t,n}(1.70158),ja=function t(e){function n(t){return((t*=2)<1?t*t*((e+1)*t-e):(t-=2)*t*((e+1)*t+e)+2)/2}return e=+e,n.overshoot=t,n}(1.70158),Ua=2*Math.PI,za=function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=Ua);function i(t){return e*Math.pow(2,10*--t)*Math.sin((r-t)/n)}return i.amplitude=function(e){return t(e,n*Ua)},i.period=function(n){return t(e,n)},i}(1,.3),Ya=function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=Ua);function i(t){return 1-e*Math.pow(2,-10*(t=+t))*Math.sin((t+r)/n)}return i.amplitude=function(e){return t(e,n*Ua)},i.period=function(n){return t(e,n)},i}(1,.3),Ha=function t(e,n){var r=Math.asin(1/(e=Math.max(1,e)))*(n/=Ua);function i(t){return((t=2*t-1)<0?e*Math.pow(2,10*t)*Math.sin((r-t)/n):2-e*Math.pow(2,-10*t)*Math.sin((r+t)/n))/2}return i.amplitude=function(e){return t(e,n*Ua)},i.period=function(n){return t(e,n)},i}(1,.3),Va={time:null,delay:0,duration:250,ease:fa};function $a(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))return Va.time=ui(),Va;return n}Me.prototype.interrupt=function(t){return this.each((function(){Oi(this,t)}))},Me.prototype.transition=function(t){var e,n;t instanceof ta?(e=t._id,t=t._name):(e=na(),(n=Va).time=ui(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o,s=r[a],u=s.length,c=0;c<u;++c)(o=s[c])&&Mi(o,t,e,c,s,n||$a(o,e));return new ta(r,this._parents,t,e)};var Ga=[null],Wa=function(t,e){var n,r,i=t.__transition;if(i)for(r in e=null==e?null:e+"",i)if((n=i[r]).state>wi&&n.name===e)return new ta([[t]],Ga,e,+r);return null},Ka=function(t){return function(){return t}},Xa=function(t,e,n){this.target=t,this.type=e,this.selection=n};function Za(){pe.stopImmediatePropagation()}var Ja=function(){pe.preventDefault(),pe.stopImmediatePropagation()},Qa={name:"drag"},to={name:"space"},eo={name:"handle"},no={name:"center"};function ro(t){return[+t[0],+t[1]]}function io(t){return[ro(t[0]),ro(t[1])]}var ao={name:"x",handles:["w","e"].map(po),input:function(t,e){return null==t?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},oo={name:"y",handles:["n","s"].map(po),input:function(t,e){return null==t?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},so={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(po),input:function(t){return null==t?null:io(t)},output:function(t){return t}},uo={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},co={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},fo={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},lo={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},ho={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function po(t){return{type:t}}function go(){return!pe.ctrlKey&&!pe.button}function yo(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function bo(){return navigator.maxTouchPoints||"ontouchstart"in this}function mo(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function vo(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function _o(){return ko(ao)}function wo(){return ko(oo)}var xo=function(){return ko(so)};function ko(t){var e,n=yo,r=go,i=bo,a=!0,o=gt(u,"start","brush","end"),s=6;function u(e){var n=e.property("__brush",g).selectAll(".overlay").data([po("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",uo.overlay).merge(n).each((function(){var t=mo(this).extent;Te(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),e.selectAll(".selection").data([po("selection")]).enter().append("rect").attr("class","selection").attr("cursor",uo.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=e.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return uo[t.type]})),e.each(c).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",h).filter(i).on("touchstart.brush",h).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function c(){var t=Te(this),e=mo(this).selection;e?(t.selectAll(".selection").style("display",null).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?e[1][0]-s/2:e[0][0]-s/2})).attr("y",(function(t){return"s"===t.type[0]?e[1][1]-s/2:e[0][1]-s/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?e[1][0]-e[0][0]+s:s})).attr("height",(function(t){return"e"===t.type||"w"===t.type?e[1][1]-e[0][1]+s:s}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function f(t,e,n){return!n&&t.__brush.emitter||new l(t,e)}function l(t,e){this.that=t,this.args=e,this.state=t.__brush,this.active=0}function h(){if((!e||pe.touches)&&r.apply(this,arguments)){var n,i,o,s,u,l,h,d,p,g,y,b,m=this,v=pe.target.__data__.type,_="selection"===(a&&pe.metaKey?v="overlay":v)?Qa:a&&pe.altKey?no:eo,w=t===oo?null:lo[v],x=t===ao?null:ho[v],k=mo(m),E=k.extent,A=k.selection,S=E[0][0],M=E[0][1],T=E[1][0],D=E[1][1],C=0,O=0,R=w&&x&&a&&pe.shiftKey,N=pe.touches?(b=pe.changedTouches[0].identifier,function(t){return Pe(t,pe.touches,b)}):Be,I=N(m),B=I,L=f(m,arguments,!0).beforestart();"overlay"===v?(A&&(p=!0),k.selection=A=[[n=t===oo?S:I[0],o=t===ao?M:I[1]],[u=t===oo?T:n,h=t===ao?D:o]]):(n=A[0][0],o=A[0][1],u=A[1][0],h=A[1][1]),i=n,s=o,l=u,d=h;var P=Te(m).attr("pointer-events","none"),F=P.selectAll(".overlay").attr("cursor",uo[v]);if(pe.touches)L.moved=j,L.ended=z;else{var q=Te(pe.view).on("mousemove.brush",j,!0).on("mouseup.brush",z,!0);a&&q.on("keydown.brush",(function(){switch(pe.keyCode){case 16:R=w&&x;break;case 18:_===eo&&(w&&(u=l-C*w,n=i+C*w),x&&(h=d-O*x,o=s+O*x),_=no,U());break;case 32:_!==eo&&_!==no||(w<0?u=l-C:w>0&&(n=i-C),x<0?h=d-O:x>0&&(o=s-O),_=to,F.attr("cursor",uo.selection),U());break;default:return}Ja()}),!0).on("keyup.brush",(function(){switch(pe.keyCode){case 16:R&&(g=y=R=!1,U());break;case 18:_===no&&(w<0?u=l:w>0&&(n=i),x<0?h=d:x>0&&(o=s),_=eo,U());break;case 32:_===to&&(pe.altKey?(w&&(u=l-C*w,n=i+C*w),x&&(h=d-O*x,o=s+O*x),_=no):(w<0?u=l:w>0&&(n=i),x<0?h=d:x>0&&(o=s),_=eo),F.attr("cursor",uo[v]),U());break;default:return}Ja()}),!0),Ue(pe.view)}Za(),Oi(m),c.call(m),L.start()}function j(){var t=N(m);!R||g||y||(Math.abs(t[0]-B[0])>Math.abs(t[1]-B[1])?y=!0:g=!0),B=t,p=!0,Ja(),U()}function U(){var t;switch(C=B[0]-I[0],O=B[1]-I[1],_){case to:case Qa:w&&(C=Math.max(S-n,Math.min(T-u,C)),i=n+C,l=u+C),x&&(O=Math.max(M-o,Math.min(D-h,O)),s=o+O,d=h+O);break;case eo:w<0?(C=Math.max(S-n,Math.min(T-n,C)),i=n+C,l=u):w>0&&(C=Math.max(S-u,Math.min(T-u,C)),i=n,l=u+C),x<0?(O=Math.max(M-o,Math.min(D-o,O)),s=o+O,d=h):x>0&&(O=Math.max(M-h,Math.min(D-h,O)),s=o,d=h+O);break;case no:w&&(i=Math.max(S,Math.min(T,n-C*w)),l=Math.max(S,Math.min(T,u+C*w))),x&&(s=Math.max(M,Math.min(D,o-O*x)),d=Math.max(M,Math.min(D,h+O*x)))}l<i&&(w*=-1,t=n,n=u,u=t,t=i,i=l,l=t,v in co&&F.attr("cursor",uo[v=co[v]])),d<s&&(x*=-1,t=o,o=h,h=t,t=s,s=d,d=t,v in fo&&F.attr("cursor",uo[v=fo[v]])),k.selection&&(A=k.selection),g&&(i=A[0][0],l=A[1][0]),y&&(s=A[0][1],d=A[1][1]),A[0][0]===i&&A[0][1]===s&&A[1][0]===l&&A[1][1]===d||(k.selection=[[i,s],[l,d]],c.call(m),L.brush())}function z(){if(Za(),pe.touches){if(pe.touches.length)return;e&&clearTimeout(e),e=setTimeout((function(){e=null}),500)}else ze(pe.view,p),q.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);P.attr("pointer-events","all"),F.attr("cursor",uo.overlay),k.selection&&(A=k.selection),function(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}(A)&&(k.selection=null,c.call(m)),L.end()}}function d(){f(this,arguments).moved()}function p(){f(this,arguments).ended()}function g(){var e=this.__brush||{selection:null};return e.extent=io(n.apply(this,arguments)),e.dim=t,e}return u.move=function(e,n){e.selection?e.on("start.brush",(function(){f(this,arguments).beforestart().start()})).on("interrupt.brush end.brush",(function(){f(this,arguments).end()})).tween("brush",(function(){var e=this,r=e.__brush,i=f(e,arguments),a=r.selection,o=t.input("function"==typeof n?n.apply(this,arguments):n,r.extent),s=Xn(a,o);function u(t){r.selection=1===t&&null===o?null:s(t),c.call(e),i.brush()}return null!==a&&null!==o?u:u(1)})):e.each((function(){var e=this,r=arguments,i=e.__brush,a=t.input("function"==typeof n?n.apply(e,r):n,i.extent),o=f(e,r).beforestart();Oi(e),i.selection=null===a?null:a,c.call(e),o.start().brush().end()}))},u.clear=function(t){u.move(t,null)},l.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting?(this.starting=!1,this.emit("start")):this.emit("brush"),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(e){_e(new Xa(u,e,t.output(this.state.selection)),o.apply,o,[e,this.that,this.args])}},u.extent=function(t){return arguments.length?(n="function"==typeof t?t:Ka(io(t)),u):n},u.filter=function(t){return arguments.length?(r="function"==typeof t?t:Ka(!!t),u):r},u.handleSize=function(t){return arguments.length?(s=+t,u):s},u.keyModifiers=function(t){return arguments.length?(a=!!t,u):a},u.on=function(){var t=o.on.apply(o,arguments);return t===o?u:t},u}var Eo=Math.cos,Ao=Math.sin,So=Math.PI,Mo=So/2,To=2*So,Do=Math.max;function Co(t){return function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)}}var Oo=function(){var t=0,e=null,n=null,r=null;function i(i){var a,o,s,u,c,f,l=i.length,h=[],d=x(l),p=[],g=[],y=g.groups=new Array(l),b=new Array(l*l);for(a=0,c=-1;++c<l;){for(o=0,f=-1;++f<l;)o+=i[c][f];h.push(o),p.push(x(l)),a+=o}for(e&&d.sort((function(t,n){return e(h[t],h[n])})),n&&p.forEach((function(t,e){t.sort((function(t,r){return n(i[e][t],i[e][r])}))})),u=(a=Do(0,To-t*l)/a)?t:To/l,o=0,c=-1;++c<l;){for(s=o,f=-1;++f<l;){var m=d[c],v=p[m][f],_=i[m][v],w=o,k=o+=_*a;b[v*l+m]={index:m,subindex:v,startAngle:w,endAngle:k,value:_}}y[m]={index:m,startAngle:s,endAngle:o,value:h[m]},o+=u}for(c=-1;++c<l;)for(f=c-1;++f<l;){var E=b[f*l+c],A=b[c*l+f];(E.value||A.value)&&g.push(E.value<A.value?{source:A,target:E}:{source:E,target:A})}return r?g.sort(r):g}return i.padAngle=function(e){return arguments.length?(t=Do(0,e),i):t},i.sortGroups=function(t){return arguments.length?(e=t,i):e},i.sortSubgroups=function(t){return arguments.length?(n=t,i):n},i.sortChords=function(t){return arguments.length?(null==t?r=null:(r=Co(t))._=t,i):r&&r._},i},Ro=Array.prototype.slice,No=function(t){return function(){return t}},Io=Math.PI,Bo=2*Io,Lo=Bo-1e-6;function Po(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Fo(){return new Po}Po.prototype=Fo.prototype={constructor:Po,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,i,a){this._+="C"+ +t+","+ +e+","+ +n+","+ +r+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(t,e,n,r,i){t=+t,e=+e,n=+n,r=+r,i=+i;var a=this._x1,o=this._y1,s=n-t,u=r-e,c=a-t,f=o-e,l=c*c+f*f;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(l>1e-6)if(Math.abs(f*s-u*c)>1e-6&&i){var h=n-a,d=r-o,p=s*s+u*u,g=h*h+d*d,y=Math.sqrt(p),b=Math.sqrt(l),m=i*Math.tan((Io-Math.acos((p+l-g)/(2*y*b)))/2),v=m/b,_=m/y;Math.abs(v-1)>1e-6&&(this._+="L"+(t+v*c)+","+(e+v*f)),this._+="A"+i+","+i+",0,0,"+ +(f*h>c*d)+","+(this._x1=t+_*s)+","+(this._y1=e+_*u)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,n,r,i,a){t=+t,e=+e,a=!!a;var o=(n=+n)*Math.cos(r),s=n*Math.sin(r),u=t+o,c=e+s,f=1^a,l=a?r-i:i-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+u+","+c:(Math.abs(this._x1-u)>1e-6||Math.abs(this._y1-c)>1e-6)&&(this._+="L"+u+","+c),n&&(l<0&&(l=l%Bo+Bo),l>Lo?this._+="A"+n+","+n+",0,1,"+f+","+(t-o)+","+(e-s)+"A"+n+","+n+",0,1,"+f+","+(this._x1=u)+","+(this._y1=c):l>1e-6&&(this._+="A"+n+","+n+",0,"+ +(l>=Io)+","+f+","+(this._x1=t+n*Math.cos(i))+","+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var qo=Fo;function jo(t){return t.source}function Uo(t){return t.target}function zo(t){return t.radius}function Yo(t){return t.startAngle}function Ho(t){return t.endAngle}var Vo=function(){var t=jo,e=Uo,n=zo,r=Yo,i=Ho,a=null;function o(){var o,s=Ro.call(arguments),u=t.apply(this,s),c=e.apply(this,s),f=+n.apply(this,(s[0]=u,s)),l=r.apply(this,s)-Mo,h=i.apply(this,s)-Mo,d=f*Eo(l),p=f*Ao(l),g=+n.apply(this,(s[0]=c,s)),y=r.apply(this,s)-Mo,b=i.apply(this,s)-Mo;if(a||(a=o=qo()),a.moveTo(d,p),a.arc(0,0,f,l,h),l===y&&h===b||(a.quadraticCurveTo(0,0,g*Eo(y),g*Ao(y)),a.arc(0,0,g,y,b)),a.quadraticCurveTo(0,0,d,p),a.closePath(),o)return a=null,o+""||null}return o.radius=function(t){return arguments.length?(n="function"==typeof t?t:No(+t),o):n},o.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:No(+t),o):r},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:No(+t),o):i},o.source=function(e){return arguments.length?(t=e,o):t},o.target=function(t){return arguments.length?(e=t,o):e},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o};function $o(){}function Go(t,e){var n=new $o;if(t instanceof $o)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var r,i=-1,a=t.length;if(null==e)for(;++i<a;)n.set(i,t[i]);else for(;++i<a;)n.set(e(r=t[i],i,t),r)}else if(t)for(var o in t)n.set(o,t[o]);return n}$o.prototype=Go.prototype={constructor:$o,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,e){return this["$"+t]=e,this},remove:function(t){var e="$"+t;return e in this&&delete this[e]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var e in this)"$"===e[0]&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)"$"===e[0]&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)"$"===e[0]&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)"$"===e[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var e in this)"$"===e[0]&&t(this[e],e.slice(1),this)}};var Wo=Go,Ko=function(){var t,e,n,r=[],i=[];function a(n,i,o,s){if(i>=r.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var u,c,f,l=-1,h=n.length,d=r[i++],p=Wo(),g=o();++l<h;)(f=p.get(u=d(c=n[l])+""))?f.push(c):p.set(u,[c]);return p.each((function(t,e){s(g,e,a(t,i,o,s))})),g}return n={object:function(t){return a(t,0,Xo,Zo)},map:function(t){return a(t,0,Jo,Qo)},entries:function(t){return function t(n,a){if(++a>r.length)return n;var o,s=i[a-1];return null!=e&&a>=r.length?o=n.entries():(o=[],n.each((function(e,n){o.push({key:n,values:t(e,a)})}))),null!=s?o.sort((function(t,e){return s(t.key,e.key)})):o}(a(t,0,Jo,Qo),0)},key:function(t){return r.push(t),n},sortKeys:function(t){return i[r.length-1]=t,n},sortValues:function(e){return t=e,n},rollup:function(t){return e=t,n}}};function Xo(){return{}}function Zo(t,e,n){t[e]=n}function Jo(){return Wo()}function Qo(t,e,n){t.set(e,n)}function ts(){}var es=Wo.prototype;function ns(t,e){var n=new ts;if(t instanceof ts)t.each((function(t){n.add(t)}));else if(t){var r=-1,i=t.length;if(null==e)for(;++r<i;)n.add(t[r]);else for(;++r<i;)n.add(e(t[r],r,t))}return n}ts.prototype=ns.prototype={constructor:ts,has:es.has,add:function(t){return this["$"+(t+="")]=t,this},remove:es.remove,clear:es.clear,values:es.keys,size:es.size,empty:es.empty,each:es.each};var rs=ns,is=function(t){var e=[];for(var n in t)e.push(n);return e},as=function(t){var e=[];for(var n in t)e.push(t[n]);return e},os=function(t){var e=[];for(var n in t)e.push({key:n,value:t[n]});return e},ss=Array.prototype.slice,us=function(t,e){return t-e},cs=function(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r},fs=function(t){return function(){return t}},ls=function(t,e){for(var n,r=-1,i=e.length;++r<i;)if(n=hs(t,e[r]))return n;return 0};function hs(t,e){for(var n=e[0],r=e[1],i=-1,a=0,o=t.length,s=o-1;a<o;s=a++){var u=t[a],c=u[0],f=u[1],l=t[s],h=l[0],d=l[1];if(ds(u,l,e))return 0;f>r!=d>r&&n<(h-c)*(r-f)/(d-f)+c&&(i=-i)}return i}function ds(t,e,n){var r,i,a,o;return function(t,e,n){return(e[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(e[1]-t[1])}(t,e,n)&&(i=t[r=+(t[0]===e[0])],a=n[r],o=e[r],i<=a&&a<=o||o<=a&&a<=i)}var ps=function(){},gs=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],ys=function(){var t=1,e=1,n=D,r=s;function i(t){var e=n(t);if(Array.isArray(e))e=e.slice().sort(us);else{var r=y(t),i=r[0],o=r[1];e=T(i,o,e),e=x(Math.floor(i/e)*e,Math.floor(o/e)*e,e)}return e.map((function(e){return a(t,e)}))}function a(n,i){var a=[],s=[];return function(n,r,i){var a,s,u,c,f,l,h=new Array,d=new Array;a=s=-1,c=n[0]>=r,gs[c<<1].forEach(p);for(;++a<t-1;)u=c,c=n[a+1]>=r,gs[u|c<<1].forEach(p);gs[c<<0].forEach(p);for(;++s<e-1;){for(a=-1,c=n[s*t+t]>=r,f=n[s*t]>=r,gs[c<<1|f<<2].forEach(p);++a<t-1;)u=c,c=n[s*t+t+a+1]>=r,l=f,f=n[s*t+a+1]>=r,gs[u|c<<1|f<<2|l<<3].forEach(p);gs[c|f<<3].forEach(p)}a=-1,f=n[s*t]>=r,gs[f<<2].forEach(p);for(;++a<t-1;)l=f,f=n[s*t+a+1]>=r,gs[f<<2|l<<3].forEach(p);function p(t){var e,n,r=[t[0][0]+a,t[0][1]+s],u=[t[1][0]+a,t[1][1]+s],c=o(r),f=o(u);(e=d[c])?(n=h[f])?(delete d[e.end],delete h[n.start],e===n?(e.ring.push(u),i(e.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete d[e.end],e.ring.push(u),d[e.end=f]=e):(e=h[f])?(n=d[c])?(delete h[e.start],delete d[n.end],e===n?(e.ring.push(u),i(e.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete h[e.start],e.ring.unshift(r),h[e.start=c]=e):h[c]=d[f]={start:c,end:f,ring:[r,u]}}gs[f<<3].forEach(p)}(n,i,(function(t){r(t,n,i),cs(t)>0?a.push([t]):s.push(t)})),s.forEach((function(t){for(var e,n=0,r=a.length;n<r;++n)if(-1!==ls((e=a[n])[0],t))return void e.push(t)})),{type:"MultiPolygon",value:i,coordinates:a}}function o(e){return 2*e[0]+e[1]*(t+1)*4}function s(n,r,i){n.forEach((function(n){var a,o=n[0],s=n[1],u=0|o,c=0|s,f=r[c*t+u];o>0&&o<t&&u===o&&(a=r[c*t+u-1],n[0]=o+(i-a)/(f-a)-.5),s>0&&s<e&&c===s&&(a=r[(c-1)*t+u],n[1]=s+(i-a)/(f-a)-.5)}))}return i.contour=a,i.size=function(n){if(!arguments.length)return[t,e];var r=Math.ceil(n[0]),a=Math.ceil(n[1]);if(!(r>0&&a>0))throw new Error("invalid size");return t=r,e=a,i},i.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?fs(ss.call(t)):fs(t),i):n},i.smooth=function(t){return arguments.length?(r=t?s:ps,i):r===s},i};function bs(t,e,n){for(var r=t.width,i=t.height,a=1+(n<<1),o=0;o<i;++o)for(var s=0,u=0;s<r+n;++s)s<r&&(u+=t.data[s+o*r]),s>=n&&(s>=a&&(u-=t.data[s-a+o*r]),e.data[s-n+o*r]=u/Math.min(s+1,r-1+a-s,a))}function ms(t,e,n){for(var r=t.width,i=t.height,a=1+(n<<1),o=0;o<r;++o)for(var s=0,u=0;s<i+n;++s)s<i&&(u+=t.data[o+s*r]),s>=n&&(s>=a&&(u-=t.data[o+(s-a)*r]),e.data[o+(s-n)*r]=u/Math.min(s+1,i-1+a-s,a))}function vs(t){return t[0]}function _s(t){return t[1]}function ws(){return 1}var xs=function(){var t=vs,e=_s,n=ws,r=960,i=500,a=20,o=2,s=3*a,u=r+2*s>>o,c=i+2*s>>o,f=fs(20);function l(r){var i=new Float32Array(u*c),l=new Float32Array(u*c);r.forEach((function(r,a,f){var l=+t(r,a,f)+s>>o,h=+e(r,a,f)+s>>o,d=+n(r,a,f);l>=0&&l<u&&h>=0&&h<c&&(i[l+h*u]+=d)})),bs({width:u,height:c,data:i},{width:u,height:c,data:l},a>>o),ms({width:u,height:c,data:l},{width:u,height:c,data:i},a>>o),bs({width:u,height:c,data:i},{width:u,height:c,data:l},a>>o),ms({width:u,height:c,data:l},{width:u,height:c,data:i},a>>o),bs({width:u,height:c,data:i},{width:u,height:c,data:l},a>>o),ms({width:u,height:c,data:l},{width:u,height:c,data:i},a>>o);var d=f(i);if(!Array.isArray(d)){var p=I(i);d=T(0,p,d),(d=x(0,Math.floor(p/d)*d,d)).shift()}return ys().thresholds(d).size([u,c])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*o),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(g)}function g(t){t[0]=t[0]*Math.pow(2,o)-s,t[1]=t[1]*Math.pow(2,o)-s}function y(){return u=r+2*(s=3*a)>>o,c=i+2*s>>o,l}return l.x=function(e){return arguments.length?(t="function"==typeof e?e:fs(+e),l):t},l.y=function(t){return arguments.length?(e="function"==typeof t?t:fs(+t),l):e},l.weight=function(t){return arguments.length?(n="function"==typeof t?t:fs(+t),l):n},l.size=function(t){if(!arguments.length)return[r,i];var e=Math.ceil(t[0]),n=Math.ceil(t[1]);if(!(e>=0||e>=0))throw new Error("invalid size");return r=e,i=n,y()},l.cellSize=function(t){if(!arguments.length)return 1<<o;if(!((t=+t)>=1))throw new Error("invalid cell size");return o=Math.floor(Math.log(t)/Math.LN2),y()},l.thresholds=function(t){return arguments.length?(f="function"==typeof t?t:Array.isArray(t)?fs(ss.call(t)):fs(t),l):f},l.bandwidth=function(t){if(!arguments.length)return Math.sqrt(a*(a+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return a=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},l},ks={},Es={},As=34,Ss=10,Ms=13;function Ts(t){return new Function("d","return {"+t.map((function(t,e){return JSON.stringify(t)+": d["+e+"]"})).join(",")+"}")}function Ds(t){var e=Object.create(null),n=[];return t.forEach((function(t){for(var r in t)r in e||n.push(e[r]=r)})),n}function Cs(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function Os(t){var e,n=t.getUTCHours(),r=t.getUTCMinutes(),i=t.getUTCSeconds(),a=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":((e=t.getUTCFullYear())<0?"-"+Cs(-e,6):e>9999?"+"+Cs(e,6):Cs(e,4))+"-"+Cs(t.getUTCMonth()+1,2)+"-"+Cs(t.getUTCDate(),2)+(a?"T"+Cs(n,2)+":"+Cs(r,2)+":"+Cs(i,2)+"."+Cs(a,3)+"Z":i?"T"+Cs(n,2)+":"+Cs(r,2)+":"+Cs(i,2)+"Z":r||n?"T"+Cs(n,2)+":"+Cs(r,2)+"Z":"")}var Rs=function(t){var e=new RegExp('["'+t+"\n\r]"),n=t.charCodeAt(0);function r(t,e){var r,i=[],a=t.length,o=0,s=0,u=a<=0,c=!1;function f(){if(u)return Es;if(c)return c=!1,ks;var e,r,i=o;if(t.charCodeAt(i)===As){for(;o++<a&&t.charCodeAt(o)!==As||t.charCodeAt(++o)===As;);return(e=o)>=a?u=!0:(r=t.charCodeAt(o++))===Ss?c=!0:r===Ms&&(c=!0,t.charCodeAt(o)===Ss&&++o),t.slice(i+1,e-1).replace(/""/g,'"')}for(;o<a;){if((r=t.charCodeAt(e=o++))===Ss)c=!0;else if(r===Ms)c=!0,t.charCodeAt(o)===Ss&&++o;else if(r!==n)continue;return t.slice(i,e)}return u=!0,t.slice(i,a)}for(t.charCodeAt(a-1)===Ss&&--a,t.charCodeAt(a-1)===Ms&&--a;(r=f())!==Es;){for(var l=[];r!==ks&&r!==Es;)l.push(r),r=f();e&&null==(l=e(l,s++))||i.push(l)}return i}function i(e,n){return e.map((function(e){return n.map((function(t){return o(e[t])})).join(t)}))}function a(e){return e.map(o).join(t)}function o(t){return null==t?"":t instanceof Date?Os(t):e.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,e){var n,i,a=r(t,(function(t,r){if(n)return n(t,r-1);i=t,n=e?function(t,e){var n=Ts(t);return function(r,i){return e(n(r),i,t)}}(t,e):Ts(t)}));return a.columns=i||[],a},parseRows:r,format:function(e,n){return null==n&&(n=Ds(e)),[n.map(o).join(t)].concat(i(e,n)).join("\n")},formatBody:function(t,e){return null==e&&(e=Ds(t)),i(t,e).join("\n")},formatRows:function(t){return t.map(a).join("\n")}}},Ns=Rs(","),Is=Ns.parse,Bs=Ns.parseRows,Ls=Ns.format,Ps=Ns.formatBody,Fs=Ns.formatRows,qs=Rs("\t"),js=qs.parse,Us=qs.parseRows,zs=qs.format,Ys=qs.formatBody,Hs=qs.formatRows;function Vs(t){for(var e in t){var n,r=t[e].trim();if(r)if("true"===r)r=!0;else if("false"===r)r=!1;else if("NaN"===r)r=NaN;else if(isNaN(n=+r)){if(!/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/.test(r))continue;r=new Date(r)}else r=n;else r=null;t[e]=r}return t}function $s(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}var Gs=function(t,e){return fetch(t,e).then($s)};function Ws(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}var Ks=function(t,e){return fetch(t,e).then(Ws)};function Xs(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}var Zs=function(t,e){return fetch(t,e).then(Xs)};function Js(t){return function(e,n,r){return 2===arguments.length&&"function"==typeof n&&(r=n,n=void 0),Zs(e,n).then((function(e){return t(e,r)}))}}function Qs(t,e,n,r){3===arguments.length&&"function"==typeof n&&(r=n,n=void 0);var i=Rs(t);return Zs(e,n).then((function(t){return i.parse(t,r)}))}var tu=Js(Is),eu=Js(js),nu=function(t,e){return new Promise((function(n,r){var i=new Image;for(var a in e)i[a]=e[a];i.onerror=r,i.onload=function(){n(i)},i.src=t}))};function ru(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.json()}var iu=function(t,e){return fetch(t,e).then(ru)};function au(t){return function(e,n){return Zs(e,n).then((function(e){return(new DOMParser).parseFromString(e,t)}))}}var ou=au("application/xml"),su=au("text/html"),uu=au("image/svg+xml"),cu=function(t,e){var n;function r(){var r,i,a=n.length,o=0,s=0;for(r=0;r<a;++r)o+=(i=n[r]).x,s+=i.y;for(o=o/a-t,s=s/a-e,r=0;r<a;++r)(i=n[r]).x-=o,i.y-=s}return null==t&&(t=0),null==e&&(e=0),r.initialize=function(t){n=t},r.x=function(e){return arguments.length?(t=+e,r):t},r.y=function(t){return arguments.length?(e=+t,r):e},r},fu=function(t){return function(){return t}},lu=function(){return 1e-6*(Math.random()-.5)};function hu(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,a,o,s,u,c,f,l,h,d=t._root,p={data:r},g=t._x0,y=t._y0,b=t._x1,m=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((c=e>=(a=(g+b)/2))?g=a:b=a,(f=n>=(o=(y+m)/2))?y=o:m=o,i=d,!(d=d[l=f<<1|c]))return i[l]=p,t;if(s=+t._x.call(null,d.data),u=+t._y.call(null,d.data),e===s&&n===u)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(c=e>=(a=(g+b)/2))?g=a:b=a,(f=n>=(o=(y+m)/2))?y=o:m=o}while((l=f<<1|c)==(h=(u>=o)<<1|s>=a));return i[h]=d,i[l]=p,t}var du=function(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i};function pu(t){return t[0]}function gu(t){return t[1]}function yu(t,e,n){var r=new bu(null==e?pu:e,null==n?gu:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function bu(t,e,n,r,i,a){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function mu(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var vu=yu.prototype=bu.prototype;function _u(t){return t.x+t.vx}function wu(t){return t.y+t.vy}vu.copy=function(){var t,e,n=new bu(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=mu(r),n;for(t=[{source:r,target:n._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(4)}):r.target[i]=mu(e));return n},vu.add=function(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return hu(this.cover(e,n),e,n,t)},vu.addAll=function(t){var e,n,r,i,a=t.length,o=new Array(a),s=new Array(a),u=1/0,c=1/0,f=-1/0,l=-1/0;for(n=0;n<a;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||(o[n]=r,s[n]=i,r<u&&(u=r),r>f&&(f=r),i<c&&(c=i),i>l&&(l=i));if(u>f||c>l)return this;for(this.cover(u,c).cover(f,l),n=0;n<a;++n)hu(this,o[n],s[n],t[n]);return this},vu.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,a=(r=Math.floor(e))+1;else{for(var o,s,u=i-n,c=this._root;n>t||t>=i||r>e||e>=a;)switch(s=(e<r)<<1|t<n,(o=new Array(4))[s]=c,c=o,u*=2,s){case 0:i=n+u,a=r+u;break;case 1:n=i-u,a=r+u;break;case 2:i=n+u,r=a-u;break;case 3:n=i-u,r=a-u}this._root&&this._root.length&&(this._root=c)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this},vu.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},vu.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},vu.find=function(t,e,n){var r,i,a,o,s,u,c,f=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],g=this._root;for(g&&p.push(new du(g,f,l,h,d)),null==n?n=1/0:(f=t-n,l=e-n,h=t+n,d=e+n,n*=n);u=p.pop();)if(!(!(g=u.node)||(i=u.x0)>h||(a=u.y0)>d||(o=u.x1)<f||(s=u.y1)<l))if(g.length){var y=(i+o)/2,b=(a+s)/2;p.push(new du(g[3],y,b,o,s),new du(g[2],i,b,y,s),new du(g[1],y,a,o,b),new du(g[0],i,a,y,b)),(c=(e>=b)<<1|t>=y)&&(u=p[p.length-1],p[p.length-1]=p[p.length-1-c],p[p.length-1-c]=u)}else{var m=t-+this._x.call(null,g.data),v=e-+this._y.call(null,g.data),_=m*m+v*v;if(_<n){var w=Math.sqrt(n=_);f=t-w,l=e-w,h=t+w,d=e+w,r=g.data}}return r},vu.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var e,n,r,i,a,o,s,u,c,f,l,h,d=this._root,p=this._x0,g=this._y0,y=this._x1,b=this._y1;if(!d)return this;if(d.length)for(;;){if((c=a>=(s=(p+y)/2))?p=s:y=s,(f=o>=(u=(g+b)/2))?g=u:b=u,e=d,!(d=d[l=f<<1|c]))return this;if(!d.length)break;(e[l+1&3]||e[l+2&3]||e[l+3&3])&&(n=e,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):e?(i?e[l]=i:delete e[l],(d=e[0]||e[1]||e[2]||e[3])&&d===(e[3]||e[2]||e[1]||e[0])&&!d.length&&(n?n[h]=d:this._root=d),this):(this._root=i,this)},vu.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},vu.root=function(){return this._root},vu.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},vu.visit=function(t){var e,n,r,i,a,o,s=[],u=this._root;for(u&&s.push(new du(u,this._x0,this._y0,this._x1,this._y1));e=s.pop();)if(!t(u=e.node,r=e.x0,i=e.y0,a=e.x1,o=e.y1)&&u.length){var c=(r+a)/2,f=(i+o)/2;(n=u[3])&&s.push(new du(n,c,f,a,o)),(n=u[2])&&s.push(new du(n,r,f,c,o)),(n=u[1])&&s.push(new du(n,c,i,a,f)),(n=u[0])&&s.push(new du(n,r,i,c,f))}return this},vu.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new du(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var i=e.node;if(i.length){var a,o=e.x0,s=e.y0,u=e.x1,c=e.y1,f=(o+u)/2,l=(s+c)/2;(a=i[0])&&n.push(new du(a,o,s,f,l)),(a=i[1])&&n.push(new du(a,f,s,u,l)),(a=i[2])&&n.push(new du(a,o,l,f,c)),(a=i[3])&&n.push(new du(a,f,l,u,c))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},vu.x=function(t){return arguments.length?(this._x=t,this):this._x},vu.y=function(t){return arguments.length?(this._y=t,this):this._y};var xu=function(t){var e,n,r=1,i=1;function a(){for(var t,a,s,u,c,f,l,h=e.length,d=0;d<i;++d)for(a=yu(e,_u,wu).visitAfter(o),t=0;t<h;++t)s=e[t],f=n[s.index],l=f*f,u=s.x+s.vx,c=s.y+s.vy,a.visit(p);function p(t,e,n,i,a){var o=t.data,h=t.r,d=f+h;if(!o)return e>u+d||i<u-d||n>c+d||a<c-d;if(o.index>s.index){var p=u-o.x-o.vx,g=c-o.y-o.vy,y=p*p+g*g;y<d*d&&(0===p&&(y+=(p=lu())*p),0===g&&(y+=(g=lu())*g),y=(d-(y=Math.sqrt(y)))/y*r,s.vx+=(p*=y)*(d=(h*=h)/(l+h)),s.vy+=(g*=y)*d,o.vx-=p*(d=1-d),o.vy-=g*d)}}}function o(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function s(){if(e){var r,i,a=e.length;for(n=new Array(a),r=0;r<a;++r)i=e[r],n[i.index]=+t(i,r,e)}}return"function"!=typeof t&&(t=fu(null==t?1:+t)),a.initialize=function(t){e=t,s()},a.iterations=function(t){return arguments.length?(i=+t,a):i},a.strength=function(t){return arguments.length?(r=+t,a):r},a.radius=function(e){return arguments.length?(t="function"==typeof e?e:fu(+e),s(),a):t},a};function ku(t){return t.index}function Eu(t,e){var n=t.get(e);if(!n)throw new Error("missing: "+e);return n}var Au=function(t){var e,n,r,i,a,o=ku,s=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},u=fu(30),c=1;function f(r){for(var i=0,o=t.length;i<c;++i)for(var s,u,f,l,h,d,p,g=0;g<o;++g)u=(s=t[g]).source,l=(f=s.target).x+f.vx-u.x-u.vx||lu(),h=f.y+f.vy-u.y-u.vy||lu(),l*=d=((d=Math.sqrt(l*l+h*h))-n[g])/d*r*e[g],h*=d,f.vx-=l*(p=a[g]),f.vy-=h*p,u.vx+=l*(p=1-p),u.vy+=h*p}function l(){if(r){var s,u,c=r.length,f=t.length,l=Wo(r,o);for(s=0,i=new Array(c);s<f;++s)(u=t[s]).index=s,"object"!=typeof u.source&&(u.source=Eu(l,u.source)),"object"!=typeof u.target&&(u.target=Eu(l,u.target)),i[u.source.index]=(i[u.source.index]||0)+1,i[u.target.index]=(i[u.target.index]||0)+1;for(s=0,a=new Array(f);s<f;++s)u=t[s],a[s]=i[u.source.index]/(i[u.source.index]+i[u.target.index]);e=new Array(f),h(),n=new Array(f),d()}}function h(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+s(t[n],n,t)}function d(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+u(t[e],e,t)}return null==t&&(t=[]),f.initialize=function(t){r=t,l()},f.links=function(e){return arguments.length?(t=e,l(),f):t},f.id=function(t){return arguments.length?(o=t,f):o},f.iterations=function(t){return arguments.length?(c=+t,f):c},f.strength=function(t){return arguments.length?(s="function"==typeof t?t:fu(+t),h(),f):s},f.distance=function(t){return arguments.length?(u="function"==typeof t?t:fu(+t),d(),f):u},f};function Su(t){return t.x}function Mu(t){return t.y}var Tu=10,Du=Math.PI*(3-Math.sqrt(5)),Cu=function(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=Wo(),u=li(f),c=gt("tick","end");function f(){l(),c.call("tick",e),n<r&&(u.stop(),c.call("end",e))}function l(r){var u,c,f=t.length;void 0===r&&(r=1);for(var l=0;l<r;++l)for(n+=(a-n)*i,s.each((function(t){t(n)})),u=0;u<f;++u)null==(c=t[u]).fx?c.x+=c.vx*=o:(c.x=c.fx,c.vx=0),null==c.fy?c.y+=c.vy*=o:(c.y=c.fy,c.vy=0);return e}function h(){for(var e,n=0,r=t.length;n<r;++n){if((e=t[n]).index=n,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),isNaN(e.x)||isNaN(e.y)){var i=Tu*Math.sqrt(n),a=n*Du;e.x=i*Math.cos(a),e.y=i*Math.sin(a)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function d(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),h(),e={tick:l,restart:function(){return u.restart(f),e},stop:function(){return u.stop(),e},nodes:function(n){return arguments.length?(t=n,h(),s.each(d),e):t},alpha:function(t){return arguments.length?(n=+t,e):n},alphaMin:function(t){return arguments.length?(r=+t,e):r},alphaDecay:function(t){return arguments.length?(i=+t,e):+i},alphaTarget:function(t){return arguments.length?(a=+t,e):a},velocityDecay:function(t){return arguments.length?(o=1-t,e):1-o},force:function(t,n){return arguments.length>1?(null==n?s.remove(t):s.set(t,d(n)),e):s.get(t)},find:function(e,n,r){var i,a,o,s,u,c=0,f=t.length;for(null==r?r=1/0:r*=r,c=0;c<f;++c)(o=(i=e-(s=t[c]).x)*i+(a=n-s.y)*a)<r&&(u=s,r=o);return u},on:function(t,n){return arguments.length>1?(c.on(t,n),e):c.on(t)}}},Ou=function(){var t,e,n,r,i=fu(-30),a=1,o=1/0,s=.81;function u(r){var i,a=t.length,o=yu(t,Su,Mu).visitAfter(f);for(n=r,i=0;i<a;++i)e=t[i],o.visit(l)}function c(){if(t){var e,n,a=t.length;for(r=new Array(a),e=0;e<a;++e)n=t[e],r[n.index]=+i(n,e,t)}}function f(t){var e,n,i,a,o,s=0,u=0;if(t.length){for(i=a=o=0;o<4;++o)(e=t[o])&&(n=Math.abs(e.value))&&(s+=e.value,u+=n,i+=n*e.x,a+=n*e.y);t.x=i/u,t.y=a/u}else{(e=t).x=e.data.x,e.y=e.data.y;do{s+=r[e.data.index]}while(e=e.next)}t.value=s}function l(t,i,u,c){if(!t.value)return!0;var f=t.x-e.x,l=t.y-e.y,h=c-i,d=f*f+l*l;if(h*h/s<d)return d<o&&(0===f&&(d+=(f=lu())*f),0===l&&(d+=(l=lu())*l),d<a&&(d=Math.sqrt(a*d)),e.vx+=f*t.value*n/d,e.vy+=l*t.value*n/d),!0;if(!(t.length||d>=o)){(t.data!==e||t.next)&&(0===f&&(d+=(f=lu())*f),0===l&&(d+=(l=lu())*l),d<a&&(d=Math.sqrt(a*d)));do{t.data!==e&&(h=r[t.data.index]*n/d,e.vx+=f*h,e.vy+=l*h)}while(t=t.next)}}return u.initialize=function(e){t=e,c()},u.strength=function(t){return arguments.length?(i="function"==typeof t?t:fu(+t),c(),u):i},u.distanceMin=function(t){return arguments.length?(a=t*t,u):Math.sqrt(a)},u.distanceMax=function(t){return arguments.length?(o=t*t,u):Math.sqrt(o)},u.theta=function(t){return arguments.length?(s=t*t,u):Math.sqrt(s)},u},Ru=function(t,e,n){var r,i,a,o=fu(.1);function s(t){for(var o=0,s=r.length;o<s;++o){var u=r[o],c=u.x-e||1e-6,f=u.y-n||1e-6,l=Math.sqrt(c*c+f*f),h=(a[o]-l)*i[o]*t/l;u.vx+=c*h,u.vy+=f*h}}function u(){if(r){var e,n=r.length;for(i=new Array(n),a=new Array(n),e=0;e<n;++e)a[e]=+t(r[e],e,r),i[e]=isNaN(a[e])?0:+o(r[e],e,r)}}return"function"!=typeof t&&(t=fu(+t)),null==e&&(e=0),null==n&&(n=0),s.initialize=function(t){r=t,u()},s.strength=function(t){return arguments.length?(o="function"==typeof t?t:fu(+t),u(),s):o},s.radius=function(e){return arguments.length?(t="function"==typeof e?e:fu(+e),u(),s):t},s.x=function(t){return arguments.length?(e=+t,s):e},s.y=function(t){return arguments.length?(n=+t,s):n},s},Nu=function(t){var e,n,r,i=fu(.1);function a(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vx+=(r[a]-i.x)*n[a]*t}function o(){if(e){var a,o=e.length;for(n=new Array(o),r=new Array(o),a=0;a<o;++a)n[a]=isNaN(r[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return"function"!=typeof t&&(t=fu(null==t?0:+t)),a.initialize=function(t){e=t,o()},a.strength=function(t){return arguments.length?(i="function"==typeof t?t:fu(+t),o(),a):i},a.x=function(e){return arguments.length?(t="function"==typeof e?e:fu(+e),o(),a):t},a},Iu=function(t){var e,n,r,i=fu(.1);function a(t){for(var i,a=0,o=e.length;a<o;++a)(i=e[a]).vy+=(r[a]-i.y)*n[a]*t}function o(){if(e){var a,o=e.length;for(n=new Array(o),r=new Array(o),a=0;a<o;++a)n[a]=isNaN(r[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return"function"!=typeof t&&(t=fu(null==t?0:+t)),a.initialize=function(t){e=t,o()},a.strength=function(t){return arguments.length?(i="function"==typeof t?t:fu(+t),o(),a):i},a.y=function(e){return arguments.length?(t="function"==typeof e?e:fu(+e),o(),a):t},a},Bu=function(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]},Lu=function(t){return(t=Bu(Math.abs(t)))?t[1]:NaN},Pu=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Fu(t){if(!(e=Pu.exec(t)))throw new Error("invalid format: "+t);var e;return new qu({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function qu(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}Fu.prototype=qu.prototype,qu.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var ju,Uu,zu,Yu,Hu=function(t){t:for(var e,n=t.length,r=1,i=-1;r<n;++r)switch(t[r]){case".":i=e=r;break;case"0":0===i&&(i=r),e=r;break;default:if(i>0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(e+1):t},Vu=function(t,e){var n=Bu(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},$u={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Vu(100*t,e)},r:Vu,s:function(t,e){var n=Bu(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(ju=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Bu(t,Math.max(0,e+a-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Gu=function(t){return t},Wu=Array.prototype.map,Ku=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],Xu=function(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?Gu:(e=Wu.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var i=t.length,a=[],o=0,s=e[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),a.push(t.substring(i-=s,i+s)),!((u+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(n)}),i=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?Gu:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Wu.call(t.numerals,String)),u=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"-":t.minus+"",f=void 0===t.nan?"NaN":t.nan+"";function l(t){var e=(t=Fu(t)).fill,n=t.align,l=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,b=t.trim,m=t.type;"n"===m?(g=!0,m="g"):$u[m]||(void 0===y&&(y=12),b=!0,m="g"),(d||"0"===e&&"="===n)&&(d=!0,e="0",n="=");var v="$"===h?i:"#"===h&&/[boxX]/.test(m)?"0"+m.toLowerCase():"",_="$"===h?a:/[%p]/.test(m)?u:"",w=$u[m],x=/[defgprs%]/.test(m);function k(t){var i,a,u,h=v,k=_;if("c"===m)k=w(t)+k,t="";else{var E=(t=+t)<0;if(t=isNaN(t)?f:w(Math.abs(t),y),b&&(t=Hu(t)),E&&0==+t&&(E=!1),h=(E?"("===l?l:c:"-"===l||"("===l?"":l)+h,k=("s"===m?Ku[8+ju/3]:"")+k+(E&&"("===l?")":""),x)for(i=-1,a=t.length;++i<a;)if(48>(u=t.charCodeAt(i))||u>57){k=(46===u?o+t.slice(i+1):t.slice(i))+k,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var A=h.length+t.length+k.length,S=A<p?new Array(p-A+1).join(e):"";switch(g&&d&&(t=r(S+t,S.length?p-k.length:1/0),S=""),n){case"<":t=h+t+k+S;break;case"=":t=h+S+t+k;break;case"^":t=S.slice(0,A=S.length>>1)+h+t+k+S.slice(A);break;default:t=S+h+t+k}return s(t)}return y=void 0===y?6:/[gprs]/.test(m)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),k.toString=function(){return t+""},k}return{format:l,formatPrefix:function(t,e){var n=l(((t=Fu(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Lu(e)/3))),i=Math.pow(10,-r),a=Ku[8+r/3];return function(t){return n(i*t)+a}}}};function Zu(t){return Uu=Xu(t),zu=Uu.format,Yu=Uu.formatPrefix,Uu}Zu({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});var Ju=function(t){return Math.max(0,-Lu(Math.abs(t)))},Qu=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Lu(e)/3)))-Lu(Math.abs(t)))},tc=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Lu(e)-Lu(t))+1},ec=function(){return new nc};function nc(){this.reset()}nc.prototype={constructor:nc,reset:function(){this.s=this.t=0},add:function(t){ic(rc,t,this.t),ic(this,rc.s,this.s),this.s?this.t+=rc.t:this.s=rc.t},valueOf:function(){return this.s}};var rc=new nc;function ic(t,e,n){var r=t.s=e+n,i=r-e,a=r-i;t.t=e-a+(n-i)}var ac=1e-6,oc=1e-12,sc=Math.PI,uc=sc/2,cc=sc/4,fc=2*sc,lc=180/sc,hc=sc/180,dc=Math.abs,pc=Math.atan,gc=Math.atan2,yc=Math.cos,bc=Math.ceil,mc=Math.exp,vc=(Math.floor,Math.log),_c=Math.pow,wc=Math.sin,xc=Math.sign||function(t){return t>0?1:t<0?-1:0},kc=Math.sqrt,Ec=Math.tan;function Ac(t){return t>1?0:t<-1?sc:Math.acos(t)}function Sc(t){return t>1?uc:t<-1?-uc:Math.asin(t)}function Mc(t){return(t=wc(t/2))*t}function Tc(){}function Dc(t,e){t&&Oc.hasOwnProperty(t.type)&&Oc[t.type](t,e)}var Cc={Feature:function(t,e){Dc(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Dc(n[r].geometry,e)}},Oc={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){Rc(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Rc(n[r],e,0)},Polygon:function(t,e){Nc(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Nc(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Dc(n[r],e)}};function Rc(t,e,n){var r,i=-1,a=t.length-n;for(e.lineStart();++i<a;)r=t[i],e.point(r[0],r[1],r[2]);e.lineEnd()}function Nc(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)Rc(t[n],e,1);e.polygonEnd()}var Ic,Bc,Lc,Pc,Fc,qc=function(t,e){t&&Cc.hasOwnProperty(t.type)?Cc[t.type](t,e):Dc(t,e)},jc=ec(),Uc=ec(),zc={point:Tc,lineStart:Tc,lineEnd:Tc,polygonStart:function(){jc.reset(),zc.lineStart=Yc,zc.lineEnd=Hc},polygonEnd:function(){var t=+jc;Uc.add(t<0?fc+t:t),this.lineStart=this.lineEnd=this.point=Tc},sphere:function(){Uc.add(fc)}};function Yc(){zc.point=Vc}function Hc(){$c(Ic,Bc)}function Vc(t,e){zc.point=$c,Ic=t,Bc=e,Lc=t*=hc,Pc=yc(e=(e*=hc)/2+cc),Fc=wc(e)}function $c(t,e){var n=(t*=hc)-Lc,r=n>=0?1:-1,i=r*n,a=yc(e=(e*=hc)/2+cc),o=wc(e),s=Fc*o,u=Pc*a+s*yc(i),c=s*r*wc(i);jc.add(gc(c,u)),Lc=t,Pc=a,Fc=o}var Gc=function(t){return Uc.reset(),qc(t,zc),2*Uc};function Wc(t){return[gc(t[1],t[0]),Sc(t[2])]}function Kc(t){var e=t[0],n=t[1],r=yc(n);return[r*yc(e),r*wc(e),wc(n)]}function Xc(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Zc(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Jc(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Qc(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function tf(t){var e=kc(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var ef,nf,rf,af,of,sf,uf,cf,ff,lf,hf=ec(),df={point:pf,lineStart:yf,lineEnd:bf,polygonStart:function(){df.point=mf,df.lineStart=vf,df.lineEnd=_f,hf.reset(),zc.polygonStart()},polygonEnd:function(){zc.polygonEnd(),df.point=pf,df.lineStart=yf,df.lineEnd=bf,jc<0?(ef=-(rf=180),nf=-(af=90)):hf>ac?af=90:hf<-ac&&(nf=-90),lf[0]=ef,lf[1]=rf},sphere:function(){ef=-(rf=180),nf=-(af=90)}};function pf(t,e){ff.push(lf=[ef=t,rf=t]),e<nf&&(nf=e),e>af&&(af=e)}function gf(t,e){var n=Kc([t*hc,e*hc]);if(cf){var r=Zc(cf,n),i=Zc([r[1],-r[0],0],r);tf(i),i=Wc(i);var a,o=t-of,s=o>0?1:-1,u=i[0]*lc*s,c=dc(o)>180;c^(s*of<u&&u<s*t)?(a=i[1]*lc)>af&&(af=a):c^(s*of<(u=(u+360)%360-180)&&u<s*t)?(a=-i[1]*lc)<nf&&(nf=a):(e<nf&&(nf=e),e>af&&(af=e)),c?t<of?wf(ef,t)>wf(ef,rf)&&(rf=t):wf(t,rf)>wf(ef,rf)&&(ef=t):rf>=ef?(t<ef&&(ef=t),t>rf&&(rf=t)):t>of?wf(ef,t)>wf(ef,rf)&&(rf=t):wf(t,rf)>wf(ef,rf)&&(ef=t)}else ff.push(lf=[ef=t,rf=t]);e<nf&&(nf=e),e>af&&(af=e),cf=n,of=t}function yf(){df.point=gf}function bf(){lf[0]=ef,lf[1]=rf,df.point=pf,cf=null}function mf(t,e){if(cf){var n=t-of;hf.add(dc(n)>180?n+(n>0?360:-360):n)}else sf=t,uf=e;zc.point(t,e),gf(t,e)}function vf(){zc.lineStart()}function _f(){mf(sf,uf),zc.lineEnd(),dc(hf)>ac&&(ef=-(rf=180)),lf[0]=ef,lf[1]=rf,cf=null}function wf(t,e){return(e-=t)<0?e+360:e}function xf(t,e){return t[0]-e[0]}function kf(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}var Ef,Af,Sf,Mf,Tf,Df,Cf,Of,Rf,Nf,If,Bf,Lf,Pf,Ff,qf,jf=function(t){var e,n,r,i,a,o,s;if(af=rf=-(ef=nf=1/0),ff=[],qc(t,df),n=ff.length){for(ff.sort(xf),e=1,a=[r=ff[0]];e<n;++e)kf(r,(i=ff[e])[0])||kf(r,i[1])?(wf(r[0],i[1])>wf(r[0],r[1])&&(r[1]=i[1]),wf(i[0],r[1])>wf(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,e=0,r=a[n=a.length-1];e<=n;r=i,++e)i=a[e],(s=wf(r[1],i[0]))>o&&(o=s,ef=i[0],rf=r[1])}return ff=lf=null,ef===1/0||nf===1/0?[[NaN,NaN],[NaN,NaN]]:[[ef,nf],[rf,af]]},Uf={sphere:Tc,point:zf,lineStart:Hf,lineEnd:Gf,polygonStart:function(){Uf.lineStart=Wf,Uf.lineEnd=Kf},polygonEnd:function(){Uf.lineStart=Hf,Uf.lineEnd=Gf}};function zf(t,e){t*=hc;var n=yc(e*=hc);Yf(n*yc(t),n*wc(t),wc(e))}function Yf(t,e,n){Sf+=(t-Sf)/++Ef,Mf+=(e-Mf)/Ef,Tf+=(n-Tf)/Ef}function Hf(){Uf.point=Vf}function Vf(t,e){t*=hc;var n=yc(e*=hc);Pf=n*yc(t),Ff=n*wc(t),qf=wc(e),Uf.point=$f,Yf(Pf,Ff,qf)}function $f(t,e){t*=hc;var n=yc(e*=hc),r=n*yc(t),i=n*wc(t),a=wc(e),o=gc(kc((o=Ff*a-qf*i)*o+(o=qf*r-Pf*a)*o+(o=Pf*i-Ff*r)*o),Pf*r+Ff*i+qf*a);Af+=o,Df+=o*(Pf+(Pf=r)),Cf+=o*(Ff+(Ff=i)),Of+=o*(qf+(qf=a)),Yf(Pf,Ff,qf)}function Gf(){Uf.point=zf}function Wf(){Uf.point=Xf}function Kf(){Zf(Bf,Lf),Uf.point=zf}function Xf(t,e){Bf=t,Lf=e,t*=hc,e*=hc,Uf.point=Zf;var n=yc(e);Pf=n*yc(t),Ff=n*wc(t),qf=wc(e),Yf(Pf,Ff,qf)}function Zf(t,e){t*=hc;var n=yc(e*=hc),r=n*yc(t),i=n*wc(t),a=wc(e),o=Ff*a-qf*i,s=qf*r-Pf*a,u=Pf*i-Ff*r,c=kc(o*o+s*s+u*u),f=Sc(c),l=c&&-f/c;Rf+=l*o,Nf+=l*s,If+=l*u,Af+=f,Df+=f*(Pf+(Pf=r)),Cf+=f*(Ff+(Ff=i)),Of+=f*(qf+(qf=a)),Yf(Pf,Ff,qf)}var Jf=function(t){Ef=Af=Sf=Mf=Tf=Df=Cf=Of=Rf=Nf=If=0,qc(t,Uf);var e=Rf,n=Nf,r=If,i=e*e+n*n+r*r;return i<oc&&(e=Df,n=Cf,r=Of,Af<ac&&(e=Sf,n=Mf,r=Tf),(i=e*e+n*n+r*r)<oc)?[NaN,NaN]:[gc(n,e)*lc,Sc(r/kc(i))*lc]},Qf=function(t){return function(){return t}},tl=function(t,e){function n(n,r){return n=t(n,r),e(n[0],n[1])}return t.invert&&e.invert&&(n.invert=function(n,r){return(n=e.invert(n,r))&&t.invert(n[0],n[1])}),n};function el(t,e){return[dc(t)>sc?t+Math.round(-t/fc)*fc:t,e]}function nl(t,e,n){return(t%=fc)?e||n?tl(il(t),al(e,n)):il(t):e||n?al(e,n):el}function rl(t){return function(e,n){return[(e+=t)>sc?e-fc:e<-sc?e+fc:e,n]}}function il(t){var e=rl(t);return e.invert=rl(-t),e}function al(t,e){var n=yc(t),r=wc(t),i=yc(e),a=wc(e);function o(t,e){var o=yc(e),s=yc(t)*o,u=wc(t)*o,c=wc(e),f=c*n+s*r;return[gc(u*i-f*a,s*n-c*r),Sc(f*i+u*a)]}return o.invert=function(t,e){var o=yc(e),s=yc(t)*o,u=wc(t)*o,c=wc(e),f=c*i-u*a;return[gc(u*i+c*a,s*n+f*r),Sc(f*n-s*r)]},o}el.invert=el;var ol=function(t){function e(e){return(e=t(e[0]*hc,e[1]*hc))[0]*=lc,e[1]*=lc,e}return t=nl(t[0]*hc,t[1]*hc,t.length>2?t[2]*hc:0),e.invert=function(e){return(e=t.invert(e[0]*hc,e[1]*hc))[0]*=lc,e[1]*=lc,e},e};function sl(t,e,n,r,i,a){if(n){var o=yc(e),s=wc(e),u=r*n;null==i?(i=e+r*fc,a=e-u/2):(i=ul(o,i),a=ul(o,a),(r>0?i<a:i>a)&&(i+=r*fc));for(var c,f=i;r>0?f>a:f<a;f-=u)c=Wc([o,-s*yc(f),-s*wc(f)]),t.point(c[0],c[1])}}function ul(t,e){(e=Kc(e))[0]-=t,tf(e);var n=Ac(-e[1]);return((-e[2]<0?-n:n)+fc-ac)%fc}var cl=function(){var t,e,n=Qf([0,0]),r=Qf(90),i=Qf(6),a={point:function(n,r){t.push(n=e(n,r)),n[0]*=lc,n[1]*=lc}};function o(){var o=n.apply(this,arguments),s=r.apply(this,arguments)*hc,u=i.apply(this,arguments)*hc;return t=[],e=nl(-o[0]*hc,-o[1]*hc,0).invert,sl(a,s,u,1),o={type:"Polygon",coordinates:[t]},t=e=null,o}return o.center=function(t){return arguments.length?(n="function"==typeof t?t:Qf([+t[0],+t[1]]),o):n},o.radius=function(t){return arguments.length?(r="function"==typeof t?t:Qf(+t),o):r},o.precision=function(t){return arguments.length?(i="function"==typeof t?t:Qf(+t),o):i},o},fl=function(){var t,e=[];return{point:function(e,n){t.push([e,n])},lineStart:function(){e.push(t=[])},lineEnd:Tc,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}},ll=function(t,e){return dc(t[0]-e[0])<ac&&dc(t[1]-e[1])<ac};function hl(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}var dl=function(t,e,n,r,i){var a,o,s=[],u=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,n,r=t[0],o=t[e];if(ll(r,o)){for(i.lineStart(),a=0;a<e;++a)i.point((r=t[a])[0],r[1]);i.lineEnd()}else s.push(n=new hl(r,t,null,!0)),u.push(n.o=new hl(r,null,n,!1)),s.push(n=new hl(o,t,null,!1)),u.push(n.o=new hl(o,null,n,!0))}})),s.length){for(u.sort(e),pl(s),pl(u),a=0,o=u.length;a<o;++a)u[a].e=n=!n;for(var c,f,l=s[0];;){for(var h=l,d=!0;h.v;)if((h=h.n)===l)return;c=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(a=0,o=c.length;a<o;++a)i.point((f=c[a])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(c=h.p.z,a=c.length-1;a>=0;--a)i.point((f=c[a])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}c=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}};function pl(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r<e;)i.n=n=t[r],n.p=i,i=n;i.n=n=t[0],n.p=i}}var gl=ec();function yl(t){return dc(t[0])<=sc?t[0]:xc(t[0])*((dc(t[0])+sc)%fc-sc)}var bl=function(t,e){var n=yl(e),r=e[1],i=wc(r),a=[wc(n),-yc(n),0],o=0,s=0;gl.reset(),1===i?r=uc+ac:-1===i&&(r=-uc-ac);for(var u=0,c=t.length;u<c;++u)if(l=(f=t[u]).length)for(var f,l,h=f[l-1],d=yl(h),p=h[1]/2+cc,g=wc(p),y=yc(p),b=0;b<l;++b,d=v,g=w,y=x,h=m){var m=f[b],v=yl(m),_=m[1]/2+cc,w=wc(_),x=yc(_),k=v-d,E=k>=0?1:-1,A=E*k,S=A>sc,M=g*w;if(gl.add(gc(M*E*wc(A),y*x+M*yc(A))),o+=S?k+E*fc:k,S^d>=n^v>=n){var T=Zc(Kc(h),Kc(m));tf(T);var D=Zc(a,T);tf(D);var C=(S^k>=0?-1:1)*Sc(D[2]);(r>C||r===C&&(T[0]||T[1]))&&(s+=S^k>=0?1:-1)}}return(o<-ac||o<ac&&gl<-ac)^1&s},ml=function(t,e,n,r){return function(i){var a,o,s,u=e(i),c=fl(),f=e(c),l=!1,h={point:d,lineStart:g,lineEnd:y,polygonStart:function(){h.point=b,h.lineStart=m,h.lineEnd=v,o=[],a=[]},polygonEnd:function(){h.point=d,h.lineStart=g,h.lineEnd=y,o=P(o);var t=bl(a,r);o.length?(l||(i.polygonStart(),l=!0),dl(o,_l,t,n,i)):t&&(l||(i.polygonStart(),l=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),l&&(i.polygonEnd(),l=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(e,n){t(e,n)&&i.point(e,n)}function p(t,e){u.point(t,e)}function g(){h.point=p,u.lineStart()}function y(){h.point=d,u.lineEnd()}function b(t,e){s.push([t,e]),f.point(t,e)}function m(){f.lineStart(),s=[]}function v(){b(s[0][0],s[0][1]),f.lineEnd();var t,e,n,r,u=f.clean(),h=c.result(),d=h.length;if(s.pop(),a.push(s),s=null,d)if(1&u){if((e=(n=h[0]).length-1)>0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t<e;++t)i.point((r=n[t])[0],r[1]);i.lineEnd()}}else d>1&&2&u&&h.push(h.pop().concat(h.shift())),o.push(h.filter(vl))}return h}};function vl(t){return t.length>1}function _l(t,e){return((t=t.x)[0]<0?t[1]-uc-ac:uc-t[1])-((e=e.x)[0]<0?e[1]-uc-ac:uc-e[1])}var wl=ml((function(){return!0}),(function(t){var e,n=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?sc:-sc,u=dc(a-n);dc(u-sc)<ac?(t.point(n,r=(r+o)/2>0?uc:-uc),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),t.point(a,r),e=0):i!==s&&u>=sc&&(dc(n-i)<ac&&(n-=i*ac),dc(a-s)<ac&&(a-=s*ac),r=function(t,e,n,r){var i,a,o=wc(t-n);return dc(o)>ac?pc((wc(e)*(a=yc(r))*wc(n)-wc(r)*(i=yc(e))*wc(t))/(i*a*o)):(e+r)/2}(n,r,a,o),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(s,r),e=0),t.point(n=a,r=o),i=s},lineEnd:function(){t.lineEnd(),n=r=NaN},clean:function(){return 2-e}}}),(function(t,e,n,r){var i;if(null==t)i=n*uc,r.point(-sc,i),r.point(0,i),r.point(sc,i),r.point(sc,0),r.point(sc,-i),r.point(0,-i),r.point(-sc,-i),r.point(-sc,0),r.point(-sc,i);else if(dc(t[0]-e[0])>ac){var a=t[0]<e[0]?sc:-sc;i=n*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(e[0],e[1])}),[-sc,-uc]);var xl=function(t){var e=yc(t),n=6*hc,r=e>0,i=dc(e)>ac;function a(t,n){return yc(t)*yc(n)>e}function o(t,n,r){var i=[1,0,0],a=Zc(Kc(t),Kc(n)),o=Xc(a,a),s=a[0],u=o-s*s;if(!u)return!r&&t;var c=e*o/u,f=-e*s/u,l=Zc(i,a),h=Qc(i,c);Jc(h,Qc(a,f));var d=l,p=Xc(h,d),g=Xc(d,d),y=p*p-g*(Xc(h,h)-1);if(!(y<0)){var b=kc(y),m=Qc(d,(-p-b)/g);if(Jc(m,h),m=Wc(m),!r)return m;var v,_=t[0],w=n[0],x=t[1],k=n[1];w<_&&(v=_,_=w,w=v);var E=w-_,A=dc(E-sc)<ac;if(!A&&k<x&&(v=x,x=k,k=v),A||E<ac?A?x+k>0^m[1]<(dc(m[0]-_)<ac?x:k):x<=m[1]&&m[1]<=k:E>sc^(_<=m[0]&&m[0]<=w)){var S=Qc(d,(-p+b)/g);return Jc(S,h),[m,Wc(S)]}}}function s(e,n){var i=r?t:sc-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return ml(a,(function(t){var e,n,u,c,f;return{lineStart:function(){c=u=!1,f=1},point:function(l,h){var d,p=[l,h],g=a(l,h),y=r?g?0:s(l,h):g?s(l+(l<0?sc:-sc),h):0;if(!e&&(c=u=g)&&t.lineStart(),g!==u&&(!(d=o(e,p))||ll(e,d)||ll(p,d))&&(p[0]+=ac,p[1]+=ac,g=a(p[0],p[1])),g!==u)f=0,g?(t.lineStart(),d=o(p,e),t.point(d[0],d[1])):(d=o(e,p),t.point(d[0],d[1]),t.lineEnd()),e=d;else if(i&&e&&r^g){var b;y&n||!(b=o(p,e,!0))||(f=0,r?(t.lineStart(),t.point(b[0][0],b[0][1]),t.point(b[1][0],b[1][1]),t.lineEnd()):(t.point(b[1][0],b[1][1]),t.lineEnd(),t.lineStart(),t.point(b[0][0],b[0][1])))}!g||e&&ll(e,p)||t.point(p[0],p[1]),e=p,u=g,n=y},lineEnd:function(){u&&t.lineEnd(),e=null},clean:function(){return f|(c&&u)<<1}}}),(function(e,r,i,a){sl(a,t,n,i,e,r)}),r?[0,-t]:[-sc,t-sc])},kl=function(t,e,n,r,i,a){var o,s=t[0],u=t[1],c=0,f=1,l=e[0]-s,h=e[1]-u;if(o=n-s,l||!(o>0)){if(o/=l,l<0){if(o<c)return;o<f&&(f=o)}else if(l>0){if(o>f)return;o>c&&(c=o)}if(o=i-s,l||!(o<0)){if(o/=l,l<0){if(o>f)return;o>c&&(c=o)}else if(l>0){if(o<c)return;o<f&&(f=o)}if(o=r-u,h||!(o>0)){if(o/=h,h<0){if(o<c)return;o<f&&(f=o)}else if(h>0){if(o>f)return;o>c&&(c=o)}if(o=a-u,h||!(o<0)){if(o/=h,h<0){if(o>f)return;o>c&&(c=o)}else if(h>0){if(o<c)return;o<f&&(f=o)}return c>0&&(t[0]=s+c*l,t[1]=u+c*h),f<1&&(e[0]=s+f*l,e[1]=u+f*h),!0}}}}},El=1e9,Al=-El;function Sl(t,e,n,r){function i(i,a){return t<=i&&i<=n&&e<=a&&a<=r}function a(i,a,s,c){var f=0,l=0;if(null==i||(f=o(i,s))!==(l=o(a,s))||u(i,a)<0^s>0)do{c.point(0===f||3===f?t:n,f>1?r:e)}while((f=(f+s+4)%4)!==l);else c.point(a[0],a[1])}function o(r,i){return dc(r[0]-t)<ac?i>0?0:3:dc(r[0]-n)<ac?i>0?2:1:dc(r[1]-e)<ac?i>0?1:0:i>0?3:2}function s(t,e){return u(t.x,e.x)}function u(t,e){var n=o(t,1),r=o(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(o){var u,c,f,l,h,d,p,g,y,b,m,v=o,_=fl(),w={point:x,lineStart:function(){w.point=k,c&&c.push(f=[]);b=!0,y=!1,p=g=NaN},lineEnd:function(){u&&(k(l,h),d&&y&&_.rejoin(),u.push(_.result()));w.point=x,y&&v.lineEnd()},polygonStart:function(){v=_,u=[],c=[],m=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,i=c.length;n<i;++n)for(var a,o,s=c[n],u=1,f=s.length,l=s[0],h=l[0],d=l[1];u<f;++u)a=h,o=d,l=s[u],h=l[0],d=l[1],o<=r?d>r&&(h-a)*(r-o)>(d-o)*(t-a)&&++e:d<=r&&(h-a)*(r-o)<(d-o)*(t-a)&&--e;return e}(),n=m&&e,i=(u=P(u)).length;(n||i)&&(o.polygonStart(),n&&(o.lineStart(),a(null,null,1,o),o.lineEnd()),i&&dl(u,s,e,a,o),o.polygonEnd());v=o,u=c=f=null}};function x(t,e){i(t,e)&&v.point(t,e)}function k(a,o){var s=i(a,o);if(c&&f.push([a,o]),b)l=a,h=o,d=s,b=!1,s&&(v.lineStart(),v.point(a,o));else if(s&&y)v.point(a,o);else{var u=[p=Math.max(Al,Math.min(El,p)),g=Math.max(Al,Math.min(El,g))],_=[a=Math.max(Al,Math.min(El,a)),o=Math.max(Al,Math.min(El,o))];kl(u,_,t,e,n,r)?(y||(v.lineStart(),v.point(u[0],u[1])),v.point(_[0],_[1]),s||v.lineEnd(),m=!1):s&&(v.lineStart(),v.point(a,o),m=!1)}p=a,g=o,y=s}return w}}var Ml,Tl,Dl,Cl=function(){var t,e,n,r=0,i=0,a=960,o=500;return n={stream:function(n){return t&&e===n?t:t=Sl(r,i,a,o)(e=n)},extent:function(s){return arguments.length?(r=+s[0][0],i=+s[0][1],a=+s[1][0],o=+s[1][1],t=e=null,n):[[r,i],[a,o]]}}},Ol=ec(),Rl={sphere:Tc,point:Tc,lineStart:function(){Rl.point=Il,Rl.lineEnd=Nl},lineEnd:Tc,polygonStart:Tc,polygonEnd:Tc};function Nl(){Rl.point=Rl.lineEnd=Tc}function Il(t,e){Ml=t*=hc,Tl=wc(e*=hc),Dl=yc(e),Rl.point=Bl}function Bl(t,e){t*=hc;var n=wc(e*=hc),r=yc(e),i=dc(t-Ml),a=yc(i),o=r*wc(i),s=Dl*n-Tl*r*a,u=Tl*n+Dl*r*a;Ol.add(gc(kc(o*o+s*s),u)),Ml=t,Tl=n,Dl=r}var Ll=function(t){return Ol.reset(),qc(t,Rl),+Ol},Pl=[null,null],Fl={type:"LineString",coordinates:Pl},ql=function(t,e){return Pl[0]=t,Pl[1]=e,Ll(Fl)},jl={Feature:function(t,e){return zl(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)if(zl(n[r].geometry,e))return!0;return!1}},Ul={Sphere:function(){return!0},Point:function(t,e){return Yl(t.coordinates,e)},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(Yl(n[r],e))return!0;return!1},LineString:function(t,e){return Hl(t.coordinates,e)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(Hl(n[r],e))return!0;return!1},Polygon:function(t,e){return Vl(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)if(Vl(n[r],e))return!0;return!1},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)if(zl(n[r],e))return!0;return!1}};function zl(t,e){return!(!t||!Ul.hasOwnProperty(t.type))&&Ul[t.type](t,e)}function Yl(t,e){return 0===ql(t,e)}function Hl(t,e){for(var n,r,i,a=0,o=t.length;a<o;a++){if(0===(r=ql(t[a],e)))return!0;if(a>0&&(i=ql(t[a],t[a-1]))>0&&n<=i&&r<=i&&(n+r-i)*(1-Math.pow((n-r)/i,2))<oc*i)return!0;n=r}return!1}function Vl(t,e){return!!bl(t.map($l),Gl(e))}function $l(t){return(t=t.map(Gl)).pop(),t}function Gl(t){return[t[0]*hc,t[1]*hc]}var Wl=function(t,e){return(t&&jl.hasOwnProperty(t.type)?jl[t.type]:zl)(t,e)};function Kl(t,e,n){var r=x(t,e-ac,n).concat(e);return function(t){return r.map((function(e){return[t,e]}))}}function Xl(t,e,n){var r=x(t,e-ac,n).concat(e);return function(t){return r.map((function(e){return[e,t]}))}}function Zl(){var t,e,n,r,i,a,o,s,u,c,f,l,h=10,d=h,p=90,g=360,y=2.5;function b(){return{type:"MultiLineString",coordinates:m()}}function m(){return x(bc(r/p)*p,n,p).map(f).concat(x(bc(s/g)*g,o,g).map(l)).concat(x(bc(e/h)*h,t,h).filter((function(t){return dc(t%p)>ac})).map(u)).concat(x(bc(a/d)*d,i,d).filter((function(t){return dc(t%g)>ac})).map(c))}return b.lines=function(){return m().map((function(t){return{type:"LineString",coordinates:t}}))},b.outline=function(){return{type:"Polygon",coordinates:[f(r).concat(l(o).slice(1),f(n).reverse().slice(1),l(s).reverse().slice(1))]}},b.extent=function(t){return arguments.length?b.extentMajor(t).extentMinor(t):b.extentMinor()},b.extentMajor=function(t){return arguments.length?(r=+t[0][0],n=+t[1][0],s=+t[0][1],o=+t[1][1],r>n&&(t=r,r=n,n=t),s>o&&(t=s,s=o,o=t),b.precision(y)):[[r,s],[n,o]]},b.extentMinor=function(n){return arguments.length?(e=+n[0][0],t=+n[1][0],a=+n[0][1],i=+n[1][1],e>t&&(n=e,e=t,t=n),a>i&&(n=a,a=i,i=n),b.precision(y)):[[e,a],[t,i]]},b.step=function(t){return arguments.length?b.stepMajor(t).stepMinor(t):b.stepMinor()},b.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],b):[p,g]},b.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],b):[h,d]},b.precision=function(h){return arguments.length?(y=+h,u=Kl(a,i,90),c=Xl(e,t,y),f=Kl(s,o,90),l=Xl(r,n,y),b):y},b.extentMajor([[-180,-90+ac],[180,90-ac]]).extentMinor([[-180,-80-ac],[180,80+ac]])}function Jl(){return Zl()()}var Ql,th,eh,nh,rh=function(t,e){var n=t[0]*hc,r=t[1]*hc,i=e[0]*hc,a=e[1]*hc,o=yc(r),s=wc(r),u=yc(a),c=wc(a),f=o*yc(n),l=o*wc(n),h=u*yc(i),d=u*wc(i),p=2*Sc(kc(Mc(a-r)+o*u*Mc(i-n))),g=wc(p),y=p?function(t){var e=wc(t*=p)/g,n=wc(p-t)/g,r=n*f+e*h,i=n*l+e*d,a=n*s+e*c;return[gc(i,r)*lc,gc(a,kc(r*r+i*i))*lc]}:function(){return[n*lc,r*lc]};return y.distance=p,y},ih=function(t){return t},ah=ec(),oh=ec(),sh={point:Tc,lineStart:Tc,lineEnd:Tc,polygonStart:function(){sh.lineStart=uh,sh.lineEnd=lh},polygonEnd:function(){sh.lineStart=sh.lineEnd=sh.point=Tc,ah.add(dc(oh)),oh.reset()},result:function(){var t=ah/2;return ah.reset(),t}};function uh(){sh.point=ch}function ch(t,e){sh.point=fh,Ql=eh=t,th=nh=e}function fh(t,e){oh.add(nh*t-eh*e),eh=t,nh=e}function lh(){fh(Ql,th)}var hh=sh,dh=1/0,ph=dh,gh=-dh,yh=gh;var bh,mh,vh,_h,wh={point:function(t,e){t<dh&&(dh=t);t>gh&&(gh=t);e<ph&&(ph=e);e>yh&&(yh=e)},lineStart:Tc,lineEnd:Tc,polygonStart:Tc,polygonEnd:Tc,result:function(){var t=[[dh,ph],[gh,yh]];return gh=yh=-(ph=dh=1/0),t}},xh=0,kh=0,Eh=0,Ah=0,Sh=0,Mh=0,Th=0,Dh=0,Ch=0,Oh={point:Rh,lineStart:Nh,lineEnd:Lh,polygonStart:function(){Oh.lineStart=Ph,Oh.lineEnd=Fh},polygonEnd:function(){Oh.point=Rh,Oh.lineStart=Nh,Oh.lineEnd=Lh},result:function(){var t=Ch?[Th/Ch,Dh/Ch]:Mh?[Ah/Mh,Sh/Mh]:Eh?[xh/Eh,kh/Eh]:[NaN,NaN];return xh=kh=Eh=Ah=Sh=Mh=Th=Dh=Ch=0,t}};function Rh(t,e){xh+=t,kh+=e,++Eh}function Nh(){Oh.point=Ih}function Ih(t,e){Oh.point=Bh,Rh(vh=t,_h=e)}function Bh(t,e){var n=t-vh,r=e-_h,i=kc(n*n+r*r);Ah+=i*(vh+t)/2,Sh+=i*(_h+e)/2,Mh+=i,Rh(vh=t,_h=e)}function Lh(){Oh.point=Rh}function Ph(){Oh.point=qh}function Fh(){jh(bh,mh)}function qh(t,e){Oh.point=jh,Rh(bh=vh=t,mh=_h=e)}function jh(t,e){var n=t-vh,r=e-_h,i=kc(n*n+r*r);Ah+=i*(vh+t)/2,Sh+=i*(_h+e)/2,Mh+=i,Th+=(i=_h*t-vh*e)*(vh+t),Dh+=i*(_h+e),Ch+=3*i,Rh(vh=t,_h=e)}var Uh=Oh;function zh(t){this._context=t}zh.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,fc)}},result:Tc};var Yh,Hh,Vh,$h,Gh,Wh=ec(),Kh={point:Tc,lineStart:function(){Kh.point=Xh},lineEnd:function(){Yh&&Zh(Hh,Vh),Kh.point=Tc},polygonStart:function(){Yh=!0},polygonEnd:function(){Yh=null},result:function(){var t=+Wh;return Wh.reset(),t}};function Xh(t,e){Kh.point=Zh,Hh=$h=t,Vh=Gh=e}function Zh(t,e){$h-=t,Gh-=e,Wh.add(kc($h*$h+Gh*Gh)),$h=t,Gh=e}var Jh=Kh;function Qh(){this._string=[]}function td(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}Qh.prototype={_radius:4.5,_circle:td(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=td(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};var ed=function(t,e){var n,r,i=4.5;function a(t){return t&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),qc(t,n(r))),r.result()}return a.area=function(t){return qc(t,n(hh)),hh.result()},a.measure=function(t){return qc(t,n(Jh)),Jh.result()},a.bounds=function(t){return qc(t,n(wh)),wh.result()},a.centroid=function(t){return qc(t,n(Uh)),Uh.result()},a.projection=function(e){return arguments.length?(n=null==e?(t=null,ih):(t=e).stream,a):t},a.context=function(t){return arguments.length?(r=null==t?(e=null,new Qh):new zh(e=t),"function"!=typeof i&&r.pointRadius(i),a):e},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(r.pointRadius(+t),+t),a):i},a.projection(t).context(e)},nd=function(t){return{stream:rd(t)}};function rd(t){return function(e){var n=new id;for(var r in t)n[r]=t[r];return n.stream=e,n}}function id(){}function ad(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),qc(n,t.stream(wh)),e(wh.result()),null!=r&&t.clipExtent(r),t}function od(t,e,n){return ad(t,(function(n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),o=+e[0][0]+(r-a*(n[1][0]+n[0][0]))/2,s=+e[0][1]+(i-a*(n[1][1]+n[0][1]))/2;t.scale(150*a).translate([o,s])}),n)}function sd(t,e,n){return od(t,[[0,0],e],n)}function ud(t,e,n){return ad(t,(function(n){var r=+e,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,o=-i*n[0][1];t.scale(150*i).translate([a,o])}),n)}function cd(t,e,n){return ad(t,(function(n){var r=+e,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],o=(r-i*(n[1][1]+n[0][1]))/2;t.scale(150*i).translate([a,o])}),n)}id.prototype={constructor:id,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var fd=16,ld=yc(30*hc),hd=function(t,e){return+e?function(t,e){function n(r,i,a,o,s,u,c,f,l,h,d,p,g,y){var b=c-r,m=f-i,v=b*b+m*m;if(v>4*e&&g--){var _=o+h,w=s+d,x=u+p,k=kc(_*_+w*w+x*x),E=Sc(x/=k),A=dc(dc(x)-1)<ac||dc(a-l)<ac?(a+l)/2:gc(w,_),S=t(A,E),M=S[0],T=S[1],D=M-r,C=T-i,O=m*D-b*C;(O*O/v>e||dc((b*D+m*C)/v-.5)>.3||o*h+s*d+u*p<ld)&&(n(r,i,a,o,s,u,M,T,A,_/=k,w/=k,x,g,y),y.point(M,T),n(M,T,A,_,w,x,c,f,l,h,d,p,g,y))}}return function(e){var r,i,a,o,s,u,c,f,l,h,d,p,g={point:y,lineStart:b,lineEnd:v,polygonStart:function(){e.polygonStart(),g.lineStart=_},polygonEnd:function(){e.polygonEnd(),g.lineStart=b}};function y(n,r){n=t(n,r),e.point(n[0],n[1])}function b(){f=NaN,g.point=m,e.lineStart()}function m(r,i){var a=Kc([r,i]),o=t(r,i);n(f,l,c,h,d,p,f=o[0],l=o[1],c=r,h=a[0],d=a[1],p=a[2],fd,e),e.point(f,l)}function v(){g.point=y,e.lineEnd()}function _(){b(),g.point=w,g.lineEnd=x}function w(t,e){m(r=t,e),i=f,a=l,o=h,s=d,u=p,g.point=m}function x(){n(f,l,c,h,d,p,i,a,r,o,s,u,fd,e),g.lineEnd=v,v()}return g}}(t,e):function(t){return rd({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}(t)};var dd=rd({point:function(t,e){this.stream.point(t*hc,e*hc)}});function pd(t,e,n){function r(r,i){return[e+t*r,n-t*i]}return r.invert=function(r,i){return[(r-e)/t,(n-i)/t]},r}function gd(t,e,n,r){var i=yc(r),a=wc(r),o=i*t,s=a*t,u=i/t,c=a/t,f=(a*n-i*e)/t,l=(a*e+i*n)/t;function h(t,r){return[o*t-s*r+e,n-s*t-o*r]}return h.invert=function(t,e){return[u*t-c*e+f,l-c*t-u*e]},h}function yd(t){return bd((function(){return t}))()}function bd(t){var e,n,r,i,a,o,s,u,c,f,l=150,h=480,d=250,p=0,g=0,y=0,b=0,m=0,v=0,_=null,w=wl,x=null,k=ih,E=.5;function A(t){return u(t[0]*hc,t[1]*hc)}function S(t){return(t=u.invert(t[0],t[1]))&&[t[0]*lc,t[1]*lc]}function M(){var t=gd(l,0,0,v).apply(null,e(p,g)),r=(v?gd:pd)(l,h-t[0],d-t[1],v);return n=nl(y,b,m),s=tl(e,r),u=tl(n,s),o=hd(s,E),T()}function T(){return c=f=null,A}return A.stream=function(t){return c&&f===t?c:c=dd(function(t){return rd({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}(n)(w(o(k(f=t)))))},A.preclip=function(t){return arguments.length?(w=t,_=void 0,T()):w},A.postclip=function(t){return arguments.length?(k=t,x=r=i=a=null,T()):k},A.clipAngle=function(t){return arguments.length?(w=+t?xl(_=t*hc):(_=null,wl),T()):_*lc},A.clipExtent=function(t){return arguments.length?(k=null==t?(x=r=i=a=null,ih):Sl(x=+t[0][0],r=+t[0][1],i=+t[1][0],a=+t[1][1]),T()):null==x?null:[[x,r],[i,a]]},A.scale=function(t){return arguments.length?(l=+t,M()):l},A.translate=function(t){return arguments.length?(h=+t[0],d=+t[1],M()):[h,d]},A.center=function(t){return arguments.length?(p=t[0]%360*hc,g=t[1]%360*hc,M()):[p*lc,g*lc]},A.rotate=function(t){return arguments.length?(y=t[0]%360*hc,b=t[1]%360*hc,m=t.length>2?t[2]%360*hc:0,M()):[y*lc,b*lc,m*lc]},A.angle=function(t){return arguments.length?(v=t%360*hc,M()):v*lc},A.precision=function(t){return arguments.length?(o=hd(s,E=t*t),T()):kc(E)},A.fitExtent=function(t,e){return od(A,t,e)},A.fitSize=function(t,e){return sd(A,t,e)},A.fitWidth=function(t,e){return ud(A,t,e)},A.fitHeight=function(t,e){return cd(A,t,e)},function(){return e=t.apply(this,arguments),A.invert=e.invert&&S,M()}}function md(t){var e=0,n=sc/3,r=bd(t),i=r(e,n);return i.parallels=function(t){return arguments.length?r(e=t[0]*hc,n=t[1]*hc):[e*lc,n*lc]},i}function vd(t,e){var n=wc(t),r=(n+wc(e))/2;if(dc(r)<ac)return function(t){var e=yc(t);function n(t,n){return[t*e,wc(n)/e]}return n.invert=function(t,n){return[t/e,Sc(n*e)]},n}(t);var i=1+n*(2*r-n),a=kc(i)/r;function o(t,e){var n=kc(i-2*r*wc(e))/r;return[n*wc(t*=r),a-n*yc(t)]}return o.invert=function(t,e){var n=a-e;return[gc(t,dc(n))/r*xc(n),Sc((i-(t*t+n*n)*r*r)/(2*r))]},o}var _d=function(){return md(vd).scale(155.424).center([0,33.6442])},wd=function(){return _d().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])};var xd=function(){var t,e,n,r,i,a,o=wd(),s=_d().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=_d().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(t,e){a=[t,e]}};function f(t){var e=t[0],o=t[1];return a=null,n.point(e,o),a||(r.point(e,o),a)||(i.point(e,o),a)}function l(){return t=e=null,f}return f.invert=function(t){var e=o.scale(),n=o.translate(),r=(t[0]-n[0])/e,i=(t[1]-n[1])/e;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?u:o).invert(t)},f.stream=function(n){return t&&e===n?t:(r=[o.stream(e=n),s.stream(n),u.stream(n)],i=r.length,t={point:function(t,e){for(var n=-1;++n<i;)r[n].point(t,e)},sphere:function(){for(var t=-1;++t<i;)r[t].sphere()},lineStart:function(){for(var t=-1;++t<i;)r[t].lineStart()},lineEnd:function(){for(var t=-1;++t<i;)r[t].lineEnd()},polygonStart:function(){for(var t=-1;++t<i;)r[t].polygonStart()},polygonEnd:function(){for(var t=-1;++t<i;)r[t].polygonEnd()}});var r,i},f.precision=function(t){return arguments.length?(o.precision(t),s.precision(t),u.precision(t),l()):o.precision()},f.scale=function(t){return arguments.length?(o.scale(t),s.scale(.35*t),u.scale(t),f.translate(o.translate())):o.scale()},f.translate=function(t){if(!arguments.length)return o.translate();var e=o.scale(),a=+t[0],f=+t[1];return n=o.translate(t).clipExtent([[a-.455*e,f-.238*e],[a+.455*e,f+.238*e]]).stream(c),r=s.translate([a-.307*e,f+.201*e]).clipExtent([[a-.425*e+ac,f+.12*e+ac],[a-.214*e-ac,f+.234*e-ac]]).stream(c),i=u.translate([a-.205*e,f+.212*e]).clipExtent([[a-.214*e+ac,f+.166*e+ac],[a-.115*e-ac,f+.234*e-ac]]).stream(c),l()},f.fitExtent=function(t,e){return od(f,t,e)},f.fitSize=function(t,e){return sd(f,t,e)},f.fitWidth=function(t,e){return ud(f,t,e)},f.fitHeight=function(t,e){return cd(f,t,e)},f.scale(1070)};function kd(t){return function(e,n){var r=yc(e),i=yc(n),a=t(r*i);return[a*i*wc(e),a*wc(n)]}}function Ed(t){return function(e,n){var r=kc(e*e+n*n),i=t(r),a=wc(i),o=yc(i);return[gc(e*a,r*o),Sc(r&&n*a/r)]}}var Ad=kd((function(t){return kc(2/(1+t))}));Ad.invert=Ed((function(t){return 2*Sc(t/2)}));var Sd=function(){return yd(Ad).scale(124.75).clipAngle(179.999)},Md=kd((function(t){return(t=Ac(t))&&t/wc(t)}));Md.invert=Ed((function(t){return t}));var Td=function(){return yd(Md).scale(79.4188).clipAngle(179.999)};function Dd(t,e){return[t,vc(Ec((uc+e)/2))]}Dd.invert=function(t,e){return[t,2*pc(mc(e))-uc]};var Cd=function(){return Od(Dd).scale(961/fc)};function Od(t){var e,n,r,i=yd(t),a=i.center,o=i.scale,s=i.translate,u=i.clipExtent,c=null;function f(){var a=sc*o(),s=i(ol(i.rotate()).invert([0,0]));return u(null==c?[[s[0]-a,s[1]-a],[s[0]+a,s[1]+a]]:t===Dd?[[Math.max(s[0]-a,c),e],[Math.min(s[0]+a,n),r]]:[[c,Math.max(s[1]-a,e)],[n,Math.min(s[1]+a,r)]])}return i.scale=function(t){return arguments.length?(o(t),f()):o()},i.translate=function(t){return arguments.length?(s(t),f()):s()},i.center=function(t){return arguments.length?(a(t),f()):a()},i.clipExtent=function(t){return arguments.length?(null==t?c=e=n=r=null:(c=+t[0][0],e=+t[0][1],n=+t[1][0],r=+t[1][1]),f()):null==c?null:[[c,e],[n,r]]},f()}function Rd(t){return Ec((uc+t)/2)}function Nd(t,e){var n=yc(t),r=t===e?wc(t):vc(n/yc(e))/vc(Rd(e)/Rd(t)),i=n*_c(Rd(t),r)/r;if(!r)return Dd;function a(t,e){i>0?e<-uc+ac&&(e=-uc+ac):e>uc-ac&&(e=uc-ac);var n=i/_c(Rd(e),r);return[n*wc(r*t),i-n*yc(r*t)]}return a.invert=function(t,e){var n=i-e,a=xc(r)*kc(t*t+n*n);return[gc(t,dc(n))/r*xc(n),2*pc(_c(i/a,1/r))-uc]},a}var Id=function(){return md(Nd).scale(109.5).parallels([30,30])};function Bd(t,e){return[t,e]}Bd.invert=Bd;var Ld=function(){return yd(Bd).scale(152.63)};function Pd(t,e){var n=yc(t),r=t===e?wc(t):(n-yc(e))/(e-t),i=n/r+t;if(dc(r)<ac)return Bd;function a(t,e){var n=i-e,a=r*t;return[n*wc(a),i-n*yc(a)]}return a.invert=function(t,e){var n=i-e;return[gc(t,dc(n))/r*xc(n),i-xc(r)*kc(t*t+n*n)]},a}var Fd=function(){return md(Pd).scale(131.154).center([0,13.9389])},qd=1.340264,jd=-.081106,Ud=893e-6,zd=.003796,Yd=kc(3)/2;function Hd(t,e){var n=Sc(Yd*wc(e)),r=n*n,i=r*r*r;return[t*yc(n)/(Yd*(qd+3*jd*r+i*(7*Ud+9*zd*r))),n*(qd+jd*r+i*(Ud+zd*r))]}Hd.invert=function(t,e){for(var n,r=e,i=r*r,a=i*i*i,o=0;o<12&&(a=(i=(r-=n=(r*(qd+jd*i+a*(Ud+zd*i))-e)/(qd+3*jd*i+a*(7*Ud+9*zd*i)))*r)*i*i,!(dc(n)<oc));++o);return[Yd*t*(qd+3*jd*i+a*(7*Ud+9*zd*i))/yc(r),Sc(wc(r)/Yd)]};var Vd=function(){return yd(Hd).scale(177.158)};function $d(t,e){var n=yc(e),r=yc(t)*n;return[n*wc(t)/r,wc(e)/r]}$d.invert=Ed(pc);var Gd=function(){return yd($d).scale(144.049).clipAngle(60)};function Wd(t,e,n,r){return 1===t&&1===e&&0===n&&0===r?ih:rd({point:function(i,a){this.stream.point(i*t+n,a*e+r)}})}var Kd=function(){var t,e,n,r,i,a,o=1,s=0,u=0,c=1,f=1,l=ih,h=null,d=ih;function p(){return r=i=null,a}return a={stream:function(t){return r&&i===t?r:r=l(d(i=t))},postclip:function(r){return arguments.length?(d=r,h=t=e=n=null,p()):d},clipExtent:function(r){return arguments.length?(d=null==r?(h=t=e=n=null,ih):Sl(h=+r[0][0],t=+r[0][1],e=+r[1][0],n=+r[1][1]),p()):null==h?null:[[h,t],[e,n]]},scale:function(t){return arguments.length?(l=Wd((o=+t)*c,o*f,s,u),p()):o},translate:function(t){return arguments.length?(l=Wd(o*c,o*f,s=+t[0],u=+t[1]),p()):[s,u]},reflectX:function(t){return arguments.length?(l=Wd(o*(c=t?-1:1),o*f,s,u),p()):c<0},reflectY:function(t){return arguments.length?(l=Wd(o*c,o*(f=t?-1:1),s,u),p()):f<0},fitExtent:function(t,e){return od(a,t,e)},fitSize:function(t,e){return sd(a,t,e)},fitWidth:function(t,e){return ud(a,t,e)},fitHeight:function(t,e){return cd(a,t,e)}}};function Xd(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),e*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}Xd.invert=function(t,e){var n,r=e,i=25;do{var a=r*r,o=a*a;r-=n=(r*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(dc(n)>ac&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]};var Zd=function(){return yd(Xd).scale(175.295)};function Jd(t,e){return[yc(e)*wc(t),wc(e)]}Jd.invert=Ed(Sc);var Qd=function(){return yd(Jd).scale(249.5).clipAngle(90+ac)};function tp(t,e){var n=yc(e),r=1+yc(t)*n;return[n*wc(t)/r,wc(e)/r]}tp.invert=Ed((function(t){return 2*pc(t)}));var ep=function(){return yd(tp).scale(250).clipAngle(142)};function np(t,e){return[vc(Ec((uc+e)/2)),-t]}np.invert=function(t,e){return[-e,2*pc(mc(t))-uc]};var rp=function(){var t=Od(np),e=t.center,n=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?n([t[0],t[1],t.length>2?t[2]+90:90]):[(t=n())[0],t[1],t[2]-90]},n([0,0,90]).scale(159.155)};function ip(t,e){return t.parent===e.parent?1:2}function ap(t,e){return t+e.x}function op(t,e){return Math.max(t,e.y)}var sp=function(){var t=ip,e=1,n=1,r=!1;function i(i){var a,o=0;i.eachAfter((function(e){var n=e.children;n?(e.x=function(t){return t.reduce(ap,0)/t.length}(n),e.y=function(t){return 1+t.reduce(op,0)}(n)):(e.x=a?o+=t(e,a):0,e.y=0,a=e)}));var s=function(t){for(var e;e=t.children;)t=e[0];return t}(i),u=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(i),c=s.x-t(s,u)/2,f=u.x+t(u,s)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*e,t.y=(i.y-t.y)*n}:function(t){t.x=(t.x-c)/(f-c)*e,t.y=(1-(i.y?t.y/i.y:1))*n})}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i};function up(t){var e=0,n=t.children,r=n&&n.length;if(r)for(;--r>=0;)e+=n[r].value;else e=1;t.value=e}function cp(t,e){var n,r,i,a,o,s=new dp(t),u=+t.value&&(s.value=t.value),c=[s];for(null==e&&(e=fp);n=c.pop();)if(u&&(n.value=+n.data.value),(i=e(n.data))&&(o=i.length))for(n.children=new Array(o),a=o-1;a>=0;--a)c.push(r=n.children[a]=new dp(i[a])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(hp)}function fp(t){return t.children}function lp(t){t.data=t.data.data}function hp(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function dp(t){this.data=t,this.depth=this.height=0,this.parent=null}dp.prototype=cp.prototype={constructor:dp,count:function(){return this.eachAfter(up)},each:function(t){var e,n,r,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),n=a.children)for(r=0,i=n.length;r<i;++r)o.push(n[r])}while(o.length);return this},eachAfter:function(t){for(var e,n,r,i=this,a=[i],o=[];i=a.pop();)if(o.push(i),e=i.children)for(n=0,r=e.length;n<r;++n)a.push(e[n]);for(;i=o.pop();)t(i);return this},eachBefore:function(t){for(var e,n,r=this,i=[r];r=i.pop();)if(t(r),e=r.children)for(n=e.length-1;n>=0;--n)i.push(e[n]);return this},sum:function(t){return this.eachAfter((function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,n=function(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;t=n.pop(),e=r.pop();for(;t===e;)i=t,t=n.pop(),e=r.pop();return i}(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(n){n!==t&&e.push({source:n.parent,target:n})})),e},copy:function(){return cp(this).eachBefore(lp)}};var pp=Array.prototype.slice;var gp=function(t){for(var e,n,r=0,i=(t=function(t){for(var e,n,r=t.length;r;)n=Math.random()*r--|0,e=t[r],t[r]=t[n],t[n]=e;return t}(pp.call(t))).length,a=[];r<i;)e=t[r],n&&mp(n,e)?++r:(n=_p(a=yp(a,e)),r=0);return n};function yp(t,e){var n,r;if(vp(e,t))return[e];for(n=0;n<t.length;++n)if(bp(e,t[n])&&vp(wp(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if(bp(wp(t[n],t[r]),e)&&bp(wp(t[n],e),t[r])&&bp(wp(t[r],e),t[n])&&vp(xp(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function bp(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function mp(t,e){var n=t.r-e.r+1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function vp(t,e){for(var n=0;n<e.length;++n)if(!mp(t,e[n]))return!1;return!0}function _p(t){switch(t.length){case 1:return{x:(e=t[0]).x,y:e.y,r:e.r};case 2:return wp(t[0],t[1]);case 3:return xp(t[0],t[1],t[2])}var e}function wp(t,e){var n=t.x,r=t.y,i=t.r,a=e.x,o=e.y,s=e.r,u=a-n,c=o-r,f=s-i,l=Math.sqrt(u*u+c*c);return{x:(n+a+u/l*f)/2,y:(r+o+c/l*f)/2,r:(l+i+s)/2}}function xp(t,e,n){var r=t.x,i=t.y,a=t.r,o=e.x,s=e.y,u=e.r,c=n.x,f=n.y,l=n.r,h=r-o,d=r-c,p=i-s,g=i-f,y=u-a,b=l-a,m=r*r+i*i-a*a,v=m-o*o-s*s+u*u,_=m-c*c-f*f+l*l,w=d*p-h*g,x=(p*_-g*v)/(2*w)-r,k=(g*y-p*b)/w,E=(d*v-h*_)/(2*w)-i,A=(h*b-d*y)/w,S=k*k+A*A-1,M=2*(a+x*k+E*A),T=x*x+E*E-a*a,D=-(S?(M+Math.sqrt(M*M-4*S*T))/(2*S):T/M);return{x:r+x+k*D,y:i+E+A*D,r:D}}function kp(t,e,n){var r,i,a,o,s=t.x-e.x,u=t.y-e.y,c=s*s+u*u;c?(i=e.r+n.r,i*=i,o=t.r+n.r,i>(o*=o)?(r=(c+o-i)/(2*c),a=Math.sqrt(Math.max(0,o/c-r*r)),n.x=t.x-r*s-a*u,n.y=t.y-r*u+a*s):(r=(c+i-o)/(2*c),a=Math.sqrt(Math.max(0,i/c-r*r)),n.x=e.x+r*s-a*u,n.y=e.y+r*u+a*s)):(n.x=e.x+n.r,n.y=e.y)}function Ep(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function Ap(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,a=(e.y*n.r+n.y*e.r)/r;return i*i+a*a}function Sp(t){this._=t,this.next=null,this.previous=null}function Mp(t){if(!(i=t.length))return 0;var e,n,r,i,a,o,s,u,c,f,l;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(n=t[1],e.x=-n.r,n.x=e.r,n.y=0,!(i>2))return e.r+n.r;kp(n,e,r=t[2]),e=new Sp(e),n=new Sp(n),r=new Sp(r),e.next=r.previous=n,n.next=e.previous=r,r.next=n.previous=e;t:for(s=3;s<i;++s){kp(e._,n._,r=t[s]),r=new Sp(r),u=n.next,c=e.previous,f=n._.r,l=e._.r;do{if(f<=l){if(Ep(u._,r._)){n=u,e.next=n,n.previous=e,--s;continue t}f+=u._.r,u=u.next}else{if(Ep(c._,r._)){(e=c).next=n,n.previous=e,--s;continue t}l+=c._.r,c=c.previous}}while(u!==c.next);for(r.previous=e,r.next=n,e.next=n.previous=n=r,a=Ap(e);(r=r.next)!==n;)(o=Ap(r))<a&&(e=r,a=o);n=e.next}for(e=[n._],r=n;(r=r.next)!==n;)e.push(r._);for(r=gp(e),s=0;s<i;++s)(e=t[s]).x-=r.x,e.y-=r.y;return r.r}var Tp=function(t){return Mp(t),t};function Dp(t){return null==t?null:Cp(t)}function Cp(t){if("function"!=typeof t)throw new Error;return t}function Op(){return 0}var Rp=function(t){return function(){return t}};function Np(t){return Math.sqrt(t.value)}var Ip=function(){var t=null,e=1,n=1,r=Op;function i(i){return i.x=e/2,i.y=n/2,t?i.eachBefore(Bp(t)).eachAfter(Lp(r,.5)).eachBefore(Pp(1)):i.eachBefore(Bp(Np)).eachAfter(Lp(Op,1)).eachAfter(Lp(r,i.r/Math.min(e,n))).eachBefore(Pp(Math.min(e,n)/(2*i.r))),i}return i.radius=function(e){return arguments.length?(t=Dp(e),i):t},i.size=function(t){return arguments.length?(e=+t[0],n=+t[1],i):[e,n]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:Rp(+t),i):r},i};function Bp(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function Lp(t,e){return function(n){if(r=n.children){var r,i,a,o=r.length,s=t(n)*e||0;if(s)for(i=0;i<o;++i)r[i].r+=s;if(a=Mp(r),s)for(i=0;i<o;++i)r[i].r-=s;n.r=a+s}}}function Pp(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}var Fp=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},qp=function(t,e,n,r,i){for(var a,o=t.children,s=-1,u=o.length,c=t.value&&(r-e)/t.value;++s<u;)(a=o[s]).y0=n,a.y1=i,a.x0=e,a.x1=e+=a.value*c},jp=function(){var t=1,e=1,n=0,r=!1;function i(i){var a=i.height+1;return i.x0=i.y0=n,i.x1=t,i.y1=e/a,i.eachBefore(function(t,e){return function(r){r.children&&qp(r,r.x0,t*(r.depth+1)/e,r.x1,t*(r.depth+2)/e);var i=r.x0,a=r.y0,o=r.x1-n,s=r.y1-n;o<i&&(i=o=(i+o)/2),s<a&&(a=s=(a+s)/2),r.x0=i,r.y0=a,r.x1=o,r.y1=s}}(e,a)),r&&i.eachBefore(Fp),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(n){return arguments.length?(t=+n[0],e=+n[1],i):[t,e]},i.padding=function(t){return arguments.length?(n=+t,i):n},i},Up="$",zp={depth:-1},Yp={};function Hp(t){return t.id}function Vp(t){return t.parentId}var $p=function(){var t=Hp,e=Vp;function n(n){var r,i,a,o,s,u,c,f=n.length,l=new Array(f),h={};for(i=0;i<f;++i)r=n[i],s=l[i]=new dp(r),null!=(u=t(r,i,n))&&(u+="")&&(h[c=Up+(s.id=u)]=c in h?Yp:s);for(i=0;i<f;++i)if(s=l[i],null!=(u=e(n[i],i,n))&&(u+="")){if(!(o=h[Up+u]))throw new Error("missing: "+u);if(o===Yp)throw new Error("ambiguous: "+u);o.children?o.children.push(s):o.children=[s],s.parent=o}else{if(a)throw new Error("multiple roots");a=s}if(!a)throw new Error("no root");if(a.parent=zp,a.eachBefore((function(t){t.depth=t.parent.depth+1,--f})).eachBefore(hp),a.parent=null,f>0)throw new Error("cycle");return a}return n.id=function(e){return arguments.length?(t=Cp(e),n):t},n.parentId=function(t){return arguments.length?(e=Cp(t),n):e},n};function Gp(t,e){return t.parent===e.parent?1:2}function Wp(t){var e=t.children;return e?e[0]:t.t}function Kp(t){var e=t.children;return e?e[e.length-1]:t.t}function Xp(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function Zp(t,e,n){return t.a.parent===e.parent?t.a:n}function Jp(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}Jp.prototype=Object.create(dp.prototype);var Qp=function(){var t=Gp,e=1,n=1,r=null;function i(i){var u=function(t){for(var e,n,r,i,a,o=new Jp(t,0),s=[o];e=s.pop();)if(r=e._.children)for(e.children=new Array(a=r.length),i=a-1;i>=0;--i)s.push(n=e.children[i]=new Jp(r[i],i)),n.parent=e;return(o.parent=new Jp(null,0)).children=[o],o}(i);if(u.eachAfter(a),u.parent.m=-u.z,u.eachBefore(o),r)i.eachBefore(s);else{var c=i,f=i,l=i;i.eachBefore((function(t){t.x<c.x&&(c=t),t.x>f.x&&(f=t),t.depth>l.depth&&(l=t)}));var h=c===f?1:t(c,f)/2,d=h-c.x,p=e/(f.x+h+d),g=n/(l.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function a(e){var n=e.children,r=e.parent.children,i=e.i?r[e.i-1]:null;if(n){!function(t){for(var e,n=0,r=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=n,e.m+=n,n+=e.s+(r+=e.c)}(e);var a=(n[0].z+n[n.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,n,r){if(n){for(var i,a=e,o=e,s=n,u=a.parent.children[0],c=a.m,f=o.m,l=s.m,h=u.m;s=Kp(s),a=Wp(a),s&&a;)u=Wp(u),(o=Kp(o)).a=e,(i=s.z+l-a.z-c+t(s._,a._))>0&&(Xp(Zp(s,e,r),e,i),c+=i,f+=i),l+=s.m,c+=a.m,h+=u.m,f+=o.m;s&&!Kp(o)&&(o.t=s,o.m+=l-f),a&&!Wp(u)&&(u.t=a,u.m+=c-h,r=e)}return r}(e,i,e.parent.A||r[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*n}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i},tg=function(t,e,n,r,i){for(var a,o=t.children,s=-1,u=o.length,c=t.value&&(i-n)/t.value;++s<u;)(a=o[s]).x0=e,a.x1=r,a.y0=n,a.y1=n+=a.value*c},eg=(1+Math.sqrt(5))/2;function ng(t,e,n,r,i,a){for(var o,s,u,c,f,l,h,d,p,g,y,b=[],m=e.children,v=0,_=0,w=m.length,x=e.value;v<w;){u=i-n,c=a-r;do{f=m[_++].value}while(!f&&_<w);for(l=h=f,y=f*f*(g=Math.max(c/u,u/c)/(x*t)),p=Math.max(h/y,y/l);_<w;++_){if(f+=s=m[_].value,s<l&&(l=s),s>h&&(h=s),y=f*f*g,(d=Math.max(h/y,y/l))>p){f-=s;break}p=d}b.push(o={value:f,dice:u<c,children:m.slice(v,_)}),o.dice?qp(o,n,r,i,x?r+=c*f/x:a):tg(o,n,r,x?n+=u*f/x:i,a),x-=f,v=_}return b}var rg=function t(e){function n(t,n,r,i,a){ng(e,t,n,r,i,a)}return n.ratio=function(e){return t((e=+e)>1?e:1)},n}(eg),ig=function(){var t=rg,e=!1,n=1,r=1,i=[0],a=Op,o=Op,s=Op,u=Op,c=Op;function f(t){return t.x0=t.y0=0,t.x1=n,t.y1=r,t.eachBefore(l),i=[0],e&&t.eachBefore(Fp),t}function l(e){var n=i[e.depth],r=e.x0+n,f=e.y0+n,l=e.x1-n,h=e.y1-n;l<r&&(r=l=(r+l)/2),h<f&&(f=h=(f+h)/2),e.x0=r,e.y0=f,e.x1=l,e.y1=h,e.children&&(n=i[e.depth+1]=a(e)/2,r+=c(e)-n,f+=o(e)-n,(l-=s(e)-n)<r&&(r=l=(r+l)/2),(h-=u(e)-n)<f&&(f=h=(f+h)/2),t(e,r,f,l,h))}return f.round=function(t){return arguments.length?(e=!!t,f):e},f.size=function(t){return arguments.length?(n=+t[0],r=+t[1],f):[n,r]},f.tile=function(e){return arguments.length?(t=Cp(e),f):t},f.padding=function(t){return arguments.length?f.paddingInner(t).paddingOuter(t):f.paddingInner()},f.paddingInner=function(t){return arguments.length?(a="function"==typeof t?t:Rp(+t),f):a},f.paddingOuter=function(t){return arguments.length?f.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):f.paddingTop()},f.paddingTop=function(t){return arguments.length?(o="function"==typeof t?t:Rp(+t),f):o},f.paddingRight=function(t){return arguments.length?(s="function"==typeof t?t:Rp(+t),f):s},f.paddingBottom=function(t){return arguments.length?(u="function"==typeof t?t:Rp(+t),f):u},f.paddingLeft=function(t){return arguments.length?(c="function"==typeof t?t:Rp(+t),f):c},f},ag=function(t,e,n,r,i){var a,o,s=t.children,u=s.length,c=new Array(u+1);for(c[0]=o=a=0;a<u;++a)c[a+1]=o+=s[a].value;!function t(e,n,r,i,a,o,u){if(e>=n-1){var f=s[e];return f.x0=i,f.y0=a,f.x1=o,void(f.y1=u)}var l=c[e],h=r/2+l,d=e+1,p=n-1;for(;d<p;){var g=d+p>>>1;c[g]<h?d=g+1:p=g}h-c[d-1]<c[d]-h&&e+1<d&&--d;var y=c[d]-l,b=r-y;if(o-i>u-a){var m=(i*b+o*y)/r;t(e,d,y,i,a,m,u),t(d,n,b,m,a,o,u)}else{var v=(a*b+u*y)/r;t(e,d,y,i,a,o,v),t(d,n,b,i,v,o,u)}}(0,u,t.value,e,n,r,i)},og=function(t,e,n,r,i){(1&t.depth?tg:qp)(t,e,n,r,i)},sg=function t(e){function n(t,n,r,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,u,c,f,l=-1,h=o.length,d=t.value;++l<h;){for(u=(s=o[l]).children,c=s.value=0,f=u.length;c<f;++c)s.value+=u[c].value;s.dice?qp(s,n,r,i,r+=(a-r)*s.value/d):tg(s,n,r,n+=(i-n)*s.value/d,a),d-=s.value}else t._squarify=o=ng(e,t,n,r,i,a),o.ratio=e}return n.ratio=function(e){return t((e=+e)>1?e:1)},n}(eg),ug=function(t){for(var e,n=-1,r=t.length,i=t[r-1],a=0;++n<r;)e=i,i=t[n],a+=e[1]*i[0]-e[0]*i[1];return a/2},cg=function(t){for(var e,n,r=-1,i=t.length,a=0,o=0,s=t[i-1],u=0;++r<i;)e=s,s=t[r],u+=n=e[0]*s[1]-s[0]*e[1],a+=(e[0]+s[0])*n,o+=(e[1]+s[1])*n;return[a/(u*=3),o/u]},fg=function(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])};function lg(t,e){return t[0]-e[0]||t[1]-e[1]}function hg(t){for(var e=t.length,n=[0,1],r=2,i=2;i<e;++i){for(;r>1&&fg(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}var dg=function(t){if((n=t.length)<3)return null;var e,n,r=new Array(n),i=new Array(n);for(e=0;e<n;++e)r[e]=[+t[e][0],+t[e][1],e];for(r.sort(lg),e=0;e<n;++e)i[e]=[r[e][0],-r[e][1]];var a=hg(r),o=hg(i),s=o[0]===a[0],u=o[o.length-1]===a[a.length-1],c=[];for(e=a.length-1;e>=0;--e)c.push(t[r[a[e]][2]]);for(e=+s;e<o.length-u;++e)c.push(t[r[o[e]][2]]);return c},pg=function(t,e){for(var n,r,i=t.length,a=t[i-1],o=e[0],s=e[1],u=a[0],c=a[1],f=!1,l=0;l<i;++l)n=(a=t[l])[0],(r=a[1])>s!=c>s&&o<(u-n)*(s-r)/(c-r)+n&&(f=!f),u=n,c=r;return f},gg=function(t){for(var e,n,r=-1,i=t.length,a=t[i-1],o=a[0],s=a[1],u=0;++r<i;)e=o,n=s,e-=o=(a=t[r])[0],n-=s=a[1],u+=Math.sqrt(e*e+n*n);return u},yg=function(){return Math.random()},bg=function t(e){function n(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return e()*n+t}}return n.source=t,n}(yg),mg=function t(e){function n(t,n){var r,i;return t=null==t?0:+t,n=null==n?1:+n,function(){var a;if(null!=r)a=r,r=null;else do{r=2*e()-1,a=2*e()-1,i=r*r+a*a}while(!i||i>1);return t+n*a*Math.sqrt(-2*Math.log(i)/i)}}return n.source=t,n}(yg),vg=function t(e){function n(){var t=mg.source(e).apply(this,arguments);return function(){return Math.exp(t())}}return n.source=t,n}(yg),_g=function t(e){function n(t){return function(){for(var n=0,r=0;r<t;++r)n+=e();return n}}return n.source=t,n}(yg),wg=function t(e){function n(t){var n=_g.source(e)(t);return function(){return n()/t}}return n.source=t,n}(yg),xg=function t(e){function n(t){return function(){return-Math.log(1-e())/t}}return n.source=t,n}(yg);function kg(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Eg(t,e){switch(arguments.length){case 0:break;case 1:this.interpolator(t);break;default:this.interpolator(e).domain(t)}return this}var Ag=Array.prototype,Sg=Ag.map,Mg=Ag.slice,Tg={name:"implicit"};function Dg(){var t=Wo(),e=[],n=[],r=Tg;function i(i){var a=i+"",o=t.get(a);if(!o){if(r!==Tg)return r;t.set(a,o=e.push(i))}return n[(o-1)%n.length]}return i.domain=function(n){if(!arguments.length)return e.slice();e=[],t=Wo();for(var r,a,o=-1,s=n.length;++o<s;)t.has(a=(r=n[o])+"")||t.set(a,e.push(r));return i},i.range=function(t){return arguments.length?(n=Mg.call(t),i):n.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return Dg(e,n).unknown(r)},kg.apply(i,arguments),i}function Cg(){var t,e,n=Dg().unknown(void 0),r=n.domain,i=n.range,a=[0,1],o=!1,s=0,u=0,c=.5;function f(){var n=r().length,f=a[1]<a[0],l=a[f-0],h=a[1-f];t=(h-l)/Math.max(1,n-s+2*u),o&&(t=Math.floor(t)),l+=(h-l-t*(n-s))*c,e=t*(1-s),o&&(l=Math.round(l),e=Math.round(e));var d=x(n).map((function(e){return l+t*e}));return i(f?d.reverse():d)}return delete n.unknown,n.domain=function(t){return arguments.length?(r(t),f()):r()},n.range=function(t){return arguments.length?(a=[+t[0],+t[1]],f()):a.slice()},n.rangeRound=function(t){return a=[+t[0],+t[1]],o=!0,f()},n.bandwidth=function(){return e},n.step=function(){return t},n.round=function(t){return arguments.length?(o=!!t,f()):o},n.padding=function(t){return arguments.length?(s=Math.min(1,u=+t),f()):s},n.paddingInner=function(t){return arguments.length?(s=Math.min(1,t),f()):s},n.paddingOuter=function(t){return arguments.length?(u=+t,f()):u},n.align=function(t){return arguments.length?(c=Math.max(0,Math.min(1,t)),f()):c},n.copy=function(){return Cg(r(),a).round(o).paddingInner(s).paddingOuter(u).align(c)},kg.apply(f(),arguments)}function Og(){return function t(e){var n=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return t(n())},e}(Cg.apply(null,arguments).paddingInner(1))}var Rg=function(t){return function(){return t}},Ng=function(t){return+t},Ig=[0,1];function Bg(t){return t}function Lg(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Rg(isNaN(e)?NaN:.5)}function Pg(t){var e,n=t[0],r=t[t.length-1];return n>r&&(e=n,n=r,r=e),function(t){return Math.max(n,Math.min(r,t))}}function Fg(t,e,n){var r=t[0],i=t[1],a=e[0],o=e[1];return i<r?(r=Lg(i,r),a=n(o,a)):(r=Lg(r,i),a=n(a,o)),function(t){return a(r(t))}}function qg(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),a=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<r;)i[o]=Lg(t[o],t[o+1]),a[o]=n(e[o],e[o+1]);return function(e){var n=u(t,e,1,r)-1;return a[n](i[n](e))}}function jg(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Ug(){var t,e,n,r,i,a,o=Ig,s=Ig,u=Xn,c=Bg;function f(){return r=Math.min(o.length,s.length)>2?qg:Fg,i=a=null,l}function l(e){return isNaN(e=+e)?n:(i||(i=r(o.map(t),s,u)))(t(c(e)))}return l.invert=function(n){return c(e((a||(a=r(s,o.map(t),Un)))(n)))},l.domain=function(t){return arguments.length?(o=Sg.call(t,Ng),c===Bg||(c=Pg(o)),f()):o.slice()},l.range=function(t){return arguments.length?(s=Mg.call(t),f()):s.slice()},l.rangeRound=function(t){return s=Mg.call(t),u=Qn,f()},l.clamp=function(t){return arguments.length?(c=t?Pg(o):Bg,l):c!==Bg},l.interpolate=function(t){return arguments.length?(u=t,f()):u},l.unknown=function(t){return arguments.length?(n=t,l):n},function(n,r){return t=n,e=r,f()}}function zg(t,e){return Ug()(t,e)}var Yg=function(t,e,n,r){var i,a=T(t,e,n);switch((r=Fu(null==r?",f":r)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(i=Qu(a,o))||(r.precision=i),Yu(r,o);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=tc(a,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=Ju(a))||(r.precision=i-2*("%"===r.type))}return zu(r)};function Hg(t){var e=t.domain;return t.ticks=function(t){var n=e();return S(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return Yg(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var r,i=e(),a=0,o=i.length-1,s=i[a],u=i[o];return u<s&&(r=s,s=u,u=r,r=a,a=o,o=r),(r=M(s,u,n))>0?r=M(s=Math.floor(s/r)*r,u=Math.ceil(u/r)*r,n):r<0&&(r=M(s=Math.ceil(s*r)/r,u=Math.floor(u*r)/r,n)),r>0?(i[a]=Math.floor(s/r)*r,i[o]=Math.ceil(u/r)*r,e(i)):r<0&&(i[a]=Math.ceil(s*r)/r,i[o]=Math.floor(u*r)/r,e(i)),t},t}function Vg(){var t=zg(Bg,Bg);return t.copy=function(){return jg(t,Vg())},kg.apply(t,arguments),Hg(t)}function $g(t){var e;function n(t){return isNaN(t=+t)?e:t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=Sg.call(e,Ng),n):t.slice()},n.unknown=function(t){return arguments.length?(e=t,n):e},n.copy=function(){return $g(t).unknown(e)},t=arguments.length?Sg.call(t,Ng):[0,1],Hg(n)}var Gg=function(t,e){var n,r=0,i=(t=t.slice()).length-1,a=t[r],o=t[i];return o<a&&(n=r,r=i,i=n,n=a,a=o,o=n),t[r]=e.floor(a),t[i]=e.ceil(o),t};function Wg(t){return Math.log(t)}function Kg(t){return Math.exp(t)}function Xg(t){return-Math.log(-t)}function Zg(t){return-Math.exp(-t)}function Jg(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Qg(t){return function(e){return-t(-e)}}function ty(t){var e,n,r=t(Wg,Kg),i=r.domain,a=10;function o(){return e=function(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(e){return Math.log(e)/t})}(a),n=function(t){return 10===t?Jg:t===Math.E?Math.exp:function(e){return Math.pow(t,e)}}(a),i()[0]<0?(e=Qg(e),n=Qg(n),t(Xg,Zg)):t(Wg,Kg),r}return r.base=function(t){return arguments.length?(a=+t,o()):a},r.domain=function(t){return arguments.length?(i(t),o()):i()},r.ticks=function(t){var r,o=i(),s=o[0],u=o[o.length-1];(r=u<s)&&(h=s,s=u,u=h);var c,f,l,h=e(s),d=e(u),p=null==t?10:+t,g=[];if(!(a%1)&&d-h<p){if(h=Math.round(h)-1,d=Math.round(d)+1,s>0){for(;h<d;++h)for(f=1,c=n(h);f<a;++f)if(!((l=c*f)<s)){if(l>u)break;g.push(l)}}else for(;h<d;++h)for(f=a-1,c=n(h);f>=1;--f)if(!((l=c*f)<s)){if(l>u)break;g.push(l)}}else g=S(h,d,Math.min(d-h,p)).map(n);return r?g.reverse():g},r.tickFormat=function(t,i){if(null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=zu(i)),t===1/0)return i;null==t&&(t=10);var o=Math.max(1,a*t/r.ticks().length);return function(t){var r=t/n(Math.round(e(t)));return r*a<a-.5&&(r*=a),r<=o?i(t):""}},r.nice=function(){return i(Gg(i(),{floor:function(t){return n(Math.floor(e(t)))},ceil:function(t){return n(Math.ceil(e(t)))}}))},r}function ey(){var t=ty(Ug()).domain([1,10]);return t.copy=function(){return jg(t,ey()).base(t.base())},kg.apply(t,arguments),t}function ny(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function ry(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function iy(t){var e=1,n=t(ny(e),ry(e));return n.constant=function(n){return arguments.length?t(ny(e=+n),ry(e)):e},Hg(n)}function ay(){var t=iy(Ug());return t.copy=function(){return jg(t,ay()).constant(t.constant())},kg.apply(t,arguments)}function oy(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function sy(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function uy(t){return t<0?-t*t:t*t}function cy(t){var e=t(Bg,Bg),n=1;function r(){return 1===n?t(Bg,Bg):.5===n?t(sy,uy):t(oy(n),oy(1/n))}return e.exponent=function(t){return arguments.length?(n=+t,r()):n},Hg(e)}function fy(){var t=cy(Ug());return t.copy=function(){return jg(t,fy()).exponent(t.exponent())},kg.apply(t,arguments),t}function ly(){return fy.apply(null,arguments).exponent(.5)}function hy(){var t,e=[],n=[],i=[];function a(){var t=0,r=Math.max(1,n.length);for(i=new Array(r-1);++t<r;)i[t-1]=O(e,t/r);return o}function o(e){return isNaN(e=+e)?t:n[u(i,e)]}return o.invertExtent=function(t){var r=n.indexOf(t);return r<0?[NaN,NaN]:[r>0?i[r-1]:e[0],r<i.length?i[r]:e[e.length-1]]},o.domain=function(t){if(!arguments.length)return e.slice();e=[];for(var n,i=0,o=t.length;i<o;++i)null==(n=t[i])||isNaN(n=+n)||e.push(n);return e.sort(r),a()},o.range=function(t){return arguments.length?(n=Mg.call(t),a()):n.slice()},o.unknown=function(e){return arguments.length?(t=e,o):t},o.quantiles=function(){return i.slice()},o.copy=function(){return hy().domain(e).range(n).unknown(t)},kg.apply(o,arguments)}function dy(){var t,e=0,n=1,r=1,i=[.5],a=[0,1];function o(e){return e<=e?a[u(i,e,0,r)]:t}function s(){var t=-1;for(i=new Array(r);++t<r;)i[t]=((t+1)*n-(t-r)*e)/(r+1);return o}return o.domain=function(t){return arguments.length?(e=+t[0],n=+t[1],s()):[e,n]},o.range=function(t){return arguments.length?(r=(a=Mg.call(t)).length-1,s()):a.slice()},o.invertExtent=function(t){var o=a.indexOf(t);return o<0?[NaN,NaN]:o<1?[e,i[0]]:o>=r?[i[r-1],n]:[i[o-1],i[o]]},o.unknown=function(e){return arguments.length?(t=e,o):o},o.thresholds=function(){return i.slice()},o.copy=function(){return dy().domain([e,n]).range(a).unknown(t)},kg.apply(Hg(o),arguments)}function py(){var t,e=[.5],n=[0,1],r=1;function i(i){return i<=i?n[u(e,i,0,r)]:t}return i.domain=function(t){return arguments.length?(e=Mg.call(t),r=Math.min(e.length,n.length-1),i):e.slice()},i.range=function(t){return arguments.length?(n=Mg.call(t),r=Math.min(e.length,n.length-1),i):n.slice()},i.invertExtent=function(t){var r=n.indexOf(t);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(t=e,i):t},i.copy=function(){return py().domain(e).range(n).unknown(t)},kg.apply(i,arguments)}var gy=new Date,yy=new Date;function by(t,e,n,r){function i(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return i.floor=function(e){return t(e=new Date(+e)),e},i.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},i.round=function(t){var e=i(t),n=i.ceil(t);return t-e<n-t?e:n},i.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},i.range=function(n,r,a){var o,s=[];if(n=i.ceil(n),a=null==a?1:Math.floor(a),!(n<r&&a>0))return s;do{s.push(o=new Date(+n)),e(n,a),t(n)}while(o<n&&n<r);return s},i.filter=function(n){return by((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(i.count=function(e,r){return gy.setTime(+e),yy.setTime(+r),t(gy),t(yy),Math.floor(n(gy,yy))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(e){return r(e)%t==0}:function(e){return i.count(0,e)%t==0}):i:null}),i}var my=by((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));my.every=function(t){return isFinite(t=Math.floor(t))&&t>0?by((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var vy=my,_y=my.range,wy=by((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),xy=wy,ky=wy.range,Ey=6e4,Ay=6048e5;function Sy(t){return by((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Ey)/Ay}))}var My=Sy(0),Ty=Sy(1),Dy=Sy(2),Cy=Sy(3),Oy=Sy(4),Ry=Sy(5),Ny=Sy(6),Iy=My.range,By=Ty.range,Ly=Dy.range,Py=Cy.range,Fy=Oy.range,qy=Ry.range,jy=Ny.range,Uy=by((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Ey)/864e5}),(function(t){return t.getDate()-1})),zy=Uy,Yy=Uy.range,Hy=by((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-t.getMinutes()*Ey)}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),Vy=Hy,$y=Hy.range,Gy=by((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+e*Ey)}),(function(t,e){return(e-t)/Ey}),(function(t){return t.getMinutes()})),Wy=Gy,Ky=Gy.range,Xy=by((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),Zy=Xy,Jy=Xy.range,Qy=by((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));Qy.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?by((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):Qy:null};var tb=Qy,eb=Qy.range;function nb(t){return by((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/Ay}))}var rb=nb(0),ib=nb(1),ab=nb(2),ob=nb(3),sb=nb(4),ub=nb(5),cb=nb(6),fb=rb.range,lb=ib.range,hb=ab.range,db=ob.range,pb=sb.range,gb=ub.range,yb=cb.range,bb=by((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1})),mb=bb,vb=bb.range,_b=by((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));_b.every=function(t){return isFinite(t=Math.floor(t))&&t>0?by((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var wb=_b,xb=_b.range;function kb(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Eb(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ab(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function Sb(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,a=t.days,o=t.shortDays,s=t.months,u=t.shortMonths,c=Fb(i),f=qb(i),l=Fb(a),h=qb(a),d=Fb(o),p=qb(o),g=Fb(s),y=qb(s),b=Fb(u),m=qb(u),v={a:function(t){return o[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return u[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:am,e:am,f:fm,H:om,I:sm,j:um,L:cm,m:lm,M:hm,p:function(t){return i[+(t.getHours()>=12)]},Q:jm,s:Um,S:dm,u:pm,U:gm,V:ym,w:bm,W:mm,x:null,X:null,y:vm,Y:_m,Z:wm,"%":qm},_={a:function(t){return o[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return u[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:xm,e:xm,f:Mm,H:km,I:Em,j:Am,L:Sm,m:Tm,M:Dm,p:function(t){return i[+(t.getUTCHours()>=12)]},Q:jm,s:Um,S:Cm,u:Om,U:Rm,V:Nm,w:Im,W:Bm,x:null,X:null,y:Lm,Y:Pm,Z:Fm,"%":qm},w={a:function(t,e,n){var r=d.exec(e.slice(n));return r?(t.w=p[r[0].toLowerCase()],n+r[0].length):-1},A:function(t,e,n){var r=l.exec(e.slice(n));return r?(t.w=h[r[0].toLowerCase()],n+r[0].length):-1},b:function(t,e,n){var r=b.exec(e.slice(n));return r?(t.m=m[r[0].toLowerCase()],n+r[0].length):-1},B:function(t,e,n){var r=g.exec(e.slice(n));return r?(t.m=y[r[0].toLowerCase()],n+r[0].length):-1},c:function(t,n,r){return E(t,e,n,r)},d:Kb,e:Kb,f:em,H:Zb,I:Zb,j:Xb,L:tm,m:Wb,M:Jb,p:function(t,e,n){var r=c.exec(e.slice(n));return r?(t.p=f[r[0].toLowerCase()],n+r[0].length):-1},Q:rm,s:im,S:Qb,u:Ub,U:zb,V:Yb,w:jb,W:Hb,x:function(t,e,r){return E(t,n,e,r)},X:function(t,e,n){return E(t,r,e,n)},y:$b,Y:Vb,Z:Gb,"%":nm};function x(t,e){return function(n){var r,i,a,o=[],s=-1,u=0,c=t.length;for(n instanceof Date||(n=new Date(+n));++s<c;)37===t.charCodeAt(s)&&(o.push(t.slice(u,s)),null!=(i=Rb[r=t.charAt(++s)])?r=t.charAt(++s):i="e"===r?" ":"0",(a=e[r])&&(r=a(n,i)),o.push(r),u=s+1);return o.push(t.slice(u,s)),o.join("")}}function k(t,e){return function(n){var r,i,a=Ab(1900);if(E(a,t,n+="",0)!=n.length)return null;if("Q"in a)return new Date(a.Q);if("p"in a&&(a.H=a.H%12+12*a.p),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=Eb(Ab(a.y))).getUTCDay(),r=i>4||0===i?ib.ceil(r):ib(r),r=mb.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=e(Ab(a.y))).getDay(),r=i>4||0===i?Ty.ceil(r):Ty(r),r=zy.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?Eb(Ab(a.y)).getUTCDay():e(Ab(a.y)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,Eb(a)):e(a)}}function E(t,e,n,r){for(var i,a,o=0,s=e.length,u=n.length;o<s;){if(r>=u)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=w[i in Rb?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return(v.x=x(n,v),v.X=x(r,v),v.c=x(e,v),_.x=x(n,_),_.X=x(r,_),_.c=x(e,_),{format:function(t){var e=x(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",kb);return e.toString=function(){return t},e},utcFormat:function(t){var e=x(t+="",_);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t,Eb);return e.toString=function(){return t},e}})}var Mb,Tb,Db,Cb,Ob,Rb={"-":"",_:" ",0:"0"},Nb=/^\s*\d+/,Ib=/^%/,Bb=/[\\^$*+?|[\]().{}]/g;function Lb(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(e)+i:i)}function Pb(t){return t.replace(Bb,"\\$&")}function Fb(t){return new RegExp("^(?:"+t.map(Pb).join("|")+")","i")}function qb(t){for(var e={},n=-1,r=t.length;++n<r;)e[t[n].toLowerCase()]=n;return e}function jb(t,e,n){var r=Nb.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Ub(t,e,n){var r=Nb.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function zb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Yb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Hb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Vb(t,e,n){var r=Nb.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function $b(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Gb(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Wb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Kb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Xb(t,e,n){var r=Nb.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Zb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Jb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Qb(t,e,n){var r=Nb.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function tm(t,e,n){var r=Nb.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function em(t,e,n){var r=Nb.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function nm(t,e,n){var r=Ib.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function rm(t,e,n){var r=Nb.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function im(t,e,n){var r=Nb.exec(e.slice(n));return r?(t.Q=1e3*+r[0],n+r[0].length):-1}function am(t,e){return Lb(t.getDate(),e,2)}function om(t,e){return Lb(t.getHours(),e,2)}function sm(t,e){return Lb(t.getHours()%12||12,e,2)}function um(t,e){return Lb(1+zy.count(vy(t),t),e,3)}function cm(t,e){return Lb(t.getMilliseconds(),e,3)}function fm(t,e){return cm(t,e)+"000"}function lm(t,e){return Lb(t.getMonth()+1,e,2)}function hm(t,e){return Lb(t.getMinutes(),e,2)}function dm(t,e){return Lb(t.getSeconds(),e,2)}function pm(t){var e=t.getDay();return 0===e?7:e}function gm(t,e){return Lb(My.count(vy(t),t),e,2)}function ym(t,e){var n=t.getDay();return t=n>=4||0===n?Oy(t):Oy.ceil(t),Lb(Oy.count(vy(t),t)+(4===vy(t).getDay()),e,2)}function bm(t){return t.getDay()}function mm(t,e){return Lb(Ty.count(vy(t),t),e,2)}function vm(t,e){return Lb(t.getFullYear()%100,e,2)}function _m(t,e){return Lb(t.getFullYear()%1e4,e,4)}function wm(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Lb(e/60|0,"0",2)+Lb(e%60,"0",2)}function xm(t,e){return Lb(t.getUTCDate(),e,2)}function km(t,e){return Lb(t.getUTCHours(),e,2)}function Em(t,e){return Lb(t.getUTCHours()%12||12,e,2)}function Am(t,e){return Lb(1+mb.count(wb(t),t),e,3)}function Sm(t,e){return Lb(t.getUTCMilliseconds(),e,3)}function Mm(t,e){return Sm(t,e)+"000"}function Tm(t,e){return Lb(t.getUTCMonth()+1,e,2)}function Dm(t,e){return Lb(t.getUTCMinutes(),e,2)}function Cm(t,e){return Lb(t.getUTCSeconds(),e,2)}function Om(t){var e=t.getUTCDay();return 0===e?7:e}function Rm(t,e){return Lb(rb.count(wb(t),t),e,2)}function Nm(t,e){var n=t.getUTCDay();return t=n>=4||0===n?sb(t):sb.ceil(t),Lb(sb.count(wb(t),t)+(4===wb(t).getUTCDay()),e,2)}function Im(t){return t.getUTCDay()}function Bm(t,e){return Lb(ib.count(wb(t),t),e,2)}function Lm(t,e){return Lb(t.getUTCFullYear()%100,e,2)}function Pm(t,e){return Lb(t.getUTCFullYear()%1e4,e,4)}function Fm(){return"+0000"}function qm(){return"%"}function jm(t){return+t}function Um(t){return Math.floor(+t/1e3)}function zm(t){return Mb=Sb(t),Tb=Mb.format,Db=Mb.parse,Cb=Mb.utcFormat,Ob=Mb.utcParse,Mb}zm({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Ym=Date.prototype.toISOString?function(t){return t.toISOString()}:Cb("%Y-%m-%dT%H:%M:%S.%LZ");var Hm=+new Date("2000-01-01T00:00:00.000Z")?function(t){var e=new Date(t);return isNaN(e)?null:e}:Ob("%Y-%m-%dT%H:%M:%S.%LZ"),Vm=1e3,$m=60*Vm,Gm=60*$m,Wm=24*Gm,Km=7*Wm,Xm=30*Wm,Zm=365*Wm;function Jm(t){return new Date(t)}function Qm(t){return t instanceof Date?+t:+new Date(+t)}function tv(t,e,n,r,a,o,s,u,c){var f=zg(Bg,Bg),l=f.invert,h=f.domain,d=c(".%L"),p=c(":%S"),g=c("%I:%M"),y=c("%I %p"),b=c("%a %d"),m=c("%b %d"),v=c("%B"),_=c("%Y"),w=[[s,1,Vm],[s,5,5*Vm],[s,15,15*Vm],[s,30,30*Vm],[o,1,$m],[o,5,5*$m],[o,15,15*$m],[o,30,30*$m],[a,1,Gm],[a,3,3*Gm],[a,6,6*Gm],[a,12,12*Gm],[r,1,Wm],[r,2,2*Wm],[n,1,Km],[e,1,Xm],[e,3,3*Xm],[t,1,Zm]];function x(i){return(s(i)<i?d:o(i)<i?p:a(i)<i?g:r(i)<i?y:e(i)<i?n(i)<i?b:m:t(i)<i?v:_)(i)}function k(e,n,r,a){if(null==e&&(e=10),"number"==typeof e){var o=Math.abs(r-n)/e,s=i((function(t){return t[2]})).right(w,o);s===w.length?(a=T(n/Zm,r/Zm,e),e=t):s?(a=(s=w[o/w[s-1][2]<w[s][2]/o?s-1:s])[1],e=s[0]):(a=Math.max(T(n,r,e),1),e=u)}return null==a?e:e.every(a)}return f.invert=function(t){return new Date(l(t))},f.domain=function(t){return arguments.length?h(Sg.call(t,Qm)):h().map(Jm)},f.ticks=function(t,e){var n,r=h(),i=r[0],a=r[r.length-1],o=a<i;return o&&(n=i,i=a,a=n),n=(n=k(t,i,a,e))?n.range(i,a+1):[],o?n.reverse():n},f.tickFormat=function(t,e){return null==e?x:c(e)},f.nice=function(t,e){var n=h();return(t=k(t,n[0],n[n.length-1],e))?h(Gg(n,t)):f},f.copy=function(){return jg(f,tv(t,e,n,r,a,o,s,u,c))},f}var ev=function(){return kg.apply(tv(vy,xy,My,zy,Vy,Wy,Zy,tb,Tb).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},nv=by((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),rv=nv,iv=nv.range,av=by((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getUTCHours()})),ov=av,sv=av.range,uv=by((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*Ey)}),(function(t,e){return(e-t)/Ey}),(function(t){return t.getUTCMinutes()})),cv=uv,fv=uv.range,lv=function(){return kg.apply(tv(wb,rv,rb,mb,ov,cv,Zy,tb,Cb).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)};function hv(){var t,e,n,r,i,a=0,o=1,s=Bg,u=!1;function c(e){return isNaN(e=+e)?i:s(0===n?.5:(e=(r(e)-t)*n,u?Math.max(0,Math.min(1,e)):e))}return c.domain=function(i){return arguments.length?(t=r(a=+i[0]),e=r(o=+i[1]),n=t===e?0:1/(e-t),c):[a,o]},c.clamp=function(t){return arguments.length?(u=!!t,c):u},c.interpolator=function(t){return arguments.length?(s=t,c):s},c.unknown=function(t){return arguments.length?(i=t,c):i},function(i){return r=i,t=i(a),e=i(o),n=t===e?0:1/(e-t),c}}function dv(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function pv(){var t=Hg(hv()(Bg));return t.copy=function(){return dv(t,pv())},Eg.apply(t,arguments)}function gv(){var t=ty(hv()).domain([1,10]);return t.copy=function(){return dv(t,gv()).base(t.base())},Eg.apply(t,arguments)}function yv(){var t=iy(hv());return t.copy=function(){return dv(t,yv()).constant(t.constant())},Eg.apply(t,arguments)}function bv(){var t=cy(hv());return t.copy=function(){return dv(t,bv()).exponent(t.exponent())},Eg.apply(t,arguments)}function mv(){return bv.apply(null,arguments).exponent(.5)}function vv(){var t=[],e=Bg;function n(n){if(!isNaN(n=+n))return e((u(t,n)-1)/(t.length-1))}return n.domain=function(e){if(!arguments.length)return t.slice();t=[];for(var i,a=0,o=e.length;a<o;++a)null==(i=e[a])||isNaN(i=+i)||t.push(i);return t.sort(r),n},n.interpolator=function(t){return arguments.length?(e=t,n):e},n.copy=function(){return vv(e).domain(t)},Eg.apply(n,arguments)}function _v(){var t,e,n,r,i,a,o,s=0,u=.5,c=1,f=Bg,l=!1;function h(t){return isNaN(t=+t)?o:(t=.5+((t=+a(t))-e)*(t<e?r:i),f(l?Math.max(0,Math.min(1,t)):t))}return h.domain=function(o){return arguments.length?(t=a(s=+o[0]),e=a(u=+o[1]),n=a(c=+o[2]),r=t===e?0:.5/(e-t),i=e===n?0:.5/(n-e),h):[s,u,c]},h.clamp=function(t){return arguments.length?(l=!!t,h):l},h.interpolator=function(t){return arguments.length?(f=t,h):f},h.unknown=function(t){return arguments.length?(o=t,h):o},function(o){return a=o,t=o(s),e=o(u),n=o(c),r=t===e?0:.5/(e-t),i=e===n?0:.5/(n-e),h}}function wv(){var t=Hg(_v()(Bg));return t.copy=function(){return dv(t,wv())},Eg.apply(t,arguments)}function xv(){var t=ty(_v()).domain([.1,1,10]);return t.copy=function(){return dv(t,xv()).base(t.base())},Eg.apply(t,arguments)}function kv(){var t=iy(_v());return t.copy=function(){return dv(t,kv()).constant(t.constant())},Eg.apply(t,arguments)}function Ev(){var t=cy(_v());return t.copy=function(){return dv(t,Ev()).exponent(t.exponent())},Eg.apply(t,arguments)}function Av(){return Ev.apply(null,arguments).exponent(.5)}var Sv=function(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(6*r,6*++r);return n},Mv=Sv("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Tv=Sv("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Dv=Sv("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Cv=Sv("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),Ov=Sv("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Rv=Sv("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Nv=Sv("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),Iv=Sv("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),Bv=Sv("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),Lv=Sv("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),Pv=function(t){return Pn(t[t.length-1])},Fv=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Sv),qv=Pv(Fv),jv=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Sv),Uv=Pv(jv),zv=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Sv),Yv=Pv(zv),Hv=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Sv),Vv=Pv(Hv),$v=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Sv),Gv=Pv($v),Wv=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Sv),Kv=Pv(Wv),Xv=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Sv),Zv=Pv(Xv),Jv=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Sv),Qv=Pv(Jv),t_=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Sv),e_=Pv(t_),n_=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Sv),r_=Pv(n_),i_=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Sv),a_=Pv(i_),o_=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Sv),s_=Pv(o_),u_=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Sv),c_=Pv(u_),f_=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Sv),l_=Pv(f_),h_=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Sv),d_=Pv(h_),p_=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Sv),g_=Pv(p_),y_=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Sv),b_=Pv(y_),m_=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Sv),v_=Pv(m_),__=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Sv),w_=Pv(__),x_=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Sv),k_=Pv(x_),E_=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Sv),A_=Pv(E_),S_=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Sv),M_=Pv(S_),T_=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Sv),D_=Pv(T_),C_=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Sv),O_=Pv(C_),R_=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Sv),N_=Pv(R_),I_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Sv),B_=Pv(I_),L_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Sv),P_=Pv(L_),F_=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},q_=Wr(Hr(300,.5,0),Hr(-240,.5,1)),j_=Wr(Hr(-100,.75,.35),Hr(80,1.5,.8)),U_=Wr(Hr(260,.75,.35),Hr(80,1.5,.8)),z_=Hr(),Y_=function(t){(t<0||t>1)&&(t-=Math.floor(t));var e=Math.abs(t-.5);return z_.h=360*t-100,z_.s=1.5-1.5*e,z_.l=.8-.9*e,z_+""},H_=bn(),V_=Math.PI/3,$_=2*Math.PI/3,G_=function(t){var e;return t=(.5-t)*Math.PI,H_.r=255*(e=Math.sin(t))*e,H_.g=255*(e=Math.sin(t+V_))*e,H_.b=255*(e=Math.sin(t+$_))*e,H_+""},W_=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"};function K_(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}var X_=K_(Sv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),Z_=K_(Sv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),J_=K_(Sv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Q_=K_(Sv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),tw=function(t){return function(){return t}},ew=Math.abs,nw=Math.atan2,rw=Math.cos,iw=Math.max,aw=Math.min,ow=Math.sin,sw=Math.sqrt,uw=1e-12,cw=Math.PI,fw=cw/2,lw=2*cw;function hw(t){return t>=1?fw:t<=-1?-fw:Math.asin(t)}function dw(t){return t.innerRadius}function pw(t){return t.outerRadius}function gw(t){return t.startAngle}function yw(t){return t.endAngle}function bw(t){return t&&t.padAngle}function mw(t,e,n,r,i,a,o){var s=t-n,u=e-r,c=(o?a:-a)/sw(s*s+u*u),f=c*u,l=-c*s,h=t+f,d=e+l,p=n+f,g=r+l,y=(h+p)/2,b=(d+g)/2,m=p-h,v=g-d,_=m*m+v*v,w=i-a,x=h*g-p*d,k=(v<0?-1:1)*sw(iw(0,w*w*_-x*x)),E=(x*v-m*k)/_,A=(-x*m-v*k)/_,S=(x*v+m*k)/_,M=(-x*m+v*k)/_,T=E-y,D=A-b,C=S-y,O=M-b;return T*T+D*D>C*C+O*O&&(E=S,A=M),{cx:E,cy:A,x01:-f,y01:-l,x11:E*(i/w-1),y11:A*(i/w-1)}}var vw=function(){var t=dw,e=pw,n=tw(0),r=null,i=gw,a=yw,o=bw,s=null;function u(){var u,c,f,l=+t.apply(this,arguments),h=+e.apply(this,arguments),d=i.apply(this,arguments)-fw,p=a.apply(this,arguments)-fw,g=ew(p-d),y=p>d;if(s||(s=u=qo()),h<l&&(c=h,h=l,l=c),h>uw)if(g>lw-uw)s.moveTo(h*rw(d),h*ow(d)),s.arc(0,0,h,d,p,!y),l>uw&&(s.moveTo(l*rw(p),l*ow(p)),s.arc(0,0,l,p,d,y));else{var b,m,v=d,_=p,w=d,x=p,k=g,E=g,A=o.apply(this,arguments)/2,S=A>uw&&(r?+r.apply(this,arguments):sw(l*l+h*h)),M=aw(ew(h-l)/2,+n.apply(this,arguments)),T=M,D=M;if(S>uw){var C=hw(S/l*ow(A)),O=hw(S/h*ow(A));(k-=2*C)>uw?(w+=C*=y?1:-1,x-=C):(k=0,w=x=(d+p)/2),(E-=2*O)>uw?(v+=O*=y?1:-1,_-=O):(E=0,v=_=(d+p)/2)}var R=h*rw(v),N=h*ow(v),I=l*rw(x),B=l*ow(x);if(M>uw){var L,P=h*rw(_),F=h*ow(_),q=l*rw(w),j=l*ow(w);if(g<cw&&(L=function(t,e,n,r,i,a,o,s){var u=n-t,c=r-e,f=o-i,l=s-a,h=l*u-f*c;if(!(h*h<uw))return[t+(h=(f*(e-a)-l*(t-i))/h)*u,e+h*c]}(R,N,q,j,P,F,I,B))){var U=R-L[0],z=N-L[1],Y=P-L[0],H=F-L[1],V=1/ow(((f=(U*Y+z*H)/(sw(U*U+z*z)*sw(Y*Y+H*H)))>1?0:f<-1?cw:Math.acos(f))/2),$=sw(L[0]*L[0]+L[1]*L[1]);T=aw(M,(l-$)/(V-1)),D=aw(M,(h-$)/(V+1))}}E>uw?D>uw?(b=mw(q,j,R,N,h,D,y),m=mw(P,F,I,B,h,D,y),s.moveTo(b.cx+b.x01,b.cy+b.y01),D<M?s.arc(b.cx,b.cy,D,nw(b.y01,b.x01),nw(m.y01,m.x01),!y):(s.arc(b.cx,b.cy,D,nw(b.y01,b.x01),nw(b.y11,b.x11),!y),s.arc(0,0,h,nw(b.cy+b.y11,b.cx+b.x11),nw(m.cy+m.y11,m.cx+m.x11),!y),s.arc(m.cx,m.cy,D,nw(m.y11,m.x11),nw(m.y01,m.x01),!y))):(s.moveTo(R,N),s.arc(0,0,h,v,_,!y)):s.moveTo(R,N),l>uw&&k>uw?T>uw?(b=mw(I,B,P,F,l,-T,y),m=mw(R,N,q,j,l,-T,y),s.lineTo(b.cx+b.x01,b.cy+b.y01),T<M?s.arc(b.cx,b.cy,T,nw(b.y01,b.x01),nw(m.y01,m.x01),!y):(s.arc(b.cx,b.cy,T,nw(b.y01,b.x01),nw(b.y11,b.x11),!y),s.arc(0,0,l,nw(b.cy+b.y11,b.cx+b.x11),nw(m.cy+m.y11,m.cx+m.x11),y),s.arc(m.cx,m.cy,T,nw(m.y11,m.x11),nw(m.y01,m.x01),!y))):s.arc(0,0,l,x,w,y):s.lineTo(I,B)}else s.moveTo(0,0);if(s.closePath(),u)return s=null,u+""||null}return u.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-cw/2;return[rw(r)*n,ow(r)*n]},u.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:tw(+e),u):t},u.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:tw(+t),u):e},u.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:tw(+t),u):n},u.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:tw(+t),u):r},u.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:tw(+t),u):i},u.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:tw(+t),u):a},u.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:tw(+t),u):o},u.context=function(t){return arguments.length?(s=null==t?null:t,u):s},u};function _w(t){this._context=t}_w.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var ww=function(t){return new _w(t)};function xw(t){return t[0]}function kw(t){return t[1]}var Ew=function(){var t=xw,e=kw,n=tw(!0),r=null,i=ww,a=null;function o(o){var s,u,c,f=o.length,l=!1;for(null==r&&(a=i(c=qo())),s=0;s<=f;++s)!(s<f&&n(u=o[s],s,o))===l&&((l=!l)?a.lineStart():a.lineEnd()),l&&a.point(+t(u,s,o),+e(u,s,o));if(c)return a=null,c+""||null}return o.x=function(e){return arguments.length?(t="function"==typeof e?e:tw(+e),o):t},o.y=function(t){return arguments.length?(e="function"==typeof t?t:tw(+t),o):e},o.defined=function(t){return arguments.length?(n="function"==typeof t?t:tw(!!t),o):n},o.curve=function(t){return arguments.length?(i=t,null!=r&&(a=i(r)),o):i},o.context=function(t){return arguments.length?(null==t?r=a=null:a=i(r=t),o):r},o},Aw=function(){var t=xw,e=null,n=tw(0),r=kw,i=tw(!0),a=null,o=ww,s=null;function u(u){var c,f,l,h,d,p=u.length,g=!1,y=new Array(p),b=new Array(p);for(null==a&&(s=o(d=qo())),c=0;c<=p;++c){if(!(c<p&&i(h=u[c],c,u))===g)if(g=!g)f=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),l=c-1;l>=f;--l)s.point(y[l],b[l]);s.lineEnd(),s.areaEnd()}g&&(y[c]=+t(h,c,u),b[c]=+n(h,c,u),s.point(e?+e(h,c,u):y[c],r?+r(h,c,u):b[c]))}if(d)return s=null,d+""||null}function c(){return Ew().defined(i).curve(o).context(a)}return u.x=function(n){return arguments.length?(t="function"==typeof n?n:tw(+n),e=null,u):t},u.x0=function(e){return arguments.length?(t="function"==typeof e?e:tw(+e),u):t},u.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:tw(+t),u):e},u.y=function(t){return arguments.length?(n="function"==typeof t?t:tw(+t),r=null,u):n},u.y0=function(t){return arguments.length?(n="function"==typeof t?t:tw(+t),u):n},u.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:tw(+t),u):r},u.lineX0=u.lineY0=function(){return c().x(t).y(n)},u.lineY1=function(){return c().x(t).y(r)},u.lineX1=function(){return c().x(e).y(n)},u.defined=function(t){return arguments.length?(i="function"==typeof t?t:tw(!!t),u):i},u.curve=function(t){return arguments.length?(o=t,null!=a&&(s=o(a)),u):o},u.context=function(t){return arguments.length?(null==t?a=s=null:s=o(a=t),u):a},u},Sw=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},Mw=function(t){return t},Tw=function(){var t=Mw,e=Sw,n=null,r=tw(0),i=tw(lw),a=tw(0);function o(o){var s,u,c,f,l,h=o.length,d=0,p=new Array(h),g=new Array(h),y=+r.apply(this,arguments),b=Math.min(lw,Math.max(-lw,i.apply(this,arguments)-y)),m=Math.min(Math.abs(b)/h,a.apply(this,arguments)),v=m*(b<0?-1:1);for(s=0;s<h;++s)(l=g[p[s]=s]=+t(o[s],s,o))>0&&(d+=l);for(null!=e?p.sort((function(t,n){return e(g[t],g[n])})):null!=n&&p.sort((function(t,e){return n(o[t],o[e])})),s=0,c=d?(b-h*v)/d:0;s<h;++s,y=f)u=p[s],f=y+((l=g[u])>0?l*c:0)+v,g[u]={data:o[u],index:s,value:l,startAngle:y,endAngle:f,padAngle:m};return g}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:tw(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,n=null,o):e},o.sort=function(t){return arguments.length?(n=t,e=null,o):n},o.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:tw(+t),o):r},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:tw(+t),o):i},o.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:tw(+t),o):a},o},Dw=Ow(ww);function Cw(t){this._curve=t}function Ow(t){function e(e){return new Cw(t(e))}return e._curve=t,e}function Rw(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(Ow(t)):e()._curve},t}Cw.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var Nw=function(){return Rw(Ew().curve(Dw))},Iw=function(){var t=Aw().curve(Dw),e=t.curve,n=t.lineX0,r=t.lineX1,i=t.lineY0,a=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Rw(n())},delete t.lineX0,t.lineEndAngle=function(){return Rw(r())},delete t.lineX1,t.lineInnerRadius=function(){return Rw(i())},delete t.lineY0,t.lineOuterRadius=function(){return Rw(a())},delete t.lineY1,t.curve=function(t){return arguments.length?e(Ow(t)):e()._curve},t},Bw=function(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]},Lw=Array.prototype.slice;function Pw(t){return t.source}function Fw(t){return t.target}function qw(t){var e=Pw,n=Fw,r=xw,i=kw,a=null;function o(){var o,s=Lw.call(arguments),u=e.apply(this,s),c=n.apply(this,s);if(a||(a=o=qo()),t(a,+r.apply(this,(s[0]=u,s)),+i.apply(this,s),+r.apply(this,(s[0]=c,s)),+i.apply(this,s)),o)return a=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(n=t,o):n},o.x=function(t){return arguments.length?(r="function"==typeof t?t:tw(+t),o):r},o.y=function(t){return arguments.length?(i="function"==typeof t?t:tw(+t),o):i},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o}function jw(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e=(e+r)/2,n,e,i,r,i)}function Uw(t,e,n,r,i){t.moveTo(e,n),t.bezierCurveTo(e,n=(n+i)/2,r,n,r,i)}function zw(t,e,n,r,i){var a=Bw(e,n),o=Bw(e,n=(n+i)/2),s=Bw(r,n),u=Bw(r,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],s[0],s[1],u[0],u[1])}function Yw(){return qw(jw)}function Hw(){return qw(Uw)}function Vw(){var t=qw(zw);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t}var $w={draw:function(t,e){var n=Math.sqrt(e/cw);t.moveTo(n,0),t.arc(0,0,n,0,lw)}},Gw={draw:function(t,e){var n=Math.sqrt(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},Ww=Math.sqrt(1/3),Kw=2*Ww,Xw={draw:function(t,e){var n=Math.sqrt(e/Kw),r=n*Ww;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},Zw=Math.sin(cw/10)/Math.sin(7*cw/10),Jw=Math.sin(lw/10)*Zw,Qw=-Math.cos(lw/10)*Zw,tx={draw:function(t,e){var n=Math.sqrt(.8908130915292852*e),r=Jw*n,i=Qw*n;t.moveTo(0,-n),t.lineTo(r,i);for(var a=1;a<5;++a){var o=lw*a/5,s=Math.cos(o),u=Math.sin(o);t.lineTo(u*n,-s*n),t.lineTo(s*r-u*i,u*r+s*i)}t.closePath()}},ex={draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},nx=Math.sqrt(3),rx={draw:function(t,e){var n=-Math.sqrt(e/(3*nx));t.moveTo(0,2*n),t.lineTo(-nx*n,-n),t.lineTo(nx*n,-n),t.closePath()}},ix=Math.sqrt(3)/2,ax=1/Math.sqrt(12),ox=3*(ax/2+1),sx={draw:function(t,e){var n=Math.sqrt(e/ox),r=n/2,i=n*ax,a=r,o=n*ax+n,s=-a,u=o;t.moveTo(r,i),t.lineTo(a,o),t.lineTo(s,u),t.lineTo(-.5*r-ix*i,ix*r+-.5*i),t.lineTo(-.5*a-ix*o,ix*a+-.5*o),t.lineTo(-.5*s-ix*u,ix*s+-.5*u),t.lineTo(-.5*r+ix*i,-.5*i-ix*r),t.lineTo(-.5*a+ix*o,-.5*o-ix*a),t.lineTo(-.5*s+ix*u,-.5*u-ix*s),t.closePath()}},ux=[$w,Gw,Xw,ex,tx,rx,sx],cx=function(){var t=tw($w),e=tw(64),n=null;function r(){var r;if(n||(n=r=qo()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),r)return n=null,r+""||null}return r.type=function(e){return arguments.length?(t="function"==typeof e?e:tw(e),r):t},r.size=function(t){return arguments.length?(e="function"==typeof t?t:tw(+t),r):e},r.context=function(t){return arguments.length?(n=null==t?null:t,r):n},r},fx=function(){};function lx(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function hx(t){this._context=t}hx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:lx(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:lx(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var dx=function(t){return new hx(t)};function px(t){this._context=t}px.prototype={areaStart:fx,areaEnd:fx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:lx(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var gx=function(t){return new px(t)};function yx(t){this._context=t}yx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:lx(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};var bx=function(t){return new yx(t)};function mx(t,e){this._basis=new hx(t),this._beta=e}mx.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r,i=t[0],a=e[0],o=t[n]-i,s=e[n]-a,u=-1;++u<=n;)r=u/n,this._basis.point(this._beta*t[u]+(1-this._beta)*(i+r*o),this._beta*e[u]+(1-this._beta)*(a+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var vx=function t(e){function n(t){return 1===e?new hx(t):new mx(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function _x(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function wx(t,e){this._context=t,this._k=(1-e)/6}wx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:_x(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:_x(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var xx=function t(e){function n(t){return new wx(t,e)}return n.tension=function(e){return t(+e)},n}(0);function kx(t,e){this._context=t,this._k=(1-e)/6}kx.prototype={areaStart:fx,areaEnd:fx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:_x(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ex=function t(e){function n(t){return new kx(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Ax(t,e){this._context=t,this._k=(1-e)/6}Ax.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:_x(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Sx=function t(e){function n(t){return new Ax(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Mx(t,e,n){var r=t._x1,i=t._y1,a=t._x2,o=t._y2;if(t._l01_a>uw){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>uw){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*c+t._x1*t._l23_2a-e*t._l12_2a)/f,o=(o*c+t._y1*t._l23_2a-n*t._l12_2a)/f}t._context.bezierCurveTo(r,i,a,o,t._x2,t._y2)}function Tx(t,e){this._context=t,this._alpha=e}Tx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Mx(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Dx=function t(e){function n(t){return e?new Tx(t,e):new wx(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Cx(t,e){this._context=t,this._alpha=e}Cx.prototype={areaStart:fx,areaEnd:fx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Mx(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ox=function t(e){function n(t){return e?new Cx(t,e):new kx(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Rx(t,e){this._context=t,this._alpha=e}Rx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Mx(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Nx=function t(e){function n(t){return e?new Rx(t,e):new Ax(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Ix(t){this._context=t}Ix.prototype={areaStart:fx,areaEnd:fx,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};var Bx=function(t){return new Ix(t)};function Lx(t){return t<0?-1:1}function Px(t,e,n){var r=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(r||i<0&&-0),o=(n-t._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(Lx(a)+Lx(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function Fx(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function qx(t,e,n){var r=t._x0,i=t._y0,a=t._x1,o=t._y1,s=(a-r)/3;t._context.bezierCurveTo(r+s,i+s*e,a-s,o-s*n,a,o)}function jx(t){this._context=t}function Ux(t){this._context=new zx(t)}function zx(t){this._context=t}function Yx(t){return new jx(t)}function Hx(t){return new Ux(t)}function Vx(t){this._context=t}function $x(t){var e,n,r=t.length-1,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e<r-1;++e)i[e]=1,a[e]=4,o[e]=4*t[e]+2*t[e+1];for(i[r-1]=2,a[r-1]=7,o[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)n=i[e]/a[e-1],a[e]-=n,o[e]-=n*o[e-1];for(i[r-1]=o[r-1]/a[r-1],e=r-2;e>=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e<r-1;++e)a[e]=2*t[e+1]-i[e+1];return[i,a]}jx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:qx(this,this._t0,Fx(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,qx(this,Fx(this,n=Px(this,t,e)),n);break;default:qx(this,this._t0,n=Px(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(Ux.prototype=Object.create(jx.prototype)).point=function(t,e){jx.prototype.point.call(this,e,t)},zx.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,a){this._context.bezierCurveTo(e,t,r,n,a,i)}},Vx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var r=$x(t),i=$x(e),a=0,o=1;o<n;++a,++o)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],t[o],e[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Gx=function(t){return new Vx(t)};function Wx(t,e){this._context=t,this._t=e}Wx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};var Kx=function(t){return new Wx(t,.5)};function Xx(t){return new Wx(t,0)}function Zx(t){return new Wx(t,1)}var Jx=function(t,e){if((i=t.length)>1)for(var n,r,i,a=1,o=t[e[0]],s=o.length;a<i;++a)for(r=o,o=t[e[a]],n=0;n<s;++n)o[n][1]+=o[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]},Qx=function(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n};function tk(t,e){return t[e]}var ek=function(){var t=tw([]),e=Qx,n=Jx,r=tk;function i(i){var a,o,s=t.apply(this,arguments),u=i.length,c=s.length,f=new Array(c);for(a=0;a<c;++a){for(var l,h=s[a],d=f[a]=new Array(u),p=0;p<u;++p)d[p]=l=[0,+r(i[p],h,p,i)],l.data=i[p];d.key=h}for(a=0,o=e(f);a<c;++a)f[o[a]].index=a;return n(f,o),f}return i.keys=function(e){return arguments.length?(t="function"==typeof e?e:tw(Lw.call(e)),i):t},i.value=function(t){return arguments.length?(r="function"==typeof t?t:tw(+t),i):r},i.order=function(t){return arguments.length?(e=null==t?Qx:"function"==typeof t?t:tw(Lw.call(t)),i):e},i.offset=function(t){return arguments.length?(n=null==t?Jx:t,i):n},i},nk=function(t,e){if((r=t.length)>0){for(var n,r,i,a=0,o=t[0].length;a<o;++a){for(i=n=0;n<r;++n)i+=t[n][a][1]||0;if(i)for(n=0;n<r;++n)t[n][a][1]/=i}Jx(t,e)}},rk=function(t,e){if((s=t.length)>0)for(var n,r,i,a,o,s,u=0,c=t[e[0]].length;u<c;++u)for(a=o=0,n=0;n<s;++n)(i=(r=t[e[n]][u])[1]-r[0])>=0?(r[0]=a,r[1]=a+=i):i<0?(r[1]=o,r[0]=o+=i):r[0]=a},ik=function(t,e){if((n=t.length)>0){for(var n,r=0,i=t[e[0]],a=i.length;r<a;++r){for(var o=0,s=0;o<n;++o)s+=t[o][r][1]||0;i[r][1]+=i[r][0]=-s/2}Jx(t,e)}},ak=function(t,e){if((i=t.length)>0&&(r=(n=t[e[0]]).length)>0){for(var n,r,i,a=0,o=1;o<r;++o){for(var s=0,u=0,c=0;s<i;++s){for(var f=t[e[s]],l=f[o][1]||0,h=(l-(f[o-1][1]||0))/2,d=0;d<s;++d){var p=t[e[d]];h+=(p[o][1]||0)-(p[o-1][1]||0)}u+=l,c+=h*l}n[o-1][1]+=n[o-1][0]=a,u&&(a-=c/u)}n[o-1][1]+=n[o-1][0]=a,Jx(t,e)}},ok=function(t){var e=t.map(sk);return Qx(t).sort((function(t,n){return e[t]-e[n]}))};function sk(t){for(var e,n=-1,r=0,i=t.length,a=-1/0;++n<i;)(e=+t[n][1])>a&&(a=e,r=n);return r}var uk=function(t){var e=t.map(ck);return Qx(t).sort((function(t,n){return e[t]-e[n]}))};function ck(t){for(var e,n=0,r=-1,i=t.length;++r<i;)(e=+t[r][1])&&(n+=e);return n}var fk=function(t){return uk(t).reverse()},lk=function(t){var e,n,r=t.length,i=t.map(ck),a=ok(t),o=0,s=0,u=[],c=[];for(e=0;e<r;++e)n=a[e],o<s?(o+=i[n],u.push(n)):(s+=i[n],c.push(n));return c.reverse().concat(u)},hk=function(t){return Qx(t).reverse()},dk=function(t){return function(){return t}};function pk(t){return t[0]}function gk(t){return t[1]}function yk(){this._=null}function bk(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function mk(t,e){var n=e,r=e.R,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.R=r.L,n.R&&(n.R.U=n),r.L=n}function vk(t,e){var n=e,r=e.L,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.L=r.R,n.L&&(n.L.U=n),r.R=n}function _k(t){for(;t.L;)t=t.L;return t}yk.prototype={constructor:yk,insert:function(t,e){var n,r,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;n=t}else this._?(t=_k(this._),e.P=null,e.N=t,t.P=t.L=e,n=t):(e.P=e.N=null,this._=e,n=null);for(e.L=e.R=null,e.U=n,e.C=!0,t=e;n&&n.C;)n===(r=n.U).L?(i=r.R)&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.R&&(mk(this,n),n=(t=n).U),n.C=!1,r.C=!0,vk(this,r)):(i=r.L)&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.L&&(vk(this,n),n=(t=n).U),n.C=!1,r.C=!0,mk(this,r)),n=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,n,r,i=t.U,a=t.L,o=t.R;if(n=a?o?_k(o):a:o,i?i.L===t?i.L=n:i.R=n:this._=n,a&&o?(r=n.C,n.C=t.C,n.L=a,a.U=n,n!==o?(i=n.U,n.U=t.U,t=n.R,i.L=t,n.R=o,o.U=n):(n.U=i,i=n,t=n.R)):(r=t.C,t=n),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((e=i.R).C&&(e.C=!1,i.C=!0,mk(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,vk(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,mk(this,i),t=this._;break}}else if((e=i.L).C&&(e.C=!1,i.C=!0,vk(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,mk(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,vk(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var wk=yk;function xk(t,e,n,r){var i=[null,null],a=$k.push(i)-1;return i.left=t,i.right=e,n&&Ek(i,t,e,n),r&&Ek(i,e,t,r),Hk[t.index].halfedges.push(a),Hk[e.index].halfedges.push(a),i}function kk(t,e,n){var r=[e,n];return r.left=t,r}function Ek(t,e,n,r){t[0]||t[1]?t.left===n?t[1]=r:t[0]=r:(t[0]=r,t.left=e,t.right=n)}function Ak(t,e,n,r,i){var a,o=t[0],s=t[1],u=o[0],c=o[1],f=0,l=1,h=s[0]-u,d=s[1]-c;if(a=e-u,h||!(a>0)){if(a/=h,h<0){if(a<f)return;a<l&&(l=a)}else if(h>0){if(a>l)return;a>f&&(f=a)}if(a=r-u,h||!(a<0)){if(a/=h,h<0){if(a>l)return;a>f&&(f=a)}else if(h>0){if(a<f)return;a<l&&(l=a)}if(a=n-c,d||!(a>0)){if(a/=d,d<0){if(a<f)return;a<l&&(l=a)}else if(d>0){if(a>l)return;a>f&&(f=a)}if(a=i-c,d||!(a<0)){if(a/=d,d<0){if(a>l)return;a>f&&(f=a)}else if(d>0){if(a<f)return;a<l&&(l=a)}return!(f>0||l<1)||(f>0&&(t[0]=[u+f*h,c+f*d]),l<1&&(t[1]=[u+l*h,c+l*d]),!0)}}}}}function Sk(t,e,n,r,i){var a=t[1];if(a)return!0;var o,s,u=t[0],c=t.left,f=t.right,l=c[0],h=c[1],d=f[0],p=f[1],g=(l+d)/2,y=(h+p)/2;if(p===h){if(g<e||g>=r)return;if(l>d){if(u){if(u[1]>=i)return}else u=[g,n];a=[g,i]}else{if(u){if(u[1]<n)return}else u=[g,i];a=[g,n]}}else if(s=y-(o=(l-d)/(p-h))*g,o<-1||o>1)if(l>d){if(u){if(u[1]>=i)return}else u=[(n-s)/o,n];a=[(i-s)/o,i]}else{if(u){if(u[1]<n)return}else u=[(i-s)/o,i];a=[(n-s)/o,n]}else if(h<p){if(u){if(u[0]>=r)return}else u=[e,o*e+s];a=[r,o*r+s]}else{if(u){if(u[0]<e)return}else u=[r,o*r+s];a=[e,o*e+s]}return t[0]=u,t[1]=a,!0}function Mk(t,e){var n=t.site,r=e.left,i=e.right;return n===i&&(i=r,r=n),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(n===r?(r=e[1],i=e[0]):(r=e[0],i=e[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Tk(t,e){return e[+(e.left!==t.site)]}function Dk(t,e){return e[+(e.left===t.site)]}var Ck,Ok=[];function Rk(){bk(this),this.x=this.y=this.arc=this.site=this.cy=null}function Nk(t){var e=t.P,n=t.N;if(e&&n){var r=e.site,i=t.site,a=n.site;if(r!==a){var o=i[0],s=i[1],u=r[0]-o,c=r[1]-s,f=a[0]-o,l=a[1]-s,h=2*(u*l-c*f);if(!(h>=-Wk)){var d=u*u+c*c,p=f*f+l*l,g=(l*d-c*p)/h,y=(u*p-f*d)/h,b=Ok.pop()||new Rk;b.arc=t,b.site=i,b.x=g+o,b.y=(b.cy=y+s)+Math.sqrt(g*g+y*y),t.circle=b;for(var m=null,v=Vk._;v;)if(b.y<v.y||b.y===v.y&&b.x<=v.x){if(!v.L){m=v.P;break}v=v.L}else{if(!v.R){m=v;break}v=v.R}Vk.insert(m,b),m||(Ck=b)}}}}function Ik(t){var e=t.circle;e&&(e.P||(Ck=e.N),Vk.remove(e),Ok.push(e),bk(e),t.circle=null)}var Bk=[];function Lk(){bk(this),this.edge=this.site=this.circle=null}function Pk(t){var e=Bk.pop()||new Lk;return e.site=t,e}function Fk(t){Ik(t),Yk.remove(t),Bk.push(t),bk(t)}function qk(t){var e=t.circle,n=e.x,r=e.cy,i=[n,r],a=t.P,o=t.N,s=[t];Fk(t);for(var u=a;u.circle&&Math.abs(n-u.circle.x)<Gk&&Math.abs(r-u.circle.cy)<Gk;)a=u.P,s.unshift(u),Fk(u),u=a;s.unshift(u),Ik(u);for(var c=o;c.circle&&Math.abs(n-c.circle.x)<Gk&&Math.abs(r-c.circle.cy)<Gk;)o=c.N,s.push(c),Fk(c),c=o;s.push(c),Ik(c);var f,l=s.length;for(f=1;f<l;++f)c=s[f],u=s[f-1],Ek(c.edge,u.site,c.site,i);u=s[0],(c=s[l-1]).edge=xk(u.site,c.site,null,i),Nk(u),Nk(c)}function jk(t){for(var e,n,r,i,a=t[0],o=t[1],s=Yk._;s;)if((r=Uk(s,o)-a)>Gk)s=s.L;else{if(!((i=a-zk(s,o))>Gk)){r>-Gk?(e=s.P,n=s):i>-Gk?(e=s,n=s.N):e=n=s;break}if(!s.R){e=s;break}s=s.R}!function(t){Hk[t.index]={site:t,halfedges:[]}}(t);var u=Pk(t);if(Yk.insert(e,u),e||n){if(e===n)return Ik(e),n=Pk(e.site),Yk.insert(u,n),u.edge=n.edge=xk(e.site,u.site),Nk(e),void Nk(n);if(n){Ik(e),Ik(n);var c=e.site,f=c[0],l=c[1],h=t[0]-f,d=t[1]-l,p=n.site,g=p[0]-f,y=p[1]-l,b=2*(h*y-d*g),m=h*h+d*d,v=g*g+y*y,_=[(y*m-d*v)/b+f,(h*v-g*m)/b+l];Ek(n.edge,c,p,_),u.edge=xk(c,t,null,_),n.edge=xk(t,p,null,_),Nk(e),Nk(n)}else u.edge=xk(e.site,u.site)}}function Uk(t,e){var n=t.site,r=n[0],i=n[1],a=i-e;if(!a)return r;var o=t.P;if(!o)return-1/0;var s=(n=o.site)[0],u=n[1],c=u-e;if(!c)return s;var f=s-r,l=1/a-1/c,h=f/c;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*c)-u+c/2+i-a/2)))/l+r:(r+s)/2}function zk(t,e){var n=t.N;if(n)return Uk(n,e);var r=t.site;return r[1]===e?r[0]:1/0}var Yk,Hk,Vk,$k,Gk=1e-6,Wk=1e-12;function Kk(t,e){return e[1]-t[1]||e[0]-t[0]}function Xk(t,e){var n,r,i,a=t.sort(Kk).pop();for($k=[],Hk=new Array(t.length),Yk=new wk,Vk=new wk;;)if(i=Ck,a&&(!i||a[1]<i.y||a[1]===i.y&&a[0]<i.x))a[0]===n&&a[1]===r||(jk(a),n=a[0],r=a[1]),a=t.pop();else{if(!i)break;qk(i.arc)}if(function(){for(var t,e,n,r,i=0,a=Hk.length;i<a;++i)if((t=Hk[i])&&(r=(e=t.halfedges).length)){var o=new Array(r),s=new Array(r);for(n=0;n<r;++n)o[n]=n,s[n]=Mk(t,$k[e[n]]);for(o.sort((function(t,e){return s[e]-s[t]})),n=0;n<r;++n)s[n]=e[o[n]];for(n=0;n<r;++n)e[n]=s[n]}}(),e){var o=+e[0][0],s=+e[0][1],u=+e[1][0],c=+e[1][1];!function(t,e,n,r){for(var i,a=$k.length;a--;)Sk(i=$k[a],t,e,n,r)&&Ak(i,t,e,n,r)&&(Math.abs(i[0][0]-i[1][0])>Gk||Math.abs(i[0][1]-i[1][1])>Gk)||delete $k[a]}(o,s,u,c),function(t,e,n,r){var i,a,o,s,u,c,f,l,h,d,p,g,y=Hk.length,b=!0;for(i=0;i<y;++i)if(a=Hk[i]){for(o=a.site,s=(u=a.halfedges).length;s--;)$k[u[s]]||u.splice(s,1);for(s=0,c=u.length;s<c;)p=(d=Dk(a,$k[u[s]]))[0],g=d[1],l=(f=Tk(a,$k[u[++s%c]]))[0],h=f[1],(Math.abs(p-l)>Gk||Math.abs(g-h)>Gk)&&(u.splice(s,0,$k.push(kk(o,d,Math.abs(p-t)<Gk&&r-g>Gk?[t,Math.abs(l-t)<Gk?h:r]:Math.abs(g-r)<Gk&&n-p>Gk?[Math.abs(h-r)<Gk?l:n,r]:Math.abs(p-n)<Gk&&g-e>Gk?[n,Math.abs(l-n)<Gk?h:e]:Math.abs(g-e)<Gk&&p-t>Gk?[Math.abs(h-e)<Gk?l:t,e]:null))-1),++c);c&&(b=!1)}if(b){var m,v,_,w=1/0;for(i=0,b=null;i<y;++i)(a=Hk[i])&&(_=(m=(o=a.site)[0]-t)*m+(v=o[1]-e)*v)<w&&(w=_,b=a);if(b){var x=[t,e],k=[t,r],E=[n,r],A=[n,e];b.halfedges.push($k.push(kk(o=b.site,x,k))-1,$k.push(kk(o,k,E))-1,$k.push(kk(o,E,A))-1,$k.push(kk(o,A,x))-1)}}for(i=0;i<y;++i)(a=Hk[i])&&(a.halfedges.length||delete Hk[i])}(o,s,u,c)}this.edges=$k,this.cells=Hk,Yk=Vk=$k=Hk=null}Xk.prototype={constructor:Xk,polygons:function(){var t=this.edges;return this.cells.map((function(e){var n=e.halfedges.map((function(n){return Tk(e,t[n])}));return n.data=e.site.data,n}))},triangles:function(){var t=[],e=this.edges;return this.cells.forEach((function(n,r){if(a=(i=n.halfedges).length)for(var i,a,o,s,u,c,f=n.site,l=-1,h=e[i[a-1]],d=h.left===f?h.right:h.left;++l<a;)o=d,d=(h=e[i[l]]).left===f?h.right:h.left,o&&d&&r<o.index&&r<d.index&&(u=o,c=d,((s=f)[0]-c[0])*(u[1]-s[1])-(s[0]-u[0])*(c[1]-s[1])<0)&&t.push([f.data,o.data,d.data])})),t},links:function(){return this.edges.filter((function(t){return t.right})).map((function(t){return{source:t.left.data,target:t.right.data}}))},find:function(t,e,n){for(var r,i,a=this,o=a._found||0,s=a.cells.length;!(i=a.cells[o]);)if(++o>=s)return null;var u=t-i.site[0],c=e-i.site[1],f=u*u+c*c;do{i=a.cells[r=o],o=null,i.halfedges.forEach((function(n){var r=a.edges[n],s=r.left;if(s!==i.site&&s||(s=r.right)){var u=t-s[0],c=e-s[1],l=u*u+c*c;l<f&&(f=l,o=s.index)}}))}while(null!==o);return a._found=r,null==n||f<=n*n?i.site:null}};var Zk=function(){var t=pk,e=gk,n=null;function r(r){return new Xk(r.map((function(n,i){var a=[Math.round(t(n,i,r)/Gk)*Gk,Math.round(e(n,i,r)/Gk)*Gk];return a.index=i,a.data=n,a})),n)}return r.polygons=function(t){return r(t).polygons()},r.links=function(t){return r(t).links()},r.triangles=function(t){return r(t).triangles()},r.x=function(e){return arguments.length?(t="function"==typeof e?e:dk(+e),r):t},r.y=function(t){return arguments.length?(e="function"==typeof t?t:dk(+t),r):e},r.extent=function(t){return arguments.length?(n=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],r):n&&[[n[0][0],n[0][1]],[n[1][0],n[1][1]]]},r.size=function(t){return arguments.length?(n=null==t?null:[[0,0],[+t[0],+t[1]]],r):n&&[n[1][0]-n[0][0],n[1][1]-n[0][1]]},r},Jk=function(t){return function(){return t}};function Qk(t,e,n){this.target=t,this.type=e,this.transform=n}function tE(t,e,n){this.k=t,this.x=e,this.y=n}tE.prototype={constructor:tE,scale:function(t){return 1===t?this:new tE(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new tE(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var eE=new tE(1,0,0);function nE(t){for(;!t.__zoom;)if(!(t=t.parentNode))return eE;return t.__zoom}function rE(){pe.stopImmediatePropagation()}nE.prototype=tE.prototype;var iE=function(){pe.preventDefault(),pe.stopImmediatePropagation()};function aE(){return!pe.ctrlKey&&!pe.button}function oE(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function sE(){return this.__zoom||eE}function uE(){return-pe.deltaY*(1===pe.deltaMode?.05:pe.deltaMode?1:.002)}function cE(){return navigator.maxTouchPoints||"ontouchstart"in this}function fE(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],a=t.invertY(e[0][1])-n[0][1],o=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}var lE=function(){var t,e,n=aE,r=oE,i=fE,a=uE,o=cE,s=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,f=ur,l=gt("start","zoom","end"),h=500,d=150,p=0;function g(t){t.property("__zoom",sE).on("wheel.zoom",x).on("mousedown.zoom",k).on("dblclick.zoom",E).filter(o).on("touchstart.zoom",A).on("touchmove.zoom",S).on("touchend.zoom touchcancel.zoom",M).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(t,e){return(e=Math.max(s[0],Math.min(s[1],e)))===t.k?t:new tE(e,t.x,t.y)}function b(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new tE(t.k,r,i)}function m(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function v(t,e,n){t.on("start.zoom",(function(){_(this,arguments).start()})).on("interrupt.zoom end.zoom",(function(){_(this,arguments).end()})).tween("zoom",(function(){var t=this,i=arguments,a=_(t,i),o=r.apply(t,i),s=null==n?m(o):"function"==typeof n?n.apply(t,i):n,u=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),c=t.__zoom,l="function"==typeof e?e.apply(t,i):e,h=f(c.invert(s).concat(u/c.k),l.invert(s).concat(u/l.k));return function(t){if(1===t)t=l;else{var e=h(t),n=u/e[2];t=new tE(n,s[0]-e[0]*n,s[1]-e[1]*n)}a.zoom(null,t)}}))}function _(t,e,n){return!n&&t.__zooming||new w(t,e)}function w(t,e){this.that=t,this.args=e,this.active=0,this.extent=r.apply(t,e),this.taps=0}function x(){if(n.apply(this,arguments)){var t=_(this,arguments),e=this.__zoom,r=Math.max(s[0],Math.min(s[1],e.k*Math.pow(2,a.apply(this,arguments)))),o=Be(this);if(t.wheel)t.mouse[0][0]===o[0]&&t.mouse[0][1]===o[1]||(t.mouse[1]=e.invert(t.mouse[0]=o)),clearTimeout(t.wheel);else{if(e.k===r)return;t.mouse=[o,e.invert(o)],Oi(this),t.start()}iE(),t.wheel=setTimeout((function(){t.wheel=null,t.end()}),d),t.zoom("mouse",i(b(y(e,r),t.mouse[0],t.mouse[1]),t.extent,u))}}function k(){if(!e&&n.apply(this,arguments)){var t=_(this,arguments,!0),r=Te(pe.view).on("mousemove.zoom",(function(){if(iE(),!t.moved){var e=pe.clientX-o,n=pe.clientY-s;t.moved=e*e+n*n>p}t.zoom("mouse",i(b(t.that.__zoom,t.mouse[0]=Be(t.that),t.mouse[1]),t.extent,u))}),!0).on("mouseup.zoom",(function(){r.on("mousemove.zoom mouseup.zoom",null),ze(pe.view,t.moved),iE(),t.end()}),!0),a=Be(this),o=pe.clientX,s=pe.clientY;Ue(pe.view),rE(),t.mouse=[a,this.__zoom.invert(a)],Oi(this),t.start()}}function E(){if(n.apply(this,arguments)){var t=this.__zoom,e=Be(this),a=t.invert(e),o=t.k*(pe.shiftKey?.5:2),s=i(b(y(t,o),e,a),r.apply(this,arguments),u);iE(),c>0?Te(this).transition().duration(c).call(v,s,e):Te(this).call(g.transform,s)}}function A(){if(n.apply(this,arguments)){var e,r,i,a,o=pe.touches,s=o.length,u=_(this,arguments,pe.changedTouches.length===s);for(rE(),r=0;r<s;++r)i=o[r],a=[a=Pe(this,o,i.identifier),this.__zoom.invert(a),i.identifier],u.touch0?u.touch1||u.touch0[2]===a[2]||(u.touch1=a,u.taps=0):(u.touch0=a,e=!0,u.taps=1+!!t);t&&(t=clearTimeout(t)),e&&(u.taps<2&&(t=setTimeout((function(){t=null}),h)),Oi(this),u.start())}}function S(){if(this.__zooming){var e,n,r,a,o=_(this,arguments),s=pe.changedTouches,c=s.length;for(iE(),t&&(t=clearTimeout(t)),o.taps=0,e=0;e<c;++e)n=s[e],r=Pe(this,s,n.identifier),o.touch0&&o.touch0[2]===n.identifier?o.touch0[0]=r:o.touch1&&o.touch1[2]===n.identifier&&(o.touch1[0]=r);if(n=o.that.__zoom,o.touch1){var f=o.touch0[0],l=o.touch0[1],h=o.touch1[0],d=o.touch1[1],p=(p=h[0]-f[0])*p+(p=h[1]-f[1])*p,g=(g=d[0]-l[0])*g+(g=d[1]-l[1])*g;n=y(n,Math.sqrt(p/g)),r=[(f[0]+h[0])/2,(f[1]+h[1])/2],a=[(l[0]+d[0])/2,(l[1]+d[1])/2]}else{if(!o.touch0)return;r=o.touch0[0],a=o.touch0[1]}o.zoom("touch",i(b(n,r,a),o.extent,u))}}function M(){if(this.__zooming){var t,n,r=_(this,arguments),i=pe.changedTouches,a=i.length;for(rE(),e&&clearTimeout(e),e=setTimeout((function(){e=null}),h),t=0;t<a;++t)n=i[t],r.touch0&&r.touch0[2]===n.identifier?delete r.touch0:r.touch1&&r.touch1[2]===n.identifier&&delete r.touch1;if(r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0)r.touch0[1]=this.__zoom.invert(r.touch0[0]);else if(r.end(),2===r.taps){var o=Te(this).on("dblclick.zoom");o&&o.apply(this,arguments)}}}return g.transform=function(t,e,n){var r=t.selection?t.selection():t;r.property("__zoom",sE),t!==r?v(t,e,n):r.interrupt().each((function(){_(this,arguments).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},g.scaleBy=function(t,e,n){g.scaleTo(t,(function(){var t=this.__zoom.k,n="function"==typeof e?e.apply(this,arguments):e;return t*n}),n)},g.scaleTo=function(t,e,n){g.transform(t,(function(){var t=r.apply(this,arguments),a=this.__zoom,o=null==n?m(t):"function"==typeof n?n.apply(this,arguments):n,s=a.invert(o),c="function"==typeof e?e.apply(this,arguments):e;return i(b(y(a,c),o,s),t,u)}),n)},g.translateBy=function(t,e,n){g.transform(t,(function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),u)}))},g.translateTo=function(t,e,n,a){g.transform(t,(function(){var t=r.apply(this,arguments),o=this.__zoom,s=null==a?m(t):"function"==typeof a?a.apply(this,arguments):a;return i(eE.translate(s[0],s[1]).scale(o.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,u)}),a)},w.prototype={start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){_e(new Qk(g,t,this.that.__zoom),l.apply,l,[t,this.that,this.args])}},g.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:Jk(+t),g):a},g.filter=function(t){return arguments.length?(n="function"==typeof t?t:Jk(!!t),g):n},g.touchable=function(t){return arguments.length?(o="function"==typeof t?t:Jk(!!t),g):o},g.extent=function(t){return arguments.length?(r="function"==typeof t?t:Jk([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),g):r},g.scaleExtent=function(t){return arguments.length?(s[0]=+t[0],s[1]=+t[1],g):[s[0],s[1]]},g.translateExtent=function(t){return arguments.length?(u[0][0]=+t[0][0],u[1][0]=+t[1][0],u[0][1]=+t[0][1],u[1][1]=+t[1][1],g):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},g.constrain=function(t){return arguments.length?(i=t,g):i},g.duration=function(t){return arguments.length?(c=+t,g):c},g.interpolate=function(t){return arguments.length?(f=t,g):f},g.on=function(){var t=l.on.apply(l,arguments);return t===l?g:t},g.clickDistance=function(t){return arguments.length?(p=(t=+t)*t,g):Math.sqrt(p)},g};n.d(e,"version",(function(){return"5.12.0"})),n.d(e,"bisect",(function(){return u})),n.d(e,"bisectRight",(function(){return o})),n.d(e,"bisectLeft",(function(){return s})),n.d(e,"ascending",(function(){return r})),n.d(e,"bisector",(function(){return i})),n.d(e,"cross",(function(){return l})),n.d(e,"descending",(function(){return h})),n.d(e,"deviation",(function(){return g})),n.d(e,"extent",(function(){return y})),n.d(e,"histogram",(function(){return C})),n.d(e,"thresholdFreedmanDiaconis",(function(){return R})),n.d(e,"thresholdScott",(function(){return N})),n.d(e,"thresholdSturges",(function(){return D})),n.d(e,"max",(function(){return I})),n.d(e,"mean",(function(){return B})),n.d(e,"median",(function(){return L})),n.d(e,"merge",(function(){return P})),n.d(e,"min",(function(){return F})),n.d(e,"pairs",(function(){return c})),n.d(e,"permute",(function(){return q})),n.d(e,"quantile",(function(){return O})),n.d(e,"range",(function(){return x})),n.d(e,"scan",(function(){return j})),n.d(e,"shuffle",(function(){return U})),n.d(e,"sum",(function(){return z})),n.d(e,"ticks",(function(){return S})),n.d(e,"tickIncrement",(function(){return M})),n.d(e,"tickStep",(function(){return T})),n.d(e,"transpose",(function(){return Y})),n.d(e,"variance",(function(){return p})),n.d(e,"zip",(function(){return V})),n.d(e,"axisTop",(function(){return at})),n.d(e,"axisRight",(function(){return ot})),n.d(e,"axisBottom",(function(){return st})),n.d(e,"axisLeft",(function(){return ut})),n.d(e,"brush",(function(){return xo})),n.d(e,"brushX",(function(){return _o})),n.d(e,"brushY",(function(){return wo})),n.d(e,"brushSelection",(function(){return vo})),n.d(e,"chord",(function(){return Oo})),n.d(e,"ribbon",(function(){return Vo})),n.d(e,"nest",(function(){return Ko})),n.d(e,"set",(function(){return rs})),n.d(e,"map",(function(){return Wo})),n.d(e,"keys",(function(){return is})),n.d(e,"values",(function(){return as})),n.d(e,"entries",(function(){return os})),n.d(e,"color",(function(){return dn})),n.d(e,"rgb",(function(){return bn})),n.d(e,"hsl",(function(){return En})),n.d(e,"lab",(function(){return kr})),n.d(e,"hcl",(function(){return Or})),n.d(e,"lch",(function(){return Cr})),n.d(e,"gray",(function(){return xr})),n.d(e,"cubehelix",(function(){return Hr})),n.d(e,"contours",(function(){return ys})),n.d(e,"contourDensity",(function(){return xs})),n.d(e,"dispatch",(function(){return gt})),n.d(e,"drag",(function(){return Ke})),n.d(e,"dragDisable",(function(){return Ue})),n.d(e,"dragEnable",(function(){return ze})),n.d(e,"dsvFormat",(function(){return Rs})),n.d(e,"csvParse",(function(){return Is})),n.d(e,"csvParseRows",(function(){return Bs})),n.d(e,"csvFormat",(function(){return Ls})),n.d(e,"csvFormatBody",(function(){return Ps})),n.d(e,"csvFormatRows",(function(){return Fs})),n.d(e,"tsvParse",(function(){return js})),n.d(e,"tsvParseRows",(function(){return Us})),n.d(e,"tsvFormat",(function(){return zs})),n.d(e,"tsvFormatBody",(function(){return Ys})),n.d(e,"tsvFormatRows",(function(){return Hs})),n.d(e,"autoType",(function(){return Vs})),n.d(e,"easeLinear",(function(){return ia})),n.d(e,"easeQuad",(function(){return sa})),n.d(e,"easeQuadIn",(function(){return aa})),n.d(e,"easeQuadOut",(function(){return oa})),n.d(e,"easeQuadInOut",(function(){return sa})),n.d(e,"easeCubic",(function(){return fa})),n.d(e,"easeCubicIn",(function(){return ua})),n.d(e,"easeCubicOut",(function(){return ca})),n.d(e,"easeCubicInOut",(function(){return fa})),n.d(e,"easePoly",(function(){return da})),n.d(e,"easePolyIn",(function(){return la})),n.d(e,"easePolyOut",(function(){return ha})),n.d(e,"easePolyInOut",(function(){return da})),n.d(e,"easeSin",(function(){return ma})),n.d(e,"easeSinIn",(function(){return ya})),n.d(e,"easeSinOut",(function(){return ba})),n.d(e,"easeSinInOut",(function(){return ma})),n.d(e,"easeExp",(function(){return wa})),n.d(e,"easeExpIn",(function(){return va})),n.d(e,"easeExpOut",(function(){return _a})),n.d(e,"easeExpInOut",(function(){return wa})),n.d(e,"easeCircle",(function(){return Ea})),n.d(e,"easeCircleIn",(function(){return xa})),n.d(e,"easeCircleOut",(function(){return ka})),n.d(e,"easeCircleInOut",(function(){return Ea})),n.d(e,"easeBounce",(function(){return La})),n.d(e,"easeBounceIn",(function(){return Ba})),n.d(e,"easeBounceOut",(function(){return La})),n.d(e,"easeBounceInOut",(function(){return Pa})),n.d(e,"easeBack",(function(){return ja})),n.d(e,"easeBackIn",(function(){return Fa})),n.d(e,"easeBackOut",(function(){return qa})),n.d(e,"easeBackInOut",(function(){return ja})),n.d(e,"easeElastic",(function(){return Ya})),n.d(e,"easeElasticIn",(function(){return za})),n.d(e,"easeElasticOut",(function(){return Ya})),n.d(e,"easeElasticInOut",(function(){return Ha})),n.d(e,"blob",(function(){return Gs})),n.d(e,"buffer",(function(){return Ks})),n.d(e,"dsv",(function(){return Qs})),n.d(e,"csv",(function(){return tu})),n.d(e,"tsv",(function(){return eu})),n.d(e,"image",(function(){return nu})),n.d(e,"json",(function(){return iu})),n.d(e,"text",(function(){return Zs})),n.d(e,"xml",(function(){return ou})),n.d(e,"html",(function(){return su})),n.d(e,"svg",(function(){return uu})),n.d(e,"forceCenter",(function(){return cu})),n.d(e,"forceCollide",(function(){return xu})),n.d(e,"forceLink",(function(){return Au})),n.d(e,"forceManyBody",(function(){return Ou})),n.d(e,"forceRadial",(function(){return Ru})),n.d(e,"forceSimulation",(function(){return Cu})),n.d(e,"forceX",(function(){return Nu})),n.d(e,"forceY",(function(){return Iu})),n.d(e,"formatDefaultLocale",(function(){return Zu})),n.d(e,"format",(function(){return zu})),n.d(e,"formatPrefix",(function(){return Yu})),n.d(e,"formatLocale",(function(){return Xu})),n.d(e,"formatSpecifier",(function(){return Fu})),n.d(e,"FormatSpecifier",(function(){return qu})),n.d(e,"precisionFixed",(function(){return Ju})),n.d(e,"precisionPrefix",(function(){return Qu})),n.d(e,"precisionRound",(function(){return tc})),n.d(e,"geoArea",(function(){return Gc})),n.d(e,"geoBounds",(function(){return jf})),n.d(e,"geoCentroid",(function(){return Jf})),n.d(e,"geoCircle",(function(){return cl})),n.d(e,"geoClipAntimeridian",(function(){return wl})),n.d(e,"geoClipCircle",(function(){return xl})),n.d(e,"geoClipExtent",(function(){return Cl})),n.d(e,"geoClipRectangle",(function(){return Sl})),n.d(e,"geoContains",(function(){return Wl})),n.d(e,"geoDistance",(function(){return ql})),n.d(e,"geoGraticule",(function(){return Zl})),n.d(e,"geoGraticule10",(function(){return Jl})),n.d(e,"geoInterpolate",(function(){return rh})),n.d(e,"geoLength",(function(){return Ll})),n.d(e,"geoPath",(function(){return ed})),n.d(e,"geoAlbers",(function(){return wd})),n.d(e,"geoAlbersUsa",(function(){return xd})),n.d(e,"geoAzimuthalEqualArea",(function(){return Sd})),n.d(e,"geoAzimuthalEqualAreaRaw",(function(){return Ad})),n.d(e,"geoAzimuthalEquidistant",(function(){return Td})),n.d(e,"geoAzimuthalEquidistantRaw",(function(){return Md})),n.d(e,"geoConicConformal",(function(){return Id})),n.d(e,"geoConicConformalRaw",(function(){return Nd})),n.d(e,"geoConicEqualArea",(function(){return _d})),n.d(e,"geoConicEqualAreaRaw",(function(){return vd})),n.d(e,"geoConicEquidistant",(function(){return Fd})),n.d(e,"geoConicEquidistantRaw",(function(){return Pd})),n.d(e,"geoEqualEarth",(function(){return Vd})),n.d(e,"geoEqualEarthRaw",(function(){return Hd})),n.d(e,"geoEquirectangular",(function(){return Ld})),n.d(e,"geoEquirectangularRaw",(function(){return Bd})),n.d(e,"geoGnomonic",(function(){return Gd})),n.d(e,"geoGnomonicRaw",(function(){return $d})),n.d(e,"geoIdentity",(function(){return Kd})),n.d(e,"geoProjection",(function(){return yd})),n.d(e,"geoProjectionMutator",(function(){return bd})),n.d(e,"geoMercator",(function(){return Cd})),n.d(e,"geoMercatorRaw",(function(){return Dd})),n.d(e,"geoNaturalEarth1",(function(){return Zd})),n.d(e,"geoNaturalEarth1Raw",(function(){return Xd})),n.d(e,"geoOrthographic",(function(){return Qd})),n.d(e,"geoOrthographicRaw",(function(){return Jd})),n.d(e,"geoStereographic",(function(){return ep})),n.d(e,"geoStereographicRaw",(function(){return tp})),n.d(e,"geoTransverseMercator",(function(){return rp})),n.d(e,"geoTransverseMercatorRaw",(function(){return np})),n.d(e,"geoRotation",(function(){return ol})),n.d(e,"geoStream",(function(){return qc})),n.d(e,"geoTransform",(function(){return nd})),n.d(e,"cluster",(function(){return sp})),n.d(e,"hierarchy",(function(){return cp})),n.d(e,"pack",(function(){return Ip})),n.d(e,"packSiblings",(function(){return Tp})),n.d(e,"packEnclose",(function(){return gp})),n.d(e,"partition",(function(){return jp})),n.d(e,"stratify",(function(){return $p})),n.d(e,"tree",(function(){return Qp})),n.d(e,"treemap",(function(){return ig})),n.d(e,"treemapBinary",(function(){return ag})),n.d(e,"treemapDice",(function(){return qp})),n.d(e,"treemapSlice",(function(){return tg})),n.d(e,"treemapSliceDice",(function(){return og})),n.d(e,"treemapSquarify",(function(){return rg})),n.d(e,"treemapResquarify",(function(){return sg})),n.d(e,"interpolate",(function(){return Xn})),n.d(e,"interpolateArray",(function(){return qn})),n.d(e,"interpolateBasis",(function(){return Tn})),n.d(e,"interpolateBasisClosed",(function(){return Dn})),n.d(e,"interpolateDate",(function(){return jn})),n.d(e,"interpolateDiscrete",(function(){return Zn})),n.d(e,"interpolateHue",(function(){return Jn})),n.d(e,"interpolateNumber",(function(){return Un})),n.d(e,"interpolateObject",(function(){return zn})),n.d(e,"interpolateRound",(function(){return Qn})),n.d(e,"interpolateString",(function(){return Kn})),n.d(e,"interpolateTransformCss",(function(){return ir})),n.d(e,"interpolateTransformSvg",(function(){return ar})),n.d(e,"interpolateZoom",(function(){return ur})),n.d(e,"interpolateRgb",(function(){return Bn})),n.d(e,"interpolateRgbBasis",(function(){return Pn})),n.d(e,"interpolateRgbBasisClosed",(function(){return Fn})),n.d(e,"interpolateHsl",(function(){return fr})),n.d(e,"interpolateHslLong",(function(){return lr})),n.d(e,"interpolateLab",(function(){return Ir})),n.d(e,"interpolateHcl",(function(){return Lr})),n.d(e,"interpolateHclLong",(function(){return Pr})),n.d(e,"interpolateCubehelix",(function(){return Gr})),n.d(e,"interpolateCubehelixLong",(function(){return Wr})),n.d(e,"piecewise",(function(){return Kr})),n.d(e,"quantize",(function(){return Jr})),n.d(e,"path",(function(){return qo})),n.d(e,"polygonArea",(function(){return ug})),n.d(e,"polygonCentroid",(function(){return cg})),n.d(e,"polygonHull",(function(){return dg})),n.d(e,"polygonContains",(function(){return pg})),n.d(e,"polygonLength",(function(){return gg})),n.d(e,"quadtree",(function(){return yu})),n.d(e,"randomUniform",(function(){return bg})),n.d(e,"randomNormal",(function(){return mg})),n.d(e,"randomLogNormal",(function(){return vg})),n.d(e,"randomBates",(function(){return wg})),n.d(e,"randomIrwinHall",(function(){return _g})),n.d(e,"randomExponential",(function(){return xg})),n.d(e,"scaleBand",(function(){return Cg})),n.d(e,"scalePoint",(function(){return Og})),n.d(e,"scaleIdentity",(function(){return $g})),n.d(e,"scaleLinear",(function(){return Vg})),n.d(e,"scaleLog",(function(){return ey})),n.d(e,"scaleSymlog",(function(){return ay})),n.d(e,"scaleOrdinal",(function(){return Dg})),n.d(e,"scaleImplicit",(function(){return Tg})),n.d(e,"scalePow",(function(){return fy})),n.d(e,"scaleSqrt",(function(){return ly})),n.d(e,"scaleQuantile",(function(){return hy})),n.d(e,"scaleQuantize",(function(){return dy})),n.d(e,"scaleThreshold",(function(){return py})),n.d(e,"scaleTime",(function(){return ev})),n.d(e,"scaleUtc",(function(){return lv})),n.d(e,"scaleSequential",(function(){return pv})),n.d(e,"scaleSequentialLog",(function(){return gv})),n.d(e,"scaleSequentialPow",(function(){return bv})),n.d(e,"scaleSequentialSqrt",(function(){return mv})),n.d(e,"scaleSequentialSymlog",(function(){return yv})),n.d(e,"scaleSequentialQuantile",(function(){return vv})),n.d(e,"scaleDiverging",(function(){return wv})),n.d(e,"scaleDivergingLog",(function(){return xv})),n.d(e,"scaleDivergingPow",(function(){return Ev})),n.d(e,"scaleDivergingSqrt",(function(){return Av})),n.d(e,"scaleDivergingSymlog",(function(){return kv})),n.d(e,"tickFormat",(function(){return Yg})),n.d(e,"schemeCategory10",(function(){return Mv})),n.d(e,"schemeAccent",(function(){return Tv})),n.d(e,"schemeDark2",(function(){return Dv})),n.d(e,"schemePaired",(function(){return Cv})),n.d(e,"schemePastel1",(function(){return Ov})),n.d(e,"schemePastel2",(function(){return Rv})),n.d(e,"schemeSet1",(function(){return Nv})),n.d(e,"schemeSet2",(function(){return Iv})),n.d(e,"schemeSet3",(function(){return Bv})),n.d(e,"schemeTableau10",(function(){return Lv})),n.d(e,"interpolateBrBG",(function(){return qv})),n.d(e,"schemeBrBG",(function(){return Fv})),n.d(e,"interpolatePRGn",(function(){return Uv})),n.d(e,"schemePRGn",(function(){return jv})),n.d(e,"interpolatePiYG",(function(){return Yv})),n.d(e,"schemePiYG",(function(){return zv})),n.d(e,"interpolatePuOr",(function(){return Vv})),n.d(e,"schemePuOr",(function(){return Hv})),n.d(e,"interpolateRdBu",(function(){return Gv})),n.d(e,"schemeRdBu",(function(){return $v})),n.d(e,"interpolateRdGy",(function(){return Kv})),n.d(e,"schemeRdGy",(function(){return Wv})),n.d(e,"interpolateRdYlBu",(function(){return Zv})),n.d(e,"schemeRdYlBu",(function(){return Xv})),n.d(e,"interpolateRdYlGn",(function(){return Qv})),n.d(e,"schemeRdYlGn",(function(){return Jv})),n.d(e,"interpolateSpectral",(function(){return e_})),n.d(e,"schemeSpectral",(function(){return t_})),n.d(e,"interpolateBuGn",(function(){return r_})),n.d(e,"schemeBuGn",(function(){return n_})),n.d(e,"interpolateBuPu",(function(){return a_})),n.d(e,"schemeBuPu",(function(){return i_})),n.d(e,"interpolateGnBu",(function(){return s_})),n.d(e,"schemeGnBu",(function(){return o_})),n.d(e,"interpolateOrRd",(function(){return c_})),n.d(e,"schemeOrRd",(function(){return u_})),n.d(e,"interpolatePuBuGn",(function(){return l_})),n.d(e,"schemePuBuGn",(function(){return f_})),n.d(e,"interpolatePuBu",(function(){return d_})),n.d(e,"schemePuBu",(function(){return h_})),n.d(e,"interpolatePuRd",(function(){return g_})),n.d(e,"schemePuRd",(function(){return p_})),n.d(e,"interpolateRdPu",(function(){return b_})),n.d(e,"schemeRdPu",(function(){return y_})),n.d(e,"interpolateYlGnBu",(function(){return v_})),n.d(e,"schemeYlGnBu",(function(){return m_})),n.d(e,"interpolateYlGn",(function(){return w_})),n.d(e,"schemeYlGn",(function(){return __})),n.d(e,"interpolateYlOrBr",(function(){return k_})),n.d(e,"schemeYlOrBr",(function(){return x_})),n.d(e,"interpolateYlOrRd",(function(){return A_})),n.d(e,"schemeYlOrRd",(function(){return E_})),n.d(e,"interpolateBlues",(function(){return M_})),n.d(e,"schemeBlues",(function(){return S_})),n.d(e,"interpolateGreens",(function(){return D_})),n.d(e,"schemeGreens",(function(){return T_})),n.d(e,"interpolateGreys",(function(){return O_})),n.d(e,"schemeGreys",(function(){return C_})),n.d(e,"interpolatePurples",(function(){return N_})),n.d(e,"schemePurples",(function(){return R_})),n.d(e,"interpolateReds",(function(){return B_})),n.d(e,"schemeReds",(function(){return I_})),n.d(e,"interpolateOranges",(function(){return P_})),n.d(e,"schemeOranges",(function(){return L_})),n.d(e,"interpolateCividis",(function(){return F_})),n.d(e,"interpolateCubehelixDefault",(function(){return q_})),n.d(e,"interpolateRainbow",(function(){return Y_})),n.d(e,"interpolateWarm",(function(){return j_})),n.d(e,"interpolateCool",(function(){return U_})),n.d(e,"interpolateSinebow",(function(){return G_})),n.d(e,"interpolateTurbo",(function(){return W_})),n.d(e,"interpolateViridis",(function(){return X_})),n.d(e,"interpolateMagma",(function(){return Z_})),n.d(e,"interpolateInferno",(function(){return J_})),n.d(e,"interpolatePlasma",(function(){return Q_})),n.d(e,"create",(function(){return De})),n.d(e,"creator",(function(){return wt})),n.d(e,"local",(function(){return Oe})),n.d(e,"matcher",(function(){return St})),n.d(e,"mouse",(function(){return Be})),n.d(e,"namespace",(function(){return mt})),n.d(e,"namespaces",(function(){return bt})),n.d(e,"clientPoint",(function(){return Ie})),n.d(e,"select",(function(){return Te})),n.d(e,"selectAll",(function(){return Le})),n.d(e,"selection",(function(){return Me})),n.d(e,"selector",(function(){return kt})),n.d(e,"selectorAll",(function(){return At})),n.d(e,"style",(function(){return Yt})),n.d(e,"touch",(function(){return Pe})),n.d(e,"touches",(function(){return Fe})),n.d(e,"window",(function(){return qt})),n.d(e,"event",(function(){return pe})),n.d(e,"customEvent",(function(){return _e})),n.d(e,"arc",(function(){return vw})),n.d(e,"area",(function(){return Aw})),n.d(e,"line",(function(){return Ew})),n.d(e,"pie",(function(){return Tw})),n.d(e,"areaRadial",(function(){return Iw})),n.d(e,"radialArea",(function(){return Iw})),n.d(e,"lineRadial",(function(){return Nw})),n.d(e,"radialLine",(function(){return Nw})),n.d(e,"pointRadial",(function(){return Bw})),n.d(e,"linkHorizontal",(function(){return Yw})),n.d(e,"linkVertical",(function(){return Hw})),n.d(e,"linkRadial",(function(){return Vw})),n.d(e,"symbol",(function(){return cx})),n.d(e,"symbols",(function(){return ux})),n.d(e,"symbolCircle",(function(){return $w})),n.d(e,"symbolCross",(function(){return Gw})),n.d(e,"symbolDiamond",(function(){return Xw})),n.d(e,"symbolSquare",(function(){return ex})),n.d(e,"symbolStar",(function(){return tx})),n.d(e,"symbolTriangle",(function(){return rx})),n.d(e,"symbolWye",(function(){return sx})),n.d(e,"curveBasisClosed",(function(){return gx})),n.d(e,"curveBasisOpen",(function(){return bx})),n.d(e,"curveBasis",(function(){return dx})),n.d(e,"curveBundle",(function(){return vx})),n.d(e,"curveCardinalClosed",(function(){return Ex})),n.d(e,"curveCardinalOpen",(function(){return Sx})),n.d(e,"curveCardinal",(function(){return xx})),n.d(e,"curveCatmullRomClosed",(function(){return Ox})),n.d(e,"curveCatmullRomOpen",(function(){return Nx})),n.d(e,"curveCatmullRom",(function(){return Dx})),n.d(e,"curveLinearClosed",(function(){return Bx})),n.d(e,"curveLinear",(function(){return ww})),n.d(e,"curveMonotoneX",(function(){return Yx})),n.d(e,"curveMonotoneY",(function(){return Hx})),n.d(e,"curveNatural",(function(){return Gx})),n.d(e,"curveStep",(function(){return Kx})),n.d(e,"curveStepAfter",(function(){return Zx})),n.d(e,"curveStepBefore",(function(){return Xx})),n.d(e,"stack",(function(){return ek})),n.d(e,"stackOffsetExpand",(function(){return nk})),n.d(e,"stackOffsetDiverging",(function(){return rk})),n.d(e,"stackOffsetNone",(function(){return Jx})),n.d(e,"stackOffsetSilhouette",(function(){return ik})),n.d(e,"stackOffsetWiggle",(function(){return ak})),n.d(e,"stackOrderAppearance",(function(){return ok})),n.d(e,"stackOrderAscending",(function(){return uk})),n.d(e,"stackOrderDescending",(function(){return fk})),n.d(e,"stackOrderInsideOut",(function(){return lk})),n.d(e,"stackOrderNone",(function(){return Qx})),n.d(e,"stackOrderReverse",(function(){return hk})),n.d(e,"timeInterval",(function(){return by})),n.d(e,"timeMillisecond",(function(){return tb})),n.d(e,"timeMilliseconds",(function(){return eb})),n.d(e,"utcMillisecond",(function(){return tb})),n.d(e,"utcMilliseconds",(function(){return eb})),n.d(e,"timeSecond",(function(){return Zy})),n.d(e,"timeSeconds",(function(){return Jy})),n.d(e,"utcSecond",(function(){return Zy})),n.d(e,"utcSeconds",(function(){return Jy})),n.d(e,"timeMinute",(function(){return Wy})),n.d(e,"timeMinutes",(function(){return Ky})),n.d(e,"timeHour",(function(){return Vy})),n.d(e,"timeHours",(function(){return $y})),n.d(e,"timeDay",(function(){return zy})),n.d(e,"timeDays",(function(){return Yy})),n.d(e,"timeWeek",(function(){return My})),n.d(e,"timeWeeks",(function(){return Iy})),n.d(e,"timeSunday",(function(){return My})),n.d(e,"timeSundays",(function(){return Iy})),n.d(e,"timeMonday",(function(){return Ty})),n.d(e,"timeMondays",(function(){return By})),n.d(e,"timeTuesday",(function(){return Dy})),n.d(e,"timeTuesdays",(function(){return Ly})),n.d(e,"timeWednesday",(function(){return Cy})),n.d(e,"timeWednesdays",(function(){return Py})),n.d(e,"timeThursday",(function(){return Oy})),n.d(e,"timeThursdays",(function(){return Fy})),n.d(e,"timeFriday",(function(){return Ry})),n.d(e,"timeFridays",(function(){return qy})),n.d(e,"timeSaturday",(function(){return Ny})),n.d(e,"timeSaturdays",(function(){return jy})),n.d(e,"timeMonth",(function(){return xy})),n.d(e,"timeMonths",(function(){return ky})),n.d(e,"timeYear",(function(){return vy})),n.d(e,"timeYears",(function(){return _y})),n.d(e,"utcMinute",(function(){return cv})),n.d(e,"utcMinutes",(function(){return fv})),n.d(e,"utcHour",(function(){return ov})),n.d(e,"utcHours",(function(){return sv})),n.d(e,"utcDay",(function(){return mb})),n.d(e,"utcDays",(function(){return vb})),n.d(e,"utcWeek",(function(){return rb})),n.d(e,"utcWeeks",(function(){return fb})),n.d(e,"utcSunday",(function(){return rb})),n.d(e,"utcSundays",(function(){return fb})),n.d(e,"utcMonday",(function(){return ib})),n.d(e,"utcMondays",(function(){return lb})),n.d(e,"utcTuesday",(function(){return ab})),n.d(e,"utcTuesdays",(function(){return hb})),n.d(e,"utcWednesday",(function(){return ob})),n.d(e,"utcWednesdays",(function(){return db})),n.d(e,"utcThursday",(function(){return sb})),n.d(e,"utcThursdays",(function(){return pb})),n.d(e,"utcFriday",(function(){return ub})),n.d(e,"utcFridays",(function(){return gb})),n.d(e,"utcSaturday",(function(){return cb})),n.d(e,"utcSaturdays",(function(){return yb})),n.d(e,"utcMonth",(function(){return rv})),n.d(e,"utcMonths",(function(){return iv})),n.d(e,"utcYear",(function(){return wb})),n.d(e,"utcYears",(function(){return xb})),n.d(e,"timeFormatDefaultLocale",(function(){return zm})),n.d(e,"timeFormat",(function(){return Tb})),n.d(e,"timeParse",(function(){return Db})),n.d(e,"utcFormat",(function(){return Cb})),n.d(e,"utcParse",(function(){return Ob})),n.d(e,"timeFormatLocale",(function(){return Sb})),n.d(e,"isoFormat",(function(){return Ym})),n.d(e,"isoParse",(function(){return Hm})),n.d(e,"now",(function(){return ui})),n.d(e,"timer",(function(){return li})),n.d(e,"timerFlush",(function(){return hi})),n.d(e,"timeout",(function(){return yi})),n.d(e,"interval",(function(){return bi})),n.d(e,"transition",(function(){return ea})),n.d(e,"active",(function(){return Wa})),n.d(e,"interrupt",(function(){return Oi})),n.d(e,"voronoi",(function(){return Zk})),n.d(e,"zoom",(function(){return lE})),n.d(e,"zoomTransform",(function(){return nE})),n.d(e,"zoomIdentity",(function(){return eE}))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,3],r=[1,4],i=[2,4],a=[1,9],o=[1,11],s=[1,12],u=[1,14],c=[1,15],f=[1,17],l=[1,18],h=[1,19],d=[1,20],p=[1,21],g=[1,22],y=[1,24],b=[1,25],m=[1,4,5,10,15,16,18,20,21,22,23,24,26,28,29,30,41],v=[1,33],_=[4,5,10,15,16,18,20,21,22,23,24,26,30,41],w=[4,5,10,15,16,18,20,21,22,23,24,26,29,30,41],x=[4,5,10,15,16,18,20,21,22,23,24,26,28,30,41],k=[39,40,41],E={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,participant:10,actor:11,AS:12,restOfLine:13,signal:14,activate:15,deactivate:16,note_statement:17,title:18,text2:19,loop:20,end:21,rect:22,opt:23,alt:24,else_sections:25,par:26,par_sections:27,and:28,else:29,note:30,placement:31,over:32,actor_pair:33,spaceList:34,",":35,left_of:36,right_of:37,signaltype:38,"+":39,"-":40,ACTOR:41,SOLID_OPEN_ARROW:42,DOTTED_OPEN_ARROW:43,SOLID_ARROW:44,DOTTED_ARROW:45,SOLID_CROSS:46,DOTTED_CROSS:47,TXT:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",10:"participant",12:"AS",13:"restOfLine",15:"activate",16:"deactivate",18:"title",20:"loop",21:"end",22:"rect",23:"opt",24:"alt",26:"par",28:"and",29:"else",30:"note",32:"over",35:",",36:"left_of",37:"right_of",39:"+",40:"-",41:"ACTOR",42:"SOLID_OPEN_ARROW",43:"DOTTED_OPEN_ARROW",44:"SOLID_ARROW",45:"DOTTED_ARROW",46:"SOLID_CROSS",47:"DOTTED_CROSS",48:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,5],[9,3],[9,2],[9,3],[9,3],[9,2],[9,3],[9,4],[9,4],[9,4],[9,4],[9,4],[27,1],[27,4],[25,1],[25,4],[17,4],[17,4],[34,2],[34,1],[33,3],[33,1],[31,1],[31,1],[14,5],[14,5],[14,4],[11,1],[38,1],[38,1],[38,1],[38,1],[38,1],[38,1],[19,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 3:return r.apply(a[s]),a[s];case 4:this.$=[];break;case 5:a[s-1].push(a[s]),this.$=a[s-1];break;case 6:case 7:this.$=a[s];break;case 8:this.$=[];break;case 9:a[s-3].description=a[s-1],this.$=a[s-3];break;case 10:this.$=a[s-1];break;case 12:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:a[s-1]};break;case 13:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:a[s-1]};break;case 15:this.$=[{type:"setTitle",text:a[s-1]}];break;case 16:a[s-1].unshift({type:"loopStart",loopText:a[s-2],signalType:r.LINETYPE.LOOP_START}),a[s-1].push({type:"loopEnd",loopText:a[s-2],signalType:r.LINETYPE.LOOP_END}),this.$=a[s-1];break;case 17:a[s-1].unshift({type:"rectStart",color:a[s-2],signalType:r.LINETYPE.RECT_START}),a[s-1].push({type:"rectEnd",color:a[s-2],signalType:r.LINETYPE.RECT_END}),this.$=a[s-1];break;case 18:a[s-1].unshift({type:"optStart",optText:a[s-2],signalType:r.LINETYPE.OPT_START}),a[s-1].push({type:"optEnd",optText:a[s-2],signalType:r.LINETYPE.OPT_END}),this.$=a[s-1];break;case 19:a[s-1].unshift({type:"altStart",altText:a[s-2],signalType:r.LINETYPE.ALT_START}),a[s-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=a[s-1];break;case 20:a[s-1].unshift({type:"parStart",parText:a[s-2],signalType:r.LINETYPE.PAR_START}),a[s-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=a[s-1];break;case 22:this.$=a[s-3].concat([{type:"and",parText:a[s-1],signalType:r.LINETYPE.PAR_AND},a[s]]);break;case 24:this.$=a[s-3].concat([{type:"else",altText:a[s-1],signalType:r.LINETYPE.ALT_ELSE},a[s]]);break;case 25:this.$=[a[s-1],{type:"addNote",placement:a[s-2],actor:a[s-1].actor,text:a[s]}];break;case 26:a[s-2]=[].concat(a[s-1],a[s-1]).slice(0,2),a[s-2][0]=a[s-2][0].actor,a[s-2][1]=a[s-2][1].actor,this.$=[a[s-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:a[s-2].slice(0,2),text:a[s]}];break;case 29:this.$=[a[s-2],a[s]];break;case 30:this.$=a[s];break;case 31:this.$=r.PLACEMENT.LEFTOF;break;case 32:this.$=r.PLACEMENT.RIGHTOF;break;case 33:this.$=[a[s-4],a[s-1],{type:"addMessage",from:a[s-4].actor,to:a[s-1].actor,signalType:a[s-3],msg:a[s]},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:a[s-1]}];break;case 34:this.$=[a[s-4],a[s-1],{type:"addMessage",from:a[s-4].actor,to:a[s-1].actor,signalType:a[s-3],msg:a[s]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:a[s-4]}];break;case 35:this.$=[a[s-3],a[s-1],{type:"addMessage",from:a[s-3].actor,to:a[s-1].actor,signalType:a[s-2],msg:a[s]}];break;case 36:this.$={type:"addActor",actor:a[s]};break;case 37:this.$=r.LINETYPE.SOLID_OPEN;break;case 38:this.$=r.LINETYPE.DOTTED_OPEN;break;case 39:this.$=r.LINETYPE.SOLID;break;case 40:this.$=r.LINETYPE.DOTTED;break;case 41:this.$=r.LINETYPE.SOLID_CROSS;break;case 42:this.$=r.LINETYPE.DOTTED_CROSS;break;case 43:this.$=a[s].substring(1).trim().replace(/\\n/gm,"\n")}},table:[{3:1,4:e,5:n,6:r},{1:[3]},{3:5,4:e,5:n,6:r},{3:6,4:e,5:n,6:r},t([1,4,5,10,15,16,18,20,22,23,24,26,30,41],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:o,8:8,9:10,10:s,11:23,14:13,15:u,16:c,17:16,18:f,20:l,22:h,23:d,24:p,26:g,30:y,41:b},t(m,[2,5]),{9:26,10:s,11:23,14:13,15:u,16:c,17:16,18:f,20:l,22:h,23:d,24:p,26:g,30:y,41:b},t(m,[2,7]),t(m,[2,8]),{11:27,41:b},{5:[1,28]},{11:29,41:b},{11:30,41:b},{5:[1,31]},{19:32,48:v},{13:[1,34]},{13:[1,35]},{13:[1,36]},{13:[1,37]},{13:[1,38]},{38:39,42:[1,40],43:[1,41],44:[1,42],45:[1,43],46:[1,44],47:[1,45]},{31:46,32:[1,47],36:[1,48],37:[1,49]},t([5,12,35,42,43,44,45,46,47,48],[2,36]),t(m,[2,6]),{5:[1,51],12:[1,50]},t(m,[2,11]),{5:[1,52]},{5:[1,53]},t(m,[2,14]),{5:[1,54]},{5:[2,43]},t(_,i,{7:55}),t(_,i,{7:56}),t(_,i,{7:57}),t(w,i,{25:58,7:59}),t(x,i,{27:60,7:61}),{11:64,39:[1,62],40:[1,63],41:b},t(k,[2,37]),t(k,[2,38]),t(k,[2,39]),t(k,[2,40]),t(k,[2,41]),t(k,[2,42]),{11:65,41:b},{11:67,33:66,41:b},{41:[2,31]},{41:[2,32]},{13:[1,68]},t(m,[2,10]),t(m,[2,12]),t(m,[2,13]),t(m,[2,15]),{4:a,5:o,8:8,9:10,10:s,11:23,14:13,15:u,16:c,17:16,18:f,20:l,21:[1,69],22:h,23:d,24:p,26:g,30:y,41:b},{4:a,5:o,8:8,9:10,10:s,11:23,14:13,15:u,16:c,17:16,18:f,20:l,21:[1,70],22:h,23:d,24:p,26:g,30:y,41:b},{4:a,5:o,8:8,9:10,10:s,11:23,14:13,15:u,16:c,17:16,18:f,20:l,21:[1,71],22:h,23:d,24:p,26:g,30:y,41:b},{21:[1,72]},{4:a,5:o,8:8,9:10,10:s,11:23,14:13,15:u,16:c,17:16,18:f,20:l,21:[2,23],22:h,23:d,24:p,26:g,29:[1,73],30:y,41:b},{21:[1,74]},{4:a,5:o,8:8,9:10,10:s,11:23,14:13,15:u,16:c,17:16,18:f,20:l,21:[2,21],22:h,23:d,24:p,26:g,28:[1,75],30:y,41:b},{11:76,41:b},{11:77,41:b},{19:78,48:v},{19:79,48:v},{19:80,48:v},{35:[1,81],48:[2,30]},{5:[1,82]},t(m,[2,16]),t(m,[2,17]),t(m,[2,18]),t(m,[2,19]),{13:[1,83]},t(m,[2,20]),{13:[1,84]},{19:85,48:v},{19:86,48:v},{5:[2,35]},{5:[2,25]},{5:[2,26]},{11:87,41:b},t(m,[2,9]),t(w,i,{7:59,25:88}),t(x,i,{7:61,27:89}),{5:[2,33]},{5:[2,34]},{48:[2,29]},{21:[2,24]},{21:[2,22]}],defaultActions:{5:[2,1],6:[2,2],33:[2,43],48:[2,31],49:[2,32],78:[2,35],79:[2,25],80:[2,26],85:[2,33],86:[2,34],87:[2,29],88:[2,24],89:[2,22]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},A={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 5;case 1:case 2:case 3:case 4:break;case 5:return this.begin("ID"),10;case 6:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),41;case 7:return this.popState(),this.popState(),this.begin("LINE"),12;case 8:return this.popState(),this.popState(),5;case 9:return this.begin("LINE"),20;case 10:return this.begin("LINE"),22;case 11:return this.begin("LINE"),23;case 12:return this.begin("LINE"),24;case 13:return this.begin("LINE"),29;case 14:return this.begin("LINE"),26;case 15:return this.begin("LINE"),28;case 16:return this.popState(),13;case 17:return 21;case 18:return 36;case 19:return 37;case 20:return 32;case 21:return 30;case 22:return this.begin("ID"),15;case 23:return this.begin("ID"),16;case 24:return 18;case 25:return 6;case 26:return 35;case 27:return 5;case 28:return e.yytext=e.yytext.trim(),41;case 29:return 44;case 30:return 45;case 31:return 42;case 32:return 43;case 33:return 46;case 34:return 47;case 35:return 48;case 36:return 39;case 37:return 40;case 38:return 5;case 39:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[2,3,16],inclusive:!1},ALIAS:{rules:[2,3,7,8],inclusive:!1},ID:{rules:[2,3,6],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,9,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],inclusive:!0}}};function S(){this.yy={}}return E.lexer=A,S.prototype=E,E.Parser=S,new S}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}},function(t,e,n){var r=n(6),i=r.Buffer;function a(t,e){for(var n in t)e[n]=t[n]}function o(t,e,n){return i(t,e,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=r:(a(r,e),e.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,n)},o.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=i(t);return void 0!==e?"string"==typeof n?r.fill(e,n):r.fill(e):r.fill(0),r},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},function(t,e,n){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function a(t,e,n){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var o;"object"==typeof t?t.exports=a:e.BN=a,a.BN=a,a.wordSize=26;try{o=n(161).Buffer}catch(t){}function s(t,e,n){for(var r=0,i=Math.min(t.length,n),a=e;a<i;a++){var o=t.charCodeAt(a)-48;r<<=4,r|=o>=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return r}function u(t,e,n,r){for(var i=0,a=Math.min(t.length,n),o=e;o<a;o++){var s=t.charCodeAt(o)-48;i*=r,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),e,n)},a.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},a.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===n)for(i=t.length-1,a=0;i>=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===n)for(i=0,a=0;i<t.length;i+=3)o=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var r,i,a=0;for(n=t.length-6,r=0;n>=e;n-=6)i=s(t,n,n+6),this.words[r]|=i<<a&67108863,this.words[r+1]|=i>>>26-a&4194303,(a+=24)>=26&&(a-=26,r++);n+6!==e&&(i=s(t,e,n+6),this.words[r]|=i<<a&67108863,this.words[r+1]|=i>>>26-a&4194303),this.strip()},a.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=e)r++;r--,i=i/e|0;for(var a=t.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,f=n;f<s;f+=r)c=u(t,f,f+r,e),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var l=1;for(c=u(t,f,t.length,e),f=0;f<o;f++)l*=e;this.imuln(l),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}},a.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},a.prototype.clone=function(){var t=new a(null);return this.copy(t),t},a.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},a.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(t,e,n){n.negative=e.negative^t.negative;var r=t.length+e.length|0;n.length=r,r=r-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,u=o/67108864|0;n.words[0]=s;for(var c=1;c<r;c++){for(var f=u>>>26,l=67108863&u,h=Math.min(c,e.length-1),d=Math.max(0,c-t.length+1);d<=h;d++){var p=c-d|0;f+=(o=(i=0|t.words[p])*(a=0|e.words[d])+l)/67108864|0,l=67108863&o}n.words[c]=0|l,u=0|f}return 0!==u?n.words[c]=0|u:n.length--,n.strip()}a.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){n="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<i|a)).toString(16);n=0!==(a=s>>>24-i&16777215)||o!==this.length-1?c[6-u.length]+u+n:u+n,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(n=a.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var h=f[t],d=l[t];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var g=p.modn(d).toString(t);n=(p=p.idivn(d)).isZero()?g+n:c[h-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return r(void 0!==o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,n){var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0"),this.strip();var o,s,u="le"===e,c=new t(a),f=this.clone();if(u){for(s=0;!f.isZero();s++)o=f.andln(255),f.iushrn(8),c[s]=o;for(;s<a;s++)c[s]=0}else{for(s=0;s<a-i;s++)c[s]=0;for(s=0;!f.isZero();s++)o=f.andln(255),f.iushrn(8),c[a-s-1]=o}return c},Math.clz32?a.prototype._countBits=function(t){return 32-Math.clz32(t)}:a.prototype._countBits=function(t){var e=t,n=0;return e>=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0==(8191&e)&&(n+=13,e>>>=13),0==(127&e)&&(n+=7,e>>>=7),0==(15&e)&&(n+=4,e>>>=4),0==(3&e)&&(n+=2,e>>>=2),0==(1&e)&&n++,n},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var n=this._zeroBits(this.words[e]);if(t+=n,26!==n)break}return t},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},a.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},a.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},a.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;n<e.length;n++)this.words[n]=this.words[n]&t.words[n];return this.length=e.length,this.strip()},a.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},a.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var r=0;r<n.length;r++)this.words[r]=e.words[r]^n.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},a.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},a.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this.strip()},a.prototype.iadd=function(t){var e,n,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(n=this,r=t):(n=t,r=this);for(var i=0,a=0;a<r.length;a++)e=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&e,i=e>>>26;for(;0!==i&&a<n.length;a++)e=(0|n.words[a])+i,this.words[a]=67108863&e,i=e>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},a.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,r,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=t):(n=t,r=this);for(var a=0,o=0;o<r.length;o++)a=(e=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&e;for(;0!==a&&o<n.length;o++)a=(e=(0|n.words[o])+a)>>26,this.words[o]=67108863&e;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this.strip()},a.prototype.sub=function(t){return this.clone().isub(t)};var d=function(t,e,n){var r,i,a,o=t.words,s=e.words,u=n.words,c=0,f=0|o[0],l=8191&f,h=f>>>13,d=0|o[1],p=8191&d,g=d>>>13,y=0|o[2],b=8191&y,m=y>>>13,v=0|o[3],_=8191&v,w=v>>>13,x=0|o[4],k=8191&x,E=x>>>13,A=0|o[5],S=8191&A,M=A>>>13,T=0|o[6],D=8191&T,C=T>>>13,O=0|o[7],R=8191&O,N=O>>>13,I=0|o[8],B=8191&I,L=I>>>13,P=0|o[9],F=8191&P,q=P>>>13,j=0|s[0],U=8191&j,z=j>>>13,Y=0|s[1],H=8191&Y,V=Y>>>13,$=0|s[2],G=8191&$,W=$>>>13,K=0|s[3],X=8191&K,Z=K>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],nt=8191&et,rt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],ut=8191&st,ct=st>>>13,ft=0|s[8],lt=8191&ft,ht=ft>>>13,dt=0|s[9],pt=8191&dt,gt=dt>>>13;n.negative=t.negative^e.negative,n.length=19;var yt=(c+(r=Math.imul(l,U))|0)+((8191&(i=(i=Math.imul(l,z))+Math.imul(h,U)|0))<<13)|0;c=((a=Math.imul(h,z))+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(p,U),i=(i=Math.imul(p,z))+Math.imul(g,U)|0,a=Math.imul(g,z);var bt=(c+(r=r+Math.imul(l,H)|0)|0)+((8191&(i=(i=i+Math.imul(l,V)|0)+Math.imul(h,H)|0))<<13)|0;c=((a=a+Math.imul(h,V)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,r=Math.imul(b,U),i=(i=Math.imul(b,z))+Math.imul(m,U)|0,a=Math.imul(m,z),r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,V)|0;var mt=(c+(r=r+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,W)|0)+Math.imul(h,G)|0))<<13)|0;c=((a=a+Math.imul(h,W)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,r=Math.imul(_,U),i=(i=Math.imul(_,z))+Math.imul(w,U)|0,a=Math.imul(w,z),r=r+Math.imul(b,H)|0,i=(i=i+Math.imul(b,V)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,V)|0,r=r+Math.imul(p,G)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(g,G)|0,a=a+Math.imul(g,W)|0;var vt=(c+(r=r+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,Z)|0)+Math.imul(h,X)|0))<<13)|0;c=((a=a+Math.imul(h,Z)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(k,U),i=(i=Math.imul(k,z))+Math.imul(E,U)|0,a=Math.imul(E,z),r=r+Math.imul(_,H)|0,i=(i=i+Math.imul(_,V)|0)+Math.imul(w,H)|0,a=a+Math.imul(w,V)|0,r=r+Math.imul(b,G)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(m,G)|0,a=a+Math.imul(m,W)|0,r=r+Math.imul(p,X)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(g,X)|0,a=a+Math.imul(g,Z)|0;var _t=(c+(r=r+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,tt)|0)+Math.imul(h,Q)|0))<<13)|0;c=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(S,U),i=(i=Math.imul(S,z))+Math.imul(M,U)|0,a=Math.imul(M,z),r=r+Math.imul(k,H)|0,i=(i=i+Math.imul(k,V)|0)+Math.imul(E,H)|0,a=a+Math.imul(E,V)|0,r=r+Math.imul(_,G)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(w,G)|0,a=a+Math.imul(w,W)|0,r=r+Math.imul(b,X)|0,i=(i=i+Math.imul(b,Z)|0)+Math.imul(m,X)|0,a=a+Math.imul(m,Z)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,tt)|0;var wt=(c+(r=r+Math.imul(l,nt)|0)|0)+((8191&(i=(i=i+Math.imul(l,rt)|0)+Math.imul(h,nt)|0))<<13)|0;c=((a=a+Math.imul(h,rt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(D,U),i=(i=Math.imul(D,z))+Math.imul(C,U)|0,a=Math.imul(C,z),r=r+Math.imul(S,H)|0,i=(i=i+Math.imul(S,V)|0)+Math.imul(M,H)|0,a=a+Math.imul(M,V)|0,r=r+Math.imul(k,G)|0,i=(i=i+Math.imul(k,W)|0)+Math.imul(E,G)|0,a=a+Math.imul(E,W)|0,r=r+Math.imul(_,X)|0,i=(i=i+Math.imul(_,Z)|0)+Math.imul(w,X)|0,a=a+Math.imul(w,Z)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,tt)|0,r=r+Math.imul(p,nt)|0,i=(i=i+Math.imul(p,rt)|0)+Math.imul(g,nt)|0,a=a+Math.imul(g,rt)|0;var xt=(c+(r=r+Math.imul(l,at)|0)|0)+((8191&(i=(i=i+Math.imul(l,ot)|0)+Math.imul(h,at)|0))<<13)|0;c=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(R,U),i=(i=Math.imul(R,z))+Math.imul(N,U)|0,a=Math.imul(N,z),r=r+Math.imul(D,H)|0,i=(i=i+Math.imul(D,V)|0)+Math.imul(C,H)|0,a=a+Math.imul(C,V)|0,r=r+Math.imul(S,G)|0,i=(i=i+Math.imul(S,W)|0)+Math.imul(M,G)|0,a=a+Math.imul(M,W)|0,r=r+Math.imul(k,X)|0,i=(i=i+Math.imul(k,Z)|0)+Math.imul(E,X)|0,a=a+Math.imul(E,Z)|0,r=r+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,tt)|0)+Math.imul(w,Q)|0,a=a+Math.imul(w,tt)|0,r=r+Math.imul(b,nt)|0,i=(i=i+Math.imul(b,rt)|0)+Math.imul(m,nt)|0,a=a+Math.imul(m,rt)|0,r=r+Math.imul(p,at)|0,i=(i=i+Math.imul(p,ot)|0)+Math.imul(g,at)|0,a=a+Math.imul(g,ot)|0;var kt=(c+(r=r+Math.imul(l,ut)|0)|0)+((8191&(i=(i=i+Math.imul(l,ct)|0)+Math.imul(h,ut)|0))<<13)|0;c=((a=a+Math.imul(h,ct)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(B,U),i=(i=Math.imul(B,z))+Math.imul(L,U)|0,a=Math.imul(L,z),r=r+Math.imul(R,H)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(N,H)|0,a=a+Math.imul(N,V)|0,r=r+Math.imul(D,G)|0,i=(i=i+Math.imul(D,W)|0)+Math.imul(C,G)|0,a=a+Math.imul(C,W)|0,r=r+Math.imul(S,X)|0,i=(i=i+Math.imul(S,Z)|0)+Math.imul(M,X)|0,a=a+Math.imul(M,Z)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(E,Q)|0,a=a+Math.imul(E,tt)|0,r=r+Math.imul(_,nt)|0,i=(i=i+Math.imul(_,rt)|0)+Math.imul(w,nt)|0,a=a+Math.imul(w,rt)|0,r=r+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(m,at)|0,a=a+Math.imul(m,ot)|0,r=r+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ct)|0)+Math.imul(g,ut)|0,a=a+Math.imul(g,ct)|0;var Et=(c+(r=r+Math.imul(l,lt)|0)|0)+((8191&(i=(i=i+Math.imul(l,ht)|0)+Math.imul(h,lt)|0))<<13)|0;c=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(F,U),i=(i=Math.imul(F,z))+Math.imul(q,U)|0,a=Math.imul(q,z),r=r+Math.imul(B,H)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(L,H)|0,a=a+Math.imul(L,V)|0,r=r+Math.imul(R,G)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(N,G)|0,a=a+Math.imul(N,W)|0,r=r+Math.imul(D,X)|0,i=(i=i+Math.imul(D,Z)|0)+Math.imul(C,X)|0,a=a+Math.imul(C,Z)|0,r=r+Math.imul(S,Q)|0,i=(i=i+Math.imul(S,tt)|0)+Math.imul(M,Q)|0,a=a+Math.imul(M,tt)|0,r=r+Math.imul(k,nt)|0,i=(i=i+Math.imul(k,rt)|0)+Math.imul(E,nt)|0,a=a+Math.imul(E,rt)|0,r=r+Math.imul(_,at)|0,i=(i=i+Math.imul(_,ot)|0)+Math.imul(w,at)|0,a=a+Math.imul(w,ot)|0,r=r+Math.imul(b,ut)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(m,ut)|0,a=a+Math.imul(m,ct)|0,r=r+Math.imul(p,lt)|0,i=(i=i+Math.imul(p,ht)|0)+Math.imul(g,lt)|0,a=a+Math.imul(g,ht)|0;var At=(c+(r=r+Math.imul(l,pt)|0)|0)+((8191&(i=(i=i+Math.imul(l,gt)|0)+Math.imul(h,pt)|0))<<13)|0;c=((a=a+Math.imul(h,gt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(F,H),i=(i=Math.imul(F,V))+Math.imul(q,H)|0,a=Math.imul(q,V),r=r+Math.imul(B,G)|0,i=(i=i+Math.imul(B,W)|0)+Math.imul(L,G)|0,a=a+Math.imul(L,W)|0,r=r+Math.imul(R,X)|0,i=(i=i+Math.imul(R,Z)|0)+Math.imul(N,X)|0,a=a+Math.imul(N,Z)|0,r=r+Math.imul(D,Q)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(C,Q)|0,a=a+Math.imul(C,tt)|0,r=r+Math.imul(S,nt)|0,i=(i=i+Math.imul(S,rt)|0)+Math.imul(M,nt)|0,a=a+Math.imul(M,rt)|0,r=r+Math.imul(k,at)|0,i=(i=i+Math.imul(k,ot)|0)+Math.imul(E,at)|0,a=a+Math.imul(E,ot)|0,r=r+Math.imul(_,ut)|0,i=(i=i+Math.imul(_,ct)|0)+Math.imul(w,ut)|0,a=a+Math.imul(w,ct)|0,r=r+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(m,lt)|0,a=a+Math.imul(m,ht)|0;var St=(c+(r=r+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,gt)|0)+Math.imul(g,pt)|0))<<13)|0;c=((a=a+Math.imul(g,gt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(F,G),i=(i=Math.imul(F,W))+Math.imul(q,G)|0,a=Math.imul(q,W),r=r+Math.imul(B,X)|0,i=(i=i+Math.imul(B,Z)|0)+Math.imul(L,X)|0,a=a+Math.imul(L,Z)|0,r=r+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(N,Q)|0,a=a+Math.imul(N,tt)|0,r=r+Math.imul(D,nt)|0,i=(i=i+Math.imul(D,rt)|0)+Math.imul(C,nt)|0,a=a+Math.imul(C,rt)|0,r=r+Math.imul(S,at)|0,i=(i=i+Math.imul(S,ot)|0)+Math.imul(M,at)|0,a=a+Math.imul(M,ot)|0,r=r+Math.imul(k,ut)|0,i=(i=i+Math.imul(k,ct)|0)+Math.imul(E,ut)|0,a=a+Math.imul(E,ct)|0,r=r+Math.imul(_,lt)|0,i=(i=i+Math.imul(_,ht)|0)+Math.imul(w,lt)|0,a=a+Math.imul(w,ht)|0;var Mt=(c+(r=r+Math.imul(b,pt)|0)|0)+((8191&(i=(i=i+Math.imul(b,gt)|0)+Math.imul(m,pt)|0))<<13)|0;c=((a=a+Math.imul(m,gt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(F,X),i=(i=Math.imul(F,Z))+Math.imul(q,X)|0,a=Math.imul(q,Z),r=r+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(L,Q)|0,a=a+Math.imul(L,tt)|0,r=r+Math.imul(R,nt)|0,i=(i=i+Math.imul(R,rt)|0)+Math.imul(N,nt)|0,a=a+Math.imul(N,rt)|0,r=r+Math.imul(D,at)|0,i=(i=i+Math.imul(D,ot)|0)+Math.imul(C,at)|0,a=a+Math.imul(C,ot)|0,r=r+Math.imul(S,ut)|0,i=(i=i+Math.imul(S,ct)|0)+Math.imul(M,ut)|0,a=a+Math.imul(M,ct)|0,r=r+Math.imul(k,lt)|0,i=(i=i+Math.imul(k,ht)|0)+Math.imul(E,lt)|0,a=a+Math.imul(E,ht)|0;var Tt=(c+(r=r+Math.imul(_,pt)|0)|0)+((8191&(i=(i=i+Math.imul(_,gt)|0)+Math.imul(w,pt)|0))<<13)|0;c=((a=a+Math.imul(w,gt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(q,Q)|0,a=Math.imul(q,tt),r=r+Math.imul(B,nt)|0,i=(i=i+Math.imul(B,rt)|0)+Math.imul(L,nt)|0,a=a+Math.imul(L,rt)|0,r=r+Math.imul(R,at)|0,i=(i=i+Math.imul(R,ot)|0)+Math.imul(N,at)|0,a=a+Math.imul(N,ot)|0,r=r+Math.imul(D,ut)|0,i=(i=i+Math.imul(D,ct)|0)+Math.imul(C,ut)|0,a=a+Math.imul(C,ct)|0,r=r+Math.imul(S,lt)|0,i=(i=i+Math.imul(S,ht)|0)+Math.imul(M,lt)|0,a=a+Math.imul(M,ht)|0;var Dt=(c+(r=r+Math.imul(k,pt)|0)|0)+((8191&(i=(i=i+Math.imul(k,gt)|0)+Math.imul(E,pt)|0))<<13)|0;c=((a=a+Math.imul(E,gt)|0)+(i>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,r=Math.imul(F,nt),i=(i=Math.imul(F,rt))+Math.imul(q,nt)|0,a=Math.imul(q,rt),r=r+Math.imul(B,at)|0,i=(i=i+Math.imul(B,ot)|0)+Math.imul(L,at)|0,a=a+Math.imul(L,ot)|0,r=r+Math.imul(R,ut)|0,i=(i=i+Math.imul(R,ct)|0)+Math.imul(N,ut)|0,a=a+Math.imul(N,ct)|0,r=r+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ht)|0)+Math.imul(C,lt)|0,a=a+Math.imul(C,ht)|0;var Ct=(c+(r=r+Math.imul(S,pt)|0)|0)+((8191&(i=(i=i+Math.imul(S,gt)|0)+Math.imul(M,pt)|0))<<13)|0;c=((a=a+Math.imul(M,gt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,r=Math.imul(F,at),i=(i=Math.imul(F,ot))+Math.imul(q,at)|0,a=Math.imul(q,ot),r=r+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,ct)|0)+Math.imul(L,ut)|0,a=a+Math.imul(L,ct)|0,r=r+Math.imul(R,lt)|0,i=(i=i+Math.imul(R,ht)|0)+Math.imul(N,lt)|0,a=a+Math.imul(N,ht)|0;var Ot=(c+(r=r+Math.imul(D,pt)|0)|0)+((8191&(i=(i=i+Math.imul(D,gt)|0)+Math.imul(C,pt)|0))<<13)|0;c=((a=a+Math.imul(C,gt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,r=Math.imul(F,ut),i=(i=Math.imul(F,ct))+Math.imul(q,ut)|0,a=Math.imul(q,ct),r=r+Math.imul(B,lt)|0,i=(i=i+Math.imul(B,ht)|0)+Math.imul(L,lt)|0,a=a+Math.imul(L,ht)|0;var Rt=(c+(r=r+Math.imul(R,pt)|0)|0)+((8191&(i=(i=i+Math.imul(R,gt)|0)+Math.imul(N,pt)|0))<<13)|0;c=((a=a+Math.imul(N,gt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(F,lt),i=(i=Math.imul(F,ht))+Math.imul(q,lt)|0,a=Math.imul(q,ht);var Nt=(c+(r=r+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,gt)|0)+Math.imul(L,pt)|0))<<13)|0;c=((a=a+Math.imul(L,gt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863;var It=(c+(r=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,gt))+Math.imul(q,pt)|0))<<13)|0;return c=((a=Math.imul(q,gt))+(i>>>13)|0)+(It>>>26)|0,It&=67108863,u[0]=yt,u[1]=bt,u[2]=mt,u[3]=vt,u[4]=_t,u[5]=wt,u[6]=xt,u[7]=kt,u[8]=Et,u[9]=At,u[10]=St,u[11]=Mt,u[12]=Tt,u[13]=Dt,u[14]=Ct,u[15]=Ot,u[16]=Rt,u[17]=Nt,u[18]=It,0!==c&&(u[19]=c,n.length++),n};function p(t,e,n){return(new g).mulp(t,e,n)}function g(t,e){this.x=t,this.y=e}Math.imul||(d=h),a.prototype.mulTo=function(t,e){var n=this.length+t.length;return 10===this.length&&10===t.length?d(this,t,e):n<63?h(this,t,e):n<1024?function(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,u=Math.min(a,e.length-1),c=Math.max(0,a-t.length+1);c<=u;c++){var f=a-c,l=(0|t.words[f])*(0|e.words[c]),h=67108863&l;s=67108863&(h=h+s|0),i+=(o=(o=o+(l/67108864|0)|0)+(h>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n.strip()}(this,t,e):p(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),n=a.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,n,t);return e},g.prototype.revBin=function(t,e,n){if(0===t||t===n-1)return t;for(var r=0,i=0;i<e;i++)r|=(1&t)<<e-i-1,t>>=1;return r},g.prototype.permute=function(t,e,n,r,i,a){for(var o=0;o<a;o++)r[o]=e[t[o]],i[o]=n[t[o]]},g.prototype.transform=function(t,e,n,r,i,a){this.permute(a,t,e,n,r,i);for(var o=1;o<i;o<<=1)for(var s=o<<1,u=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),f=0;f<i;f+=s)for(var l=u,h=c,d=0;d<o;d++){var p=n[f+d],g=r[f+d],y=n[f+d+o],b=r[f+d+o],m=l*y-h*b;b=l*b+h*y,y=m,n[f+d]=p+y,r[f+d]=g+b,n[f+d+o]=p-y,r[f+d+o]=g-b,d!==s&&(m=u*l-c*h,h=u*h+c*l,l=m)}},g.prototype.guessLen13b=function(t,e){var n=1|Math.max(e,t),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},g.prototype.conjugate=function(t,e,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=t[r];t[r]=t[n-r-1],t[n-r-1]=i,i=e[r],e[r]=-e[n-r-1],e[n-r-1]=-i}},g.prototype.normalize13b=function(t,e){for(var n=0,r=0;r<e/2;r++){var i=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+n;t[r]=67108863&i,n=i<67108864?0:i/67108864|0}return t},g.prototype.convert13b=function(t,e,n,i){for(var a=0,o=0;o<e;o++)a+=0|t[o],n[2*o]=8191&a,a>>>=13,n[2*o+1]=8191&a,a>>>=13;for(o=2*e;o<i;++o)n[o]=0;r(0===a),r(0==(-8192&a))},g.prototype.stub=function(t){for(var e=new Array(t),n=0;n<t;n++)e[n]=0;return e},g.prototype.mulp=function(t,e,n){var r=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(r),a=this.stub(r),o=new Array(r),s=new Array(r),u=new Array(r),c=new Array(r),f=new Array(r),l=new Array(r),h=n.words;h.length=r,this.convert13b(t.words,t.length,o,r),this.convert13b(e.words,e.length,c,r),this.transform(o,a,s,u,r,i),this.transform(c,a,f,l,r,i);for(var d=0;d<r;d++){var p=s[d]*f[d]-u[d]*l[d];u[d]=s[d]*l[d]+u[d]*f[d],s[d]=p}return this.conjugate(s,u,r),this.transform(s,u,h,a,r,i),this.conjugate(h,a,r),this.normalize13b(h,r),n.negative=t.negative^e.negative,n.length=t.length+e.length,n.strip()},a.prototype.mul=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},a.prototype.mulf=function(t){var e=new a(null);return e.words=new Array(this.length+t.length),p(this,t,e)},a.prototype.imul=function(t){return this.clone().mulTo(t,this)},a.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,n=0;n<this.length;n++){var i=(0|this.words[n])*t,a=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=a>>>26,this.words[n]=67108863&a}return 0!==e&&(this.words[n]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),n=0;n<e.length;n++){var r=n/26|0,i=n%26;e[n]=(t.words[r]&1<<i)>>>i}return e}(t);if(0===e.length)return new a(1);for(var n=this,r=0;r<e.length&&0===e[r];r++,n=n.sqr());if(++r<e.length)for(var i=n.sqr();r<e.length;r++,i=i.sqr())0!==e[r]&&(n=n.mul(i));return n},a.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(e=0;e<this.length;e++){var s=this.words[e]&a,u=(0|this.words[e])-s<<n;this.words[e]=u|o,o=s>>>26-n}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},a.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},a.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<<a,u=n;if(i-=o,i=Math.max(0,i),u){for(var c=0;c<o;c++)u.words[c]=this.words[c];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var f=0;for(c=this.length-1;c>=0&&(0!==f||c>=i);c--){var l=0|this.words[c];this.words[c]=f<<26-a|l>>>a,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,i=1<<e;return!(this.length<=n)&&!!(this.words[n]&i)},a.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},a.prototype.maskn=function(t){return this.clone().imaskn(t)},a.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},a.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},a.prototype.addn=function(t){return this.clone().iaddn(t)},a.prototype.subn=function(t){return this.clone().isubn(t)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(t,e,n){var i,a,o=t.length+n;this._expand(o);var s=0;for(i=0;i<t.length;i++){a=(0|this.words[i+n])+s;var u=(0|t.words[i])*e;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[i+n]=67108863&a}for(;i<this.length-n;i++)s=(a=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&a;if(0===s)return this.strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var n=(this.length,t.length),r=this.clone(),i=t,o=0|i.words[i.length-1];0!==(n=26-this._countBits(o))&&(i=i.ushln(n),r.iushln(n),o=0|i.words[i.length-1]);var s,u=r.length-i.length;if("mod"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var f=r.clone()._ishlnsubmul(i,1,u);0===f.negative&&(r=f,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var h=67108864*(0|r.words[i.length+l])+(0|r.words[i.length+l-1]);for(h=Math.min(h/o|0,67108863),r._ishlnsubmul(i,h,l);0!==r.negative;)h--,r.negative=0,r._ishlnsubmul(i,1,l),r.isZero()||(r.negative^=1);s&&(s.words[l]=h)}return s&&s.strip(),r.strip(),"div"!==e&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},a.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),i=t.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,n=0,i=this.length-1;i>=0;i--)n=(e*n+(0|this.words[i]))%t;return n},a.prototype.idivn=function(t){r(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*e;this.words[n]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),u=new a(1),c=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++c;for(var f=n.clone(),l=e.clone();!e.isZero();){for(var h=0,d=1;0==(e.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(f),o.isub(l)),i.iushrn(1),o.iushrn(1);for(var p=0,g=1;0==(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);e.cmp(n)>=0?(e.isub(n),i.isub(s),o.isub(u)):(n.isub(e),s.isub(i),u.isub(o))}return{a:s,b:u,gcd:n.iushln(c)}},a.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),u=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,f=1;0==(e.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var l=0,h=1;0==(n.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(n.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(s)):(n.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var r=0;e.isEven()&&n.isEven();r++)e.iushrn(1),n.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=e.cmp(n);if(i<0){var a=e;e=n,n=a}else if(0===i||0===n.cmpn(1))break;e.isub(n)}return n.iushln(r)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var a=i,o=n;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},a.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},a.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|t.words[n];if(r!==i){r<i?e=-1:r>i&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new x(t)},a.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function b(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function m(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function x(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function k(t){x.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},b.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),e=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):n.strip(),n},b.prototype.split=function(t,e){t.iushrn(this.n,0,e)},b.prototype.imulK=function(t){return t.imul(this.k)},i(m,b),m.prototype.split=function(t,e){for(var n=Math.min(t.length,9),r=0;r<n;r++)e.words[r]=t.words[r];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var i=t.words[9];for(e.words[e.length++]=4194303&i,r=10;r<t.length;r++){var a=0|t.words[r];t.words[r-10]=(4194303&a)<<4|i>>>22,i=a}i>>>=22,t.words[r-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},m.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n<t.length;n++){var r=0|t.words[n];e+=977*r,t.words[n]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(v,b),i(_,b),i(w,b),w.prototype.imulK=function(t){for(var e=0,n=0;n<t.length;n++){var r=19*(0|t.words[n])+e,i=67108863&r;r>>>=26,t.words[n]=i,e=r}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new m;else if("p224"===t)e=new v;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return y[t]=e,e},x.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},x.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},x.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},x.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},x.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},x.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},x.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},x.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},x.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},x.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},x.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},x.prototype.isqr=function(t){return this.imul(t,t.clone())},x.prototype.sqr=function(t){return this.mul(t,t)},x.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new a(1)).iushrn(2);return this.pow(t,n)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);r(!i.isZero());var s=new a(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new a(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,i),h=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=o;0!==d.cmp(s);){for(var g=d,y=0;0!==g.cmp(s);y++)g=g.redSqr();r(y<p);var b=this.pow(l,new a(1).iushln(p-y-1));h=h.redMul(b),l=b.redSqr(),d=d.redMul(l),p=y}return h},x.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},x.prototype.pow=function(t,e){if(e.isZero())return new a(1).toRed(this);if(0===e.cmpn(1))return t.clone();var n=new Array(16);n[0]=new a(1).toRed(this),n[1]=t;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],t);var i=n[0],o=0,s=0,u=e.bitLength()%26;for(0===u&&(u=26),r=e.length-1;r>=0;r--){for(var c=e.words[r],f=u-1;f>=0;f--){var l=c>>f&1;i!==n[0]&&(i=this.sqr(i)),0!==l||0!==o?(o<<=1,o|=l,(4===++s||0===r&&0===f)&&(i=this.mul(i,n[o]),s=0,o=0)):s=0}u=26}return i},x.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},x.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new k(t)},i(k,x),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var n=t.mul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,n(7)(t))},function(t,e){var n,r,i=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var u,c=[],f=!1,l=-1;function h(){f&&u&&(f=!1,u.length?c=u.concat(c):l=-1,c.length&&d())}function d(){if(!f){var t=s(h);f=!0;for(var e=c.length;e;){for(u=c,c=[];++l<e;)u&&u[l].run();l=-1,e=c.length}u=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function g(){}i.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new p(t,e)),1!==c.length||f||s(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(t){return[]},i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(t,e,n){"use strict";(function(t){
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
var r=n(123),i=n(124),a=n(69);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(o()<e)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=u.prototype:(null===t&&(t=new u(e)),t.length=e),t}function u(t,e,n){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(t,e,n);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return l(this,t)}return c(this,t,e,n)}function c(t,e,n,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError("'offset' is out of bounds");if(e.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");e=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r);u.TYPED_ARRAY_SUPPORT?(t=e).__proto__=u.prototype:t=h(t,e);return t}(t,e,n,r):"string"==typeof e?function(t,e,n){"string"==typeof n&&""!==n||(n="utf8");if(!u.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|p(e,n),i=(t=s(t,r)).write(e,n);i!==r&&(t=t.slice(0,i));return t}(t,e,n):function(t,e){if(u.isBuffer(e)){var n=0|d(e.length);return 0===(t=s(t,n)).length?t:(e.copy(t,0,0,n),t)}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?s(t,0):h(t,e);if("Buffer"===e.type&&a(e.data))return h(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function f(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function l(t,e){if(f(e),t=s(t,e<0?0:0|d(e)),!u.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function h(t,e){var n=e.length<0?0:0|d(e.length);t=s(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function d(t){if(t>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|t}function p(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return z(t).length;default:if(r)return U(t).length;e=(""+e).toLowerCase(),r=!0}}function g(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return C(this,e,n);case"utf8":case"utf-8":return S(this,e,n);case"ascii":return T(this,e,n);case"latin1":case"binary":return D(this,e,n);case"base64":return A(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function y(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function b(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=u.from(e,r)),u.isBuffer(e))return 0===e.length?-1:m(t,e,n,r,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):m(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,n,r,i){var a,o=1,s=t.length,u=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;o=2,s/=2,u/=2,n/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var f=-1;for(a=n;a<s;a++)if(c(t,a)===c(e,-1===f?0:a-f)){if(-1===f&&(f=a),a-f+1===u)return f*o}else-1!==f&&(a-=a-f),f=-1}else for(n+u>s&&(n=s-u),a=n;a>=0;a--){for(var l=!0,h=0;h<u;h++)if(c(t,a+h)!==c(e,h)){l=!1;break}if(l)return a}return-1}function v(t,e,n,r){n=Number(n)||0;var i=t.length-n;r?(r=Number(r))>i&&(r=i):r=i;var a=e.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(e.substr(2*o,2),16);if(isNaN(s))return o;t[n+o]=s}return o}function _(t,e,n,r){return Y(U(e,t.length-n),t,n,r)}function w(t,e,n,r){return Y(function(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function x(t,e,n,r){return w(t,e,n,r)}function k(t,e,n,r){return Y(z(e),t,n,r)}function E(t,e,n,r){return Y(function(t,e){for(var n,r,i,a=[],o=0;o<t.length&&!((e-=2)<0);++o)n=t.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r);return a}(e,t.length-n),t,n,r)}function A(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function S(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i<n;){var a,o,s,u,c=t[i],f=null,l=c>239?4:c>223?3:c>191?2:1;if(i+l<=n)switch(l){case 1:c<128&&(f=c);break;case 2:128==(192&(a=t[i+1]))&&(u=(31&c)<<6|63&a)>127&&(f=u);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(u=(15&c)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,l=1):f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|1023&f),r.push(f),i+=l}return function(t){var e=t.length;if(e<=M)return String.fromCharCode.apply(String,t);var n="",r=0;for(;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=M));return n}(r)}e.Buffer=u,e.SlowBuffer=function(t){+t!=t&&(t=0);return u.alloc(+t)},e.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),e.kMaxLength=o(),u.poolSize=8192,u._augment=function(t){return t.__proto__=u.prototype,t},u.from=function(t,e,n){return c(null,t,e,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(t,e,n){return function(t,e,n,r){return f(e),e<=0?s(t,e):void 0!==n?"string"==typeof r?s(t,e).fill(n,r):s(t,e).fill(n):s(t,e)}(null,t,e,n)},u.allocUnsafe=function(t){return l(null,t)},u.allocUnsafeSlow=function(t){return l(null,t)},u.isBuffer=function(t){return!(null==t||!t._isBuffer)},u.compare=function(t,e){if(!u.isBuffer(t)||!u.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,i=0,a=Math.min(n,r);i<a;++i)if(t[i]!==e[i]){n=t[i],r=e[i];break}return n<r?-1:r<n?1:0},u.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(t,e){if(!a(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return u.alloc(0);var n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=u.allocUnsafe(e),i=0;for(n=0;n<t.length;++n){var o=t[n];if(!u.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},u.byteLength=p,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)y(this,e,e+1);return this},u.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)y(this,e,e+3),y(this,e+1,e+2);return this},u.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)y(this,e,e+7),y(this,e+1,e+6),y(this,e+2,e+5),y(this,e+3,e+4);return this},u.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?S(this,0,t):g.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t="",n=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),"<Buffer "+t+">"},u.prototype.compare=function(t,e,n,r,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(e>>>=0),s=Math.min(a,o),c=this.slice(r,i),f=t.slice(e,n),l=0;l<s;++l)if(c[l]!==f[l]){a=c[l],o=f[l];break}return a<o?-1:o<a?1:0},u.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},u.prototype.indexOf=function(t,e,n){return b(this,t,e,n,!0)},u.prototype.lastIndexOf=function(t,e,n){return b(this,t,e,n,!1)},u.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return v(this,t,e,n);case"utf8":case"utf-8":return _(this,t,e,n);case"ascii":return w(this,t,e,n);case"latin1":case"binary":return x(this,t,e,n);case"base64":return k(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var M=4096;function T(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(127&t[i]);return r}function D(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(t[i]);return r}function C(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=e;a<n;++a)i+=j(t[a]);return i}function O(t,e,n){for(var r=t.slice(e,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function R(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function N(t,e,n,r,i,a){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<a)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function I(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,a=Math.min(t.length-n,2);i<a;++i)t[n+i]=(e&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function B(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,a=Math.min(t.length-n,4);i<a;++i)t[n+i]=e>>>8*(r?i:3-i)&255}function L(t,e,n,r,i,a){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function P(t,e,n,r,a){return a||L(t,0,n,4),i.write(t,e,n,r,23,4),n+4}function F(t,e,n,r,a){return a||L(t,0,n,8),i.write(t,e,n,r,52,8),n+8}u.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(t,e)).__proto__=u.prototype;else{var i=e-t;n=new u(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+t]}return n},u.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||R(t,e,this.length);for(var r=this[t],i=1,a=0;++a<e&&(i*=256);)r+=this[t+a]*i;return r},u.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||R(t,e,this.length);for(var r=this[t+--e],i=1;e>0&&(i*=256);)r+=this[t+--e]*i;return r},u.prototype.readUInt8=function(t,e){return e||R(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||R(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||R(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||R(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||R(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||R(t,e,this.length);for(var r=this[t],i=1,a=0;++a<e&&(i*=256);)r+=this[t+a]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*e)),r},u.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||R(t,e,this.length);for(var r=e,i=1,a=this[t+--r];r>0&&(i*=256);)a+=this[t+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},u.prototype.readInt8=function(t,e){return e||R(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||R(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(t,e){e||R(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(t,e){return e||R(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||R(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||R(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||R(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||R(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||R(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||N(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[e]=255&t;++a<n&&(i*=256);)this[e+a]=t/i&255;return e+n},u.prototype.writeUIntBE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||N(this,t,e,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+n},u.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):I(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):I(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):B(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):B(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);N(this,t,e,n,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a<n&&(o*=256);)t<0&&0===s&&0!==this[e+a-1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+n},u.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);N(this,t,e,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+n},u.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):I(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):I(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):B(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||N(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):B(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,n){return P(this,t,e,!0,n)},u.prototype.writeFloatBE=function(t,e,n){return P(this,t,e,!1,n)},u.prototype.writeDoubleLE=function(t,e,n){return F(this,t,e,!0,n)},u.prototype.writeDoubleBE=function(t,e,n){return F(this,t,e,!1,n)},u.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var i,a=r-n;if(this===t&&n<e&&e<r)for(i=a-1;i>=0;--i)t[i+e]=this[i+n];else if(a<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)t[i+e]=this[i+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+a),e);return a},u.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===t.length){var i=t.charCodeAt(0);i<256&&(t=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;var a;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(a=e;a<n;++a)this[a]=t;else{var o=u.isBuffer(t)?t:U(new u(t,r).toString()),s=o.length;for(a=0;a<n-e;++a)this[a+e]=o[a%s]}return this};var q=/[^+\/0-9A-Za-z-_]/g;function j(t){return t<16?"0"+t.toString(16):t.toString(16)}function U(t,e){var n;e=e||1/0;for(var r=t.length,i=null,a=[],o=0;o<r;++o){if((n=t.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(e-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;a.push(n)}else if(n<2048){if((e-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function z(t){return r.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(q,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Y(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);++i)e[i+n]=t[i];return i}}).call(this,n(13))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){var r;try{r=n(11)}catch(t){}r||(r=window._),t.exports=r},function(t,e){function n(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=n,n.equal=function(t,e,n){if(t!=e)throw new Error(n||"Assertion failed: "+t+" != "+e)}},function(t,e,n){"use strict";var r=e,i=n(4),a=n(9),o=n(91);r.assert=a,r.toArray=o.toArray,r.zero2=o.zero2,r.toHex=o.toHex,r.encode=o.encode,r.getNAF=function(t,e){for(var n=[],r=1<<e+1,i=t.clone();i.cmpn(1)>=0;){var a;if(i.isOdd()){var o=i.andln(r-1);a=o>(r>>1)-1?(r>>1)-o:o,i.isubn(a)}else a=0;n.push(a);for(var s=0!==i.cmpn(0)&&0===i.andln(r-1)?e+1:1,u=1;u<s;u++)n.push(0);i.iushrn(s)}return n},r.getJSF=function(t,e){var n=[[],[]];t=t.clone(),e=e.clone();for(var r=0,i=0;t.cmpn(-r)>0||e.cmpn(-i)>0;){var a,o,s,u=t.andln(3)+r&3,c=e.andln(3)+i&3;if(3===u&&(u=-1),3===c&&(c=-1),0==(1&u))a=0;else a=3!==(s=t.andln(7)+r&7)&&5!==s||2!==c?u:-u;if(n[0].push(a),0==(1&c))o=0;else o=3!==(s=e.andln(7)+i&7)&&5!==s||2!==u?c:-c;n[1].push(o),2*r===a+1&&(r=1-r),2*i===o+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return n},r.cachedProperty=function(t,e,n){var r="_"+e;t.prototype[e]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new i(t,"hex","le")}},function(t,e,n){(function(t,n){(function(){var r,i=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",s="__lodash_hash_undefined__",u=500,c="__lodash_placeholder__",f=1,l=2,h=4,d=1,p=2,g=1,y=2,b=4,m=8,v=16,_=32,w=64,x=128,k=256,E=512,A=30,S="...",M=800,T=16,D=1,C=2,O=1/0,R=9007199254740991,N=17976931348623157e292,I=NaN,B=4294967295,L=B-1,P=B>>>1,F=[["ary",x],["bind",g],["bindKey",y],["curry",m],["curryRight",v],["flip",E],["partial",_],["partialRight",w],["rearg",k]],q="[object Arguments]",j="[object Array]",U="[object AsyncFunction]",z="[object Boolean]",Y="[object Date]",H="[object DOMException]",V="[object Error]",$="[object Function]",G="[object GeneratorFunction]",W="[object Map]",K="[object Number]",X="[object Null]",Z="[object Object]",J="[object Proxy]",Q="[object RegExp]",tt="[object Set]",et="[object String]",nt="[object Symbol]",rt="[object Undefined]",it="[object WeakMap]",at="[object WeakSet]",ot="[object ArrayBuffer]",st="[object DataView]",ut="[object Float32Array]",ct="[object Float64Array]",ft="[object Int8Array]",lt="[object Int16Array]",ht="[object Int32Array]",dt="[object Uint8Array]",pt="[object Uint8ClampedArray]",gt="[object Uint16Array]",yt="[object Uint32Array]",bt=/\b__p \+= '';/g,mt=/\b(__p \+=) '' \+/g,vt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,_t=/&(?:amp|lt|gt|quot|#39);/g,wt=/[&<>"']/g,xt=RegExp(_t.source),kt=RegExp(wt.source),Et=/<%-([\s\S]+?)%>/g,At=/<%([\s\S]+?)%>/g,St=/<%=([\s\S]+?)%>/g,Mt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Tt=/^\w*$/,Dt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ct=/[\\^$.*+?()[\]{}|]/g,Ot=RegExp(Ct.source),Rt=/^\s+|\s+$/g,Nt=/^\s+/,It=/\s+$/,Bt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Lt=/\{\n\/\* \[wrapped with (.+)\] \*/,Pt=/,? & /,Ft=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,qt=/\\(\\)?/g,jt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ut=/\w*$/,zt=/^[-+]0x[0-9a-f]+$/i,Yt=/^0b[01]+$/i,Ht=/^\[object .+?Constructor\]$/,Vt=/^0o[0-7]+$/i,$t=/^(?:0|[1-9]\d*)$/,Gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Wt=/($^)/,Kt=/['\n\r\u2028\u2029\\]/g,Xt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Zt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Jt="[\\ud800-\\udfff]",Qt="["+Zt+"]",te="["+Xt+"]",ee="\\d+",ne="[\\u2700-\\u27bf]",re="[a-z\\xdf-\\xf6\\xf8-\\xff]",ie="[^\\ud800-\\udfff"+Zt+ee+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",ae="\\ud83c[\\udffb-\\udfff]",oe="[^\\ud800-\\udfff]",se="(?:\\ud83c[\\udde6-\\uddff]){2}",ue="[\\ud800-\\udbff][\\udc00-\\udfff]",ce="[A-Z\\xc0-\\xd6\\xd8-\\xde]",fe="(?:"+re+"|"+ie+")",le="(?:"+ce+"|"+ie+")",he="(?:"+te+"|"+ae+")"+"?",de="[\\ufe0e\\ufe0f]?"+he+("(?:\\u200d(?:"+[oe,se,ue].join("|")+")[\\ufe0e\\ufe0f]?"+he+")*"),pe="(?:"+[ne,se,ue].join("|")+")"+de,ge="(?:"+[oe+te+"?",te,se,ue,Jt].join("|")+")",ye=RegExp("[']","g"),be=RegExp(te,"g"),me=RegExp(ae+"(?="+ae+")|"+ge+de,"g"),ve=RegExp([ce+"?"+re+"+(?:['](?:d|ll|m|re|s|t|ve))?(?="+[Qt,ce,"$"].join("|")+")",le+"+(?:['](?:D|LL|M|RE|S|T|VE))?(?="+[Qt,ce+fe,"$"].join("|")+")",ce+"?"+fe+"+(?:['](?:d|ll|m|re|s|t|ve))?",ce+"+(?:['](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ee,pe].join("|"),"g"),_e=RegExp("[\\u200d\\ud800-\\udfff"+Xt+"\\ufe0e\\ufe0f]"),we=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,xe=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ke=-1,Ee={};Ee[ut]=Ee[ct]=Ee[ft]=Ee[lt]=Ee[ht]=Ee[dt]=Ee[pt]=Ee[gt]=Ee[yt]=!0,Ee[q]=Ee[j]=Ee[ot]=Ee[z]=Ee[st]=Ee[Y]=Ee[V]=Ee[$]=Ee[W]=Ee[K]=Ee[Z]=Ee[Q]=Ee[tt]=Ee[et]=Ee[it]=!1;var Ae={};Ae[q]=Ae[j]=Ae[ot]=Ae[st]=Ae[z]=Ae[Y]=Ae[ut]=Ae[ct]=Ae[ft]=Ae[lt]=Ae[ht]=Ae[W]=Ae[K]=Ae[Z]=Ae[Q]=Ae[tt]=Ae[et]=Ae[nt]=Ae[dt]=Ae[pt]=Ae[gt]=Ae[yt]=!0,Ae[V]=Ae[$]=Ae[it]=!1;var Se={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Me=parseFloat,Te=parseInt,De="object"==typeof t&&t&&t.Object===Object&&t,Ce="object"==typeof self&&self&&self.Object===Object&&self,Oe=De||Ce||Function("return this")(),Re=e&&!e.nodeType&&e,Ne=Re&&"object"==typeof n&&n&&!n.nodeType&&n,Ie=Ne&&Ne.exports===Re,Be=Ie&&De.process,Le=function(){try{var t=Ne&&Ne.require&&Ne.require("util").types;return t||Be&&Be.binding&&Be.binding("util")}catch(t){}}(),Pe=Le&&Le.isArrayBuffer,Fe=Le&&Le.isDate,qe=Le&&Le.isMap,je=Le&&Le.isRegExp,Ue=Le&&Le.isSet,ze=Le&&Le.isTypedArray;function Ye(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function He(t,e,n,r){for(var i=-1,a=null==t?0:t.length;++i<a;){var o=t[i];e(r,o,n(o),t)}return r}function Ve(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function $e(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function Ge(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function We(t,e){for(var n=-1,r=null==t?0:t.length,i=0,a=[];++n<r;){var o=t[n];e(o,n,t)&&(a[i++]=o)}return a}function Ke(t,e){return!!(null==t?0:t.length)&&on(t,e,0)>-1}function Xe(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function Ze(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function Je(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function Qe(t,e,n,r){var i=-1,a=null==t?0:t.length;for(r&&a&&(n=t[++i]);++i<a;)n=e(n,t[i],i,t);return n}function tn(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function en(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var nn=fn("length");function rn(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function an(t,e,n,r){for(var i=t.length,a=n+(r?1:-1);r?a--:++a<i;)if(e(t[a],a,t))return a;return-1}function on(t,e,n){return e==e?function(t,e,n){var r=n-1,i=t.length;for(;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):an(t,un,n)}function sn(t,e,n,r){for(var i=n-1,a=t.length;++i<a;)if(r(t[i],e))return i;return-1}function un(t){return t!=t}function cn(t,e){var n=null==t?0:t.length;return n?dn(t,e)/n:I}function fn(t){return function(e){return null==e?r:e[t]}}function ln(t){return function(e){return null==t?r:t[e]}}function hn(t,e,n,r,i){return i(t,(function(t,i,a){n=r?(r=!1,t):e(n,t,i,a)})),n}function dn(t,e){for(var n,i=-1,a=t.length;++i<a;){var o=e(t[i]);o!==r&&(n=n===r?o:n+o)}return n}function pn(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function gn(t){return function(e){return t(e)}}function yn(t,e){return Ze(e,(function(e){return t[e]}))}function bn(t,e){return t.has(e)}function mn(t,e){for(var n=-1,r=t.length;++n<r&&on(e,t[n],0)>-1;);return n}function vn(t,e){for(var n=t.length;n--&&on(e,t[n],0)>-1;);return n}var _n=ln({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),wn=ln({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function xn(t){return"\\"+Se[t]}function kn(t){return _e.test(t)}function En(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function An(t,e){return function(n){return t(e(n))}}function Sn(t,e){for(var n=-1,r=t.length,i=0,a=[];++n<r;){var o=t[n];o!==e&&o!==c||(t[n]=c,a[i++]=n)}return a}function Mn(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function Tn(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function Dn(t){return kn(t)?function(t){var e=me.lastIndex=0;for(;me.test(t);)++e;return e}(t):nn(t)}function Cn(t){return kn(t)?function(t){return t.match(me)||[]}(t):function(t){return t.split("")}(t)}var On=ln({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});var Rn=function t(e){var n,Xt=(e=null==e?Oe:Rn.defaults(Oe.Object(),e,Rn.pick(Oe,xe))).Array,Zt=e.Date,Jt=e.Error,Qt=e.Function,te=e.Math,ee=e.Object,ne=e.RegExp,re=e.String,ie=e.TypeError,ae=Xt.prototype,oe=Qt.prototype,se=ee.prototype,ue=e["__core-js_shared__"],ce=oe.toString,fe=se.hasOwnProperty,le=0,he=(n=/[^.]+$/.exec(ue&&ue.keys&&ue.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",de=se.toString,pe=ce.call(ee),ge=Oe._,me=ne("^"+ce.call(fe).replace(Ct,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),_e=Ie?e.Buffer:r,Se=e.Symbol,De=e.Uint8Array,Ce=_e?_e.allocUnsafe:r,Re=An(ee.getPrototypeOf,ee),Ne=ee.create,Be=se.propertyIsEnumerable,Le=ae.splice,nn=Se?Se.isConcatSpreadable:r,ln=Se?Se.iterator:r,Nn=Se?Se.toStringTag:r,In=function(){try{var t=Fa(ee,"defineProperty");return t({},"",{}),t}catch(t){}}(),Bn=e.clearTimeout!==Oe.clearTimeout&&e.clearTimeout,Ln=Zt&&Zt.now!==Oe.Date.now&&Zt.now,Pn=e.setTimeout!==Oe.setTimeout&&e.setTimeout,Fn=te.ceil,qn=te.floor,jn=ee.getOwnPropertySymbols,Un=_e?_e.isBuffer:r,zn=e.isFinite,Yn=ae.join,Hn=An(ee.keys,ee),Vn=te.max,$n=te.min,Gn=Zt.now,Wn=e.parseInt,Kn=te.random,Xn=ae.reverse,Zn=Fa(e,"DataView"),Jn=Fa(e,"Map"),Qn=Fa(e,"Promise"),tr=Fa(e,"Set"),er=Fa(e,"WeakMap"),nr=Fa(ee,"create"),rr=er&&new er,ir={},ar=fo(Zn),or=fo(Jn),sr=fo(Qn),ur=fo(tr),cr=fo(er),fr=Se?Se.prototype:r,lr=fr?fr.valueOf:r,hr=fr?fr.toString:r;function dr(t){if(Ts(t)&&!bs(t)&&!(t instanceof br)){if(t instanceof yr)return t;if(fe.call(t,"__wrapped__"))return lo(t)}return new yr(t)}var pr=function(){function t(){}return function(e){if(!Ms(e))return{};if(Ne)return Ne(e);t.prototype=e;var n=new t;return t.prototype=r,n}}();function gr(){}function yr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=r}function br(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=B,this.__views__=[]}function mr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function vr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function _r(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function wr(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new _r;++e<n;)this.add(t[e])}function xr(t){var e=this.__data__=new vr(t);this.size=e.size}function kr(t,e){var n=bs(t),r=!n&&ys(t),i=!n&&!r&&ws(t),a=!n&&!r&&!i&&Ls(t),o=n||r||i||a,s=o?pn(t.length,re):[],u=s.length;for(var c in t)!e&&!fe.call(t,c)||o&&("length"==c||i&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Va(c,u))||s.push(c);return s}function Er(t){var e=t.length;return e?t[wi(0,e-1)]:r}function Ar(t,e){return so(na(t),Ir(e,0,t.length))}function Sr(t){return so(na(t))}function Mr(t,e,n){(n===r||ds(t[e],n))&&(n!==r||e in t)||Rr(t,e,n)}function Tr(t,e,n){var i=t[e];fe.call(t,e)&&ds(i,n)&&(n!==r||e in t)||Rr(t,e,n)}function Dr(t,e){for(var n=t.length;n--;)if(ds(t[n][0],e))return n;return-1}function Cr(t,e,n,r){return qr(t,(function(t,i,a){e(r,t,n(t),a)})),r}function Or(t,e){return t&&ra(e,iu(e),t)}function Rr(t,e,n){"__proto__"==e&&In?In(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Nr(t,e){for(var n=-1,i=e.length,a=Xt(i),o=null==t;++n<i;)a[n]=o?r:Qs(t,e[n]);return a}function Ir(t,e,n){return t==t&&(n!==r&&(t=t<=n?t:n),e!==r&&(t=t>=e?t:e)),t}function Br(t,e,n,i,a,o){var s,u=e&f,c=e&l,d=e&h;if(n&&(s=a?n(t,i,a,o):n(t)),s!==r)return s;if(!Ms(t))return t;var p=bs(t);if(p){if(s=function(t){var e=t.length,n=new t.constructor(e);e&&"string"==typeof t[0]&&fe.call(t,"index")&&(n.index=t.index,n.input=t.input);return n}(t),!u)return na(t,s)}else{var g=Ua(t),y=g==$||g==G;if(ws(t))return Xi(t,u);if(g==Z||g==q||y&&!a){if(s=c||y?{}:Ya(t),!u)return c?function(t,e){return ra(t,ja(t),e)}(t,function(t,e){return t&&ra(e,au(e),t)}(s,t)):function(t,e){return ra(t,qa(t),e)}(t,Or(s,t))}else{if(!Ae[g])return a?t:{};s=function(t,e,n){var r=t.constructor;switch(e){case ot:return Zi(t);case z:case Y:return new r(+t);case st:return function(t,e){var n=e?Zi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case ut:case ct:case ft:case lt:case ht:case dt:case pt:case gt:case yt:return Ji(t,n);case W:return new r;case K:case et:return new r(t);case Q:return function(t){var e=new t.constructor(t.source,Ut.exec(t));return e.lastIndex=t.lastIndex,e}(t);case tt:return new r;case nt:return i=t,lr?ee(lr.call(i)):{}}var i}(t,g,u)}}o||(o=new xr);var b=o.get(t);if(b)return b;o.set(t,s),Ns(t)?t.forEach((function(r){s.add(Br(r,e,n,r,t,o))})):Ds(t)&&t.forEach((function(r,i){s.set(i,Br(r,e,n,i,t,o))}));var m=p?r:(d?c?Oa:Ca:c?au:iu)(t);return Ve(m||t,(function(r,i){m&&(r=t[i=r]),Tr(s,i,Br(r,e,n,i,t,o))})),s}function Lr(t,e,n){var i=n.length;if(null==t)return!i;for(t=ee(t);i--;){var a=n[i],o=e[a],s=t[a];if(s===r&&!(a in t)||!o(s))return!1}return!0}function Pr(t,e,n){if("function"!=typeof t)throw new ie(o);return ro((function(){t.apply(r,n)}),e)}function Fr(t,e,n,r){var a=-1,o=Ke,s=!0,u=t.length,c=[],f=e.length;if(!u)return c;n&&(e=Ze(e,gn(n))),r?(o=Xe,s=!1):e.length>=i&&(o=bn,s=!1,e=new wr(e));t:for(;++a<u;){var l=t[a],h=null==n?l:n(l);if(l=r||0!==l?l:0,s&&h==h){for(var d=f;d--;)if(e[d]===h)continue t;c.push(l)}else o(e,h,r)||c.push(l)}return c}dr.templateSettings={escape:Et,evaluate:At,interpolate:St,variable:"",imports:{_:dr}},dr.prototype=gr.prototype,dr.prototype.constructor=dr,yr.prototype=pr(gr.prototype),yr.prototype.constructor=yr,br.prototype=pr(gr.prototype),br.prototype.constructor=br,mr.prototype.clear=function(){this.__data__=nr?nr(null):{},this.size=0},mr.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},mr.prototype.get=function(t){var e=this.__data__;if(nr){var n=e[t];return n===s?r:n}return fe.call(e,t)?e[t]:r},mr.prototype.has=function(t){var e=this.__data__;return nr?e[t]!==r:fe.call(e,t)},mr.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=nr&&e===r?s:e,this},vr.prototype.clear=function(){this.__data__=[],this.size=0},vr.prototype.delete=function(t){var e=this.__data__,n=Dr(e,t);return!(n<0)&&(n==e.length-1?e.pop():Le.call(e,n,1),--this.size,!0)},vr.prototype.get=function(t){var e=this.__data__,n=Dr(e,t);return n<0?r:e[n][1]},vr.prototype.has=function(t){return Dr(this.__data__,t)>-1},vr.prototype.set=function(t,e){var n=this.__data__,r=Dr(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},_r.prototype.clear=function(){this.size=0,this.__data__={hash:new mr,map:new(Jn||vr),string:new mr}},_r.prototype.delete=function(t){var e=La(this,t).delete(t);return this.size-=e?1:0,e},_r.prototype.get=function(t){return La(this,t).get(t)},_r.prototype.has=function(t){return La(this,t).has(t)},_r.prototype.set=function(t,e){var n=La(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},wr.prototype.add=wr.prototype.push=function(t){return this.__data__.set(t,s),this},wr.prototype.has=function(t){return this.__data__.has(t)},xr.prototype.clear=function(){this.__data__=new vr,this.size=0},xr.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},xr.prototype.get=function(t){return this.__data__.get(t)},xr.prototype.has=function(t){return this.__data__.has(t)},xr.prototype.set=function(t,e){var n=this.__data__;if(n instanceof vr){var r=n.__data__;if(!Jn||r.length<i-1)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new _r(r)}return n.set(t,e),this.size=n.size,this};var qr=oa(Gr),jr=oa(Wr,!0);function Ur(t,e){var n=!0;return qr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function zr(t,e,n){for(var i=-1,a=t.length;++i<a;){var o=t[i],s=e(o);if(null!=s&&(u===r?s==s&&!Bs(s):n(s,u)))var u=s,c=o}return c}function Yr(t,e){var n=[];return qr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function Hr(t,e,n,r,i){var a=-1,o=t.length;for(n||(n=Ha),i||(i=[]);++a<o;){var s=t[a];e>0&&n(s)?e>1?Hr(s,e-1,n,r,i):Je(i,s):r||(i[i.length]=s)}return i}var Vr=sa(),$r=sa(!0);function Gr(t,e){return t&&Vr(t,e,iu)}function Wr(t,e){return t&&$r(t,e,iu)}function Kr(t,e){return We(e,(function(e){return Es(t[e])}))}function Xr(t,e){for(var n=0,i=(e=$i(e,t)).length;null!=t&&n<i;)t=t[co(e[n++])];return n&&n==i?t:r}function Zr(t,e,n){var r=e(t);return bs(t)?r:Je(r,n(t))}function Jr(t){return null==t?t===r?rt:X:Nn&&Nn in ee(t)?function(t){var e=fe.call(t,Nn),n=t[Nn];try{t[Nn]=r;var i=!0}catch(t){}var a=de.call(t);i&&(e?t[Nn]=n:delete t[Nn]);return a}(t):function(t){return de.call(t)}(t)}function Qr(t,e){return t>e}function ti(t,e){return null!=t&&fe.call(t,e)}function ei(t,e){return null!=t&&e in ee(t)}function ni(t,e,n){for(var i=n?Xe:Ke,a=t[0].length,o=t.length,s=o,u=Xt(o),c=1/0,f=[];s--;){var l=t[s];s&&e&&(l=Ze(l,gn(e))),c=$n(l.length,c),u[s]=!n&&(e||a>=120&&l.length>=120)?new wr(s&&l):r}l=t[0];var h=-1,d=u[0];t:for(;++h<a&&f.length<c;){var p=l[h],g=e?e(p):p;if(p=n||0!==p?p:0,!(d?bn(d,g):i(f,g,n))){for(s=o;--s;){var y=u[s];if(!(y?bn(y,g):i(t[s],g,n)))continue t}d&&d.push(g),f.push(p)}}return f}function ri(t,e,n){var i=null==(t=to(t,e=$i(e,t)))?t:t[co(ko(e))];return null==i?r:Ye(i,t,n)}function ii(t){return Ts(t)&&Jr(t)==q}function ai(t,e,n,i,a){return t===e||(null==t||null==e||!Ts(t)&&!Ts(e)?t!=t&&e!=e:function(t,e,n,i,a,o){var s=bs(t),u=bs(e),c=s?j:Ua(t),f=u?j:Ua(e),l=(c=c==q?Z:c)==Z,h=(f=f==q?Z:f)==Z,g=c==f;if(g&&ws(t)){if(!ws(e))return!1;s=!0,l=!1}if(g&&!l)return o||(o=new xr),s||Ls(t)?Ta(t,e,n,i,a,o):function(t,e,n,r,i,a,o){switch(n){case st:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case ot:return!(t.byteLength!=e.byteLength||!a(new De(t),new De(e)));case z:case Y:case K:return ds(+t,+e);case V:return t.name==e.name&&t.message==e.message;case Q:case et:return t==e+"";case W:var s=En;case tt:var u=r&d;if(s||(s=Mn),t.size!=e.size&&!u)return!1;var c=o.get(t);if(c)return c==e;r|=p,o.set(t,e);var f=Ta(s(t),s(e),r,i,a,o);return o.delete(t),f;case nt:if(lr)return lr.call(t)==lr.call(e)}return!1}(t,e,c,n,i,a,o);if(!(n&d)){var y=l&&fe.call(t,"__wrapped__"),b=h&&fe.call(e,"__wrapped__");if(y||b){var m=y?t.value():t,v=b?e.value():e;return o||(o=new xr),a(m,v,n,i,o)}}if(!g)return!1;return o||(o=new xr),function(t,e,n,i,a,o){var s=n&d,u=Ca(t),c=u.length,f=Ca(e).length;if(c!=f&&!s)return!1;var l=c;for(;l--;){var h=u[l];if(!(s?h in e:fe.call(e,h)))return!1}var p=o.get(t);if(p&&o.get(e))return p==e;var g=!0;o.set(t,e),o.set(e,t);var y=s;for(;++l<c;){h=u[l];var b=t[h],m=e[h];if(i)var v=s?i(m,b,h,e,t,o):i(b,m,h,t,e,o);if(!(v===r?b===m||a(b,m,n,i,o):v)){g=!1;break}y||(y="constructor"==h)}if(g&&!y){var _=t.constructor,w=e.constructor;_!=w&&"constructor"in t&&"constructor"in e&&!("function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w)&&(g=!1)}return o.delete(t),o.delete(e),g}(t,e,n,i,a,o)}(t,e,n,i,ai,a))}function oi(t,e,n,i){var a=n.length,o=a,s=!i;if(null==t)return!o;for(t=ee(t);a--;){var u=n[a];if(s&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++a<o;){var c=(u=n[a])[0],f=t[c],l=u[1];if(s&&u[2]){if(f===r&&!(c in t))return!1}else{var h=new xr;if(i)var g=i(f,l,c,t,e,h);if(!(g===r?ai(l,f,d|p,i,h):g))return!1}}return!0}function si(t){return!(!Ms(t)||(e=t,he&&he in e))&&(Es(t)?me:Ht).test(fo(t));var e}function ui(t){return"function"==typeof t?t:null==t?Cu:"object"==typeof t?bs(t)?pi(t[0],t[1]):di(t):qu(t)}function ci(t){if(!Xa(t))return Hn(t);var e=[];for(var n in ee(t))fe.call(t,n)&&"constructor"!=n&&e.push(n);return e}function fi(t){if(!Ms(t))return function(t){var e=[];if(null!=t)for(var n in ee(t))e.push(n);return e}(t);var e=Xa(t),n=[];for(var r in t)("constructor"!=r||!e&&fe.call(t,r))&&n.push(r);return n}function li(t,e){return t<e}function hi(t,e){var n=-1,r=vs(t)?Xt(t.length):[];return qr(t,(function(t,i,a){r[++n]=e(t,i,a)})),r}function di(t){var e=Pa(t);return 1==e.length&&e[0][2]?Ja(e[0][0],e[0][1]):function(n){return n===t||oi(n,t,e)}}function pi(t,e){return Ga(t)&&Za(e)?Ja(co(t),e):function(n){var i=Qs(n,t);return i===r&&i===e?tu(n,t):ai(e,i,d|p)}}function gi(t,e,n,i,a){t!==e&&Vr(e,(function(o,s){if(a||(a=new xr),Ms(o))!function(t,e,n,i,a,o,s){var u=eo(t,n),c=eo(e,n),f=s.get(c);if(f)return void Mr(t,n,f);var l=o?o(u,c,n+"",t,e,s):r,h=l===r;if(h){var d=bs(c),p=!d&&ws(c),g=!d&&!p&&Ls(c);l=c,d||p||g?bs(u)?l=u:_s(u)?l=na(u):p?(h=!1,l=Xi(c,!0)):g?(h=!1,l=Ji(c,!0)):l=[]:Os(c)||ys(c)?(l=u,ys(u)?l=Hs(u):Ms(u)&&!Es(u)||(l=Ya(c))):h=!1}h&&(s.set(c,l),a(l,c,i,o,s),s.delete(c));Mr(t,n,l)}(t,e,s,n,gi,i,a);else{var u=i?i(eo(t,s),o,s+"",t,e,a):r;u===r&&(u=o),Mr(t,s,u)}}),au)}function yi(t,e){var n=t.length;if(n)return Va(e+=e<0?n:0,n)?t[e]:r}function bi(t,e,n){var r=-1;return e=Ze(e.length?e:[Cu],gn(Ba())),function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}(hi(t,(function(t,n,i){return{criteria:Ze(e,(function(e){return e(t)})),index:++r,value:t}})),(function(t,e){return function(t,e,n){var r=-1,i=t.criteria,a=e.criteria,o=i.length,s=n.length;for(;++r<o;){var u=Qi(i[r],a[r]);if(u){if(r>=s)return u;var c=n[r];return u*("desc"==c?-1:1)}}return t.index-e.index}(t,e,n)}))}function mi(t,e,n){for(var r=-1,i=e.length,a={};++r<i;){var o=e[r],s=Xr(t,o);n(s,o)&&Si(a,$i(o,t),s)}return a}function vi(t,e,n,r){var i=r?sn:on,a=-1,o=e.length,s=t;for(t===e&&(e=na(e)),n&&(s=Ze(t,gn(n)));++a<o;)for(var u=0,c=e[a],f=n?n(c):c;(u=i(s,f,u,r))>-1;)s!==t&&Le.call(s,u,1),Le.call(t,u,1);return t}function _i(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==a){var a=i;Va(i)?Le.call(t,i,1):Fi(t,i)}}return t}function wi(t,e){return t+qn(Kn()*(e-t+1))}function xi(t,e){var n="";if(!t||e<1||e>R)return n;do{e%2&&(n+=t),(e=qn(e/2))&&(t+=t)}while(e);return n}function ki(t,e){return io(Qa(t,e,Cu),t+"")}function Ei(t){return Er(du(t))}function Ai(t,e){var n=du(t);return so(n,Ir(e,0,n.length))}function Si(t,e,n,i){if(!Ms(t))return t;for(var a=-1,o=(e=$i(e,t)).length,s=o-1,u=t;null!=u&&++a<o;){var c=co(e[a]),f=n;if(a!=s){var l=u[c];(f=i?i(l,c,u):r)===r&&(f=Ms(l)?l:Va(e[a+1])?[]:{})}Tr(u,c,f),u=u[c]}return t}var Mi=rr?function(t,e){return rr.set(t,e),t}:Cu,Ti=In?function(t,e){return In(t,"toString",{configurable:!0,enumerable:!1,value:Mu(e),writable:!0})}:Cu;function Di(t){return so(du(t))}function Ci(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Xt(i);++r<i;)a[r]=t[r+e];return a}function Oi(t,e){var n;return qr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function Ri(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=P){for(;r<i;){var a=r+i>>>1,o=t[a];null!==o&&!Bs(o)&&(n?o<=e:o<e)?r=a+1:i=a}return i}return Ni(t,e,Cu,n)}function Ni(t,e,n,i){e=n(e);for(var a=0,o=null==t?0:t.length,s=e!=e,u=null===e,c=Bs(e),f=e===r;a<o;){var l=qn((a+o)/2),h=n(t[l]),d=h!==r,p=null===h,g=h==h,y=Bs(h);if(s)var b=i||g;else b=f?g&&(i||d):u?g&&d&&(i||!p):c?g&&d&&!p&&(i||!y):!p&&!y&&(i?h<=e:h<e);b?a=l+1:o=l}return $n(o,L)}function Ii(t,e){for(var n=-1,r=t.length,i=0,a=[];++n<r;){var o=t[n],s=e?e(o):o;if(!n||!ds(s,u)){var u=s;a[i++]=0===o?0:o}}return a}function Bi(t){return"number"==typeof t?t:Bs(t)?I:+t}function Li(t){if("string"==typeof t)return t;if(bs(t))return Ze(t,Li)+"";if(Bs(t))return hr?hr.call(t):"";var e=t+"";return"0"==e&&1/t==-O?"-0":e}function Pi(t,e,n){var r=-1,a=Ke,o=t.length,s=!0,u=[],c=u;if(n)s=!1,a=Xe;else if(o>=i){var f=e?null:xa(t);if(f)return Mn(f);s=!1,a=bn,c=new wr}else c=e?[]:u;t:for(;++r<o;){var l=t[r],h=e?e(l):l;if(l=n||0!==l?l:0,s&&h==h){for(var d=c.length;d--;)if(c[d]===h)continue t;e&&c.push(h),u.push(l)}else a(c,h,n)||(c!==u&&c.push(h),u.push(l))}return u}function Fi(t,e){return null==(t=to(t,e=$i(e,t)))||delete t[co(ko(e))]}function qi(t,e,n,r){return Si(t,e,n(Xr(t,e)),r)}function ji(t,e,n,r){for(var i=t.length,a=r?i:-1;(r?a--:++a<i)&&e(t[a],a,t););return n?Ci(t,r?0:a,r?a+1:i):Ci(t,r?a+1:0,r?i:a)}function Ui(t,e){var n=t;return n instanceof br&&(n=n.value()),Qe(e,(function(t,e){return e.func.apply(e.thisArg,Je([t],e.args))}),n)}function zi(t,e,n){var r=t.length;if(r<2)return r?Pi(t[0]):[];for(var i=-1,a=Xt(r);++i<r;)for(var o=t[i],s=-1;++s<r;)s!=i&&(a[i]=Fr(a[i]||o,t[s],e,n));return Pi(Hr(a,1),e,n)}function Yi(t,e,n){for(var i=-1,a=t.length,o=e.length,s={};++i<a;){var u=i<o?e[i]:r;n(s,t[i],u)}return s}function Hi(t){return _s(t)?t:[]}function Vi(t){return"function"==typeof t?t:Cu}function $i(t,e){return bs(t)?t:Ga(t,e)?[t]:uo(Vs(t))}var Gi=ki;function Wi(t,e,n){var i=t.length;return n=n===r?i:n,!e&&n>=i?t:Ci(t,e,n)}var Ki=Bn||function(t){return Oe.clearTimeout(t)};function Xi(t,e){if(e)return t.slice();var n=t.length,r=Ce?Ce(n):new t.constructor(n);return t.copy(r),r}function Zi(t){var e=new t.constructor(t.byteLength);return new De(e).set(new De(t)),e}function Ji(t,e){var n=e?Zi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Qi(t,e){if(t!==e){var n=t!==r,i=null===t,a=t==t,o=Bs(t),s=e!==r,u=null===e,c=e==e,f=Bs(e);if(!u&&!f&&!o&&t>e||o&&s&&c&&!u&&!f||i&&s&&c||!n&&c||!a)return 1;if(!i&&!o&&!f&&t<e||f&&n&&a&&!i&&!o||u&&n&&a||!s&&a||!c)return-1}return 0}function ta(t,e,n,r){for(var i=-1,a=t.length,o=n.length,s=-1,u=e.length,c=Vn(a-o,0),f=Xt(u+c),l=!r;++s<u;)f[s]=e[s];for(;++i<o;)(l||i<a)&&(f[n[i]]=t[i]);for(;c--;)f[s++]=t[i++];return f}function ea(t,e,n,r){for(var i=-1,a=t.length,o=-1,s=n.length,u=-1,c=e.length,f=Vn(a-s,0),l=Xt(f+c),h=!r;++i<f;)l[i]=t[i];for(var d=i;++u<c;)l[d+u]=e[u];for(;++o<s;)(h||i<a)&&(l[d+n[o]]=t[i++]);return l}function na(t,e){var n=-1,r=t.length;for(e||(e=Xt(r));++n<r;)e[n]=t[n];return e}function ra(t,e,n,i){var a=!n;n||(n={});for(var o=-1,s=e.length;++o<s;){var u=e[o],c=i?i(n[u],t[u],u,n,t):r;c===r&&(c=t[u]),a?Rr(n,u,c):Tr(n,u,c)}return n}function ia(t,e){return function(n,r){var i=bs(n)?He:Cr,a=e?e():{};return i(n,t,Ba(r,2),a)}}function aa(t){return ki((function(e,n){var i=-1,a=n.length,o=a>1?n[a-1]:r,s=a>2?n[2]:r;for(o=t.length>3&&"function"==typeof o?(a--,o):r,s&&$a(n[0],n[1],s)&&(o=a<3?r:o,a=1),e=ee(e);++i<a;){var u=n[i];u&&t(e,u,i,o)}return e}))}function oa(t,e){return function(n,r){if(null==n)return n;if(!vs(n))return t(n,r);for(var i=n.length,a=e?i:-1,o=ee(n);(e?a--:++a<i)&&!1!==r(o[a],a,o););return n}}function sa(t){return function(e,n,r){for(var i=-1,a=ee(e),o=r(e),s=o.length;s--;){var u=o[t?s:++i];if(!1===n(a[u],u,a))break}return e}}function ua(t){return function(e){var n=kn(e=Vs(e))?Cn(e):r,i=n?n[0]:e.charAt(0),a=n?Wi(n,1).join(""):e.slice(1);return i[t]()+a}}function ca(t){return function(e){return Qe(Eu(yu(e).replace(ye,"")),t,"")}}function fa(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=pr(t.prototype),r=t.apply(n,e);return Ms(r)?r:n}}function la(t){return function(e,n,i){var a=ee(e);if(!vs(e)){var o=Ba(n,3);e=iu(e),n=function(t){return o(a[t],t,a)}}var s=t(e,n,i);return s>-1?a[o?e[s]:s]:r}}function ha(t){return Da((function(e){var n=e.length,i=n,a=yr.prototype.thru;for(t&&e.reverse();i--;){var s=e[i];if("function"!=typeof s)throw new ie(o);if(a&&!u&&"wrapper"==Na(s))var u=new yr([],!0)}for(i=u?i:n;++i<n;){var c=Na(s=e[i]),f="wrapper"==c?Ra(s):r;u=f&&Wa(f[0])&&f[1]==(x|m|_|k)&&!f[4].length&&1==f[9]?u[Na(f[0])].apply(u,f[3]):1==s.length&&Wa(s)?u[c]():u.thru(s)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&bs(r))return u.plant(r).value();for(var i=0,a=n?e[i].apply(this,t):r;++i<n;)a=e[i].call(this,a);return a}}))}function da(t,e,n,i,a,o,s,u,c,f){var l=e&x,h=e&g,d=e&y,p=e&(m|v),b=e&E,_=d?r:fa(t);return function g(){for(var y=arguments.length,m=Xt(y),v=y;v--;)m[v]=arguments[v];if(p)var w=Ia(g),x=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(m,w);if(i&&(m=ta(m,i,a,p)),o&&(m=ea(m,o,s,p)),y-=x,p&&y<f){var k=Sn(m,w);return _a(t,e,da,g.placeholder,n,m,k,u,c,f-y)}var E=h?n:this,A=d?E[t]:t;return y=m.length,u?m=function(t,e){var n=t.length,i=$n(e.length,n),a=na(t);for(;i--;){var o=e[i];t[i]=Va(o,n)?a[o]:r}return t}(m,u):b&&y>1&&m.reverse(),l&&c<y&&(m.length=c),this&&this!==Oe&&this instanceof g&&(A=_||fa(A)),A.apply(E,m)}}function pa(t,e){return function(n,r){return function(t,e,n,r){return Gr(t,(function(t,i,a){e(r,n(t),i,a)})),r}(n,t,e(r),{})}}function ga(t,e){return function(n,i){var a;if(n===r&&i===r)return e;if(n!==r&&(a=n),i!==r){if(a===r)return i;"string"==typeof n||"string"==typeof i?(n=Li(n),i=Li(i)):(n=Bi(n),i=Bi(i)),a=t(n,i)}return a}}function ya(t){return Da((function(e){return e=Ze(e,gn(Ba())),ki((function(n){var r=this;return t(e,(function(t){return Ye(t,r,n)}))}))}))}function ba(t,e){var n=(e=e===r?" ":Li(e)).length;if(n<2)return n?xi(e,t):e;var i=xi(e,Fn(t/Dn(e)));return kn(e)?Wi(Cn(i),0,t).join(""):i.slice(0,t)}function ma(t){return function(e,n,i){return i&&"number"!=typeof i&&$a(e,n,i)&&(n=i=r),e=js(e),n===r?(n=e,e=0):n=js(n),function(t,e,n,r){for(var i=-1,a=Vn(Fn((e-t)/(n||1)),0),o=Xt(a);a--;)o[r?a:++i]=t,t+=n;return o}(e,n,i=i===r?e<n?1:-1:js(i),t)}}function va(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=Ys(e),n=Ys(n)),t(e,n)}}function _a(t,e,n,i,a,o,s,u,c,f){var l=e&m;e|=l?_:w,(e&=~(l?w:_))&b||(e&=~(g|y));var h=[t,e,a,l?o:r,l?s:r,l?r:o,l?r:s,u,c,f],d=n.apply(r,h);return Wa(t)&&no(d,h),d.placeholder=i,ao(d,t,e)}function wa(t){var e=te[t];return function(t,n){if(t=Ys(t),(n=null==n?0:$n(Us(n),292))&&zn(t)){var r=(Vs(t)+"e").split("e");return+((r=(Vs(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var xa=tr&&1/Mn(new tr([,-0]))[1]==O?function(t){return new tr(t)}:Bu;function ka(t){return function(e){var n=Ua(e);return n==W?En(e):n==tt?Tn(e):function(t,e){return Ze(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Ea(t,e,n,i,a,s,u,f){var l=e&y;if(!l&&"function"!=typeof t)throw new ie(o);var h=i?i.length:0;if(h||(e&=~(_|w),i=a=r),u=u===r?u:Vn(Us(u),0),f=f===r?f:Us(f),h-=a?a.length:0,e&w){var d=i,p=a;i=a=r}var E=l?r:Ra(t),A=[t,e,n,i,a,d,p,s,u,f];if(E&&function(t,e){var n=t[1],r=e[1],i=n|r,a=i<(g|y|x),o=r==x&&n==m||r==x&&n==k&&t[7].length<=e[8]||r==(x|k)&&e[7].length<=e[8]&&n==m;if(!a&&!o)return t;r&g&&(t[2]=e[2],i|=n&g?0:b);var s=e[3];if(s){var u=t[3];t[3]=u?ta(u,s,e[4]):s,t[4]=u?Sn(t[3],c):e[4]}(s=e[5])&&(u=t[5],t[5]=u?ea(u,s,e[6]):s,t[6]=u?Sn(t[5],c):e[6]);(s=e[7])&&(t[7]=s);r&x&&(t[8]=null==t[8]?e[8]:$n(t[8],e[8]));null==t[9]&&(t[9]=e[9]);t[0]=e[0],t[1]=i}(A,E),t=A[0],e=A[1],n=A[2],i=A[3],a=A[4],!(f=A[9]=A[9]===r?l?0:t.length:Vn(A[9]-h,0))&&e&(m|v)&&(e&=~(m|v)),e&&e!=g)S=e==m||e==v?function(t,e,n){var i=fa(t);return function a(){for(var o=arguments.length,s=Xt(o),u=o,c=Ia(a);u--;)s[u]=arguments[u];var f=o<3&&s[0]!==c&&s[o-1]!==c?[]:Sn(s,c);return(o-=f.length)<n?_a(t,e,da,a.placeholder,r,s,f,r,r,n-o):Ye(this&&this!==Oe&&this instanceof a?i:t,this,s)}}(t,e,f):e!=_&&e!=(g|_)||a.length?da.apply(r,A):function(t,e,n,r){var i=e&g,a=fa(t);return function e(){for(var o=-1,s=arguments.length,u=-1,c=r.length,f=Xt(c+s),l=this&&this!==Oe&&this instanceof e?a:t;++u<c;)f[u]=r[u];for(;s--;)f[u++]=arguments[++o];return Ye(l,i?n:this,f)}}(t,e,n,i);else var S=function(t,e,n){var r=e&g,i=fa(t);return function e(){return(this&&this!==Oe&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,n);return ao((E?Mi:no)(S,A),t,e)}function Aa(t,e,n,i){return t===r||ds(t,se[n])&&!fe.call(i,n)?e:t}function Sa(t,e,n,i,a,o){return Ms(t)&&Ms(e)&&(o.set(e,t),gi(t,e,r,Sa,o),o.delete(e)),t}function Ma(t){return Os(t)?r:t}function Ta(t,e,n,i,a,o){var s=n&d,u=t.length,c=e.length;if(u!=c&&!(s&&c>u))return!1;var f=o.get(t);if(f&&o.get(e))return f==e;var l=-1,h=!0,g=n&p?new wr:r;for(o.set(t,e),o.set(e,t);++l<u;){var y=t[l],b=e[l];if(i)var m=s?i(b,y,l,e,t,o):i(y,b,l,t,e,o);if(m!==r){if(m)continue;h=!1;break}if(g){if(!en(e,(function(t,e){if(!bn(g,e)&&(y===t||a(y,t,n,i,o)))return g.push(e)}))){h=!1;break}}else if(y!==b&&!a(y,b,n,i,o)){h=!1;break}}return o.delete(t),o.delete(e),h}function Da(t){return io(Qa(t,r,mo),t+"")}function Ca(t){return Zr(t,iu,qa)}function Oa(t){return Zr(t,au,ja)}var Ra=rr?function(t){return rr.get(t)}:Bu;function Na(t){for(var e=t.name+"",n=ir[e],r=fe.call(ir,e)?n.length:0;r--;){var i=n[r],a=i.func;if(null==a||a==t)return i.name}return e}function Ia(t){return(fe.call(dr,"placeholder")?dr:t).placeholder}function Ba(){var t=dr.iteratee||Ou;return t=t===Ou?ui:t,arguments.length?t(arguments[0],arguments[1]):t}function La(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function Pa(t){for(var e=iu(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,Za(i)]}return e}function Fa(t,e){var n=function(t,e){return null==t?r:t[e]}(t,e);return si(n)?n:r}var qa=jn?function(t){return null==t?[]:(t=ee(t),We(jn(t),(function(e){return Be.call(t,e)})))}:zu,ja=jn?function(t){for(var e=[];t;)Je(e,qa(t)),t=Re(t);return e}:zu,Ua=Jr;function za(t,e,n){for(var r=-1,i=(e=$i(e,t)).length,a=!1;++r<i;){var o=co(e[r]);if(!(a=null!=t&&n(t,o)))break;t=t[o]}return a||++r!=i?a:!!(i=null==t?0:t.length)&&Ss(i)&&Va(o,i)&&(bs(t)||ys(t))}function Ya(t){return"function"!=typeof t.constructor||Xa(t)?{}:pr(Re(t))}function Ha(t){return bs(t)||ys(t)||!!(nn&&t&&t[nn])}function Va(t,e){var n=typeof t;return!!(e=null==e?R:e)&&("number"==n||"symbol"!=n&&$t.test(t))&&t>-1&&t%1==0&&t<e}function $a(t,e,n){if(!Ms(n))return!1;var r=typeof e;return!!("number"==r?vs(n)&&Va(e,n.length):"string"==r&&e in n)&&ds(n[e],t)}function Ga(t,e){if(bs(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!Bs(t))||(Tt.test(t)||!Mt.test(t)||null!=e&&t in ee(e))}function Wa(t){var e=Na(t),n=dr[e];if("function"!=typeof n||!(e in br.prototype))return!1;if(t===n)return!0;var r=Ra(n);return!!r&&t===r[0]}(Zn&&Ua(new Zn(new ArrayBuffer(1)))!=st||Jn&&Ua(new Jn)!=W||Qn&&"[object Promise]"!=Ua(Qn.resolve())||tr&&Ua(new tr)!=tt||er&&Ua(new er)!=it)&&(Ua=function(t){var e=Jr(t),n=e==Z?t.constructor:r,i=n?fo(n):"";if(i)switch(i){case ar:return st;case or:return W;case sr:return"[object Promise]";case ur:return tt;case cr:return it}return e});var Ka=ue?Es:Yu;function Xa(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||se)}function Za(t){return t==t&&!Ms(t)}function Ja(t,e){return function(n){return null!=n&&(n[t]===e&&(e!==r||t in ee(n)))}}function Qa(t,e,n){return e=Vn(e===r?t.length-1:e,0),function(){for(var r=arguments,i=-1,a=Vn(r.length-e,0),o=Xt(a);++i<a;)o[i]=r[e+i];i=-1;for(var s=Xt(e+1);++i<e;)s[i]=r[i];return s[e]=n(o),Ye(t,this,s)}}function to(t,e){return e.length<2?t:Xr(t,Ci(e,0,-1))}function eo(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var no=oo(Mi),ro=Pn||function(t,e){return Oe.setTimeout(t,e)},io=oo(Ti);function ao(t,e,n){var r=e+"";return io(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Bt,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Ve(F,(function(n){var r="_."+n[0];e&n[1]&&!Ke(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(Lt);return e?e[1].split(Pt):[]}(r),n)))}function oo(t){var e=0,n=0;return function(){var i=Gn(),a=T-(i-n);if(n=i,a>0){if(++e>=M)return arguments[0]}else e=0;return t.apply(r,arguments)}}function so(t,e){var n=-1,i=t.length,a=i-1;for(e=e===r?i:e;++n<e;){var o=wi(n,a),s=t[o];t[o]=t[n],t[n]=s}return t.length=e,t}var uo=function(t){var e=ss(t,(function(t){return n.size===u&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Dt,(function(t,n,r,i){e.push(r?i.replace(qt,"$1"):n||t)})),e}));function co(t){if("string"==typeof t||Bs(t))return t;var e=t+"";return"0"==e&&1/t==-O?"-0":e}function fo(t){if(null!=t){try{return ce.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function lo(t){if(t instanceof br)return t.clone();var e=new yr(t.__wrapped__,t.__chain__);return e.__actions__=na(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var ho=ki((function(t,e){return _s(t)?Fr(t,Hr(e,1,_s,!0)):[]})),po=ki((function(t,e){var n=ko(e);return _s(n)&&(n=r),_s(t)?Fr(t,Hr(e,1,_s,!0),Ba(n,2)):[]})),go=ki((function(t,e){var n=ko(e);return _s(n)&&(n=r),_s(t)?Fr(t,Hr(e,1,_s,!0),r,n):[]}));function yo(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Us(n);return i<0&&(i=Vn(r+i,0)),an(t,Ba(e,3),i)}function bo(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=i-1;return n!==r&&(a=Us(n),a=n<0?Vn(i+a,0):$n(a,i-1)),an(t,Ba(e,3),a,!0)}function mo(t){return(null==t?0:t.length)?Hr(t,1):[]}function vo(t){return t&&t.length?t[0]:r}var _o=ki((function(t){var e=Ze(t,Hi);return e.length&&e[0]===t[0]?ni(e):[]})),wo=ki((function(t){var e=ko(t),n=Ze(t,Hi);return e===ko(n)?e=r:n.pop(),n.length&&n[0]===t[0]?ni(n,Ba(e,2)):[]})),xo=ki((function(t){var e=ko(t),n=Ze(t,Hi);return(e="function"==typeof e?e:r)&&n.pop(),n.length&&n[0]===t[0]?ni(n,r,e):[]}));function ko(t){var e=null==t?0:t.length;return e?t[e-1]:r}var Eo=ki(Ao);function Ao(t,e){return t&&t.length&&e&&e.length?vi(t,e):t}var So=Da((function(t,e){var n=null==t?0:t.length,r=Nr(t,e);return _i(t,Ze(e,(function(t){return Va(t,n)?+t:t})).sort(Qi)),r}));function Mo(t){return null==t?t:Xn.call(t)}var To=ki((function(t){return Pi(Hr(t,1,_s,!0))})),Do=ki((function(t){var e=ko(t);return _s(e)&&(e=r),Pi(Hr(t,1,_s,!0),Ba(e,2))})),Co=ki((function(t){var e=ko(t);return e="function"==typeof e?e:r,Pi(Hr(t,1,_s,!0),r,e)}));function Oo(t){if(!t||!t.length)return[];var e=0;return t=We(t,(function(t){if(_s(t))return e=Vn(t.length,e),!0})),pn(e,(function(e){return Ze(t,fn(e))}))}function Ro(t,e){if(!t||!t.length)return[];var n=Oo(t);return null==e?n:Ze(n,(function(t){return Ye(e,r,t)}))}var No=ki((function(t,e){return _s(t)?Fr(t,e):[]})),Io=ki((function(t){return zi(We(t,_s))})),Bo=ki((function(t){var e=ko(t);return _s(e)&&(e=r),zi(We(t,_s),Ba(e,2))})),Lo=ki((function(t){var e=ko(t);return e="function"==typeof e?e:r,zi(We(t,_s),r,e)})),Po=ki(Oo);var Fo=ki((function(t){var e=t.length,n=e>1?t[e-1]:r;return n="function"==typeof n?(t.pop(),n):r,Ro(t,n)}));function qo(t){var e=dr(t);return e.__chain__=!0,e}function jo(t,e){return e(t)}var Uo=Da((function(t){var e=t.length,n=e?t[0]:0,i=this.__wrapped__,a=function(e){return Nr(e,t)};return!(e>1||this.__actions__.length)&&i instanceof br&&Va(n)?((i=i.slice(n,+n+(e?1:0))).__actions__.push({func:jo,args:[a],thisArg:r}),new yr(i,this.__chain__).thru((function(t){return e&&!t.length&&t.push(r),t}))):this.thru(a)}));var zo=ia((function(t,e,n){fe.call(t,n)?++t[n]:Rr(t,n,1)}));var Yo=la(yo),Ho=la(bo);function Vo(t,e){return(bs(t)?Ve:qr)(t,Ba(e,3))}function $o(t,e){return(bs(t)?$e:jr)(t,Ba(e,3))}var Go=ia((function(t,e,n){fe.call(t,n)?t[n].push(e):Rr(t,n,[e])}));var Wo=ki((function(t,e,n){var r=-1,i="function"==typeof e,a=vs(t)?Xt(t.length):[];return qr(t,(function(t){a[++r]=i?Ye(e,t,n):ri(t,e,n)})),a})),Ko=ia((function(t,e,n){Rr(t,n,e)}));function Xo(t,e){return(bs(t)?Ze:hi)(t,Ba(e,3))}var Zo=ia((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));var Jo=ki((function(t,e){if(null==t)return[];var n=e.length;return n>1&&$a(t,e[0],e[1])?e=[]:n>2&&$a(e[0],e[1],e[2])&&(e=[e[0]]),bi(t,Hr(e,1),[])})),Qo=Ln||function(){return Oe.Date.now()};function ts(t,e,n){return e=n?r:e,e=t&&null==e?t.length:e,Ea(t,x,r,r,r,r,e)}function es(t,e){var n;if("function"!=typeof e)throw new ie(o);return t=Us(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=r),n}}var ns=ki((function(t,e,n){var r=g;if(n.length){var i=Sn(n,Ia(ns));r|=_}return Ea(t,r,e,n,i)})),rs=ki((function(t,e,n){var r=g|y;if(n.length){var i=Sn(n,Ia(rs));r|=_}return Ea(e,r,t,n,i)}));function is(t,e,n){var i,a,s,u,c,f,l=0,h=!1,d=!1,p=!0;if("function"!=typeof t)throw new ie(o);function g(e){var n=i,o=a;return i=a=r,l=e,u=t.apply(o,n)}function y(t){var n=t-f;return f===r||n>=e||n<0||d&&t-l>=s}function b(){var t=Qo();if(y(t))return m(t);c=ro(b,function(t){var n=e-(t-f);return d?$n(n,s-(t-l)):n}(t))}function m(t){return c=r,p&&i?g(t):(i=a=r,u)}function v(){var t=Qo(),n=y(t);if(i=arguments,a=this,f=t,n){if(c===r)return function(t){return l=t,c=ro(b,e),h?g(t):u}(f);if(d)return Ki(c),c=ro(b,e),g(f)}return c===r&&(c=ro(b,e)),u}return e=Ys(e)||0,Ms(n)&&(h=!!n.leading,s=(d="maxWait"in n)?Vn(Ys(n.maxWait)||0,e):s,p="trailing"in n?!!n.trailing:p),v.cancel=function(){c!==r&&Ki(c),l=0,i=f=a=c=r},v.flush=function(){return c===r?u:m(Qo())},v}var as=ki((function(t,e){return Pr(t,1,e)})),os=ki((function(t,e,n){return Pr(t,Ys(e)||0,n)}));function ss(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ie(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(ss.Cache||_r),n}function us(t){if("function"!=typeof t)throw new ie(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}ss.Cache=_r;var cs=Gi((function(t,e){var n=(e=1==e.length&&bs(e[0])?Ze(e[0],gn(Ba())):Ze(Hr(e,1),gn(Ba()))).length;return ki((function(r){for(var i=-1,a=$n(r.length,n);++i<a;)r[i]=e[i].call(this,r[i]);return Ye(t,this,r)}))})),fs=ki((function(t,e){var n=Sn(e,Ia(fs));return Ea(t,_,r,e,n)})),ls=ki((function(t,e){var n=Sn(e,Ia(ls));return Ea(t,w,r,e,n)})),hs=Da((function(t,e){return Ea(t,k,r,r,r,e)}));function ds(t,e){return t===e||t!=t&&e!=e}var ps=va(Qr),gs=va((function(t,e){return t>=e})),ys=ii(function(){return arguments}())?ii:function(t){return Ts(t)&&fe.call(t,"callee")&&!Be.call(t,"callee")},bs=Xt.isArray,ms=Pe?gn(Pe):function(t){return Ts(t)&&Jr(t)==ot};function vs(t){return null!=t&&Ss(t.length)&&!Es(t)}function _s(t){return Ts(t)&&vs(t)}var ws=Un||Yu,xs=Fe?gn(Fe):function(t){return Ts(t)&&Jr(t)==Y};function ks(t){if(!Ts(t))return!1;var e=Jr(t);return e==V||e==H||"string"==typeof t.message&&"string"==typeof t.name&&!Os(t)}function Es(t){if(!Ms(t))return!1;var e=Jr(t);return e==$||e==G||e==U||e==J}function As(t){return"number"==typeof t&&t==Us(t)}function Ss(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=R}function Ms(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Ts(t){return null!=t&&"object"==typeof t}var Ds=qe?gn(qe):function(t){return Ts(t)&&Ua(t)==W};function Cs(t){return"number"==typeof t||Ts(t)&&Jr(t)==K}function Os(t){if(!Ts(t)||Jr(t)!=Z)return!1;var e=Re(t);if(null===e)return!0;var n=fe.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&ce.call(n)==pe}var Rs=je?gn(je):function(t){return Ts(t)&&Jr(t)==Q};var Ns=Ue?gn(Ue):function(t){return Ts(t)&&Ua(t)==tt};function Is(t){return"string"==typeof t||!bs(t)&&Ts(t)&&Jr(t)==et}function Bs(t){return"symbol"==typeof t||Ts(t)&&Jr(t)==nt}var Ls=ze?gn(ze):function(t){return Ts(t)&&Ss(t.length)&&!!Ee[Jr(t)]};var Ps=va(li),Fs=va((function(t,e){return t<=e}));function qs(t){if(!t)return[];if(vs(t))return Is(t)?Cn(t):na(t);if(ln&&t[ln])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[ln]());var e=Ua(t);return(e==W?En:e==tt?Mn:du)(t)}function js(t){return t?(t=Ys(t))===O||t===-O?(t<0?-1:1)*N:t==t?t:0:0===t?t:0}function Us(t){var e=js(t),n=e%1;return e==e?n?e-n:e:0}function zs(t){return t?Ir(Us(t),0,B):0}function Ys(t){if("number"==typeof t)return t;if(Bs(t))return I;if(Ms(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Ms(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Rt,"");var n=Yt.test(t);return n||Vt.test(t)?Te(t.slice(2),n?2:8):zt.test(t)?I:+t}function Hs(t){return ra(t,au(t))}function Vs(t){return null==t?"":Li(t)}var $s=aa((function(t,e){if(Xa(e)||vs(e))ra(e,iu(e),t);else for(var n in e)fe.call(e,n)&&Tr(t,n,e[n])})),Gs=aa((function(t,e){ra(e,au(e),t)})),Ws=aa((function(t,e,n,r){ra(e,au(e),t,r)})),Ks=aa((function(t,e,n,r){ra(e,iu(e),t,r)})),Xs=Da(Nr);var Zs=ki((function(t,e){t=ee(t);var n=-1,i=e.length,a=i>2?e[2]:r;for(a&&$a(e[0],e[1],a)&&(i=1);++n<i;)for(var o=e[n],s=au(o),u=-1,c=s.length;++u<c;){var f=s[u],l=t[f];(l===r||ds(l,se[f])&&!fe.call(t,f))&&(t[f]=o[f])}return t})),Js=ki((function(t){return t.push(r,Sa),Ye(su,r,t)}));function Qs(t,e,n){var i=null==t?r:Xr(t,e);return i===r?n:i}function tu(t,e){return null!=t&&za(t,e,ei)}var eu=pa((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=de.call(e)),t[e]=n}),Mu(Cu)),nu=pa((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=de.call(e)),fe.call(t,e)?t[e].push(n):t[e]=[n]}),Ba),ru=ki(ri);function iu(t){return vs(t)?kr(t):ci(t)}function au(t){return vs(t)?kr(t,!0):fi(t)}var ou=aa((function(t,e,n){gi(t,e,n)})),su=aa((function(t,e,n,r){gi(t,e,n,r)})),uu=Da((function(t,e){var n={};if(null==t)return n;var r=!1;e=Ze(e,(function(e){return e=$i(e,t),r||(r=e.length>1),e})),ra(t,Oa(t),n),r&&(n=Br(n,f|l|h,Ma));for(var i=e.length;i--;)Fi(n,e[i]);return n}));var cu=Da((function(t,e){return null==t?{}:function(t,e){return mi(t,e,(function(e,n){return tu(t,n)}))}(t,e)}));function fu(t,e){if(null==t)return{};var n=Ze(Oa(t),(function(t){return[t]}));return e=Ba(e),mi(t,n,(function(t,n){return e(t,n[0])}))}var lu=ka(iu),hu=ka(au);function du(t){return null==t?[]:yn(t,iu(t))}var pu=ca((function(t,e,n){return e=e.toLowerCase(),t+(n?gu(e):e)}));function gu(t){return ku(Vs(t).toLowerCase())}function yu(t){return(t=Vs(t))&&t.replace(Gt,_n).replace(be,"")}var bu=ca((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),mu=ca((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),vu=ua("toLowerCase");var _u=ca((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}));var wu=ca((function(t,e,n){return t+(n?" ":"")+ku(e)}));var xu=ca((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),ku=ua("toUpperCase");function Eu(t,e,n){return t=Vs(t),(e=n?r:e)===r?function(t){return we.test(t)}(t)?function(t){return t.match(ve)||[]}(t):function(t){return t.match(Ft)||[]}(t):t.match(e)||[]}var Au=ki((function(t,e){try{return Ye(t,r,e)}catch(t){return ks(t)?t:new Jt(t)}})),Su=Da((function(t,e){return Ve(e,(function(e){e=co(e),Rr(t,e,ns(t[e],t))})),t}));function Mu(t){return function(){return t}}var Tu=ha(),Du=ha(!0);function Cu(t){return t}function Ou(t){return ui("function"==typeof t?t:Br(t,f))}var Ru=ki((function(t,e){return function(n){return ri(n,t,e)}})),Nu=ki((function(t,e){return function(n){return ri(t,n,e)}}));function Iu(t,e,n){var r=iu(e),i=Kr(e,r);null!=n||Ms(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Kr(e,iu(e)));var a=!(Ms(n)&&"chain"in n&&!n.chain),o=Es(t);return Ve(i,(function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(a||e){var n=t(this.__wrapped__),i=n.__actions__=na(this.__actions__);return i.push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Je([this.value()],arguments))})})),t}function Bu(){}var Lu=ya(Ze),Pu=ya(Ge),Fu=ya(en);function qu(t){return Ga(t)?fn(co(t)):function(t){return function(e){return Xr(e,t)}}(t)}var ju=ma(),Uu=ma(!0);function zu(){return[]}function Yu(){return!1}var Hu=ga((function(t,e){return t+e}),0),Vu=wa("ceil"),$u=ga((function(t,e){return t/e}),1),Gu=wa("floor");var Wu,Ku=ga((function(t,e){return t*e}),1),Xu=wa("round"),Zu=ga((function(t,e){return t-e}),0);return dr.after=function(t,e){if("function"!=typeof e)throw new ie(o);return t=Us(t),function(){if(--t<1)return e.apply(this,arguments)}},dr.ary=ts,dr.assign=$s,dr.assignIn=Gs,dr.assignInWith=Ws,dr.assignWith=Ks,dr.at=Xs,dr.before=es,dr.bind=ns,dr.bindAll=Su,dr.bindKey=rs,dr.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return bs(t)?t:[t]},dr.chain=qo,dr.chunk=function(t,e,n){e=(n?$a(t,e,n):e===r)?1:Vn(Us(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var a=0,o=0,s=Xt(Fn(i/e));a<i;)s[o++]=Ci(t,a,a+=e);return s},dr.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var a=t[e];a&&(i[r++]=a)}return i},dr.concat=function(){var t=arguments.length;if(!t)return[];for(var e=Xt(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return Je(bs(n)?na(n):[n],Hr(e,1))},dr.cond=function(t){var e=null==t?0:t.length,n=Ba();return t=e?Ze(t,(function(t){if("function"!=typeof t[1])throw new ie(o);return[n(t[0]),t[1]]})):[],ki((function(n){for(var r=-1;++r<e;){var i=t[r];if(Ye(i[0],this,n))return Ye(i[1],this,n)}}))},dr.conforms=function(t){return function(t){var e=iu(t);return function(n){return Lr(n,t,e)}}(Br(t,f))},dr.constant=Mu,dr.countBy=zo,dr.create=function(t,e){var n=pr(t);return null==e?n:Or(n,e)},dr.curry=function t(e,n,i){var a=Ea(e,m,r,r,r,r,r,n=i?r:n);return a.placeholder=t.placeholder,a},dr.curryRight=function t(e,n,i){var a=Ea(e,v,r,r,r,r,r,n=i?r:n);return a.placeholder=t.placeholder,a},dr.debounce=is,dr.defaults=Zs,dr.defaultsDeep=Js,dr.defer=as,dr.delay=os,dr.difference=ho,dr.differenceBy=po,dr.differenceWith=go,dr.drop=function(t,e,n){var i=null==t?0:t.length;return i?Ci(t,(e=n||e===r?1:Us(e))<0?0:e,i):[]},dr.dropRight=function(t,e,n){var i=null==t?0:t.length;return i?Ci(t,0,(e=i-(e=n||e===r?1:Us(e)))<0?0:e):[]},dr.dropRightWhile=function(t,e){return t&&t.length?ji(t,Ba(e,3),!0,!0):[]},dr.dropWhile=function(t,e){return t&&t.length?ji(t,Ba(e,3),!0):[]},dr.fill=function(t,e,n,i){var a=null==t?0:t.length;return a?(n&&"number"!=typeof n&&$a(t,e,n)&&(n=0,i=a),function(t,e,n,i){var a=t.length;for((n=Us(n))<0&&(n=-n>a?0:a+n),(i=i===r||i>a?a:Us(i))<0&&(i+=a),i=n>i?0:zs(i);n<i;)t[n++]=e;return t}(t,e,n,i)):[]},dr.filter=function(t,e){return(bs(t)?We:Yr)(t,Ba(e,3))},dr.flatMap=function(t,e){return Hr(Xo(t,e),1)},dr.flatMapDeep=function(t,e){return Hr(Xo(t,e),O)},dr.flatMapDepth=function(t,e,n){return n=n===r?1:Us(n),Hr(Xo(t,e),n)},dr.flatten=mo,dr.flattenDeep=function(t){return(null==t?0:t.length)?Hr(t,O):[]},dr.flattenDepth=function(t,e){return(null==t?0:t.length)?Hr(t,e=e===r?1:Us(e)):[]},dr.flip=function(t){return Ea(t,E)},dr.flow=Tu,dr.flowRight=Du,dr.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},dr.functions=function(t){return null==t?[]:Kr(t,iu(t))},dr.functionsIn=function(t){return null==t?[]:Kr(t,au(t))},dr.groupBy=Go,dr.initial=function(t){return(null==t?0:t.length)?Ci(t,0,-1):[]},dr.intersection=_o,dr.intersectionBy=wo,dr.intersectionWith=xo,dr.invert=eu,dr.invertBy=nu,dr.invokeMap=Wo,dr.iteratee=Ou,dr.keyBy=Ko,dr.keys=iu,dr.keysIn=au,dr.map=Xo,dr.mapKeys=function(t,e){var n={};return e=Ba(e,3),Gr(t,(function(t,r,i){Rr(n,e(t,r,i),t)})),n},dr.mapValues=function(t,e){var n={};return e=Ba(e,3),Gr(t,(function(t,r,i){Rr(n,r,e(t,r,i))})),n},dr.matches=function(t){return di(Br(t,f))},dr.matchesProperty=function(t,e){return pi(t,Br(e,f))},dr.memoize=ss,dr.merge=ou,dr.mergeWith=su,dr.method=Ru,dr.methodOf=Nu,dr.mixin=Iu,dr.negate=us,dr.nthArg=function(t){return t=Us(t),ki((function(e){return yi(e,t)}))},dr.omit=uu,dr.omitBy=function(t,e){return fu(t,us(Ba(e)))},dr.once=function(t){return es(2,t)},dr.orderBy=function(t,e,n,i){return null==t?[]:(bs(e)||(e=null==e?[]:[e]),bs(n=i?r:n)||(n=null==n?[]:[n]),bi(t,e,n))},dr.over=Lu,dr.overArgs=cs,dr.overEvery=Pu,dr.overSome=Fu,dr.partial=fs,dr.partialRight=ls,dr.partition=Zo,dr.pick=cu,dr.pickBy=fu,dr.property=qu,dr.propertyOf=function(t){return function(e){return null==t?r:Xr(t,e)}},dr.pull=Eo,dr.pullAll=Ao,dr.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?vi(t,e,Ba(n,2)):t},dr.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?vi(t,e,r,n):t},dr.pullAt=So,dr.range=ju,dr.rangeRight=Uu,dr.rearg=hs,dr.reject=function(t,e){return(bs(t)?We:Yr)(t,us(Ba(e,3)))},dr.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],a=t.length;for(e=Ba(e,3);++r<a;){var o=t[r];e(o,r,t)&&(n.push(o),i.push(r))}return _i(t,i),n},dr.rest=function(t,e){if("function"!=typeof t)throw new ie(o);return ki(t,e=e===r?e:Us(e))},dr.reverse=Mo,dr.sampleSize=function(t,e,n){return e=(n?$a(t,e,n):e===r)?1:Us(e),(bs(t)?Ar:Ai)(t,e)},dr.set=function(t,e,n){return null==t?t:Si(t,e,n)},dr.setWith=function(t,e,n,i){return i="function"==typeof i?i:r,null==t?t:Si(t,e,n,i)},dr.shuffle=function(t){return(bs(t)?Sr:Di)(t)},dr.slice=function(t,e,n){var i=null==t?0:t.length;return i?(n&&"number"!=typeof n&&$a(t,e,n)?(e=0,n=i):(e=null==e?0:Us(e),n=n===r?i:Us(n)),Ci(t,e,n)):[]},dr.sortBy=Jo,dr.sortedUniq=function(t){return t&&t.length?Ii(t):[]},dr.sortedUniqBy=function(t,e){return t&&t.length?Ii(t,Ba(e,2)):[]},dr.split=function(t,e,n){return n&&"number"!=typeof n&&$a(t,e,n)&&(e=n=r),(n=n===r?B:n>>>0)?(t=Vs(t))&&("string"==typeof e||null!=e&&!Rs(e))&&!(e=Li(e))&&kn(t)?Wi(Cn(t),0,n):t.split(e,n):[]},dr.spread=function(t,e){if("function"!=typeof t)throw new ie(o);return e=null==e?0:Vn(Us(e),0),ki((function(n){var r=n[e],i=Wi(n,0,e);return r&&Je(i,r),Ye(t,this,i)}))},dr.tail=function(t){var e=null==t?0:t.length;return e?Ci(t,1,e):[]},dr.take=function(t,e,n){return t&&t.length?Ci(t,0,(e=n||e===r?1:Us(e))<0?0:e):[]},dr.takeRight=function(t,e,n){var i=null==t?0:t.length;return i?Ci(t,(e=i-(e=n||e===r?1:Us(e)))<0?0:e,i):[]},dr.takeRightWhile=function(t,e){return t&&t.length?ji(t,Ba(e,3),!1,!0):[]},dr.takeWhile=function(t,e){return t&&t.length?ji(t,Ba(e,3)):[]},dr.tap=function(t,e){return e(t),t},dr.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new ie(o);return Ms(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),is(t,e,{leading:r,maxWait:e,trailing:i})},dr.thru=jo,dr.toArray=qs,dr.toPairs=lu,dr.toPairsIn=hu,dr.toPath=function(t){return bs(t)?Ze(t,co):Bs(t)?[t]:na(uo(Vs(t)))},dr.toPlainObject=Hs,dr.transform=function(t,e,n){var r=bs(t),i=r||ws(t)||Ls(t);if(e=Ba(e,4),null==n){var a=t&&t.constructor;n=i?r?new a:[]:Ms(t)&&Es(a)?pr(Re(t)):{}}return(i?Ve:Gr)(t,(function(t,r,i){return e(n,t,r,i)})),n},dr.unary=function(t){return ts(t,1)},dr.union=To,dr.unionBy=Do,dr.unionWith=Co,dr.uniq=function(t){return t&&t.length?Pi(t):[]},dr.uniqBy=function(t,e){return t&&t.length?Pi(t,Ba(e,2)):[]},dr.uniqWith=function(t,e){return e="function"==typeof e?e:r,t&&t.length?Pi(t,r,e):[]},dr.unset=function(t,e){return null==t||Fi(t,e)},dr.unzip=Oo,dr.unzipWith=Ro,dr.update=function(t,e,n){return null==t?t:qi(t,e,Vi(n))},dr.updateWith=function(t,e,n,i){return i="function"==typeof i?i:r,null==t?t:qi(t,e,Vi(n),i)},dr.values=du,dr.valuesIn=function(t){return null==t?[]:yn(t,au(t))},dr.without=No,dr.words=Eu,dr.wrap=function(t,e){return fs(Vi(e),t)},dr.xor=Io,dr.xorBy=Bo,dr.xorWith=Lo,dr.zip=Po,dr.zipObject=function(t,e){return Yi(t||[],e||[],Tr)},dr.zipObjectDeep=function(t,e){return Yi(t||[],e||[],Si)},dr.zipWith=Fo,dr.entries=lu,dr.entriesIn=hu,dr.extend=Gs,dr.extendWith=Ws,Iu(dr,dr),dr.add=Hu,dr.attempt=Au,dr.camelCase=pu,dr.capitalize=gu,dr.ceil=Vu,dr.clamp=function(t,e,n){return n===r&&(n=e,e=r),n!==r&&(n=(n=Ys(n))==n?n:0),e!==r&&(e=(e=Ys(e))==e?e:0),Ir(Ys(t),e,n)},dr.clone=function(t){return Br(t,h)},dr.cloneDeep=function(t){return Br(t,f|h)},dr.cloneDeepWith=function(t,e){return Br(t,f|h,e="function"==typeof e?e:r)},dr.cloneWith=function(t,e){return Br(t,h,e="function"==typeof e?e:r)},dr.conformsTo=function(t,e){return null==e||Lr(t,e,iu(e))},dr.deburr=yu,dr.defaultTo=function(t,e){return null==t||t!=t?e:t},dr.divide=$u,dr.endsWith=function(t,e,n){t=Vs(t),e=Li(e);var i=t.length,a=n=n===r?i:Ir(Us(n),0,i);return(n-=e.length)>=0&&t.slice(n,a)==e},dr.eq=ds,dr.escape=function(t){return(t=Vs(t))&&kt.test(t)?t.replace(wt,wn):t},dr.escapeRegExp=function(t){return(t=Vs(t))&&Ot.test(t)?t.replace(Ct,"\\$&"):t},dr.every=function(t,e,n){var i=bs(t)?Ge:Ur;return n&&$a(t,e,n)&&(e=r),i(t,Ba(e,3))},dr.find=Yo,dr.findIndex=yo,dr.findKey=function(t,e){return rn(t,Ba(e,3),Gr)},dr.findLast=Ho,dr.findLastIndex=bo,dr.findLastKey=function(t,e){return rn(t,Ba(e,3),Wr)},dr.floor=Gu,dr.forEach=Vo,dr.forEachRight=$o,dr.forIn=function(t,e){return null==t?t:Vr(t,Ba(e,3),au)},dr.forInRight=function(t,e){return null==t?t:$r(t,Ba(e,3),au)},dr.forOwn=function(t,e){return t&&Gr(t,Ba(e,3))},dr.forOwnRight=function(t,e){return t&&Wr(t,Ba(e,3))},dr.get=Qs,dr.gt=ps,dr.gte=gs,dr.has=function(t,e){return null!=t&&za(t,e,ti)},dr.hasIn=tu,dr.head=vo,dr.identity=Cu,dr.includes=function(t,e,n,r){t=vs(t)?t:du(t),n=n&&!r?Us(n):0;var i=t.length;return n<0&&(n=Vn(i+n,0)),Is(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&on(t,e,n)>-1},dr.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:Us(n);return i<0&&(i=Vn(r+i,0)),on(t,e,i)},dr.inRange=function(t,e,n){return e=js(e),n===r?(n=e,e=0):n=js(n),function(t,e,n){return t>=$n(e,n)&&t<Vn(e,n)}(t=Ys(t),e,n)},dr.invoke=ru,dr.isArguments=ys,dr.isArray=bs,dr.isArrayBuffer=ms,dr.isArrayLike=vs,dr.isArrayLikeObject=_s,dr.isBoolean=function(t){return!0===t||!1===t||Ts(t)&&Jr(t)==z},dr.isBuffer=ws,dr.isDate=xs,dr.isElement=function(t){return Ts(t)&&1===t.nodeType&&!Os(t)},dr.isEmpty=function(t){if(null==t)return!0;if(vs(t)&&(bs(t)||"string"==typeof t||"function"==typeof t.splice||ws(t)||Ls(t)||ys(t)))return!t.length;var e=Ua(t);if(e==W||e==tt)return!t.size;if(Xa(t))return!ci(t).length;for(var n in t)if(fe.call(t,n))return!1;return!0},dr.isEqual=function(t,e){return ai(t,e)},dr.isEqualWith=function(t,e,n){var i=(n="function"==typeof n?n:r)?n(t,e):r;return i===r?ai(t,e,r,n):!!i},dr.isError=ks,dr.isFinite=function(t){return"number"==typeof t&&zn(t)},dr.isFunction=Es,dr.isInteger=As,dr.isLength=Ss,dr.isMap=Ds,dr.isMatch=function(t,e){return t===e||oi(t,e,Pa(e))},dr.isMatchWith=function(t,e,n){return n="function"==typeof n?n:r,oi(t,e,Pa(e),n)},dr.isNaN=function(t){return Cs(t)&&t!=+t},dr.isNative=function(t){if(Ka(t))throw new Jt(a);return si(t)},dr.isNil=function(t){return null==t},dr.isNull=function(t){return null===t},dr.isNumber=Cs,dr.isObject=Ms,dr.isObjectLike=Ts,dr.isPlainObject=Os,dr.isRegExp=Rs,dr.isSafeInteger=function(t){return As(t)&&t>=-R&&t<=R},dr.isSet=Ns,dr.isString=Is,dr.isSymbol=Bs,dr.isTypedArray=Ls,dr.isUndefined=function(t){return t===r},dr.isWeakMap=function(t){return Ts(t)&&Ua(t)==it},dr.isWeakSet=function(t){return Ts(t)&&Jr(t)==at},dr.join=function(t,e){return null==t?"":Yn.call(t,e)},dr.kebabCase=bu,dr.last=ko,dr.lastIndexOf=function(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=i;return n!==r&&(a=(a=Us(n))<0?Vn(i+a,0):$n(a,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,a):an(t,un,a,!0)},dr.lowerCase=mu,dr.lowerFirst=vu,dr.lt=Ps,dr.lte=Fs,dr.max=function(t){return t&&t.length?zr(t,Cu,Qr):r},dr.maxBy=function(t,e){return t&&t.length?zr(t,Ba(e,2),Qr):r},dr.mean=function(t){return cn(t,Cu)},dr.meanBy=function(t,e){return cn(t,Ba(e,2))},dr.min=function(t){return t&&t.length?zr(t,Cu,li):r},dr.minBy=function(t,e){return t&&t.length?zr(t,Ba(e,2),li):r},dr.stubArray=zu,dr.stubFalse=Yu,dr.stubObject=function(){return{}},dr.stubString=function(){return""},dr.stubTrue=function(){return!0},dr.multiply=Ku,dr.nth=function(t,e){return t&&t.length?yi(t,Us(e)):r},dr.noConflict=function(){return Oe._===this&&(Oe._=ge),this},dr.noop=Bu,dr.now=Qo,dr.pad=function(t,e,n){t=Vs(t);var r=(e=Us(e))?Dn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return ba(qn(i),n)+t+ba(Fn(i),n)},dr.padEnd=function(t,e,n){t=Vs(t);var r=(e=Us(e))?Dn(t):0;return e&&r<e?t+ba(e-r,n):t},dr.padStart=function(t,e,n){t=Vs(t);var r=(e=Us(e))?Dn(t):0;return e&&r<e?ba(e-r,n)+t:t},dr.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),Wn(Vs(t).replace(Nt,""),e||0)},dr.random=function(t,e,n){if(n&&"boolean"!=typeof n&&$a(t,e,n)&&(e=n=r),n===r&&("boolean"==typeof e?(n=e,e=r):"boolean"==typeof t&&(n=t,t=r)),t===r&&e===r?(t=0,e=1):(t=js(t),e===r?(e=t,t=0):e=js(e)),t>e){var i=t;t=e,e=i}if(n||t%1||e%1){var a=Kn();return $n(t+a*(e-t+Me("1e-"+((a+"").length-1))),e)}return wi(t,e)},dr.reduce=function(t,e,n){var r=bs(t)?Qe:hn,i=arguments.length<3;return r(t,Ba(e,4),n,i,qr)},dr.reduceRight=function(t,e,n){var r=bs(t)?tn:hn,i=arguments.length<3;return r(t,Ba(e,4),n,i,jr)},dr.repeat=function(t,e,n){return e=(n?$a(t,e,n):e===r)?1:Us(e),xi(Vs(t),e)},dr.replace=function(){var t=arguments,e=Vs(t[0]);return t.length<3?e:e.replace(t[1],t[2])},dr.result=function(t,e,n){var i=-1,a=(e=$i(e,t)).length;for(a||(a=1,t=r);++i<a;){var o=null==t?r:t[co(e[i])];o===r&&(i=a,o=n),t=Es(o)?o.call(t):o}return t},dr.round=Xu,dr.runInContext=t,dr.sample=function(t){return(bs(t)?Er:Ei)(t)},dr.size=function(t){if(null==t)return 0;if(vs(t))return Is(t)?Dn(t):t.length;var e=Ua(t);return e==W||e==tt?t.size:ci(t).length},dr.snakeCase=_u,dr.some=function(t,e,n){var i=bs(t)?en:Oi;return n&&$a(t,e,n)&&(e=r),i(t,Ba(e,3))},dr.sortedIndex=function(t,e){return Ri(t,e)},dr.sortedIndexBy=function(t,e,n){return Ni(t,e,Ba(n,2))},dr.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=Ri(t,e);if(r<n&&ds(t[r],e))return r}return-1},dr.sortedLastIndex=function(t,e){return Ri(t,e,!0)},dr.sortedLastIndexBy=function(t,e,n){return Ni(t,e,Ba(n,2),!0)},dr.sortedLastIndexOf=function(t,e){if(null==t?0:t.length){var n=Ri(t,e,!0)-1;if(ds(t[n],e))return n}return-1},dr.startCase=wu,dr.startsWith=function(t,e,n){return t=Vs(t),n=null==n?0:Ir(Us(n),0,t.length),e=Li(e),t.slice(n,n+e.length)==e},dr.subtract=Zu,dr.sum=function(t){return t&&t.length?dn(t,Cu):0},dr.sumBy=function(t,e){return t&&t.length?dn(t,Ba(e,2)):0},dr.template=function(t,e,n){var i=dr.templateSettings;n&&$a(t,e,n)&&(e=r),t=Vs(t),e=Ws({},e,i,Aa);var a,o,s=Ws({},e.imports,i.imports,Aa),u=iu(s),c=yn(s,u),f=0,l=e.interpolate||Wt,h="__p += '",d=ne((e.escape||Wt).source+"|"+l.source+"|"+(l===St?jt:Wt).source+"|"+(e.evaluate||Wt).source+"|$","g"),p="//# sourceURL="+(fe.call(e,"sourceURL")?(e.sourceURL+"").replace(/[\r\n]/g," "):"lodash.templateSources["+ ++ke+"]")+"\n";t.replace(d,(function(e,n,r,i,s,u){return r||(r=i),h+=t.slice(f,u).replace(Kt,xn),n&&(a=!0,h+="' +\n__e("+n+") +\n'"),s&&(o=!0,h+="';\n"+s+";\n__p += '"),r&&(h+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),f=u+e.length,e})),h+="';\n";var g=fe.call(e,"variable")&&e.variable;g||(h="with (obj) {\n"+h+"\n}\n"),h=(o?h.replace(bt,""):h).replace(mt,"$1").replace(vt,"$1;"),h="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(a?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var y=Au((function(){return Qt(u,p+"return "+h).apply(r,c)}));if(y.source=h,ks(y))throw y;return y},dr.times=function(t,e){if((t=Us(t))<1||t>R)return[];var n=B,r=$n(t,B);e=Ba(e),t-=B;for(var i=pn(r,e);++n<t;)e(n);return i},dr.toFinite=js,dr.toInteger=Us,dr.toLength=zs,dr.toLower=function(t){return Vs(t).toLowerCase()},dr.toNumber=Ys,dr.toSafeInteger=function(t){return t?Ir(Us(t),-R,R):0===t?t:0},dr.toString=Vs,dr.toUpper=function(t){return Vs(t).toUpperCase()},dr.trim=function(t,e,n){if((t=Vs(t))&&(n||e===r))return t.replace(Rt,"");if(!t||!(e=Li(e)))return t;var i=Cn(t),a=Cn(e);return Wi(i,mn(i,a),vn(i,a)+1).join("")},dr.trimEnd=function(t,e,n){if((t=Vs(t))&&(n||e===r))return t.replace(It,"");if(!t||!(e=Li(e)))return t;var i=Cn(t);return Wi(i,0,vn(i,Cn(e))+1).join("")},dr.trimStart=function(t,e,n){if((t=Vs(t))&&(n||e===r))return t.replace(Nt,"");if(!t||!(e=Li(e)))return t;var i=Cn(t);return Wi(i,mn(i,Cn(e))).join("")},dr.truncate=function(t,e){var n=A,i=S;if(Ms(e)){var a="separator"in e?e.separator:a;n="length"in e?Us(e.length):n,i="omission"in e?Li(e.omission):i}var o=(t=Vs(t)).length;if(kn(t)){var s=Cn(t);o=s.length}if(n>=o)return t;var u=n-Dn(i);if(u<1)return i;var c=s?Wi(s,0,u).join(""):t.slice(0,u);if(a===r)return c+i;if(s&&(u+=c.length-u),Rs(a)){if(t.slice(u).search(a)){var f,l=c;for(a.global||(a=ne(a.source,Vs(Ut.exec(a))+"g")),a.lastIndex=0;f=a.exec(l);)var h=f.index;c=c.slice(0,h===r?u:h)}}else if(t.indexOf(Li(a),u)!=u){var d=c.lastIndexOf(a);d>-1&&(c=c.slice(0,d))}return c+i},dr.unescape=function(t){return(t=Vs(t))&&xt.test(t)?t.replace(_t,On):t},dr.uniqueId=function(t){var e=++le;return Vs(t)+e},dr.upperCase=xu,dr.upperFirst=ku,dr.each=Vo,dr.eachRight=$o,dr.first=vo,Iu(dr,(Wu={},Gr(dr,(function(t,e){fe.call(dr.prototype,e)||(Wu[e]=t)})),Wu),{chain:!1}),dr.VERSION="4.17.15",Ve(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){dr[t].placeholder=dr})),Ve(["drop","take"],(function(t,e){br.prototype[t]=function(n){n=n===r?1:Vn(Us(n),0);var i=this.__filtered__&&!e?new br(this):this.clone();return i.__filtered__?i.__takeCount__=$n(n,i.__takeCount__):i.__views__.push({size:$n(n,B),type:t+(i.__dir__<0?"Right":"")}),i},br.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Ve(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=n==D||3==n;br.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Ba(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),Ve(["head","last"],(function(t,e){var n="take"+(e?"Right":"");br.prototype[t]=function(){return this[n](1).value()[0]}})),Ve(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");br.prototype[t]=function(){return this.__filtered__?new br(this):this[n](1)}})),br.prototype.compact=function(){return this.filter(Cu)},br.prototype.find=function(t){return this.filter(t).head()},br.prototype.findLast=function(t){return this.reverse().find(t)},br.prototype.invokeMap=ki((function(t,e){return"function"==typeof t?new br(this):this.map((function(n){return ri(n,t,e)}))})),br.prototype.reject=function(t){return this.filter(us(Ba(t)))},br.prototype.slice=function(t,e){t=Us(t);var n=this;return n.__filtered__&&(t>0||e<0)?new br(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==r&&(n=(e=Us(e))<0?n.dropRight(-e):n.take(e-t)),n)},br.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},br.prototype.toArray=function(){return this.take(B)},Gr(br.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),a=dr[i?"take"+("last"==e?"Right":""):e],o=i||/^find/.test(e);a&&(dr.prototype[e]=function(){var e=this.__wrapped__,s=i?[1]:arguments,u=e instanceof br,c=s[0],f=u||bs(e),l=function(t){var e=a.apply(dr,Je([t],s));return i&&h?e[0]:e};f&&n&&"function"==typeof c&&1!=c.length&&(u=f=!1);var h=this.__chain__,d=!!this.__actions__.length,p=o&&!h,g=u&&!d;if(!o&&f){e=g?e:new br(this);var y=t.apply(e,s);return y.__actions__.push({func:jo,args:[l],thisArg:r}),new yr(y,h)}return p&&g?t.apply(this,s):(y=this.thru(l),p?i?y.value()[0]:y.value():y)})})),Ve(["pop","push","shift","sort","splice","unshift"],(function(t){var e=ae[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);dr.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(bs(i)?i:[],t)}return this[n]((function(n){return e.apply(bs(n)?n:[],t)}))}})),Gr(br.prototype,(function(t,e){var n=dr[e];if(n){var r=n.name+"";fe.call(ir,r)||(ir[r]=[]),ir[r].push({name:e,func:n})}})),ir[da(r,y).name]=[{name:"wrapper",func:r}],br.prototype.clone=function(){var t=new br(this.__wrapped__);return t.__actions__=na(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=na(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=na(this.__views__),t},br.prototype.reverse=function(){if(this.__filtered__){var t=new br(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},br.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=bs(t),r=e<0,i=n?t.length:0,a=function(t,e,n){var r=-1,i=n.length;for(;++r<i;){var a=n[r],o=a.size;switch(a.type){case"drop":t+=o;break;case"dropRight":e-=o;break;case"take":e=$n(e,t+o);break;case"takeRight":t=Vn(t,e-o)}}return{start:t,end:e}}(0,i,this.__views__),o=a.start,s=a.end,u=s-o,c=r?s:o-1,f=this.__iteratees__,l=f.length,h=0,d=$n(u,this.__takeCount__);if(!n||!r&&i==u&&d==u)return Ui(t,this.__actions__);var p=[];t:for(;u--&&h<d;){for(var g=-1,y=t[c+=e];++g<l;){var b=f[g],m=b.iteratee,v=b.type,_=m(y);if(v==C)y=_;else if(!_){if(v==D)continue t;break t}}p[h++]=y}return p},dr.prototype.at=Uo,dr.prototype.chain=function(){return qo(this)},dr.prototype.commit=function(){return new yr(this.value(),this.__chain__)},dr.prototype.next=function(){this.__values__===r&&(this.__values__=qs(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?r:this.__values__[this.__index__++]}},dr.prototype.plant=function(t){for(var e,n=this;n instanceof gr;){var i=lo(n);i.__index__=0,i.__values__=r,e?a.__wrapped__=i:e=i;var a=i;n=n.__wrapped__}return a.__wrapped__=t,e},dr.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof br){var e=t;return this.__actions__.length&&(e=new br(this)),(e=e.reverse()).__actions__.push({func:jo,args:[Mo],thisArg:r}),new yr(e,this.__chain__)}return this.thru(Mo)},dr.prototype.toJSON=dr.prototype.valueOf=dr.prototype.value=function(){return Ui(this.__wrapped__,this.__actions__)},dr.prototype.first=dr.prototype.head,ln&&(dr.prototype[ln]=function(){return this}),dr}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Oe._=Rn,define((function(){return Rn}))):Ne?((Ne.exports=Rn)._=Rn,Re._=Rn):Oe._=Rn}).call(this)}).call(this,n(13),n(7)(t))},function(t,e,n){t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n.w={},n(n.s=25)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(2))&&r.__esModule?r:{default:r},a=/:/g;function o(t){return t?String(t).replace(a,"\\:"):""}e.default={isSubgraph:function(t,e){return!!t.children(e).length},edgeToId:function(t){return o(t.v)+":"+o(t.w)+":"+o(t.name)},applyStyle:function(t,e){e&&t.attr("style",e)},applyClass:function(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))},applyTransition:function(t,e){var n=e.graph();if(i.default.isPlainObject(n)){var r=n.transition;if(i.default.isFunction(r))return r(t)}return t}}},function(t,e){t.exports=n(0)},function(t,e){t.exports=n(11)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=o(n(16)),i=o(n(15)),a=o(n(14));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e,n){var o=e.label,s=t.append("g");"svg"===e.labelType?(0,a.default)(s,e):"string"!=typeof o||"html"===e.labelType?(0,i.default)(s,e):(0,r.default)(s,e);var u=s.node().getBBox(),c=void 0;switch(n){case"top":c=-e.height/2;break;case"bottom":c=e.height/2-u.height;break;default:c=-u.height/2}return s.attr("transform","translate("+-u.width/2+","+c+")"),s}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n,r){var i=t.x,a=t.y,o=i-r.x,s=a-r.y,u=Math.sqrt(e*e*s*s+n*n*o*o),c=Math.abs(e*n*o/u);r.x<i&&(c=-c);var f=Math.abs(e*n*s/u);return r.y<a&&(f=-f),{x:i+c,y:a+f}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var n=t.x,r=t.y,i=e.x-n,a=e.y-r,o=t.width/2,s=t.height/2,u=void 0,c=void 0;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),u=0===a?0:s*i/a,c=s):(i<0&&(o=-o),u=o,c=0===i?0:o*a/i),{x:n+u,y:r+c}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(23))&&r.__esModule?r:{default:r};e.default=function(t,e,n){var r=t.x,a=t.y,o=[],s=Number.POSITIVE_INFINITY,u=Number.POSITIVE_INFINITY;e.forEach((function(t){s=Math.min(s,t.x),u=Math.min(u,t.y)}));for(var c=r-t.width/2-s,f=a-t.height/2-u,l=0;l<e.length;l+=1){var h=e[l],d=e[l<e.length-1?l+1:0],p=(0,i.default)(t,n,{x:c+h.x,y:f+h.y},{x:c+d.x,y:f+d.y});p&&o.push(p)}return o.length?(o.length>1&&o.sort((function(t,e){var r=t.x-n.x,i=t.y-n.y,a=Math.sqrt(r*r+i*i),o=e.x-n.x,s=e.y-n.y,u=Math.sqrt(o*o+s*s);return a<u?-1:a===u?0:1})),o[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",t),t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(4))&&r.__esModule?r:{default:r};e.default=function(t,e,n){return(0,i.default)(t,e,e,n)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){return t.intersect(e)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};function a(t,e,n,r){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");i.default.applyStyle(a,n[r+"Style"]),n[r+"Class"]&&a.attr("class",n[r+"Class"])}e.default={normal:a,vee:function(t,e,n,r){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");i.default.applyStyle(a,n[r+"Style"]),n[r+"Class"]&&a.attr("class",n[r+"Class"])},undirected:function(t,e,n,r){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");i.default.applyStyle(a,n[r+"Style"]),n[r+"Class"]&&a.attr("class",n[r+"Class"])},default:a}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(5)),i=s(n(4)),a=s(n(7)),o=s(n(6));function s(t){return t&&t.__esModule?t:{default:t}}e.default={rect:function(t,e,n){var i=t.insert("rect",":first-child").attr("rx",n.rx).attr("ry",n.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return n.intersect=function(t){return(0,r.default)(n,t)},i},ellipse:function(t,e,n){var r=e.width/2,a=e.height/2,o=t.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",r).attr("ry",a);return n.intersect=function(t){return(0,i.default)(n,r,a,t)},o},circle:function(t,e,n){var r=Math.max(e.width,e.height)/2,i=t.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",r);return n.intersect=function(t){return(0,a.default)(n,r,t)},i},diamond:function(t,e,n){var r=e.width*Math.SQRT2/2,i=e.height*Math.SQRT2/2,a=[{x:0,y:-i},{x:-r,y:0},{x:0,y:i},{x:r,y:0}],s=t.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" "));return n.intersect=function(t){return(0,o.default)(n,a,t)},s}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),i=s(n(2)),a=s(n(8)),o=s(n(0));function s(t){return t&&t.__esModule?t:{default:t}}function u(t,e){var n=r.line().x((function(t){return t.x})).y((function(t){return t.y}));return n.curve(t.curve),n(e)}e.default=function(t,e,n){var s=t.selectAll("g.edgePath").data(e.edges(),(function(t){return o.default.edgeToId(t)})).classed("update",!0);return function(t,e){var n=t.enter().append("g").attr("class","edgePath").style("opacity",0);n.append("path").attr("class","path").attr("d",(function(t){var n=e.edge(t),r=e.node(t.v).elem,a=i.default.range(n.points.length).map((function(){return e=(t=r).getBBox(),{x:(n=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2)).e,y:n.f};var t,e,n}));return u(n,a)})),n.append("defs")}(s,e),function(t,e){var n=t.exit();o.default.applyTransition(n,e).style("opacity",0).remove(),o.default.applyTransition(n.select("path.path"),e).attr("d",(function(t){var n=e.node(t.v);return n?u({},i.default.range(this.getTotalLength()).map((function(){return n}))):r.select(this).attr("d")}))}(s,e),s=t.selectAll("g.edgePath"),o.default.applyTransition(s,e).style("opacity",1),s.each((function(t){var n=r.select(this),i=e.edge(t);i.elem=this,i.id&&n.attr("id",i.id),o.default.applyClass(n,i.class,(n.classed("update")?"update ":"")+"edgePath")})),s.selectAll("path.path").each((function(t){var n=e.edge(t);n.arrowheadId=i.default.uniqueId("arrowhead");var s=r.select(this).attr("marker-end",(function(){return"url(#"+n.arrowheadId+")"})).style("fill","none");o.default.applyTransition(s,e).attr("d",(function(t){return function(t,e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),o=n.points.slice(1,n.points.length-1);return o.unshift((0,a.default)(r,o[0])),o.push((0,a.default)(i,o[o.length-1])),u(n,o)}(e,t)})),o.default.applyStyle(s,n.style)})),s.selectAll("defs *").remove(),s.selectAll("defs").each((function(t){var i=e.edge(t);(0,n[i.arrowhead])(r.select(this),i.arrowheadId,i,"arrowhead")})),s}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),i=s(n(2)),a=s(n(3)),o=s(n(0));function s(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){var n=t.selectAll("g.edgeLabel").data(e.edges(),(function(t){return o.default.edgeToId(t)})).classed("update",!0);return n.selectAll("*").remove(),n.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(n=t.selectAll("g.edgeLabel")).each((function(t){var n=e.edge(t),o=(0,a.default)(r.select(this),e.edge(t),0,0).classed("label",!0),s=o.node().getBBox();n.labelId&&o.attr("id",n.labelId),i.default.has(n,"width")||(n.width=s.width),i.default.has(n,"height")||(n.height=s.height)})),o.default.applyTransition(n.exit(),e).style("opacity",0).remove(),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),i=o(n(0)),a=o(n(3));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){var n=e.nodes().filter((function(t){return i.default.isSubgraph(e,t)})),o=t.selectAll("g.cluster").data(n,(function(t){return t}));return o.selectAll("*").remove(),o.enter().append("g").attr("class","cluster").attr("id",(function(t){return e.node(t).id})).style("opacity",0),o=t.selectAll("g.cluster"),i.default.applyTransition(o,e).style("opacity",1),o.each((function(t){var n=e.node(t),i=r.select(this);r.select(this).append("rect");var o=i.append("g").attr("class","label");(0,a.default)(o,n,n.clusterLabelPos)})),o.selectAll("rect").each((function(t){var n=e.node(t),a=r.select(this);i.default.applyStyle(a,n.style)})),i.default.applyTransition(o.exit(),e).style("opacity",0).remove(),o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){var n=t;return n.node().appendChild(e.label),i.default.applyStyle(n,e.labelStyle),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){var n=t.append("foreignObject").attr("width","100000"),r=n.append("xhtml:div");r.attr("xmlns","http://www.w3.org/1999/xhtml");var o=e.label;switch(void 0===o?"undefined":i(o)){case"function":r.insert(o);break;case"object":r.insert((function(){return o}));break;default:r.html(o)}a.default.applyStyle(r,e.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap");var s=r.node().getBoundingClientRect();return n.attr("width",s.width).attr("height",s.height),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){for(var n=t.append("text"),r=function(t){for(var e="",n=!1,r=null,i=0;i<t.length;i+=1)if(r=t[i],n){switch(r){case"n":e+="\n";break;default:e+=r}n=!1}else"\\"===r?n=!0:e+=r;return e}(e.label).split("\n"),a=0;a<r.length;a+=1)n.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(r[a]);return i.default.applyStyle(n,e.labelStyle),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(2)),i=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),a=s(n(3)),o=s(n(0));function s(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e,n){var s=e.nodes().filter((function(t){return!o.default.isSubgraph(e,t)})),u=t.selectAll("g.node").data(s,(function(t){return t})).classed("update",!0);return u.selectAll("*").remove(),u.enter().append("g").attr("class","node").style("opacity",0),(u=t.selectAll("g.node")).each((function(t){var s=e.node(t),u=i.select(this);o.default.applyClass(u,s.class,(u.classed("update")?"update ":"")+"node");var c=u.append("g").attr("class","label"),f=(0,a.default)(c,s),l=n[s.shape],h=r.default.pick(f.node().getBBox(),"width","height");s.elem=this,s.id&&u.attr("id",s.id),s.labelId&&c.attr("id",s.labelId),r.default.has(s,"width")&&(h.width=s.width),r.default.has(s,"height")&&(h.height=s.height),h.width+=s.paddingLeft+s.paddingRight,h.height+=s.paddingTop+s.paddingBottom,c.attr("transform","translate("+(s.paddingLeft-s.paddingRight)/2+","+(s.paddingTop-s.paddingBottom)/2+")");var d=l(i.select(this),h,s);o.default.applyStyle(d,s.style);var p=d.node().getBBox();s.width=p.width,s.height=p.height})),o.default.applyTransition(u.exit(),e).style("opacity",0).remove(),u}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),a=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){var n=t.filter((function(){return!i.select(this).classed("update")}));function r(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}n.attr("transform",r),a.default.applyTransition(t,e).style("opacity",1).attr("transform",r),a.default.applyTransition(n.selectAll("rect"),e).attr("width",(function(t){return e.node(t).width})).attr("height",(function(t){return e.node(t).height})).attr("x",(function(t){return-e.node(t).width/2})).attr("y",(function(t){return-e.node(t).height/2}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),i=o(n(2)),a=o(n(0));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){function n(t){var n=e.edge(t);return i.default.has(n,"x")?"translate("+n.x+","+n.y+")":""}t.filter((function(){return!r.select(this).classed("update")})).attr("transform",n),a.default.applyTransition(t,e).style("opacity",1).attr("transform",n)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),a=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){function n(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}t.filter((function(){return!i.select(this).classed("update")})).attr("transform",n),a.default.applyTransition(t,e).style("opacity",1).attr("transform",n)}},function(t,e){t.exports=n(32)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=g(n(2)),i=g(n(21)),a=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(1)),o=g(n(20)),s=g(n(19)),u=g(n(18)),c=g(n(17)),f=g(n(13)),l=g(n(12)),h=g(n(11)),d=g(n(10)),p=g(n(9));function g(t){return t&&t.__esModule?t:{default:t}}var y={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},b={arrowhead:"normal",curve:a.curveLinear};function m(t,e){var n=t.select("g."+e);return n.empty()&&(n=t.append("g").attr("class",e)),n}e.default=function(){var t=c.default,e=f.default,n=l.default,a=h.default,g=d.default,v=p.default,_=function(c,f){!function(t){t.nodes().forEach((function(e){var n=t.node(e);r.default.has(n,"label")||t.children(e).length||(n.label=e),r.default.has(n,"paddingX")&&r.default.defaults(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),r.default.has(n,"paddingY")&&r.default.defaults(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),r.default.has(n,"padding")&&r.default.defaults(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),r.default.defaults(n,y),r.default.each(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(t){n[t]=Number(n[t])})),r.default.has(n,"width")&&(n._prevWidth=n.width),r.default.has(n,"height")&&(n._prevHeight=n.height)})),t.edges().forEach((function(e){var n=t.edge(e);r.default.has(n,"label")||(n.label=""),r.default.defaults(n,b)}))}(f),c.selectAll("*").remove();var l=m(c,"output"),h=m(l,"clusters"),d=m(l,"edgePaths"),p=n(m(l,"edgeLabels"),f),_=t(m(l,"nodes"),f,g);i.default.layout(f);var w=1e3,x=1e3,k=-1e3,E=-1e3,A=f;A.nodes().map((function(t){return A.node(t)})).forEach((function(t){w=Math.min(w,t.x-t.width/2),x=Math.min(x,t.y-t.height/2),k=Math.max(k,t.x+t.width/2),E=Math.max(E,t.y+t.height/2)})),A.edges().forEach((function(t){var e=A.edge(t);void 0!==e.label&&void 0!==e.x&&void 0!==e.y&&(w=Math.min(w,e.x-e.width/2),x=Math.min(x,e.y-e.height/2),k=Math.max(k,e.x+e.width/2),E=Math.max(E,e.y+e.height/2));for(var n=e.points.slice(1,e.points.length-1),r=0;r<n.length;r++){var i=n[r];w=Math.min(w,i.x),x=Math.min(x,i.y),k=Math.max(k,i.x),E=Math.max(E,i.y)}})),A.minX=w,A.minY=x,A.maxX=k,A.maxY=E,(0,o.default)(_,f),(0,s.default)(p,f),a(d,f,v);var S=e(h,f);(0,u.default)(S,f),function(t){r.default.each(t.nodes(),(function(e){var n=t.node(e);r.default.has(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,r.default.has(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}(f)};return _.createNodes=function(e){return arguments.length?(t=e,_):t},_.createClusters=function(t){return arguments.length?(e=t,_):e},_.createEdgeLabels=function(t){return arguments.length?(n=t,_):n},_.createEdgePaths=function(t){return arguments.length?(a=t,_):a},_.shapes=function(t){return arguments.length?(g=t,_):g},_.arrows=function(t){return arguments.length?(v=t,_):v},_}},function(t,e,n){"use strict";function r(t,e){return t*e>0}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n,i){var a=e.y-t.y,o=t.x-e.x,s=e.x*t.y-t.x*e.y,u=a*n.x+o*n.y+s,c=a*i.x+o*i.y+s;if(0===u||0===c||!r(u,c)){var f=i.y-n.y,l=n.x-i.x,h=i.x*n.y-n.x*i.y,d=f*t.x+l*t.y+h,p=f*e.x+l*e.y+h;if(0===d||0===p||!r(d,p)){var g=a*l-f*o;if(0!==g){var y=Math.abs(g/2),b=o*h-l*s;return{x:b<0?(b-y)/g:(b+y)/g,y:(b=f*s-a*h)<0?(b-y)/g:(b+y)/g}}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(n(8)),i=u(n(7)),a=u(n(4)),o=u(n(6)),s=u(n(5));function u(t){return t&&t.__esModule?t:{default:t}}e.default={node:r.default,circle:i.default,ellipse:a.default,polygon:o.default,rect:s.default}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=o(n(24)),i=o(n(22)),a=o(n(0));function o(t){return t&&t.__esModule?t:{default:t}}e.default={intersect:r.default,render:i.default,util:a.default}}])},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";var r=n(9),i=n(2);function a(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function o(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function s(t){return 1===t.length?"0"+t:t}function u(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=i,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)n.push(parseInt(t[i]+t[i+1],16))}else for(var r=0,i=0;i<t.length;i++){var o=t.charCodeAt(i);o<128?n[r++]=o:o<2048?(n[r++]=o>>6|192,n[r++]=63&o|128):a(t,i)?(o=65536+((1023&o)<<10)+(1023&t.charCodeAt(++i)),n[r++]=o>>18|240,n[r++]=o>>12&63|128,n[r++]=o>>6&63|128,n[r++]=63&o|128):(n[r++]=o>>12|224,n[r++]=o>>6&63|128,n[r++]=63&o|128)}else for(i=0;i<t.length;i++)n[i]=0|t[i];return n},e.toHex=function(t){for(var e="",n=0;n<t.length;n++)e+=s(t[n].toString(16));return e},e.htonl=o,e.toHex32=function(t,e){for(var n="",r=0;r<t.length;r++){var i=t[r];"little"===e&&(i=o(i)),n+=u(i.toString(16))}return n},e.zero2=s,e.zero8=u,e.join32=function(t,e,n,i){var a=n-e;r(a%4==0);for(var o=new Array(a/4),s=0,u=e;s<o.length;s++,u+=4){var c;c="big"===i?t[u]<<24|t[u+1]<<16|t[u+2]<<8|t[u+3]:t[u+3]<<24|t[u+2]<<16|t[u+1]<<8|t[u],o[s]=c>>>0}return o},e.split32=function(t,e){for(var n=new Array(4*t.length),r=0,i=0;r<t.length;r++,i+=4){var a=t[r];"big"===e?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<<e|t>>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,n){return t+e+n>>>0},e.sum32_4=function(t,e,n,r){return t+e+n+r>>>0},e.sum32_5=function(t,e,n,r,i){return t+e+n+r+i>>>0},e.sum64=function(t,e,n,r){var i=t[e],a=r+t[e+1]>>>0,o=(a<r?1:0)+n+i;t[e]=o>>>0,t[e+1]=a},e.sum64_hi=function(t,e,n,r){return(e+r>>>0<e?1:0)+t+n>>>0},e.sum64_lo=function(t,e,n,r){return e+r>>>0},e.sum64_4_hi=function(t,e,n,r,i,a,o,s){var u=0,c=e;return u+=(c=c+r>>>0)<e?1:0,u+=(c=c+a>>>0)<a?1:0,t+n+i+o+(u+=(c=c+s>>>0)<s?1:0)>>>0},e.sum64_4_lo=function(t,e,n,r,i,a,o,s){return e+r+a+s>>>0},e.sum64_5_hi=function(t,e,n,r,i,a,o,s,u,c){var f=0,l=e;return f+=(l=l+r>>>0)<e?1:0,f+=(l=l+a>>>0)<a?1:0,f+=(l=l+s>>>0)<s?1:0,t+n+i+o+u+(f+=(l=l+c>>>0)<c?1:0)>>>0},e.sum64_5_lo=function(t,e,n,r,i,a,o,s,u,c){return e+r+a+s+c>>>0},e.rotr64_hi=function(t,e,n){return(e<<32-n|t>>>n)>>>0},e.rotr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0},e.shr64_hi=function(t,e,n){return t>>>n},e.shr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0}},function(t,e,n){(function(t){t.exports=function(){"use strict";var e,r;function i(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){return void 0===t}function u(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function c(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function f(t,e){var n,r=[];for(n=0;n<t.length;++n)r.push(e(t[n],n));return r}function l(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function h(t,e){for(var n in e)l(e,n)&&(t[n]=e[n]);return l(e,"toString")&&(t.toString=e.toString),l(e,"valueOf")&&(t.valueOf=e.valueOf),t}function d(t,e,n,r){return Me(t,e,n,r,!0).utc()}function p(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function g(t){if(null==t._isValid){var e=p(t),n=r.call(e.parsedDateParts,(function(t){return null!=t})),i=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(i=i&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return i;t._isValid=i}return t._isValid}function y(t){var e=d(NaN);return null!=t?h(p(e),t):p(e).userInvalidated=!0,e}r=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,r=0;r<n;r++)if(r in e&&t.call(this,e[r],r,e))return!0;return!1};var b=i.momentProperties=[];function m(t,e){var n,r,i;if(s(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),s(e._i)||(t._i=e._i),s(e._f)||(t._f=e._f),s(e._l)||(t._l=e._l),s(e._strict)||(t._strict=e._strict),s(e._tzm)||(t._tzm=e._tzm),s(e._isUTC)||(t._isUTC=e._isUTC),s(e._offset)||(t._offset=e._offset),s(e._pf)||(t._pf=p(e)),s(e._locale)||(t._locale=e._locale),0<b.length)for(n=0;n<b.length;n++)s(i=e[r=b[n]])||(t[r]=i);return t}var v=!1;function _(t){m(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,i.updateOffset(this),v=!1)}function w(t){return t instanceof _||null!=t&&null!=t._isAMomentObject}function x(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function k(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=x(e)),n}function E(t,e,n){var r,i=Math.min(t.length,e.length),a=Math.abs(t.length-e.length),o=0;for(r=0;r<i;r++)(n&&t[r]!==e[r]||!n&&k(t[r])!==k(e[r]))&&o++;return o+a}function A(t){!1===i.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function S(t,e){var n=!0;return h((function(){if(null!=i.deprecationHandler&&i.deprecationHandler(null,t),n){for(var r,a=[],o=0;o<arguments.length;o++){if(r="","object"==typeof arguments[o]){for(var s in r+="\n["+o+"] ",arguments[0])r+=s+": "+arguments[0][s]+", ";r=r.slice(0,-2)}else r=arguments[o];a.push(r)}A(t+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),n=!1}return e.apply(this,arguments)}),e)}var M,T={};function D(t,e){null!=i.deprecationHandler&&i.deprecationHandler(t,e),T[t]||(A(e),T[t]=!0)}function C(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function O(t,e){var n,r=h({},t);for(n in e)l(e,n)&&(o(t[n])&&o(e[n])?(r[n]={},h(r[n],t[n]),h(r[n],e[n])):null!=e[n]?r[n]=e[n]:delete r[n]);for(n in t)l(t,n)&&!l(e,n)&&o(t[n])&&(r[n]=h({},r[n]));return r}function R(t){null!=t&&this.set(t)}i.suppressDeprecationWarnings=!1,i.deprecationHandler=null,M=Object.keys?Object.keys:function(t){var e,n=[];for(e in t)l(t,e)&&n.push(e);return n};var N={};function I(t,e){var n=t.toLowerCase();N[n]=N[n+"s"]=N[e]=t}function B(t){return"string"==typeof t?N[t]||N[t.toLowerCase()]:void 0}function L(t){var e,n,r={};for(n in t)l(t,n)&&(e=B(n))&&(r[e]=t[n]);return r}var P={};function F(t,e){P[t]=e}function q(t,e,n){var r=""+Math.abs(t),i=e-r.length;return(0<=t?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}var j=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,U=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,z={},Y={};function H(t,e,n,r){var i=r;"string"==typeof r&&(i=function(){return this[r]()}),t&&(Y[t]=i),e&&(Y[e[0]]=function(){return q(i.apply(this,arguments),e[1],e[2])}),n&&(Y[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function V(t,e){return t.isValid()?(e=$(e,t.localeData()),z[e]=z[e]||function(t){var e,n,r,i=t.match(j);for(e=0,n=i.length;e<n;e++)Y[i[e]]?i[e]=Y[i[e]]:i[e]=(r=i[e]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");return function(e){var r,a="";for(r=0;r<n;r++)a+=C(i[r])?i[r].call(e,t):i[r];return a}}(e),z[e](t)):t.localeData().invalidDate()}function $(t,e){var n=5;function r(t){return e.longDateFormat(t)||t}for(U.lastIndex=0;0<=n&&U.test(t);)t=t.replace(U,r),U.lastIndex=0,n-=1;return t}var G=/\d/,W=/\d\d/,K=/\d{3}/,X=/\d{4}/,Z=/[+-]?\d{6}/,J=/\d\d?/,Q=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,rt=/[+-]?\d{1,6}/,it=/\d+/,at=/[+-]?\d+/,ot=/Z|[+-]\d\d:?\d\d/gi,st=/Z|[+-]\d\d(?::?\d\d)?/gi,ut=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct={};function ft(t,e,n){ct[t]=C(e)?e:function(t,r){return t&&n?n:e}}function lt(t,e){return l(ct,t)?ct[t](e._strict,e._locale):new RegExp(ht(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,n,r,i){return e||n||r||i}))))}function ht(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var dt={};function pt(t,e){var n,r=e;for("string"==typeof t&&(t=[t]),u(e)&&(r=function(t,n){n[e]=k(t)}),n=0;n<t.length;n++)dt[t[n]]=r}function gt(t,e){pt(t,(function(t,n,r,i){r._w=r._w||{},e(t,r._w,r,i)}))}var yt=0,bt=1,mt=2,vt=3,_t=4,wt=5,xt=6,kt=7,Et=8;function At(t){return St(t)?366:365}function St(t){return t%4==0&&t%100!=0||t%400==0}H("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),H(0,["YY",2],0,(function(){return this.year()%100})),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),I("year","y"),F("year",1),ft("Y",at),ft("YY",J,W),ft("YYYY",nt,X),ft("YYYYY",rt,Z),ft("YYYYYY",rt,Z),pt(["YYYYY","YYYYYY"],yt),pt("YYYY",(function(t,e){e[yt]=2===t.length?i.parseTwoDigitYear(t):k(t)})),pt("YY",(function(t,e){e[yt]=i.parseTwoDigitYear(t)})),pt("Y",(function(t,e){e[yt]=parseInt(t,10)})),i.parseTwoDigitYear=function(t){return k(t)+(68<k(t)?1900:2e3)};var Mt,Tt=Dt("FullYear",!0);function Dt(t,e){return function(n){return null!=n?(Ot(this,t,n),i.updateOffset(this,e),this):Ct(this,t)}}function Ct(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Ot(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&St(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),Rt(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function Rt(t,e){if(isNaN(t)||isNaN(e))return NaN;var n=(e%12+12)%12;return t+=(e-n)/12,1===n?St(t)?29:28:31-n%7%2}Mt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},H("M",["MM",2],"Mo",(function(){return this.month()+1})),H("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),H("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),I("month","M"),F("month",8),ft("M",J),ft("MM",J,W),ft("MMM",(function(t,e){return e.monthsShortRegex(t)})),ft("MMMM",(function(t,e){return e.monthsRegex(t)})),pt(["M","MM"],(function(t,e){e[bt]=k(t)-1})),pt(["MMM","MMMM"],(function(t,e,n,r){var i=n._locale.monthsParse(t,r,n._strict);null!=i?e[bt]=i:p(n).invalidMonth=t}));var Nt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,It="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Bt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Lt(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=k(e);else if(!u(e=t.localeData().monthsParse(e)))return t;return n=Math.min(t.date(),Rt(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function Pt(t){return null!=t?(Lt(this,t),i.updateOffset(this,!0),this):Ct(this,"Month")}var Ft=ut,qt=ut;function jt(){function t(t,e){return e.length-t.length}var e,n,r=[],i=[],a=[];for(e=0;e<12;e++)n=d([2e3,e]),r.push(this.monthsShort(n,"")),i.push(this.months(n,"")),a.push(this.months(n,"")),a.push(this.monthsShort(n,""));for(r.sort(t),i.sort(t),a.sort(t),e=0;e<12;e++)r[e]=ht(r[e]),i[e]=ht(i[e]);for(e=0;e<24;e++)a[e]=ht(a[e]);this._monthsRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ut(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&0<=t&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function zt(t,e,n){var r=7+e-n;return-(7+Ut(t,0,r).getUTCDay()-e)%7+r-1}function Yt(t,e,n,r,i){var a,o,s=1+7*(e-1)+(7+n-r)%7+zt(t,r,i);return s<=0?o=At(a=t-1)+s:s>At(t)?(a=t+1,o=s-At(t)):(a=t,o=s),{year:a,dayOfYear:o}}function Ht(t,e,n){var r,i,a=zt(t.year(),e,n),o=Math.floor((t.dayOfYear()-a-1)/7)+1;return o<1?r=o+Vt(i=t.year()-1,e,n):o>Vt(t.year(),e,n)?(r=o-Vt(t.year(),e,n),i=t.year()+1):(i=t.year(),r=o),{week:r,year:i}}function Vt(t,e,n){var r=zt(t,e,n),i=zt(t+1,e,n);return(At(t)-r+i)/7}H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),I("week","w"),I("isoWeek","W"),F("week",5),F("isoWeek",5),ft("w",J),ft("ww",J,W),ft("W",J),ft("WW",J,W),gt(["w","ww","W","WW"],(function(t,e,n,r){e[r.substr(0,1)]=k(t)})),H("d",0,"do","day"),H("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),H("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),H("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),I("day","d"),I("weekday","e"),I("isoWeekday","E"),F("day",11),F("weekday",11),F("isoWeekday",11),ft("d",J),ft("e",J),ft("E",J),ft("dd",(function(t,e){return e.weekdaysMinRegex(t)})),ft("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),ft("dddd",(function(t,e){return e.weekdaysRegex(t)})),gt(["dd","ddd","dddd"],(function(t,e,n,r){var i=n._locale.weekdaysParse(t,r,n._strict);null!=i?e.d=i:p(n).invalidWeekday=t})),gt(["d","e","E"],(function(t,e,n,r){e[r]=k(t)}));var $t="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Gt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Wt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Kt=ut,Xt=ut,Zt=ut;function Jt(){function t(t,e){return e.length-t.length}var e,n,r,i,a,o=[],s=[],u=[],c=[];for(e=0;e<7;e++)n=d([2e3,1]).day(e),r=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),a=this.weekdays(n,""),o.push(r),s.push(i),u.push(a),c.push(r),c.push(i),c.push(a);for(o.sort(t),s.sort(t),u.sort(t),c.sort(t),e=0;e<7;e++)s[e]=ht(s[e]),u[e]=ht(u[e]),c[e]=ht(c[e]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Qt(){return this.hours()%12||12}function te(t,e){H(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function ee(t,e){return e._meridiemParse}H("H",["HH",2],0,"hour"),H("h",["hh",2],0,Qt),H("k",["kk",2],0,(function(){return this.hours()||24})),H("hmm",0,0,(function(){return""+Qt.apply(this)+q(this.minutes(),2)})),H("hmmss",0,0,(function(){return""+Qt.apply(this)+q(this.minutes(),2)+q(this.seconds(),2)})),H("Hmm",0,0,(function(){return""+this.hours()+q(this.minutes(),2)})),H("Hmmss",0,0,(function(){return""+this.hours()+q(this.minutes(),2)+q(this.seconds(),2)})),te("a",!0),te("A",!1),I("hour","h"),F("hour",13),ft("a",ee),ft("A",ee),ft("H",J),ft("h",J),ft("k",J),ft("HH",J,W),ft("hh",J,W),ft("kk",J,W),ft("hmm",Q),ft("hmmss",tt),ft("Hmm",Q),ft("Hmmss",tt),pt(["H","HH"],vt),pt(["k","kk"],(function(t,e,n){var r=k(t);e[vt]=24===r?0:r})),pt(["a","A"],(function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t})),pt(["h","hh"],(function(t,e,n){e[vt]=k(t),p(n).bigHour=!0})),pt("hmm",(function(t,e,n){var r=t.length-2;e[vt]=k(t.substr(0,r)),e[_t]=k(t.substr(r)),p(n).bigHour=!0})),pt("hmmss",(function(t,e,n){var r=t.length-4,i=t.length-2;e[vt]=k(t.substr(0,r)),e[_t]=k(t.substr(r,2)),e[wt]=k(t.substr(i)),p(n).bigHour=!0})),pt("Hmm",(function(t,e,n){var r=t.length-2;e[vt]=k(t.substr(0,r)),e[_t]=k(t.substr(r))})),pt("Hmmss",(function(t,e,n){var r=t.length-4,i=t.length-2;e[vt]=k(t.substr(0,r)),e[_t]=k(t.substr(r,2)),e[wt]=k(t.substr(i))}));var ne,re=Dt("Hours",!0),ie={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:It,monthsShort:Bt,week:{dow:0,doy:6},weekdays:$t,weekdaysMin:Wt,weekdaysShort:Gt,meridiemParse:/[ap]\.?m?\.?/i},ae={},oe={};function se(t){return t?t.toLowerCase().replace("_","-"):t}function ue(e){var r=null;if(!ae[e]&&void 0!==t&&t&&t.exports)try{r=ne._abbr,n(111)("./"+e),ce(r)}catch(e){}return ae[e]}function ce(t,e){var n;return t&&((n=s(e)?le(t):fe(t,e))?ne=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),ne._abbr}function fe(t,e){if(null!==e){var n,r=ie;if(e.abbr=t,null!=ae[t])D("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=ae[t]._config;else if(null!=e.parentLocale)if(null!=ae[e.parentLocale])r=ae[e.parentLocale]._config;else{if(null==(n=ue(e.parentLocale)))return oe[e.parentLocale]||(oe[e.parentLocale]=[]),oe[e.parentLocale].push({name:t,config:e}),null;r=n._config}return ae[t]=new R(O(r,e)),oe[t]&&oe[t].forEach((function(t){fe(t.name,t.config)})),ce(t),ae[t]}return delete ae[t],null}function le(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return ne;if(!a(t)){if(e=ue(t))return e;t=[t]}return function(t){for(var e,n,r,i,a=0;a<t.length;){for(e=(i=se(t[a]).split("-")).length,n=(n=se(t[a+1]))?n.split("-"):null;0<e;){if(r=ue(i.slice(0,e).join("-")))return r;if(n&&n.length>=e&&E(i,n,!0)>=e-1)break;e--}a++}return ne}(t)}function he(t){var e,n=t._a;return n&&-2===p(t).overflow&&(e=n[bt]<0||11<n[bt]?bt:n[mt]<1||n[mt]>Rt(n[yt],n[bt])?mt:n[vt]<0||24<n[vt]||24===n[vt]&&(0!==n[_t]||0!==n[wt]||0!==n[xt])?vt:n[_t]<0||59<n[_t]?_t:n[wt]<0||59<n[wt]?wt:n[xt]<0||999<n[xt]?xt:-1,p(t)._overflowDayOfYear&&(e<yt||mt<e)&&(e=mt),p(t)._overflowWeeks&&-1===e&&(e=kt),p(t)._overflowWeekday&&-1===e&&(e=Et),p(t).overflow=e),t}function de(t,e,n){return null!=t?t:null!=e?e:n}function pe(t){var e,n,r,a,o,s=[];if(!t._d){var u,c;for(u=t,c=new Date(i.now()),r=u._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()],t._w&&null==t._a[mt]&&null==t._a[bt]&&function(t){var e,n,r,i,a,o,s,u;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)a=1,o=4,n=de(e.GG,t._a[yt],Ht(Te(),1,4).year),r=de(e.W,1),((i=de(e.E,1))<1||7<i)&&(u=!0);else{a=t._locale._week.dow,o=t._locale._week.doy;var c=Ht(Te(),a,o);n=de(e.gg,t._a[yt],c.year),r=de(e.w,c.week),null!=e.d?((i=e.d)<0||6<i)&&(u=!0):null!=e.e?(i=e.e+a,(e.e<0||6<e.e)&&(u=!0)):i=a}r<1||r>Vt(n,a,o)?p(t)._overflowWeeks=!0:null!=u?p(t)._overflowWeekday=!0:(s=Yt(n,r,i,a,o),t._a[yt]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(o=de(t._a[yt],r[yt]),(t._dayOfYear>At(o)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),n=Ut(o,0,t._dayOfYear),t._a[bt]=n.getUTCMonth(),t._a[mt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=r[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[vt]&&0===t._a[_t]&&0===t._a[wt]&&0===t._a[xt]&&(t._nextDay=!0,t._a[vt]=0),t._d=(t._useUTC?Ut:function(t,e,n,r,i,a,o){var s=new Date(t,e,n,r,i,a,o);return t<100&&0<=t&&isFinite(s.getFullYear())&&s.setFullYear(t),s}).apply(null,s),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[vt]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(p(t).weekdayMismatch=!0)}}var ge=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ye=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,be=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ve=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],_e=/^\/?Date\((\-?\d+)/i;function we(t){var e,n,r,i,a,o,s=t._i,u=ge.exec(s)||ye.exec(s);if(u){for(p(t).iso=!0,e=0,n=me.length;e<n;e++)if(me[e][1].exec(u[1])){i=me[e][0],r=!1!==me[e][2];break}if(null==i)return void(t._isValid=!1);if(u[3]){for(e=0,n=ve.length;e<n;e++)if(ve[e][1].exec(u[3])){a=(u[2]||" ")+ve[e][0];break}if(null==a)return void(t._isValid=!1)}if(!r&&null!=a)return void(t._isValid=!1);if(u[4]){if(!be.exec(u[4]))return void(t._isValid=!1);o="Z"}t._f=i+(a||"")+(o||""),Ae(t)}else t._isValid=!1}var xe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,ke={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ee(t){var e,n,r,i=xe.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim());if(i){var a=function(t,e,n,r,i,a){var o=[function(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}(t),Bt.indexOf(e),parseInt(n,10),parseInt(r,10),parseInt(i,10)];return a&&o.push(parseInt(a,10)),o}(i[4],i[3],i[2],i[5],i[6],i[7]);if(n=a,r=t,(e=i[1])&&Gt.indexOf(e)!==new Date(n[0],n[1],n[2]).getDay()&&(p(r).weekdayMismatch=!0,!(r._isValid=!1)))return;t._a=a,t._tzm=function(t,e,n){if(t)return ke[t];if(e)return 0;var r=parseInt(n,10),i=r%100;return(r-i)/100*60+i}(i[8],i[9],i[10]),t._d=Ut.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),p(t).rfc2822=!0}else t._isValid=!1}function Ae(t){if(t._f!==i.ISO_8601)if(t._f!==i.RFC_2822){t._a=[],p(t).empty=!0;var e,n,r,a,o,s,u,c,f=""+t._i,h=f.length,d=0;for(r=$(t._f,t._locale).match(j)||[],e=0;e<r.length;e++)a=r[e],(n=(f.match(lt(a,t))||[])[0])&&(0<(o=f.substr(0,f.indexOf(n))).length&&p(t).unusedInput.push(o),f=f.slice(f.indexOf(n)+n.length),d+=n.length),Y[a]?(n?p(t).empty=!1:p(t).unusedTokens.push(a),s=a,c=t,null!=(u=n)&&l(dt,s)&&dt[s](u,c._a,c,s)):t._strict&&!n&&p(t).unusedTokens.push(a);p(t).charsLeftOver=h-d,0<f.length&&p(t).unusedInput.push(f),t._a[vt]<=12&&!0===p(t).bigHour&&0<t._a[vt]&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[vt]=function(t,e,n){var r;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):(null!=t.isPM&&((r=t.isPM(n))&&e<12&&(e+=12),r||12!==e||(e=0)),e)}(t._locale,t._a[vt],t._meridiem),pe(t),he(t)}else Ee(t);else we(t)}function Se(t){var e,n,r,l,d=t._i,b=t._f;return t._locale=t._locale||le(t._l),null===d||void 0===b&&""===d?y({nullInput:!0}):("string"==typeof d&&(t._i=d=t._locale.preparse(d)),w(d)?new _(he(d)):(c(d)?t._d=d:a(b)?function(t){var e,n,r,i,a;if(0===t._f.length)return p(t).invalidFormat=!0,t._d=new Date(NaN);for(i=0;i<t._f.length;i++)a=0,e=m({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[i],Ae(e),g(e)&&(a+=p(e).charsLeftOver,a+=10*p(e).unusedTokens.length,p(e).score=a,(null==r||a<r)&&(r=a,n=e));h(t,n||e)}(t):b?Ae(t):s(n=(e=t)._i)?e._d=new Date(i.now()):c(n)?e._d=new Date(n.valueOf()):"string"==typeof n?(r=e,null===(l=_e.exec(r._i))?(we(r),!1===r._isValid&&(delete r._isValid,Ee(r),!1===r._isValid&&(delete r._isValid,i.createFromInputFallback(r)))):r._d=new Date(+l[1])):a(n)?(e._a=f(n.slice(0),(function(t){return parseInt(t,10)})),pe(e)):o(n)?function(t){if(!t._d){var e=L(t._i);t._a=f([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),pe(t)}}(e):u(n)?e._d=new Date(n):i.createFromInputFallback(e),g(t)||(t._d=null),t))}function Me(t,e,n,r,i){var s,u={};return!0!==n&&!1!==n||(r=n,n=void 0),(o(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||a(t)&&0===t.length)&&(t=void 0),u._isAMomentObject=!0,u._useUTC=u._isUTC=i,u._l=n,u._i=t,u._f=e,u._strict=r,(s=new _(he(Se(u))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function Te(t,e,n,r){return Me(t,e,n,r,!1)}i.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),i.ISO_8601=function(){},i.RFC_2822=function(){};var De=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Te.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:y()})),Ce=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Te.apply(null,arguments);return this.isValid()&&t.isValid()?this<t?this:t:y()}));function Oe(t,e){var n,r;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return Te();for(n=e[0],r=1;r<e.length;++r)e[r].isValid()&&!e[r][t](n)||(n=e[r]);return n}var Re=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ne(t){var e=L(t),n=e.year||0,r=e.quarter||0,i=e.month||0,a=e.week||0,o=e.day||0,s=e.hour||0,u=e.minute||0,c=e.second||0,f=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===Mt.call(Re,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var n=!1,r=0;r<Re.length;++r)if(t[Re[r]]){if(n)return!1;parseFloat(t[Re[r]])!==k(t[Re[r]])&&(n=!0)}return!0}(e),this._milliseconds=+f+1e3*c+6e4*u+1e3*s*60*60,this._days=+o+7*a,this._months=+i+3*r+12*n,this._data={},this._locale=le(),this._bubble()}function Ie(t){return t instanceof Ne}function Be(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Le(t,e){H(t,0,0,(function(){var t=this.utcOffset(),n="+";return t<0&&(t=-t,n="-"),n+q(~~(t/60),2)+e+q(~~t%60,2)}))}Le("Z",":"),Le("ZZ",""),ft("Z",st),ft("ZZ",st),pt(["Z","ZZ"],(function(t,e,n){n._useUTC=!0,n._tzm=Fe(st,t)}));var Pe=/([\+\-]|\d\d)/gi;function Fe(t,e){var n=(e||"").match(t);if(null===n)return null;var r=((n[n.length-1]||[])+"").match(Pe)||["-",0,0],i=60*r[1]+k(r[2]);return 0===i?0:"+"===r[0]?i:-i}function qe(t,e){var n,r;return e._isUTC?(n=e.clone(),r=(w(t)||c(t)?t.valueOf():Te(t).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+r),i.updateOffset(n,!1),n):Te(t).local()}function je(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Ue(){return!!this.isValid()&&this._isUTC&&0===this._offset}i.updateOffset=function(){};var ze=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ye=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function He(t,e){var n,r,i,a=t,o=null;return Ie(t)?a={ms:t._milliseconds,d:t._days,M:t._months}:u(t)?(a={},e?a[e]=t:a.milliseconds=t):(o=ze.exec(t))?(n="-"===o[1]?-1:1,a={y:0,d:k(o[mt])*n,h:k(o[vt])*n,m:k(o[_t])*n,s:k(o[wt])*n,ms:k(Be(1e3*o[xt]))*n}):(o=Ye.exec(t))?(n="-"===o[1]?-1:(o[1],1),a={y:Ve(o[2],n),M:Ve(o[3],n),w:Ve(o[4],n),d:Ve(o[5],n),h:Ve(o[6],n),m:Ve(o[7],n),s:Ve(o[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(i=function(t,e){var n;return t.isValid()&&e.isValid()?(e=qe(e,t),t.isBefore(e)?n=$e(t,e):((n=$e(e,t)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}(Te(a.from),Te(a.to)),(a={}).ms=i.milliseconds,a.M=i.months),r=new Ne(a),Ie(t)&&l(t,"_locale")&&(r._locale=t._locale),r}function Ve(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function $e(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Ge(t,e){return function(n,r){var i;return null===r||isNaN(+r)||(D(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),We(this,He(n="string"==typeof n?+n:n,r),t),this}}function We(t,e,n,r){var a=e._milliseconds,o=Be(e._days),s=Be(e._months);t.isValid()&&(r=null==r||r,s&&Lt(t,Ct(t,"Month")+s*n),o&&Ot(t,"Date",Ct(t,"Date")+o*n),a&&t._d.setTime(t._d.valueOf()+a*n),r&&i.updateOffset(t,o||s))}He.fn=Ne.prototype,He.invalid=function(){return He(NaN)};var Ke=Ge(1,"add"),Xe=Ge(-1,"subtract");function Ze(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(n,"months");return-(n+(e-r<0?(e-r)/(r-t.clone().add(n-1,"months")):(e-r)/(t.clone().add(n+1,"months")-r)))||0}function Je(t){var e;return void 0===t?this._locale._abbr:(null!=(e=le(t))&&(this._locale=e),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Qe=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function tn(){return this._locale}function en(t,e){H(0,[t,t.length],0,e)}function nn(t,e,n,r,i){var a;return null==t?Ht(this,r,i).year:((a=Vt(t,r,i))<e&&(e=a),function(t,e,n,r,i){var a=Yt(t,e,n,r,i),o=Ut(a.year,0,a.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}.call(this,t,e,n,r,i))}H(0,["gg",2],0,(function(){return this.weekYear()%100})),H(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),en("gggg","weekYear"),en("ggggg","weekYear"),en("GGGG","isoWeekYear"),en("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),ft("G",at),ft("g",at),ft("GG",J,W),ft("gg",J,W),ft("GGGG",nt,X),ft("gggg",nt,X),ft("GGGGG",rt,Z),ft("ggggg",rt,Z),gt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,n,r){e[r.substr(0,2)]=k(t)})),gt(["gg","GG"],(function(t,e,n,r){e[r]=i.parseTwoDigitYear(t)})),H("Q",0,"Qo","quarter"),I("quarter","Q"),F("quarter",7),ft("Q",G),pt("Q",(function(t,e){e[bt]=3*(k(t)-1)})),H("D",["DD",2],"Do","date"),I("date","D"),F("date",9),ft("D",J),ft("DD",J,W),ft("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),pt(["D","DD"],mt),pt("Do",(function(t,e){e[mt]=k(t.match(J)[0])}));var rn=Dt("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),F("dayOfYear",4),ft("DDD",et),ft("DDDD",K),pt(["DDD","DDDD"],(function(t,e,n){n._dayOfYear=k(t)})),H("m",["mm",2],0,"minute"),I("minute","m"),F("minute",14),ft("m",J),ft("mm",J,W),pt(["m","mm"],_t);var an=Dt("Minutes",!1);H("s",["ss",2],0,"second"),I("second","s"),F("second",15),ft("s",J),ft("ss",J,W),pt(["s","ss"],wt);var on,sn=Dt("Seconds",!1);for(H("S",0,0,(function(){return~~(this.millisecond()/100)})),H(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),H(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),H(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),H(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),H(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),H(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),I("millisecond","ms"),F("millisecond",16),ft("S",et,G),ft("SS",et,W),ft("SSS",et,K),on="SSSS";on.length<=9;on+="S")ft(on,it);function un(t,e){e[xt]=k(1e3*("0."+t))}for(on="S";on.length<=9;on+="S")pt(on,un);var cn=Dt("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var fn=_.prototype;function ln(t){return t}fn.add=Ke,fn.calendar=function(t,e){var n=t||Te(),r=qe(n,this).startOf("day"),a=i.calendarFormat(this,r)||"sameElse",o=e&&(C(e[a])?e[a].call(this,n):e[a]);return this.format(o||this.localeData().calendar(a,this,Te(n)))},fn.clone=function(){return new _(this)},fn.diff=function(t,e,n){var r,i,a;if(!this.isValid())return NaN;if(!(r=qe(t,this)).isValid())return NaN;switch(i=6e4*(r.utcOffset()-this.utcOffset()),e=B(e)){case"year":a=Ze(this,r)/12;break;case"month":a=Ze(this,r);break;case"quarter":a=Ze(this,r)/3;break;case"second":a=(this-r)/1e3;break;case"minute":a=(this-r)/6e4;break;case"hour":a=(this-r)/36e5;break;case"day":a=(this-r-i)/864e5;break;case"week":a=(this-r-i)/6048e5;break;default:a=this-r}return n?a:x(a)},fn.endOf=function(t){return void 0===(t=B(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))},fn.format=function(t){t||(t=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var e=V(this,t);return this.localeData().postformat(e)},fn.from=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||Te(t).isValid())?He({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},fn.fromNow=function(t){return this.from(Te(),t)},fn.to=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||Te(t).isValid())?He({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},fn.toNow=function(t){return this.to(Te(),t)},fn.get=function(t){return C(this[t=B(t)])?this[t]():this},fn.invalidAt=function(){return p(this).overflow},fn.isAfter=function(t,e){var n=w(t)?t:Te(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=B(s(e)?"millisecond":e))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(e).valueOf())},fn.isBefore=function(t,e){var n=w(t)?t:Te(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=B(s(e)?"millisecond":e))?this.valueOf()<n.valueOf():this.clone().endOf(e).valueOf()<n.valueOf())},fn.isBetween=function(t,e,n,r){return("("===(r=r||"()")[0]?this.isAfter(t,n):!this.isBefore(t,n))&&(")"===r[1]?this.isBefore(e,n):!this.isAfter(e,n))},fn.isSame=function(t,e){var n,r=w(t)?t:Te(t);return!(!this.isValid()||!r.isValid())&&("millisecond"===(e=B(e||"millisecond"))?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(e).valueOf()<=n&&n<=this.clone().endOf(e).valueOf()))},fn.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},fn.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},fn.isValid=function(){return g(this)},fn.lang=Qe,fn.locale=Je,fn.localeData=tn,fn.max=Ce,fn.min=De,fn.parsingFlags=function(){return h({},p(this))},fn.set=function(t,e){if("object"==typeof t)for(var n=function(t){var e=[];for(var n in t)e.push({unit:n,priority:P[n]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=L(t)),r=0;r<n.length;r++)this[n[r].unit](t[n[r].unit]);else if(C(this[t=B(t)]))return this[t](e);return this},fn.startOf=function(t){switch(t=B(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this},fn.subtract=Xe,fn.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},fn.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},fn.toDate=function(){return new Date(this.valueOf())},fn.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,n=e?this.clone().utc():this;return n.year()<0||9999<n.year()?V(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):C(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",V(n,"Z")):V(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},fn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=e+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+i)},fn.toJSON=function(){return this.isValid()?this.toISOString():null},fn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},fn.unix=function(){return Math.floor(this.valueOf()/1e3)},fn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},fn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},fn.year=Tt,fn.isLeapYear=function(){return St(this.year())},fn.weekYear=function(t){return nn.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},fn.isoWeekYear=function(t){return nn.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},fn.quarter=fn.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},fn.month=Pt,fn.daysInMonth=function(){return Rt(this.year(),this.month())},fn.week=fn.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},fn.isoWeek=fn.isoWeeks=function(t){var e=Ht(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},fn.weeksInYear=function(){var t=this.localeData()._week;return Vt(this.year(),t.dow,t.doy)},fn.isoWeeksInYear=function(){return Vt(this.year(),1,4)},fn.date=rn,fn.day=fn.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e,n,r=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(e=t,n=this.localeData(),t="string"!=typeof e?e:isNaN(e)?"number"==typeof(e=n.weekdaysParse(e))?e:null:parseInt(e,10),this.add(t-r,"d")):r},fn.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},fn.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=(n=t,r=this.localeData(),"string"==typeof n?r.weekdaysParse(n)%7||7:isNaN(n)?null:n);return this.day(this.day()%7?e:e-7)}return this.day()||7;var n,r},fn.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},fn.hour=fn.hours=re,fn.minute=fn.minutes=an,fn.second=fn.seconds=sn,fn.millisecond=fn.milliseconds=cn,fn.utcOffset=function(t,e,n){var r,a=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Fe(st,t)))return this}else Math.abs(t)<16&&!n&&(t*=60);return!this._isUTC&&e&&(r=je(this)),this._offset=t,this._isUTC=!0,null!=r&&this.add(r,"m"),a!==t&&(!e||this._changeInProgress?We(this,He(t-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,i.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?a:je(this)},fn.utc=function(t){return this.utcOffset(0,t)},fn.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(je(this),"m")),this},fn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Fe(ot,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},fn.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Te(t).utcOffset():0,(this.utcOffset()-t)%60==0)},fn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},fn.isLocal=function(){return!!this.isValid()&&!this._isUTC},fn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},fn.isUtc=Ue,fn.isUTC=Ue,fn.zoneAbbr=function(){return this._isUTC?"UTC":""},fn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},fn.dates=S("dates accessor is deprecated. Use date instead.",rn),fn.months=S("months accessor is deprecated. Use month instead",Pt),fn.years=S("years accessor is deprecated. Use year instead",Tt),fn.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),fn.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(m(t,this),(t=Se(t))._a){var e=t._isUTC?d(t._a):Te(t._a);this._isDSTShifted=this.isValid()&&0<E(t._a,e.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted}));var hn=R.prototype;function dn(t,e,n,r){var i=le(),a=d().set(r,e);return i[n](a,t)}function pn(t,e,n){if(u(t)&&(e=t,t=void 0),t=t||"",null!=e)return dn(t,e,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=dn(t,r,n,"month");return i}function gn(t,e,n,r){"boolean"==typeof t?u(e)&&(n=e,e=void 0):(e=t,t=!1,u(n=e)&&(n=e,e=void 0)),e=e||"";var i,a=le(),o=t?a._week.dow:0;if(null!=n)return dn(e,(n+o)%7,r,"day");var s=[];for(i=0;i<7;i++)s[i]=dn(e,(i+o)%7,r,"day");return s}hn.calendar=function(t,e,n){var r=this._calendar[t]||this._calendar.sameElse;return C(r)?r.call(e,n):r},hn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(t){return this._ordinal.replace("%d",t)},hn.preparse=ln,hn.postformat=ln,hn.relativeTime=function(t,e,n,r){var i=this._relativeTime[n];return C(i)?i(t,e,n,r):i.replace(/%d/i,t)},hn.pastFuture=function(t,e){var n=this._relativeTime[0<t?"future":"past"];return C(n)?n(e):n.replace(/%s/i,e)},hn.set=function(t){var e,n;for(n in t)C(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(t,e){return t?a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Nt).test(e)?"format":"standalone"][t.month()]:a(this._months)?this._months:this._months.standalone},hn.monthsShort=function(t,e){return t?a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Nt.test(e)?"format":"standalone"][t.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(t,e,n){var r,i,a;if(this._monthsParseExact)return function(t,e,n){var r,i,a,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)a=d([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(a,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(i=Mt.call(this._shortMonthsParse,o))?i:null:-1!==(i=Mt.call(this._longMonthsParse,o))?i:null:"MMM"===e?-1!==(i=Mt.call(this._shortMonthsParse,o))?i:-1!==(i=Mt.call(this._longMonthsParse,o))?i:null:-1!==(i=Mt.call(this._longMonthsParse,o))?i:-1!==(i=Mt.call(this._shortMonthsParse,o))?i:null}.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(i=d([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(a="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[r]=new RegExp(a.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[r].test(t))return r;if(n&&"MMM"===e&&this._shortMonthsParse[r].test(t))return r;if(!n&&this._monthsParse[r].test(t))return r}},hn.monthsRegex=function(t){return this._monthsParseExact?(l(this,"_monthsRegex")||jt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(l(this,"_monthsRegex")||(this._monthsRegex=qt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(t){return this._monthsParseExact?(l(this,"_monthsRegex")||jt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,"_monthsShortRegex")||(this._monthsShortRegex=Ft),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(t){return Ht(t,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(t,e){return t?a(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:a(this._weekdays)?this._weekdays:this._weekdays.standalone},hn.weekdaysMin=function(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin},hn.weekdaysShort=function(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort},hn.weekdaysParse=function(t,e,n){var r,i,a;if(this._weekdaysParseExact)return function(t,e,n){var r,i,a,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)a=d([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(a,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(i=Mt.call(this._weekdaysParse,o))?i:null:"ddd"===e?-1!==(i=Mt.call(this._shortWeekdaysParse,o))?i:null:-1!==(i=Mt.call(this._minWeekdaysParse,o))?i:null:"dddd"===e?-1!==(i=Mt.call(this._weekdaysParse,o))?i:-1!==(i=Mt.call(this._shortWeekdaysParse,o))?i:-1!==(i=Mt.call(this._minWeekdaysParse,o))?i:null:"ddd"===e?-1!==(i=Mt.call(this._shortWeekdaysParse,o))?i:-1!==(i=Mt.call(this._weekdaysParse,o))?i:-1!==(i=Mt.call(this._minWeekdaysParse,o))?i:null:-1!==(i=Mt.call(this._minWeekdaysParse,o))?i:-1!==(i=Mt.call(this._weekdaysParse,o))?i:-1!==(i=Mt.call(this._shortWeekdaysParse,o))?i:null}.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=d([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[r]||(a="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=new RegExp(a.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[r].test(t))return r;if(n&&"ddd"===e&&this._shortWeekdaysParse[r].test(t))return r;if(n&&"dd"===e&&this._minWeekdaysParse[r].test(t))return r;if(!n&&this._weekdaysParse[r].test(t))return r}},hn.weekdaysRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Jt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Kt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Jt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Xt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Jt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Zt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},hn.meridiem=function(t,e,n){return 11<t?n?"pm":"PM":n?"am":"AM"},ce("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===k(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),i.lang=S("moment.lang is deprecated. Use moment.locale instead.",ce),i.langData=S("moment.langData is deprecated. Use moment.localeData instead.",le);var yn=Math.abs;function bn(t,e,n,r){var i=He(e,n);return t._milliseconds+=r*i._milliseconds,t._days+=r*i._days,t._months+=r*i._months,t._bubble()}function mn(t){return t<0?Math.floor(t):Math.ceil(t)}function vn(t){return 4800*t/146097}function _n(t){return 146097*t/4800}function wn(t){return function(){return this.as(t)}}var xn=wn("ms"),kn=wn("s"),En=wn("m"),An=wn("h"),Sn=wn("d"),Mn=wn("w"),Tn=wn("M"),Dn=wn("y");function Cn(t){return function(){return this.isValid()?this._data[t]:NaN}}var On=Cn("milliseconds"),Rn=Cn("seconds"),Nn=Cn("minutes"),In=Cn("hours"),Bn=Cn("days"),Ln=Cn("months"),Pn=Cn("years"),Fn=Math.round,qn={ss:44,s:45,m:45,h:22,d:26,M:11},jn=Math.abs;function Un(t){return(0<t)-(t<0)||+t}function zn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n=jn(this._milliseconds)/1e3,r=jn(this._days),i=jn(this._months);e=x((t=x(n/60))/60),n%=60,t%=60;var a=x(i/12),o=i%=12,s=r,u=e,c=t,f=n?n.toFixed(3).replace(/\.?0+$/,""):"",l=this.asSeconds();if(!l)return"P0D";var h=l<0?"-":"",d=Un(this._months)!==Un(l)?"-":"",p=Un(this._days)!==Un(l)?"-":"",g=Un(this._milliseconds)!==Un(l)?"-":"";return h+"P"+(a?d+a+"Y":"")+(o?d+o+"M":"")+(s?p+s+"D":"")+(u||c||f?"T":"")+(u?g+u+"H":"")+(c?g+c+"M":"")+(f?g+f+"S":"")}var Yn=Ne.prototype;return Yn.isValid=function(){return this._isValid},Yn.abs=function(){var t=this._data;return this._milliseconds=yn(this._milliseconds),this._days=yn(this._days),this._months=yn(this._months),t.milliseconds=yn(t.milliseconds),t.seconds=yn(t.seconds),t.minutes=yn(t.minutes),t.hours=yn(t.hours),t.months=yn(t.months),t.years=yn(t.years),this},Yn.add=function(t,e){return bn(this,t,e,1)},Yn.subtract=function(t,e){return bn(this,t,e,-1)},Yn.as=function(t){if(!this.isValid())return NaN;var e,n,r=this._milliseconds;if("month"===(t=B(t))||"year"===t)return e=this._days+r/864e5,n=this._months+vn(e),"month"===t?n:n/12;switch(e=this._days+Math.round(_n(this._months)),t){case"week":return e/7+r/6048e5;case"day":return e+r/864e5;case"hour":return 24*e+r/36e5;case"minute":return 1440*e+r/6e4;case"second":return 86400*e+r/1e3;case"millisecond":return Math.floor(864e5*e)+r;default:throw new Error("Unknown unit "+t)}},Yn.asMilliseconds=xn,Yn.asSeconds=kn,Yn.asMinutes=En,Yn.asHours=An,Yn.asDays=Sn,Yn.asWeeks=Mn,Yn.asMonths=Tn,Yn.asYears=Dn,Yn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Yn._bubble=function(){var t,e,n,r,i,a=this._milliseconds,o=this._days,s=this._months,u=this._data;return 0<=a&&0<=o&&0<=s||a<=0&&o<=0&&s<=0||(a+=864e5*mn(_n(s)+o),s=o=0),u.milliseconds=a%1e3,t=x(a/1e3),u.seconds=t%60,e=x(t/60),u.minutes=e%60,n=x(e/60),u.hours=n%24,s+=i=x(vn(o+=x(n/24))),o-=mn(_n(i)),r=x(s/12),s%=12,u.days=o,u.months=s,u.years=r,this},Yn.clone=function(){return He(this)},Yn.get=function(t){return t=B(t),this.isValid()?this[t+"s"]():NaN},Yn.milliseconds=On,Yn.seconds=Rn,Yn.minutes=Nn,Yn.hours=In,Yn.days=Bn,Yn.weeks=function(){return x(this.days()/7)},Yn.months=Ln,Yn.years=Pn,Yn.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e,n,r,i,a,o,s,u,c,f,l=this.localeData(),h=(e=!t,n=l,r=He(this).abs(),i=Fn(r.as("s")),a=Fn(r.as("m")),o=Fn(r.as("h")),s=Fn(r.as("d")),u=Fn(r.as("M")),c=Fn(r.as("y")),(f=i<=qn.ss&&["s",i]||i<qn.s&&["ss",i]||a<=1&&["m"]||a<qn.m&&["mm",a]||o<=1&&["h"]||o<qn.h&&["hh",o]||s<=1&&["d"]||s<qn.d&&["dd",s]||u<=1&&["M"]||u<qn.M&&["MM",u]||c<=1&&["y"]||["yy",c])[2]=e,f[3]=0<+this,f[4]=n,function(t,e,n,r,i){return i.relativeTime(e||1,!!n,t,r)}.apply(null,f));return t&&(h=l.pastFuture(+this,h)),l.postformat(h)},Yn.toISOString=zn,Yn.toString=zn,Yn.toJSON=zn,Yn.locale=Je,Yn.localeData=tn,Yn.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",zn),Yn.lang=Qe,H("X",0,0,"unix"),H("x",0,0,"valueOf"),ft("x",at),ft("X",/[+-]?\d+(\.\d{1,3})?/),pt("X",(function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))})),pt("x",(function(t,e,n){n._d=new Date(k(t))})),i.version="2.22.1",e=Te,i.fn=fn,i.min=function(){return Oe("isBefore",[].slice.call(arguments,0))},i.max=function(){return Oe("isAfter",[].slice.call(arguments,0))},i.now=function(){return Date.now?Date.now():+new Date},i.utc=d,i.unix=function(t){return Te(1e3*t)},i.months=function(t,e){return pn(t,e,"months")},i.isDate=c,i.locale=ce,i.invalid=y,i.duration=He,i.isMoment=w,i.weekdays=function(t,e,n){return gn(t,e,n,"weekdays")},i.parseZone=function(){return Te.apply(null,arguments).parseZone()},i.localeData=le,i.isDuration=Ie,i.monthsShort=function(t,e){return pn(t,e,"monthsShort")},i.weekdaysMin=function(t,e,n){return gn(t,e,n,"weekdaysMin")},i.defineLocale=fe,i.updateLocale=function(t,e){if(null!=e){var n,r,i=ie;null!=(r=ue(t))&&(i=r._config),(n=new R(e=O(i,e))).parentLocale=ae[t],ae[t]=n,ce(t)}else null!=ae[t]&&(null!=ae[t].parentLocale?ae[t]=ae[t].parentLocale:null!=ae[t]&&delete ae[t]);return ae[t]},i.locales=function(){return M(ae)},i.weekdaysShort=function(t,e,n){return gn(t,e,n,"weekdaysShort")},i.normalizeUnits=B,i.relativeTimeRounding=function(t){return void 0===t?Fn:"function"==typeof t&&(Fn=t,!0)},i.relativeTimeThreshold=function(t,e){return void 0!==qn[t]&&(void 0===e?qn[t]:(qn[t]=e,"s"===t&&(qn.ss=e-1),!0))},i.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},i.prototype=fn,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},i}()}).call(this,n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,8,10,11,12,13,14,15,16,18,20],n=[1,9],r=[1,10],i=[1,11],a=[1,12],o=[1,13],s=[1,14],u=[1,16],c=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,dateFormat:11,inclusiveEndDates:12,axisFormat:13,excludes:14,title:15,section:16,clickStatement:17,taskTxt:18,taskData:19,click:20,callbackname:21,callbackargs:22,href:23,clickStatementDebug:24,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"inclusiveEndDates",13:"axisFormat",14:"excludes",15:"title",16:"section",18:"taskTxt",19:"taskData",20:"click",21:"callbackname",22:"callbackargs",23:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[17,2],[17,3],[17,3],[17,4],[17,3],[17,4],[17,2],[24,2],[24,3],[24,3],[24,4],[24,3],[24,4],[24,2]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 2:this.$=[];break;case 3:a[s-1].push(a[s]),this.$=a[s-1];break;case 4:case 5:this.$=a[s];break;case 6:case 7:this.$=[];break;case 8:r.setDateFormat(a[s].substr(11)),this.$=a[s].substr(11);break;case 9:r.enableInclusiveEndDates(),this.$=a[s].substr(18);break;case 10:r.setAxisFormat(a[s].substr(11)),this.$=a[s].substr(11);break;case 11:r.setExcludes(a[s].substr(9)),this.$=a[s].substr(9);break;case 12:r.setTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 13:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 15:r.addTask(a[s-1],a[s]),this.$="task";break;case 16:this.$=a[s-1],r.setClickEvent(a[s-1],a[s],null);break;case 17:this.$=a[s-2],r.setClickEvent(a[s-2],a[s-1],a[s]);break;case 18:this.$=a[s-2],r.setClickEvent(a[s-2],a[s-1],null),r.setLink(a[s-2],a[s]);break;case 19:this.$=a[s-3],r.setClickEvent(a[s-3],a[s-2],a[s-1]),r.setLink(a[s-3],a[s]);break;case 20:this.$=a[s-2],r.setClickEvent(a[s-2],a[s],null),r.setLink(a[s-2],a[s-1]);break;case 21:this.$=a[s-3],r.setClickEvent(a[s-3],a[s-1],a[s]),r.setLink(a[s-3],a[s-2]);break;case 22:this.$=a[s-1],r.setLink(a[s-1],a[s]);break;case 23:case 29:this.$=a[s-1]+" "+a[s];break;case 24:case 25:case 27:this.$=a[s-2]+" "+a[s-1]+" "+a[s];break;case 26:case 28:this.$=a[s-3]+" "+a[s-2]+" "+a[s-1]+" "+a[s]}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:r,13:i,14:a,15:o,16:s,17:15,18:u,20:c},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:n,12:r,13:i,14:a,15:o,16:s,17:15,18:u,20:c},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{19:[1,19]},{21:[1,20],23:[1,21]},t(e,[2,4]),t(e,[2,15]),t(e,[2,16],{22:[1,22],23:[1,23]}),t(e,[2,22],{21:[1,24]}),t(e,[2,17],{23:[1,25]}),t(e,[2,18]),t(e,[2,20],{22:[1,26]}),t(e,[2,19]),t(e,[2,21])],defaultActions:{},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},l={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 10;case 1:case 2:case 3:break;case 4:this.begin("href");break;case 5:this.popState();break;case 6:return 23;case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 21;case 11:this.popState();break;case 12:return 22;case 13:this.begin("click");break;case 14:this.popState();break;case 15:return 20;case 16:return 4;case 17:return 11;case 18:return 12;case 19:return 13;case 20:return 14;case 21:return"date";case 22:return 15;case 23:return 16;case 24:return 18;case 25:return 19;case 26:return":";case 27:return 6;case 28:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{callbackargs:{rules:[11,12],inclusive:!1},callbackname:{rules:[8,9,10],inclusive:!1},href:{rules:[5,6],inclusive:!1},click:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,7,13,16,17,18,19,20,21,22,23,24,25,26,27,28],inclusive:!0}}};function h(){this.yy={}}return f.lexer=l,h.prototype=f,f.Parser=h,new h}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t,e){},function(t,e,n){(function(t){function n(t,e){for(var n=0,r=t.length-1;r>=0;r--){var i=t[r];"."===i?t.splice(r,1):".."===i?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}function r(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r<t.length;r++)e(t[r],r,t)&&n.push(t[r]);return n}e.resolve=function(){for(var e="",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var o=a>=0?arguments[a]:t.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(e=o+"/"+e,i="/"===o.charAt(0))}return(i?"/":"")+(e=n(r(e.split("/"),(function(t){return!!t})),!i).join("/"))||"."},e.normalize=function(t){var a=e.isAbsolute(t),o="/"===i(t,-1);return(t=n(r(t.split("/"),(function(t){return!!t})),!a).join("/"))||a||(t="."),t&&o&&(t+="/"),(a?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,(function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,n){function r(t){for(var e=0;e<t.length&&""===t[e];e++);for(var n=t.length-1;n>=0&&""===t[n];n--);return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var i=r(t.split("/")),a=r(n.split("/")),o=Math.min(i.length,a.length),s=o,u=0;u<o;u++)if(i[u]!==a[u]){s=u;break}var c=[];for(u=s;u<i.length;u++)c.push("..");return(c=c.concat(a.slice(s))).join("/")},e.sep="/",e.delimiter=":",e.dirname=function(t){if("string"!=typeof t&&(t+=""),0===t.length)return".";for(var e=t.charCodeAt(0),n=47===e,r=-1,i=!0,a=t.length-1;a>=1;--a)if(47===(e=t.charCodeAt(a))){if(!i){r=a;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":t.slice(0,r)},e.basename=function(t,e){var n=function(t){"string"!=typeof t&&(t+="");var e,n=0,r=-1,i=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!i){n=e+1;break}}else-1===r&&(i=!1,r=e+1);return-1===r?"":t.slice(n,r)}(t);return e&&n.substr(-1*e.length)===e&&(n=n.substr(0,n.length-e.length)),n},e.extname=function(t){"string"!=typeof t&&(t+="");for(var e=-1,n=0,r=-1,i=!0,a=0,o=t.length-1;o>=0;--o){var s=t.charCodeAt(o);if(47!==s)-1===r&&(i=!1,r=o+1),46===s?-1===e?e=o:1!==a&&(a=1):-1!==e&&(a=-1);else if(!i){n=o+1;break}}return-1===e||-1===r||0===a||1===a&&e===r-1&&e===n+1?"":t.slice(e,r)};var i="b"==="ab".substr(-1)?function(t,e,n){return t.substr(e,n)}:function(t,e,n){return e<0&&(e=t.length+e),t.substr(e,n)}}).call(this,n(5))},function(t,e,n){var r=n(3).Buffer,i=n(47).Transform,a=n(52).StringDecoder;function o(t){i.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(2)(o,i),o.prototype.update=function(t,e,n){"string"==typeof t&&(t=r.from(t,e));var i=this._update(t);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(t,e,n){var r;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){r=t}finally{n(r)}},o.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},o.prototype._finalOrDigest=function(t){var e=this.__final()||r.alloc(0);return t&&(e=this._toString(e,t,!0)),e},o.prototype._toString=function(t,e,n){if(this._decoder||(this._decoder=new a(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var r=this._decoder.write(t);return n&&(r+=this._decoder.end()),r},t.exports=o},function(t,e,n){t.exports={Graph:n(45),json:n(112),alg:n(113)}},function(t,e,n){"use strict";var r=n(35),i=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};t.exports=l;var a=n(27);a.inherits=n(2);var o=n(71),s=n(51);a.inherits(l,o);for(var u=i(s.prototype),c=0;c<u.length;c++){var f=u[c];l.prototype[f]||(l.prototype[f]=s.prototype[f])}function l(t){if(!(this instanceof l))return new l(t);o.call(this,t),s.call(this,t),t&&!1===t.readable&&(this.readable=!1),t&&!1===t.writable&&(this.writable=!1),this.allowHalfOpen=!0,t&&!1===t.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",h)}function h(){this.allowHalfOpen||this._writableState.ended||r.nextTick(d,this)}function d(t){t.end()}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}}),l.prototype._destroy=function(t,e){this.push(null),this.end(),r.nextTick(e,t)}},function(t,e,n){"use strict";(function(e,r){var i=65536,a=4294967295;var o=n(3).Buffer,s=e.crypto||e.msCrypto;s&&s.getRandomValues?t.exports=function(t,e){if(t>a)throw new RangeError("requested too many random bytes");var n=o.allocUnsafe(t);if(t>0)if(t>i)for(var u=0;u<t;u+=i)s.getRandomValues(n.slice(u,u+i));else s.getRandomValues(n);if("function"==typeof e)return r.nextTick((function(){e(null,n)}));return n}:t.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,n(13),n(5))},function(t,e,n){var r=n(3).Buffer;function i(t,e){this._block=r.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=r.from(t,e));for(var n=this._block,i=this._blockSize,a=t.length,o=this._len,s=0;s<a;){for(var u=o%i,c=Math.min(a-s,i-u),f=0;f<c;f++)n[u+f]=t[s+f];s+=c,(o+=c)%i==0&&this._update(n)}return this._len+=a,this},i.prototype.digest=function(t){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var a=this._hash();return t?a.toString(t):a},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,12],n=[1,15],r=[1,13],i=[1,14],a=[1,17],o=[1,18],s=[1,19],u=[6,8],c=[1,28],f=[1,29],l=[1,30],h=[1,31],d=[1,32],p=[1,33],g=[6,8,13,18,26,29,30,31,32,33,34],y=[6,8,13,18,22,26,29,30,31,32,33,34,48,49,50],b=[26,48,49,50],m=[26,33,34,48,49,50],v=[26,29,30,31,32,48,49,50],_=[6,8,13],w=[1,50],x={trace:function(){},yy:{},symbols_:{error:2,mermaidDoc:3,graphConfig:4,CLASS_DIAGRAM:5,NEWLINE:6,statements:7,EOF:8,statement:9,className:10,alphaNumToken:11,relationStatement:12,LABEL:13,classStatement:14,methodStatement:15,annotationStatement:16,CLASS:17,STRUCT_START:18,members:19,STRUCT_STOP:20,ANNOTATION_START:21,ANNOTATION_END:22,MEMBER:23,SEPARATOR:24,relation:25,STR:26,relationType:27,lineType:28,AGGREGATION:29,EXTENSION:30,COMPOSITION:31,DEPENDENCY:32,LINE:33,DOTTED_LINE:34,commentToken:35,textToken:36,graphCodeTokens:37,textNoTagsToken:38,TAGSTART:39,TAGEND:40,"==":41,"--":42,PCT:43,DEFAULT:44,SPACE:45,MINUS:46,keywords:47,UNICODE_TEXT:48,NUM:49,ALPHA:50,$accept:0,$end:1},terminals_:{2:"error",5:"CLASS_DIAGRAM",6:"NEWLINE",8:"EOF",13:"LABEL",17:"CLASS",18:"STRUCT_START",20:"STRUCT_STOP",21:"ANNOTATION_START",22:"ANNOTATION_END",23:"MEMBER",24:"SEPARATOR",26:"STR",29:"AGGREGATION",30:"EXTENSION",31:"COMPOSITION",32:"DEPENDENCY",33:"LINE",34:"DOTTED_LINE",37:"graphCodeTokens",39:"TAGSTART",40:"TAGEND",41:"==",42:"--",43:"PCT",44:"DEFAULT",45:"SPACE",46:"MINUS",47:"keywords",48:"UNICODE_TEXT",49:"NUM",50:"ALPHA"},productions_:[0,[3,1],[4,4],[7,1],[7,2],[7,3],[10,2],[10,1],[9,1],[9,2],[9,1],[9,1],[9,1],[14,2],[14,5],[16,4],[19,1],[19,2],[15,1],[15,2],[15,1],[15,1],[12,3],[12,4],[12,4],[12,5],[25,3],[25,2],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[28,1],[28,1],[35,1],[35,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[11,1],[11,1],[11,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 6:this.$=a[s-1]+a[s];break;case 7:this.$=a[s];break;case 8:r.addRelation(a[s]);break;case 9:a[s-1].title=r.cleanupLabel(a[s]),r.addRelation(a[s-1]);break;case 13:r.addClass(a[s]);break;case 14:r.addClass(a[s-3]),r.addMembers(a[s-3],a[s-1]);break;case 15:r.addAnnotation(a[s],a[s-2]);break;case 16:this.$=[a[s]];break;case 17:a[s].push(a[s-1]),this.$=a[s];break;case 18:break;case 19:r.addMember(a[s-1],r.cleanupLabel(a[s]));break;case 20:console.warn("Member",a[s]);break;case 21:break;case 22:this.$={id1:a[s-2],id2:a[s],relation:a[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 23:this.$={id1:a[s-3],id2:a[s],relation:a[s-1],relationTitle1:a[s-2],relationTitle2:"none"};break;case 24:this.$={id1:a[s-3],id2:a[s],relation:a[s-2],relationTitle1:"none",relationTitle2:a[s-1]};break;case 25:this.$={id1:a[s-4],id2:a[s],relation:a[s-2],relationTitle1:a[s-3],relationTitle2:a[s-1]};break;case 26:this.$={type1:a[s-2],type2:a[s],lineType:a[s-1]};break;case 27:this.$={type1:"none",type2:a[s],lineType:a[s-1]};break;case 28:this.$={type1:a[s-1],type2:"none",lineType:a[s]};break;case 29:this.$={type1:"none",type2:"none",lineType:a[s]};break;case 30:this.$=r.relationType.AGGREGATION;break;case 31:this.$=r.relationType.EXTENSION;break;case 32:this.$=r.relationType.COMPOSITION;break;case 33:this.$=r.relationType.DEPENDENCY;break;case 34:this.$=r.lineType.LINE;break;case 35:this.$=r.lineType.DOTTED_LINE}},table:[{3:1,4:2,5:[1,3]},{1:[3]},{1:[2,1]},{6:[1,4]},{7:5,9:6,10:11,11:16,12:7,14:8,15:9,16:10,17:e,21:n,23:r,24:i,48:a,49:o,50:s},{8:[1,20]},{6:[1,21],8:[2,3]},t(u,[2,8],{13:[1,22]}),t(u,[2,10]),t(u,[2,11]),t(u,[2,12]),t(u,[2,18],{25:23,27:26,28:27,13:[1,25],26:[1,24],29:c,30:f,31:l,32:h,33:d,34:p}),{10:34,11:16,48:a,49:o,50:s},t(u,[2,20]),t(u,[2,21]),{11:35,48:a,49:o,50:s},t(g,[2,7],{11:16,10:36,48:a,49:o,50:s}),t(y,[2,49]),t(y,[2,50]),t(y,[2,51]),{1:[2,2]},{7:37,8:[2,4],9:6,10:11,11:16,12:7,14:8,15:9,16:10,17:e,21:n,23:r,24:i,48:a,49:o,50:s},t(u,[2,9]),{10:38,11:16,26:[1,39],48:a,49:o,50:s},{25:40,27:26,28:27,29:c,30:f,31:l,32:h,33:d,34:p},t(u,[2,19]),{28:41,33:d,34:p},t(b,[2,29],{27:42,29:c,30:f,31:l,32:h}),t(m,[2,30]),t(m,[2,31]),t(m,[2,32]),t(m,[2,33]),t(v,[2,34]),t(v,[2,35]),t(u,[2,13],{18:[1,43]}),{22:[1,44]},t(g,[2,6]),{8:[2,5]},t(_,[2,22]),{10:45,11:16,48:a,49:o,50:s},{10:46,11:16,26:[1,47],48:a,49:o,50:s},t(b,[2,28],{27:48,29:c,30:f,31:l,32:h}),t(b,[2,27]),{19:49,23:w},{10:51,11:16,48:a,49:o,50:s},t(_,[2,24]),t(_,[2,23]),{10:52,11:16,48:a,49:o,50:s},t(b,[2,26]),{20:[1,53]},{19:54,20:[2,16],23:w},t(u,[2,15]),t(_,[2,25]),t(u,[2,14]),{20:[2,17]}],defaultActions:{2:[2,1],20:[2,2],37:[2,5],54:[2,17]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},k={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:break;case 1:return 6;case 2:break;case 3:return 5;case 4:return this.begin("struct"),18;case 5:return this.popState(),20;case 6:break;case 7:return"MEMBER";case 8:return 17;case 9:return 21;case 10:return 22;case 11:this.begin("string");break;case 12:this.popState();break;case 13:return"STR";case 14:case 15:return 30;case 16:case 17:return 32;case 18:return 31;case 19:return 29;case 20:return 33;case 21:return 34;case 22:return 13;case 23:return 46;case 24:return"DOT";case 25:return"PLUS";case 26:return 43;case 27:case 28:return"EQUALS";case 29:return 50;case 30:return"PUNCTUATION";case 31:return 49;case 32:return 48;case 33:return 45;case 34:return 8}},rules:[/^(?:%%[^\n]*)/,/^(?:\n+)/,/^(?:\s+)/,/^(?:classDiagram\b)/,/^(?:[\{])/,/^(?:\})/,/^(?:[\n])/,/^(?:[^\{\}\n]*)/,/^(?:class\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::[^#\n;]+)/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{string:{rules:[12,13],inclusive:!1},struct:{rules:[5,6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,8,9,10,11,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],inclusive:!0}}};function E(){this.yy={}}return x.lexer=k,E.prototype=x,x.Parser=E,new E}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,3],r=[1,4],i=[2,4],a=[1,9],o=[1,11],s=[1,13],u=[1,14],c=[1,15],f=[1,16],l=[1,21],h=[1,17],d=[1,18],p=[1,19],g=[1,20],y=[1,22],b=[1,4,5,13,14,16,18,19,21,22,23,24,25,28],m=[1,4,5,11,12,13,14,16,18,19,21,22,23,24,25,28],v=[4,5,13,14,16,18,19,21,22,23,24,25,28],_={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,idStatement:10,DESCR:11,"--\x3e":12,HIDE_EMPTY:13,scale:14,WIDTH:15,COMPOSIT_STATE:16,STRUCT_START:17,STRUCT_STOP:18,STATE_DESCR:19,AS:20,ID:21,FORK:22,JOIN:23,CONCURRENT:24,note:25,notePosition:26,NOTE_TEXT:27,EDGE_STATE:28,left_of:29,right_of:30,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",11:"DESCR",12:"--\x3e",13:"HIDE_EMPTY",14:"scale",15:"WIDTH",16:"COMPOSIT_STATE",17:"STRUCT_START",18:"STRUCT_STOP",19:"STATE_DESCR",20:"AS",21:"ID",22:"FORK",23:"JOIN",24:"CONCURRENT",25:"note",27:"NOTE_TEXT",28:"EDGE_STATE",29:"left_of",30:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,4],[9,4],[10,1],[10,1],[26,1],[26,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 3:return r.setRootDoc(a[s]),a[s];case 4:this.$=[];break;case 5:"nl"!=a[s]&&(a[s-1].push(a[s]),this.$=a[s-1]);break;case 6:case 7:this.$=a[s];break;case 8:this.$="nl";break;case 9:this.$={stmt:"state",id:a[s],type:"default",description:""};break;case 10:this.$={stmt:"state",id:a[s-1],type:"default",description:a[s].trim()};break;case 11:this.$={stmt:"relation",state1:{stmt:"state",id:a[s-2],type:"default",description:""},state2:{stmt:"state",id:a[s],type:"default",description:""}};break;case 12:this.$={stmt:"relation",state1:{stmt:"state",id:a[s-3],type:"default",description:""},state2:{stmt:"state",id:a[s-1],type:"default",description:""},description:a[s].substr(1).trim()};break;case 16:this.$={stmt:"state",id:a[s-3],type:"default",description:"",doc:a[s-1]};break;case 17:this.$={stmt:"state",id:a[s],type:"default",description:a[s-2].trim()};break;case 18:this.$={stmt:"state",id:a[s-3],type:"default",description:a[s-5],doc:a[s-1]};break;case 19:this.$={stmt:"state",id:a[s],type:"fork"};break;case 20:this.$={stmt:"state",id:a[s],type:"join"};break;case 21:this.$={stmt:"state",id:r.getDividerId(),type:"divider"};break;case 22:this.$={stmt:"state",id:a[s-1].trim(),note:{position:a[s-2].trim(),text:a[s].trim()}};break;case 24:case 25:this.$=a[s]}},table:[{3:1,4:e,5:n,6:r},{1:[3]},{3:5,4:e,5:n,6:r},{3:6,4:e,5:n,6:r},t([1,4,5,13,14,16,19,21,22,23,24,25,28],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:o,8:8,9:10,10:12,13:s,14:u,16:c,19:f,21:l,22:h,23:d,24:p,25:g,28:y},t(b,[2,5]),{9:23,10:12,13:s,14:u,16:c,19:f,21:l,22:h,23:d,24:p,25:g,28:y},t(b,[2,7]),t(b,[2,8]),t(b,[2,9],{11:[1,24],12:[1,25]}),t(b,[2,13]),{15:[1,26]},t(b,[2,15],{17:[1,27]}),{20:[1,28]},t(b,[2,19]),t(b,[2,20]),t(b,[2,21]),{26:29,27:[1,30],29:[1,31],30:[1,32]},t(m,[2,24]),t(m,[2,25]),t(b,[2,6]),t(b,[2,10]),{10:33,21:l,28:y},t(b,[2,14]),t(v,i,{7:34}),{21:[1,35]},{21:[1,36]},{20:[1,37]},{21:[2,26]},{21:[2,27]},t(b,[2,11],{11:[1,38]}),{4:a,5:o,8:8,9:10,10:12,13:s,14:u,16:c,18:[1,39],19:f,21:l,22:h,23:d,24:p,25:g,28:y},t(b,[2,17],{17:[1,40]}),{27:[1,41]},{21:[1,42]},t(b,[2,12]),t(b,[2,16]),t(v,i,{7:43}),t(b,[2,22]),t(b,[2,23]),{4:a,5:o,8:8,9:10,10:12,13:s,14:u,16:c,18:[1,44],19:f,21:l,22:h,23:d,24:p,25:g,28:y},t(b,[2,18])],defaultActions:{5:[2,1],6:[2,2],31:[2,26],32:[2,27]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},w={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 5;case 1:case 2:case 3:case 4:break;case 5:return this.pushState("SCALE"),14;case 6:return 15;case 7:this.popState();break;case 8:this.pushState("STATE");break;case 9:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),console.warn("Fork Fork: ",e.yytext),22;case 10:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),console.warn("Fork Join: ",e.yytext),23;case 11:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),console.warn("Fork Fork: ",e.yytext),22;case 12:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),console.warn("Fork Join: ",e.yytext),23;case 13:this.begin("STATE_STRING");break;case 14:return this.popState(),this.pushState("STATE_ID"),"AS";case 15:return this.popState(),"ID";case 16:this.popState();break;case 17:return"STATE_DESCR";case 18:return 16;case 19:this.popState();break;case 20:return this.popState(),this.pushState("struct"),17;case 21:return this.popState(),18;case 22:break;case 23:return this.begin("NOTE"),25;case 24:return this.popState(),this.pushState("NOTE_ID"),29;case 25:return this.popState(),this.pushState("NOTE_ID"),30;case 26:this.popState(),this.pushState("FLOATING_NOTE");break;case 27:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 28:break;case 29:return"NOTE_TEXT";case 30:return this.popState(),"ID";case 31:return this.popState(),this.pushState("NOTE_TEXT"),21;case 32:return this.popState(),e.yytext=e.yytext.substr(2).trim(),27;case 33:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),27;case 34:return 6;case 35:return 13;case 36:return 28;case 37:return 21;case 38:return e.yytext=e.yytext.trim(),11;case 39:return 12;case 40:return 24;case 41:return 5;case 42:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:["])/i,/^(?:as\s*)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:\s*[^:;]+end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[2,3],inclusive:!1},struct:{rules:[2,3,8,21,22,23,36,37,38,39,40],inclusive:!1},FLOATING_NOTE_ID:{rules:[30],inclusive:!1},FLOATING_NOTE:{rules:[27,28,29],inclusive:!1},NOTE_TEXT:{rules:[32,33],inclusive:!1},NOTE_ID:{rules:[31],inclusive:!1},NOTE:{rules:[24,25,26],inclusive:!1},SCALE:{rules:[6,7],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[15],inclusive:!1},STATE_STRING:{rules:[16,17],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[2,3,9,10,11,12,13,14,18,19,20],inclusive:!1},ID:{rules:[2,3],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,8,20,23,34,35,36,37,38,39,41,42],inclusive:!0}}};function x(){this.yy={}}return _.lexer=w,x.prototype=_,_.Parser=x,new x}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t,e,n){"use strict";var r=n(2),i=n(46),a=n(53),o=n(54),s=n(19);function u(t){s.call(this,"digest"),this._hash=t}r(u,s),u.prototype._update=function(t){this._hash.update(t)},u.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return"md5"===(t=t.toLowerCase())?new i:"rmd160"===t||"ripemd160"===t?new a:new u(o(t))}},function(t,e,n){(function(t){function n(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===n(t)},e.isBoolean=function(t){return"boolean"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return"number"==typeof t},e.isString=function(t){return"string"==typeof t},e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return"[object RegExp]"===n(t)},e.isObject=function(t){return"object"==typeof t&&null!==t},e.isDate=function(t){return"[object Date]"===n(t)},e.isError=function(t){return"[object Error]"===n(t)||t instanceof Error},e.isFunction=function(t){return"function"==typeof t},e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=t.isBuffer}).call(this,n(6).Buffer)},function(t,e,n){(function(e){t.exports=function(t,n){for(var r=Math.min(t.length,n.length),i=new e(r),a=0;a<r;++a)i[a]=t[a]^n[a];return i}}).call(this,n(6).Buffer)},function(t,e,n){"use strict";var r=n(14),i=n(9);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=a,a.prototype.update=function(t,e){if(t=r.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var n=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-n,t.length),0===this.pending.length&&(this.pending=null),t=r.join32(t,0,t.length-n,this.endian);for(var i=0;i<t.length;i+=this._delta32)this._update(t,i,i+this._delta32)}return this},a.prototype.digest=function(t){return this.update(this._pad()),i(null===this.pending),this._digest(t)},a.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,n=e-(t+this.padLength)%e,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(t<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=t>>>24&255,r[i++]=t>>>16&255,r[i++]=t>>>8&255,r[i++]=255&t}else for(r[i++]=255&t,r[i++]=t>>>8&255,r[i++]=t>>>16&255,r[i++]=t>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r}},function(t,e,n){var r=e;r.bignum=n(4),r.define=n(186).define,r.base=n(31),r.constants=n(97),r.decoders=n(191),r.encoders=n(193)},function(t,e,n){var r=e;r.Reporter=n(188).Reporter,r.DecoderBuffer=n(96).DecoderBuffer,r.EncoderBuffer=n(96).EncoderBuffer,r.Node=n(189)},function(t,e,n){t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n.w={},n(n.s=27)}([function(t,e){t.exports=n(11)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.addDummyNode=o,e.simplify=s,e.asNonCompoundGraph=u,e.successorWeights=c,e.predecessorWeights=f,e.intersectRect=l,e.buildLayerMatrix=h,e.normalizeRanks=d,e.removeEmptyRanks=p,e.addBorderNode=g,e.maxRank=y,e.partition=b,e.time=m,e.notime=v;var r,i=(r=n(0))&&r.__esModule?r:{default:r},a=n(2);function o(t,e,n,r){var a=void 0;do{a=i.default.uniqueId(r)}while(t.hasNode(a));return n.dummy=e,t.setNode(a,n),a}function s(t){var e=(new a.Graph).setGraph(t.graph());return i.default.forEach(t.nodes(),(function(n){e.setNode(n,t.node(n))})),i.default.forEach(t.edges(),(function(n){var r=e.edge(n.v,n.w)||{weight:0,minlen:1},i=t.edge(n);e.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})})),e}function u(t){var e=new a.Graph({multigraph:t.isMultigraph()}).setGraph(t.graph());return i.default.forEach(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),i.default.forEach(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e}function c(t){var e=i.default.map(t.nodes(),(function(e){var n={};return i.default.forEach(t.outEdges(e),(function(e){n[e.w]=(n[e.w]||0)+t.edge(e).weight})),n}));return i.default.zipObject(t.nodes(),e)}function f(t){var e=i.default.map(t.nodes(),(function(e){var n={};return i.default.forEach(t.inEdges(e),(function(e){n[e.v]=(n[e.v]||0)+t.edge(e).weight})),n}));return i.default.zipObject(t.nodes(),e)}function l(t,e){var n=t.x,r=t.y,i=e.x-n,a=e.y-r,o=t.width/2,s=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u=void 0,c=void 0;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),u=s*i/a,c=s):(i<0&&(o=-o),u=o,c=o*a/i),{x:n+u,y:r+c}}function h(t){var e=i.default.map(i.default.range(y(t)+1),(function(){return[]}));return i.default.forEach(t.nodes(),(function(n){var r=t.node(n),a=r.rank;i.default.isUndefined(a)||(e[a][r.order]=n)})),e}function d(t){var e=i.default.min(i.default.map(t.nodes(),(function(e){return t.node(e).rank})));i.default.forEach(t.nodes(),(function(n){var r=t.node(n);i.default.has(r,"rank")&&(r.rank-=e)}))}function p(t){var e=i.default.min(i.default.map(t.nodes(),(function(e){return t.node(e).rank}))),n=[];i.default.forEach(t.nodes(),(function(r){var i=t.node(r).rank-e;n[i]||(n[i]=[]),n[i].push(r)}));var r=0,a=t.graph().nodeRankFactor;i.default.forEach(n,(function(e,n){i.default.isUndefined(e)&&n%a!=0?--r:r&&i.default.forEach(e,(function(e){t.node(e).rank+=r}))}))}function g(t,e,n,r){var i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),o(t,"border",i,e)}function y(t){return i.default.max(i.default.map(t.nodes(),(function(e){var n=t.node(e).rank;if(!i.default.isUndefined(n))return n})))}function b(t,e){var n={lhs:[],rhs:[]};return i.default.forEach(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n}function m(t,e){var n=i.default.now();try{return e()}finally{console.log(t+" time: "+(i.default.now()-n)+"ms")}}function v(t,e){return e()}e.default={addDummyNode:o,simplify:s,asNonCompoundGraph:u,successorWeights:c,predecessorWeights:f,intersectRect:l,buildLayerMatrix:h,normalizeRanks:d,removeEmptyRanks:p,addBorderNode:g,maxRank:y,partition:b,time:m,notime:v}},function(t,e){t.exports=n(20)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.longestPath=a,e.slack=o;var r,i=(r=n(0))&&r.__esModule?r:{default:r};function a(t){var e={};i.default.forEach(t.sources(),(function n(r){var a=t.node(r);if(i.default.has(e,r))return a.rank;e[r]=!0;var o=i.default.min(i.default.map(t.outEdges(r),(function(e){return n(e.w)-t.edge(e).minlen})))||0;return a.rank=o}))}function o(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}e.default={longestPath:a,slack:o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r},a=n(2),o=n(3);function s(t,e){return i.default.forEach(t.nodes(),(function n(r){i.default.forEach(e.nodeEdges(r),(function(i){var a=i.v,s=r===a?i.w:a;t.hasNode(s)||(0,o.slack)(e,i)||(t.setNode(s,{}),t.setEdge(r,s,{}),n(s))}))})),t.nodeCount()}function u(t,e){return i.default.minBy(e.edges(),(function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return(0,o.slack)(e,n)}))}function c(t,e,n){i.default.forEach(t.nodes(),(function(t){e.node(t).rank+=n}))}e.default=function(t){var e=new a.Graph({directed:!1}),n=t.nodes()[0],r=t.nodeCount();e.setNode(n,{});for(var i=void 0;s(e,t)<r;)i=u(e,t),c(e,t,e.hasNode(i.v)?(0,o.slack)(t,i):-(0,o.slack)(t,i));return e}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.positionX=y;var r=o(n(0)),i=n(2),a=o(n(1));function o(t){return t&&t.__esModule?t:{default:t}}function s(t,e){var n={};return r.default.reduce(e,(function(e,i){var a=0,o=0,s=e.length,u=r.default.last(i);return r.default.forEach(i,(function(e,f){var l=function(t,e){if(t.node(e).dummy)return r.default.find(t.predecessors(e),(function(e){return t.node(e).dummy}))}(t,e),h=l?t.node(l).order:s;(l||e===u)&&(r.default.forEach(i.slice(o,f+1),(function(e){r.default.forEach(t.predecessors(e),(function(r){var i=t.node(r),o=i.order;!(o<a||h<o)||i.dummy&&t.node(e).dummy||c(n,r,e)}))})),o=f+1,a=h)})),i})),n}function u(t,e){var n={};function i(e,i,a,o,s){var u=void 0;r.default.forEach(r.default.range(i,a),(function(i){u=e[i],t.node(u).dummy&&r.default.forEach(t.predecessors(u),(function(e){var r=t.node(e);r.dummy&&(r.order<o||r.order>s)&&c(n,e,u)}))}))}return r.default.reduce(e,(function(e,n){var a=-1,o=void 0,s=0;return r.default.forEach(n,(function(r,u){if("border"===t.node(r).dummy){var c=t.predecessors(r);c.length&&(o=t.node(c[0]).order,i(n,s,u,a,o),s=u,a=o)}i(n,s,n.length,o,e.length)})),n})),n}function c(t,e,n){if(e>n){var r=e;e=n,n=r}var i=t[e];i||(t[e]=i={}),i[n]=!0}function f(t,e,n){if(e>n){var i=e;e=n,n=i}return r.default.has(t[e],n)}function l(t,e,n,i){var a={},o={},s={};return r.default.forEach(e,(function(t){r.default.forEach(t,(function(t,e){a[t]=t,o[t]=t,s[t]=e}))})),r.default.forEach(e,(function(t){var e=-1;r.default.forEach(t,(function(t){var u=i(t);if(u.length)for(var c=((u=r.default.sortBy(u,(function(t){return s[t]}))).length-1)/2,l=Math.floor(c),h=Math.ceil(c);l<=h;++l){var d=u[l];o[t]===t&&e<s[d]&&!f(n,t,d)&&(o[d]=t,o[t]=a[t]=a[d],e=s[d])}}))})),{root:a,align:o}}function h(t,e,n,a,o){var s={},u=function(t,e,n,a){var o=new i.Graph,s=t.graph(),u=function(t,e,n){return function(i,a,o){var s=i.node(a),u=i.node(o),c=0,f=void 0;if(c+=s.width/2,r.default.has(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":f=-s.width/2;break;case"r":f=s.width/2}if(f&&(c+=n?f:-f),f=0,c+=(s.dummy?e:t)/2,c+=(u.dummy?e:t)/2,c+=u.width/2,r.default.has(u,"labelpos"))switch(u.labelpos.toLowerCase()){case"l":f=u.width/2;break;case"r":f=-u.width/2}return f&&(c+=n?f:-f),f=0,c}}(s.nodesep,s.edgesep,a);return r.default.forEach(e,(function(e){var i=void 0;r.default.forEach(e,(function(e){var r=n[e];if(o.setNode(r),i){var a=n[i],s=o.edge(a,r);o.setEdge(a,r,Math.max(u(t,e,i),s||0))}i=e}))})),o}(t,e,n,o),c={};r.default.forEach(u.nodes(),(function t(e){r.default.has(c,e)||(c[e]=!0,s[e]=r.default.reduce(u.inEdges(e),(function(e,n){return t(n.v),Math.max(e,s[n.v]+u.edge(n))}),0))}));var f=o?"borderLeft":"borderRight";return r.default.forEach(u.nodes(),(function e(n){if(2!==c[n]){c[n]++;var i=t.node(n),a=r.default.reduce(u.outEdges(n),(function(t,n){return e(n.w),Math.min(t,s[n.w]-u.edge(n))}),Number.POSITIVE_INFINITY);a!==Number.POSITIVE_INFINITY&&i.borderType!==f&&(s[n]=Math.max(s[n],a))}})),r.default.forEach(a,(function(t){s[t]=s[n[t]]})),s}function d(t,e){return r.default.minBy(r.default.values(e),(function(e){var n=(r.default.minBy(r.default.toPairs(e),(function(e){return e[1]-b(t,e[0])/2}))||["k",0])[1];return(r.default.maxBy(r.default.toPairs(e),(function(e){return e[1]+b(t,e[0])/2}))||["k",0])[1]-n}))}function p(t,e){var n=r.default.values(e),i=r.default.min(n),a=r.default.max(n);r.default.forEach(["u","d"],(function(n){r.default.forEach(["l","r"],(function(o){var s=n+o,u=t[s];if(u!==e){var c=r.default.values(u),f="l"===o?i-r.default.min(c):a-r.default.max(c);f&&(t[s]=r.default.mapValues(u,(function(t){return t+f})))}}))}))}function g(t,e){return r.default.mapValues(t.ul,(function(n,i){if(e)return t[e.toLowerCase()][i];var a=r.default.sortBy(r.default.map(t,i));return(a[1]+a[2])/2}))}function y(t){var e=a.default.buildLayerMatrix(t),n=r.default.merge(s(t,e),u(t,e)),i={},o=void 0;r.default.forEach(["u","d"],(function(a){o="u"===a?e:r.default.values(e).reverse(),r.default.forEach(["l","r"],(function(e){"r"===e&&(o=r.default.map(o,(function(t){return r.default.values(t).reverse()})));var s=r.default.bind("u"===a?t.predecessors:t.successors,t),u=l(0,o,n,s),c=h(t,o,u.root,u.align,"r"===e);"r"===e&&(c=r.default.mapValues(c,(function(t){return-t}))),i[a+e]=c}))}));var c=d(t,i);return p(i,c),g(i,t.graph().align)}function b(t,e){return t.node(e).width}e.default={positionX:y,findType1Conflicts:s,findType2Conflicts:u,addConflict:c,hasConflict:f,verticalAlignment:l,horizontalCompaction:h,alignCoordinates:p,findSmallestWidthAlignment:d,balance:g}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=o(n(0)),i=o(n(1)),a=n(5);function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){(function(t){var e=i.default.buildLayerMatrix(t),n=t.graph().ranksep,a=0;r.default.forEach(e,(function(e){var i=r.default.max(r.default.map(e,(function(e){return t.node(e).height})));r.default.forEach(e,(function(e){t.node(e).y=a+i/2})),a+=i+n}))})(t=i.default.asNonCompoundGraph(t)),r.default.forEach((0,a.positionX)(t),(function(e,n){t.node(n).x=e}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e,n){var r={},a=void 0;i.default.forEach(n,(function(n){for(var i=t.parent(n),o=void 0,s=void 0;i;){if((o=t.parent(i))?(s=r[o],r[o]=i):(s=a,a=i),s&&s!==i)return void e.setEdge(s,i);i=o}}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r},a=n(2);e.default=function(t,e,n){var r=function(t){for(var e=void 0;t.hasNode(e=i.default.uniqueId("_root")););return e}(t),o=new a.Graph({compound:!0}).setGraph({root:r}).setDefaultNodeLabel((function(e){return t.node(e)}));return i.default.forEach(t.nodes(),(function(a){var s=t.node(a),u=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(o.setNode(a),o.setParent(a,u||r),i.default.forEach(t[n](a),(function(e){var n=e.v===a?e.w:e.v,r=o.edge(n,a),s=i.default.isUndefined(r)?0:r.weight;o.setEdge(n,a,{weight:t.edge(e).weight+s})})),i.default.has(s,"minRank")&&o.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))})),o}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(0)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){for(var i=void 0;e.length&&(i=r.default.last(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}e.default=function(t,e){var n,a=i.default.partition(t,(function(t){return r.default.has(t,"barycenter")})),s=a.lhs,u=r.default.sortBy(a.rhs,(function(t){return-t.i})),c=[],f=0,l=0,h=0;s.sort((n=!!e,function(t,e){return t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:n?e.i-t.i:t.i-e.i})),h=o(c,u,h),r.default.forEach(s,(function(t){h+=t.vs.length,c.push(t.vs),f+=t.barycenter*t.weight,l+=t.weight,h=o(c,u,h)}));var d={vs:r.default.flatten(c,!0)};return l&&(d.barycenter=f/l,d.weight=l),d}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){var n={};return i.default.forEach(t,(function(t,e){var r=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};i.default.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)})),i.default.forEach(e.edges(),(function(t){var e=n[t.v],r=n[t.w];i.default.isUndefined(e)||i.default.isUndefined(r)||(r.indegree++,e.out.push(n[t.w]))})),function(t){var e=[];function n(t){return function(e){var n,r,a,o;e.merged||(i.default.isUndefined(e.barycenter)||i.default.isUndefined(t.barycenter)||e.barycenter>=t.barycenter)&&(r=e,a=0,o=0,(n=t).weight&&(a+=n.barycenter*n.weight,o+=n.weight),r.weight&&(a+=r.barycenter*r.weight,o+=r.weight),n.vs=r.vs.concat(n.vs),n.barycenter=a/o,n.weight=o,n.i=Math.min(r.i,n.i),r.merged=!0)}}function r(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var a=t.pop();e.push(a),i.default.forEach(a.in.reverse(),n(a)),i.default.forEach(a.out,r(a))}return i.default.chain(e).filter((function(t){return!t.merged})).map((function(t){return i.default.pick(t,["vs","i","barycenter","weight"])})).value()}(i.default.filter(n,(function(t){return!t.indegree})))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t,e){return i.default.map(e,(function(e){var n=t.inEdges(e);if(n.length){var r=i.default.reduce(n,(function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}}),{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(0)),i=s(n(11)),a=s(n(10)),o=s(n(9));function s(t){return t&&t.__esModule?t:{default:t}}e.default=function t(e,n,s,u){var c=e.children(n),f=e.node(n),l=f?f.borderLeft:void 0,h=f?f.borderRight:void 0,d={};l&&(c=r.default.filter(c,(function(t){return t!==l&&t!==h})));var p=(0,i.default)(e,c);r.default.forEach(p,(function(n){if(e.children(n.v).length){var i=t(e,n.v,s,u);d[n.v]=i,r.default.has(i,"barycenter")&&(a=n,o=i,r.default.isUndefined(a.barycenter)?(a.barycenter=o.barycenter,a.weight=o.weight):(a.barycenter=(a.barycenter*a.weight+o.barycenter*o.weight)/(a.weight+o.weight),a.weight+=o.weight))}var a,o}));var g=(0,a.default)(p,s);!function(t,e){r.default.forEach(t,(function(t){t.vs=r.default.flatten(t.vs.map((function(t){return e[t]?e[t].vs:t})),!0)}))}(g,d);var y=(0,o.default)(g,u);if(l&&(y.vs=r.default.flatten([l,y.vs,h],!0),e.predecessors(l).length)){var b=e.node(e.predecessors(l)[0]),m=e.node(e.predecessors(h)[0]);r.default.has(y,"barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+b.order+m.order)/(y.weight+2),y.weight+=2}return y}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};function a(t,e,n){for(var r=i.default.zipObject(n,i.default.map(n,(function(t,e){return e}))),a=i.default.flatten(i.default.map(e,(function(e){return i.default.chain(t.outEdges(e)).map((function(e){return{pos:r[e.w],weight:t.edge(e).weight}})).sortBy("pos").value()})),!0),o=1;o<n.length;)o<<=1;var s=2*o-1;o-=1;var u=i.default.map(new Array(s),(function(){return 0})),c=0;return i.default.forEach(a.forEach((function(t){var e=t.pos+o;u[e]+=t.weight;for(var n=0;e>0;)e%2&&(n+=u[e+1]),u[e=e-1>>1]+=t.weight;c+=t.weight*n}))),c}e.default=function(t,e){for(var n=0,r=1;r<e.length;++r)n+=a(t,e[r-1],e[r]);return n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t){var e={},n=i.default.filter(t.nodes(),(function(e){return!t.children(e).length})),r=i.default.max(i.default.map(n,(function(e){return t.node(e).rank}))),a=i.default.map(i.default.range(r+1),(function(){return[]})),o=i.default.sortBy(n,(function(e){return t.node(e).rank}));return i.default.forEach(o,(function n(r){if(!i.default.has(e,r)){e[r]=!0;var o=t.node(r);a[o.rank].push(r),i.default.forEach(t.successors(r),n)}})),a}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=l(n(0)),i=n(2),a=l(n(14)),o=l(n(13)),s=l(n(12)),u=l(n(8)),c=l(n(7)),f=l(n(1));function l(t){return t&&t.__esModule?t:{default:t}}function h(t,e,n){return r.default.map(e,(function(e){return(0,u.default)(t,e,n)}))}function d(t,e){var n=new i.Graph;r.default.forEach(t,(function(t){var i=t.graph().root,a=(0,s.default)(t,i,n,e);r.default.forEach(a.vs,(function(e,n){t.node(e).order=n})),(0,c.default)(t,n,a.vs)}))}function p(t,e){r.default.forEach(e,(function(e){r.default.forEach(e,(function(e,n){t.node(e).order=n}))}))}e.default=function(t){var e=f.default.maxRank(t),n=h(t,r.default.range(1,e+1),"inEdges"),i=h(t,r.default.range(e-1,-1,-1),"outEdges"),s=(0,a.default)(t);p(t,s);for(var u=Number.POSITIVE_INFINITY,c=void 0,l=0,g=0;g<4;++l,++g){d(l%2?n:i,l%4>=2),s=f.default.buildLayerMatrix(t);var y=(0,o.default)(t,s);y<u&&(g=0,c=r.default.cloneDeep(s),u=y)}p(t,c)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};function a(t){i.default.forEach(t.nodes(),(function(e){o(t.node(e))})),i.default.forEach(t.edges(),(function(e){o(t.edge(e))}))}function o(t){var e=t.width;t.width=t.height,t.height=e}function s(t){t.y=-t.y}function u(t){var e=t.x;t.x=t.y,t.y=e}e.default={adjust:function(t){var e=t.graph().rankdir.toLowerCase();"lr"!==e&&"rl"!==e||a(t)},undo:function(t){var e=t.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(t){i.default.forEach(t.nodes(),(function(e){s(t.node(e))})),i.default.forEach(t.edges(),(function(e){var n=t.edge(e);i.default.forEach(n.points,s),i.default.has(n,"y")&&s(n)}))}(t),"lr"!==e&&"rl"!==e||(function(t){i.default.forEach(t.nodes(),(function(e){u(t.node(e))})),i.default.forEach(t.edges(),(function(e){var n=t.edge(e);i.default.forEach(n.points,u),i.default.has(n,"x")&&u(n)}))}(t),a(t))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(0)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n,r,a,o){var s={width:0,height:0,rank:o,borderType:e},u=a[e][o-1],c=i.default.addDummyNode(t,"border",s,n);a[e][o]=c,t.setParent(c,r),u&&t.setEdge(u,c,{weight:1})}e.default=function(t){r.default.forEach(t.children(),(function e(n){var i=t.children(n),a=t.node(n);if(i.length&&r.default.forEach(i,e),r.default.has(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var s=a.minRank,u=a.maxRank+1;s<u;++s)o(t,"borderLeft","_bl",n,a,s),o(t,"borderRight","_br",n,a,s)}}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(0)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}e.default={run:function(t){var e=i.default.addDummyNode(t,"root",{},"_root"),n=function(t){var e={};return r.default.forEach(t.children(),(function(n){!function n(i,a){var o=t.children(i);o&&o.length&&r.default.forEach(o,(function(t){n(t,a+1)})),e[i]=a}(n,1)})),e}(t),a=r.default.max(r.default.values(n))-1,o=2*a+1;t.graph().nestingRoot=e,r.default.forEach(t.edges(),(function(e){t.edge(e).minlen*=o}));var s=function(t){return r.default.reduce(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)}(t)+1;r.default.forEach(t.children(),(function(u){!function t(e,n,a,o,s,u,c){var f=e.children(c);if(f.length){var l=i.default.addBorderNode(e,"_bt"),h=i.default.addBorderNode(e,"_bb"),d=e.node(c);e.setParent(l,c),d.borderTop=l,e.setParent(h,c),d.borderBottom=h,r.default.forEach(f,(function(r){t(e,n,a,o,s,u,r);var i=e.node(r),f=i.borderTop?i.borderTop:r,d=i.borderBottom?i.borderBottom:r,p=i.borderTop?o:2*o,g=f!==d?1:s-u[c]+1;e.setEdge(l,f,{weight:p,minlen:g,nestingEdge:!0}),e.setEdge(d,h,{weight:p,minlen:g,nestingEdge:!0})})),e.parent(c)||e.setEdge(n,l,{weight:0,minlen:s+u[c]})}else c!==n&&e.setEdge(n,c,{weight:0,minlen:a})}(t,e,o,s,a,n,u)})),t.graph().nodeRankFactor=o},cleanup:function(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,r.default.forEach(t.edges(),(function(e){t.edge(e).nestingEdge&&t.removeEdge(e)}))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(0))&&r.__esModule?r:{default:r};e.default=function(t){var e=function(t){var e={},n=0;return i.default.forEach(t.children(),(function r(a){var o=n;i.default.forEach(t.children(a),r),e[a]={low:o,lim:n++}})),e}(t);i.default.forEach(t.graph().dummyChains,(function(n){for(var r=t.node(n),i=r.edgeObj,a=function(t,e,n,r){var i,a=[],o=[],s=Math.min(e[n].low,e[r].low),u=Math.max(e[n].lim,e[r].lim),c=void 0;c=n;do{c=t.parent(c),a.push(c)}while(c&&(e[c].low>s||u>e[c].lim));for(i=c,c=r;(c=t.parent(c))!==i;)o.push(c);return{path:a.concat(o.reverse()),lca:i}}(t,e,i.v,i.w),o=a.path,s=a.lca,u=0,c=o[u],f=!0;n!==i.w;){if(r=t.node(n),f){for(;(c=o[u])!==s&&t.node(c).maxRank<r.rank;)u++;c===s&&(f=!1)}if(!f){for(;u<o.length-1&&t.node(c=o[u+1]).minRank<=r.rank;)u++;c=o[u]}t.setParent(n,c),n=t.successors(n)[0]}}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(n(0)),i=n(2),a=u(n(4)),o=n(3),s=n(1);function u(t){return t&&t.__esModule?t:{default:t}}var c=i.alg.preorder,f=i.alg.postorder;function l(t){t=(0,s.simplify)(t),(0,o.longestPath)(t);var e=(0,a.default)(t);p(e),h(e,t);for(var n=void 0;n=g(e);)b(e,t,n,y(e,t,n))}function h(t,e){var n=f(t,t.nodes());n=n.slice(0,n.length-1),r.default.forEach(n,(function(n){!function(t,e,n){var r=t.node(n).parent;t.edge(n,r).cutvalue=d(t,e,n)}(t,e,n)}))}function d(t,e,n){var i=t.node(n).parent,a=!0,o=e.edge(n,i),s=0;return o||(a=!1,o=e.edge(i,n)),s=o.weight,r.default.forEach(e.nodeEdges(n),(function(r){var o,u,c=r.v===n,f=c?r.w:r.v;if(f!==i){var l=c===a,h=e.edge(r).weight;if(s+=l?h:-h,o=n,u=f,t.hasEdge(o,u)){var d=t.edge(n,f).cutvalue;s+=l?-d:d}}})),s}function p(t,e){arguments.length<2&&(e=t.nodes()[0]),function t(e,n,i,a,o){var s=i,u=e.node(a);return n[a]=!0,r.default.forEach(e.neighbors(a),(function(o){r.default.has(n,o)||(i=t(e,n,i,o,a))})),u.low=s,u.lim=i++,o?u.parent=o:delete u.parent,i}(t,{},1,e)}function g(t){return r.default.find(t.edges(),(function(e){return t.edge(e).cutvalue<0}))}function y(t,e,n){var i=n.v,a=n.w;e.hasEdge(i,a)||(i=n.w,a=n.v);var s=t.node(i),u=t.node(a),c=s,f=!1;s.lim>u.lim&&(c=u,f=!0);var l=r.default.filter(e.edges(),(function(e){return f===m(t,t.node(e.v),c)&&f!==m(t,t.node(e.w),c)}));return r.default.minBy(l,(function(t){return(0,o.slack)(e,t)}))}function b(t,e,n,i){var a=n.v,o=n.w;t.removeEdge(a,o),t.setEdge(i.v,i.w,{}),p(t),h(t,e),function(t,e){var n=r.default.find(t.nodes(),(function(t){return!e.node(t).parent})),i=c(t,n);i=i.slice(1),r.default.forEach(i,(function(n){var r=t.node(n).parent,i=e.edge(n,r),a=!1;i||(i=e.edge(r,n),a=!0),e.node(n).rank=e.node(r).rank+(a?i.minlen:-i.minlen)}))}(t,e)}function m(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}l.initLowLimValues=p,l.initCutValues=h,l.calcCutValue=d,l.leaveEdge=g,l.enterEdge=y,l.exchangeEdges=b,e.default=l},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=o(n(4)),a=o(n(20));function o(t){return t&&t.__esModule?t:{default:t}}var s=r.longestPath;function u(t){(0,a.default)(t)}e.default=function(t){switch(t.graph().ranker){case"network-simplex":u(t);break;case"tight-tree":!function(t){(0,r.longestPath)(t),(0,i.default)(t)}(t);break;case"longest-path":s(t);break;default:u(t)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(0)),i=a(n(1));function a(t){return t&&t.__esModule?t:{default:t}}e.default={run:function(t){t.graph().dummyChains=[],r.default.forEach(t.edges(),(function(e){!function(t,e){var n=e.v,r=t.node(n).rank,a=e.w,o=t.node(a).rank,s=e.name,u=t.edge(e),c=u.labelRank;if(o!==r+1){t.removeEdge(e);var f=void 0,l=void 0,h=void 0;for(h=0,++r;r<o;++h,++r)u.points=[],l={width:0,height:0,edgeLabel:u,edgeObj:e,rank:r},f=i.default.addDummyNode(t,"edge",l,"_d"),r===c&&(l.width=u.width,l.height=u.height,l.dummy="edge-label",l.labelpos=u.labelpos),t.setEdge(n,f,{weight:u.weight},s),0===h&&t.graph().dummyChains.push(f),n=f;t.setEdge(n,a,{weight:u.weight},s)}}(t,e)}))},undo:function(t){r.default.forEach(t.graph().dummyChains,(function(e){var n=t.node(e),r=n.edgeLabel,i=null;for(t.setEdge(n.edgeObj,r);n.dummy;)i=t.successors(e)[0],t.removeNode(e),r.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),e=i,n=t.node(e)}))}}},function(t,e,n){"use strict";function r(){var t={};t._next=t._prev=t,this._sentinel=t}function i(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function a(t,e){if("_next"!==t&&"_prev"!==t)return e}Object.defineProperty(e,"__esModule",{value:!0}),r.prototype.dequeue=function(){var t=this._sentinel,e=t._prev;if(e!==t)return i(e),e},r.prototype.enqueue=function(t){var e=this._sentinel;t._prev&&t._next&&i(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e},r.prototype.toString=function(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,a)),n=n._prev;return"["+t.join(", ")+"]"},e.default=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=o(n(0)),i=n(2),a=o(n(23));function o(t){return t&&t.__esModule?t:{default:t}}var s=r.default.constant(1);function u(t,e,n,i,a){var o=a?[]:void 0;return r.default.forEach(t.inEdges(i.v),(function(r){var i=t.edge(r),s=t.node(r.v);a&&o.push({v:r.v,w:r.w}),s.out-=i,c(e,n,s)})),r.default.forEach(t.outEdges(i.v),(function(r){var i=t.edge(r),a=r.w,o=t.node(a);o.in-=i,c(e,n,o)})),t.removeNode(i.v),o}function c(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}e.default=function(t,e){if(t.nodeCount()<=1)return[];var n=function(t,e){var n=new i.Graph,o=0,s=0;r.default.forEach(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),r.default.forEach(t.edges(),(function(t){var r=n.edge(t.v,t.w)||0,i=e(t),a=r+i;n.setEdge(t.v,t.w,a),s=Math.max(s,n.node(t.v).out+=i),o=Math.max(o,n.node(t.w).in+=i)}));var u=r.default.range(s+o+3).map((function(){return new a.default})),f=o+1;return r.default.forEach(n.nodes(),(function(t){c(u,f,n.node(t))})),{graph:n,buckets:u,zeroIdx:f}}(t,e||s),o=function(t,e,n){for(var r=[],i=e[e.length-1],a=e[0],o=void 0;t.nodeCount();){for(;o=a.dequeue();)u(t,e,n,o);for(;o=i.dequeue();)u(t,e,n,o);if(t.nodeCount())for(var s=e.length-2;s>0;--s)if(o=e[s].dequeue()){r=r.concat(u(t,e,n,o,!0));break}}return r}(n.graph,n.buckets,n.zeroIdx);return r.default.flatten(r.default.map(o,(function(e){return t.outEdges(e.v,e.w)})),!0)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a(n(0)),i=a(n(24));function a(t){return t&&t.__esModule?t:{default:t}}e.default={run:function(t){var e="greedy"===t.graph().acyclicer?(0,i.default)(t,function(t){return function(e){return t.edge(e).weight}}(t)):function(t){var e=[],n={},i={};return r.default.forEach(t.nodes(),(function a(o){r.default.has(i,o)||(i[o]=!0,n[o]=!0,r.default.forEach(t.outEdges(o),(function(t){r.default.has(n,t.w)?e.push(t):a(t.w)})),delete n[o])})),e}(t);r.default.forEach(e,(function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,r.default.uniqueId("rev"))}))},undo:function(t){r.default.forEach(t.edges(),(function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}}))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=y(n(0)),i=n(2),a=y(n(25)),o=y(n(22)),s=y(n(21)),u=n(1),c=y(u),f=y(n(19)),l=y(n(18)),h=y(n(17)),d=y(n(16)),p=y(n(15)),g=y(n(6));function y(t){return t&&t.__esModule?t:{default:t}}var b=["nodesep","edgesep","ranksep","marginx","marginy"],m={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},v=["acyclicer","ranker","rankdir","align"],_=["width","height"],w={width:0,height:0},x=["minlen","weight","width","height","labeloffset"],k={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},E=["labelpos"];function A(t,e){return r.default.mapValues(r.default.pick(t,e),Number)}function S(t){var e={};return r.default.forEach(t,(function(t,n){e[n.toLowerCase()]=t})),e}e.default=function(t,e){var n=e&&e.debugTiming?c.default.time:c.default.notime;n("layout",(function(){var e=n(" buildLayoutGraph",(function(){return function(t){var e=new i.Graph({multigraph:!0,compound:!0}),n=S(t.graph());return e.setGraph(r.default.merge({},m,A(n,b),r.default.pick(n,v))),r.default.forEach(t.nodes(),(function(n){var i=S(t.node(n));e.setNode(n,r.default.defaults(A(i,_),w)),e.setParent(n,t.parent(n))})),r.default.forEach(t.edges(),(function(n){var i=S(t.edge(n));e.setEdge(n,r.default.merge({},k,A(i,x),r.default.pick(i,E)))})),e}(t)}));n(" runLayout",(function(){!function(t,e){e(" makeSpaceForEdgeLabels",(function(){!function(t){var e=t.graph();e.ranksep/=2,r.default.forEach(t.edges(),(function(n){var r=t.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(t)})),e(" removeSelfEdges",(function(){!function(t){r.default.forEach(t.edges(),(function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}}))}(t)})),e(" acyclic",(function(){a.default.run(t)})),e(" nestingGraph.run",(function(){l.default.run(t)})),e(" rank",(function(){(0,s.default)(c.default.asNonCompoundGraph(t))})),e(" injectEdgeLabelProxies",(function(){!function(t){r.default.forEach(t.edges(),(function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e:e};c.default.addDummyNode(t,"edge-proxy",i,"_ep")}}))}(t)})),e(" removeEmptyRanks",(function(){(0,u.removeEmptyRanks)(t)})),e(" nestingGraph.cleanup",(function(){l.default.cleanup(t)})),e(" normalizeRanks",(function(){(0,u.normalizeRanks)(t)})),e(" assignRankMinMax",(function(){!function(t){var e=0;r.default.forEach(t.nodes(),(function(n){var r=t.node(n);r.borderTop&&(r.minRank=t.node(r.borderTop).rank,r.maxRank=t.node(r.borderBottom).rank,e=Math.max(e,r.maxRank))})),t.graph().maxRank=e}(t)})),e(" removeEdgeLabelProxies",(function(){!function(t){r.default.forEach(t.nodes(),(function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}(t)})),e(" normalize.run",(function(){o.default.run(t)})),e(" parentDummyChains",(function(){(0,f.default)(t)})),e(" addBorderSegments",(function(){(0,h.default)(t)})),e(" order",(function(){(0,p.default)(t)})),e(" insertSelfEdges",(function(){!function(t){var e=c.default.buildLayerMatrix(t);r.default.forEach(e,(function(e){var n=0;r.default.forEach(e,(function(e,i){var a=t.node(e);a.order=i+n,r.default.forEach(a.selfEdges,(function(e){c.default.addDummyNode(t,"selfedge",{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++n,e:e.e,label:e.label},"_se")})),delete a.selfEdges}))}))}(t)})),e(" adjustCoordinateSystem",(function(){d.default.adjust(t)})),e(" position",(function(){(0,g.default)(t)})),e(" positionSelfEdges",(function(){!function(t){r.default.forEach(t.nodes(),(function(e){var n=t.node(e);if("selfedge"===n.dummy){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}}))}(t)})),e(" removeBorderNodes",(function(){!function(t){r.default.forEach(t.nodes(),(function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),o=t.node(r.default.last(n.borderLeft)),s=t.node(r.default.last(n.borderRight));n.width=Math.abs(s.x-o.x),n.height=Math.abs(a.y-i.y),n.x=o.x+n.width/2,n.y=i.y+n.height/2}})),r.default.forEach(t.nodes(),(function(e){"border"===t.node(e).dummy&&t.removeNode(e)}))}(t)})),e(" normalize.undo",(function(){o.default.undo(t)})),e(" fixupEdgeLabelCoords",(function(){!function(t){r.default.forEach(t.edges(),(function(e){var n=t.edge(e);if(r.default.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(t)})),e(" undoCoordinateSystem",(function(){d.default.undo(t)})),e(" translateGraph",(function(){!function(t){var e=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,a=0,o=t.graph(),s=o.marginx||0,u=o.marginy||0;function c(t){var r=t.x,o=t.y,s=t.width,u=t.height;e=Math.min(e,r-s/2),n=Math.max(n,r+s/2),i=Math.min(i,o-u/2),a=Math.max(a,o+u/2)}r.default.forEach(t.nodes(),(function(e){c(t.node(e))})),r.default.forEach(t.edges(),(function(e){var n=t.edge(e);r.default.has(n,"x")&&c(n)})),e-=s,i-=u,r.default.forEach(t.nodes(),(function(n){var r=t.node(n);r.x-=e,r.y-=i})),r.default.forEach(t.edges(),(function(n){var a=t.edge(n);r.default.forEach(a.points,(function(t){t.x-=e,t.y-=i})),r.default.has(a,"x")&&(a.x-=e),r.default.has(a,"y")&&(a.y-=i)})),o.width=n-e+s,o.height=a-i+u}(t)})),e(" assignNodeIntersects",(function(){!function(t){r.default.forEach(t.edges(),(function(e){var n=t.edge(e),r=t.node(e.v),i=t.node(e.w),a=null,o=null;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(c.default.intersectRect(r,a)),n.points.push(c.default.intersectRect(i,o))}))}(t)})),e(" reversePoints",(function(){!function(t){r.default.forEach(t.edges(),(function(e){var n=t.edge(e);n.reversed&&n.points.reverse()}))}(t)})),e(" acyclic.undo",(function(){a.default.undo(t)}))}(e,n)})),n(" updateInputGraph",(function(){!function(t,e){r.default.forEach(t.nodes(),(function(n){var r=t.node(n),i=e.node(n);r&&(r.x=i.x,r.y=i.y,e.children(n).length&&(r.width=i.width,r.height=i.height))})),r.default.forEach(t.edges(),(function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,r.default.has(a,"x")&&(i.x=a.x,i.y=a.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}(t,e)}))}))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n(26))&&r.__esModule?r:{default:r};e.default={layout:i.default}}])},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,4],n=[1,3],r=[1,5],i=[1,8,9,10,11,26,89,90,91,92,93,94,106,107,110,111,112,114,115,121,122,123,124,125,126],a=[2,2],o=[1,12],s=[1,13],u=[1,14],c=[1,15],f=[1,22],l=[1,24],h=[1,25],d=[1,26],p=[1,27],g=[1,28],y=[1,40],b=[1,35],m=[1,37],v=[1,32],_=[1,36],w=[1,39],x=[1,43],k=[1,44],E=[1,45],A=[1,34],S=[1,38],M=[1,41],T=[1,42],D=[1,33],C=[1,50],O=[1,8,9,10,11,26,30,89,90,91,92,93,94,106,107,110,111,112,114,115,121,122,123,124,125,126],R=[1,54],N=[1,53],I=[1,55],B=[8,9,11,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],L=[8,9,11,34,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],P=[8,9,10,11,28,34,36,38,40,42,43,45,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,94,106,107,110,111,112,114,115,121,122,123,124,125,126],F=[94,106,107,110,111,112,114,115,121,122,123,124,125,126],q=[1,129],j=[1,149],U=[1,150],z=[1,151],Y=[1,152],H=[1,123],V=[1,125],$=[1,124],G=[1,120],W=[1,144],K=[1,145],X=[1,146],Z=[1,147],J=[1,148],Q=[1,153],tt=[1,154],et=[1,127],nt=[1,126],rt=[1,134],it=[1,137],at=[1,135],ot=[1,136],st=[1,130],ut=[1,142],ct=[1,141],ft=[1,122],lt=[1,132],ht=[1,133],dt=[1,138],pt=[1,139],gt=[1,140],yt=[1,143],bt=[49,83,94,106,107,110,111,112,114,115,121,122,123,124,125,126],mt=[8,9,10,11,26,30,89,90,91,92,93,94,106,107,110,111,112,114,115,121,122,123,124,125,126],vt=[1,171],_t=[1,173],wt=[1,174],xt=[8,9,10,11,12,13,26,28,29,30,37,39,41,42,44,46,50,51,53,55,57,59,61,63,65,66,67,69,71,73,83,89,90,91,92,93,94,95,98,105,106,107,110,111,112,114,115,117,121,122,123,124,125,126],kt=[8,9,10,11,13,94,106,107,110,111,112,114,115,121,122,123,124,125,126],Et=[10,107],At=[1,252],St=[1,256],Mt=[1,253],Tt=[1,257],Dt=[1,250],Ct=[1,247],Ot=[1,248],Rt=[1,249],Nt=[1,251],It=[1,254],Bt=[1,255],Lt=[8,9,11],Pt=[1,282],Ft=[8,9,11,107],qt=[8,9,10,11,89,101,105,106,107,110,111,112,113,114,115],jt={trace:function(){},yy:{},symbols_:{error:2,mermaidDoc:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,DIR:13,FirstStmtSeperator:14,ending:15,endToken:16,spaceList:17,spaceListNewline:18,verticeStatement:19,separator:20,styleStatement:21,linkStyleStatement:22,classDefStatement:23,classStatement:24,clickStatement:25,subgraph:26,text:27,SQS:28,SQE:29,end:30,link:31,node:32,vertex:33,STYLE_SEPARATOR:34,idString:35,PS:36,PE:37,"(-":38,"-)":39,DIAMOND_START:40,DIAMOND_STOP:41,TAGEND:42,TRAPSTART:43,TRAPEND:44,INVTRAPSTART:45,INVTRAPEND:46,linkStatement:47,arrowText:48,TESTSTR:49,"--":50,ARROW_POINT:51,START_DOUBLE_ARROW_POINT:52,ARROW_CIRCLE:53,START_DOUBLE_ARROW_CIRCLE:54,ARROW_CROSS:55,START_DOUBLE_ARROW_CROSS:56,ARROW_OPEN:57,"-.":58,DOTTED_ARROW_POINT:59,START_DOUBLE_DOTTED_ARROW_POINT:60,DOTTED_ARROW_CIRCLE:61,START_DOUBLE_DOTTED_ARROW_CIRCLE:62,DOTTED_ARROW_CROSS:63,START_DOUBLE_DOTTED_ARROW_CROSS:64,DOTTED_ARROW_OPEN:65,"==":66,THICK_ARROW_POINT:67,START_DOUBLE_THICK_ARROW_POINT:68,THICK_ARROW_CIRCLE:69,START_DOUBLE_THICK_ARROW_CIRCLE:70,THICK_ARROW_CROSS:71,START_DOUBLE_THICK_ARROW_CROSS:72,THICK_ARROW_OPEN:73,DOUBLE_ARROW_POINT:74,DOUBLE_ARROW_CIRCLE:75,DOUBLE_ARROW_CROSS:76,DOUBLE_DOTTED_ARROW_POINT:77,DOUBLE_DOTTED_ARROW_CIRCLE:78,DOUBLE_DOTTED_ARROW_CROSS:79,DOUBLE_THICK_ARROW_POINT:80,DOUBLE_THICK_ARROW_CIRCLE:81,DOUBLE_THICK_ARROW_CROSS:82,PIPE:83,textToken:84,STR:85,commentText:86,commentToken:87,keywords:88,STYLE:89,LINKSTYLE:90,CLASSDEF:91,CLASS:92,CLICK:93,DOWN:94,UP:95,textNoTags:96,textNoTagsToken:97,DEFAULT:98,stylesOpt:99,alphaNum:100,HEX:101,numList:102,INTERPOLATE:103,commentStatement:104,PCT:105,NUM:106,COMMA:107,style:108,styleComponent:109,ALPHA:110,COLON:111,MINUS:112,UNIT:113,BRKT:114,DOT:115,graphCodeTokens:116,TAGSTART:117,alphaNumToken:118,idStringToken:119,alphaNumStatement:120,PUNCTUATION:121,UNICODE_TEXT:122,PLUS:123,EQUALS:124,MULT:125,UNDERSCORE:126,QUOTE:127,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"DIR",26:"subgraph",28:"SQS",29:"SQE",30:"end",34:"STYLE_SEPARATOR",36:"PS",37:"PE",38:"(-",39:"-)",40:"DIAMOND_START",41:"DIAMOND_STOP",42:"TAGEND",43:"TRAPSTART",44:"TRAPEND",45:"INVTRAPSTART",46:"INVTRAPEND",49:"TESTSTR",50:"--",51:"ARROW_POINT",52:"START_DOUBLE_ARROW_POINT",53:"ARROW_CIRCLE",54:"START_DOUBLE_ARROW_CIRCLE",55:"ARROW_CROSS",56:"START_DOUBLE_ARROW_CROSS",57:"ARROW_OPEN",58:"-.",59:"DOTTED_ARROW_POINT",60:"START_DOUBLE_DOTTED_ARROW_POINT",61:"DOTTED_ARROW_CIRCLE",62:"START_DOUBLE_DOTTED_ARROW_CIRCLE",63:"DOTTED_ARROW_CROSS",64:"START_DOUBLE_DOTTED_ARROW_CROSS",65:"DOTTED_ARROW_OPEN",66:"==",67:"THICK_ARROW_POINT",68:"START_DOUBLE_THICK_ARROW_POINT",69:"THICK_ARROW_CIRCLE",70:"START_DOUBLE_THICK_ARROW_CIRCLE",71:"THICK_ARROW_CROSS",72:"START_DOUBLE_THICK_ARROW_CROSS",73:"THICK_ARROW_OPEN",74:"DOUBLE_ARROW_POINT",75:"DOUBLE_ARROW_CIRCLE",76:"DOUBLE_ARROW_CROSS",77:"DOUBLE_DOTTED_ARROW_POINT",78:"DOUBLE_DOTTED_ARROW_CIRCLE",79:"DOUBLE_DOTTED_ARROW_CROSS",80:"DOUBLE_THICK_ARROW_POINT",81:"DOUBLE_THICK_ARROW_CIRCLE",82:"DOUBLE_THICK_ARROW_CROSS",83:"PIPE",85:"STR",89:"STYLE",90:"LINKSTYLE",91:"CLASSDEF",92:"CLASS",93:"CLICK",94:"DOWN",95:"UP",98:"DEFAULT",101:"HEX",103:"INTERPOLATE",105:"PCT",106:"NUM",107:"COMMA",110:"ALPHA",111:"COLON",112:"MINUS",113:"UNIT",114:"BRKT",115:"DOT",117:"TAGSTART",121:"PUNCTUATION",122:"UNICODE_TEXT",123:"PLUS",124:"EQUALS",125:"MULT",126:"UNDERSCORE",127:"QUOTE"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,3],[15,2],[15,1],[16,1],[16,1],[16,1],[14,1],[14,1],[14,2],[18,2],[18,2],[18,1],[18,1],[17,2],[17,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[20,1],[20,1],[20,1],[19,3],[19,1],[32,1],[32,3],[33,4],[33,5],[33,6],[33,7],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,6],[33,7],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,1],[33,2],[31,2],[31,3],[31,3],[31,1],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[31,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[48,3],[27,1],[27,2],[27,1],[86,1],[86,2],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[96,1],[96,2],[23,5],[23,5],[24,5],[25,5],[25,7],[25,5],[25,7],[21,5],[21,5],[22,5],[22,5],[22,9],[22,9],[22,7],[22,7],[104,3],[102,1],[102,3],[99,1],[99,3],[108,1],[108,2],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[109,1],[87,1],[87,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[84,1],[97,1],[97,1],[97,1],[97,1],[35,1],[35,2],[100,1],[100,2],[120,1],[120,1],[120,1],[120,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[118,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 2:this.$=[];break;case 3:a[s]!==[]&&a[s-1].push(a[s]),this.$=a[s-1];break;case 4:case 113:case 115:case 116:case 129:case 179:case 181:case 182:this.$=a[s];break;case 11:r.setDirection(a[s-1]),this.$=a[s-1];break;case 26:this.$=a[s-1];break;case 27:case 28:case 29:case 30:case 31:this.$=[];break;case 32:this.$=r.addSubGraph(a[s-6],a[s-1],a[s-4]);break;case 33:this.$=r.addSubGraph(a[s-3],a[s-1],a[s-3]);break;case 34:this.$=r.addSubGraph(void 0,a[s-1],void 0);break;case 38:r.addLink(a[s-2][0],a[s][0],a[s-1]),this.$=a[s].concat(a[s-2]);break;case 39:this.$=a[s];break;case 40:this.$=[a[s]];break;case 41:this.$=[a[s-2]],r.setClass(a[s-2],a[s]);break;case 42:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"square");break;case 43:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"square");break;case 44:this.$=a[s-5],r.addVertex(a[s-5],a[s-2],"circle");break;case 45:this.$=a[s-6],r.addVertex(a[s-6],a[s-3],"circle");break;case 46:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"ellipse");break;case 47:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"ellipse");break;case 48:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"round");break;case 49:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"round");break;case 50:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"diamond");break;case 51:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"diamond");break;case 52:this.$=a[s-5],r.addVertex(a[s-5],a[s-2],"hexagon");break;case 53:this.$=a[s-6],r.addVertex(a[s-6],a[s-3],"hexagon");break;case 54:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"odd");break;case 55:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"odd");break;case 56:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"trapezoid");break;case 57:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"trapezoid");break;case 58:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"inv_trapezoid");break;case 59:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"inv_trapezoid");break;case 60:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"lean_right");break;case 61:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"lean_right");break;case 62:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"lean_left");break;case 63:this.$=a[s-4],r.addVertex(a[s-4],a[s-2],"lean_left");break;case 64:this.$=a[s],r.addVertex(a[s]);break;case 65:this.$=a[s-1],r.addVertex(a[s-1]);break;case 66:a[s-1].text=a[s],this.$=a[s-1];break;case 67:case 68:a[s-2].text=a[s-1],this.$=a[s-2];break;case 69:this.$=a[s];break;case 70:this.$={type:"arrow",stroke:"normal",text:a[s-1]};break;case 71:this.$={type:"double_arrow_point",stroke:"normal",text:a[s-1]};break;case 72:this.$={type:"arrow_circle",stroke:"normal",text:a[s-1]};break;case 73:this.$={type:"double_arrow_circle",stroke:"normal",text:a[s-1]};break;case 74:this.$={type:"arrow_cross",stroke:"normal",text:a[s-1]};break;case 75:this.$={type:"double_arrow_cross",stroke:"normal",text:a[s-1]};break;case 76:this.$={type:"arrow_open",stroke:"normal",text:a[s-1]};break;case 77:this.$={type:"arrow",stroke:"dotted",text:a[s-1]};break;case 78:this.$={type:"double_arrow_point",stroke:"dotted",text:a[s-1]};break;case 79:this.$={type:"arrow_circle",stroke:"dotted",text:a[s-1]};break;case 80:this.$={type:"double_arrow_circle",stroke:"dotted",text:a[s-1]};break;case 81:this.$={type:"arrow_cross",stroke:"dotted",text:a[s-1]};break;case 82:this.$={type:"double_arrow_cross",stroke:"dotted",text:a[s-1]};break;case 83:this.$={type:"arrow_open",stroke:"dotted",text:a[s-1]};break;case 84:this.$={type:"arrow",stroke:"thick",text:a[s-1]};break;case 85:this.$={type:"double_arrow_point",stroke:"thick",text:a[s-1]};break;case 86:this.$={type:"arrow_circle",stroke:"thick",text:a[s-1]};break;case 87:this.$={type:"double_arrow_circle",stroke:"thick",text:a[s-1]};break;case 88:this.$={type:"arrow_cross",stroke:"thick",text:a[s-1]};break;case 89:this.$={type:"double_arrow_cross",stroke:"thick",text:a[s-1]};break;case 90:this.$={type:"arrow_open",stroke:"thick",text:a[s-1]};break;case 91:this.$={type:"arrow",stroke:"normal"};break;case 92:this.$={type:"double_arrow_point",stroke:"normal"};break;case 93:this.$={type:"arrow_circle",stroke:"normal"};break;case 94:this.$={type:"double_arrow_circle",stroke:"normal"};break;case 95:this.$={type:"arrow_cross",stroke:"normal"};break;case 96:this.$={type:"double_arrow_cross",stroke:"normal"};break;case 97:this.$={type:"arrow_open",stroke:"normal"};break;case 98:this.$={type:"arrow",stroke:"dotted"};break;case 99:this.$={type:"double_arrow_point",stroke:"dotted"};break;case 100:this.$={type:"arrow_circle",stroke:"dotted"};break;case 101:this.$={type:"double_arrow_circle",stroke:"dotted"};break;case 102:this.$={type:"arrow_cross",stroke:"dotted"};break;case 103:this.$={type:"double_arrow_cross",stroke:"dotted"};break;case 104:this.$={type:"arrow_open",stroke:"dotted"};break;case 105:this.$={type:"arrow",stroke:"thick"};break;case 106:this.$={type:"double_arrow_point",stroke:"thick"};break;case 107:this.$={type:"arrow_circle",stroke:"thick"};break;case 108:this.$={type:"double_arrow_circle",stroke:"thick"};break;case 109:this.$={type:"arrow_cross",stroke:"thick"};break;case 110:this.$={type:"double_arrow_cross",stroke:"thick"};break;case 111:this.$={type:"arrow_open",stroke:"thick"};break;case 112:this.$=a[s-1];break;case 114:case 117:case 130:case 180:this.$=a[s-1]+""+a[s];break;case 131:case 132:this.$=a[s-4],r.addClass(a[s-2],a[s]);break;case 133:this.$=a[s-4],r.setClass(a[s-2],a[s]);break;case 134:this.$=a[s-4],r.setClickEvent(a[s-2],a[s],void 0);break;case 135:this.$=a[s-6],r.setClickEvent(a[s-4],a[s-2],a[s]);break;case 136:this.$=a[s-4],r.setLink(a[s-2],a[s],void 0);break;case 137:this.$=a[s-6],r.setLink(a[s-4],a[s-2],a[s]);break;case 138:this.$=a[s-4],r.addVertex(a[s-2],void 0,void 0,a[s]);break;case 139:case 141:this.$=a[s-4],r.updateLink(a[s-2],a[s]);break;case 140:this.$=a[s-4],r.updateLink([a[s-2]],a[s]);break;case 142:this.$=a[s-8],r.updateLinkInterpolate([a[s-6]],a[s-2]),r.updateLink([a[s-6]],a[s]);break;case 143:this.$=a[s-8],r.updateLinkInterpolate(a[s-6],a[s-2]),r.updateLink(a[s-6],a[s]);break;case 144:this.$=a[s-6],r.updateLinkInterpolate([a[s-4]],a[s]);break;case 145:this.$=a[s-6],r.updateLinkInterpolate(a[s-4],a[s]);break;case 147:case 149:this.$=[a[s]];break;case 148:case 150:a[s-2].push(a[s]),this.$=a[s-2];break;case 152:this.$=a[s-1]+a[s];break;case 177:this.$=a[s];break;case 178:this.$=a[s-1]+""+a[s];break;case 183:this.$="v";break;case 184:this.$="-"}},table:[{3:1,4:2,9:e,10:n,12:r},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:n,12:r},{4:8,9:e,10:n,12:r},{13:[1,9]},{1:[2,1],6:10,7:11,8:o,9:s,10:u,11:c,19:16,21:17,22:18,23:19,24:20,25:21,26:f,32:23,33:29,35:30,89:l,90:h,91:d,92:p,93:g,94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,119:31,121:E,122:A,123:S,124:M,125:T,126:D},t(i,[2,9]),t(i,[2,10]),{8:[1,47],9:[1,48],10:C,14:46,17:49},t(O,[2,3]),t(O,[2,4]),t(O,[2,5]),t(O,[2,6]),t(O,[2,7]),t(O,[2,8]),{8:R,9:N,11:I,20:51,31:52,47:56,50:[1,57],51:[1,69],52:[1,58],53:[1,71],54:[1,59],55:[1,73],56:[1,60],57:[1,75],58:[1,61],59:[1,76],60:[1,62],61:[1,78],62:[1,63],63:[1,80],64:[1,64],65:[1,82],66:[1,65],67:[1,83],68:[1,66],69:[1,85],70:[1,67],71:[1,87],72:[1,68],73:[1,89],74:[1,70],75:[1,72],76:[1,74],77:[1,77],78:[1,79],79:[1,81],80:[1,84],81:[1,86],82:[1,88]},{8:R,9:N,11:I,20:90},{8:R,9:N,11:I,20:91},{8:R,9:N,11:I,20:92},{8:R,9:N,11:I,20:93},{8:R,9:N,11:I,20:94},{8:R,9:N,10:[1,95],11:I,20:96},t(B,[2,39]),{10:[1,97]},{10:[1,98]},{10:[1,99]},{10:[1,100]},{10:[1,101]},t(B,[2,40],{34:[1,102]}),t(L,[2,64],{17:110,119:111,10:C,28:[1,103],36:[1,104],38:[1,105],40:[1,106],42:[1,107],43:[1,108],45:[1,109],94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,121:E,122:A,123:S,124:M,125:T,126:D}),t(P,[2,177]),t(P,[2,197]),t(P,[2,198]),t(P,[2,199]),t(P,[2,200]),t(P,[2,201]),t(P,[2,202]),t(P,[2,203]),t(P,[2,204]),t(P,[2,205]),t(P,[2,206]),t(P,[2,207]),t(P,[2,208]),t(P,[2,209]),t(P,[2,210]),t(i,[2,11]),t(i,[2,17]),t(i,[2,18]),{9:[1,112]},t(L,[2,25],{17:113,10:C}),t(O,[2,26]),{32:114,33:29,35:30,94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,119:31,121:E,122:A,123:S,124:M,125:T,126:D},t(O,[2,35]),t(O,[2,36]),t(O,[2,37]),t(F,[2,69],{48:115,49:[1,116],83:[1,117]}),{10:q,12:j,13:U,26:z,27:118,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:155,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:156,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:157,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:158,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:159,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:160,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:161,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:162,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:163,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:164,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:165,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(bt,[2,91]),t(bt,[2,92]),t(bt,[2,93]),t(bt,[2,94]),t(bt,[2,95]),t(bt,[2,96]),t(bt,[2,97]),t(bt,[2,98]),t(bt,[2,99]),t(bt,[2,100]),t(bt,[2,101]),t(bt,[2,102]),t(bt,[2,103]),t(bt,[2,104]),t(bt,[2,105]),t(bt,[2,106]),t(bt,[2,107]),t(bt,[2,108]),t(bt,[2,109]),t(bt,[2,110]),t(bt,[2,111]),t(O,[2,27]),t(O,[2,28]),t(O,[2,29]),t(O,[2,30]),t(O,[2,31]),{10:q,12:j,13:U,26:z,27:166,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(mt,a,{5:167}),{13:vt,94:_t,100:168,101:[1,169],106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{98:[1,175],102:176,106:[1,177]},{13:vt,94:_t,98:[1,178],100:179,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{13:vt,94:_t,100:180,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{13:vt,94:_t,100:181,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{35:182,94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,119:31,121:E,122:A,123:S,124:M,125:T,126:D},{10:q,12:j,13:U,26:z,27:183,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:185,30:Y,36:[1,184],42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:186,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:187,30:Y,40:[1,188],42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:189,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:190,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:191,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(L,[2,65]),t(P,[2,178]),t(i,[2,19]),t(L,[2,24]),t(B,[2,38]),t(F,[2,66],{10:[1,192]}),{10:[1,193]},{10:q,12:j,13:U,26:z,27:194,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,51:[1,195],53:[1,196],55:[1,197],57:[1,198],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(xt,[2,113]),t(xt,[2,115]),t(xt,[2,166]),t(xt,[2,167]),t(xt,[2,168]),t(xt,[2,169]),t(xt,[2,170]),t(xt,[2,171]),t(xt,[2,172]),t(xt,[2,173]),t(xt,[2,174]),t(xt,[2,175]),t(xt,[2,176]),t(xt,[2,185]),t(xt,[2,186]),t(xt,[2,187]),t(xt,[2,188]),t(xt,[2,189]),t(xt,[2,190]),t(xt,[2,191]),t(xt,[2,192]),t(xt,[2,193]),t(xt,[2,194]),t(xt,[2,195]),t(xt,[2,196]),t(xt,[2,118]),t(xt,[2,119]),t(xt,[2,120]),t(xt,[2,121]),t(xt,[2,122]),t(xt,[2,123]),t(xt,[2,124]),t(xt,[2,125]),t(xt,[2,126]),t(xt,[2,127]),t(xt,[2,128]),{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,51:[1,200],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,53:[1,201],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,55:[1,202],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,59:[1,203],61:[1,204],63:[1,205],65:[1,206],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,59:[1,207],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,61:[1,208],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,63:[1,209],66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,66:$,67:[1,210],69:[1,211],71:[1,212],73:[1,213],84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,66:$,67:[1,214],84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,66:$,69:[1,215],84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,66:$,71:[1,216],84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{8:R,9:N,10:q,11:I,12:j,13:U,20:218,26:z,28:[1,217],30:Y,42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{6:10,7:11,8:o,9:s,10:u,11:c,19:16,21:17,22:18,23:19,24:20,25:21,26:f,30:[1,219],32:23,33:29,35:30,89:l,90:h,91:d,92:p,93:g,94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,119:31,121:E,122:A,123:S,124:M,125:T,126:D},{10:[1,220],13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:221,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:[1,222]},t(kt,[2,179]),t(kt,[2,181]),t(kt,[2,182]),t(kt,[2,183]),t(kt,[2,184]),{10:[1,223]},{10:[1,224],107:[1,225]},t(Et,[2,147]),{10:[1,226]},{10:[1,227],13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:221,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:[1,228],13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:221,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:[1,229],13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:221,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(B,[2,41],{119:111,94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,121:E,122:A,123:S,124:M,125:T,126:D}),{10:q,12:j,13:U,26:z,29:[1,230],30:Y,42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:231,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,37:[1,232],42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,39:[1,233],42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,41:[1,234],42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,27:235,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,29:[1,236],30:Y,42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,44:[1,237],46:[1,238],50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{10:q,12:j,13:U,26:z,30:Y,42:H,44:[1,240],46:[1,239],50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(F,[2,68]),t(F,[2,67]),{10:q,12:j,13:U,26:z,30:Y,42:H,50:V,66:$,83:[1,241],84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(F,[2,70]),t(F,[2,72]),t(F,[2,74]),t(F,[2,76]),t(xt,[2,114]),t(F,[2,71]),t(F,[2,73]),t(F,[2,75]),t(F,[2,77]),t(F,[2,79]),t(F,[2,81]),t(F,[2,83]),t(F,[2,78]),t(F,[2,80]),t(F,[2,82]),t(F,[2,84]),t(F,[2,86]),t(F,[2,88]),t(F,[2,90]),t(F,[2,85]),t(F,[2,87]),t(F,[2,89]),{10:q,12:j,13:U,26:z,27:242,30:Y,42:H,50:V,66:$,84:119,85:G,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(mt,a,{5:243}),t(O,[2,34]),{10:At,89:St,99:244,101:Mt,105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},t(kt,[2,180]),{10:At,89:St,99:258,101:Mt,105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},{10:At,89:St,99:259,101:Mt,103:[1,260],105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},{10:At,89:St,99:261,101:Mt,103:[1,262],105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},{106:[1,263]},{10:At,89:St,99:264,101:Mt,105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},{10:At,89:St,99:265,101:Mt,105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},{13:vt,94:_t,100:266,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{13:vt,85:[1,268],94:_t,100:267,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(L,[2,42],{17:269,10:C}),{10:q,12:j,13:U,26:z,30:Y,37:[1,270],42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(L,[2,48],{17:271,10:C}),t(L,[2,46],{17:272,10:C}),t(L,[2,50],{17:273,10:C}),{10:q,12:j,13:U,26:z,30:Y,41:[1,274],42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},t(L,[2,54],{17:275,10:C}),t(L,[2,56],{17:276,10:C}),t(L,[2,60],{17:277,10:C}),t(L,[2,58],{17:278,10:C}),t(L,[2,62],{17:279,10:C}),t([10,94,106,107,110,111,112,114,115,121,122,123,124,125,126],[2,112]),{10:q,12:j,13:U,26:z,29:[1,280],30:Y,42:H,50:V,66:$,84:199,88:131,89:W,90:K,91:X,92:Z,93:J,94:Q,95:tt,97:121,98:et,105:nt,106:rt,107:it,110:at,111:ot,112:st,114:ut,115:ct,117:ft,118:128,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{6:10,7:11,8:o,9:s,10:u,11:c,19:16,21:17,22:18,23:19,24:20,25:21,26:f,30:[1,281],32:23,33:29,35:30,89:l,90:h,91:d,92:p,93:g,94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,119:31,121:E,122:A,123:S,124:M,125:T,126:D},t(Lt,[2,138],{107:Pt}),t(Ft,[2,149],{109:283,10:At,89:St,101:Mt,105:Tt,106:Dt,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt}),t(qt,[2,151]),t(qt,[2,153]),t(qt,[2,154]),t(qt,[2,155]),t(qt,[2,156]),t(qt,[2,157]),t(qt,[2,158]),t(qt,[2,159]),t(qt,[2,160]),t(qt,[2,161]),t(qt,[2,162]),t(qt,[2,163]),t(Lt,[2,139],{107:Pt}),t(Lt,[2,140],{107:Pt}),{10:[1,284]},t(Lt,[2,141],{107:Pt}),{10:[1,285]},t(Et,[2,148]),t(Lt,[2,131],{107:Pt}),t(Lt,[2,132],{107:Pt}),t(Lt,[2,133],{118:172,120:221,13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt}),t(Lt,[2,134],{118:172,120:221,10:[1,286],13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt}),t(Lt,[2,136],{10:[1,287]}),t(L,[2,43]),{37:[1,288]},t(L,[2,49]),t(L,[2,47]),t(L,[2,51]),{41:[1,289]},t(L,[2,55]),t(L,[2,57]),t(L,[2,61]),t(L,[2,59]),t(L,[2,63]),{8:R,9:N,11:I,20:290},t(O,[2,33]),{10:At,89:St,101:Mt,105:Tt,106:Dt,108:291,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},t(qt,[2,152]),{13:vt,94:_t,100:292,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{13:vt,94:_t,100:293,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,118:172,120:170,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt},{85:[1,294]},{85:[1,295]},t(L,[2,44],{17:296,10:C}),t(L,[2,52],{17:297,10:C}),t(mt,a,{5:298}),t(Ft,[2,150],{109:283,10:At,89:St,101:Mt,105:Tt,106:Dt,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt}),t(Lt,[2,144],{118:172,120:221,10:[1,299],13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt}),t(Lt,[2,145],{118:172,120:221,10:[1,300],13:vt,94:_t,106:rt,107:it,110:at,111:ot,112:wt,114:ut,115:ct,121:lt,122:ht,123:dt,124:pt,125:gt,126:yt}),t(Lt,[2,135]),t(Lt,[2,137]),t(L,[2,45]),t(L,[2,53]),{6:10,7:11,8:o,9:s,10:u,11:c,19:16,21:17,22:18,23:19,24:20,25:21,26:f,30:[1,301],32:23,33:29,35:30,89:l,90:h,91:d,92:p,93:g,94:y,106:b,107:m,110:v,111:_,112:w,114:x,115:k,119:31,121:E,122:A,123:S,124:M,125:T,126:D},{10:At,89:St,99:302,101:Mt,105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},{10:At,89:St,99:303,101:Mt,105:Tt,106:Dt,108:245,109:246,110:Ct,111:Ot,112:Rt,113:Nt,114:It,115:Bt},t(O,[2,32]),t(Lt,[2,142],{107:Pt}),t(Lt,[2,143],{107:Pt})],defaultActions:{},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},Ut={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:break;case 1:this.begin("string");break;case 2:this.popState();break;case 3:return"STR";case 4:return 89;case 5:return 98;case 6:return 90;case 7:return 103;case 8:return 91;case 9:return 92;case 10:return 93;case 11:return t.lex.firstGraph()&&this.begin("dir"),12;case 12:return 26;case 13:return 30;case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:return this.popState(),13;case 24:return 106;case 25:return 114;case 26:return 34;case 27:return 111;case 28:return 8;case 29:return 107;case 30:return 125;case 31:return 55;case 32:return 51;case 33:return 74;case 34:return 76;case 35:return 75;case 36:return 78;case 37:return 80;case 38:return 81;case 39:return 82;case 40:case 41:return 79;case 42:case 43:return 77;case 44:return 78;case 45:return 53;case 46:return 57;case 47:return 63;case 48:return 59;case 49:return 61;case 50:return 65;case 51:return 63;case 52:return 59;case 53:return 61;case 54:return 65;case 55:return 71;case 56:return 67;case 57:return 69;case 58:return 73;case 59:return 52;case 60:return 56;case 61:return 54;case 62:return 60;case 63:return 64;case 64:return 62;case 65:return 68;case 66:return 72;case 67:return 70;case 68:return 50;case 69:return 58;case 70:return 66;case 71:return 38;case 72:return 39;case 73:return 112;case 74:return 115;case 75:return 126;case 76:return 123;case 77:return 105;case 78:case 79:return 124;case 80:return 117;case 81:return 42;case 82:return 95;case 83:return 94;case 84:return 110;case 85:return 44;case 86:return 43;case 87:return 46;case 88:return 45;case 89:return 121;case 90:return 122;case 91:return 83;case 92:return 36;case 93:return 37;case 94:return 28;case 95:return 29;case 96:return 40;case 97:return 41;case 98:return 127;case 99:return 9;case 100:return 10;case 101:return 11}},rules:[/^(?:%%[^\n]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:click\b)/,/^(?:graph\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*--[x]\s*)/,/^(?:\s*-->\s*)/,/^(?:\s*<-->\s*)/,/^(?:\s*[x]--[x]\s*)/,/^(?:\s*[o]--[o]\s*)/,/^(?:\s*[o]\.-[o]\s*)/,/^(?:\s*<==>\s*)/,/^(?:\s*[o]==[o]\s*)/,/^(?:\s*[x]==[x]\s*)/,/^(?:\s*[x].-[x]\s*)/,/^(?:\s*[x]-\.-[x]\s*)/,/^(?:\s*<\.->\s*)/,/^(?:\s*<-\.->\s*)/,/^(?:\s*[o]-\.-[o]\s*)/,/^(?:\s*--[o]\s*)/,/^(?:\s*---\s*)/,/^(?:\s*-\.-[x]\s*)/,/^(?:\s*-\.->\s*)/,/^(?:\s*-\.-[o]\s*)/,/^(?:\s*-\.-\s*)/,/^(?:\s*.-[x]\s*)/,/^(?:\s*\.->\s*)/,/^(?:\s*\.-[o]\s*)/,/^(?:\s*\.-\s*)/,/^(?:\s*==[x]\s*)/,/^(?:\s*==>\s*)/,/^(?:\s*==[o]\s*)/,/^(?:\s*==[\=]\s*)/,/^(?:\s*<--\s*)/,/^(?:\s*[x]--\s*)/,/^(?:\s*[o]--\s*)/,/^(?:\s*<-\.\s*)/,/^(?:\s*[x]-\.\s*)/,/^(?:\s*[o]-\.\s*)/,/^(?:\s*<==\s*)/,/^(?:\s*[x]==\s*)/,/^(?:\s*[o]==\s*)/,/^(?:\s*--\s*)/,/^(?:\s*-\.\s*)/,/^(?:\s*==\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_\/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r|\n|\r\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{dir:{rules:[14,15,16,17,18,19,20,21,22,23],inclusive:!1},string:{rules:[2,3],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,8,9,10,11,12,13,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],inclusive:!0}}};function zt(){this.yy={}}return jt.lexer=Ut,zt.prototype=jt,jt.Parser=zt,new zt}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t){t.exports=JSON.parse('{"name":"mermaid","version":"8.4.0","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build":"webpack --progress --colors","postbuild":"documentation build src/mermaidAPI.js --shallow -f md --markdown-toc false -o docs/mermaidAPI.md","build:watch":"yarn build --watch","minify":"minify ./dist/mermaid.js > ./dist/mermaid.min.js","release":"yarn build -p --config webpack.config.prod.babel.js","lint":"eslint src","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"percy exec -- cypress run","e2e":"start-server-and-test dev http://localhost:9000/ cypress","e2e-upd":"yarn lint && jest e2e -u --config e2e/jest.config.js","dev":"webpack-dev-server --config webpack.config.e2e.js","test":"yarn lint && jest src","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn release && yarn test","prepush":"yarn test"},"repository":{"type":"git","url":"https://github.com/knsv/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^3.1.0","crypto-random-string":"^3.0.1","d3":"^5.7.0","dagre-d3-renderer":"^0.5.8","dagre-layout":"^0.8.8","graphlibrary":"^2.2.0","he":"^1.2.0","lodash":"^4.17.11","minify":"^4.1.1","moment-mini":"^2.22.1","prettier":"^1.18.2","scope-css":"^1.2.1"},"devDependencies":{"documentation":"^12.0.1","eslint":"^6.3.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.0","@babel/core":"^7.2.2","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","@percy/cypress":"^2.0.1","babel-core":"7.0.0-bridge.0","babel-jest":"^23.6.0","babel-loader":"^8.0.4","coveralls":"^3.0.2","css-loader":"^2.0.1","css-to-string-loader":"^0.1.3","cypress":"3.4.0","husky":"^1.2.1","identity-obj-proxy":"^3.0.0","jest":"^23.6.0","jest-environment-puppeteer":"^4.2.0","jest-image-snapshot":"^2.8.2","jest-puppeteer":"^4.2.0","jison":"^0.4.18","moment":"^2.23.0","node-sass":"^4.12.0","puppeteer":"^1.17.0","sass-loader":"^7.1.0","start-server-and-test":"^1.10.0","webpack":"^4.27.1","webpack-cli":"^3.1.2","webpack-dev-server":"^3.4.1","webpack-node-externals":"^1.7.2","yarn-upgrade-all":"^0.5.0"},"files":["dist"],"yarn-upgrade-all":{"ignore":["babel-core"]}}')},function(t,e,n){"use strict";(function(e){void 0===e||!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports={nextTick:function(t,n,r,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var a,o,s=arguments.length;switch(s){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick((function(){t.call(null,n)}));case 3:return e.nextTick((function(){t.call(null,n,r)}));case 4:return e.nextTick((function(){t.call(null,n,r,i)}));default:for(a=new Array(s-1),o=0;o<a.length;)a[o++]=arguments[o];return e.nextTick((function(){t.apply(null,a)}))}}}:t.exports=e}).call(this,n(5))},function(t,e,n){var r=n(3).Buffer;function i(t){r.isBuffer(t)||(t=r.from(t));for(var e=t.length/4|0,n=new Array(e),i=0;i<e;i++)n[i]=t.readUInt32BE(4*i);return n}function a(t){for(;0<t.length;t++)t[0]=0}function o(t,e,n,r,i){for(var a,o,s,u,c=n[0],f=n[1],l=n[2],h=n[3],d=t[0]^e[0],p=t[1]^e[1],g=t[2]^e[2],y=t[3]^e[3],b=4,m=1;m<i;m++)a=c[d>>>24]^f[p>>>16&255]^l[g>>>8&255]^h[255&y]^e[b++],o=c[p>>>24]^f[g>>>16&255]^l[y>>>8&255]^h[255&d]^e[b++],s=c[g>>>24]^f[y>>>16&255]^l[d>>>8&255]^h[255&p]^e[b++],u=c[y>>>24]^f[d>>>16&255]^l[p>>>8&255]^h[255&g]^e[b++],d=a,p=o,g=s,y=u;return a=(r[d>>>24]<<24|r[p>>>16&255]<<16|r[g>>>8&255]<<8|r[255&y])^e[b++],o=(r[p>>>24]<<24|r[g>>>16&255]<<16|r[y>>>8&255]<<8|r[255&d])^e[b++],s=(r[g>>>24]<<24|r[y>>>16&255]<<16|r[d>>>8&255]<<8|r[255&p])^e[b++],u=(r[y>>>24]<<24|r[d>>>16&255]<<16|r[p>>>8&255]<<8|r[255&g])^e[b++],[a>>>=0,o>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var n=[],r=[],i=[[],[],[],[]],a=[[],[],[],[]],o=0,s=0,u=0;u<256;++u){var c=s^s<<1^s<<2^s<<3^s<<4;c=c>>>8^255&c^99,n[o]=c,r[c]=o;var f=t[o],l=t[f],h=t[l],d=257*t[c]^16843008*c;i[0][o]=d<<24|d>>>8,i[1][o]=d<<16|d>>>16,i[2][o]=d<<8|d>>>24,i[3][o]=d,d=16843009*h^65537*l^257*f^16843008*o,a[0][c]=d<<24|d>>>8,a[1][c]=d<<16|d>>>16,a[2][c]=d<<8|d>>>24,a[3][c]=d,0===o?o=s=1:(o=f^t[t[t[h^f]]],s^=t[t[s]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:a}}();function c(t){this._key=i(t),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var t=this._key,e=t.length,n=e+6,r=4*(n+1),i=[],a=0;a<e;a++)i[a]=t[a];for(a=e;a<r;a++){var o=i[a-1];a%e==0?(o=o<<8|o>>>24,o=u.SBOX[o>>>24]<<24|u.SBOX[o>>>16&255]<<16|u.SBOX[o>>>8&255]<<8|u.SBOX[255&o],o^=s[a/e|0]<<24):e>6&&a%e==4&&(o=u.SBOX[o>>>24]<<24|u.SBOX[o>>>16&255]<<16|u.SBOX[o>>>8&255]<<8|u.SBOX[255&o]),i[a]=i[a-e]^o}for(var c=[],f=0;f<r;f++){var l=r-f,h=i[l-(f%4?0:4)];c[f]=f<4||l<=4?h:u.INV_SUB_MIX[0][u.SBOX[h>>>24]]^u.INV_SUB_MIX[1][u.SBOX[h>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[h>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&h]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(t){return o(t=i(t),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),n=r.allocUnsafe(16);return n.writeUInt32BE(e[0],0),n.writeUInt32BE(e[1],4),n.writeUInt32BE(e[2],8),n.writeUInt32BE(e[3],12),n},c.prototype.decryptBlock=function(t){var e=(t=i(t))[1];t[1]=t[3],t[3]=e;var n=o(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),a=r.allocUnsafe(16);return a.writeUInt32BE(n[0],0),a.writeUInt32BE(n[3],4),a.writeUInt32BE(n[2],8),a.writeUInt32BE(n[1],12),a},c.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},t.exports.AES=c},function(t,e,n){var r=n(3).Buffer,i=n(46);t.exports=function(t,e,n,a){if(r.isBuffer(t)||(t=r.from(t,"binary")),e&&(r.isBuffer(e)||(e=r.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=n/8,s=r.alloc(o),u=r.alloc(a||0),c=r.alloc(0);o>0||a>0;){var f=new i;f.update(c),f.update(t),e&&f.update(e),c=f.digest();var l=0;if(o>0){var h=s.length-o;l=Math.min(o,c.length),c.copy(s,h,0,l),o-=l}if(l<c.length&&a>0){var d=u.length-a,p=Math.min(a,c.length-l);c.copy(u,d,l,l+p),a-=p}}return c.fill(0),{key:s,iv:u}}},function(t,e,n){"use strict";var r=n(4),i=n(10),a=i.getNAF,o=i.getJSF,s=i.assert;function u(t,e){this.type=t,this.p=new r(e.p,16),this.red=e.prime?r.red(e.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=e.n&&new r(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4);var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var n=t._getDoubles(),r=a(e,1),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;for(var o=[],u=0;u<r.length;u+=n.step){var c=0;for(e=u+n.step-1;e>=u;e--)c=(c<<1)+r[e];o.push(c)}for(var f=this.jpoint(null,null,null),l=this.jpoint(null,null,null),h=i;h>0;h--){for(u=0;u<o.length;u++){(c=o[u])===h?l=l.mixedAdd(n.points[u]):c===-h&&(l=l.mixedAdd(n.points[u].neg()))}f=f.add(l)}return f.toP()},u.prototype._wnafMul=function(t,e){var n=4,r=t._getNAFPoints(n);n=r.wnd;for(var i=r.points,o=a(e,n),u=this.jpoint(null,null,null),c=o.length-1;c>=0;c--){for(e=0;c>=0&&0===o[c];c--)e++;if(c>=0&&e++,u=u.dblp(e),c<0)break;var f=o[c];s(0!==f),u="affine"===t.type?f>0?u.mixedAdd(i[f-1>>1]):u.mixedAdd(i[-f-1>>1].neg()):f>0?u.add(i[f-1>>1]):u.add(i[-f-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,n,r,i){for(var s=this._wnafT1,u=this._wnafT2,c=this._wnafT3,f=0,l=0;l<r;l++){var h=(A=e[l])._getNAFPoints(t);s[l]=h.wnd,u[l]=h.points}for(l=r-1;l>=1;l-=2){var d=l-1,p=l;if(1===s[d]&&1===s[p]){var g=[e[d],null,null,e[p]];0===e[d].y.cmp(e[p].y)?(g[1]=e[d].add(e[p]),g[2]=e[d].toJ().mixedAdd(e[p].neg())):0===e[d].y.cmp(e[p].y.redNeg())?(g[1]=e[d].toJ().mixedAdd(e[p]),g[2]=e[d].add(e[p].neg())):(g[1]=e[d].toJ().mixedAdd(e[p]),g[2]=e[d].toJ().mixedAdd(e[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],b=o(n[d],n[p]);f=Math.max(b[0].length,f),c[d]=new Array(f),c[p]=new Array(f);for(var m=0;m<f;m++){var v=0|b[0][m],_=0|b[1][m];c[d][m]=y[3*(v+1)+(_+1)],c[p][m]=0,u[d]=g}}else c[d]=a(n[d],s[d]),c[p]=a(n[p],s[p]),f=Math.max(c[d].length,f),f=Math.max(c[p].length,f)}var w=this.jpoint(null,null,null),x=this._wnafT4;for(l=f;l>=0;l--){for(var k=0;l>=0;){var E=!0;for(m=0;m<r;m++)x[m]=0|c[m][l],0!==x[m]&&(E=!1);if(!E)break;k++,l--}if(l>=0&&k++,w=w.dblp(k),l<0)break;for(m=0;m<r;m++){var A,S=x[m];0!==S&&(S>0?A=u[m][S-1>>1]:S<0&&(A=u[m][-S-1>>1].neg()),w="affine"===A.type?w.mixedAdd(A):w.add(A))}}for(l=0;l<r;l++)u[l]=null;return i?w:w.toP()},u.BasePoint=c,c.prototype.eq=function(){throw new Error("Not implemented")},c.prototype.validate=function(){return this.curve.validate(this)},u.prototype.decodePoint=function(t,e){t=i.toArray(t,e);var n=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*n)return 6===t[0]?s(t[t.length-1]%2==0):7===t[0]&&s(t[t.length-1]%2==1),this.point(t.slice(1,1+n),t.slice(1+n,1+2*n));if((2===t[0]||3===t[0])&&t.length-1===n)return this.pointFromX(t.slice(1,1+n),3===t[0]);throw new Error("Unknown point format")},c.prototype.encodeCompressed=function(t){return this.encode(t,!0)},c.prototype._encode=function(t){var e=this.curve.p.byteLength(),n=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",e))},c.prototype.encode=function(t,e){return i.encode(this._encode(e),t)},c.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},c.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},c.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<e;i+=t){for(var a=0;a<t;a++)r=r.dbl();n.push(r)}return{step:t,points:n}},c.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],n=(1<<t)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)e[i]=e[i-1].add(r);return{wnd:t,points:e}},c.prototype._getBeta=function(){return null},c.prototype.dblp=function(t){for(var e=this,n=0;n<t;n++)e=e.dbl();return e}},function(t,e,n){var r=n(185),i=n(196),a=n(197),o=n(56),s=n(80),u=n(3).Buffer;function c(t){var e;"object"!=typeof t||u.isBuffer(t)||(e=t.passphrase,t=t.key),"string"==typeof t&&(t=u.from(t));var n,c,f=a(t,e),l=f.tag,h=f.data;switch(l){case"CERTIFICATE":c=r.certificate.decode(h,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=r.PublicKey.decode(h,"der")),n=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=r.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+l);case"ENCRYPTED PRIVATE KEY":h=function(t,e){var n=t.algorithm.decrypt.kde.kdeparams.salt,r=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),a=i[t.algorithm.decrypt.cipher.algo.join(".")],c=t.algorithm.decrypt.cipher.iv,f=t.subjectPrivateKey,l=parseInt(a.split("-")[1],10)/8,h=s.pbkdf2Sync(e,n,r,l,"sha1"),d=o.createDecipheriv(a,h,c),p=[];return p.push(d.update(f)),p.push(d.final()),u.concat(p)}(h=r.EncryptedPrivateKey.decode(h,"der"),e);case"PRIVATE KEY":switch(n=(c=r.PrivateKey.decode(h,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:r.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=r.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+l);case"RSA PUBLIC KEY":return r.RSAPublicKey.decode(h,"der");case"RSA PRIVATE KEY":return r.RSAPrivateKey.decode(h,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:r.DSAPrivateKey.decode(h,"der")};case"EC PRIVATE KEY":return{curve:(h=r.ECPrivateKey.decode(h,"der")).parameters.value,privateKey:h.privateKey};default:throw new Error("unknown key type "+l)}}t.exports=c,c.signature=r.signature},function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=function(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=(o=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),a=r.sources.map((function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"}));return[n].concat(a).concat([i]).join("\n")}var o;return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n})).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i<this.length;i++){var a=this[i][0];null!=a&&(r[a]=!0)}for(i=0;i<t.length;i++){var o=t[i];null!=o[0]&&r[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),e.push(o))}},e}},function(t,e,n){"use strict";var r=/^(%20|\s)*(javascript|data)/im,i=/[^\x20-\x7E]/gim,a=/^([^:]+):/gm,o=[".","/"];t.exports={sanitizeUrl:function(t){if(!t)return"about:blank";var e,n,s=t.replace(i,"").trim();return function(t){return o.indexOf(t[0])>-1}(s)?s:(n=s.match(a))?(e=n[0],r.test(e)?"about:blank":s):"about:blank"}}},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[2,3],n=[1,7],r=[7,12,15,17,19,20,21],i=[7,11,12,15,17,19,20,21],a=[2,20],o=[1,32],s={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,":":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 2:return r.setDirection(a[s-3]),a[s-1];case 4:r.setOptions(a[s-1]),this.$=a[s];break;case 5:a[s-1]+=a[s],this.$=a[s-1];break;case 7:this.$=[];break;case 8:a[s-1].push(a[s]),this.$=a[s-1];break;case 9:this.$=a[s-1];break;case 11:r.commit(a[s]);break;case 12:r.branch(a[s]);break;case 13:r.checkout(a[s]);break;case 14:r.merge(a[s]);break;case 15:r.reset(a[s]);break;case 16:this.$="";break;case 17:this.$=a[s];break;case 18:this.$=a[s-1]+":"+a[s];break;case 19:this.$=a[s-1]+":"+r.count,r.count=0;break;case 20:r.count=0;break;case 21:r.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:e,9:6,12:n},{5:[1,8]},{7:[1,9]},t(r,[2,7],{10:10,11:[1,11]}),t(i,[2,6]),{6:12,7:e,9:6,12:n},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},t(i,[2,5]),{7:[1,21]},t(r,[2,8]),{12:[1,22]},t(r,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},t(r,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:a,25:31,26:o},{12:a,25:33,26:o},{12:[2,18]},{12:a,25:34,26:o},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},u={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 12;case 1:case 2:case 3:break;case 4:return 4;case 5:return 15;case 6:return 17;case 7:return 20;case 8:return 21;case 9:return 19;case 10:case 11:return 8;case 12:return 5;case 13:return 26;case 14:this.begin("options");break;case 15:this.popState();break;case 16:return 11;case 17:this.begin("string");break;case 18:this.popState();break;case 19:return 23;case 20:return 18;case 21:return 7}},rules:[/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:branch\b)/i,/^(?:merge\b)/i,/^(?:reset\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:end\r?\n)/i,/^(?:[^\n]+\r?\n)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[a-zA-Z][a-zA-Z0-9_]+)/i,/^(?:$)/i],conditions:{options:{rules:[15,16],inclusive:!1},string:{rules:[18,19],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],inclusive:!0}}};function c(){this.yy={}}return s.lexer=u,c.prototype=s,s.Parser=c,new c}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,9,10],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,r,i,a,o){a.length;switch(i){case 1:return r;case 4:break;case 6:r.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},r={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};function i(){this.yy={}}return n.lexer=r,i.prototype=n,n.Parser=i,new i}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t,e,n){(function(t,r){var i=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,9,10,12],n={trace:function(){},yy:{},symbols_:{error:2,start:3,pie:4,document:5,EOF:6,line:7,statement:8,NL:9,STR:10,VALUE:11,title:12,$accept:0,$end:1},terminals_:{2:"error",4:"pie",6:"EOF",9:"NL",10:"STR",11:"VALUE",12:"title"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,2],[8,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 4:break;case 6:console.log("str:"+a[s-1]+" value: "+a[s]),r.addSection(a[s-1],r.cleanupValue(a[s]));break;case 7:r.setTitle(a[s].substr(6)),this.$=a[s].substr(6)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8],12:[1,9]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),{11:[1,10]},t(e,[2,7]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",u=0,c=0,f=0,l=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var b=p.yylloc;a.push(b);var m=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||h)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,w,x,k,E,A,S,M,T,D={};;){if(x=n[n.length-1],this.defaultActions[x]?k=this.defaultActions[x]:(null==_&&(_=v()),k=o[x]&&o[x][_]),void 0===k||!k.length||!k[0]){var C="";for(A in T=[],o[x])this.terminals_[A]&&A>l&&T.push("'"+this.terminals_[A]+"'");C=p.showPosition?"Parse error on line "+(u+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(u+1)+": Unexpected "+(_==h?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(C,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:b,expected:T})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+_);switch(k[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(k[1]),_=null,w?(_=w,w=null):(c=p.yyleng,s=p.yytext,u=p.yylineno,b=p.yylloc,f>0&&f--);break;case 2:if(S=this.productions_[k[1]][1],D.$=i[i.length-S],D._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(D._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(D,[s,c,u,g.yy,k[1],i,a].concat(d))))return E;S&&(n=n.slice(0,-1*S*2),i=i.slice(0,-1*S),a=a.slice(0,-1*S)),n.push(this.productions_[k[1]][0]),i.push(D.$),a.push(D._$),M=o[n[n.length-2]][n[n.length-1]],n.push(M);break;case 3:return!0}}return!0}},r={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!e||n[0].length>e[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:case 1:break;case 2:return 4;case 3:return 9;case 4:return"space";case 5:return 12;case 6:this.begin("string");break;case 7:this.popState();break;case 8:return"STR";case 9:return"VALUE";case 10:return 6}},rules:[/^(?:%%[^\n]*)/i,/^(?:\s+)/i,/^(?:pie\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:title\s[^#\n;]+)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{string:{rules:[7,8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,9,10],inclusive:!0}}};function i(){this.yy={}}return n.lexer=r,i.prototype=n,n.Parser=i,new i}();e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(r){r[1]||(console.log("Usage: "+r[0]+" FILE"),t.exit(1));var i=n(17).readFileSync(n(18).normalize(r[1]),"utf8");return e.parser.parse(i)},n.c[n.s]===r&&e.main(t.argv.slice(1))}).call(this,n(5),n(7)(t))},function(t,e,n){const r=n(8);t.exports=s;const i="\0",a="\0",o="";function s(t){this._isDirected=!r.has(t,"directed")||t.directed,this._isMultigraph=!!r.has(t,"multigraph")&&t.multigraph,this._isCompound=!!r.has(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=r.constant(void 0),this._defaultEdgeLabelFn=r.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[a]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function u(t,e){t[e]?t[e]++:t[e]=1}function c(t,e){--t[e]||delete t[e]}function f(t,e,n,a){var s=""+e,u=""+n;if(!t&&s>u){var c=s;s=u,u=c}return s+o+u+o+(r.isUndefined(a)?i:a)}function l(t,e,n,r){var i=""+e,a=""+n;if(!t&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function h(t,e){return f(t,e.v,e.w,e.name)}s.prototype._nodeCount=0,s.prototype._edgeCount=0,s.prototype.isDirected=function(){return this._isDirected},s.prototype.isMultigraph=function(){return this._isMultigraph},s.prototype.isCompound=function(){return this._isCompound},s.prototype.setGraph=function(t){return this._label=t,this},s.prototype.graph=function(){return this._label},s.prototype.setDefaultNodeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultNodeLabelFn=t,this},s.prototype.nodeCount=function(){return this._nodeCount},s.prototype.nodes=function(){return r.keys(this._nodes)},s.prototype.sources=function(){var t=this;return r.filter(this.nodes(),(function(e){return r.isEmpty(t._in[e])}))},s.prototype.sinks=function(){var t=this;return r.filter(this.nodes(),(function(e){return r.isEmpty(t._out[e])}))},s.prototype.setNodes=function(t,e){var n=arguments,i=this;return r.each(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this},s.prototype.setNode=function(t,e){return r.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=a,this._children[t]={},this._children[a][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},s.prototype.node=function(t){return this._nodes[t]},s.prototype.hasNode=function(t){return r.has(this._nodes,t)},s.prototype.removeNode=function(t){var e=this;if(r.has(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],r.each(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),r.each(r.keys(this._in[t]),n),delete this._in[t],delete this._preds[t],r.each(r.keys(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},s.prototype.setParent=function(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(r.isUndefined(e))e=a;else{for(var n=e+="";!r.isUndefined(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this},s.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},s.prototype.parent=function(t){if(this._isCompound){var e=this._parent[t];if(e!==a)return e}},s.prototype.children=function(t){if(r.isUndefined(t)&&(t=a),this._isCompound){var e=this._children[t];if(e)return r.keys(e)}else{if(t===a)return this.nodes();if(this.hasNode(t))return[]}},s.prototype.predecessors=function(t){var e=this._preds[t];if(e)return r.keys(e)},s.prototype.successors=function(t){var e=this._sucs[t];if(e)return r.keys(e)},s.prototype.neighbors=function(t){var e=this.predecessors(t);if(e)return r.union(e,this.successors(t))},s.prototype.isLeaf=function(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length},s.prototype.filterNodes=function(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;r.each(this._nodes,(function(n,r){t(r)&&e.setNode(r,n)})),r.each(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};return this._isCompound&&r.each(e.nodes(),(function(t){e.setParent(t,function t(r){var a=n.parent(r);return void 0===a||e.hasNode(a)?(i[r]=a,a):a in i?i[a]:t(a)}(t))})),e},s.prototype.setDefaultEdgeLabel=function(t){return r.isFunction(t)||(t=r.constant(t)),this._defaultEdgeLabelFn=t,this},s.prototype.edgeCount=function(){return this._edgeCount},s.prototype.edges=function(){return r.values(this._edgeObjs)},s.prototype.setPath=function(t,e){const n=this,i=arguments;return r.reduce(t,(function(t,r){return i.length>1?n.setEdge(t,r,e):n.setEdge(t,r),r})),this},s.prototype.setEdge=function(){let t,e,n,i,a=!1;const o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(t=o.v,e=o.w,n=o.name,2===arguments.length&&(i=arguments[1],a=!0)):(t=o,e=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,e=""+e,r.isUndefined(n)||(n=""+n);var s=f(this._isDirected,t,e,n);if(r.has(this._edgeLabels,s))return a&&(this._edgeLabels[s]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(t,e,n);var c=l(this._isDirected,t,e,n);return t=c.v,e=c.w,Object.freeze(c),this._edgeObjs[s]=c,u(this._preds[e],t),u(this._sucs[t],e),this._in[e][s]=c,this._out[t][s]=c,this._edgeCount++,this},s.prototype.edge=function(t,e,n){var r=1===arguments.length?h(this._isDirected,arguments[0]):f(this._isDirected,t,e,n);return this._edgeLabels[r]},s.prototype.hasEdge=function(t,e,n){var i=1===arguments.length?h(this._isDirected,arguments[0]):f(this._isDirected,t,e,n);return r.has(this._edgeLabels,i)},s.prototype.removeEdge=function(t,e,n){const r=1===arguments.length?h(this._isDirected,arguments[0]):f(this._isDirected,t,e,n),i=this._edgeObjs[r];return i&&(t=i.v,e=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],c(this._preds[e],t),c(this._sucs[t],e),delete this._in[e][r],delete this._out[t][r],this._edgeCount--),this},s.prototype.inEdges=function(t,e){var n=this._in[t];if(n){var i=r.values(n);return e?r.filter(i,(function(t){return t.v===e})):i}},s.prototype.outEdges=function(t,e){var n=this._out[t];if(n){var i=r.values(n);return e?r.filter(i,(function(t){return t.w===e})):i}},s.prototype.nodeEdges=function(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}},function(t,e,n){"use strict";var r=n(2),i=n(70),a=n(3).Buffer,o=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(t,e){return t<<e|t>>>32-e}function c(t,e,n,r,i,a,o){return u(t+(e&n|~e&r)+i+a|0,o)+e|0}function f(t,e,n,r,i,a,o){return u(t+(e&r|n&~r)+i+a|0,o)+e|0}function l(t,e,n,r,i,a,o){return u(t+(e^n^r)+i+a|0,o)+e|0}function h(t,e,n,r,i,a,o){return u(t+(n^(e|~r))+i+a|0,o)+e|0}r(s,i),s.prototype._update=function(){for(var t=o,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var n=this._a,r=this._b,i=this._c,a=this._d;n=c(n,r,i,a,t[0],3614090360,7),a=c(a,n,r,i,t[1],3905402710,12),i=c(i,a,n,r,t[2],606105819,17),r=c(r,i,a,n,t[3],3250441966,22),n=c(n,r,i,a,t[4],4118548399,7),a=c(a,n,r,i,t[5],1200080426,12),i=c(i,a,n,r,t[6],2821735955,17),r=c(r,i,a,n,t[7],4249261313,22),n=c(n,r,i,a,t[8],1770035416,7),a=c(a,n,r,i,t[9],2336552879,12),i=c(i,a,n,r,t[10],4294925233,17),r=c(r,i,a,n,t[11],2304563134,22),n=c(n,r,i,a,t[12],1804603682,7),a=c(a,n,r,i,t[13],4254626195,12),i=c(i,a,n,r,t[14],2792965006,17),n=f(n,r=c(r,i,a,n,t[15],1236535329,22),i,a,t[1],4129170786,5),a=f(a,n,r,i,t[6],3225465664,9),i=f(i,a,n,r,t[11],643717713,14),r=f(r,i,a,n,t[0],3921069994,20),n=f(n,r,i,a,t[5],3593408605,5),a=f(a,n,r,i,t[10],38016083,9),i=f(i,a,n,r,t[15],3634488961,14),r=f(r,i,a,n,t[4],3889429448,20),n=f(n,r,i,a,t[9],568446438,5),a=f(a,n,r,i,t[14],3275163606,9),i=f(i,a,n,r,t[3],4107603335,14),r=f(r,i,a,n,t[8],1163531501,20),n=f(n,r,i,a,t[13],2850285829,5),a=f(a,n,r,i,t[2],4243563512,9),i=f(i,a,n,r,t[7],1735328473,14),n=l(n,r=f(r,i,a,n,t[12],2368359562,20),i,a,t[5],4294588738,4),a=l(a,n,r,i,t[8],2272392833,11),i=l(i,a,n,r,t[11],1839030562,16),r=l(r,i,a,n,t[14],4259657740,23),n=l(n,r,i,a,t[1],2763975236,4),a=l(a,n,r,i,t[4],1272893353,11),i=l(i,a,n,r,t[7],4139469664,16),r=l(r,i,a,n,t[10],3200236656,23),n=l(n,r,i,a,t[13],681279174,4),a=l(a,n,r,i,t[0],3936430074,11),i=l(i,a,n,r,t[3],3572445317,16),r=l(r,i,a,n,t[6],76029189,23),n=l(n,r,i,a,t[9],3654602809,4),a=l(a,n,r,i,t[12],3873151461,11),i=l(i,a,n,r,t[15],530742520,16),n=h(n,r=l(r,i,a,n,t[2],3299628645,23),i,a,t[0],4096336452,6),a=h(a,n,r,i,t[7],1126891415,10),i=h(i,a,n,r,t[14],2878612391,15),r=h(r,i,a,n,t[5],4237533241,21),n=h(n,r,i,a,t[12],1700485571,6),a=h(a,n,r,i,t[3],2399980690,10),i=h(i,a,n,r,t[10],4293915773,15),r=h(r,i,a,n,t[1],2240044497,21),n=h(n,r,i,a,t[8],1873313359,6),a=h(a,n,r,i,t[15],4264355552,10),i=h(i,a,n,r,t[6],2734768916,15),r=h(r,i,a,n,t[13],1309151649,21),n=h(n,r,i,a,t[4],4149444226,6),a=h(a,n,r,i,t[11],3174756917,10),i=h(i,a,n,r,t[2],718787259,15),r=h(r,i,a,n,t[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+a|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=a.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},function(t,e,n){t.exports=i;var r=n(48).EventEmitter;function i(){r.call(this)}n(2)(i,r),i.Readable=n(49),i.Writable=n(132),i.Duplex=n(133),i.Transform=n(134),i.PassThrough=n(135),i.Stream=i,i.prototype.pipe=function(t,e){var n=this;function i(e){t.writable&&!1===t.write(e)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",i),t.on("drain",a),t._isStdio||e&&!1===e.end||(n.on("end",s),n.on("close",u));var o=!1;function s(){o||(o=!0,t.end())}function u(){o||(o=!0,"function"==typeof t.destroy&&t.destroy())}function c(t){if(f(),0===r.listenerCount(this,"error"))throw t}function f(){n.removeListener("data",i),t.removeListener("drain",a),n.removeListener("end",s),n.removeListener("close",u),n.removeListener("error",c),t.removeListener("error",c),n.removeListener("end",f),n.removeListener("close",f),t.removeListener("close",f)}return n.on("error",c),t.on("error",c),n.on("end",f),n.on("close",f),t.on("close",f),t.emit("pipe",n),t}},function(t,e,n){"use strict";var r,i="object"==typeof Reflect?Reflect:null,a=i&&"function"==typeof i.apply?i.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};r=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var o=Number.isNaN||function(t){return t!=t};function s(){s.init.call(this)}t.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var u=10;function c(t){return void 0===t._maxListeners?s.defaultMaxListeners:t._maxListeners}function f(t,e,n,r){var i,a,o,s;if("function"!=typeof n)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n);if(void 0===(a=t._events)?(a=t._events=Object.create(null),t._eventsCount=0):(void 0!==a.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),a=t._events),o=a[e]),void 0===o)o=a[e]=n,++t._eventsCount;else if("function"==typeof o?o=a[e]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(i=c(t))>0&&o.length>i&&!o.warned){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=o.length,s=u,console&&console.warn&&console.warn(s)}return t}function l(){for(var t=[],e=0;e<arguments.length;e++)t.push(arguments[e]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,a(this.listener,this.target,t))}function h(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function d(t,e,n){var r=t._events;if(void 0===r)return[];var i=r[e];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}(i):g(i,i.length)}function p(t){var e=this._events;if(void 0!==e){var n=e[t];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function g(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return u},set:function(t){if("number"!=typeof t||t<0||o(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");u=t}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||o(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var r="error"===t,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var o;if(e.length>0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=i[t];if(void 0===u)return!1;if("function"==typeof u)a(u,this,e);else{var c=u.length,f=g(u,c);for(n=0;n<c;++n)a(f[n],this,e)}return!0},s.prototype.addListener=function(t,e){return f(this,t,e,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(t,e){return f(this,t,e,!0)},s.prototype.once=function(t,e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e);return this.on(t,h(this,t,e)),this},s.prototype.prependOnceListener=function(t,e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e);return this.prependListener(t,h(this,t,e)),this},s.prototype.removeListener=function(t,e){var n,r,i,a,o;if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e);if(void 0===(r=this._events))return this;if(void 0===(n=r[t]))return this;if(n===e||n.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,n.listener||e));else if("function"!=typeof n){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===e||n[a].listener===e){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(n,i),1===n.length&&(r[t]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",t,o||e)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(t){var e,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[t]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r<a.length;++r)"removeListener"!==(i=a[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=n[t]))this.removeListener(t,e);else if(void 0!==e)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this},s.prototype.listeners=function(t){return d(this,t,!0)},s.prototype.rawListeners=function(t){return d(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},s.prototype.listenerCount=p,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(t,e,n){(e=t.exports=n(71)).Stream=e,e.Readable=e,e.Writable=n(51),e.Duplex=n(21),e.Transform=n(74),e.PassThrough=n(131)},function(t,e,n){var r=n(6),i=r.Buffer;function a(t,e){for(var n in t)e[n]=t[n]}function o(t,e,n){return i(t,e,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=r:(a(r,e),e.Buffer=o),a(i,o),o.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,n)},o.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=i(t);return void 0!==e?"string"==typeof n?r.fill(e,n):r.fill(e):r.fill(0),r},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},function(t,e,n){"use strict";(function(e,r,i){var a=n(35);function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,n){var r=t.entry;t.entry=null;for(;r;){var i=r.callback;e.pendingcb--,i(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=m;var s,u=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?r:a.nextTick;m.WritableState=b;var c=n(27);c.inherits=n(2);var f={deprecate:n(130)},l=n(72),h=n(50).Buffer,d=i.Uint8Array||function(){};var p,g=n(73);function y(){}function b(t,e){s=s||n(21),t=t||{};var r=e instanceof s;this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,c=t.writableHighWaterMark,f=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(c||0===c)?c:f,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===t.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var n=t._writableState,r=n.sync,i=n.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(n),e)!function(t,e,n,r,i){--e.pendingcb,n?(a.nextTick(i,r),a.nextTick(E,t,e),t._writableState.errorEmitted=!0,t.emit("error",r)):(i(r),t._writableState.errorEmitted=!0,t.emit("error",r),E(t,e))}(t,n,r,e,i);else{var o=x(n);o||n.corked||n.bufferProcessing||!n.bufferedRequest||w(t,n),r?u(_,t,n,o,i):_(t,n,o,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function m(t){if(s=s||n(21),!(p.call(m,this)||this instanceof s))return new m(t);this._writableState=new b(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),l.call(this)}function v(t,e,n,r,i,a,o){e.writelen=r,e.writecb=o,e.writing=!0,e.sync=!0,n?t._writev(i,e.onwrite):t._write(i,a,e.onwrite),e.sync=!1}function _(t,e,n,r){n||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,r(),E(t,e)}function w(t,e){e.bufferProcessing=!0;var n=e.bufferedRequest;if(t._writev&&n&&n.next){var r=e.bufferedRequestCount,i=new Array(r),a=e.corkedRequestsFree;a.entry=n;for(var s=0,u=!0;n;)i[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;i.allBuffers=u,v(t,e,!0,e.length,i,"",a.finish),e.pendingcb++,e.lastBufferedRequest=null,a.next?(e.corkedRequestsFree=a.next,a.next=null):e.corkedRequestsFree=new o(e),e.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,f=n.encoding,l=n.callback;if(v(t,e,!1,e.objectMode?1:c.length,c,f,l),n=n.next,e.bufferedRequestCount--,e.writing)break}null===n&&(e.lastBufferedRequest=null)}e.bufferedRequest=n,e.bufferProcessing=!1}function x(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function k(t,e){t._final((function(n){e.pendingcb--,n&&t.emit("error",n),e.prefinished=!0,t.emit("prefinish"),E(t,e)}))}function E(t,e){var n=x(e);return n&&(!function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,a.nextTick(k,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),n}c.inherits(m,l),b.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(b.prototype,"buffer",{get:f.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===m&&(t&&t._writableState instanceof b)}})):p=function(t){return t instanceof this},m.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},m.prototype.write=function(t,e,n){var r,i=this._writableState,o=!1,s=!i.objectMode&&(r=t,h.isBuffer(r)||r instanceof d);return s&&!h.isBuffer(t)&&(t=function(t){return h.from(t)}(t)),"function"==typeof e&&(n=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),"function"!=typeof n&&(n=y),i.ended?function(t,e){var n=new Error("write after end");t.emit("error",n),a.nextTick(e,n)}(this,n):(s||function(t,e,n,r){var i=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||e.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(t.emit("error",o),a.nextTick(r,o),i=!1),i}(this,i,t,n))&&(i.pendingcb++,o=function(t,e,n,r,i,a){if(!n){var o=function(t,e,n){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=h.from(e,n));return e}(e,r,i);r!==o&&(n=!0,i="buffer",r=o)}var s=e.objectMode?1:r.length;e.length+=s;var u=e.length<e.highWaterMark;u||(e.needDrain=!0);if(e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:a,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else v(t,e,!1,s,r,i,a);return u}(this,i,s,t,e,n)),o},m.prototype.cork=function(){this._writableState.corked++},m.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.finished||t.bufferProcessing||!t.bufferedRequest||w(this,t))},m.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),m.prototype._write=function(t,e,n){n(new Error("_write() is not implemented"))},m.prototype._writev=null,m.prototype.end=function(t,e,n){var r=this._writableState;"function"==typeof t?(n=t,t=null,e=null):"function"==typeof e&&(n=e,e=null),null!=t&&this.write(t,e),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(t,e,n){e.ending=!0,E(t,e),n&&(e.finished?a.nextTick(n):t.once("finish",n));e.ended=!0,t.writable=!1}(this,r,n)},Object.defineProperty(m.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),m.prototype.destroy=g.destroy,m.prototype._undestroy=g.undestroy,m.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,n(5),n(128).setImmediate,n(13))},function(t,e,n){"use strict";var r=n(3).Buffer,i=r.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(r.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=u,this.end=c,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=f,this.end=l,e=3;break;default:return this.write=h,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(e)}function o(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,n=function(t,e,n){if(128!=(192&e[0]))return t.lastNeed=0,"<22>";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"<22>";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"<22>"}}(this,t);return void 0!==n?n:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var n=t.toString("utf16le",e);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,n)}return e}function f(t,e){var n=(t.length-e)%3;return 0===n?t.toString("base64",e):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-n))}function l(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function d(t){return t&&t.length?this.write(t):""}e.StringDecoder=a,a.prototype.write=function(t){if(0===t.length)return"";var e,n;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<t.length?e?e+this.text(t,n):this.text(t,n):e||""},a.prototype.end=function(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"<22>":e},a.prototype.text=function(t,e){var n=function(t,e,n){var r=e.length-1;if(r<n)return 0;var i=o(e[r]);if(i>=0)return i>0&&(t.lastNeed=i-1),i;if(--r<n||-2===i)return 0;if((i=o(e[r]))>=0)return i>0&&(t.lastNeed=i-2),i;if(--r<n||-2===i)return 0;if((i=o(e[r]))>=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=n;var r=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString("utf8",e,r)},a.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,n){"use strict";var r=n(6).Buffer,i=n(2),a=n(70),o=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],f=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],h=[1352829926,1548603684,1836072691,2053994217,0];function d(){a.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(t,e){return t<<e|t>>>32-e}function g(t,e,n,r,i,a,o,s){return p(t+(e^n^r)+a+o|0,s)+i|0}function y(t,e,n,r,i,a,o,s){return p(t+(e&n|~e&r)+a+o|0,s)+i|0}function b(t,e,n,r,i,a,o,s){return p(t+((e|~n)^r)+a+o|0,s)+i|0}function m(t,e,n,r,i,a,o,s){return p(t+(e&r|n&~r)+a+o|0,s)+i|0}function v(t,e,n,r,i,a,o,s){return p(t+(e^(n|~r))+a+o|0,s)+i|0}i(d,a),d.prototype._update=function(){for(var t=o,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,d=0|this._e,_=0|this._a,w=0|this._b,x=0|this._c,k=0|this._d,E=0|this._e,A=0;A<80;A+=1){var S,M;A<16?(S=g(n,r,i,a,d,t[s[A]],l[0],c[A]),M=v(_,w,x,k,E,t[u[A]],h[0],f[A])):A<32?(S=y(n,r,i,a,d,t[s[A]],l[1],c[A]),M=m(_,w,x,k,E,t[u[A]],h[1],f[A])):A<48?(S=b(n,r,i,a,d,t[s[A]],l[2],c[A]),M=b(_,w,x,k,E,t[u[A]],h[2],f[A])):A<64?(S=m(n,r,i,a,d,t[s[A]],l[3],c[A]),M=y(_,w,x,k,E,t[u[A]],h[3],f[A])):(S=v(n,r,i,a,d,t[s[A]],l[4],c[A]),M=g(_,w,x,k,E,t[u[A]],h[4],f[A])),n=d,d=a,a=p(i,10),i=r,r=S,_=E,E=k,k=p(x,10),x=w,w=M}var T=this._b+i+k|0;this._b=this._c+a+E|0,this._c=this._d+d+_|0,this._d=this._e+n+w|0,this._e=this._a+r+x|0,this._a=T},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=r.alloc?r.alloc(20):new r(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=d},function(t,e,n){(e=t.exports=function(t){t=t.toLowerCase();var n=e[t];if(!n)throw new Error(t+" is not supported (we accept pull requests)");return new n}).sha=n(136),e.sha1=n(137),e.sha224=n(138),e.sha256=n(75),e.sha384=n(139),e.sha512=n(76)},function(t,e,n){"use strict";e.utils=n(145),e.Cipher=n(146),e.DES=n(147),e.CBC=n(148),e.EDE=n(149)},function(t,e,n){var r=n(150),i=n(158),a=n(86);e.createCipher=e.Cipher=r.createCipher,e.createCipheriv=e.Cipheriv=r.createCipheriv,e.createDecipher=e.Decipher=i.createDecipher,e.createDecipheriv=e.Decipheriv=i.createDecipheriv,e.listCiphers=e.getCiphers=function(){return Object.keys(a)}},function(t,e,n){var r={ECB:n(151),CBC:n(152),CFB:n(153),CFB8:n(154),CFB1:n(155),OFB:n(156),CTR:n(84),GCM:n(84)},i=n(86);for(var a in i)i[a].module=r[i[a].mode];t.exports=i},function(t,e,n){var r;function i(t){this.rand=t}if(t.exports=function(t){return r||(r=new i(null)),r.generate(t)},t.exports.Rand=i,i.prototype.generate=function(t){return this._rand(t)},i.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),n=0;n<e.length;n++)e[n]=this.rand.getByte();return e},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(t){var e=new Uint8Array(t);return self.crypto.getRandomValues(e),e}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(t){var e=new Uint8Array(t);return self.msCrypto.getRandomValues(e),e}:"object"==typeof window&&(i.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var a=n(162);if("function"!=typeof a.randomBytes)throw new Error("Not supported");i.prototype._rand=function(t){return a.randomBytes(t)}}catch(t){}},function(t,e,n){(function(e){var r=n(4),i=n(22);function a(t,n){var i=function(t){var e=o(t);return{blinder:e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed(),unblinder:e.invm(t.modulus)}}(n),a=n.modulus.byteLength(),s=(r.mont(n.modulus),new r(t).mul(i.blinder).umod(n.modulus)),u=s.toRed(r.mont(n.prime1)),c=s.toRed(r.mont(n.prime2)),f=n.coefficient,l=n.prime1,h=n.prime2,d=u.redPow(n.exponent1),p=c.redPow(n.exponent2);d=d.fromRed(),p=p.fromRed();var g=d.isub(p).imul(f).umod(l);return g.imul(h),p.iadd(g),new e(p.imul(i.unblinder).umod(n.modulus).toArray(!1,a))}function o(t){for(var e=t.modulus.byteLength(),n=new r(i(e));n.cmp(t.modulus)>=0||!n.umod(t.prime1)||!n.umod(t.prime2);)n=new r(i(e));return n}t.exports=a,a.getr=o}).call(this,n(6).Buffer)},function(t,e,n){"use strict";var r=e;r.version=n(167).version,r.utils=n(10),r.rand=n(58),r.curve=n(92),r.curves=n(61),r.ec=n(178),r.eddsa=n(182)},function(t,e,n){"use strict";var r,i=e,a=n(62),o=n(92),s=n(10).assert;function u(t){"short"===t.type?this.curve=new o.short(t):"edwards"===t.type?this.curve=new o.edwards(t):this.curve=new o.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(t,e){Object.defineProperty(i,t,{configurable:!0,enumerable:!0,get:function(){var n=new u(e);return Object.defineProperty(i,t,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=u,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:a.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:a.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:a.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:a.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:a.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(177)}catch(t){r=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:a.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},function(t,e,n){var r=e;r.utils=n(14),r.common=n(29),r.sha=n(171),r.ripemd=n(175),r.hmac=n(176),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(t,e){},function(t,e,n){const r=n(8),i=n(65);t.exports=function(t,e,n,r){return function(t,e,n,r){const a={},o=new i;let s,u;var c=function(t){const e=t.v!==s?t.v:t.w,r=a[e],i=n(t),c=u.distance+i;if(i<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+i);c<r.distance&&(r.distance=c,r.predecessor=s,o.decrease(e,c))};t.nodes().forEach((function(t){var n=t===e?0:Number.POSITIVE_INFINITY;a[t]={distance:n},o.add(t,n)}));for(;o.size()>0&&(s=o.removeMin(),(u=a[s]).distance!==Number.POSITIVE_INFINITY);)r(s).forEach(c);return a}(t,String(e),n||a,r||function(e){return t.outEdges(e)})};var a=r.constant(1)},function(t,e,n){const r=n(8);function i(){this._arr=[],this._keyIndices={}}t.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map((function(t){return t.key}))},i.prototype.has=function(t){return r.has(this._keyIndices,t)},i.prototype.priority=function(t){var e=this._keyIndices[t];if(void 0!==e)return this._arr[e].priority},i.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(t,e){var n=this._keyIndices;if(t=String(t),!r.has(n,t)){var i=this._arr,a=i.length;return n[t]=a,i.push({key:t,priority:e}),this._decrease(a),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},i.prototype.decrease=function(t,e){var n=this._keyIndices[t];if(e>this._arr[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[n].priority+" New: "+e);this._arr[n].priority=e,this._decrease(n)},i.prototype._heapify=function(t){const e=this._arr,n=2*t,r=n+1;let i=t;n<e.length&&(i=e[n].priority<e[i].priority?n:i,r<e.length&&(i=e[r].priority<e[i].priority?r:i),i!==t&&(this._swap(t,i),this._heapify(i)))},i.prototype._decrease=function(t){for(var e,n=this._arr,r=n[t].priority;0!==t&&!(n[e=t>>1].priority<r);)this._swap(t,e),t=e},i.prototype._swap=function(t,e){var n=this._arr,r=this._keyIndices,i=n[t],a=n[e];n[t]=a,n[e]=i,r[a.key]=t,r[i.key]=e}},function(t,e,n){var r=n(8);t.exports=function(t){let e=0;const n=[],i={},a=[];return t.nodes().forEach((function(o){r.has(i,o)||function o(s){var u=i[s]={onStack:!0,lowlink:e,index:e++};n.push(s);t.successors(s).forEach((function(t){r.has(i,t)?i[t].onStack&&(u.lowlink=Math.min(u.lowlink,i[t].index)):(o(t),u.lowlink=Math.min(u.lowlink,i[t].lowlink))}));if(u.lowlink===u.index){const t=[];let e;do{e=n.pop(),i[e].onStack=!1,t.push(e)}while(s!==e);a.push(t)}}(o)})),a}},function(t,e,n){const r=n(8);function i(t){const e={},n={},i=[];if(r.each(t.sinks(),(function o(s){if(r.has(n,s))throw new a;r.has(e,s)||(n[s]=!0,e[s]=!0,r.each(t.predecessors(s),o),delete n[s],i.push(s))})),r.size(e)!==t.nodeCount())throw new a;return i}function a(){}t.exports=i,i.CycleException=a,a.prototype=new Error},function(t,e,n){var r=n(8);t.exports=function(t,e,n){r.isArray(e)||(e=[e]);var i=(t.isDirected()?t.successors:t.neighbors).bind(t);const a=[],o={};return r.each(e,(function(e){if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);!function t(e,n,i,a,o,s){r.has(a,n)||(a[n]=!0,i||s.push(n),r.each(o(n),(function(n){t(e,n,i,a,o,s)})),i&&s.push(n))}(t,e,"post"===n,o,i,a)})),a}},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e,n){"use strict";var r=n(3).Buffer,i=n(47).Transform;function a(t){i.call(this),this._block=r.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(2)(a,i),a.prototype._transform=function(t,e,n){var r=null;try{this.update(t,e)}catch(t){r=t}n(r)},a.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},a.prototype.update=function(t,e){if(function(t,e){if(!r.isBuffer(t)&&"string"!=typeof t)throw new TypeError(e+" must be a string or a buffer")}(t,"Data"),this._finalized)throw new Error("Digest already called");r.isBuffer(t)||(t=r.from(t,e));for(var n=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var a=this._blockOffset;a<this._blockSize;)n[a++]=t[i++];this._update(),this._blockOffset=0}for(;i<t.length;)n[this._blockOffset++]=t[i++];for(var o=0,s=8*t.length;s>0;++o)this._length[o]+=s,(s=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*s);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return e},a.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=a},function(t,e,n){"use strict";(function(e,r){var i=n(35);t.exports=v;var a,o=n(69);v.ReadableState=m;n(48).EventEmitter;var s=function(t,e){return t.listeners(e).length},u=n(72),c=n(50).Buffer,f=e.Uint8Array||function(){};var l=n(27);l.inherits=n(2);var h=n(125),d=void 0;d=h&&h.debuglog?h.debuglog("stream"):function(){};var p,g=n(126),y=n(73);l.inherits(v,u);var b=["error","close","destroy","pause","resume"];function m(t,e){t=t||{};var r=e instanceof(a=a||n(21));this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,o=t.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(o||0===o)?o:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=n(52).StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function v(t){if(a=a||n(21),!(this instanceof v))return new v(t);this._readableState=new m(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function _(t,e,n,r,i){var a,o=t._readableState;null===e?(o.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var n=e.decoder.end();n&&n.length&&(e.buffer.push(n),e.length+=e.objectMode?1:n.length)}e.ended=!0,E(t)}(t,o)):(i||(a=function(t,e){var n;r=e,c.isBuffer(r)||r instanceof f||"string"==typeof e||void 0===e||t.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(o,e)),a?t.emit("error",a):o.objectMode||e&&e.length>0?("string"==typeof e||o.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),r?o.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):w(t,o,e,!0):o.ended?t.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!n?(e=o.decoder.write(e),o.objectMode||0!==e.length?w(t,o,e,!1):S(t,o)):w(t,o,e,!1))):r||(o.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.length<t.highWaterMark||0===t.length)}(o)}function w(t,e,n,r){e.flowing&&0===e.length&&!e.sync?(t.emit("data",n),t.read(0)):(e.length+=e.objectMode?1:n.length,r?e.buffer.unshift(n):e.buffer.push(n),e.needReadable&&E(t)),S(t,e)}Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),v.prototype.destroy=y.destroy,v.prototype._undestroy=y.undestroy,v.prototype._destroy=function(t,e){this.push(null),e(t)},v.prototype.push=function(t,e){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof t&&((e=e||r.defaultEncoding)!==r.encoding&&(t=c.from(t,e),e=""),n=!0),_(this,t,e,!1,n)},v.prototype.unshift=function(t){return _(this,t,null,!0,!1)},v.prototype.isPaused=function(){return!1===this._readableState.flowing},v.prototype.setEncoding=function(t){return p||(p=n(52).StringDecoder),this._readableState.decoder=new p(t),this._readableState.encoding=t,this};var x=8388608;function k(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=x?t=x:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function E(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(d("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(A,t):A(t))}function A(t){d("emit readable"),t.emit("readable"),C(t)}function S(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(M,t,e))}function M(t,e){for(var n=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(d("maybeReadMore read 0"),t.read(0),n!==e.length);)n=e.length;e.readingMore=!1}function T(t){d("readable nexttick read 0"),t.read(0)}function D(t,e){e.reading||(d("resume read 0"),t.read(0)),e.resumeScheduled=!1,e.awaitDrain=0,t.emit("resume"),C(t),e.flowing&&!e.reading&&t.read(0)}function C(t){var e=t._readableState;for(d("flow",e.flowing);e.flowing&&null!==t.read(););}function O(t,e){return 0===e.length?null:(e.objectMode?n=e.buffer.shift():!t||t>=e.length?(n=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):n=function(t,e,n){var r;t<e.head.data.length?(r=e.head.data.slice(0,t),e.head.data=e.head.data.slice(t)):r=t===e.head.data.length?e.shift():n?function(t,e){var n=e.head,r=1,i=n.data;t-=i.length;for(;n=n.next;){var a=n.data,o=t>a.length?a.length:t;if(o===a.length?i+=a:i+=a.slice(0,t),0===(t-=o)){o===a.length?(++r,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=a.slice(o));break}++r}return e.length-=r,i}(t,e):function(t,e){var n=c.allocUnsafe(t),r=e.head,i=1;r.data.copy(n),t-=r.data.length;for(;r=r.next;){var a=r.data,o=t>a.length?a.length:t;if(a.copy(n,n.length-t,0,o),0===(t-=o)){o===a.length?(++i,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=a.slice(o));break}++i}return e.length-=i,n}(t,e);return r}(t,e.buffer,e.decoder),n);var n}function R(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(N,e,t))}function N(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function I(t,e){for(var n=0,r=t.length;n<r;n++)if(t[n]===e)return n;return-1}v.prototype.read=function(t){d("read",t),t=parseInt(t,10);var e=this._readableState,n=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return d("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?R(this):E(this),null;if(0===(t=k(t,e))&&e.ended)return 0===e.length&&R(this),null;var r,i=e.needReadable;return d("need readable",i),(0===e.length||e.length-t<e.highWaterMark)&&d("length less than watermark",i=!0),e.ended||e.reading?d("reading or ended",i=!1):i&&(d("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=k(n,e))),null===(r=t>0?O(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),n!==t&&e.ended&&R(this)),null!==r&&this.emit("data",r),r},v.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},v.prototype.pipe=function(t,e){var n=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=t;break;case 1:a.pipes=[a.pipes,t];break;default:a.pipes.push(t)}a.pipesCount+=1,d("pipe count=%d opts=%j",a.pipesCount,e);var u=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?f:v;function c(e,r){d("onunpipe"),e===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,d("cleanup"),t.removeListener("close",b),t.removeListener("finish",m),t.removeListener("drain",l),t.removeListener("error",y),t.removeListener("unpipe",c),n.removeListener("end",f),n.removeListener("end",v),n.removeListener("data",g),h=!0,!a.awaitDrain||t._writableState&&!t._writableState.needDrain||l())}function f(){d("onend"),t.end()}a.endEmitted?i.nextTick(u):n.once("end",u),t.on("unpipe",c);var l=function(t){return function(){var e=t._readableState;d("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&s(t,"data")&&(e.flowing=!0,C(t))}}(n);t.on("drain",l);var h=!1;var p=!1;function g(e){d("ondata"),p=!1,!1!==t.write(e)||p||((1===a.pipesCount&&a.pipes===t||a.pipesCount>1&&-1!==I(a.pipes,t))&&!h&&(d("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}function y(e){d("onerror",e),v(),t.removeListener("error",y),0===s(t,"error")&&t.emit("error",e)}function b(){t.removeListener("finish",m),v()}function m(){d("onfinish"),t.removeListener("close",b),v()}function v(){d("unpipe"),n.unpipe(t)}return n.on("data",g),function(t,e,n){if("function"==typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?o(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}(t,"error",y),t.once("close",b),t.once("finish",m),t.emit("pipe",n),a.flowing||(d("pipe resume"),n.resume()),t},v.prototype.unpipe=function(t){var e=this._readableState,n={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,n),this);if(!t){var r=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a<i;a++)r[a].emit("unpipe",this,n);return this}var o=I(e.pipes,t);return-1===o?this:(e.pipes.splice(o,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,n),this)},v.prototype.on=function(t,e){var n=u.prototype.on.call(this,t,e);if("data"===t)!1!==this._readableState.flowing&&this.resume();else if("readable"===t){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&E(this):i.nextTick(T,this))}return n},v.prototype.addListener=v.prototype.on,v.prototype.resume=function(){var t=this._readableState;return t.flowing||(d("resume"),t.flowing=!0,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(D,t,e))}(this,t)),this},v.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this},v.prototype.wrap=function(t){var e=this,n=this._readableState,r=!1;for(var i in t.on("end",(function(){if(d("wrapped end"),n.decoder&&!n.ended){var t=n.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){(d("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i)||(n.objectMode||i&&i.length)&&(e.push(i)||(r=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var a=0;a<b.length;a++)t.on(b[a],this.emit.bind(this,b[a]));return this._read=function(e){d("wrapped _read",e),r&&(r=!1,t.resume())},this},Object.defineProperty(v.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),v._fromList=O}).call(this,n(13),n(5))},function(t,e,n){t.exports=n(48).EventEmitter},function(t,e,n){"use strict";var r=n(35);function i(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var n=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(e?e(t):!t||this._writableState&&this._writableState.errorEmitted||r.nextTick(i,this,t),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?(r.nextTick(i,n,t),n._writableState&&(n._writableState.errorEmitted=!0)):e&&e(t)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(t,e,n){"use strict";t.exports=o;var r=n(21),i=n(27);function a(t,e){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=e&&this.push(e),r(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function o(t){if(!(this instanceof o))return new o(t);r.call(this,t),this._transformState={afterTransform:a.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",s)}function s(){var t=this;"function"==typeof this._flush?this._flush((function(e,n){u(t,e,n)})):u(this,null,null)}function u(t,e,n){if(e)return t.emit("error",e);if(null!=n&&t.push(n),t._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(t._transformState.transforming)throw new Error("Calling transform done when still transforming");return t.push(null)}i.inherits=n(2),i.inherits(o,r),o.prototype.push=function(t,e){return this._transformState.needTransform=!1,r.prototype.push.call(this,t,e)},o.prototype._transform=function(t,e,n){throw new Error("_transform() is not implemented")},o.prototype._write=function(t,e,n){var r=this._transformState;if(r.writecb=n,r.writechunk=t,r.writeencoding=e,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},o.prototype._read=function(t){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0},o.prototype._destroy=function(t,e){var n=this;r.prototype._destroy.call(this,t,(function(t){e(t),n.emit("close")}))}},function(t,e,n){var r=n(2),i=n(23),a=n(3).Buffer,o=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(t,e,n){return n^t&(e^n)}function f(t,e,n){return t&e|n&(t|e)}function l(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function h(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function d(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}r(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e,n=this._w,r=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,g=0|this._g,y=0|this._h,b=0;b<16;++b)n[b]=t.readInt32BE(4*b);for(;b<64;++b)n[b]=0|(((e=n[b-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+n[b-7]+d(n[b-15])+n[b-16];for(var m=0;m<64;++m){var v=y+h(u)+c(u,p,g)+o[m]+n[m]|0,_=l(r)+f(r,i,a)|0;y=g,g=p,p=u,u=s+v|0,s=a,a=i,i=r,r=v+_|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=g+this._g|0,this._h=y+this._h|0},u.prototype._hash=function(){var t=a.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},function(t,e,n){var r=n(2),i=n(23),a=n(3).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function c(t,e,n){return n^t&(e^n)}function f(t,e,n){return t&e|n&(t|e)}function l(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function h(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function g(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function y(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function b(t,e){return t>>>0<e>>>0?1:0}r(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,a=0|this._dh,s=0|this._eh,u=0|this._fh,m=0|this._gh,v=0|this._hh,_=0|this._al,w=0|this._bl,x=0|this._cl,k=0|this._dl,E=0|this._el,A=0|this._fl,S=0|this._gl,M=0|this._hl,T=0;T<32;T+=2)e[T]=t.readInt32BE(4*T),e[T+1]=t.readInt32BE(4*T+4);for(;T<160;T+=2){var D=e[T-30],C=e[T-30+1],O=d(D,C),R=p(C,D),N=g(D=e[T-4],C=e[T-4+1]),I=y(C,D),B=e[T-14],L=e[T-14+1],P=e[T-32],F=e[T-32+1],q=R+L|0,j=O+B+b(q,R)|0;j=(j=j+N+b(q=q+I|0,I)|0)+P+b(q=q+F|0,F)|0,e[T]=j,e[T+1]=q}for(var U=0;U<160;U+=2){j=e[U],q=e[U+1];var z=f(n,r,i),Y=f(_,w,x),H=l(n,_),V=l(_,n),$=h(s,E),G=h(E,s),W=o[U],K=o[U+1],X=c(s,u,m),Z=c(E,A,S),J=M+G|0,Q=v+$+b(J,M)|0;Q=(Q=(Q=Q+X+b(J=J+Z|0,Z)|0)+W+b(J=J+K|0,K)|0)+j+b(J=J+q|0,q)|0;var tt=V+Y|0,et=H+z+b(tt,V)|0;v=m,M=S,m=u,S=A,u=s,A=E,s=a+Q+b(E=k+J|0,k)|0,a=i,k=x,i=r,x=w,r=n,w=_,n=Q+et+b(_=J+tt|0,J)|0}this._al=this._al+_|0,this._bl=this._bl+w|0,this._cl=this._cl+x|0,this._dl=this._dl+k|0,this._el=this._el+E|0,this._fl=this._fl+A|0,this._gl=this._gl+S|0,this._hl=this._hl+M|0,this._ah=this._ah+n+b(this._al,_)|0,this._bh=this._bh+r+b(this._bl,w)|0,this._ch=this._ch+i+b(this._cl,x)|0,this._dh=this._dh+a+b(this._dl,k)|0,this._eh=this._eh+s+b(this._el,E)|0,this._fh=this._fh+u+b(this._fl,A)|0,this._gh=this._gh+m+b(this._gl,S)|0,this._hh=this._hh+v+b(this._hl,M)|0},u.prototype._hash=function(){var t=a.allocUnsafe(64);function e(e,n,r){t.writeInt32BE(e,r),t.writeInt32BE(n,r+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},function(t,e,n){"use strict";var r=n(2),i=n(140),a=n(19),o=n(3).Buffer,s=n(78),u=n(53),c=n(54),f=o.alloc(128);function l(t,e){a.call(this,"digest"),"string"==typeof e&&(e=o.from(e));var n="sha512"===t||"sha384"===t?128:64;(this._alg=t,this._key=e,e.length>n)?e=("rmd160"===t?new u:c(t)).update(e).digest():e.length<n&&(e=o.concat([e,f],n));for(var r=this._ipad=o.allocUnsafe(n),i=this._opad=o.allocUnsafe(n),s=0;s<n;s++)r[s]=54^e[s],i[s]=92^e[s];this._hash="rmd160"===t?new u:c(t),this._hash.update(r)}r(l,a),l.prototype._update=function(t){this._hash.update(t)},l.prototype._final=function(){var t=this._hash.digest();return("rmd160"===this._alg?new u:c(this._alg)).update(this._opad).update(t).digest()},t.exports=function(t,e){return"rmd160"===(t=t.toLowerCase())||"ripemd160"===t?new l("rmd160",e):"md5"===t?new i(s,e):new l(t,e)}},function(t,e,n){var r=n(46);t.exports=function(t){return(new r).update(t).digest()}},function(t){t.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},function(t,e,n){e.pbkdf2=n(142),e.pbkdf2Sync=n(83)},function(t,e,n){(function(e){var n=Math.pow(2,30)-1;function r(t,n){if("string"!=typeof t&&!e.isBuffer(t))throw new TypeError(n+" must be a buffer or string")}t.exports=function(t,e,i,a){if(r(t,"Password"),r(e,"Salt"),"number"!=typeof i)throw new TypeError("Iterations not a number");if(i<0)throw new TypeError("Bad iterations");if("number"!=typeof a)throw new TypeError("Key length not a number");if(a<0||a>n||a!=a)throw new TypeError("Bad key length")}}).call(this,n(6).Buffer)},function(t,e,n){(function(e){var n;e.browser?n="utf-8":n=parseInt(e.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";t.exports=n}).call(this,n(5))},function(t,e,n){var r=n(78),i=n(53),a=n(54),o=n(81),s=n(82),u=n(3).Buffer,c=u.alloc(128),f={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function l(t,e,n){var o=function(t){return"rmd160"===t||"ripemd160"===t?function(t){return(new i).update(t).digest()}:"md5"===t?r:function(e){return a(t).update(e).digest()}}(t),s="sha512"===t||"sha384"===t?128:64;e.length>s?e=o(e):e.length<s&&(e=u.concat([e,c],s));for(var l=u.allocUnsafe(s+f[t]),h=u.allocUnsafe(s+f[t]),d=0;d<s;d++)l[d]=54^e[d],h[d]=92^e[d];var p=u.allocUnsafe(s+n+4);l.copy(p,0,0,s),this.ipad1=p,this.ipad2=l,this.opad=h,this.alg=t,this.blocksize=s,this.hash=o,this.size=f[t]}l.prototype.run=function(t,e){return t.copy(e,this.blocksize),this.hash(e).copy(this.opad,this.blocksize),this.hash(this.opad)},t.exports=function(t,e,n,r,i){o(t,e,n,r),u.isBuffer(t)||(t=u.from(t,s)),u.isBuffer(e)||(e=u.from(e,s));var a=new l(i=i||"sha1",t,e.length),c=u.allocUnsafe(r),h=u.allocUnsafe(e.length+4);e.copy(h,0,0,e.length);for(var d=0,p=f[i],g=Math.ceil(r/p),y=1;y<=g;y++){h.writeUInt32BE(y,e.length);for(var b=a.run(h,a.ipad1),m=b,v=1;v<n;v++){m=a.run(m,a.ipad2);for(var _=0;_<p;_++)b[_]^=m[_]}b.copy(c,d),d+=p}return c}},function(t,e,n){var r=n(28),i=n(3).Buffer,a=n(85);function o(t){var e=t._cipher.encryptBlockRaw(t._prev);return a(t._prev),e}e.encrypt=function(t,e){var n=Math.ceil(e.length/16),a=t._cache.length;t._cache=i.concat([t._cache,i.allocUnsafe(16*n)]);for(var s=0;s<n;s++){var u=o(t),c=a+16*s;t._cache.writeUInt32BE(u[0],c+0),t._cache.writeUInt32BE(u[1],c+4),t._cache.writeUInt32BE(u[2],c+8),t._cache.writeUInt32BE(u[3],c+12)}var f=t._cache.slice(0,e.length);return t._cache=t._cache.slice(e.length),r(e,f)}},function(t,e){t.exports=function(t){for(var e,n=t.length;n--;){if(255!==(e=t.readUInt8(n))){e++,t.writeUInt8(e,n);break}t.writeUInt8(0,n)}}},function(t){t.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},function(t,e,n){var r=n(36),i=n(3).Buffer,a=n(19),o=n(2),s=n(157),u=n(28),c=n(85);function f(t,e,n,o){a.call(this);var u=i.alloc(4,0);this._cipher=new r.AES(e);var f=this._cipher.encryptBlock(u);this._ghash=new s(f),n=function(t,e,n){if(12===e.length)return t._finID=i.concat([e,i.from([0,0,0,1])]),i.concat([e,i.from([0,0,0,2])]);var r=new s(n),a=e.length,o=a%16;r.update(e),o&&(o=16-o,r.update(i.alloc(o,0))),r.update(i.alloc(8,0));var u=8*a,f=i.alloc(8);f.writeUIntBE(u,0,8),r.update(f),t._finID=r.state;var l=i.from(t._finID);return c(l),l}(this,n,f),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=t,this._authTag=null,this._called=!1}o(f,a),f.prototype._update=function(t){if(!this._called&&this._alen){var e=16-this._alen%16;e<16&&(e=i.alloc(e,0),this._ghash.update(e))}this._called=!0;var n=this._mode.encrypt(this,t);return this._decrypt?this._ghash.update(t):this._ghash.update(n),this._len+=t.length,n},f.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var t=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(t,e){var n=0;t.length!==e.length&&n++;for(var r=Math.min(t.length,e.length),i=0;i<r;++i)n+=t[i]^e[i];return n}(t,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=t,this._cipher.scrub()},f.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},f.prototype.setAuthTag=function(t){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=t},f.prototype.setAAD=function(t){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(t),this._alen+=t.length},t.exports=f},function(t,e,n){var r=n(36),i=n(3).Buffer,a=n(19);function o(t,e,n,o){a.call(this),this._cipher=new r.AES(e),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._mode=t}n(2)(o,a),o.prototype._update=function(t){return this._mode.encrypt(this,t,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},t.exports=o},function(t,e,n){var r=n(22);t.exports=m,m.simpleSieve=y,m.fermatTest=b;var i=n(4),a=new i(24),o=new(n(90)),s=new i(1),u=new i(2),c=new i(5),f=(new i(16),new i(8),new i(10)),l=new i(3),h=(new i(7),new i(11)),d=new i(4),p=(new i(12),null);function g(){if(null!==p)return p;var t=[];t[0]=2;for(var e=1,n=3;n<1048576;n+=2){for(var r=Math.ceil(Math.sqrt(n)),i=0;i<e&&t[i]<=r&&n%t[i]!=0;i++);e!==i&&t[i]<=r||(t[e++]=n)}return p=t,t}function y(t){for(var e=g(),n=0;n<e.length;n++)if(0===t.modn(e[n]))return 0===t.cmpn(e[n]);return!0}function b(t){var e=i.mont(t);return 0===u.toRed(e).redPow(t.subn(1)).fromRed().cmpn(1)}function m(t,e){if(t<16)return new i(2===e||5===e?[140,123]:[140,39]);var n,p;for(e=new i(e);;){for(n=new i(r(Math.ceil(t/8)));n.bitLength()>t;)n.ishrn(1);if(n.isEven()&&n.iadd(s),n.testn(1)||n.iadd(u),e.cmp(u)){if(!e.cmp(c))for(;n.mod(f).cmp(l);)n.iadd(d)}else for(;n.mod(a).cmp(h);)n.iadd(d);if(y(p=n.shrn(1))&&y(n)&&b(p)&&b(n)&&o.test(p)&&o.test(n))return n}}},function(t,e,n){var r=n(4),i=n(58);function a(t){this.rand=t||new i.Rand}t.exports=a,a.create=function(t){return new a(t)},a.prototype._randbelow=function(t){var e=t.bitLength(),n=Math.ceil(e/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(t)>=0);return i},a.prototype._randrange=function(t,e){var n=e.sub(t);return t.add(this._randbelow(n))},a.prototype.test=function(t,e,n){var i=t.bitLength(),a=r.mont(t),o=new r(1).toRed(a);e||(e=Math.max(1,i/48|0));for(var s=t.subn(1),u=0;!s.testn(u);u++);for(var c=t.shrn(u),f=s.toRed(a);e>0;e--){var l=this._randrange(new r(2),s);n&&n(l);var h=l.toRed(a).redPow(c);if(0!==h.cmp(o)&&0!==h.cmp(f)){for(var d=1;d<u;d++){if(0===(h=h.redSqr()).cmp(o))return!1;if(0===h.cmp(f))break}if(d===u)return!1}}return!0},a.prototype.getDivisor=function(t,e){var n=t.bitLength(),i=r.mont(t),a=new r(1).toRed(i);e||(e=Math.max(1,n/48|0));for(var o=t.subn(1),s=0;!o.testn(s);s++);for(var u=t.shrn(s),c=o.toRed(i);e>0;e--){var f=this._randrange(new r(2),o),l=t.gcd(f);if(0!==l.cmpn(1))return l;var h=f.toRed(i).redPow(u);if(0!==h.cmp(a)&&0!==h.cmp(c)){for(var d=1;d<s;d++){if(0===(h=h.redSqr()).cmp(a))return h.fromRed().subn(1).gcd(t);if(0===h.cmp(c))break}if(d===s)return(h=h.redSqr()).fromRed().subn(1).gcd(t)}}return!1}},function(t,e,n){"use strict";var r=e;function i(t){return 1===t.length?"0"+t:t}function a(t){for(var e="",n=0;n<t.length;n++)e+=i(t[n].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"!=typeof t){for(var r=0;r<t.length;r++)n[r]=0|t[r];return n}if("hex"===e){(t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t);for(r=0;r<t.length;r+=2)n.push(parseInt(t[r]+t[r+1],16))}else for(r=0;r<t.length;r++){var i=t.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},r.zero2=i,r.toHex=a,r.encode=function(t,e){return"hex"===e?a(t):t}},function(t,e,n){"use strict";var r=e;r.base=n(38),r.short=n(168),r.mont=n(169),r.edwards=n(170)},function(t,e,n){"use strict";var r=n(14).rotr32;function i(t,e,n){return t&e^~t&n}function a(t,e,n){return t&e^t&n^e&n}function o(t,e,n){return t^e^n}e.ft_1=function(t,e,n,r){return 0===t?i(e,n,r):1===t||3===t?o(e,n,r):2===t?a(e,n,r):void 0},e.ch32=i,e.maj32=a,e.p32=o,e.s0_256=function(t){return r(t,2)^r(t,13)^r(t,22)},e.s1_256=function(t){return r(t,6)^r(t,11)^r(t,25)},e.g0_256=function(t){return r(t,7)^r(t,18)^t>>>3},e.g1_256=function(t){return r(t,17)^r(t,19)^t>>>10}},function(t,e,n){"use strict";var r=n(14),i=n(29),a=n(93),o=n(9),s=r.sum32,u=r.sum32_4,c=r.sum32_5,f=a.ch32,l=a.maj32,h=a.s0_256,d=a.s1_256,p=a.g0_256,g=a.g1_256,y=i.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;y.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}r.inherits(m,y),t.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(t,e){for(var n=this.W,r=0;r<16;r++)n[r]=t[e+r];for(;r<n.length;r++)n[r]=u(g(n[r-2]),n[r-7],p(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],y=this.h[2],b=this.h[3],m=this.h[4],v=this.h[5],_=this.h[6],w=this.h[7];for(o(this.k.length===n.length),r=0;r<n.length;r++){var x=c(w,d(m),f(m,v,_),this.k[r],n[r]),k=s(h(i),l(i,a,y));w=_,_=v,v=m,m=s(b,x),b=y,y=a,a=i,i=s(x,k)}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],a),this.h[2]=s(this.h[2],y),this.h[3]=s(this.h[3],b),this.h[4]=s(this.h[4],m),this.h[5]=s(this.h[5],v),this.h[6]=s(this.h[6],_),this.h[7]=s(this.h[7],w)},m.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,n){"use strict";var r=n(14),i=n(29),a=n(9),o=r.rotr64_hi,s=r.rotr64_lo,u=r.shr64_hi,c=r.shr64_lo,f=r.sum64,l=r.sum64_hi,h=r.sum64_lo,d=r.sum64_4_hi,p=r.sum64_4_lo,g=r.sum64_5_hi,y=r.sum64_5_lo,b=i.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function _(t,e,n,r,i){var a=t&n^~t&i;return a<0&&(a+=4294967296),a}function w(t,e,n,r,i,a){var o=e&r^~e&a;return o<0&&(o+=4294967296),o}function x(t,e,n,r,i){var a=t&n^t&i^n&i;return a<0&&(a+=4294967296),a}function k(t,e,n,r,i,a){var o=e&r^e&a^r&a;return o<0&&(o+=4294967296),o}function E(t,e){var n=o(t,e,28)^o(e,t,2)^o(e,t,7);return n<0&&(n+=4294967296),n}function A(t,e){var n=s(t,e,28)^s(e,t,2)^s(e,t,7);return n<0&&(n+=4294967296),n}function S(t,e){var n=o(t,e,14)^o(t,e,18)^o(e,t,9);return n<0&&(n+=4294967296),n}function M(t,e){var n=s(t,e,14)^s(t,e,18)^s(e,t,9);return n<0&&(n+=4294967296),n}function T(t,e){var n=o(t,e,1)^o(t,e,8)^u(t,e,7);return n<0&&(n+=4294967296),n}function D(t,e){var n=s(t,e,1)^s(t,e,8)^c(t,e,7);return n<0&&(n+=4294967296),n}function C(t,e){var n=o(t,e,19)^o(e,t,29)^u(t,e,6);return n<0&&(n+=4294967296),n}function O(t,e){var n=s(t,e,19)^s(e,t,29)^c(t,e,6);return n<0&&(n+=4294967296),n}r.inherits(v,b),t.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(t,e){for(var n=this.W,r=0;r<32;r++)n[r]=t[e+r];for(;r<n.length;r+=2){var i=C(n[r-4],n[r-3]),a=O(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=T(n[r-30],n[r-29]),c=D(n[r-30],n[r-29]),f=n[r-32],l=n[r-31];n[r]=d(i,a,o,s,u,c,f,l),n[r+1]=p(i,a,o,s,u,c,f,l)}},v.prototype._update=function(t,e){this._prepareBlock(t,e);var n=this.W,r=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4],c=this.h[5],d=this.h[6],p=this.h[7],b=this.h[8],m=this.h[9],v=this.h[10],T=this.h[11],D=this.h[12],C=this.h[13],O=this.h[14],R=this.h[15];a(this.k.length===n.length);for(var N=0;N<n.length;N+=2){var I=O,B=R,L=S(b,m),P=M(b,m),F=_(b,m,v,T,D),q=w(b,m,v,T,D,C),j=this.k[N],U=this.k[N+1],z=n[N],Y=n[N+1],H=g(I,B,L,P,F,q,j,U,z,Y),V=y(I,B,L,P,F,q,j,U,z,Y);I=E(r,i),B=A(r,i),L=x(r,i,o,s,u),P=k(r,i,o,s,u,c);var $=l(I,B,L,P),G=h(I,B,L,P);O=D,R=C,D=v,C=T,v=b,T=m,b=l(d,p,H,V),m=h(p,p,H,V),d=u,p=c,u=o,c=s,o=r,s=i,r=l(H,V,$,G),i=h(H,V,$,G)}f(this.h,0,r,i),f(this.h,2,o,s),f(this.h,4,u,c),f(this.h,6,d,p),f(this.h,8,b,m),f(this.h,10,v,T),f(this.h,12,D,C),f(this.h,14,O,R)},v.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,n){var r=n(2),i=n(31).Reporter,a=n(6).Buffer;function o(t,e){i.call(this,e),a.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function s(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return t instanceof s||(t=new s(t,e)),this.length+=t.length,t}),this);else if("number"==typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"==typeof t)this.value=t,this.length=a.byteLength(t);else{if(!a.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}r(o,i),e.DecoderBuffer=o,o.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},o.prototype.restore=function(t){var e=new o(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,i.prototype.restore.call(this,t.reporter),e},o.prototype.isEmpty=function(){return this.offset===this.length},o.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},o.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var n=new o(this.base);return n._reporterState=this._reporterState,n.offset=this.offset,n.length=this.offset+t,this.offset+=t,n},o.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=s,s.prototype.join=function(t,e){return t||(t=new a(this.length)),e||(e=0),0===this.length?t:(Array.isArray(this.value)?this.value.forEach((function(n){n.join(t,e),e+=n.length})):("number"==typeof this.value?t[e]=this.value:"string"==typeof this.value?t.write(this.value,e):a.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length),t)}},function(t,e,n){var r=e;r._reverse=function(t){var e={};return Object.keys(t).forEach((function(n){(0|n)==n&&(n|=0);var r=t[n];e[r]=n})),e},r.der=n(190)},function(t,e,n){var r=n(2),i=n(30),a=i.base,o=i.bignum,s=i.constants.der;function u(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new c,this.tree._init(t.body)}function c(t){a.Node.call(this,"der",t)}function f(t,e){var n=t.readUInt8(e);if(t.isError(n))return n;var r=s.tagClass[n>>6],i=0==(32&n);if(31==(31&n)){var a=n;for(n=0;128==(128&a);){if(a=t.readUInt8(e),t.isError(a))return a;n<<=7,n|=127&a}}else n&=31;return{cls:r,primitive:i,tag:n,tagStr:s.tag[n]}}function l(t,e,n){var r=t.readUInt8(n);if(t.isError(r))return r;if(!e&&128===r)return null;if(0==(128&r))return r;var i=127&r;if(i>4)return t.error("length octect is too long");r=0;for(var a=0;a<i;a++){r<<=8;var o=t.readUInt8(n);if(t.isError(o))return o;r|=o}return r}t.exports=u,u.prototype.decode=function(t,e){return t instanceof a.DecoderBuffer||(t=new a.DecoderBuffer(t,e)),this.tree._decode(t,e)},r(c,a.Node),c.prototype._peekTag=function(t,e,n){if(t.isEmpty())return!1;var r=t.save(),i=f(t,'Failed to peek tag: "'+e+'"');return t.isError(i)?i:(t.restore(r),i.tag===e||i.tagStr===e||i.tagStr+"of"===e||n)},c.prototype._decodeTag=function(t,e,n){var r=f(t,'Failed to decode tag of "'+e+'"');if(t.isError(r))return r;var i=l(t,r.primitive,'Failed to get length of "'+e+'"');if(t.isError(i))return i;if(!n&&r.tag!==e&&r.tagStr!==e&&r.tagStr+"of"!==e)return t.error('Failed to match tag: "'+e+'"');if(r.primitive||null!==i)return t.skip(i,'Failed to match body of: "'+e+'"');var a=t.save(),o=this._skipUntilEnd(t,'Failed to skip indefinite length body: "'+this.tag+'"');return t.isError(o)?o:(i=t.offset-a.offset,t.restore(a),t.skip(i,'Failed to match body of: "'+e+'"'))},c.prototype._skipUntilEnd=function(t,e){for(;;){var n=f(t,e);if(t.isError(n))return n;var r,i=l(t,n.primitive,e);if(t.isError(i))return i;if(r=n.primitive||null!==i?t.skip(i):this._skipUntilEnd(t,e),t.isError(r))return r;if("end"===n.tagStr)break}},c.prototype._decodeList=function(t,e,n,r){for(var i=[];!t.isEmpty();){var a=this._peekTag(t,"end");if(t.isError(a))return a;var o=n.decode(t,"der",r);if(t.isError(o)&&a)break;i.push(o)}return i},c.prototype._decodeStr=function(t,e){if("bitstr"===e){var n=t.readUInt8();return t.isError(n)?n:{unused:n,data:t.raw()}}if("bmpstr"===e){var r=t.raw();if(r.length%2==1)return t.error("Decoding of string type: bmpstr length mismatch");for(var i="",a=0;a<r.length/2;a++)i+=String.fromCharCode(r.readUInt16BE(2*a));return i}if("numstr"===e){var o=t.raw().toString("ascii");return this._isNumstr(o)?o:t.error("Decoding of string type: numstr unsupported characters")}if("octstr"===e)return t.raw();if("objDesc"===e)return t.raw();if("printstr"===e){var s=t.raw().toString("ascii");return this._isPrintstr(s)?s:t.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(e)?t.raw().toString():t.error("Decoding of string type: "+e+" unsupported")},c.prototype._decodeObjid=function(t,e,n){for(var r,i=[],a=0;!t.isEmpty();){var o=t.readUInt8();a<<=7,a|=127&o,0==(128&o)&&(i.push(a),a=0)}128&o&&i.push(a);var s=i[0]/40|0,u=i[0]%40;if(r=n?i:[s,u].concat(i.slice(1)),e){var c=e[r.join(" ")];void 0===c&&(c=e[r.join(".")]),void 0!==c&&(r=c)}return r},c.prototype._decodeTime=function(t,e){var n=t.raw().toString();if("gentime"===e)var r=0|n.slice(0,4),i=0|n.slice(4,6),a=0|n.slice(6,8),o=0|n.slice(8,10),s=0|n.slice(10,12),u=0|n.slice(12,14);else{if("utctime"!==e)return t.error("Decoding "+e+" time is not supported yet");r=0|n.slice(0,2),i=0|n.slice(2,4),a=0|n.slice(4,6),o=0|n.slice(6,8),s=0|n.slice(8,10),u=0|n.slice(10,12);r=r<70?2e3+r:1900+r}return Date.UTC(r,i-1,a,o,s,u,0)},c.prototype._decodeNull=function(t){return null},c.prototype._decodeBool=function(t){var e=t.readUInt8();return t.isError(e)?e:0!==e},c.prototype._decodeInt=function(t,e){var n=t.raw(),r=new o(n);return e&&(r=e[r.toString(10)]||r),r},c.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getDecoder("der").tree}},function(t,e,n){var r=n(2),i=n(6).Buffer,a=n(30),o=a.base,s=a.constants.der;function u(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new c,this.tree._init(t.body)}function c(t){o.Node.call(this,"der",t)}function f(t){return t<10?"0"+t:t}t.exports=u,u.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},r(c,o.Node),c.prototype._encodeComposite=function(t,e,n,r){var a,o=function(t,e,n,r){var i;"seqof"===t?t="seq":"setof"===t&&(t="set");if(s.tagByName.hasOwnProperty(t))i=s.tagByName[t];else{if("number"!=typeof t||(0|t)!==t)return r.error("Unknown tag: "+t);i=t}if(i>=31)return r.error("Multi-octet tag encoding unsupported");e||(i|=32);return i|=s.tagClassByName[n||"universal"]<<6}(t,e,n,this.reporter);if(r.length<128)return(a=new i(2))[0]=o,a[1]=r.length,this._createEncoderBuffer([a,r]);for(var u=1,c=r.length;c>=256;c>>=8)u++;(a=new i(2+u))[0]=o,a[1]=128|u;c=1+u;for(var f=r.length;f>0;c--,f>>=8)a[c]=255&f;return this._createEncoderBuffer([a,r])},c.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var n=new i(2*t.length),r=0;r<t.length;r++)n.writeUInt16BE(t.charCodeAt(r),2*r);return this._createEncoderBuffer(n)}return"numstr"===e?this._isNumstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===e?this._isPrintstr(t)?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(e)?this._createEncoderBuffer(t):"objDesc"===e?this._createEncoderBuffer(t):this.reporter.error("Encoding of string type: "+e+" unsupported")},c.prototype._encodeObjid=function(t,e,n){if("string"==typeof t){if(!e)return this.reporter.error("string objid given, but no values map found");if(!e.hasOwnProperty(t))return this.reporter.error("objid not found in values map");t=e[t].split(/[\s\.]+/g);for(var r=0;r<t.length;r++)t[r]|=0}else if(Array.isArray(t)){t=t.slice();for(r=0;r<t.length;r++)t[r]|=0}if(!Array.isArray(t))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(t));if(!n){if(t[1]>=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var a=0;for(r=0;r<t.length;r++){var o=t[r];for(a++;o>=128;o>>=7)a++}var s=new i(a),u=s.length-1;for(r=t.length-1;r>=0;r--){o=t[r];for(s[u--]=127&o;(o>>=7)>0;)s[u--]=128|127&o}return this._createEncoderBuffer(s)},c.prototype._encodeTime=function(t,e){var n,r=new Date(t);return"gentime"===e?n=[f(r.getFullYear()),f(r.getUTCMonth()+1),f(r.getUTCDate()),f(r.getUTCHours()),f(r.getUTCMinutes()),f(r.getUTCSeconds()),"Z"].join(""):"utctime"===e?n=[f(r.getFullYear()%100),f(r.getUTCMonth()+1),f(r.getUTCDate()),f(r.getUTCHours()),f(r.getUTCMinutes()),f(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(n,"octstr")},c.prototype._encodeNull=function(){return this._createEncoderBuffer("")},c.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!i.isBuffer(t)){var n=t.toArray();!t.sign&&128&n[0]&&n.unshift(0),t=new i(n)}if(i.isBuffer(t)){var r=t.length;0===t.length&&r++;var a=new i(r);return t.copy(a),0===t.length&&(a[0]=0),this._createEncoderBuffer(a)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);r=1;for(var o=t;o>=256;o>>=8)r++;for(o=(a=new Array(r)).length-1;o>=0;o--)a[o]=255&t,t>>=8;return 128&a[0]&&a.unshift(0),this._createEncoderBuffer(new i(a))},c.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},c.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},c.prototype._skipDefault=function(t,e,n){var r,i=this._baseState;if(null===i.default)return!1;var a=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,e,n).join()),a.length!==i.defaultBuffer.length)return!1;for(r=0;r<a.length;r++)if(a[r]!==i.defaultBuffer[r])return!1;return!0}},function(t){t.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},function(t,e,n){var r=n(26),i=n(3).Buffer;function a(t){var e=i.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){for(var n,o=i.alloc(0),s=0;o.length<e;)n=a(s++),o=i.concat([o,r("sha1").update(t).update(n).digest()]);return o.slice(0,e)}},function(t,e){t.exports=function(t,e){for(var n=t.length,r=-1;++r<n;)t[r]^=e[r];return t}},function(t,e,n){var r=n(4),i=n(3).Buffer;t.exports=function(t,e){return i.from(t.toRed(r.mont(e.modulus)).redPow(new r(e.publicExponent)).fromRed().toArray())}},function(t,e,n){(function(t,n){!function(r){var i=e,a=t&&t.exports==i&&t,o="object"==typeof n&&n;o.global!==o&&o.window!==o||(r=o);var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/[\x01-\x7F]/g,c=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,f=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,l={"­":"shy","":"zwnj","":"zwj","":"lrm","":"ic","":"it","":"af","":"rlm","":"ZeroWidthSpace","":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine","":"puncsp","":"MediumSpace","":"thinsp","":"hairsp","":"emsp13","":"ensp","":"emsp14","":"emsp","":"numsp"," ":"nbsp","":"ThickSpace","‾":"oline",_:"lowbar","":"dash","":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","":"lsquo","":"rsquo","":"sbquo","":"lsaquo","":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","":"lbbrk","":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","":"hybull","":"prime","″":"Prime","‴":"tprime","⁗":"qprime","":"bprime","":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","":"minus","∓":"mp","∔":"plusdo","":"frasl","":"setmn","":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","":"or","∩":"cap","∩︀":"caps","":"cup","":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","":"Vee","⋂":"xcap","":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","":"Cfr","𝒞":"Cscr","":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","":"ee","":"escr","𝔢":"efr","𝕖":"eopf","":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","":"planckh","𝒽":"hscr","𝕙":"hopf","":"Hscr","":"Hfr","":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","":"ii","𝕀":"Iopf","":"Iscr","":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","":"ell","𝕝":"lopf","":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","":"Rscr","":"Re","":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","":"Zfr","":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},h=/["&'<>`]/g,d={'"':"&quot;","&":"&amp;","'":"&#x27;","<":"&lt;",">":"&gt;","`":"&#x60;"},p=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,g=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,y=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,b={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"",backsim:"∽",backsimeq:"⋍",Backslash:"",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"",Bernoullis:"",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"",caps:"∩︀",caret:"",caron:"ˇ",Cayleys:"",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"",DD:"",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:"",emsp13:"",emsp14:"",eng:"ŋ",ENG:"Ŋ",ensp:"",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"",Escr:"",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"",exponentiale:"",ExponentialE:"",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"",frown:"⌢",fscr:"𝒻",Fscr:"",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:"",half:"½",hamilt:"",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"",HilbertSpace:"",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"",hyphen:"",iacute:"í",Iacute:"Í",ic:"",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"",igrave:"ì",Igrave:"Ì",ii:"",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"",imacr:"ī",Imacr:"Ī",image:"",ImaginaryI:"",imagline:"",imagpart:"",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"",lscr:"𝓁",Lscr:"",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"",lsquor:"",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:"",Mellintrf:"",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"",midast:"*",midcir:"⫰",middot:"·",minus:"",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:"",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"",operp:"⦹",oplus:"⊕",or:"",Or:"⩔",orarr:"↻",ord:"⩝",order:"",orderof:"",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"",pointint:"⨕",popf:"𝕡",Popf:"",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"",Prime:"″",primes:"",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:"",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"",rationals:"",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"",real:"",realine:"",realpart:"",reals:"",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"",rscr:"𝓇",Rscr:"",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"",rsquor:"",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"",setmn:"",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"",smashp:"⨳",smeparsl:"⧤",smid:"",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"",ThickSpace:"",thinsp:"",ThinSpace:"",thkap:"≈",thksim:"",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"",Vee:"",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:"",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"",ZeroWidthSpace:"",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"",zscr:"𝓏",Zscr:"𝒵",zwj:"",zwnj:""},m={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},v={0:"<22>",128:"€",130:"",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"",140:"Œ",142:"Ž",145:"",146:"",147:"“",148:"”",149:"•",150:"",151:"—",152:"˜",153:"™",154:"š",155:"",156:"œ",158:"ž",159:"Ÿ"},_=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],w=String.fromCharCode,x={}.hasOwnProperty,k=function(t,e){return x.call(t,e)},E=function(t,e){if(!t)return e;var n,r={};for(n in e)r[n]=k(t,n)?t[n]:e[n];return r},A=function(t,e){var n="";return t>=55296&&t<=57343||t>1114111?(e&&T("character reference outside the permissible Unicode range"),"<22>"):k(v,t)?(e&&T("disallowed character reference"),v[t]):(e&&function(t,e){for(var n=-1,r=t.length;++n<r;)if(t[n]==e)return!0;return!1}(_,t)&&T("disallowed character reference"),t>65535&&(n+=w((t-=65536)>>>10&1023|55296),t=56320|1023&t),n+=w(t))},S=function(t){return"&#x"+t.toString(16).toUpperCase()+";"},M=function(t){return"&#"+t+";"},T=function(t){throw Error("Parse error: "+t)},D=function(t,e){(e=E(e,D.options)).strict&&g.test(t)&&T("forbidden code point");var n=e.encodeEverything,r=e.useNamedReferences,i=e.allowUnsafeSymbols,a=e.decimal?M:S,o=function(t){return a(t.charCodeAt(0))};return n?(t=t.replace(u,(function(t){return r&&k(l,t)?"&"+l[t]+";":o(t)})),r&&(t=t.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;").replace(/&#x66;&#x6A;/g,"&fjlig;")),r&&(t=t.replace(f,(function(t){return"&"+l[t]+";"})))):r?(i||(t=t.replace(h,(function(t){return"&"+l[t]+";"}))),t=(t=t.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;")).replace(f,(function(t){return"&"+l[t]+";"}))):i||(t=t.replace(h,o)),t.replace(s,(function(t){var e=t.charCodeAt(0),n=t.charCodeAt(1);return a(1024*(e-55296)+n-56320+65536)})).replace(c,o)};D.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var C=function(t,e){var n=(e=E(e,C.options)).strict;return n&&p.test(t)&&T("malformed character reference"),t.replace(y,(function(t,r,i,a,o,s,u,c,f){var l,h,d,p,g,y;return r?b[g=r]:i?(g=i,(y=a)&&e.isAttributeValue?(n&&"="==y&&T("`&` did not start a character reference"),t):(n&&T("named character reference was not terminated by a semicolon"),m[g]+(y||""))):o?(d=o,h=s,n&&!h&&T("character reference was not terminated by a semicolon"),l=parseInt(d,10),A(l,n)):u?(p=u,h=c,n&&!h&&T("character reference was not terminated by a semicolon"),l=parseInt(p,16),A(l,n)):(n&&T("named character reference was not terminated by a semicolon"),t)}))};C.options={isAttributeValue:!1,strict:!1};var O={version:"1.2.0",encode:D,decode:C,escape:function(t){return t.replace(h,(function(t){return d[t]}))},unescape:C};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define((function(){return O}));else if(i&&!i.nodeType)if(a)a.exports=O;else for(var R in O)k(O,R)&&(i[R]=O[R]);else r.he=O}(this)}).call(this,n(7)(t),n(13))},function(t,e,n){"use strict";var r=n(107),i=n(108),a=n(109);function o(t,e,n){if(!t)return t;if(!e)return t;"string"==typeof n&&(n={keyframes:n}),n||(n={keyframes:!1}),t=s(t,e+" $1$2");var i=e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");t=(t=(t=(t=t.replace(new RegExp("("+i+")\\s*\\1(?=[\\s\\r\\n,{])","g"),"$1")).replace(new RegExp("("+i+")\\s*:host","g"),"$1")).replace(new RegExp("("+i+")\\s*@","g"),"@")).replace(new RegExp("("+i+")\\s*:root","g"),":root");for(var a,o=[],u=/@keyframes\s+([a-zA-Z0-9_-]+)\s*{/g;null!==(a=u.exec(t));)o.indexOf(a[1])<0&&o.push(a[1]);var c=r(e);return o.forEach((function(e){var r=(!0===n.keyframes?c+"-":"string"==typeof n.keyframes?n.keyframes:"")+e;t=(t=t.replace(new RegExp("(@keyframes\\s+)"+e+"(\\s*{)","g"),"$1"+r+"$2")).replace(new RegExp("(animation(?:-name)?\\s*:[^;]*\\s*)"+e+"([\\s;}])","g"),"$1"+r+"$2")})),t=t.replace(new RegExp("("+i+" )(\\s*(?:to|from|[+-]?(?:(?:\\.\\d+)|(?:\\d+(?:\\.\\d*)?))%))(?=[\\s\\r\\n,{])","g"),"$2")}function s(t,e){var n=[];return t=a(t),t=(t=i.replace(t,!0,n)).replace(/([^\r\n,{}]+)(,(?=[^}]*{)|\s*{)/g,e),t=i.paste(t,n)}t.exports=o,o.replace=s},function(t,e,n){"use strict";const r=n(122),i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~".split(""),a=(t,e)=>{const n=e.length,i=Math.floor(65536/n)*n-1,a=2*Math.ceil(1.1*t);let o="",s=0;for(;s<t;){const u=r.randomBytes(a);let c=0;for(;c<a&&s<t;){const t=u.readUInt16LE(c);c+=2,t>i||(o+=e[t%n],s++)}}return o},o=[void 0,"hex","base64","url-safe"];t.exports=({length:t,type:e,characters:n})=>{if(!(t>=0&&Number.isFinite(t)))throw new TypeError("Expected a `length` to be a non-negative finite number");if(void 0!==e&&void 0!==n)throw new TypeError("Expected either `type` or `characters`");if(void 0!==n&&"string"!=typeof n)throw new TypeError("Expected `characters` to be string");if(!o.includes(e))throw new TypeError(`Unknown type: ${e}`);if(void 0===e&&void 0===n&&(e="hex"),"hex"===e||void 0===e&&void 0===n)return r.randomBytes(Math.ceil(.5*t)).toString("hex").slice(0,t);if("base64"===e)return r.randomBytes(Math.ceil(.75*t)).toString("base64").slice(0,t);if("url-safe"===e)return a(t,i);if(0===n.length)throw new TypeError("Expected `characters` string length to be greater than or equal to 1");if(n.length>65536)throw new TypeError("Expected `characters` string length to be less or equal to 65536");return a(t,n.split(""))}},function(t,e,n){var r;r=function(){var t=JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","џ":"dz","Ґ":"G","ґ":"g","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","":"\'","":"\'","“":"\\"","”":"\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₹":"indian rupee","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial"}'),e=JSON.parse('{"bg":{"locale":"Bulgarian","ѝ":"u"}}');function n(n,r){if("string"!=typeof n)throw new Error("slugify: string argument expected");var i=e[(r="string"==typeof r?{replacement:r}:r||{}).locale]||{},a=n.split("").reduce((function(e,n){return e+(i[n]||t[n]||n).replace(r.remove||/[^\w\s$*_+~.()'"!\-:@]/g,"")}),"").trim().replace(/[-\s]+/g,r.replacement||"-");return r.lower?a.toLowerCase():a}return n.extend=function(e){for(var n in e)t[n]=e[n]},n},t.exports=r(),t.exports.default=r()},function(t,e,n){
/*!
* Escaper v2.5.3
* https://github.com/kobezzza/Escaper
*
* Released under the MIT license
* https://github.com/kobezzza/Escaper/blob/master/LICENSE
*
* Date: Tue, 23 Jan 2018 15:58:45 GMT
*/
!function(t){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n=void 0,r=n={VERSION:[2,5,3],content:[],cache:{},snakeskinRgxp:null,symbols:null,replace:T,paste:C},i={'"':!0,"'":!0,"`":!0},a={"/":!0};for(var o in i){if(!i.hasOwnProperty(o))break;a[o]=!0}var s={"//":!0,"//*":!0,"//!":!0,"//#":!0,"//@":!0,"//$":!0},u={"/*":!0,"/**":!0,"/*!":!0,"/*#":!0,"/*@":!0,"/*$":!0},c=[],f={};for(var l in a){if(!a.hasOwnProperty(l))break;c.push(l),f[l]=!0}for(var h in s){if(!s.hasOwnProperty(h))break;c.push(h),f[h]=!0}for(var d in u){if(!u.hasOwnProperty(d))break;c.push(d),f[d]=!0}var p=[],g={g:!0,m:!0,i:!0,y:!0,u:!0};for(var y in g){if(!g.hasOwnProperty(y))break;p.push(y)}var b={"-":!0,"+":!0,"*":!0,"%":!0,"~":!0,">":!0,"<":!0,"^":!0,",":!0,";":!0,"=":!0,"|":!0,"&":!0,"!":!0,"?":!0,":":!0,"(":!0,"{":!0,"[":!0},m={return:!0,yield:!0,await:!0,typeof:!0,void:!0,instanceof:!0,delete:!0,in:!0,new:!0,of:!0};function v(t,e,n){for(var r in t){if(!t.hasOwnProperty(r))break;r in e==0&&(e[r]=n)}}var _=void 0,w=void 0,x=/[^\s/]/,k=/[a-z]/,E=/\s/,A=/[\r\n]/,S=/\${pos}/g,M={object:!0,function:!0};function T(t,r,o,l){_=_||n.symbols||"a-z",w=w||n.snakeskinRgxp||new RegExp("[!$"+_+"_]","i");var h=n,d=h.cache,y=h.content,T=Boolean(r&&M[void 0===r?"undefined":e(r)]),D=T?Object(r):{};function C(t){return D["@label"]?D["@label"].replace(S,t):"__ESCAPER_QUOT__"+t+"_"}var O=!1;"boolean"==typeof r&&(O=Boolean(r)),"@comments"in D&&(v(u,D,D["@comments"]),v(s,D,D["@comments"]),delete D["@comments"]),"@strings"in D&&(v(i,D,D["@strings"]),delete D["@strings"]),"@literals"in D&&(v(a,D,D["@literals"]),delete D["@literals"]),"@all"in D&&(v(f,D,D["@all"]),delete D["@all"]);for(var R="",N=-1;++N<c.length;){var I=c[N];u[I]||s[I]?D[I]=O||D[I]:D[I]=D[I]||!T,R+=D[I]+","}var B=t,L=o||y;if(L===y&&d[R]&&d[R][B])return d[R][B];for(var P=!1,F=!0,q=!1,j=!1,U=0,z=!1,Y=0,H=!1,V=void 0,$=void 0,G="",W="",K=-1;++K<t.length;){var X=t.charAt(K),Z=t.charAt(K+1),J=t.substr(K,2),Q=t.substr(K,3);if(j)(A.test(Z)&&s[j]||u[X+t.charAt(K-1)]&&K-U>2&&u[j])&&(D[j]&&(V=t.substring(U,K+1),-1===D[j]?$="":($=C(L.length),L.push(V)),t=t.substring(0,U)+$+t.substring(K+1),K+=$.length-V.length),j=!1);else{if(!P){if("/"===X&&((s[J]||u[J])&&(j=s[Q]||u[Q]?Q:J),j)){U=K;continue}b[X]||m[W]?(F=!0,W=""):x.test(X)&&(F=!1),k.test(X)?G+=X:(W=G,G="");var tt=!1;l&&("|"===X&&w.test(Z)?(H=!0,F=!1,tt=!0):H&&E.test(X)&&(H=!1,F=!0,tt=!0)),tt||(b[X]?F=!0:x.test(X)&&(F=!1))}if("/"!==P||q||("["===X?z=!0:"]"===X&&(z=!1)),!P&&Y&&("}"===X?Y--:"{"===X&&Y++,Y||(X="`")),"`"!==P||q||"${"!==J||(X="`",K++,Y++),!f[X]||"/"===X&&!F||P){if(P&&("\\"===X||q))q=!q;else if(f[X]&&P===X&&!q&&("/"!==P||!z)){if("/"===X)for(var et=-1;++et<p.length;)g[t.charAt(K+1)]&&K++;P=!1,F=!1,D[X]&&(V=t.substring(U,K+1),-1===D[X]?$="":($=C(L.length),L.push(V)),t=t.substring(0,U)+$+t.substring(K+1),K+=$.length-V.length)}}else P=X,U=K}}return L===y&&(d[R]=d[R]||{},d[R][B]=t),t}var D=/__ESCAPER_QUOT__(\d+)_/g;function C(t,e,r){return t.replace(r||D,(function(t,r){return(e||n.content)[r]}))}t.default=r,t.replace=T,t.paste=C,Object.defineProperty(t,"__esModule",{value:!0})}(e)},function(t,e,n){"use strict";var r=n(110);t.exports=function(t,e){var n;t=t.toString();var i="",a="",o=!1,s=!(!1===(e=e||{}).preserve||!0===e.all),u="";"function"==typeof e.preserve?(s=!1,n=e.preserve):r(e.preserve)&&(s=!1,n=function(t){return e.preserve.test(t)});for(var c=0;c<t.length;c++)if(a=t[c],"\\"!==t[c-1]&&('"'!==a&&"'"!==a||(o===a?o=!1:o||(o=a))),o||"/"!==a||"*"!==t[c+1]||s&&"!"===t[c+2])u+=a;else{for(var f=c+2;f<t.length;f++){if("*"===t[f]&&"/"===t[f+1]){n&&(u=n(i)?u+"/*"+i+"*/":u,i="");break}n&&(i+=t[f])}c=f+1}return u}},function(t,e,n){"use strict";t.exports=function(t){return"[object RegExp]"===Object.prototype.toString.call(t)}},function(t,e,n){var r={"./locale":63,"./locale.js":63};function i(t){var e=a(t);return n(e)}function a(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=a,t.exports=i,i.id=111},function(t,e,n){const r=n(8),i=n(45);function a(t){return r.map(t.nodes(),(function(e){const n=t.node(e),i=t.parent(e),a={v:e};return r.isUndefined(n)||(a.value=n),r.isUndefined(i)||(a.parent=i),a}))}function o(t){return r.map(t.edges(),(function(e){const n=t.edge(e),i={v:e.v,w:e.w};return r.isUndefined(e.name)||(i.name=e.name),r.isUndefined(n)||(i.value=n),i}))}t.exports={write:function(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:a(t),edges:o(t)};r.isUndefined(t.graph())||(e.value=r.clone(t.graph()));return e},read:function(t){var e=new i(t.options).setGraph(t.value);return r.each(t.nodes,(function(t){e.setNode(t.v,t.value),t.parent&&e.setParent(t.v,t.parent)})),r.each(t.edges,(function(t){e.setEdge({v:t.v,w:t.w,name:t.name},t.value)})),e}}},function(t,e,n){t.exports={components:n(114),dijkstra:n(64),dijkstraAll:n(115),findCycles:n(116),floydWarshall:n(117),isAcyclic:n(118),postorder:n(119),preorder:n(120),prim:n(121),tarjan:n(66),topsort:n(67)}},function(t,e,n){var r=n(8);t.exports=function(t){const e={},n=[];let i;function a(n){r.has(e,n)||(e[n]=!0,i.push(n),r.each(t.successors(n),a),r.each(t.predecessors(n),a))}return r.each(t.nodes(),(function(t){i=[],a(t),i.length&&n.push(i)})),n}},function(t,e,n){const r=n(64),i=n(8);t.exports=function(t,e,n){return i.transform(t.nodes(),(function(i,a){i[a]=r(t,a,e,n)}),{})}},function(t,e,n){const r=n(8),i=n(66);t.exports=function(t){return r.filter(i(t),(function(e){return e.length>1||1===e.length&&t.hasEdge(e[0],e[0])}))}},function(t,e,n){var r=n(8);t.exports=function(t,e,n){return function(t,e,n){const r={},i=t.nodes();return i.forEach((function(t){r[t]={},r[t][t]={distance:0},i.forEach((function(e){t!==e&&(r[t][e]={distance:Number.POSITIVE_INFINITY})})),n(t).forEach((function(n){const i=n.v===t?n.w:n.v,a=e(n);r[t][i]={distance:a,predecessor:t}}))})),i.forEach((function(t){var e=r[t];i.forEach((function(n){var a=r[n];i.forEach((function(n){var r=a[t],i=e[n],o=a[n],s=r.distance+i.distance;s<o.distance&&(o.distance=s,o.predecessor=i.predecessor)}))}))})),r}(t,e||i,n||function(e){return t.outEdges(e)})};var i=r.constant(1)},function(t,e,n){var r=n(67);t.exports=function(t){try{r(t)}catch(t){if(t instanceof r.CycleException)return!1;throw t}return!0}},function(t,e,n){var r=n(68);t.exports=function(t,e){return r(t,e,"post")}},function(t,e,n){var r=n(68);t.exports=function(t,e){return r(t,e,"pre")}},function(t,e,n){const r=n(8),i=n(45),a=n(65);t.exports=function(t,e){const n=new i,o={},s=new a;let u;function c(t){const n=t.v===u?t.w:t.v,r=s.priority(n);if(void 0!==r){var i=e(t);i<r&&(o[n]=u,s.decrease(n,i))}}if(0===t.nodeCount())return n;r.each(t.nodes(),(function(t){s.add(t,Number.POSITIVE_INFINITY),n.setNode(t)})),s.decrease(t.nodes()[0],0);var f=!1;for(;s.size()>0;){if(u=s.removeMin(),r.has(o,u))n.setEdge(u,o[u]);else{if(f)throw new Error("Input graph is not connected: "+t);f=!0}t.nodeEdges(u).forEach(c)}return n}},function(t,e,n){"use strict";e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=n(22),e.createHash=e.Hash=n(26),e.createHmac=e.Hmac=n(77);var r=n(141),i=Object.keys(r),a=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);e.getHashes=function(){return a};var o=n(80);e.pbkdf2=o.pbkdf2,e.pbkdf2Sync=o.pbkdf2Sync;var s=n(143);e.Cipher=s.Cipher,e.createCipher=s.createCipher,e.Cipheriv=s.Cipheriv,e.createCipheriv=s.createCipheriv,e.Decipher=s.Decipher,e.createDecipher=s.createDecipher,e.Decipheriv=s.Decipheriv,e.createDecipheriv=s.createDecipheriv,e.getCiphers=s.getCiphers,e.listCiphers=s.listCiphers;var u=n(160);e.DiffieHellmanGroup=u.DiffieHellmanGroup,e.createDiffieHellmanGroup=u.createDiffieHellmanGroup,e.getDiffieHellman=u.getDiffieHellman,e.createDiffieHellman=u.createDiffieHellman,e.DiffieHellman=u.DiffieHellman;var c=n(165);e.createSign=c.createSign,e.Sign=c.Sign,e.createVerify=c.createVerify,e.Verify=c.Verify,e.createECDH=n(199);var f=n(200);e.publicEncrypt=f.publicEncrypt,e.privateEncrypt=f.privateEncrypt,e.publicDecrypt=f.publicDecrypt,e.privateDecrypt=f.privateDecrypt;var l=n(203);e.randomFill=l.randomFill,e.randomFillSync=l.randomFillSync,e.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(t,e,n){"use strict";e.byteLength=function(t){var e=c(t),n=e[0],r=e[1];return 3*(n+r)/4-r},e.toByteArray=function(t){var e,n,r=c(t),o=r[0],s=r[1],u=new a(function(t,e,n){return 3*(e+n)/4-n}(0,o,s)),f=0,l=s>0?o-4:o;for(n=0;n<l;n+=4)e=i[t.charCodeAt(n)]<<18|i[t.charCodeAt(n+1)]<<12|i[t.charCodeAt(n+2)]<<6|i[t.charCodeAt(n+3)],u[f++]=e>>16&255,u[f++]=e>>8&255,u[f++]=255&e;2===s&&(e=i[t.charCodeAt(n)]<<2|i[t.charCodeAt(n+1)]>>4,u[f++]=255&e);1===s&&(e=i[t.charCodeAt(n)]<<10|i[t.charCodeAt(n+1)]<<4|i[t.charCodeAt(n+2)]>>2,u[f++]=e>>8&255,u[f++]=255&e);return u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,a=[],o=0,s=n-i;o<s;o+=16383)a.push(f(t,o,o+16383>s?s:o+16383));1===i?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return a.join("")};for(var r=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=o.length;s<u;++s)r[s]=o[s],i[o.charCodeAt(s)]=s;function c(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function f(t,e,n){for(var i,a,o=[],s=e;s<n;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),o.push(r[(a=i)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,n,r,i){var a,o,s=8*i-r-1,u=(1<<s)-1,c=u>>1,f=-7,l=n?i-1:0,h=n?-1:1,d=t[e+l];for(l+=h,a=d&(1<<-f)-1,d>>=-f,f+=s;f>0;a=256*a+t[e+l],l+=h,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=r;f>0;o=256*o+t[e+l],l+=h,f-=8);if(0===a)a=1-c;else{if(a===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),a-=c}return(d?-1:1)*o*Math.pow(2,a-r)},e.write=function(t,e,n,r,i,a){var o,s,u,c=8*a-i-1,f=(1<<c)-1,l=f>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,p=r?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+l>=1?h/u:h*Math.pow(2,1-l))*u>=2&&(o++,u/=2),o+l>=f?(s=0,o=f):o+l>=1?(s=(e*u-1)*Math.pow(2,i),o+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;t[n+d]=255&s,d+=p,s/=256,i-=8);for(o=o<<i|s,c+=i;c>0;t[n+d]=255&o,d+=p,o/=256,c-=8);t[n+d-p]|=128*g}},function(t,e){},function(t,e,n){"use strict";var r=n(50).Buffer,i=n(127);t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,n=""+e.data;e=e.next;)n+=t+e.data;return n},t.prototype.concat=function(t){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var e,n,i,a=r.allocUnsafe(t>>>0),o=this.head,s=0;o;)e=o.data,n=a,i=s,e.copy(n,i),s+=o.data.length,o=o.next;return a},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+" "+t})},function(t,e){},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function a(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new a(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new a(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(129),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(13))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,a,o,s,u=1,c={},f=!1,l=t.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(t);h=h&&h.setTimeout?h:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){p(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){p(t.data)},r=function(t){a.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(i=l.documentElement,r=function(t){var e=l.createElement("script");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(p,0,t)}:(o="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(o)&&p(+e.data.slice(o.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(o+e,"*")}),h.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var i={callback:t,args:e};return c[u]=i,r(u),u++},h.clearImmediate=d}function d(t){delete c[t]}function p(t){if(f)setTimeout(p,0,t);else{var e=c[t];if(e){f=!0;try{!function(t){var e=t.callback,r=t.args;switch(r.length){case 0:e();break;case 1:e(r[0]);break;case 2:e(r[0],r[1]);break;case 3:e(r[0],r[1],r[2]);break;default:e.apply(n,r)}}(e)}finally{d(t),f=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(13),n(5))},function(t,e,n){(function(e){function n(t){try{if(!e.localStorage)return!1}catch(t){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=function(t,e){if(n("noDeprecation"))return t;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(e);n("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}}}).call(this,n(13))},function(t,e,n){"use strict";t.exports=a;var r=n(74),i=n(27);function a(t){if(!(this instanceof a))return new a(t);r.call(this,t)}i.inherits=n(2),i.inherits(a,r),a.prototype._transform=function(t,e,n){n(null,t)}},function(t,e,n){t.exports=n(51)},function(t,e,n){t.exports=n(21)},function(t,e,n){t.exports=n(49).Transform},function(t,e,n){t.exports=n(49).PassThrough},function(t,e,n){var r=n(2),i=n(23),a=n(3).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(t){return t<<30|t>>>2}function f(t,e,n,r){return 0===t?e&n|~e&r:2===t?e&n|e&r|n&r:e^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,n=this._w,r=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,l=0;l<16;++l)n[l]=t.readInt32BE(4*l);for(;l<80;++l)n[l]=n[l-3]^n[l-8]^n[l-14]^n[l-16];for(var h=0;h<80;++h){var d=~~(h/20),p=0|((e=r)<<5|e>>>27)+f(d,i,a,s)+u+n[h]+o[d];u=s,s=a,a=c(i),i=r,r=p}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=a.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,n){var r=n(2),i=n(23),a=n(3).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(t){return t<<5|t>>>27}function f(t){return t<<30|t>>>2}function l(t,e,n,r){return 0===t?e&n|~e&r:2===t?e&n|e&r|n&r:e^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,n=this._w,r=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,u=0|this._e,h=0;h<16;++h)n[h]=t.readInt32BE(4*h);for(;h<80;++h)n[h]=(e=n[h-3]^n[h-8]^n[h-14]^n[h-16])<<1|e>>>31;for(var d=0;d<80;++d){var p=~~(d/20),g=c(r)+l(p,i,a,s)+u+n[d]+o[p]|0;u=s,s=a,a=f(i),i=r,r=g}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=a.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,n){var r=n(2),i=n(75),a=n(23),o=n(3).Buffer,s=new Array(64);function u(){this.init(),this._w=s,a.call(this,64,56)}r(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var t=o.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=u},function(t,e,n){var r=n(2),i=n(76),a=n(23),o=n(3).Buffer,s=new Array(160);function u(){this.init(),this._w=s,a.call(this,128,112)}r(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=o.allocUnsafe(48);function e(e,n,r){t.writeInt32BE(e,r),t.writeInt32BE(n,r+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},function(t,e,n){"use strict";var r=n(2),i=n(3).Buffer,a=n(19),o=i.alloc(128),s=64;function u(t,e){a.call(this,"digest"),"string"==typeof e&&(e=i.from(e)),this._alg=t,this._key=e,e.length>s?e=t(e):e.length<s&&(e=i.concat([e,o],s));for(var n=this._ipad=i.allocUnsafe(s),r=this._opad=i.allocUnsafe(s),u=0;u<s;u++)n[u]=54^e[u],r[u]=92^e[u];this._hash=[n]}r(u,a),u.prototype._update=function(t){this._hash.push(t)},u.prototype._final=function(){var t=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,t]))},t.exports=u},function(t,e,n){t.exports=n(79)},function(t,e,n){(function(e,r){var i,a=n(81),o=n(82),s=n(83),u=n(3).Buffer,c=e.crypto&&e.crypto.subtle,f={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},l=[];function h(t,e,n,r,i){return c.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return c.deriveBits({name:"PBKDF2",salt:e,iterations:n,hash:{name:i}},t,r<<3)})).then((function(t){return u.from(t)}))}t.exports=function(t,n,d,p,g,y){"function"==typeof g&&(y=g,g=void 0);var b=f[(g=g||"sha1").toLowerCase()];if(!b||"function"!=typeof e.Promise)return r.nextTick((function(){var e;try{e=s(t,n,d,p,g)}catch(t){return y(t)}y(null,e)}));if(a(t,n,d,p),"function"!=typeof y)throw new Error("No callback provided to pbkdf2");u.isBuffer(t)||(t=u.from(t,o)),u.isBuffer(n)||(n=u.from(n,o)),function(t,e){t.then((function(t){r.nextTick((function(){e(null,t)}))}),(function(t){r.nextTick((function(){e(t)}))}))}(function(t){if(e.process&&!e.process.browser)return Promise.resolve(!1);if(!c||!c.importKey||!c.deriveBits)return Promise.resolve(!1);if(void 0!==l[t])return l[t];var n=h(i=i||u.alloc(8),i,10,128,t).then((function(){return!0})).catch((function(){return!1}));return l[t]=n,n}(b).then((function(e){return e?h(t,n,d,p,b):s(t,n,d,p,g)})),y)}}).call(this,n(13),n(5))},function(t,e,n){var r=n(144),i=n(56),a=n(57),o=n(159),s=n(37);function u(t,e,n){if(t=t.toLowerCase(),a[t])return i.createCipheriv(t,e,n);if(o[t])return new r({key:e,iv:n,mode:t});throw new TypeError("invalid suite type")}function c(t,e,n){if(t=t.toLowerCase(),a[t])return i.createDecipheriv(t,e,n);if(o[t])return new r({key:e,iv:n,mode:t,decrypt:!0});throw new TypeError("invalid suite type")}e.createCipher=e.Cipher=function(t,e){var n,r;if(t=t.toLowerCase(),a[t])n=a[t].key,r=a[t].iv;else{if(!o[t])throw new TypeError("invalid suite type");n=8*o[t].key,r=o[t].iv}var i=s(e,!1,n,r);return u(t,i.key,i.iv)},e.createCipheriv=e.Cipheriv=u,e.createDecipher=e.Decipher=function(t,e){var n,r;if(t=t.toLowerCase(),a[t])n=a[t].key,r=a[t].iv;else{if(!o[t])throw new TypeError("invalid suite type");n=8*o[t].key,r=o[t].iv}var i=s(e,!1,n,r);return c(t,i.key,i.iv)},e.createDecipheriv=e.Decipheriv=c,e.listCiphers=e.getCiphers=function(){return Object.keys(o).concat(i.getCiphers())}},function(t,e,n){var r=n(19),i=n(55),a=n(2),o=n(3).Buffer,s={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function u(t){r.call(this);var e,n=t.mode.toLowerCase(),i=s[n];e=t.decrypt?"decrypt":"encrypt";var a=t.key;o.isBuffer(a)||(a=o.from(a)),"des-ede"!==n&&"des-ede-cbc"!==n||(a=o.concat([a,a.slice(0,8)]));var u=t.iv;o.isBuffer(u)||(u=o.from(u)),this._des=i.create({key:a,iv:u,type:e})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],t.exports=u,a(u,r),u.prototype._update=function(t){return o.from(this._des.update(t))},u.prototype._final=function(){return o.from(this._des.final())}},function(t,e,n){"use strict";e.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},e.writeUInt32BE=function(t,e,n){t[0+n]=e>>>24,t[1+n]=e>>>16&255,t[2+n]=e>>>8&255,t[3+n]=255&e},e.ip=function(t,e,n,r){for(var i=0,a=0,o=6;o>=0;o-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>>s+o&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>>s+o&1}for(o=6;o>=0;o-=2){for(s=1;s<=25;s+=8)a<<=1,a|=e>>>s+o&1;for(s=1;s<=25;s+=8)a<<=1,a|=t>>>s+o&1}n[r+0]=i>>>0,n[r+1]=a>>>0},e.rip=function(t,e,n,r){for(var i=0,a=0,o=0;o<4;o++)for(var s=24;s>=0;s-=8)i<<=1,i|=e>>>s+o&1,i<<=1,i|=t>>>s+o&1;for(o=4;o<8;o++)for(s=24;s>=0;s-=8)a<<=1,a|=e>>>s+o&1,a<<=1,a|=t>>>s+o&1;n[r+0]=i>>>0,n[r+1]=a>>>0},e.pc1=function(t,e,n,r){for(var i=0,a=0,o=7;o>=5;o--){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>s+o&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+o&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+o&1;for(o=1;o<=3;o++){for(s=0;s<=24;s+=8)a<<=1,a|=e>>s+o&1;for(s=0;s<=24;s+=8)a<<=1,a|=t>>s+o&1}for(s=0;s<=24;s+=8)a<<=1,a|=t>>s+o&1;n[r+0]=i>>>0,n[r+1]=a>>>0},e.r28shl=function(t,e){return t<<e&268435455|t>>>28-e};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,n,i){for(var a=0,o=0,s=r.length>>>1,u=0;u<s;u++)a<<=1,a|=t>>>r[u]&1;for(u=s;u<r.length;u++)o<<=1,o|=e>>>r[u]&1;n[i+0]=a>>>0,n[i+1]=o>>>0},e.expand=function(t,e,n){var r=0,i=0;r=(1&t)<<5|t>>>27;for(var a=23;a>=15;a-=4)r<<=6,r|=t>>>a&63;for(a=11;a>=3;a-=4)i|=t>>>a&63,i<<=6;i|=(31&t)<<1|t>>>31,e[n+0]=r>>>0,e[n+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var n=0,r=0;r<4;r++){n<<=4,n|=i[64*r+(t>>>18-6*r&63)]}for(r=0;r<4;r++){n<<=4,n|=i[256+64*r+(e>>>18-6*r&63)]}return n>>>0};var a=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,n=0;n<a.length;n++)e<<=1,e|=t>>>a[n]&1;return e>>>0},e.padSplit=function(t,e,n){for(var r=t.toString(2);r.length<e;)r="0"+r;for(var i=[],a=0;a<e;a+=n)i.push(r.slice(a,a+n));return i.join(" ")}},function(t,e,n){"use strict";var r=n(9);function i(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}t.exports=i,i.prototype._init=function(){},i.prototype.update=function(t){return 0===t.length?[]:"decrypt"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},i.prototype._buffer=function(t,e){for(var n=Math.min(this.buffer.length-this.bufferOff,t.length-e),r=0;r<n;r++)this.buffer[this.bufferOff+r]=t[e+r];return this.bufferOff+=n,n},i.prototype._flushBuffer=function(t,e){return this._update(this.buffer,0,t,e),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(t){var e=0,n=0,r=(this.bufferOff+t.length)/this.blockSize|0,i=new Array(r*this.blockSize);0!==this.bufferOff&&(e+=this._buffer(t,e),this.bufferOff===this.buffer.length&&(n+=this._flushBuffer(i,n)));for(var a=t.length-(t.length-e)%this.blockSize;e<a;e+=this.blockSize)this._update(t,e,i,n),n+=this.blockSize;for(;e<t.length;e++,this.bufferOff++)this.buffer[this.bufferOff]=t[e];return i},i.prototype._updateDecrypt=function(t){for(var e=0,n=0,r=Math.ceil((this.bufferOff+t.length)/this.blockSize)-1,i=new Array(r*this.blockSize);r>0;r--)e+=this._buffer(t,e),n+=this._flushBuffer(i,n);return e+=this._buffer(t,e),i},i.prototype.final=function(t){var e,n;return t&&(e=this.update(t)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(n):n},i.prototype._pad=function(t,e){if(0===e)return!1;for(;e<t.length;)t[e++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var t=new Array(this.blockSize);return this._update(this.buffer,0,t,0),t},i.prototype._unpad=function(t){return t},i.prototype._finalDecrypt=function(){r.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var t=new Array(this.blockSize);return this._flushBuffer(t,0),this._unpad(t)}},function(t,e,n){"use strict";var r=n(9),i=n(2),a=n(55),o=a.utils,s=a.Cipher;function u(){this.tmp=new Array(2),this.keys=null}function c(t){s.call(this,t);var e=new u;this._desState=e,this.deriveKeys(e,t.key)}i(c,s),t.exports=c,c.create=function(t){return new c(t)};var f=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];c.prototype.deriveKeys=function(t,e){t.keys=new Array(32),r.equal(e.length,this.blockSize,"Invalid key length");var n=o.readUInt32BE(e,0),i=o.readUInt32BE(e,4);o.pc1(n,i,t.tmp,0),n=t.tmp[0],i=t.tmp[1];for(var a=0;a<t.keys.length;a+=2){var s=f[a>>>1];n=o.r28shl(n,s),i=o.r28shl(i,s),o.pc2(n,i,t.keys,a)}},c.prototype._update=function(t,e,n,r){var i=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(n,a,r),o.writeUInt32BE(n,s,r+4)},c.prototype._pad=function(t,e){for(var n=t.length-e,r=e;r<t.length;r++)t[r]=n;return!0},c.prototype._unpad=function(t){for(var e=t[t.length-1],n=t.length-e;n<t.length;n++)r.equal(t[n],e);return t.slice(0,t.length-e)},c.prototype._encrypt=function(t,e,n,r,i){for(var a=e,s=n,u=0;u<t.keys.length;u+=2){var c=t.keys[u],f=t.keys[u+1];o.expand(s,t.tmp,0),c^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(c,f),h=s;s=(a^o.permute(l))>>>0,a=h}o.rip(s,a,r,i)},c.prototype._decrypt=function(t,e,n,r,i){for(var a=n,s=e,u=t.keys.length-2;u>=0;u-=2){var c=t.keys[u],f=t.keys[u+1];o.expand(a,t.tmp,0),c^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(c,f),h=a;a=(s^o.permute(l))>>>0,s=h}o.rip(a,s,r,i)}},function(t,e,n){"use strict";var r=n(9),i=n(2),a={};function o(t){r.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var e=0;e<this.iv.length;e++)this.iv[e]=t[e]}e.instantiate=function(t){function e(e){t.call(this,e),this._cbcInit()}i(e,t);for(var n=Object.keys(a),r=0;r<n.length;r++){var o=n[r];e.prototype[o]=a[o]}return e.create=function(t){return new e(t)},e},a._cbcInit=function(){var t=new o(this.options.iv);this._cbcState=t},a._update=function(t,e,n,r){var i=this._cbcState,a=this.constructor.super_.prototype,o=i.iv;if("encrypt"===this.type){for(var s=0;s<this.blockSize;s++)o[s]^=t[e+s];a._update.call(this,o,0,n,r);for(s=0;s<this.blockSize;s++)o[s]=n[r+s]}else{a._update.call(this,t,e,n,r);for(s=0;s<this.blockSize;s++)n[r+s]^=o[s];for(s=0;s<this.blockSize;s++)o[s]=t[e+s]}}},function(t,e,n){"use strict";var r=n(9),i=n(2),a=n(55),o=a.Cipher,s=a.DES;function u(t,e){r.equal(e.length,24,"Invalid key length");var n=e.slice(0,8),i=e.slice(8,16),a=e.slice(16,24);this.ciphers="encrypt"===t?[s.create({type:"encrypt",key:n}),s.create({type:"decrypt",key:i}),s.create({type:"encrypt",key:a})]:[s.create({type:"decrypt",key:a}),s.create({type:"encrypt",key:i}),s.create({type:"decrypt",key:n})]}function c(t){o.call(this,t);var e=new u(this.type,this.options.key);this._edeState=e}i(c,o),t.exports=c,c.create=function(t){return new c(t)},c.prototype._update=function(t,e,n,r){var i=this._edeState;i.ciphers[0]._update(t,e,n,r),i.ciphers[1]._update(n,r,n,r),i.ciphers[2]._update(n,r,n,r)},c.prototype._pad=s.prototype._pad,c.prototype._unpad=s.prototype._unpad},function(t,e,n){var r=n(57),i=n(87),a=n(3).Buffer,o=n(88),s=n(19),u=n(36),c=n(37);function f(t,e,n){s.call(this),this._cache=new h,this._cipher=new u.AES(e),this._prev=a.from(n),this._mode=t,this._autopadding=!0}n(2)(f,s),f.prototype._update=function(t){var e,n;this._cache.add(t);for(var r=[];e=this._cache.get();)n=this._mode.encrypt(this,e),r.push(n);return a.concat(r)};var l=a.alloc(16,16);function h(){this.cache=a.allocUnsafe(0)}function d(t,e,n){var s=r[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof e&&(e=a.from(e)),e.length!==s.key/8)throw new TypeError("invalid key length "+e.length);if("string"==typeof n&&(n=a.from(n)),"GCM"!==s.mode&&n.length!==s.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===s.type?new o(s.module,e,n):"auth"===s.type?new i(s.module,e,n):new f(s.module,e,n)}f.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return t=this._mode.encrypt(this,t),this._cipher.scrub(),t;if(!t.equals(l))throw this._cipher.scrub(),new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},h.prototype.add=function(t){this.cache=a.concat([this.cache,t])},h.prototype.get=function(){if(this.cache.length>15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},h.prototype.flush=function(){for(var t=16-this.cache.length,e=a.allocUnsafe(t),n=-1;++n<t;)e.writeUInt8(t,n);return a.concat([this.cache,e])},e.createCipheriv=d,e.createCipher=function(t,e){var n=r[t.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var i=c(e,!1,n.key,n.iv);return d(t,i.key,i.iv)}},function(t,e){e.encrypt=function(t,e){return t._cipher.encryptBlock(e)},e.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},function(t,e,n){var r=n(28);e.encrypt=function(t,e){var n=r(e,t._prev);return t._prev=t._cipher.encryptBlock(n),t._prev},e.decrypt=function(t,e){var n=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return r(i,n)}},function(t,e,n){var r=n(3).Buffer,i=n(28);function a(t,e,n){var a=e.length,o=i(e,t._cache);return t._cache=t._cache.slice(a),t._prev=r.concat([t._prev,n?e:o]),o}e.encrypt=function(t,e,n){for(var i,o=r.allocUnsafe(0);e.length;){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=r.allocUnsafe(0)),!(t._cache.length<=e.length)){o=r.concat([o,a(t,e,n)]);break}i=t._cache.length,o=r.concat([o,a(t,e.slice(0,i),n)]),e=e.slice(i)}return o}},function(t,e,n){var r=n(3).Buffer;function i(t,e,n){var i=t._cipher.encryptBlock(t._prev)[0]^e;return t._prev=r.concat([t._prev.slice(1),r.from([n?e:i])]),i}e.encrypt=function(t,e,n){for(var a=e.length,o=r.allocUnsafe(a),s=-1;++s<a;)o[s]=i(t,e[s],n);return o}},function(t,e,n){var r=n(3).Buffer;function i(t,e,n){for(var r,i,o=-1,s=0;++o<8;)r=e&1<<7-o?128:0,s+=(128&(i=t._cipher.encryptBlock(t._prev)[0]^r))>>o%8,t._prev=a(t._prev,n?r:i);return s}function a(t,e){var n=t.length,i=-1,a=r.allocUnsafe(t.length);for(t=r.concat([t,r.from([e])]);++i<n;)a[i]=t[i]<<1|t[i+1]>>7;return a}e.encrypt=function(t,e,n){for(var a=e.length,o=r.allocUnsafe(a),s=-1;++s<a;)o[s]=i(t,e[s],n);return o}},function(t,e,n){(function(t){var r=n(28);function i(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(e,n){for(;e._cache.length<n.length;)e._cache=t.concat([e._cache,i(e)]);var a=e._cache.slice(0,n.length);return e._cache=e._cache.slice(n.length),r(n,a)}}).call(this,n(6).Buffer)},function(t,e,n){var r=n(3).Buffer,i=r.alloc(16,0);function a(t){var e=r.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function o(t){this.h=t,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}o.prototype.ghash=function(t){for(var e=-1;++e<t.length;)this.state[e]^=t[e];this._multiply()},o.prototype._multiply=function(){for(var t,e,n,r=[(t=this.h).readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)],i=[0,0,0,0],o=-1;++o<128;){for(0!=(this.state[~~(o/8)]&1<<7-o%8)&&(i[0]^=r[0],i[1]^=r[1],i[2]^=r[2],i[3]^=r[3]),n=0!=(1&r[3]),e=3;e>0;e--)r[e]=r[e]>>>1|(1&r[e-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=a(i)},o.prototype.update=function(t){var e;for(this.cache=r.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},o.prototype.final=function(t,e){return this.cache.length&&this.ghash(r.concat([this.cache,i],16)),this.ghash(a([0,t,0,e])),this.state},t.exports=o},function(t,e,n){var r=n(87),i=n(3).Buffer,a=n(57),o=n(88),s=n(19),u=n(36),c=n(37);function f(t,e,n){s.call(this),this._cache=new l,this._last=void 0,this._cipher=new u.AES(e),this._prev=i.from(n),this._mode=t,this._autopadding=!0}function l(){this.cache=i.allocUnsafe(0)}function h(t,e,n){var s=a[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=i.from(n)),"GCM"!==s.mode&&n.length!==s.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof e&&(e=i.from(e)),e.length!==s.key/8)throw new TypeError("invalid key length "+e.length);return"stream"===s.type?new o(s.module,e,n,!0):"auth"===s.type?new r(s.module,e,n,!0):new f(s.module,e,n)}n(2)(f,s),f.prototype._update=function(t){var e,n;this._cache.add(t);for(var r=[];e=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,e),r.push(n);return i.concat(r)},f.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return function(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var n=-1;for(;++n<e;)if(t[n+(16-e)]!==e)throw new Error("unable to decrypt data");if(16===e)return;return t.slice(0,16-e)}(this._mode.decrypt(this,t));if(t)throw new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(t){return this._autopadding=!!t,this},l.prototype.add=function(t){this.cache=i.concat([this.cache,t])},l.prototype.get=function(t){var e;if(t){if(this.cache.length>16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=function(t,e){var n=a[t.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=c(e,!1,n.key,n.iv);return h(t,r.key,r.iv)},e.createDecipheriv=h},function(t,e){e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}},function(t,e,n){(function(t){var r=n(89),i=n(163),a=n(164);var o={binary:!0,hex:!0,base64:!0};e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=function(e){var n=new t(i[e].prime,"hex"),r=new t(i[e].gen,"hex");return new a(n,r)},e.createDiffieHellman=e.DiffieHellman=function e(n,i,s,u){return t.isBuffer(i)||void 0===o[i]?e(n,"binary",i,s):(i=i||"binary",u=u||"binary",s=s||new t([2]),t.isBuffer(s)||(s=new t(s,u)),"number"==typeof n?new a(r(n,s),s,!0):(t.isBuffer(n)||(n=new t(n,i)),new a(n,s,!0)))}}).call(this,n(6).Buffer)},function(t,e){},function(t,e){},function(t){t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(t,e,n){(function(e){var r=n(4),i=new(n(90)),a=new r(24),o=new r(11),s=new r(10),u=new r(3),c=new r(7),f=n(89),l=n(22);function h(t,n){return n=n||"utf8",e.isBuffer(t)||(t=new e(t,n)),this._pub=new r(t),this}function d(t,n){return n=n||"utf8",e.isBuffer(t)||(t=new e(t,n)),this._priv=new r(t),this}t.exports=g;var p={};function g(t,e,n){this.setGenerator(e),this.__prime=new r(t),this._prime=r.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=h,this.setPrivateKey=d):this._primeCode=8}function y(t,n){var r=new e(t.toArray());return n?r.toString(n):r}Object.defineProperty(g.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(t,e){var n=e.toString("hex"),r=[n,t.toString(16)].join("_");if(r in p)return p[r];var l,h=0;if(t.isEven()||!f.simpleSieve||!f.fermatTest(t)||!i.test(t))return h+=1,h+="02"===n||"05"===n?8:4,p[r]=h,h;switch(i.test(t.shrn(1))||(h+=2),n){case"02":t.mod(a).cmp(o)&&(h+=8);break;case"05":(l=t.mod(s)).cmp(u)&&l.cmp(c)&&(h+=8);break;default:h+=4}return p[r]=h,h}(this.__prime,this.__gen)),this._primeCode}}),g.prototype.generateKeys=function(){return this._priv||(this._priv=new r(l(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},g.prototype.computeSecret=function(t){var n=(t=(t=new r(t)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new e(n.toArray()),a=this.getPrime();if(i.length<a.length){var o=new e(a.length-i.length);o.fill(0),i=e.concat([o,i])}return i},g.prototype.getPublicKey=function(t){return y(this._pub,t)},g.prototype.getPrivateKey=function(t){return y(this._priv,t)},g.prototype.getPrime=function(t){return y(this.__prime,t)},g.prototype.getGenerator=function(t){return y(this._gen,t)},g.prototype.setGenerator=function(t,n){return n=n||"utf8",e.isBuffer(t)||(t=new e(t,n)),this.__gen=t,this._gen=new r(t),this}}).call(this,n(6).Buffer)},function(t,e,n){(function(e){var r=n(26),i=n(47),a=n(2),o=n(166),s=n(198),u=n(79);function c(t){i.Writable.call(this);var e=u[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function f(t){i.Writable.call(this);var e=u[t];if(!e)throw new Error("Unknown message digest");this._hash=r(e.hash),this._tag=e.id,this._signType=e.sign}function l(t){return new c(t)}function h(t){return new f(t)}Object.keys(u).forEach((function(t){u[t].id=new e(u[t].id,"hex"),u[t.toLowerCase()]=u[t]})),a(c,i.Writable),c.prototype._write=function(t,e,n){this._hash.update(t),n()},c.prototype.update=function(t,n){return"string"==typeof t&&(t=new e(t,n)),this._hash.update(t),this},c.prototype.sign=function(t,e){this.end();var n=this._hash.digest(),r=o(n,t,this._hashType,this._signType,this._tag);return e?r.toString(e):r},a(f,i.Writable),f.prototype._write=function(t,e,n){this._hash.update(t),n()},f.prototype.update=function(t,n){return"string"==typeof t&&(t=new e(t,n)),this._hash.update(t),this},f.prototype.verify=function(t,n,r){"string"==typeof n&&(n=new e(n,r)),this.end();var i=this._hash.digest();return s(n,i,t,this._signType,this._tag)},t.exports={Sign:l,Verify:h,createSign:l,createVerify:h}}).call(this,n(6).Buffer)},function(t,e,n){(function(e){var r=n(77),i=n(59),a=n(60).ec,o=n(4),s=n(39),u=n(100);function c(t,n,i,a){if((t=new e(t.toArray())).length<n.byteLength()){var o=new e(n.byteLength()-t.length);o.fill(0),t=e.concat([o,t])}var s=i.length,u=function(t,n){t=(t=f(t,n)).mod(n);var r=new e(t.toArray());if(r.length<n.byteLength()){var i=new e(n.byteLength()-r.length);i.fill(0),r=e.concat([i,r])}return r}(i,n),c=new e(s);c.fill(1);var l=new e(s);return l.fill(0),l=r(a,l).update(c).update(new e([0])).update(t).update(u).digest(),c=r(a,l).update(c).digest(),{k:l=r(a,l).update(c).update(new e([1])).update(t).update(u).digest(),v:c=r(a,l).update(c).digest()}}function f(t,e){var n=new o(t),r=(t.length<<3)-e.bitLength();return r>0&&n.ishrn(r),n}function l(t,n,i){var a,o;do{for(a=new e(0);8*a.length<t.bitLength();)n.v=r(i,n.k).update(n.v).digest(),a=e.concat([a,n.v]);o=f(a,t),n.k=r(i,n.k).update(n.v).update(new e([0])).digest(),n.v=r(i,n.k).update(n.v).digest()}while(-1!==o.cmp(t));return o}function h(t,e,n,r){return t.toRed(o.mont(n)).redPow(e).fromRed().mod(r)}t.exports=function(t,n,r,d,p){var g=s(n);if(g.curve){if("ecdsa"!==d&&"ecdsa/rsa"!==d)throw new Error("wrong private key type");return function(t,n){var r=u[n.curve.join(".")];if(!r)throw new Error("unknown curve "+n.curve.join("."));var i=new a(r).keyFromPrivate(n.privateKey).sign(t);return new e(i.toDER())}(t,g)}if("dsa"===g.type){if("dsa"!==d)throw new Error("wrong private key type");return function(t,n,r){var i,a=n.params.priv_key,s=n.params.p,u=n.params.q,d=n.params.g,p=new o(0),g=f(t,u).mod(u),y=!1,b=c(a,u,t,r);for(;!1===y;)i=l(u,b,r),p=h(d,i,s,u),0===(y=i.invm(u).imul(g.add(a.mul(p))).mod(u)).cmpn(0)&&(y=!1,p=new o(0));return function(t,n){t=t.toArray(),n=n.toArray(),128&t[0]&&(t=[0].concat(t));128&n[0]&&(n=[0].concat(n));var r=[48,t.length+n.length+4,2,t.length];return r=r.concat(t,[2,n.length],n),new e(r)}(p,y)}(t,g,r)}if("rsa"!==d&&"ecdsa/rsa"!==d)throw new Error("wrong private key type");t=e.concat([p,t]);for(var y=g.modulus.byteLength(),b=[0,1];t.length+b.length+1<y;)b.push(255);b.push(0);for(var m=-1;++m<t.length;)b.push(t[m]);return i(b,g)},t.exports.getKey=c,t.exports.makeKey=l}).call(this,n(6).Buffer)},function(t){t.exports=JSON.parse('{"name":"elliptic","version":"6.5.1","description":"EC cryptography","main":"lib/elliptic.js","files":["lib"],"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","unit":"istanbul test _mocha --reporter=spec test/index.js","test":"npm run lint && npm run unit","version":"grunt dist && git add dist/"},"repository":{"type":"git","url":"git@github.com:indutny/elliptic"},"keywords":["EC","Elliptic","curve","Cryptography"],"author":"Fedor Indutny <fedor@indutny.com>","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.4","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.6.0","mocha":"^6.1.4"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(t,e,n){"use strict";var r=n(10),i=n(4),a=n(2),o=n(38),s=r.assert;function u(t){o.call(this,"short",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(t,e,n,r){o.BasePoint.call(this,t,"affine"),null===e&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(e,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(t,e,n,r){o.BasePoint.call(this,t,"jacobian"),null===e&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(e,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}a(u,o),t.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,n;if(t.beta)e=new i(t.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);e=(e=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(t.lambda)n=new i(t.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(e))?n=a[0]:(n=a[1],s(0===this.g.mul(n).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:n,basis:t.basis?t.basis.map((function(t){return{a:new i(t.a,16),b:new i(t.b,16)}})):this._getEndoBasis(n)}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:i.mont(t),n=new i(2).toRed(e).redInvm(),r=n.redNeg(),a=new i(3).toRed(e).redNeg().redSqrt().redMul(n);return[r.redAdd(a).fromRed(),r.redSub(a).fromRed()]},u.prototype._getEndoBasis=function(t){for(var e,n,r,a,o,s,u,c,f,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),h=t,d=this.n.clone(),p=new i(1),g=new i(0),y=new i(0),b=new i(1),m=0;0!==h.cmpn(0);){var v=d.div(h);c=d.sub(v.mul(h)),f=y.sub(v.mul(p));var _=b.sub(v.mul(g));if(!r&&c.cmp(l)<0)e=u.neg(),n=p,r=c.neg(),a=f;else if(r&&2==++m)break;u=c,d=h,h=c,y=p,p=f,b=g,g=_}o=c.neg(),s=f;var w=r.sqr().add(a.sqr());return o.sqr().add(s.sqr()).cmp(w)>=0&&(o=e,s=n),r.negative&&(r=r.neg(),a=a.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:r,b:a},{a:o,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,n=e[0],r=e[1],i=r.b.mul(t).divRound(this.n),a=n.b.neg().mul(t).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:t.sub(o).sub(s),k2:u.add(c).neg()}},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var n=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var a=r.fromRed().isOdd();return(e&&!a||!e&&a)&&(r=r.redNeg()),this.point(t,r)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,n=t.y,r=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<t.length;a++){var o=this._endoSplit(e[a]),s=t[a],u=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),u=u.neg(!0)),r[2*a]=s,r[2*a+1]=u,i[2*a]=o.k1,i[2*a+1]=o.k2}for(var c=this._wnafMulAdd(1,r,i,2*a,n),f=0;f<2*a;f++)r[f]=null,i[f]=null;return c},a(c,o.BasePoint),u.prototype.point=function(t,e,n){return new c(this,t,e,n)},u.prototype.pointFromJSON=function(t,e){return c.fromJSON(this,t,e)},c.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var n=this.curve,r=function(t){return n.point(t.x.redMul(n.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(r)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(r)}}}return e}},c.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},c.fromJSON=function(t,e,n){"string"==typeof e&&(e=JSON.parse(e));var r=t.point(e[0],e[1],n);if(!e[2])return r;function i(e){return t.point(e[0],e[1],n)}var a=e[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},c.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var n=e.redSqr().redISub(this.x).redISub(t.x),r=e.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},c.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,n=this.x.redSqr(),r=t.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(e).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},c.prototype.mulAdd=function(t,e,n){var r=[this,e],i=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},c.prototype.jmulAdd=function(t,e,n){var r=[this,e],i=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},c.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},c.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var n=this.precomputed,r=function(t){return t.neg()};e.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return e},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},a(f,o.BasePoint),u.prototype.jpoint=function(t,e,n){return new f(this,t,e,n)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),n=this.x.redMul(e),r=this.y.redMul(e).redMul(t);return this.curve.point(n,r)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(e),i=t.x.redMul(n),a=this.y.redMul(e.redMul(t.z)),o=t.y.redMul(n.redMul(this.z)),s=r.redSub(i),u=a.redSub(o);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),f=c.redMul(s),l=r.redMul(c),h=u.redSqr().redIAdd(f).redISub(l).redISub(l),d=u.redMul(l.redISub(h)).redISub(a.redMul(f)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(h,d,p)},f.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),n=this.x,r=t.x.redMul(e),i=this.y,a=t.y.redMul(e).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),c=u.redMul(o),f=n.redMul(u),l=s.redSqr().redIAdd(c).redISub(f).redISub(f),h=s.redMul(f.redISub(l)).redISub(i.redMul(c)),d=this.z.redMul(o);return this.curve.jpoint(l,h,d)},f.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,n=0;n<t;n++)e=e.dbl();return e}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,u=s.redSqr().redSqr(),c=o.redAdd(o);for(n=0;n<t;n++){var f=a.redSqr(),l=c.redSqr(),h=l.redSqr(),d=f.redAdd(f).redIAdd(f).redIAdd(r.redMul(u)),p=a.redMul(l),g=d.redSqr().redISub(p.redAdd(p)),y=p.redISub(g),b=d.redMul(y);b=b.redIAdd(b).redISub(h);var m=c.redMul(s);n+1<t&&(u=u.redMul(h)),a=g,s=m,c=b}return this.curve.jpoint(a,c.redMul(i),s)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},f.prototype._zeroDbl=function(){var t,e,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),u=s.redSqr().redISub(o).redISub(o),c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),t=u,e=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var f=this.x.redSqr(),l=this.y.redSqr(),h=l.redSqr(),d=this.x.redAdd(l).redSqr().redISub(f).redISub(h);d=d.redIAdd(d);var p=f.redAdd(f).redIAdd(f),g=p.redSqr(),y=h.redIAdd(h);y=(y=y.redIAdd(y)).redIAdd(y),t=g.redISub(d).redISub(d),e=p.redMul(d.redISub(t)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(t,e,n)},f.prototype._threeDbl=function(){var t,e,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=s.redSqr().redISub(o).redISub(o);t=u;var c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),e=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var f=this.z.redSqr(),l=this.y.redSqr(),h=this.x.redMul(l),d=this.x.redSub(f).redMul(this.x.redAdd(f));d=d.redAdd(d).redIAdd(d);var p=h.redIAdd(h),g=(p=p.redIAdd(p)).redAdd(p);t=d.redSqr().redISub(g),n=this.y.redAdd(this.z).redSqr().redISub(l).redISub(f);var y=l.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),e=d.redMul(p.redISub(t)).redISub(y)}return this.curve.jpoint(t,e,n)},f.prototype._dbl=function(){var t=this.curve.a,e=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=e.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(t.redMul(i)),u=e.redAdd(e),c=(u=u.redIAdd(u)).redMul(o),f=s.redSqr().redISub(c.redAdd(c)),l=c.redISub(f),h=o.redSqr();h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var d=s.redMul(l).redISub(h),p=n.redAdd(n).redMul(r);return this.curve.jpoint(f,d,p)},f.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),n=this.z.redSqr(),r=e.redSqr(),i=t.redAdd(t).redIAdd(t),a=i.redSqr(),o=this.x.redAdd(e).redSqr().redISub(t).redISub(r),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u),f=e.redMul(c);f=(f=f.redIAdd(f)).redIAdd(f);var l=this.x.redMul(s).redISub(f);l=(l=l.redIAdd(l)).redIAdd(l);var h=this.y.redMul(c.redMul(u.redISub(c)).redISub(o.redMul(s)));h=(h=(h=h.redIAdd(h)).redIAdd(h)).redIAdd(h);var d=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(l,h,d)},f.prototype.mul=function(t,e){return t=new i(t,e),this.curve._wnafMul(this,t)},f.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),n=t.z.redSqr();if(0!==this.x.redMul(n).redISub(t.x.redMul(e)).cmpn(0))return!1;var r=e.redMul(this.z),i=n.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(r)).cmpn(0)},f.prototype.eqXToP=function(t){var e=this.z.redSqr(),n=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(n))return!0;for(var r=t.clone(),i=this.curve.redN.redMul(e);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},f.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(t,e,n){"use strict";var r=n(4),i=n(2),a=n(38),o=n(10);function s(t){a.call(this,"mont",t),this.a=new r(t.a,16).toRed(this.red),this.b=new r(t.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,n){a.BasePoint.call(this,t,"projective"),null===e&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(e,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,a),t.exports=s,s.prototype.validate=function(t){var e=t.normalize().x,n=e.redSqr(),r=n.redMul(e).redAdd(n.redMul(this.a)).redAdd(e);return 0===r.redSqrt().redSqr().cmp(r)},i(u,a.BasePoint),s.prototype.decodePoint=function(t,e){return this.point(o.toArray(t,e),1)},s.prototype.point=function(t,e){return new u(this,t,e)},s.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),n=t.redSub(e),r=t.redMul(e),i=n.redMul(e.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=t.x.redAdd(t.z),a=t.x.redSub(t.z).redMul(n),o=i.redMul(r),s=e.z.redMul(a.redAdd(o).redSqr()),u=e.x.redMul(a.redISub(o).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(t){for(var e=t.clone(),n=this,r=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var a=i.length-1;a>=0;a--)0===i[a]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(t,e,n){"use strict";var r=n(10),i=n(4),a=n(2),o=n(38),s=r.assert;function u(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,o.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function c(t,e,n,r,a){o.BasePoint.call(this,t,"projective"),null===e&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=a&&new i(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}a(u,o),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,n,r){return this.point(t,e,n,r)},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var n=t.redSqr(),r=this.c2.redSub(this.a.redMul(n)),a=this.one.redSub(this.c2.redMul(this.d).redMul(n)),o=r.redMul(a.redInvm()),s=o.redSqrt();if(0!==s.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var n=t.redSqr(),r=n.redSub(this.c2),a=n.redMul(this.d).redMul(this.c2).redSub(this.a),o=r.redMul(a.redInvm());if(0===o.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=o.redSqrt();if(0!==s.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),n=t.y.redSqr(),r=e.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(n)));return 0===r.cmp(i)},a(c,o.BasePoint),u.prototype.pointFromJSON=function(t){return c.fromJSON(this,t)},u.prototype.point=function(t,e,n,r){return new c(this,t,e,n,r)},c.fromJSON=function(t,e){return new c(t,e[0],e[1],e[2])},c.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),a=r.redAdd(e),o=a.redSub(n),s=r.redSub(e),u=i.redMul(o),c=a.redMul(s),f=i.redMul(s),l=o.redMul(a);return this.curve.point(u,c,l,f)},c.prototype._projDbl=function(){var t,e,n,r=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),a=this.y.redSqr();if(this.curve.twisted){var o=(c=this.curve._mulA(i)).redAdd(a);if(this.zOne)t=r.redSub(i).redSub(a).redMul(o.redSub(this.curve.two)),e=o.redMul(c.redSub(a)),n=o.redSqr().redSub(o).redSub(o);else{var s=this.z.redSqr(),u=o.redSub(s).redISub(s);t=r.redSub(i).redISub(a).redMul(u),e=o.redMul(c.redSub(a)),n=o.redMul(u)}}else{var c=i.redAdd(a);s=this.curve._mulC(this.z).redSqr(),u=c.redSub(s).redSub(s);t=this.curve._mulC(r.redISub(c)).redMul(u),e=this.curve._mulC(c).redMul(i.redISub(a)),n=c.redMul(u)}return this.curve.point(t,e,n)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),n=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),r=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),a=n.redSub(e),o=i.redSub(r),s=i.redAdd(r),u=n.redAdd(e),c=a.redMul(o),f=s.redMul(u),l=a.redMul(u),h=o.redMul(s);return this.curve.point(c,f,h,l)},c.prototype._projAdd=function(t){var e,n,r=this.z.redMul(t.z),i=r.redSqr(),a=this.x.redMul(t.x),o=this.y.redMul(t.y),s=this.curve.d.redMul(a).redMul(o),u=i.redSub(s),c=i.redAdd(s),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(a).redISub(o),l=r.redMul(u).redMul(f);return this.curve.twisted?(e=r.redMul(c).redMul(o.redSub(this.curve._mulA(a))),n=u.redMul(c)):(e=r.redMul(c).redMul(o.redSub(a)),n=this.curve._mulC(u).redMul(c)),this.curve.point(l,e,n)},c.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},c.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},c.prototype.mulAdd=function(t,e,n){return this.curve._wnafMulAdd(1,[this,e],[t,n],2,!1)},c.prototype.jmulAdd=function(t,e,n){return this.curve._wnafMulAdd(1,[this,e],[t,n],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},c.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var n=t.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(r),0===this.x.cmp(e))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},function(t,e,n){"use strict";e.sha1=n(172),e.sha224=n(173),e.sha256=n(94),e.sha384=n(174),e.sha512=n(95)},function(t,e,n){"use strict";var r=n(14),i=n(29),a=n(93),o=r.rotl32,s=r.sum32,u=r.sum32_5,c=a.ft_1,f=i.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function h(){if(!(this instanceof h))return new h;f.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(h,f),t.exports=h,h.blockSize=512,h.outSize=160,h.hmacStrength=80,h.padLength=64,h.prototype._update=function(t,e){for(var n=this.W,r=0;r<16;r++)n[r]=t[e+r];for(;r<n.length;r++)n[r]=o(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],a=this.h[1],f=this.h[2],h=this.h[3],d=this.h[4];for(r=0;r<n.length;r++){var p=~~(r/20),g=u(o(i,5),c(p,a,f,h),d,n[r],l[p]);d=h,h=f,f=o(a,30),a=i,i=g}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],a),this.h[2]=s(this.h[2],f),this.h[3]=s(this.h[3],h),this.h[4]=s(this.h[4],d)},h.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,n){"use strict";var r=n(14),i=n(94);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(a,i),t.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},function(t,e,n){"use strict";var r=n(14),i=n(95);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(a,i),t.exports=a,a.blockSize=1024,a.outSize=384,a.hmacStrength=192,a.padLength=128,a.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},function(t,e,n){"use strict";var r=n(14),i=n(29),a=r.rotl32,o=r.sum32,s=r.sum32_3,u=r.sum32_4,c=i.BlockHash;function f(){if(!(this instanceof f))return new f;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(t,e,n,r){return t<=15?e^n^r:t<=31?e&n|~e&r:t<=47?(e|~n)^r:t<=63?e&r|n&~r:e^(n|~r)}function h(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function d(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}r.inherits(f,c),e.ripemd160=f,f.blockSize=512,f.outSize=160,f.hmacStrength=192,f.padLength=64,f.prototype._update=function(t,e){for(var n=this.h[0],r=this.h[1],i=this.h[2],c=this.h[3],f=this.h[4],m=n,v=r,_=i,w=c,x=f,k=0;k<80;k++){var E=o(a(u(n,l(k,r,i,c),t[p[k]+e],h(k)),y[k]),f);n=f,f=c,c=a(i,10),i=r,r=E,E=o(a(u(m,l(79-k,v,_,w),t[g[k]+e],d(k)),b[k]),x),m=x,x=w,w=a(_,10),_=v,v=E}E=s(this.h[1],i,w),this.h[1]=s(this.h[2],c,x),this.h[2]=s(this.h[3],f,m),this.h[3]=s(this.h[4],n,v),this.h[4]=s(this.h[0],r,_),this.h[0]=E},f.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],g=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],y=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},function(t,e,n){"use strict";var r=n(14),i=n(9);function a(t,e,n){if(!(this instanceof a))return new a(t,e,n);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(e,n))}t.exports=a,a.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},a.prototype.update=function(t,e){return this.inner.update(t,e),this},a.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)}},function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(t,e,n){"use strict";var r=n(4),i=n(179),a=n(10),o=n(61),s=n(58),u=a.assert,c=n(180),f=n(181);function l(t){if(!(this instanceof l))return new l(t);"string"==typeof t&&(u(o.hasOwnProperty(t),"Unknown curve "+t),t=o[t]),t instanceof o.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=l,l.prototype.keyPair=function(t){return new c(this,t)},l.prototype.keyFromPrivate=function(t,e){return c.fromPrivate(this,t,e)},l.prototype.keyFromPublic=function(t,e){return c.fromPublic(this,t,e)},l.prototype.genKeyPair=function(t){t||(t={});for(var e=new i({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||s(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),a=this.n.sub(new r(2));;){var o=new r(e.generate(n));if(!(o.cmp(a)>0))return o.iaddn(1),this.keyFromPrivate(o)}},l.prototype._truncateToN=function(t,e){var n=8*t.byteLength()-this.n.bitLength();return n>0&&(t=t.ushrn(n)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},l.prototype.sign=function(t,e,n,a){"object"==typeof n&&(a=n,n=null),a||(a={}),e=this.keyFromPrivate(e,n),t=this._truncateToN(new r(t,16));for(var o=this.n.byteLength(),s=e.getPrivate().toArray("be",o),u=t.toArray("be",o),c=new i({hash:this.hash,entropy:s,nonce:u,pers:a.pers,persEnc:a.persEnc||"utf8"}),l=this.n.sub(new r(1)),h=0;;h++){var d=a.k?a.k(h):new r(c.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(l)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var g=p.getX(),y=g.umod(this.n);if(0!==y.cmpn(0)){var b=d.invm(this.n).mul(y.mul(e.getPrivate()).iadd(t));if(0!==(b=b.umod(this.n)).cmpn(0)){var m=(p.getY().isOdd()?1:0)|(0!==g.cmp(y)?2:0);return a.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),m^=1),new f({r:y,s:b,recoveryParam:m})}}}}}},l.prototype.verify=function(t,e,n,i){t=this._truncateToN(new r(t,16)),n=this.keyFromPublic(n,i);var a=(e=new f(e,"hex")).r,o=e.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var s,u=o.invm(this.n),c=u.mul(t).umod(this.n),l=u.mul(a).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(c,n.getPublic(),l)).isInfinity()&&s.eqXToP(a):!(s=this.g.mulAdd(c,n.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(a)},l.prototype.recoverPubKey=function(t,e,n,i){u((3&n)===n,"The recovery param is more than two bits"),e=new f(e,i);var a=this.n,o=new r(t),s=e.r,c=e.s,l=1&n,h=n>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");s=h?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var d=e.r.invm(a),p=a.sub(o).mul(d).umod(a),g=c.mul(d).umod(a);return this.g.mulAdd(p,s,g)},l.prototype.getKeyRecoveryParam=function(t,e,n,r){if(null!==(e=new f(e,r)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(t,e,i)}catch(t){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},function(t,e,n){"use strict";var r=n(62),i=n(91),a=n(9);function o(t){if(!(this instanceof o))return new o(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||"hex"),n=i.toArray(t.nonce,t.nonceEnc||"hex"),r=i.toArray(t.pers,t.persEnc||"hex");a(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,n,r)}t.exports=o,o.prototype._init=function(t,e,n){var r=t.concat(e).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},o.prototype._hmac=function(){return new r.hmac(this.hash,this.K)},o.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},o.prototype.reseed=function(t,e,n,r){"string"!=typeof e&&(r=n,n=e,e=null),t=i.toArray(t,e),n=i.toArray(n,r),a(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(n||[])),this._reseed=1},o.prototype.generate=function(t,e,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(r=n,n=e,e=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var a=[];a.length<t;)this.V=this._hmac().update(this.V).digest(),a=a.concat(this.V);var o=a.slice(0,t);return this._update(n),this._reseed++,i.encode(o,e)}},function(t,e,n){"use strict";var r=n(4),i=n(10).assert;function a(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=a,a.fromPublic=function(t,e,n){return e instanceof a?e:new a(t,{pub:e,pubEnc:n})},a.fromPrivate=function(t,e,n){return e instanceof a?e:new a(t,{priv:e,privEnc:n})},a.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},a.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(t,e){this.priv=new r(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?i(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},a.prototype.derive=function(t){return t.mul(this.priv).getX()},a.prototype.sign=function(t,e,n){return this.ec.sign(t,this,e,n)},a.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},a.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},function(t,e,n){"use strict";var r=n(4),i=n(10),a=i.assert;function o(t,e){if(t instanceof o)return t;this._importDER(t,e)||(a(t.r&&t.s,"Signature without r or s"),this.r=new r(t.r,16),this.s=new r(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var n=t[e.place++];if(!(128&n))return n;for(var r=15&n,i=0,a=0,o=e.place;a<r;a++,o++)i<<=8,i|=t[o];return e.place=o,i}function c(t){for(var e=0,n=t.length-1;!t[e]&&!(128&t[e+1])&&e<n;)e++;return 0===e?t:t.slice(e)}function f(t,e){if(e<128)t.push(e);else{var n=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|n);--n;)t.push(e>>>(n<<3)&255);t.push(e)}}t.exports=o,o.prototype._importDER=function(t,e){t=i.toArray(t,e);var n=new s;if(48!==t[n.place++])return!1;if(u(t,n)+n.place!==t.length)return!1;if(2!==t[n.place++])return!1;var a=u(t,n),o=t.slice(n.place,a+n.place);if(n.place+=a,2!==t[n.place++])return!1;var c=u(t,n);if(t.length!==c+n.place)return!1;var f=t.slice(n.place,c+n.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===f[0]&&128&f[1]&&(f=f.slice(1)),this.r=new r(o),this.s=new r(f),this.recoveryParam=null,!0},o.prototype.toDER=function(t){var e=this.r.toArray(),n=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&n[0]&&(n=[0].concat(n)),e=c(e),n=c(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];f(r,e.length),(r=r.concat(e)).push(2),f(r,n.length);var a=r.concat(n),o=[48];return f(o,a.length),o=o.concat(a),i.encode(o,t)}},function(t,e,n){"use strict";var r=n(62),i=n(61),a=n(10),o=a.assert,s=a.parseBytes,u=n(183),c=n(184);function f(t){if(o("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof f))return new f(t);t=i[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=r.sha512}t.exports=f,f.prototype.sign=function(t,e){t=s(t);var n=this.keyFromSecret(e),r=this.hashInt(n.messagePrefix(),t),i=this.g.mul(r),a=this.encodePoint(i),o=this.hashInt(a,n.pubBytes(),t).mul(n.priv()),u=r.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:a})},f.prototype.verify=function(t,e,n){t=s(t),e=this.makeSignature(e);var r=this.keyFromPublic(n),i=this.hashInt(e.Rencoded(),r.pubBytes(),t),a=this.g.mul(e.S());return e.R().add(r.pub().mul(i)).eq(a)},f.prototype.hashInt=function(){for(var t=this.hash(),e=0;e<arguments.length;e++)t.update(arguments[e]);return a.intFromLE(t.digest()).umod(this.curve.n)},f.prototype.keyFromPublic=function(t){return u.fromPublic(this,t)},f.prototype.keyFromSecret=function(t){return u.fromSecret(this,t)},f.prototype.makeSignature=function(t){return t instanceof c?t:new c(this,t)},f.prototype.encodePoint=function(t){var e=t.getY().toArray("le",this.encodingLength);return e[this.encodingLength-1]|=t.getX().isOdd()?128:0,e},f.prototype.decodePoint=function(t){var e=(t=a.parseBytes(t)).length-1,n=t.slice(0,e).concat(-129&t[e]),r=0!=(128&t[e]),i=a.intFromLE(n);return this.curve.pointFromY(i,r)},f.prototype.encodeInt=function(t){return t.toArray("le",this.encodingLength)},f.prototype.decodeInt=function(t){return a.intFromLE(t)},f.prototype.isPoint=function(t){return t instanceof this.pointClass}},function(t,e,n){"use strict";var r=n(10),i=r.assert,a=r.parseBytes,o=r.cachedProperty;function s(t,e){this.eddsa=t,this._secret=a(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=a(e.pub)}s.fromPublic=function(t,e){return e instanceof s?e:new s(t,{pub:e})},s.fromSecret=function(t,e){return e instanceof s?e:new s(t,{secret:e})},s.prototype.secret=function(){return this._secret},o(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),o(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),o(s,"privBytes",(function(){var t=this.eddsa,e=this.hash(),n=t.encodingLength-1,r=e.slice(0,t.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),o(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),o(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),o(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(t){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},s.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},s.prototype.getSecret=function(t){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),t)},s.prototype.getPublic=function(t){return r.encode(this.pubBytes(),t)},t.exports=s},function(t,e,n){"use strict";var r=n(4),i=n(10),a=i.assert,o=i.cachedProperty,s=i.parseBytes;function u(t,e){this.eddsa=t,"object"!=typeof e&&(e=s(e)),Array.isArray(e)&&(e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),a(e.R&&e.S,"Signature without R or S"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof r&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}o(u,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),o(u,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),o(u,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),o(u,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),u.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},u.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},t.exports=u},function(t,e,n){"use strict";var r=n(30);e.certificate=n(195);var i=r.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=i;var a=r.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=a;var o=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=o;var s=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=r.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=u;var c=r.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=c;var f=r.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=f,e.DSAparam=r.define("DSAparam",(function(){this.int()}));var l=r.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(h),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=l;var h=r.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));e.signature=r.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},function(t,e,n){var r=n(30),i=n(2);function a(t,e){this.name=t,this.body=e,this.decoders={},this.encoders={}}e.define=function(t,e){return new a(t,e)},a.prototype._createNamed=function(t){var e;try{e=n(187).runInThisContext("(function "+this.name+"(entity) {\n this._initNamed(entity);\n})")}catch(t){e=function(t){this._initNamed(t)}}return i(e,t),e.prototype._initNamed=function(e){t.call(this,e)},new e(this)},a.prototype._getDecoder=function(t){return t=t||"der",this.decoders.hasOwnProperty(t)||(this.decoders[t]=this._createNamed(r.decoders[t])),this.decoders[t]},a.prototype.decode=function(t,e,n){return this._getDecoder(e).decode(t,n)},a.prototype._getEncoder=function(t){return t=t||"der",this.encoders.hasOwnProperty(t)||(this.encoders[t]=this._createNamed(r.encoders[t])),this.encoders[t]},a.prototype.encode=function(t,e,n){return this._getEncoder(e).encode(t,n)}},function(module,exports){var indexOf=function(t,e){if(t.indexOf)return t.indexOf(e);for(var n=0;n<t.length;n++)if(t[n]===e)return n;return-1},Object_keys=function(t){if(Object.keys)return Object.keys(t);var e=[];for(var n in t)e.push(n);return e},forEach=function(t,e){if(t.forEach)return t.forEach(e);for(var n=0;n<t.length;n++)e(t[n],n,t)},defineProp=function(){try{return Object.defineProperty({},"_",{}),function(t,e,n){Object.defineProperty(t,e,{writable:!0,enumerable:!1,configurable:!0,value:n})}}catch(t){return function(t,e,n){t[e]=n}}}(),globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];function Context(){}Context.prototype={};var Script=exports.Script=function(t){if(!(this instanceof Script))return new Script(t);this.code=t};Script.prototype.runInContext=function(t){if(!(t instanceof Context))throw new TypeError("needs a 'context' argument.");var e=document.createElement("iframe");e.style||(e.style={}),e.style.display="none",document.body.appendChild(e);var n=e.contentWindow,r=n.eval,i=n.execScript;!r&&i&&(i.call(n,"null"),r=n.eval),forEach(Object_keys(t),(function(e){n[e]=t[e]})),forEach(globals,(function(e){t[e]&&(n[e]=t[e])}));var a=Object_keys(n),o=r.call(n,this.code);return forEach(Object_keys(n),(function(e){(e in t||-1===indexOf(a,e))&&(t[e]=n[e])})),forEach(globals,(function(e){e in t||defineProp(t,e,n[e])})),document.body.removeChild(e),o},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInNewContext=function(t){var e=Script.createContext(t),n=this.runInContext(e);return t&&forEach(Object_keys(e),(function(n){t[n]=e[n]})),n},forEach(Object_keys(Script.prototype),(function(t){exports[t]=Script[t]=function(e){var n=Script(e);return n[t].apply(n,[].slice.call(arguments,1))}})),exports.isContext=function(t){return t instanceof Context},exports.createScript=function(t){return exports.Script(t)},exports.createContext=Script.createContext=function(t){var e=new Context;return"object"==typeof t&&forEach(Object_keys(t),(function(n){e[n]=t[n]})),e}},function(t,e,n){var r=n(2);function i(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function a(t,e){this.path=t,this.rethrow(e)}e.Reporter=i,i.prototype.isError=function(t){return t instanceof a},i.prototype.save=function(){var t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},i.prototype.restore=function(t){var e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},i.prototype.enterKey=function(t){return this._reporterState.path.push(t)},i.prototype.exitKey=function(t){var e=this._reporterState;e.path=e.path.slice(0,t-1)},i.prototype.leaveKey=function(t,e,n){var r=this._reporterState;this.exitKey(t),null!==r.obj&&(r.obj[e]=n)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var t=this._reporterState,e=t.obj;return t.obj={},e},i.prototype.leaveObject=function(t){var e=this._reporterState,n=e.obj;return e.obj=t,n},i.prototype.error=function(t){var e,n=this._reporterState,r=t instanceof a;if(e=r?t:new a(n.path.map((function(t){return"["+JSON.stringify(t)+"]"})).join(""),t.message||t,t.stack),!n.options.partial)throw e;return r||n.errors.push(e),e},i.prototype.wrapResult=function(t){var e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},r(a,Error),a.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,a),!this.stack)try{throw new Error(this.message)}catch(t){this.stack=t.stack}return this}},function(t,e,n){var r=n(31).Reporter,i=n(31).EncoderBuffer,a=n(31).DecoderBuffer,o=n(9),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s);function c(t,e){var n={};this._baseState=n,n.enc=t,n.parent=e||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}t.exports=c;var f=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];c.prototype.clone=function(){var t=this._baseState,e={};f.forEach((function(n){e[n]=t[n]}));var n=new this.constructor(e.parent);return n._baseState=e,n},c.prototype._wrap=function(){var t=this._baseState;u.forEach((function(e){this[e]=function(){var n=new this.constructor(this);return t.children.push(n),n[e].apply(n,arguments)}}),this)},c.prototype._init=function(t){var e=this._baseState;o(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),o.equal(e.children.length,1,"Root node can have only one child")},c.prototype._useArgs=function(t){var e=this._baseState,n=t.filter((function(t){return t instanceof this.constructor}),this);t=t.filter((function(t){return!(t instanceof this.constructor)}),this),0!==n.length&&(o(null===e.children),e.children=n,n.forEach((function(t){t._baseState.parent=this}),this)),0!==t.length&&(o(null===e.args),e.args=t,e.reverseArgs=t.map((function(t){if("object"!=typeof t||t.constructor!==Object)return t;var e={};return Object.keys(t).forEach((function(n){n==(0|n)&&(n|=0);var r=t[n];e[r]=n})),e})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(t){c.prototype[t]=function(){var e=this._baseState;throw new Error(t+" not implemented for encoding: "+e.enc)}})),s.forEach((function(t){c.prototype[t]=function(){var e=this._baseState,n=Array.prototype.slice.call(arguments);return o(null===e.tag),e.tag=t,this._useArgs(n),this}})),c.prototype.use=function(t){o(t);var e=this._baseState;return o(null===e.use),e.use=t,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(t){var e=this._baseState;return o(null===e.default),e.default=t,e.optional=!0,this},c.prototype.explicit=function(t){var e=this._baseState;return o(null===e.explicit&&null===e.implicit),e.explicit=t,this},c.prototype.implicit=function(t){var e=this._baseState;return o(null===e.explicit&&null===e.implicit),e.implicit=t,this},c.prototype.obj=function(){var t=this._baseState,e=Array.prototype.slice.call(arguments);return t.obj=!0,0!==e.length&&this._useArgs(e),this},c.prototype.key=function(t){var e=this._baseState;return o(null===e.key),e.key=t,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(t){var e=this._baseState;return o(null===e.choice),e.choice=t,this._useArgs(Object.keys(t).map((function(e){return t[e]}))),this},c.prototype.contains=function(t){var e=this._baseState;return o(null===e.use),e.contains=t,this},c.prototype._decode=function(t,e){var n=this._baseState;if(null===n.parent)return t.wrapResult(n.children[0]._decode(t,e));var r,i=n.default,o=!0,s=null;if(null!==n.key&&(s=t.enterKey(n.key)),n.optional){var u=null;if(null!==n.explicit?u=n.explicit:null!==n.implicit?u=n.implicit:null!==n.tag&&(u=n.tag),null!==u||n.any){if(o=this._peekTag(t,u,n.any),t.isError(o))return o}else{var c=t.save();try{null===n.choice?this._decodeGeneric(n.tag,t,e):this._decodeChoice(t,e),o=!0}catch(t){o=!1}t.restore(c)}}if(n.obj&&o&&(r=t.enterObject()),o){if(null!==n.explicit){var f=this._decodeTag(t,n.explicit);if(t.isError(f))return f;t=f}var l=t.offset;if(null===n.use&&null===n.choice){if(n.any)c=t.save();var h=this._decodeTag(t,null!==n.implicit?n.implicit:n.tag,n.any);if(t.isError(h))return h;n.any?i=t.raw(c):t=h}if(e&&e.track&&null!==n.tag&&e.track(t.path(),l,t.length,"tagged"),e&&e.track&&null!==n.tag&&e.track(t.path(),t.offset,t.length,"content"),i=n.any?i:null===n.choice?this._decodeGeneric(n.tag,t,e):this._decodeChoice(t,e),t.isError(i))return i;if(n.any||null!==n.choice||null===n.children||n.children.forEach((function(n){n._decode(t,e)})),n.contains&&("octstr"===n.tag||"bitstr"===n.tag)){var d=new a(i);i=this._getUse(n.contains,t._reporterState.obj)._decode(d,e)}}return n.obj&&o&&(i=t.leaveObject(r)),null===n.key||null===i&&!0!==o?null!==s&&t.exitKey(s):t.leaveKey(s,n.key,i),i},c.prototype._decodeGeneric=function(t,e,n){var r=this._baseState;return"seq"===t||"set"===t?null:"seqof"===t||"setof"===t?this._decodeList(e,t,r.args[0],n):/str$/.test(t)?this._decodeStr(e,t,n):"objid"===t&&r.args?this._decodeObjid(e,r.args[0],r.args[1],n):"objid"===t?this._decodeObjid(e,null,null,n):"gentime"===t||"utctime"===t?this._decodeTime(e,t,n):"null_"===t?this._decodeNull(e,n):"bool"===t?this._decodeBool(e,n):"objDesc"===t?this._decodeStr(e,t,n):"int"===t||"enum"===t?this._decodeInt(e,r.args&&r.args[0],n):null!==r.use?this._getUse(r.use,e._reporterState.obj)._decode(e,n):e.error("unknown tag: "+t)},c.prototype._getUse=function(t,e){var n=this._baseState;return n.useDecoder=this._use(t,e),o(null===n.useDecoder._baseState.parent),n.useDecoder=n.useDecoder._baseState.children[0],n.implicit!==n.useDecoder._baseState.implicit&&(n.useDecoder=n.useDecoder.clone(),n.useDecoder._baseState.implicit=n.implicit),n.useDecoder},c.prototype._decodeChoice=function(t,e){var n=this._baseState,r=null,i=!1;return Object.keys(n.choice).some((function(a){var o=t.save(),s=n.choice[a];try{var u=s._decode(t,e);if(t.isError(u))return!1;r={type:a,value:u},i=!0}catch(e){return t.restore(o),!1}return!0}),this),i?r:t.error("Choice not matched")},c.prototype._createEncoderBuffer=function(t){return new i(t,this.reporter)},c.prototype._encode=function(t,e,n){var r=this._baseState;if(null===r.default||r.default!==t){var i=this._encodeValue(t,e,n);if(void 0!==i&&!this._skipDefault(i,e,n))return i}},c.prototype._encodeValue=function(t,e,n){var i=this._baseState;if(null===i.parent)return i.children[0]._encode(t,e||new r);var a=null;if(this.reporter=e,i.optional&&void 0===t){if(null===i.default)return;t=i.default}var o=null,s=!1;if(i.any)a=this._createEncoderBuffer(t);else if(i.choice)a=this._encodeChoice(t,e);else if(i.contains)o=this._getUse(i.contains,n)._encode(t,e),s=!0;else if(i.children)o=i.children.map((function(n){if("null_"===n._baseState.tag)return n._encode(null,e,t);if(null===n._baseState.key)return e.error("Child should have a key");var r=e.enterKey(n._baseState.key);if("object"!=typeof t)return e.error("Child expected, but input is not object");var i=n._encode(t[n._baseState.key],e,t);return e.leaveKey(r),i}),this).filter((function(t){return t})),o=this._createEncoderBuffer(o);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return e.error("Too many args for : "+i.tag);if(!Array.isArray(t))return e.error("seqof/setof, but data is not Array");var u=this.clone();u._baseState.implicit=null,o=this._createEncoderBuffer(t.map((function(n){var r=this._baseState;return this._getUse(r.args[0],t)._encode(n,e)}),u))}else null!==i.use?a=this._getUse(i.use,n)._encode(t,e):(o=this._encodePrimitive(i.tag,t),s=!0);if(!i.any&&null===i.choice){var c=null!==i.implicit?i.implicit:i.tag,f=null===i.implicit?"universal":"context";null===c?null===i.use&&e.error("Tag could be omitted only for .use()"):null===i.use&&(a=this._encodeComposite(c,s,f,o))}return null!==i.explicit&&(a=this._encodeComposite(i.explicit,!1,"context",a)),a},c.prototype._encodeChoice=function(t,e){var n=this._baseState,r=n.choice[t.type];return r||o(!1,t.type+" not found in "+JSON.stringify(Object.keys(n.choice))),r._encode(t.value,e)},c.prototype._encodePrimitive=function(t,e){var n=this._baseState;if(/str$/.test(t))return this._encodeStr(e,t);if("objid"===t&&n.args)return this._encodeObjid(e,n.reverseArgs[0],n.args[1]);if("objid"===t)return this._encodeObjid(e,null,null);if("gentime"===t||"utctime"===t)return this._encodeTime(e,t);if("null_"===t)return this._encodeNull();if("int"===t||"enum"===t)return this._encodeInt(e,n.args&&n.reverseArgs[0]);if("bool"===t)return this._encodeBool(e);if("objDesc"===t)return this._encodeStr(e,t);throw new Error("Unsupported tag: "+t)},c.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)},c.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(t)}},function(t,e,n){var r=n(97);e.tagClass={0:"universal",1:"application",2:"context",3:"private"},e.tagClassByName=r._reverse(e.tagClass),e.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},e.tagByName=r._reverse(e.tag)},function(t,e,n){var r=e;r.der=n(98),r.pem=n(192)},function(t,e,n){var r=n(2),i=n(6).Buffer,a=n(98);function o(t){a.call(this,t),this.enc="pem"}r(o,a),t.exports=o,o.prototype.decode=function(t,e){for(var n=t.toString().split(/[\r\n]+/g),r=e.label.toUpperCase(),o=/^-----(BEGIN|END) ([^-]+)-----$/,s=-1,u=-1,c=0;c<n.length;c++){var f=n[c].match(o);if(null!==f&&f[2]===r){if(-1!==s){if("END"!==f[1])break;u=c;break}if("BEGIN"!==f[1])break;s=c}}if(-1===s||-1===u)throw new Error("PEM section not found for: "+r);var l=n.slice(s+1,u).join("");l.replace(/[^a-z0-9\+\/=]+/gi,"");var h=new i(l,"base64");return a.prototype.decode.call(this,h,e)}},function(t,e,n){var r=e;r.der=n(99),r.pem=n(194)},function(t,e,n){var r=n(2),i=n(99);function a(t){i.call(this,t),this.enc="pem"}r(a,i),t.exports=a,a.prototype.encode=function(t,e){for(var n=i.prototype.encode.call(this,t).toString("base64"),r=["-----BEGIN "+e.label+"-----"],a=0;a<n.length;a+=64)r.push(n.slice(a,a+64));return r.push("-----END "+e.label+"-----"),r.join("\n")}},function(t,e,n){"use strict";var r=n(30),i=r.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),a=r.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),o=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),s=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())})),u=r.define("RelativeDistinguishedName",(function(){this.setof(a)})),c=r.define("RDNSequence",(function(){this.seqof(u)})),f=r.define("Name",(function(){this.choice({rdnSequence:this.use(c)})})),l=r.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))})),h=r.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),d=r.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(o),this.key("issuer").use(f),this.key("validity").use(l),this.key("subject").use(f),this.key("subjectPublicKeyInfo").use(s),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(h).optional())})),p=r.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(d),this.key("signatureAlgorithm").use(o),this.key("signatureValue").bitstr())}));t.exports=p},function(t){t.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},function(t,e,n){var r=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,a=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m,o=n(37),s=n(56),u=n(3).Buffer;t.exports=function(t,e){var n,c=t.toString(),f=c.match(r);if(f){var l="aes"+f[1],h=u.from(f[2],"hex"),d=u.from(f[3].replace(/[\r\n]/g,""),"base64"),p=o(e,h.slice(0,8),parseInt(f[1],10)).key,g=[],y=s.createDecipheriv(l,p,h);g.push(y.update(d)),g.push(y.final()),n=u.concat(g)}else{var b=c.match(a);n=new u(b[2].replace(/[\r\n]/g,""),"base64")}return{tag:c.match(i)[1],data:n}}},function(t,e,n){(function(e){var r=n(4),i=n(60).ec,a=n(39),o=n(100);function s(t,e){if(t.cmpn(0)<=0)throw new Error("invalid sig");if(t.cmp(e)>=e)throw new Error("invalid sig")}t.exports=function(t,n,u,c,f){var l=a(u);if("ec"===l.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(t,e,n){var r=o[n.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var a=new i(r),s=n.data.subjectPrivateKey.data;return a.verify(e,t,s)}(t,n,l)}if("dsa"===l.type){if("dsa"!==c)throw new Error("wrong public key type");return function(t,e,n){var i=n.data.p,o=n.data.q,u=n.data.g,c=n.data.pub_key,f=a.signature.decode(t,"der"),l=f.s,h=f.r;s(l,o),s(h,o);var d=r.mont(i),p=l.invm(o);return 0===u.toRed(d).redPow(new r(e).mul(p).mod(o)).fromRed().mul(c.toRed(d).redPow(h.mul(p).mod(o)).fromRed()).mod(i).mod(o).cmp(h)}(t,n,l)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");n=e.concat([f,n]);for(var h=l.modulus.byteLength(),d=[1],p=0;n.length+d.length+2<h;)d.push(255),p++;d.push(0);for(var g=-1;++g<n.length;)d.push(n[g]);d=new e(d);var y=r.mont(l.modulus);t=(t=new r(t).toRed(y)).redPow(new r(l.publicExponent)),t=new e(t.fromRed().toArray());var b=p<8?1:0;for(h=Math.min(t.length,d.length),t.length!==d.length&&(b=1),g=-1;++g<h;)b|=t[g]^d[g];return 0===b}}).call(this,n(6).Buffer)},function(t,e,n){(function(e){var r=n(60),i=n(4);t.exports=function(t){return new o(t)};var a={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function o(t){this.curveType=a[t],this.curveType||(this.curveType={name:t}),this.curve=new r.ec(this.curveType.name),this.keys=void 0}function s(t,n,r){Array.isArray(t)||(t=t.toArray());var i=new e(t);if(r&&i.length<r){var a=new e(r-i.length);a.fill(0),i=e.concat([a,i])}return n?i.toString(n):i}a.p224=a.secp224r1,a.p256=a.secp256r1=a.prime256v1,a.p192=a.secp192r1=a.prime192v1,a.p384=a.secp384r1,a.p521=a.secp521r1,o.prototype.generateKeys=function(t,e){return this.keys=this.curve.genKeyPair(),this.getPublicKey(t,e)},o.prototype.computeSecret=function(t,n,r){return n=n||"utf8",e.isBuffer(t)||(t=new e(t,n)),s(this.curve.keyFromPublic(t).getPublic().mul(this.keys.getPrivate()).getX(),r,this.curveType.byteLength)},o.prototype.getPublicKey=function(t,e){var n=this.keys.getPublic("compressed"===e,!0);return"hybrid"===e&&(n[n.length-1]%2?n[0]=7:n[0]=6),s(n,t)},o.prototype.getPrivateKey=function(t){return s(this.keys.getPrivate(),t)},o.prototype.setPublicKey=function(t,n){return n=n||"utf8",e.isBuffer(t)||(t=new e(t,n)),this.keys._importPublic(t),this},o.prototype.setPrivateKey=function(t,n){n=n||"utf8",e.isBuffer(t)||(t=new e(t,n));var r=new i(t);return r=r.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(r),this}}).call(this,n(6).Buffer)},function(t,e,n){e.publicEncrypt=n(201),e.privateDecrypt=n(202),e.privateEncrypt=function(t,n){return e.publicEncrypt(t,n,!0)},e.publicDecrypt=function(t,n){return e.privateDecrypt(t,n,!0)}},function(t,e,n){var r=n(39),i=n(22),a=n(26),o=n(101),s=n(102),u=n(4),c=n(103),f=n(59),l=n(3).Buffer;t.exports=function(t,e,n){var h;h=t.padding?t.padding:n?1:4;var d,p=r(t);if(4===h)d=function(t,e){var n=t.modulus.byteLength(),r=e.length,c=a("sha1").update(l.alloc(0)).digest(),f=c.length,h=2*f;if(r>n-h-2)throw new Error("message too long");var d=l.alloc(n-r-h-2),p=n-f-1,g=i(f),y=s(l.concat([c,d,l.alloc(1,1),e],p),o(g,p)),b=s(g,o(y,f));return new u(l.concat([l.alloc(1),b,y],n))}(p,e);else if(1===h)d=function(t,e,n){var r,a=e.length,o=t.modulus.byteLength();if(a>o-11)throw new Error("message too long");r=n?l.alloc(o-a-3,255):function(t){var e,n=l.allocUnsafe(t),r=0,a=i(2*t),o=0;for(;r<t;)o===a.length&&(a=i(2*t),o=0),(e=a[o++])&&(n[r++]=e);return n}(o-a-3);return new u(l.concat([l.from([0,n?1:2]),r,l.alloc(1),e],o))}(p,e,n);else{if(3!==h)throw new Error("unknown padding");if((d=new u(e)).cmp(p.modulus)>=0)throw new Error("data too long for modulus")}return n?f(d,p):c(d,p)}},function(t,e,n){var r=n(39),i=n(101),a=n(102),o=n(4),s=n(59),u=n(26),c=n(103),f=n(3).Buffer;t.exports=function(t,e,n){var l;l=t.padding?t.padding:n?1:4;var h,d=r(t),p=d.modulus.byteLength();if(e.length>p||new o(e).cmp(d.modulus)>=0)throw new Error("decryption error");h=n?c(new o(e),d):s(e,d);var g=f.alloc(p-h.length);if(h=f.concat([g,h],p),4===l)return function(t,e){var n=t.modulus.byteLength(),r=u("sha1").update(f.alloc(0)).digest(),o=r.length;if(0!==e[0])throw new Error("decryption error");var s=e.slice(1,o+1),c=e.slice(o+1),l=a(s,i(c,o)),h=a(c,i(l,n-o-1));if(function(t,e){t=f.from(t),e=f.from(e);var n=0,r=t.length;t.length!==e.length&&(n++,r=Math.min(t.length,e.length));var i=-1;for(;++i<r;)n+=t[i]^e[i];return n}(r,h.slice(0,o)))throw new Error("decryption error");var d=o;for(;0===h[d];)d++;if(1!==h[d++])throw new Error("decryption error");return h.slice(d)}(d,h);if(1===l)return function(t,e,n){var r=e.slice(0,2),i=2,a=0;for(;0!==e[i++];)if(i>=e.length){a++;break}var o=e.slice(2,i-1);("0002"!==r.toString("hex")&&!n||"0001"!==r.toString("hex")&&n)&&a++;o.length<8&&a++;if(a)throw new Error("decryption error");return e.slice(i)}(0,h,n);if(3===l)return h;throw new Error("unknown padding")}},function(t,e,n){"use strict";(function(t,r){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var a=n(3),o=n(22),s=a.Buffer,u=a.kMaxLength,c=t.crypto||t.msCrypto,f=Math.pow(2,32)-1;function l(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>f||t<0)throw new TypeError("offset must be a uint32");if(t>u||t>e)throw new RangeError("offset out of range")}function h(t,e,n){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>f||t<0)throw new TypeError("size must be a uint32");if(t+e>n||t>u)throw new RangeError("buffer too small")}function d(t,e,n,i){if(r.browser){var a=t.buffer,s=new Uint8Array(a,e,n);return c.getRandomValues(s),i?void r.nextTick((function(){i(null,t)})):t}if(!i)return o(n).copy(t,e),t;o(n,(function(n,r){if(n)return i(n);r.copy(t,e),i(null,t)}))}c&&c.getRandomValues||!r.browser?(e.randomFill=function(e,n,r,i){if(!(s.isBuffer(e)||e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof n)i=n,n=0,r=e.length;else if("function"==typeof r)i=r,r=e.length-n;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return l(n,e.length),h(r,n,e.length),d(e,n,r,i)},e.randomFillSync=function(e,n,r){void 0===n&&(n=0);if(!(s.isBuffer(e)||e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');l(n,e.length),void 0===r&&(r=e.length-n);return h(r,n,e.length),d(e,n,r)}):(e.randomFill=i,e.randomFillSync=i)}).call(this,n(13),n(5))},function(t,e,n){var r={"./dark/index.scss":205,"./default/index.scss":207,"./forest/index.scss":209,"./neutral/index.scss":211};function i(t){var e=a(t);return n(e)}function a(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=a,t.exports=i,i.id=204},function(t,e,n){var r=n(206);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(40)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#BDD5EA;stroke:purple;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:#d3d3d3}.edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8;text-align:center}.cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.cluster text{fill:#F9FFFE}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#81B1DB;fill:#BDD5EA}text.actor{fill:#000;stroke:none}.actor-line{stroke:#d3d3d3}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}#arrowhead{fill:#d3d3d3}.sequenceNumber{fill:#fff}#sequencenumber{fill:#d3d3d3}#crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.messageText{fill:#d3d3d3;stroke:none}.labelBox{stroke:#81B1DB;fill:#BDD5EA}.labelText{fill:#323D47;stroke:none}.loopText{fill:#d3d3d3;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:rgba(255,255,255,0.3)}.section2{fill:#EAE8B9}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#F9FFFE}.sectionTitle1{fill:#F9FFFE}.sectionTitle2{fill:#F9FFFE}.sectionTitle3{fill:#F9FFFE}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:#DB5757;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#323D47}.task0,.task1,.task2,.task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.taskTextOutside0,.taskTextOutside2{fill:#d3d3d3}.taskTextOutside1,.taskTextOutside3{fill:#d3d3d3}.active0,.active1,.active2,.active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.activeText0,.activeText1,.activeText2,.activeText3{fill:#323D47 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#323D47 !important}.crit0,.crit1,.crit2,.crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#323D47 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#323D47 !important}.titleText{text-anchor:middle;font-size:18px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.classGroup rect{fill:#BDD5EA;stroke:purple}g.classGroup line{stroke:purple;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.classLabel .label{fill:purple;font-size:10px}.relation{stroke:purple;stroke-width:1;fill:none}#compositionStart{fill:purple;stroke:purple;stroke-width:1}#compositionEnd{fill:purple;stroke:purple;stroke-width:1}#aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}#aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}#dependencyStart{fill:purple;stroke:purple;stroke-width:1}#dependencyEnd{fill:purple;stroke:purple;stroke-width:1}#extensionStart{fill:purple;stroke:purple;stroke-width:1}#extensionEnd{fill:purple;stroke:purple;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:purple;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#BDD5EA;stroke:purple}g.stateGroup line{stroke:purple;stroke-width:1}.transition{stroke:purple;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n",""])},function(t,e,n){var r=n(208);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(40)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#ECECFF;stroke:#9370db;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:#333}.edgePath .path{stroke:#333;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8;text-align:center}.cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#ccf;fill:#ECECFF}text.actor{fill:#000;stroke:none}.actor-line{stroke:grey}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}.sequenceNumber{fill:#fff}#sequencenumber{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#ccf;fill:#ECECFF}.labelText{fill:#000;stroke:none}.loopText{fill:#000;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#ccf}.note{stroke:#aa3;fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:rgba(102,102,255,0.49)}.section2{fill:#fff400}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:red;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#8a90dd;stroke:#534fbc}.taskTextOutside0,.taskTextOutside2{fill:#000}.taskTextOutside1,.taskTextOutside3{fill:#000}.active0,.active1,.active2,.active3{fill:#bfc7ff;stroke:#534fbc}.activeText0,.activeText1,.activeText2,.activeText3{fill:#000 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#000 !important}.crit0,.crit1,.crit2,.crit3{stroke:#f88;fill:red;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#000 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#000 !important}.titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.classGroup rect{fill:#ECECFF;stroke:#9370db}g.classGroup line{stroke:#9370db;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}.classLabel .label{fill:#9370db;font-size:10px}.relation{stroke:#9370db;stroke-width:1;fill:none}#compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#9370db;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#ECECFF;stroke:#9370db}g.stateGroup line{stroke:#9370db;stroke-width:1}.transition{stroke:#9370db;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.state-note{stroke:#aa3;fill:#fff5ad}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n",""])},function(t,e,n){var r=n(210);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(40)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#cde498;stroke:#13540c;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:green}.edgePath .path{stroke:green;stroke-width:1.5px}.edgeLabel{background-color:#e8e8e8;text-align:center}.cluster rect{fill:#cdffb2;stroke:#6eaa49;stroke-width:1px}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#cdffb2;border:1px solid #6eaa49;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#13540c;fill:#cde498}text.actor{fill:#000;stroke:none}.actor-line{stroke:grey}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}.sequenceNumber{fill:#fff}#sequencenumber{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#326932;fill:#cde498}.labelText{fill:#000;stroke:none}.loopText{fill:#000;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#326932}.note{stroke:#6eaa49;fill:#fff5ad}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:#6eaa49}.section2{fill:#6eaa49}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:red;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#487e3a;stroke:#13540c}.taskTextOutside0,.taskTextOutside2{fill:#000}.taskTextOutside1,.taskTextOutside3{fill:#000}.active0,.active1,.active2,.active3{fill:#cde498;stroke:#13540c}.activeText0,.activeText1,.activeText2,.activeText3{fill:#000 !important}.done0,.done1,.done2,.done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#000 !important}.crit0,.crit1,.crit2,.crit3{stroke:#f88;fill:red;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#f88;fill:#cde498;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#000 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#000 !important}.titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:#13540c;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.classGroup rect{fill:#cde498;stroke:#13540c}g.classGroup line{stroke:#13540c;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#cde498;opacity:0.5}.classLabel .label{fill:#13540c;font-size:10px}.relation{stroke:#13540c;stroke-width:1;fill:none}#compositionStart{fill:#13540c;stroke:#13540c;stroke-width:1}#compositionEnd{fill:#13540c;stroke:#13540c;stroke-width:1}#aggregationStart{fill:#cde498;stroke:#13540c;stroke-width:1}#aggregationEnd{fill:#cde498;stroke:#13540c;stroke-width:1}#dependencyStart{fill:#13540c;stroke:#13540c;stroke-width:1}#dependencyEnd{fill:#13540c;stroke:#13540c;stroke-width:1}#extensionStart{fill:#13540c;stroke:#13540c;stroke-width:1}#extensionEnd{fill:#13540c;stroke:#13540c;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#13540c;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#13540c;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#cde498;stroke:#13540c}g.stateGroup line{stroke:#13540c;stroke-width:1}.transition{stroke:#13540c;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.state-note{stroke:#6eaa49;fill:#fff5ad}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#cde498;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n",""])},function(t,e,n){var r=n(212);t.exports="string"==typeof r?r:r.toString()},function(t,e,n){(t.exports=n(40)(!1)).push([t.i,".label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.label text{fill:#333}.node rect,.node circle,.node ellipse,.node polygon{fill:#eee;stroke:#999;stroke-width:1px}.node .label{text-align:center}.node.clickable{cursor:pointer}.arrowheadPath{fill:#333}.edgePath .path{stroke:#666;stroke-width:1.5px}.edgeLabel{background-color:#fff;text-align:center}.cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.cluster text{fill:#333}div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.actor{stroke:#999;fill:#eee}text.actor{fill:#333;stroke:none}.actor-line{stroke:#666}.messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}#arrowhead{fill:#333}.sequenceNumber{fill:#fff}#sequencenumber{fill:#333}#crosshead path{fill:#333 !important;stroke:#333 !important}.messageText{fill:#333;stroke:none}.labelBox{stroke:#999;fill:#eee}.labelText{fill:#333;stroke:none}.loopText{fill:#333;stroke:none}.loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.note{stroke:#770;fill:#ffa}.noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.activation0{fill:#f4f4f4;stroke:#666}.activation1{fill:#f4f4f4;stroke:#666}.activation2{fill:#f4f4f4;stroke:#666}.mermaid-main-font{font-family:\"trebuchet ms\", verdana, arial;font-family:var(--mermaid-font-family)}.section{stroke:none;opacity:0.2}.section0{fill:#80b3e6}.section2{fill:#80b3e6}.section1,.section3{fill:#fff;opacity:0.2}.sectionTitle0{fill:#333}.sectionTitle1{fill:#333}.sectionTitle2{fill:#333}.sectionTitle3{fill:#333}.sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid .tick{stroke:#e6e6e6;opacity:0.3;shape-rendering:crispEdges}.grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.grid path{stroke-width:0}.today{fill:none;stroke:#d42;stroke-width:2px}.task{stroke-width:2}.taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskText:not([font-size]){font-size:11px}.taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.task.clickable{cursor:pointer}.taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.taskText0,.taskText1,.taskText2,.taskText3{fill:#fff}.task0,.task1,.task2,.task3{fill:#26a;stroke:#1a4d80}.taskTextOutside0,.taskTextOutside2{fill:#333}.taskTextOutside1,.taskTextOutside3{fill:#333}.active0,.active1,.active2,.active3{fill:#eee;stroke:#1a4d80}.activeText0,.activeText1,.activeText2,.activeText3{fill:#333 !important}.done0,.done1,.done2,.done3{stroke:#666;fill:#bbb;stroke-width:2}.doneText0,.doneText1,.doneText2,.doneText3{fill:#333 !important}.crit0,.crit1,.crit2,.crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.activeCrit0,.activeCrit1,.activeCrit2,.activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.doneCrit0,.doneCrit1,.doneCrit2,.doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.milestone{transform:rotate(45deg) scale(0.8, 0.8)}.milestoneText{font-style:italic}.doneCritText0,.doneCritText1,.doneCritText2,.doneCritText3{fill:#333 !important}.activeCritText0,.activeCritText1,.activeCritText2,.activeCritText3{fill:#333 !important}.titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}g.classGroup text .title{font-weight:bolder}g.classGroup rect{fill:#eee;stroke:#999}g.classGroup line{stroke:#999;stroke-width:1}.classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.classLabel .label{fill:#999;font-size:10px}.relation{stroke:#999;stroke-width:1;fill:none}#compositionStart{fill:#999;stroke:#999;stroke-width:1}#compositionEnd{fill:#999;stroke:#999;stroke-width:1}#aggregationStart{fill:#eee;stroke:#999;stroke-width:1}#aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}#dependencyStart{fill:#999;stroke:#999;stroke-width:1}#dependencyEnd{fill:#999;stroke:#999;stroke-width:1}#extensionStart{fill:#999;stroke:#999;stroke-width:1}#extensionEnd{fill:#999;stroke:#999;stroke-width:1}.commit-id,.commit-msg,.branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}g.stateGroup text{fill:#999;stroke:none;font-size:10px}g.stateGroup .state-title{font-weight:bolder;fill:#000}g.stateGroup rect{fill:#eee;stroke:#999}g.stateGroup line{stroke:#999;stroke-width:1}.transition{stroke:#999;stroke-width:1;fill:none}.stateGroup .composit{fill:white;border-bottom:1px}.state-note{stroke:#770;fill:#ffa}.state-note text{fill:black;stroke:none;font-size:10px}.stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}:root{--mermaid-font-family: '\"trebuchet ms\", verdana, arial';--mermaid-font-family: \"Comic Sans MS\", \"Comic Sans\", cursive}\n",""])},function(t,e,n){"use strict";n.r(e);var r=n(104),i=n.n(r),a=n(0),o=n(105),s=n.n(o),u=n(34);let c={};const f=t=>{!function(t){const e=Object.keys(t);for(let n=0;n<e.length;n++)if("object"==typeof t[e[n]]&&null!=t[e[n]]){const r=Object.keys(t[e[n]]);for(let i=0;i<r.length;i++)void 0===c[e[n]]&&(c[e[n]]={}),c[e[n]][r[i]]=t[e[n]][r[i]]}else c[e[n]]=t[e[n]]}(t)},l=()=>c;var h=n(15),d=n.n(h);const p=1,g=2,y=3,b=4,m=5,v={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{},fatal:()=>{}},_=function(t){v.debug=()=>{},v.info=()=>{},v.warn=()=>{},v.error=()=>{},v.fatal=()=>{},t<=m&&(v.fatal=console.log.bind(console,"",w("FATAL"))),t<=b&&(v.error=console.log.bind(console,"",w("ERROR"))),t<=y&&(v.warn=console.log.bind(console,"",w("WARN"))),t<=g&&(v.info=console.log.bind(console,"",w("INFO"))),t<=p&&(v.debug=console.log.bind(console,"",w("DEBUG")))},w=t=>{return`${d()().format("HH:mm:ss.SSS")} : ${t} : `},x=(t,e)=>{if(!t)return e;const n=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return a[n]||e},k=(t,e)=>t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0;var E={detectType:function(t){return t=t.replace(/^\s*%%.*\n/g,"\n"),v.debug("Detecting diagram type based on the text "+t),t.match(/^\s*sequenceDiagram/)?"sequence":t.match(/^\s*gantt/)?"gantt":t.match(/^\s*classDiagram/)?"class":t.match(/^\s*stateDiagram/)?"state":t.match(/^\s*gitGraph/)?"git":t.match(/^\s*info/)?"info":t.match(/^\s*pie/)?"pie":"flowchart"},isSubstringInArray:function(t,e){for(let n=0;n<e.length;n++)if(e[n].match(t))return n;return-1},interpolateToCurve:x,calcLabelPosition:t=>{return(t=>{let e,n=0;t.forEach(t=>{n+=k(t,e),e=t});let r,i=n/2;return e=void 0,t.forEach(t=>{if(e&&!r){const n=k(t,e);if(n<i)i-=n;else{const a=i/n;a<=0&&(r=e),a>=1&&(r={x:t.x,y:t.y}),a>0&&a<1&&(r={x:(1-a)*e.x+a*t.x,y:(1-a)*e.y+a*t.y})}}e=t}),r})(t)},calcCardinalityPosition:(t,e,n)=>{let r,i=0;e[0]!==n&&(e=e.reverse()),e.forEach(t=>{i+=k(t,r),r=t});let a,o=25;r=void 0,e.forEach(t=>{if(r&&!a){const e=k(t,r);if(e<o)o-=e;else{const n=o/e;n<=0&&(a=r),n>=1&&(a={x:t.x,y:t.y}),n>0&&n<1&&(a={x:(1-n)*r.x+n*t.x,y:(1-n)*r.y+n*t.y})}}r=t});let s=t?10:5,u=Math.atan2(e[0].y-a.y,e[0].x-a.x),c={x:0,y:0};return c.x=Math.sin(u)*s+(e[0].x+a.x)/2,c.y=-Math.cos(u)*s+(e[0].y+a.y)/2,c}},A=n(20),S=n.n(A),M=n(41);const T=l();let D,C={},O=[],R=[],N=[],I={},B={},L=0,P=!0,F=[];const q=t=>{let e=t;return"loose"!==T.securityLevel&&(e=(e=(e=(e=(e=e.replace(/<br>/g,"#br#")).replace(/<br\S*?\/>/g,"#br#")).replace(/</g,"&lt;").replace(/>/g,"&gt;")).replace(/=/g,"&equals;")).replace(/#br#/g,"<br/>")),e},j=function(t,e){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n="s"+n),void 0!==C[n]&&C[n].classes.push(e),void 0!==I[n]&&I[n].classes.push(e)}))},U=function(t,e){t.split(",").forEach((function(t){void 0!==e&&(B[t]=q(e))}))},z=function(t){let e=a.select(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=a.select("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),a.select(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=a.select(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.html(t.attr("title")).style("left",n.left+(n.right-n.left)/2+"px").style("top",n.top-14+document.body.scrollTop+"px"),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0),a.select(this).classed("hover",!1)}))};F.push(z);const Y=function(t){for(let e=0;e<N.length;e++)if(N[e].id===t)return e;return-1};let H=-1;const V=[],$=function(t,e){const n=N[e].nodes;if((H+=1)>2e3)return;if(V[H]=e,N[e].id===t)return{result:!0,count:0};let r=0,i=1;for(;r<n.length;){const e=Y(n[r]);if(e>=0){const n=$(t,e);if(n.result)return{result:!0,count:i+n.count};i+=n.count}r+=1}return{result:!1,count:i}};var G={addVertex:function(t,e,n,r,i){let a,o=t;void 0!==o&&0!==o.trim().length&&(o[0].match(/\d/)&&(o="s"+o),void 0===C[o]&&(C[o]={id:o,styles:[],classes:[]}),void 0!==e?('"'===(a=q(e.trim()))[0]&&'"'===a[a.length-1]&&(a=a.substring(1,a.length-1)),C[o].text=a):C[o].text||(C[o].text=t),void 0!==n&&(C[o].type=n),null!=r&&r.forEach((function(t){C[o].styles.push(t)})),null!=i&&i.forEach((function(t){C[o].classes.push(t)})))},addLink:function(t,e,n,r){let i=t,a=e;i[0].match(/\d/)&&(i="s"+i),a[0].match(/\d/)&&(a="s"+a),v.info("Got edge...",i,a);const o={start:i,end:a,type:void 0,text:""};void 0!==(r=n.text)&&(o.text=q(r.trim()),'"'===o.text[0]&&'"'===o.text[o.text.length-1]&&(o.text=o.text.substring(1,o.text.length-1))),void 0!==n&&(o.type=n.type,o.stroke=n.stroke),O.push(o)},updateLinkInterpolate:function(t,e){t.forEach((function(t){"default"===t?O.defaultInterpolate=e:O[t].interpolate=e}))},updateLink:function(t,e){t.forEach((function(t){"default"===t?O.defaultStyle=e:(-1===E.isSubstringInArray("fill",e)&&e.push("fill:none"),O[t].style=e)}))},addClass:function(t,e){void 0===R[t]&&(R[t]={id:t,styles:[]}),null!=e&&e.forEach((function(e){R[t].styles.push(e)}))},setDirection:function(t){(D=t).match(/.*</)&&(D="RL"),D.match(/.*\^/)&&(D="BT"),D.match(/.*>/)&&(D="LR"),D.match(/.*v/)&&(D="TB")},setClass:j,getTooltip:function(t){return B[t]},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){!function(t,e){let n=t;t[0].match(/\d/)&&(n="s"+n),"loose"===T.securityLevel&&void 0!==e&&void 0!==C[n]&&F.push((function(t){const r=document.querySelector(`[id="${n}"]`);null!==r&&r.addEventListener("click",(function(){window[e](n)}),!1)}))}(t,e)})),U(t,n),j(t,"clickable")},setLink:function(t,e,n){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n="s"+n),void 0!==C[n]&&("loose"!==T.securityLevel?C[n].link=Object(M.sanitizeUrl)(e):C[n].link=e)})),U(t,n),j(t,"clickable")},bindFunctions:function(t){F.forEach((function(e){e(t)}))},getDirection:function(){return D.trim()},getVertices:function(){return C},getEdges:function(){return O},getClasses:function(){return R},clear:function(){C={},R={},O=[],(F=[]).push(z),N=[],I={},L=0,B=[],P=!0},defaultStyle:function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},addSubGraph:function(t,e,n){let r=t,i=n;t===n&&n.match(/\s/)&&(r=void 0);let a=[];a=function(t){const e={boolean:{},number:{},string:{}},n=[];return t.filter((function(t){const r=typeof t;return""!==t.trim()&&(r in e?!e[r].hasOwnProperty(t)&&(e[r][t]=!0):!(n.indexOf(t)>=0)&&n.push(t))}))}(a.concat.apply(a,e));for(let t=0;t<a.length;t++)a[t][0].match(/\d/)&&(a[t]="s"+a[t]);(r=r||"subGraph"+L)[0].match(/\d/)&&(r="s"+r),i=q(i=i||""),L+=1;const o={id:r,nodes:a,title:i.trim(),classes:[]};return N.push(o),I[r]=o,r},getDepthFirstPos:function(t){return V[t]},indexNodes:function(){H=-1,N.length>0&&$("none",N.length-1,0)},getSubGraphs:function(){return N},lex:{firstGraph:()=>!!P&&(P=!1,!0)}},W=n(33),K=n.n(W),X=n(12),Z=n.n(X),J=n(11),Q=n.n(J);const tt=/:/g;function et(t){return t?String(t).replace(tt,"\\:"):""}var nt={isSubgraph:function(t,e){return!!t.children(e).length},edgeToId:function(t){return et(t.v)+":"+et(t.w)+":"+et(t.name)},applyStyle:function(t,e){e&&t.attr("style",e)},applyClass:function(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))},applyTransition:function(t,e){const n=e.graph();if(Q.a.isPlainObject(n)){const e=n.transition;if(Q.a.isFunction(e))return e(t)}return t}};var rt=function(t,e){const n=t.append("foreignObject").attr("width","100000"),r=n.append("xhtml:div");r.attr("xmlns","http://www.w3.org/1999/xhtml");const i=e.label;switch(typeof i){case"function":r.insert(i);break;case"object":r.insert((function(){return i}));break;default:r.html(i)}nt.applyStyle(r,e.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap");const a=r.node().getBoundingClientRect();return n.attr("width",a.width).attr("height",a.height),n};function it(t,e,n){const r=.9*(e.width+e.height),i=[{x:r/2,y:0},{x:r,y:-r/2},{x:r/2,y:-r},{x:0,y:-r/2}],a=ht(t,r,r,i);return n.intersect=function(t){return Z.a.intersect.polygon(n,i,t)},a}function at(t,e,n){const r=e.height,i=r/4,a=e.width+2*i,o=[{x:i,y:0},{x:a-i,y:0},{x:a,y:-r/2},{x:a-i,y:-r},{x:i,y:-r},{x:0,y:-r/2}],s=ht(t,a,r,o);return n.intersect=function(t){return Z.a.intersect.polygon(n,o,t)},s}function ot(t,e,n){const r=e.width,i=e.height,a=[{x:-i/2,y:0},{x:r,y:0},{x:r,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}],o=ht(t,r,i,a);return n.intersect=function(t){return Z.a.intersect.polygon(n,a,t)},o}function st(t,e,n){const r=e.width,i=e.height,a=[{x:-2*i/6,y:0},{x:r-i/6,y:0},{x:r+2*i/6,y:-i},{x:i/6,y:-i}],o=ht(t,r,i,a);return n.intersect=function(t){return Z.a.intersect.polygon(n,a,t)},o}function ut(t,e,n){const r=e.width,i=e.height,a=[{x:2*i/6,y:0},{x:r+i/6,y:0},{x:r-2*i/6,y:-i},{x:-i/6,y:-i}],o=ht(t,r,i,a);return n.intersect=function(t){return Z.a.intersect.polygon(n,a,t)},o}function ct(t,e,n){const r=e.width,i=e.height,a=[{x:-2*i/6,y:0},{x:r+2*i/6,y:0},{x:r-i/6,y:-i},{x:i/6,y:-i}],o=ht(t,r,i,a);return n.intersect=function(t){return Z.a.intersect.polygon(n,a,t)},o}function ft(t,e,n){const r=e.width,i=e.height,a=[{x:i/6,y:0},{x:r-i/6,y:0},{x:r+2*i/6,y:-i},{x:-2*i/6,y:-i}],o=ht(t,r,i,a);return n.intersect=function(t){return Z.a.intersect.polygon(n,a,t)},o}function lt(t,e,n){const r=e.width,i=e.height,a=[{x:0,y:0},{x:r+i/2,y:0},{x:r,y:-i/2},{x:r+i/2,y:-i},{x:0,y:-i}],o=ht(t,r,i,a);return n.intersect=function(t){return Z.a.intersect.polygon(n,a,t)},o}function ht(t,e,n,r){return t.insert("polygon",":first-child").attr("points",r.map((function(t){return t.x+","+t.y})).join(" ")).attr("transform","translate("+-e/2+","+n/2+")")}var dt={addToRender:function(t){t.shapes().question=it,t.shapes().hexagon=at,t.shapes().rect_left_inv_arrow=ot,t.shapes().lean_right=st,t.shapes().lean_left=ut,t.shapes().trapezoid=ct,t.shapes().inv_trapezoid=ft,t.shapes().rect_right_inv_arrow=lt}};const pt={},gt=function(t,e,n){const r=a.select(`[id="${n}"]`),i=Object.keys(t),o=function(t,e,{label:n}){if(n)for(let n=0;n<e.length;n++)void 0!==e[n]&&e[n].match("^color:|^text-align:")&&(t=t+e[n]+";");else for(let n=0;n<e.length;n++)void 0!==e[n]&&(t=t+e[n]+";");return t};i.forEach((function(n){const i=t[n];let a="";i.classes.length>0&&(a=i.classes.join(" "));let s="";s=o(s,i.styles,{label:!1});let u="";u=o(u,i.styles,{label:!0});let c,f=void 0!==i.text?i.text:i.id;if(l().flowchart.htmlLabels){const t={label:f.replace(/fa[lrsb]?:fa-[\w-]+/g,t=>`<i class='${t.replace(":"," ")}'></i>`)};(c=rt(r,t).node()).parentNode.removeChild(c)}else{const t=document.createElementNS("http://www.w3.org/2000/svg","text"),e=f.split(/<br[/]{0,1}>/);for(let n=0;n<e.length;n++){const r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","1"),r.textContent=e[n],t.appendChild(r)}c=t}if(i.link){const t=document.createElementNS("http://www.w3.org/2000/svg","a");t.setAttributeNS("http://www.w3.org/2000/svg","href",i.link),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),t.appendChild(c),c=t}let h=0,d="";switch(i.type){case"round":h=5,d="rect";break;case"square":d="rect";break;case"diamond":d="question";break;case"hexagon":d="hexagon";break;case"odd":d="rect_left_inv_arrow";break;case"lean_right":d="lean_right";break;case"lean_left":d="lean_left";break;case"trapezoid":d="trapezoid";break;case"inv_trapezoid":d="inv_trapezoid";break;case"odd_right":d="rect_left_inv_arrow";break;case"circle":d="circle";break;case"ellipse":d="ellipse";break;case"group":d="rect";break;default:d="rect"}e.setNode(i.id,{labelType:"svg",labelStyle:u,shape:d,label:c,rx:h,ry:h,class:a,style:s,id:i.id})}))},yt=function(t,e){let n,r=0;void 0!==t.defaultStyle&&(n=t.defaultStyle.toString().replace(/,/g,";")),t.forEach((function(i){r++;const o={};"arrow_open"===i.type?o.arrowhead="none":o.arrowhead="normal";let s="";if(void 0!==i.style)i.style.forEach((function(t){s=s+t+";"}));else switch(i.stroke){case"normal":s="fill:none",void 0!==n&&(s=n);break;case"dotted":s="stroke: #333; fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":s="stroke: #333; stroke-width: 3.5px;fill:none"}o.style=s,void 0!==i.interpolate?o.curve=x(i.interpolate,a.curveLinear):void 0!==t.defaultInterpolate?o.curve=x(t.defaultInterpolate,a.curveLinear):o.curve=x(pt.curve,a.curveLinear),void 0===i.text?void 0!==i.style&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",void 0===i.style?(o.labelpos="c",l().flowchart.htmlLabels?(o.labelType="html",o.label='<span class="edgeLabel">'+i.text+"</span>"):(o.labelType="text",o.style=o.style||"stroke: #333; stroke-width: 1.5px;fill:none",o.label=i.text.replace(/<br>/g,"\n"))):o.label=i.text.replace(/<br>/g,"\n")),e.setEdge(i.start,i.end,o,r)}))};var bt=function(t){const e=Object.keys(t);for(let n=0;n<e.length;n++)pt[e[n]]=t[e[n]]},mt=function(t){v.info("Extracting classes"),G.clear();const e=K.a.parser;return e.yy=G,e.parse(t),G.getClasses()},vt=function(t,e){v.info("Drawing flowchart"),G.clear();const n=K.a.parser;n.yy=G;try{n.parse(t)}catch(t){v.debug("Parsing failed")}let r=G.getDirection();void 0===r&&(r="TD");const i=new S.a.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:r,marginx:20,marginy:20}).setDefaultEdgeLabel((function(){return{}}));let o;const s=G.getSubGraphs();for(let t=s.length-1;t>=0;t--)o=s[t],G.addVertex(o.id,o.title,"group",void 0,o.classes);const u=G.getVertices(),c=G.getEdges();let f=0;for(f=s.length-1;f>=0;f--){o=s[f],a.selectAll("cluster").append("text");for(let t=0;t<o.nodes.length;t++)i.setParent(o.nodes[t],o.id)}gt(u,i,e),yt(c,i);const h=new(0,Z.a.render);dt.addToRender(h),h.arrows().none=function(t,e,n,r){const i=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 0 0 L 0 0 z");Z.a.util.applyStyle(i,n[r+"Style"])},h.arrows().normal=function(t,e,n,r){t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowheadPath").style("stroke-width",1).style("stroke-dasharray","1,0")};const d=a.select(`[id="${e}"]`),p=a.select("#"+e+" g");h(p,i),p.selectAll("g.node").attr("title",(function(){return G.getTooltip(this.id)}));const g=l().flowchart,y=i.maxX-i.minX+16,b=i.maxY-i.minY+16;for(g.useMaxWidth?(d.attr("width","100%"),d.attr("style",`max-width: ${y}px;`)):(d.attr("height",b),d.attr("width",y)),d.attr("viewBox",`0 0 ${y} ${b}`),d.select("g").attr("transform",`translate(${8-i.minX}, ${8-i.minY})`),G.indexNodes("subGraph"+f),f=0;f<s.length;f++)if("undefined"!==(o=s[f]).title){const t=document.querySelectorAll("#"+e+" #"+o.id+" rect"),n=document.querySelectorAll("#"+e+" #"+o.id),r=t[0].x.baseVal.value,i=t[0].y.baseVal.value,s=t[0].width.baseVal.value,u=a.select(n[0]).select(".label");u.attr("transform",`translate(${r+s/2}, ${i+14})`),u.attr("id",e+"Text")}if(!g.htmlLabels){const t=document.querySelectorAll("#"+e+" .edgeLabel .label");for(let e=0;e<t.length;e++){const n=t[e],r=n.getBBox(),i=document.createElementNS("http://www.w3.org/2000/svg","rect");i.setAttribute("rx",0),i.setAttribute("ry",0),i.setAttribute("width",r.width),i.setAttribute("height",r.height),i.setAttribute("style","fill:#e8e8e8;"),n.insertBefore(i,n.firstChild)}}};const _t=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},wt=function(t,e,n){const r=e.text.replace(/<br\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.attr("fill",e.fill),void 0!==e.class&&i.attr("class",e.class);const a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.attr("fill",e.fill),a.text(r),i},xt=function(t,e){const n=t.append("polygon");var r,i,a,o,s;n.attr("points",(r=e.x,i=e.y,r+","+i+" "+(r+(a=50))+","+i+" "+(r+a)+","+(i+(o=20)-(s=7))+" "+(r+a-1.2*s)+","+(i+o)+" "+r+","+(i+o))),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,wt(t,e)};let kt=-1;const Et=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0}},At=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},St=function(){function t(t,e,n,i,a,o,s){r(e.append("text").attr("x",n+a/2).attr("y",i+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,i,a,o,s,u){const{actorFontSize:c,actorFontFamily:f}=u,l=t.split(/<br\/?>/gi);for(let t=0;t<l.length;t++){const u=t*c-c*(l.length-1)/2,h=e.append("text").attr("x",n+a/2).attr("y",i).style("text-anchor","middle").style("font-size",c).style("font-family",f);h.append("tspan").attr("x",n+a/2).attr("dy",u).text(l[t]),h.attr("y",i+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),r(h,s)}}function n(t,n,i,a,o,s,u,c){const f=n.append("switch"),l=f.append("foreignObject").attr("x",i).attr("y",a).attr("width",o).attr("height",s).append("div").style("display","table").style("height","100%").style("width","100%");l.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,f,i,a,o,s,u,c),r(l,u)}function r(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(r){return"fo"===r.textPlacement?n:"old"===r.textPlacement?t:e}}();var Mt={drawRect:_t,drawText:wt,drawLabel:xt,drawActor:function(t,e,n,r,i){const a=e+i.width/2,o=t.append("g");0===n&&(kt++,o.append("line").attr("id","actor"+kt).attr("x1",a).attr("y1",5).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));const s=At();s.x=e,s.y=n,s.fill="#eaeaea",s.width=i.width,s.height=i.height,s.class="actor",s.rx=3,s.ry=3,_t(o,s),St(i)(r,o,s.x,s.y,s.width,s.height,{class:"actor"},i)},anchorElement:function(t){return t.append("g")},drawActivation:function(t,e,n,r,i){const a=At(),o=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=n-e.starty,_t(o,a)},drawLoop:function(t,e,n,r){const i=t.append("g"),a=function(t,e,n,r){return i.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",r).attr("class","loopLine")};a(e.startx,e.starty,e.stopx,e.starty),a(e.stopx,e.starty,e.stopx,e.stopy),a(e.startx,e.stopy,e.stopx,e.stopy),a(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach((function(t){a(e.startx,t,e.stopx,t).style("stroke-dasharray","3, 3")}));let o=Et();o.text=n,o.x=e.startx,o.y=e.starty,o.labelMargin=15,o.class="labelText",xt(i,o),(o=Et()).text="[ "+e.title+" ]",o.x=e.startx+(e.stopx-e.startx)/2,o.y=e.starty+1.5*r.boxMargin,o.anchor="middle",o.class="loopText",wt(i,o),void 0!==e.sectionTitles&&e.sectionTitles.forEach((function(t,n){""!==t&&(o.text="[ "+t+" ]",o.y=e.sections[n]+1.5*r.boxMargin,wt(i,o))}))},drawBackgroundRect:function(t,e){_t(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},insertArrowHead:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},insertSequenceNumber:function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},insertArrowCrossHead:function(t){const e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},getTextObj:Et,getNoteRect:At},Tt=n(1),Dt=n.n(Tt);let Ct={},Ot=[];const Rt=[];let Nt="";const It=function(t,e,n){const r=Ct[t];r&&e===r.name&&null==n||(null==n&&(n=e),Ct[t]={name:e,description:n})},Bt=function(t,e,n,r){v.debug("Adding message from="+t+" to="+e+" message="+n+" type="+r),Ot.push({from:t,to:e,message:n,type:r})},Lt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23},Pt=function(t,e,n){const r={actor:t,placement:e,message:n},i=[].concat(t,t);Rt.push(r),Ot.push({from:i[0],to:i[1],message:n,type:Lt.NOTE,placement:e})},Ft=function(t){Nt=t},qt=function(t){if(t instanceof Array)t.forEach((function(t){qt(t)}));else switch(t.type){case"addActor":It(t.actor,t.actor,t.description);break;case"activeStart":case"activeEnd":Bt(t.actor,void 0,void 0,t.signalType);break;case"addNote":Pt(t.actor,t.placement,t.text);break;case"addMessage":Bt(t.from,t.to,t.msg,t.signalType);break;case"loopStart":Bt(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":Bt(void 0,void 0,void 0,t.signalType);break;case"rectStart":Bt(void 0,void 0,t.color,t.signalType);break;case"rectEnd":Bt(void 0,void 0,void 0,t.signalType);break;case"optStart":Bt(void 0,void 0,t.optText,t.signalType);break;case"optEnd":Bt(void 0,void 0,void 0,t.signalType);break;case"altStart":case"else":Bt(void 0,void 0,t.altText,t.signalType);break;case"altEnd":Bt(void 0,void 0,void 0,t.signalType);break;case"setTitle":Ft(t.text);break;case"parStart":case"and":Bt(void 0,void 0,t.parText,t.signalType);break;case"parEnd":Bt(void 0,void 0,void 0,t.signalType)}};var jt={addActor:It,addMessage:function(t,e,n,r){Ot.push({from:t,to:e,message:n,answer:r})},addSignal:Bt,getMessages:function(){return Ot},getActors:function(){return Ct},getActor:function(t){return Ct[t]},getActorKeys:function(){return Object.keys(Ct)},getTitle:function(){return Nt},clear:function(){Ct={},Ot=[]},LINETYPE:Lt,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:Pt,setTitle:Ft,apply:qt};Tt.parser.yy=jt;const Ut={diagramMarginX:50,diagramMarginY:30,actorMargin:50,width:150,height:65,actorFontSize:14,actorFontFamily:'"Open-Sans", "sans-serif"',boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!1,bottomMarginAdj:1,activationWidth:10,textPlacement:"tspan",showSequenceNumbers:!1},zt={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],init:function(){this.sequenceItems=[],this.activations=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,n,r){void 0===t[e]?t[e]=n:t[e]=r(n,t[e])},updateBounds:function(t,e,n,r){const i=this;let a=0;function o(o){return function(s){a++;const u=i.sequenceItems.length-a+1;i.updateVal(s,"starty",e-u*Ut.boxMargin,Math.min),i.updateVal(s,"stopy",r+u*Ut.boxMargin,Math.max),i.updateVal(zt.data,"startx",t-u*Ut.boxMargin,Math.min),i.updateVal(zt.data,"stopx",n+u*Ut.boxMargin,Math.max),"activation"!==o&&(i.updateVal(s,"startx",t-u*Ut.boxMargin,Math.min),i.updateVal(s,"stopx",n+u*Ut.boxMargin,Math.max),i.updateVal(zt.data,"starty",e-u*Ut.boxMargin,Math.min),i.updateVal(zt.data,"stopy",r+u*Ut.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,n,r){const i=Math.min(t,n),a=Math.max(t,n),o=Math.min(e,r),s=Math.max(e,r);this.updateVal(zt.data,"startx",i,Math.min),this.updateVal(zt.data,"starty",o,Math.min),this.updateVal(zt.data,"stopx",a,Math.max),this.updateVal(zt.data,"stopy",s,Math.max),this.updateBounds(i,o,a,s)},newActivation:function(t,e){const n=Tt.parser.yy.getActors()[t.from.actor],r=Vt(t.from.actor).length,i=n.x+Ut.width/2+(r-1)*Ut.activationWidth/2;this.activations.push({startx:i,starty:this.verticalPos+2,stopx:i+Ut.activationWidth,stopy:void 0,actor:t.from.actor,anchored:Mt.anchorElement(e)})},endActivation:function(t){const e=this.activations.map((function(t){return t.actor})).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},newLoop:function(t,e){this.sequenceItems.push({startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t,fill:e})},endLoop:function(){return this.sequenceItems.pop()},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push(zt.getVerticalPos()),e.sectionTitles.push(t),this.sequenceItems.push(e)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},Yt=function(t,e,n,r,i){const a=Mt.getNoteRect();a.x=e,a.y=n,a.width=i||Ut.width,a.class="note";let o=t.append("g");const s=Mt.drawRect(o,a),u=((t,e,n,r,i)=>{let a=0;const o=t.split(/<br\/?>/gi);for(const t of o){const o=Mt.getTextObj();o.x=e,o.y=n+a,o.textMargin=Ut.noteMargin,o.dy="1em",o.text=t,o.class="noteText";const s=Mt.drawText(r,o,i);a+=(s._groups||s)[0][0].getBBox().height}return a})(r.message,e-4,n+24,o,a.width-Ut.noteMargin);zt.insert(e,n,e+a.width,n+2*Ut.noteMargin+u),s.attr("height",u+2*Ut.noteMargin),zt.bumpVerticalPos(u+2*Ut.noteMargin)},Ht=function(t,e,n,r){for(let i=0;i<n.length;i++){const a=n[i];e[a].x=i*Ut.actorMargin+i*Ut.width,e[a].y=r,e[a].width=Ut.diagramMarginX,e[a].height=Ut.diagramMarginY,Mt.drawActor(t,e[a].x,r,e[a].description,Ut),zt.insert(e[a].x,r,e[a].x+Ut.width,Ut.height)}zt.bumpVerticalPos(Ut.height)},Vt=function(t){return zt.activations.filter((function(e){return e.actor===t}))},$t=function(t){const e=Tt.parser.yy.getActors(),n=Vt(t);return[n.reduce((function(t,e){return Math.min(t,e.startx)}),e[t].x+Ut.width/2),n.reduce((function(t,e){return Math.max(t,e.stopx)}),e[t].x+Ut.width/2)]};var Gt=function(t){Object.keys(t).forEach((function(e){Ut[e]=t[e]})),Ut.actorFontFamily=t.fontFamily},Wt=function(t,e){Tt.parser.yy.clear(),Tt.parser.parse(t+"\n"),zt.init();const n=a.select(`[id="${e}"]`);let r,i,o;const s=Tt.parser.yy.getActors(),u=Tt.parser.yy.getActorKeys(),c=Tt.parser.yy.getMessages(),f=Tt.parser.yy.getTitle();Ht(n,s,u,0),Mt.insertArrowHead(n),Mt.insertArrowCrossHead(n),Mt.insertSequenceNumber(n);let l=1;c.forEach((function(t){let e;switch(t.type){case Tt.parser.yy.LINETYPE.NOTE:zt.bumpVerticalPos(Ut.boxMargin),r=s[t.from].x,i=s[t.to].x,t.placement===Tt.parser.yy.PLACEMENT.RIGHTOF?Yt(n,r+(Ut.width+Ut.actorMargin)/2,zt.getVerticalPos(),t):t.placement===Tt.parser.yy.PLACEMENT.LEFTOF?Yt(n,r-(Ut.width+Ut.actorMargin)/2,zt.getVerticalPos(),t):t.to===t.from?Yt(n,r,zt.getVerticalPos(),t):(o=Math.abs(r-i)+Ut.actorMargin,Yt(n,(r+i+Ut.width-o)/2,zt.getVerticalPos(),t,o));break;case Tt.parser.yy.LINETYPE.ACTIVE_START:zt.newActivation(t,n);break;case Tt.parser.yy.LINETYPE.ACTIVE_END:!function(t,e){const r=zt.endActivation(t);r.starty+18>e&&(r.starty=e-6,e+=12),Mt.drawActivation(n,r,e,Ut,Vt(t.from.actor).length),zt.insert(r.startx,e-10,r.stopx,e)}(t,zt.getVerticalPos());break;case Tt.parser.yy.LINETYPE.LOOP_START:zt.bumpVerticalPos(Ut.boxMargin),zt.newLoop(t.message),zt.bumpVerticalPos(Ut.boxMargin+Ut.boxTextMargin);break;case Tt.parser.yy.LINETYPE.LOOP_END:e=zt.endLoop(),Mt.drawLoop(n,e,"loop",Ut),zt.bumpVerticalPos(Ut.boxMargin);break;case Tt.parser.yy.LINETYPE.RECT_START:zt.bumpVerticalPos(Ut.boxMargin),zt.newLoop(void 0,t.message),zt.bumpVerticalPos(Ut.boxMargin);break;case Tt.parser.yy.LINETYPE.RECT_END:const a=zt.endLoop();Mt.drawBackgroundRect(n,a),zt.bumpVerticalPos(Ut.boxMargin);break;case Tt.parser.yy.LINETYPE.OPT_START:zt.bumpVerticalPos(Ut.boxMargin),zt.newLoop(t.message),zt.bumpVerticalPos(Ut.boxMargin+Ut.boxTextMargin);break;case Tt.parser.yy.LINETYPE.OPT_END:e=zt.endLoop(),Mt.drawLoop(n,e,"opt",Ut),zt.bumpVerticalPos(Ut.boxMargin);break;case Tt.parser.yy.LINETYPE.ALT_START:zt.bumpVerticalPos(Ut.boxMargin),zt.newLoop(t.message),zt.bumpVerticalPos(Ut.boxMargin+Ut.boxTextMargin);break;case Tt.parser.yy.LINETYPE.ALT_ELSE:zt.bumpVerticalPos(Ut.boxMargin),e=zt.addSectionToLoop(t.message),zt.bumpVerticalPos(Ut.boxMargin);break;case Tt.parser.yy.LINETYPE.ALT_END:e=zt.endLoop(),Mt.drawLoop(n,e,"alt",Ut),zt.bumpVerticalPos(Ut.boxMargin);break;case Tt.parser.yy.LINETYPE.PAR_START:zt.bumpVerticalPos(Ut.boxMargin),zt.newLoop(t.message),zt.bumpVerticalPos(Ut.boxMargin+Ut.boxTextMargin);break;case Tt.parser.yy.LINETYPE.PAR_AND:zt.bumpVerticalPos(Ut.boxMargin),e=zt.addSectionToLoop(t.message),zt.bumpVerticalPos(Ut.boxMargin);break;case Tt.parser.yy.LINETYPE.PAR_END:e=zt.endLoop(),Mt.drawLoop(n,e,"par",Ut),zt.bumpVerticalPos(Ut.boxMargin);break;default:try{zt.bumpVerticalPos(Ut.messageMargin);const e=$t(t.from),a=$t(t.to),o=e[0]<=a[0]?1:0,s=e[0]<a[0]?0:1;r=e[o],i=a[s];const u=zt.getVerticalPos();!function(t,e,n,r,i,a){const o=t.append("g"),s=e+(n-e)/2;let u,c=0;const f=i.message.split(/<br\/?>/gi);for(const t of f)u=o.append("text").attr("x",s).attr("y",r-7+17*c).style("text-anchor","middle").attr("class","messageText").text(t.trim()),c++;const l=17*(c-1);let h,d=(u._groups||u)[0][0].getBBox().width;if(e===n){h=Ut.rightAngles?o.append("path").attr("d",`M ${e},${r+l} H ${e+Ut.width/2} V ${r+25+l} H ${e}`):o.append("path").attr("d","M "+e+","+(r+l)+" C "+(e+60)+","+(r-10+l)+" "+(e+60)+","+(r+30+l)+" "+e+","+(r+20+l)),zt.bumpVerticalPos(30+l);const t=Math.max(d/2,100);zt.insert(e-t,zt.getVerticalPos()-10+l,n+t,zt.getVerticalPos()+l)}else(h=o.append("line")).attr("x1",e),h.attr("y1",r),h.attr("x2",n),h.attr("y2",r),zt.insert(e,zt.getVerticalPos()-10+l,n,zt.getVerticalPos()+l);i.type===Tt.parser.yy.LINETYPE.DOTTED||i.type===Tt.parser.yy.LINETYPE.DOTTED_CROSS||i.type===Tt.parser.yy.LINETYPE.DOTTED_OPEN?(h.style("stroke-dasharray","3, 3"),h.attr("class","messageLine1")):h.attr("class","messageLine0");let p="";Ut.arrowMarkerAbsolute&&(p=(p=(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),h.attr("stroke-width",2),h.attr("stroke","black"),h.style("fill","none"),i.type!==Tt.parser.yy.LINETYPE.SOLID&&i.type!==Tt.parser.yy.LINETYPE.DOTTED||h.attr("marker-end","url("+p+"#arrowhead)"),i.type!==Tt.parser.yy.LINETYPE.SOLID_CROSS&&i.type!==Tt.parser.yy.LINETYPE.DOTTED_CROSS||h.attr("marker-end","url("+p+"#crosshead)"),Ut.showSequenceNumbers&&(h.attr("marker-start","url("+p+"#sequencenumber)"),o.append("text").attr("x",e).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("textLength","16px").attr("class","sequenceNumber").text(a))}(n,r,i,u,t,l);const c=e.concat(a);zt.insert(Math.min.apply(null,c),u,Math.max.apply(null,c),u)}catch(t){v.error("error while drawing message",t)}}[Tt.parser.yy.LINETYPE.SOLID_OPEN,Tt.parser.yy.LINETYPE.DOTTED_OPEN,Tt.parser.yy.LINETYPE.SOLID,Tt.parser.yy.LINETYPE.DOTTED,Tt.parser.yy.LINETYPE.SOLID_CROSS,Tt.parser.yy.LINETYPE.DOTTED_CROSS].includes(t.type)&&l++})),Ut.mirrorActors&&(zt.bumpVerticalPos(2*Ut.boxMargin),Ht(n,s,u,zt.getVerticalPos()));const h=zt.getBounds();v.debug("For line height fix Querying: #"+e+" .actor-line"),a.selectAll("#"+e+" .actor-line").attr("y2",h.stopy);let d=h.stopy-h.starty+2*Ut.diagramMarginY;Ut.mirrorActors&&(d=d-Ut.boxMargin+Ut.bottomMarginAdj);const p=h.stopx-h.startx+2*Ut.diagramMarginX;f&&n.append("text").text(f).attr("x",(h.stopx-h.startx)/2-2*Ut.diagramMarginX).attr("y",-25),Ut.useMaxWidth?(n.attr("height","100%"),n.attr("width","100%"),n.attr("style","max-width:"+p+"px;")):(n.attr("height",d),n.attr("width",p));const g=f?40:0;n.attr("viewBox",h.startx-Ut.diagramMarginX+" -"+(Ut.diagramMarginY+g)+" "+p+" "+(d+g))},Kt=n(16),Xt=n.n(Kt);const Zt=l();let Jt="",Qt="",te=[],ee="",ne=[],re=[],ie="";const ae=["active","done","crit","milestone"];let oe=[],se=!1;const ue=function(t,e,n){return t.isoWeekday()>=6&&n.indexOf("weekends")>=0||(n.indexOf(t.format("dddd").toLowerCase())>=0||n.indexOf(t.format(e.trim()))>=0)},ce=function(t,e,n){if(!n.length||t.manualEndTime)return;let r=d()(t.startTime,e,!0);r.add(1,"d");let i=d()(t.endTime,e,!0),a=fe(r,i,e,n);t.endTime=i.toDate(),t.renderEndTime=a},fe=function(t,e,n,r){let i=!1,a=null;for(;t.date()<=e.date();)i||(a=e.toDate()),(i=ue(t,n,r))&&e.add(1,"d"),t.add(1,"d");return a},le=function(t,e,n){n=n.trim();const r=/^after\s+([\d\w-]+)/.exec(n.trim());if(null!==r){const t=_e(r[1]);if(void 0===t){const t=new Date;return t.setHours(0,0,0,0),t}return t.endTime}let i=d()(n,e.trim(),!0);return i.isValid()?i.toDate():(v.debug("Invalid date:"+n),v.debug("With date format:"+e.trim()),new Date)},he=function(t,e){if(null!==t)switch(t[2]){case"s":e.add(t[1],"seconds");break;case"m":e.add(t[1],"minutes");break;case"h":e.add(t[1],"hours");break;case"d":e.add(t[1],"days");break;case"w":e.add(t[1],"weeks")}return e.toDate()},de=function(t,e,n,r){r=r||!1,n=n.trim();let i=d()(n,e.trim(),!0);return i.isValid()?(r&&i.add(1,"d"),i.toDate()):he(/^([\d]+)([wdhms])/.exec(n.trim()),d()(t))};let pe=0;const ge=function(t){return void 0===t?"task"+(pe+=1):t};let ye,be,me=[];const ve={},_e=function(t){const e=ve[t];return me[e]},we=function(){const t=function(t){const e=me[t];let n="";switch(me[t].raw.startTime.type){case"prevTaskEnd":const r=_e(e.prevTaskId);e.startTime=r.endTime;break;case"getStartDate":(n=le(0,Jt,me[t].raw.startTime.startData))&&(me[t].startTime=n)}return me[t].startTime&&(me[t].endTime=de(me[t].startTime,Jt,me[t].raw.endTime.data,se),me[t].endTime&&(me[t].processed=!0,me[t].manualEndTime=d()(me[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),ce(me[t],Jt,te))),me[t].processed};let e=!0;for(let n=0;n<me.length;n++)t(n),e=e&&me[n].processed;return e},xe=function(t,e){t.split(",").forEach((function(t){let n=_e(t);void 0!==n&&n.classes.push(e)}))},ke=function(t,e){oe.push((function(n){const r=document.querySelector(`[id="${t}"]`);null!==r&&r.addEventListener("click",(function(){e()}))})),oe.push((function(n){const r=document.querySelector(`[id="${t}-text"]`);null!==r&&r.addEventListener("click",(function(){e()}))}))};var Ee={clear:function(){ne=[],re=[],ie="",oe=[],ee="",pe=0,ye=void 0,be=void 0,me=[],Jt="",Qt="",te=[],se=!1},setDateFormat:function(t){Jt=t},getDateFormat:function(){return Jt},enableInclusiveEndDates:function(){se=!0},endDatesAreInclusive:function(){return se},setAxisFormat:function(t){Qt=t},getAxisFormat:function(){return Qt},setTitle:function(t){ee=t},getTitle:function(){return ee},addSection:function(t){ie=t,ne.push(t)},getSections:function(){return ne},getTasks:function(){let t=we();let e=0;for(;!t&&e<10;)t=we(),e++;return re=me},addTask:function(t,e){const n={section:ie,type:ie,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},r=function(t,e){let n;const r=(n=":"===e.substr(0,1)?e.substr(1,e.length):e).split(","),i={};Ae(r,i,ae);for(let t=0;t<r.length;t++)r[t]=r[t].trim();switch(r.length){case 1:i.id=ge(),i.startTime={type:"prevTaskEnd",id:t},i.endTime={data:r[0]};break;case 2:i.id=ge(),i.startTime={type:"getStartDate",startData:r[0]},i.endTime={data:r[1]};break;case 3:i.id=ge(r[0]),i.startTime={type:"getStartDate",startData:r[1]},i.endTime={data:r[2]}}return i}(be,e);n.raw.startTime=r.startTime,n.raw.endTime=r.endTime,n.id=r.id,n.prevTaskId=be,n.active=r.active,n.done=r.done,n.crit=r.crit,n.milestone=r.milestone;const i=me.push(n);be=n.id,ve[n.id]=i-1},findTaskById:_e,addTaskOrg:function(t,e){const n={section:ie,type:ie,description:t,task:t,classes:[]},r=function(t,e){let n;const r=(n=":"===e.substr(0,1)?e.substr(1,e.length):e).split(","),i={};Ae(r,i,ae);for(let t=0;t<r.length;t++)r[t]=r[t].trim();let a="";switch(r.length){case 1:i.id=ge(),i.startTime=t.endTime,a=r[0];break;case 2:i.id=ge(),i.startTime=le(0,Jt,r[0]),a=r[1];break;case 3:i.id=ge(r[0]),i.startTime=le(0,Jt,r[1]),a=r[2]}return a&&(i.endTime=de(i.startTime,Jt,a,se),i.manualEndTime=d()(a,"YYYY-MM-DD",!0).isValid(),ce(i,Jt,te)),i}(ye,e);n.startTime=r.startTime,n.endTime=r.endTime,n.id=r.id,n.active=r.active,n.done=r.done,n.crit=r.crit,n.milestone=r.milestone,ye=n,re.push(n)},setExcludes:function(t){te=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return te},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){!function(t,e,n){if("loose"!==Zt.securityLevel)return;if(void 0===e)return;let r=[];if("string"==typeof n){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<r.length;t++){let e=r[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),r[t]=e}}void 0!==_e(t)&&ke(t,()=>{window[e](...r)})}(t,e,n)})),xe(t,"clickable")},setLink:function(t,e){let n=e;"loose"!==Zt.securityLevel&&(n=Object(M.sanitizeUrl)(e)),t.split(",").forEach((function(t){void 0!==_e(t)&&ke(t,()=>{window.open(n,"_self")})})),xe(t,"clickable")},bindFunctions:function(t){oe.forEach((function(e){e(t)}))},durationToDate:he};function Ae(t,e,n){let r=!0;for(;r;)r=!1,n.forEach((function(n){const i=new RegExp("^\\s*"+n+"\\s*$");t[0].match(i)&&(e[n]=!0,t.shift(1),r=!0)}))}Kt.parser.yy=Ee;const Se={titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"'};let Me;var Te=function(t){Object.keys(t).forEach((function(e){Se[e]=t[e]}))},De=function(t,e){Kt.parser.yy.clear(),Kt.parser.parse(t);const n=document.getElementById(e);void 0===(Me=n.parentElement.offsetWidth)&&(Me=1200),void 0!==Se.useWidth&&(Me=Se.useWidth);const r=Kt.parser.yy.getTasks(),i=r.length*(Se.barHeight+Se.barGap)+2*Se.topPadding;n.setAttribute("height","100%"),n.setAttribute("viewBox","0 0 "+Me+" "+i);const o=a.select(`[id="${e}"]`),s=a.scaleTime().domain([a.min(r,(function(t){return t.startTime})),a.max(r,(function(t){return t.endTime}))]).rangeRound([0,Me-Se.leftPadding-Se.rightPadding]);let u=[];for(let t=0;t<r.length;t++)u.push(r[t].type);const c=u;function f(t){let e=t.length;const n={};for(;e;)n[t[--e]]=(n[t[e]]||0)+1;return n}u=function(t){const e={},n=[];for(let r=0,i=t.length;r<i;++r)e.hasOwnProperty(t[r])||(e[t[r]]=!0,n.push(t[r]));return n}(u),function(t,e,n){const r=Se.barHeight,i=r+Se.barGap,l=Se.topPadding,h=Se.leftPadding;a.scaleLinear().domain([0,u.length]).range(["#00B9FA","#F95002"]).interpolate(a.interpolateHcl);(function(t,e,n,r){let i=a.axisBottom(s).tickSize(-r+e+Se.gridLineStartPadding).tickFormat(a.timeFormat(Kt.parser.yy.getAxisFormat()||Se.axisFormat||"%Y-%m-%d"));o.append("g").attr("class","grid").attr("transform","translate("+t+", "+(r-50)+")").call(i).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em")})(h,l,0,n),function(t,e,n,r,i,a,c,f){o.append("g").selectAll("rect").data(t).enter().append("rect").attr("x",0).attr("y",(function(t,r){return r*e+n-2})).attr("width",(function(){return c-Se.rightPadding/2})).attr("height",e).attr("class",(function(t){for(let e=0;e<u.length;e++)if(t.type===u[e])return"section section"+e%Se.numberSectionStyles;return"section section0"}));const l=o.append("g").selectAll("rect").data(t).enter();l.append("rect").attr("id",(function(t){return t.id})).attr("rx",3).attr("ry",3).attr("x",(function(t){return t.milestone?s(t.startTime)+r+.5*(s(t.endTime)-s(t.startTime))-.5*i:s(t.startTime)+r})).attr("y",(function(t,r){return r*e+n})).attr("width",(function(t){return t.milestone?i:s(t.renderEndTime||t.endTime)-s(t.startTime)})).attr("height",i).attr("transform-origin",(function(t,a){return(s(t.startTime)+r+.5*(s(t.endTime)-s(t.startTime))).toString()+"px "+(a*e+n+.5*i).toString()+"px"})).attr("class",(function(t){let e="";t.classes.length>0&&(e=t.classes.join(" "));let n=0;for(let e=0;e<u.length;e++)t.type===u[e]&&(n=e%Se.numberSectionStyles);let r="";return t.active?t.crit?r+=" activeCrit":r=" active":t.done?r=t.crit?" doneCrit":" done":t.crit&&(r+=" crit"),0===r.length&&(r=" task"),t.milestone&&(r=" milestone "+r),r+=n,"task"+(r+=" "+e)})),l.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",Se.fontSize).attr("x",(function(t){let e=s(t.startTime),n=s(t.renderEndTime||t.endTime);t.milestone&&(e+=.5*(s(t.endTime)-s(t.startTime))-.5*i),t.milestone&&(n=e+i);const a=this.getBBox().width;return a>n-e?n+a+1.5*Se.leftPadding>c?e+r-5:n+r+5:(n-e)/2+e+r})).attr("y",(function(t,r){return r*e+Se.barHeight/2+(Se.fontSize/2-2)+n})).attr("text-height",i).attr("class",(function(t){const e=s(t.startTime);let n=s(t.endTime);t.milestone&&(n=e+i);const r=this.getBBox().width;let a="";t.classes.length>0&&(a=t.classes.join(" "));let o=0;for(let e=0;e<u.length;e++)t.type===u[e]&&(o=e%Se.numberSectionStyles);let f="";return t.active&&(f=t.crit?"activeCritText"+o:"activeText"+o),t.done?f=t.crit?f+" doneCritText"+o:f+" doneText"+o:t.crit&&(f=f+" critText"+o),t.milestone&&(f+=" milestoneText"),r>n-e?n+r+1.5*Se.leftPadding>c?a+" taskTextOutsideLeft taskTextOutside"+o+" "+f:a+" taskTextOutsideRight taskTextOutside"+o+" "+f+" width-"+r:a+" taskText taskText"+o+" "+f+" width-"+r}))}(t,i,l,h,r,0,e),function(t,e){const n=[];let r=0;for(let t=0;t<u.length;t++)n[t]=[u[t],(i=u[t],a=c,f(a)[i]||0)];var i,a;o.append("g").selectAll("text").data(n).enter().append("text").text((function(t){return t[0]})).attr("x",10).attr("y",(function(i,a){if(!(a>0))return i[1]*t/2+e;for(let o=0;o<a;o++)return r+=n[a-1][1],i[1]*t/2+r*t+e})).attr("class",(function(t){for(let e=0;e<u.length;e++)if(t[0]===u[e])return"sectionTitle sectionTitle"+e%Se.numberSectionStyles;return"sectionTitle"}))}(i,l),function(t,e,n,r){const i=o.append("g").attr("class","today"),a=new Date;i.append("line").attr("x1",s(a)+t).attr("x2",s(a)+t).attr("y1",Se.titleTopMargin).attr("y2",r-Se.titleTopMargin).attr("class","today")}(h,0,0,n)}(r,Me,i),void 0!==Se.useWidth&&n.setAttribute("width",Me),o.append("text").text(Kt.parser.yy.getTitle()).attr("x",Me/2).attr("y",Se.titleTopMargin).attr("class","titleText")},Ce=n(32),Oe=n.n(Ce);let Re=[],Ne={};const Ie=function(t){void 0===Ne[t]&&(Ne[t]={id:t,methods:[],members:[],annotations:[]})},Be=function(t,e){const n=Ne[t];if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?n.annotations.push(t.substring(2,t.length-2)):t.endsWith(")")?n.methods.push(t):t&&n.members.push(t)}};var Le={addClass:Ie,clear:function(){Re=[],Ne={}},getClass:function(t){return Ne[t]},getClasses:function(){return Ne},addAnnotation:function(t,e){Ne[t].annotations.push(e)},getRelations:function(){return Re},addRelation:function(t){v.debug("Adding relation: "+JSON.stringify(t)),Ie(t.id1),Ie(t.id2),Re.push(t)},addMember:Be,addMembers:function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach(e=>Be(t,e)))},cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3}},Pe=n(24),Fe=n.n(Pe);Pe.parser.yy=Le;const qe={};let je=0;const Ue={dividerMargin:10,padding:5,textHeight:10},ze=function(t){const e=Object.keys(qe);for(let n=0;n<e.length;n++)if(qe[e[n]].label===t)return e[n]};let Ye=0,He=0;const Ve=function(t,e){v.info("Rendering class "+e);const n=function(t,e,n){const r=t.append("tspan").attr("x",Ue.padding).text(e);n||r.attr("dy",Ue.textHeight)},r="classId"+je%He,i={id:r,label:e.id,width:0,height:0},a=t.append("g").attr("id",r).attr("class","classGroup"),o=a.append("text").attr("y",Ue.textHeight+Ue.padding).attr("x",0);let s=!0;e.annotations.forEach((function(t){const e=o.append("tspan").text("«"+t+"»");s||e.attr("dy",Ue.textHeight),s=!1})),console.warn("classDef.id",e.id),console.warn("isFirst",s);const u=o.append("tspan").text(e.id).attr("class","title");s||u.attr("dy",Ue.textHeight);const c=o.node().getBBox().height,f=a.append("line").attr("x1",0).attr("y1",Ue.padding+c+Ue.dividerMargin/2).attr("y2",Ue.padding+c+Ue.dividerMargin/2),l=a.append("text").attr("x",Ue.padding).attr("y",c+Ue.dividerMargin+Ue.textHeight).attr("fill","white").attr("class","classText");console.warn(e.id,c,Ue.dividerMargin,Ue.textHeight),s=!0,e.members.forEach((function(t){n(l,t,s),s=!1}));const h=l.node().getBBox(),d=a.append("line").attr("x1",0).attr("y1",Ue.padding+c+Ue.dividerMargin+h.height).attr("y2",Ue.padding+c+Ue.dividerMargin+h.height),p=a.append("text").attr("x",Ue.padding).attr("y",c+2*Ue.dividerMargin+h.height+Ue.textHeight).attr("fill","white").attr("class","classText");s=!0,e.methods.forEach((function(t){n(p,t,s),s=!1}));const g=a.node().getBBox(),y=a.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",g.width+2*Ue.padding).attr("height",g.height+Ue.padding+.5*Ue.dividerMargin).node().getBBox().width;return o.node().childNodes.forEach((function(t){t.setAttribute("x",(y-t.getBBox().width)/2)})),f.attr("x2",y),d.attr("x2",y),i.width=y,i.height=g.height+Ue.padding+.5*Ue.dividerMargin,qe[r]=i,je++,i};var $e=function(t){Object.keys(t).forEach((function(e){Ue[e]=t[e]}))},Ge=function(t,e){Pe.parser.yy.clear(),Pe.parser.parse(t),v.info("Rendering diagram "+t);const n=a.select(`[id='${e}']`);var r;(r=n).append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),r.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),r.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),r.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z");const i=new S.a.Graph({multigraph:!0});i.setGraph({isMultiGraph:!0}),i.setDefaultEdgeLabel((function(){return{}}));const o=Le.getClasses(),s=Object.keys(o);He=s.length;for(let t=0;t<s.length;t++){const e=o[s[t]],r=Ve(n,e);i.setNode(r.id,r),v.info("Org height: "+r.height)}Le.getRelations().forEach((function(t){v.info("tjoho"+ze(t.id1)+ze(t.id2)+JSON.stringify(t)),i.setEdge(ze(t.id1),ze(t.id2),{relation:t})})),Oe.a.layout(i),i.nodes().forEach((function(t){void 0!==t&&void 0!==i.node(t)&&(v.debug("Node "+t+": "+JSON.stringify(i.node(t))),a.select("#"+t).attr("transform","translate("+(i.node(t).x-i.node(t).width/2)+","+(i.node(t).y-i.node(t).height/2)+" )"))})),i.edges().forEach((function(t){void 0!==t&&void 0!==i.edge(t)&&(v.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(i.edge(t))),function(t,e,n){const r=function(t){switch(t){case Le.relationType.AGGREGATION:return"aggregation";case Le.relationType.EXTENSION:return"extension";case Le.relationType.COMPOSITION:return"composition";case Le.relationType.DEPENDENCY:return"dependency"}};e.points=e.points.filter(t=>!Number.isNaN(t.y));const i=e.points,o=a.line().x((function(t){return t.x})).y((function(t){return t.y})).curve(a.curveBasis),s=t.append("path").attr("d",o(i)).attr("id","edge"+Ye).attr("class","relation");let u,c,f="";Ue.arrowMarkerAbsolute&&(f=(f=(f=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),"none"!==n.relation.type1&&s.attr("marker-start","url("+f+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&s.attr("marker-end","url("+f+"#"+r(n.relation.type2)+"End)");const l=e.points.length;let h=E.calcLabelPosition(e.points);u=h.x,c=h.y;let d,p,g,y;Ue.padding,Ue.padding,Ue.padding,Ue.padding;if(l%2!=0&&l>1){let t=E.calcCardinalityPosition("none"!==n.relation.type1,e.points,e.points[0]),r=E.calcCardinalityPosition("none"!==n.relation.type2,e.points,e.points[l-1]);v.debug("cardinality_1_point "+JSON.stringify(t)),v.debug("cardinality_2_point "+JSON.stringify(r)),d=t.x,p=t.y,g=r.x,y=r.y}if(void 0!==n.title){const e=t.append("g").attr("class","classLabel"),r=e.append("text").attr("class","label").attr("x",u).attr("y",c).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=r;const i=r.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",i.x-Ue.padding/2).attr("y",i.y-Ue.padding/2).attr("width",i.width+Ue.padding).attr("height",i.height+Ue.padding)}if(v.info("Rendering relation "+JSON.stringify(n)),void 0!==n.relationTitle1&&"none"!==n.relationTitle1){t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",d).attr("y",p).attr("fill","black").attr("font-size","6").text(n.relationTitle1)}if(void 0!==n.relationTitle2&&"none"!==n.relationTitle2){t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",g).attr("y",y).attr("fill","black").attr("font-size","6").text(n.relationTitle2)}Ye++}(n,i.edge(t),i.edge(t).relation))})),n.attr("height","100%"),n.attr("width",`${1.5*i.graph().width+20}`),n.attr("viewBox","-10 -10 "+(i.graph().width+20)+" "+(i.graph().height+20))};let We=[];let Ke={root:{relations:[],states:{},documents:{}}},Xe=Ke.root,Ze=0;const Je=function(t,e,n,r,i){void 0===Xe.states[t]?Xe.states[t]={id:t,descriptions:[],type:e,doc:n,note:i}:(Xe.states[t].doc||(Xe.states[t].doc=n),Xe.states[t].type||(Xe.states[t].type=e)),r&&en(t,r.trim()),i&&(Xe.states[t].note=i)},Qe=function(){Xe=(Ke={root:{relations:[],states:{},documents:{}}}).root},tn=function(t,e,n){let r=t,i=e,a="default",o="default";"[*]"===t&&(r="start"+ ++Ze,a="start"),"[*]"===e&&(i="end"+Ze,o="end"),Je(r,a),Je(i,o),Xe.relations.push({id1:r,id2:i,title:n})},en=function(t,e){const n=Xe.states[t];let r=e;":"===r[0]&&(r=r.substr(1).trim()),n.descriptions.push(r)};let nn=0;var rn={addState:Je,clear:Qe,getState:function(t){return Xe.states[t]},getStates:function(){return Xe.states},getRelations:function(){return Xe.relations},addRelation:tn,getDividerId:()=>"divider-id-"+ ++nn,cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:function(){v.info("Documents = ",Ke)},getRootDoc:()=>We,setRootDoc:t=>{v.info("Setting root doc",t),We=t},extract:t=>{Qe(),t.forEach(t=>{"state"===t.stmt&&Je(t.id,t.type,t.doc,t.description,t.note),"relation"===t.stmt&&tn(t.state1.id,t.state2.id,t.description)})}},an=n(25),on=n.n(an);const sn={};var un=(t,e)=>{sn[t]=e};const cn=(t,e)=>{const n=t.append("text").attr("x",2*l().state.padding).attr("y",l().state.textHeight+1.5*l().state.padding).attr("font-size",l().state.fontSize).attr("class","state-title").text(e.id).node().getBBox(),r=n.height,i=t.append("text").attr("x",l().state.padding).attr("y",r+.2*l().state.padding+l().state.dividerMargin+l().state.textHeight).attr("class","state-description");let a=!0;e.descriptions.forEach((function(t){!function(t,e,n){const r=t.append("tspan").attr("x",2*l().state.padding).text(e);n||r.attr("dy",l().state.textHeight)}(i,t,a),a=!1}));const o=t.append("line").attr("x1",l().state.padding).attr("y1",l().state.padding+r+l().state.dividerMargin/2).attr("y2",l().state.padding+r+l().state.dividerMargin/2).attr("class","descr-divider"),s=i.node().getBBox();console.warn(s.width,n.width);const u=Math.max(s.width,n.width);return o.attr("x2",u+3*l().state.padding),t.insert("rect",":first-child").attr("x",l().state.padding).attr("y",l().state.padding).attr("width",u+2*l().state.padding).attr("height",s.height+r+2*l().state.padding).attr("rx",l().state.radius),t},fn=(t,e)=>{const n=t.append("text").attr("x",2*l().state.padding).attr("y",l().state.titleShift).attr("font-size",l().state.fontSize).attr("class","state-title").text(e.id),r=(n.node().getBBox().height,1-l().state.textHeight),i=t.append("line").attr("x1",0).attr("y1",r).attr("y2",r).attr("class","descr-divider"),a=t.node().getBBox();return n.attr("x",a.width/2-n.node().getBBox().width/2),i.attr("x2",a.width+l().state.padding),t.insert("rect",":first-child").attr("x",a.x).attr("y",r).attr("class","composit").attr("width",a.width+l().state.padding).attr("height",a.height+l().state.textHeight+l().state.titleShift+1).attr("rx","0"),t.insert("rect",":first-child").attr("x",a.x).attr("y",l().state.titleShift-l().state.textHeight-l().state.padding).attr("width",a.width+l().state.padding).attr("height",3*l().state.textHeight).attr("rx",l().state.radius),t.insert("rect",":first-child").attr("x",a.x).attr("y",l().state.titleShift-l().state.textHeight-l().state.padding).attr("width",a.width+l().state.padding).attr("height",a.height+3+2*l().state.textHeight).attr("rx",l().state.radius),t},ln=(t,e)=>{e.attr("class","state-note");const n=e.append("rect").attr("x",0).attr("y",l().state.padding),r=e.append("g"),{textWidth:i,textHeight:a}=((t,e,n,r)=>{let i=0;const a=r.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let o=t.replace(/\r\n/g,"<br/>");const s=(o=o.replace(/\n/g,"<br/>")).split(/<br\/?>/gi);for(const t of s){const r=t.trim();if(r.length>0){const t=a.append("tspan");t.text(r),i+=t.node().getBBox().height,t.attr("x",e+l().state.noteMargin),t.attr("y",n+i+1.25*l().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}})(t,0,0,r);return n.attr("height",a+2*l().state.noteMargin),n.attr("width",i+2*l().state.noteMargin),n};const hn=function(t,e,n,r){const i=e.id,a={id:i,label:e.id,width:0,height:0},o=t.append("g").attr("id",i).attr("class","stateGroup");"start"===e.type&&(t=>t.append("circle").style("stroke","black").style("fill","black").attr("r",l().state.sizeUnit).attr("cx",l().state.padding+l().state.sizeUnit).attr("cy",l().state.padding+l().state.sizeUnit))(o),"end"===e.type&&(t=>(t.append("circle").style("stroke","black").style("fill","white").attr("r",l().state.sizeUnit+l().state.miniPadding).attr("cx",l().state.padding+l().state.sizeUnit+l().state.miniPadding).attr("cy",l().state.padding+l().state.sizeUnit+l().state.miniPadding),t.append("circle").style("stroke","black").style("fill","black").attr("r",l().state.sizeUnit).attr("cx",l().state.padding+l().state.sizeUnit+2).attr("cy",l().state.padding+l().state.sizeUnit+2)))(o),"fork"!==e.type&&"join"!==e.type||((t,e)=>{let n=l().state.forkWidth,r=l().state.forkHeight;if(e.parentId){let t=n;n=r,r=t}t.append("rect").style("stroke","black").style("fill","black").attr("width",n).attr("height",r).attr("x",l().state.padding).attr("y",l().state.padding)})(o,e),"note"===e.type&&ln(e.note.text,o),"divider"===e.type&&(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",l().state.textHeight).attr("class","divider").attr("x2",2*l().state.textHeight).attr("y1",0).attr("y2",0))(o),"default"===e.type&&0===e.descriptions.length&&((t,e)=>{const n=t.append("text").attr("x",2*l().state.padding).attr("y",l().state.textHeight+2*l().state.padding).attr("font-size",l().state.fontSize).attr("class","state-title").text(e.id),r=n.node().getBBox();t.insert("rect",":first-child").attr("x",l().state.padding).attr("y",l().state.padding).attr("width",r.width+2*l().state.padding).attr("height",r.height+2*l().state.padding).attr("rx",l().state.radius)})(o,e),"default"===e.type&&e.descriptions.length>0&&cn(o,e);const s=o.node().getBBox();return a.width=s.width+2*l().state.padding,a.height=s.height+2*l().state.padding,un(i,a),a};let dn=0;an.parser.yy=rn;let pn,gn=0;const yn={},bn=t=>t?t.length*pn.fontSizeFactor:1,mn=(t,e,n)=>{const r=new S.a.Graph({compound:!0});n?r.setGraph({rankdir:"LR",compound:!0,rankdir:"LR",ranker:"tight-tree",ranksep:pn.edgeLengthFactor}):r.setGraph({rankdir:"TB",compound:!0,ranksep:pn.edgeLengthFactor,ranker:"tight-tree"}),r.setDefaultEdgeLabel((function(){return{}})),rn.extract(t);const i=rn.getStates(),o=rn.getRelations(),s=Object.keys(i);gn=s.length;for(let t=0;t<s.length;t++){const a=i[s[t]];let o;if(n&&(a.parentId=n),a.doc){let t=e.append("g").attr("id",a.id).attr("class","stateGroup");o=mn(a.doc,t,a.id);{let e=(t=fn(t,a)).node().getBBox();o.width=e.width,o.height=e.height+2*pn.padding,yn[a.id]={y:pn.compositTitleSize}}}else o=hn(e,a);if(a.note){const t={descriptions:[],id:a.id+"-note",note:a.note,type:"note"},n=hn(e,t);"left of"===a.note.position?(r.setNode(o.id+"-note",n),r.setNode(o.id,o)):(r.setNode(o.id,o),r.setNode(o.id+"-note",n)),r.setParent(o.id,o.id+"-group"),r.setParent(o.id+"-note",o.id+"-group")}else r.setNode(o.id,o)}v.info("Count=",r.nodeCount()),o.forEach((function(t){r.setEdge(t.id1,t.id2,{relation:t,width:bn(t.title),height:pn.labelHeight,labelpos:"c"})})),Oe.a.layout(r),v.debug("Graph after layout",r.nodes());const u=e.node();r.nodes().forEach((function(t){if(void 0!==t&&void 0!==r.node(t)){v.warn("Node "+t+": "+JSON.stringify(r.node(t))),a.select("#"+u.id+" #"+t).attr("transform","translate("+(r.node(t).x-r.node(t).width/2)+","+(r.node(t).y+(yn[t]?yn[t].y:0)-r.node(t).height/2)+" )"),a.select("#"+u.id+" #"+t).attr("data-x-shift",r.node(t).x-r.node(t).width/2),document.querySelectorAll("#"+u.id+" #"+t+" .divider").forEach(t=>{const e=t.parentElement;let n=0,r=0;e&&(e.parentElement&&(n=e.parentElement.getBBox().width),r=parseInt(e.getAttribute("data-x-shift"),10),Number.isNaN(r)&&(r=0)),t.setAttribute("x1",0-r),t.setAttribute("x2",n-r)})}else v.debug("No Node "+t+": "+JSON.stringify(r.node(t)))}));let c=u.getBBox();r.edges().forEach((function(t){void 0!==t&&void 0!==r.edge(t)&&(v.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(r.edge(t))),function(t,e,n){e.points=e.points.filter(t=>!Number.isNaN(t.y));const r=e.points,i=a.line().x((function(t){return t.x})).y((function(t){return t.y})).curve(a.curveBasis),o=t.append("path").attr("d",i(r)).attr("id","edge"+dn).attr("class","transition");let s="";if(l().state.arrowMarkerAbsolute&&(s=(s=(s=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),o.attr("marker-end","url("+s+"#"+function(t){switch(t){case rn.relationType.AGGREGATION:return"aggregation";case rn.relationType.EXTENSION:return"extension";case rn.relationType.COMPOSITION:return"composition";case rn.relationType.DEPENDENCY:return"dependency"}}(rn.relationType.DEPENDENCY)+"End)"),void 0!==n.title){const r=t.append("g").attr("class","stateLabel"),i=r.append("text").attr("text-anchor","middle").text(n.title),{x:a,y:o}=E.calcLabelPosition(e.points);i.attr("x",a).attr("y",o);const s=i.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",s.x-l().state.padding/2).attr("y",s.y-l().state.padding/2).attr("width",s.width+l().state.padding).attr("height",s.height+l().state.padding)}dn++}(e,r.edge(t),r.edge(t).relation))})),c=u.getBBox(),console.warn("Diagram node",u.id);const f={id:n||"root",label:n||"root",width:0,height:0};return f.width=c.width+2*pn.padding,f.height=c.height+2*pn.padding,v.info("Doc rendered",f,r),f};var vn=function(t){},_n=function(t,e){pn=l().state,an.parser.yy.clear(),an.parser.parse(t),v.debug("Rendering diagram "+t);const n=a.select(`[id='${e}']`);n.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z"),new S.a.Graph({multigraph:!1,compound:!0,rankdir:"RL"}).setDefaultEdgeLabel((function(){return{}}));const r=rn.getRootDoc(),i=(mn(r,n),n.node().getBBox());n.attr("height","100%"),n.attr("style",`width: ${3*i.width+2*pn.padding};`),n.attr("viewBox",`${-1*pn.padding} ${-1*pn.padding} `+(1.5*i.width+2*pn.padding)+" "+(i.height+5*pn.padding))},wn=n(106),xn=n.n(wn);let kn={},En=null,An={master:En},Sn="master",Mn="LR",Tn=0;function Dn(){return xn()({length:7,characters:"0123456789abcdef"})}function Cn(t,e){for(v.debug("Entering isfastforwardable:",t.id,e.id);t.seq<=e.seq&&t!==e&&null!=e.parent;){if(Array.isArray(e.parent))return v.debug("In merge commit:",e.parent),Cn(t,kn[e.parent[0]])||Cn(t,kn[e.parent[1]]);e=kn[e.parent]}return v.debug(t.id,e.id),t.id===e.id}let On={};function Rn(t,e,n){const r=t.indexOf(e);-1===r?t.push(n):t.splice(r,1,n)}const Nn=function(){const t=Object.keys(kn).map((function(t){return kn[t]}));return t.forEach((function(t){v.debug(t.id)})),Q.a.orderBy(t,["seq"],["desc"])};var In={setDirection:function(t){Mn=t},setOptions:function(t){v.debug("options str",t),t=(t=t&&t.trim())||"{}";try{On=JSON.parse(t)}catch(t){v.error("error while parsing gitGraph options",t.message)}},getOptions:function(){return On},commit:function(t){const e={id:Dn(),message:t,seq:Tn++,parent:null==En?null:En.id};En=e,kn[e.id]=e,An[Sn]=e.id,v.debug("in pushCommit "+e.id)},branch:function(t){An[t]=null!=En?En.id:null,v.debug("in createBranch")},merge:function(t){const e=kn[An[Sn]],n=kn[An[t]];if(function(t,e){return t.seq>e.seq&&Cn(e,t)}(e,n))v.debug("Already merged");else{if(Cn(e,n))An[Sn]=An[t],En=kn[An[Sn]];else{const e={id:Dn(),message:"merged branch "+t+" into "+Sn,seq:Tn++,parent:[null==En?null:En.id,An[t]]};En=e,kn[e.id]=e,An[Sn]=e.id}v.debug(An),v.debug("in mergeBranch")}},checkout:function(t){v.debug("in checkout");const e=An[Sn=t];En=kn[e]},reset:function(t){v.debug("in reset",t);const e=t.split(":")[0];let n=parseInt(t.split(":")[1]),r="HEAD"===e?En:kn[An[e]];for(v.debug(r,n);n>0;)if(n--,!(r=kn[r.parent])){const t="Critical error - unique parent commit not found during reset";throw v.error(t),t}En=r,An[Sn]=r.id},prettyPrint:function(){v.debug(kn),function t(e){const n=Q.a.maxBy(e,"seq");let r="";e.forEach((function(t){r+=t===n?"\t*":"\t|"}));const i=[r,n.id,n.seq];for(let t in An)An[t]===n.id&&i.push(t);if(v.debug(i.join(" ")),Array.isArray(n.parent)){const t=kn[n.parent[0]];Rn(e,n,t),e.push(kn[n.parent[1]])}else{if(null==n.parent)return;{const t=kn[n.parent];Rn(e,n,t)}}t(e=Q.a.uniqBy(e,"id"))}([Nn()[0]])},clear:function(){kn={},An={master:En=null},Sn="master",Tn=0},getBranchesAsObjArray:function(){const t=[];for(let e in An)t.push({name:e,commit:kn[An[e]]});return t},getBranches:function(){return An},getCommits:function(){return kn},getCommitsArray:Nn,getCurrentBranch:function(){return Sn},getDirection:function(){return Mn},getHead:function(){return En}},Bn=n(42),Ln=n.n(Bn);let Pn,Fn={},qn={nodeSpacing:150,nodeFillColor:"yellow",nodeStrokeWidth:2,nodeStrokeColor:"grey",lineStrokeWidth:4,branchOffset:50,lineColor:"grey",leftMargin:50,branchColors:["#442f74","#983351","#609732","#AA9A39"],nodeRadius:10,nodeLabel:{width:75,height:100,x:-25,y:0}},jn={};function Un(t,e,n,r){const i=x(r,a.curveBasis),o=qn.branchColors[n%qn.branchColors.length],s=a.line().x((function(t){return Math.round(t.x)})).y((function(t){return Math.round(t.y)})).curve(i);t.append("svg:path").attr("d",s(e)).style("stroke",o).style("stroke-width",qn.lineStrokeWidth).style("fill","none")}function zn(t,e){e=e||t.node().getBBox();const n=t.node().getCTM();return{left:n.e+e.x*n.a,top:n.f+e.y*n.d,width:e.width,height:e.height}}function Yn(t,e,n,r,i){v.debug("svgDrawLineForCommits: ",e,n);const a=zn(t.select("#node-"+e+" circle")),o=zn(t.select("#node-"+n+" circle"));switch(r){case"LR":if(a.left-o.left>qn.nodeSpacing){const e={x:a.left-qn.nodeSpacing,y:o.top+o.height/2};Un(t,[e,{x:o.left+o.width,y:o.top+o.height/2}],i,"linear"),Un(t,[{x:a.left,y:a.top+a.height/2},{x:a.left-qn.nodeSpacing/2,y:a.top+a.height/2},{x:a.left-qn.nodeSpacing/2,y:e.y},e],i)}else Un(t,[{x:a.left,y:a.top+a.height/2},{x:a.left-qn.nodeSpacing/2,y:a.top+a.height/2},{x:a.left-qn.nodeSpacing/2,y:o.top+o.height/2},{x:o.left+o.width,y:o.top+o.height/2}],i);break;case"BT":if(o.top-a.top>qn.nodeSpacing){const e={x:o.left+o.width/2,y:a.top+a.height+qn.nodeSpacing};Un(t,[e,{x:o.left+o.width/2,y:o.top}],i,"linear"),Un(t,[{x:a.left+a.width/2,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+a.height+qn.nodeSpacing/2},{x:o.left+o.width/2,y:e.y-qn.nodeSpacing/2},e],i)}else Un(t,[{x:a.left+a.width/2,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+qn.nodeSpacing/2},{x:o.left+o.width/2,y:o.top-qn.nodeSpacing/2},{x:o.left+o.width/2,y:o.top}],i)}}function Hn(t,e){return t.select(e).node().cloneNode(!0)}function Vn(t,e,n,r){let i;const a=Object.keys(Fn).length;if("string"==typeof e)do{if(i=Fn[e],v.debug("in renderCommitHistory",i.id,i.seq),t.select("#node-"+e).size()>0)return;let o;t.append((function(){return Hn(t,"#def-commit")})).attr("class","commit").attr("id",(function(){return"node-"+i.id})).attr("transform",(function(){switch(r){case"LR":return"translate("+(i.seq*qn.nodeSpacing+qn.leftMargin)+", "+Pn*qn.branchOffset+")";case"BT":return"translate("+(Pn*qn.branchOffset+qn.leftMargin)+", "+(a-i.seq)*qn.nodeSpacing+")"}})).attr("fill",qn.nodeFillColor).attr("stroke",qn.nodeStrokeColor).attr("stroke-width",qn.nodeStrokeWidth);for(let t in n)if(n[t].commit===i){o=n[t];break}o&&(v.debug("found branch ",o.name),t.select("#node-"+i.id+" p").append("xhtml:span").attr("class","branch-label").text(o.name+", ")),t.select("#node-"+i.id+" p").append("xhtml:span").attr("class","commit-id").text(i.id),""!==i.message&&"BT"===r&&t.select("#node-"+i.id+" p").append("xhtml:span").attr("class","commit-msg").text(", "+i.message),e=i.parent}while(e&&Fn[e]);Array.isArray(e)&&(v.debug("found merge commmit",e),Vn(t,e[0],n,r),Pn++,Vn(t,e[1],n,r),Pn--)}function $n(t,e,n,r){for(r=r||0;e.seq>0&&!e.lineDrawn;)"string"==typeof e.parent?(Yn(t,e.id,e.parent,n,r),e.lineDrawn=!0,e=Fn[e.parent]):Array.isArray(e.parent)&&(Yn(t,e.id,e.parent[0],n,r),Yn(t,e.id,e.parent[1],n,r+1),$n(t,Fn[e.parent[1]],n,r+1),e.lineDrawn=!0,e=Fn[e.parent[0]])}var Gn=function(t){jn=t},Wn=function(t,e,n){try{const r=Ln.a.parser;r.yy=In,v.debug("in gitgraph renderer",t+"\n","id:",e,n),r.parse(t+"\n"),qn=Q.a.assign(qn,jn,In.getOptions()),v.debug("effective options",qn);const i=In.getDirection();Fn=In.getCommits();const o=In.getBranchesAsObjArray();"BT"===i&&(qn.nodeLabel.x=o.length*qn.branchOffset,qn.nodeLabel.width="100%",qn.nodeLabel.y=-2*qn.nodeRadius);const s=a.select(`[id="${e}"]`);!function(t){t.append("defs").append("g").attr("id","def-commit").append("circle").attr("r",qn.nodeRadius).attr("cx",0).attr("cy",0),t.select("#def-commit").append("foreignObject").attr("width",qn.nodeLabel.width).attr("height",qn.nodeLabel.height).attr("x",qn.nodeLabel.x).attr("y",qn.nodeLabel.y).attr("class","node-label").attr("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility").append("p").html("")}(s),Pn=1;for(let t in o){const e=o[t];Vn(s,e.commit.id,o,i),$n(s,e.commit,i),Pn++}s.attr("height",(function(){return"BT"===i?Object.keys(Fn).length*qn.nodeSpacing:(o.length+1)*qn.branchOffset}))}catch(t){v.error("Error while rendering gitgraph"),v.error(t.message)}},Kn="",Xn=!1;var Zn={setMessage:t=>{v.debug("Setting message to: "+t),Kn=t},getMessage:()=>Kn,setInfo:t=>{Xn=t},getInfo:()=>Xn},Jn=n(43),Qn=n.n(Jn);const tr={};var er=function(t){Object.keys(t).forEach((function(e){tr[e]=t[e]}))},nr=(t,e,n)=>{try{const r=Qn.a.parser;r.yy=Zn,v.debug("Renering info diagram\n"+t),r.parse(t),v.debug("Parsed info diagram");const i=a.select("#"+e);i.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+n),i.attr("height",100),i.attr("width",400)}catch(t){v.error("Error while rendering info diagram"),v.error(t.message)}};let rr={},ir="";var ar={addSection:function(t,e){void 0===rr[t]&&(rr[t]=e,v.debug("Added new section :",t))},getSections:()=>rr,cleanupValue:function(t){return":"===t.substring(0,1)?(t=t.substring(1).trim(),Number(t.trim())):Number(t.trim())},clear:function(){rr={},ir=""},setTitle:function(t){ir=t},getTitle:function(){return ir}},or=n(44),sr=n.n(or);const ur={};let cr;var fr=function(t){Object.keys(t).forEach((function(e){ur[e]=t[e]}))},lr=(t,e,n)=>{try{const n=sr.a.parser;n.yy=ar,v.debug("Rendering info diagram\n"+t),n.yy.clear(),n.parse(t),v.debug("Parsed info diagram");const l=document.getElementById(e);void 0===(cr=l.parentElement.offsetWidth)&&(cr=1200),void 0!==ur.useWidth&&(cr=ur.useWidth);const h=450;l.setAttribute("height","100%"),l.setAttribute("viewBox","0 0 "+cr+" "+h);var r=cr,i=Math.min(r,450)/2-40,o=a.select("#"+e).append("svg").attr("width",r).attr("height",450).append("g").attr("transform","translate("+r/2+",225)"),s=ar.getSections();v.info(s);var u=a.scaleOrdinal().domain(s).range(a.schemeSet2),c=a.pie().value((function(t){return t.value}))(a.entries(s)),f=a.arc().innerRadius(0).outerRadius(i);o.selectAll("mySlices").data(c).enter().append("path").attr("d",f).attr("fill",(function(t){return u(t.data.key)})).attr("stroke","black").style("stroke-width","2px").style("opacity",.7),o.selectAll("mySlices").data(c).enter().append("text").text((function(t){return t.data.key})).attr("transform",(function(t){return"translate("+f.centroid(t)+")"})).style("text-anchor","middle").attr("class","slice").style("font-size",17),o.append("text").text(n.yy.getTitle()).attr("x",0).attr("y",-(h-50)/2).attr("class","pieTitleText")}catch(t){v.error("Error while rendering info diagram"),v.error(t.message)}};const hr={};for(const t of["default","forest","dark","neutral"])hr[t]=n(204)(`./${t}/index.scss`);const dr={theme:"default",themeCSS:void 0,fontFamily:'"trebuchet ms", verdana, arial;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!0,curve:"linear"},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"},class:{},git:{},state:{dividerMargin:10,sizeUnit:5,padding:5,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,padding:5,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5}};_(dr.logLevel),f(dr);const pr=function(t){const e=Object.keys(t);for(let n=0;n<e.length;n++)if("object"==typeof t[e[n]]&&null!=t[e[n]]){const r=Object.keys(t[e[n]]);for(let i=0;i<r.length;i++)v.debug("Setting conf ",e[n],"-",r[i]),void 0===dr[e[n]]&&(dr[e[n]]={}),v.debug("Setting config: "+e[n]+" "+r[i]+" to "+t[e[n]][r[i]]),dr[e[n]][r[i]]=t[e[n]][r[i]]}else dr[e[n]]=t[e[n]]};var gr={render:function(t,e,n,r){if(void 0!==r)r.innerHTML="",a.select(r).append("div").attr("id","d"+t).attr("style","font-family: "+dr.fontFamily).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g");else{const e=document.getElementById(t);e&&e.remove();const n=document.querySelector("#d"+t);n&&(n.innerHTML=""),a.select("body").append("div").attr("id","d"+t).append("svg").attr("id",t).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg").append("g")}window.txt=e,e=function(t){let e=t;return e=(e=(e=e.replace(/style.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)}))).replace(/classDef.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)}))).replace(/#\w+;/g,(function(t){const e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"fl°°"+e+"¶ß":"fl°"+e+"¶ß"}))}(e);const i=a.select("#d"+t).node(),o=E.detectType(e),c=i.firstChild,f=c.firstChild;let l=hr[dr.theme];if(void 0===l&&(l=""),void 0!==dr.themeCSS&&(l+=`\n${dr.themeCSS}`),void 0!==dr.fontFamily&&(l+=`\n:root { --mermaid-font-family: ${dr.fontFamily}}`),void 0!==dr.altFontFamily&&(l+=`\n:root { --mermaid-alt-font-family: ${dr.altFontFamily}}`),"flowchart"===o){const t=mt(e);for(const e in t)l+=`\n.${e} > * { ${t[e].styles.join(" !important; ")} !important; }`}const h=document.createElement("style");h.innerHTML=s()(l,`#${t}`),c.insertBefore(h,f);const d=document.createElement("style"),p=window.getComputedStyle(c);switch(d.innerHTML=`#${t} {\n color: ${p.color};\n font: ${p.font};\n }`,c.insertBefore(d,f),o){case"git":dr.flowchart.arrowMarkerAbsolute=dr.arrowMarkerAbsolute,Gn(dr.git),Wn(e,t,!1);break;case"flowchart":dr.flowchart.arrowMarkerAbsolute=dr.arrowMarkerAbsolute,bt(dr.flowchart),vt(e,t,!1);break;case"sequence":dr.sequence.arrowMarkerAbsolute=dr.arrowMarkerAbsolute,dr.sequenceDiagram?(Gt(Object.assign(dr.sequence,dr.sequenceDiagram)),console.error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.")):Gt(dr.sequence),Wt(e,t);break;case"gantt":dr.gantt.arrowMarkerAbsolute=dr.arrowMarkerAbsolute,Te(dr.gantt),De(e,t);break;case"class":dr.class.arrowMarkerAbsolute=dr.arrowMarkerAbsolute,$e(dr.class),Ge(e,t);break;case"state":vn(dr.state),_n(e,t);break;case"info":dr.class.arrowMarkerAbsolute=dr.arrowMarkerAbsolute,er(dr.class),nr(e,t,u.version);break;case"pie":dr.class.arrowMarkerAbsolute=dr.arrowMarkerAbsolute,fr(dr.class),lr(e,t,u.version)}a.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let g="";dr.arrowMarkerAbsolute&&(g=(g=(g=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)"));let y=a.select("#d"+t).node().innerHTML.replace(/url\(#arrowhead/g,"url("+g+"#arrowhead","g");if(y=function(t){let e=t;return e=(e=(e=e.replace(/fl°°/g,(function(){return"&#"}))).replace(/fl°/g,(function(){return"&"}))).replace(/¶ß/g,(function(){return";"}))}(y),void 0!==n)switch(o){case"flowchart":n(y,G.bindFunctions);break;case"gantt":n(y,Ee.bindFunctions);break;default:n(y)}else v.debug("CB = undefined!");const b=a.select("#d"+t).node();return null!==b&&"function"==typeof b.remove&&a.select("#d"+t).node().remove(),y},parse:function(t){const e=E.detectType(t);let n;switch(v.debug("Type "+e),e){case"git":(n=Ln.a).parser.yy=In;break;case"flowchart":G.clear(),(n=K.a).parser.yy=G;break;case"sequence":(n=Dt.a).parser.yy=jt;break;case"gantt":(n=Xt.a).parser.yy=Ee;break;case"class":(n=Fe.a).parser.yy=Le;break;case"state":(n=on.a).parser.yy=rn;break;case"info":v.debug("info info info"),console.warn("In API",u.version),(n=Qn.a).parser.yy=Zn;break;case"pie":v.debug("pie"),(n=sr.a).parser.yy=ar}n.parser.yy.parseError=(t,e)=>{throw{str:t,hash:e}},n.parse(t)},initialize:function(t){v.debug("Initializing mermaidAPI ",u.version),"object"==typeof t&&pr(t),f(dr),_(dr.logLevel)},getConfig:l};const yr=function(){let t;br.startOnLoad?(t=gr.getConfig()).startOnLoad&&br.init():void 0===br.startOnLoad&&(v.debug("In start, no config"),(t=gr.getConfig()).startOnLoad&&br.init())};"undefined"!=typeof document&&
/*!
* Wait for document loaded before starting the execution
*/
window.addEventListener("load",(function(){yr()}),!1);const br={startOnLoad:!0,htmlLabels:!0,mermaidAPI:gr,parse:gr.parse,render:gr.render,init:function(){const t=gr.getConfig();let e,n,r;v.debug("Starting rendering diagrams"),arguments.length>=2?(
/*! sequence config was passed as #1 */
void 0!==arguments[0]&&(br.sequenceConfig=arguments[0]),e=arguments[1]):e=arguments[0],"function"==typeof arguments[arguments.length-1]?(n=arguments[arguments.length-1],v.debug("Callback function found")):void 0!==t.mermaid&&("function"==typeof t.mermaid.callback?(n=t.mermaid.callback,v.debug("Callback function found")):v.debug("No Callback function found")),e=void 0===e?document.querySelectorAll(".mermaid"):"string"==typeof e?document.querySelectorAll(e):e instanceof window.Node?[e]:e,v.debug("Start On Load before: "+br.startOnLoad),void 0!==br.startOnLoad&&(v.debug("Start On Load inner: "+br.startOnLoad),gr.initialize({startOnLoad:br.startOnLoad})),void 0!==br.ganttConfig&&gr.initialize({gantt:br.ganttConfig});for(let t=0;t<e.length;t++){const a=e[t];
/*! Check if previously processed */if(a.getAttribute("data-processed"))continue;a.setAttribute("data-processed",!0);const o=`mermaid-${Date.now()}`;r=a.innerHTML,r=i.a.decode(r).trim().replace(/<br>/gi,"<br/>"),gr.render(o,r,(t,e)=>{a.innerHTML=t,void 0!==n&&n(o),e&&e(a)},a)}},initialize:function(t){v.debug("Initializing mermaid "),void 0!==t.mermaid&&(void 0!==t.mermaid.startOnLoad&&(br.startOnLoad=t.mermaid.startOnLoad),void 0!==t.mermaid.htmlLabels&&(br.htmlLabels=t.mermaid.htmlLabels)),gr.initialize(t)},contentLoaded:yr};e.default=br}]).default}));
//# sourceMappingURL=mermaid.min.js.map
</script>
</head>
<body>
<script>
mermaid.initialize({
startOnLoad: true,
theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')
? 'dark'
: 'default'
});
</script>
<h1 id="changelog">Changelog</h1>
<h2 id="table-of-contents">Table of contents</h2>
<p><a href="#update-1410---a-whole-new-world-of-possibilities">Update 14.1.0 - A whole new world of possibilities</a></br><a href="#update-1400-consistency-additions-and-stability">Update 14.0.0 - Consistency, Additions and Stability</a></br><a href="#update-1310-bug-fixes-and-features-added">Update 13.1.0 - Bug fixes and features added</a></br><a href="#update-1300-added-some-documentation-and-some-new-features-too-check-it-out">Update 13.0.0 - Added some documentation, and some new features too check it out!</a></br><a href="#update-1222-time-for-some-more-bug-fixes">Update 12.2.2 - Time for some more bug fixes!</a></br><a href="#update-1221-time-for-some-bug-fixes">Update 12.2.1 - Time for some bug fixes!</a></br><a href="#update-1220---the-chains-of-binding">Update 12.2.0 - The chains of binding</a></br><a href="#update-1210---threads-just-cant-hold-on-anymore">Update 12.1.0 - Threads just can't hold on anymore</a></br><a href="#update-1200-big-update-lots-of-additions-some-changes">Update: 12.0.0 - Big update (Lots of additions some changes)</a></br><a href="#update-1111---small-clarification-on-love">Update: 1.11.1 - Small Clarification on Love</a></br><a href="#update-1110">Update: 1.11.0</a></br><a href="#update-1100">Update: 1.10.0</a></br><a href="#update-192">Update: 1.9.2</a></br><a href="#update-191---threads-can-now-argue">Update: 1.9.1 - Threads can now argue</a></br><a href="#update-190">Update: 1.9.0</a></br><a href="#update-187">Update: 1.8.7</a></br><a href="#update-186">Update: 1.8.6</a></br><a href="#update-185">Update: 1.8.5</a></br><a href="#update-184">Update: 1.8.4</a></br><a href="#update-183---mainloop-recieves-some-needed-overhauling">Update: 1.8.3 - Mainloop recieves some needed overhauling</a></br><a href="#update-182">Update: 1.8.2</a></br><a href="#update-181">Update: 1.8.1</a></br><a href="#update-176">Update: 1.7.6</a></br><a href="#update-175">Update: 1.7.5</a></br><a href="#update-174">Update: 1.7.4</a></br><a href="#update-173">Update: 1.7.3</a></br><a href="#update-172">Update: 1.7.2</a></br><a href="#update-171---bug-fixes-only">Update: 1.7.1 - Bug Fixes Only</a></br><a href="#update-170---threading-the-systems">Update: 1.7.0 - Threading the systems</a></br><a href="#update-160">Update: 1.6.0</a></br><a href="#update-150">Update: 1.5.0</a></br><a href="#update-141-4102017---first-public-release-of-the-library">Update: 1.4.1 (4/10/2017) - First Public release of the library</a></br><a href="#update-140-3202017">Update: 1.4.0 (3/20/2017)</a></br><a href="#update-130-1292017">Update: 1.3.0 (1/29/2017)</a></br><a href="#update-120-12312016">Update: 1.2.0 (12.31.2016)</a></br><a href="#update-110">Update: 1.1.0</a></br><a href="#update-100">Update: 1.0.0</a></br><a href="#update-063">Update: 0.6.3</a></br><a href="#update-062">Update: 0.6.2</a></br><a href="#update-061-6">Update: 0.6.1-6</a></br><a href="#update-051-6">Update: 0.5.1-6</a></br><a href="#update-041">Update: 0.4.1</a></br><a href="#update-030---the-update-that-started-it-all">Update: 0.3.0 - The update that started it all</a></br><a href="#update-eventmanager-200">Update: EventManager 2.0.0</a></br><a href="#update-eventmanager-120">Update: EventManager 1.2.0</a></br><a href="#update-eventmanager-110">Update: EventManager 1.1.0</a></br><a href="#update-eventmanager-100---error-checking">Update: EventManager 1.0.0 - Error checking</a></br><a href="#version-eventmanager-001---in-the-beginning-things-were-very-different">Version: EventManager 0.0.1 - In The Beginning things were very different</a></p>
<h1 id="update-1410---a-whole-new-world-of-possibilities">Update 14.1.0 - A whole new world of possibilities</h1>
<h2 id="full-update-showcase">Full Update Showcase</h2>
<p>Something I plan on doing each version going forward</p>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi,thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>):init()
<span class="hljs-keyword">local</span> GLOBAL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>):init()
t = THREAD:newFunction(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(...)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"This is a system threaded function!"</span>,...)
THREAD.sleep(<span class="hljs-number">1</span>) <span class="hljs-comment">-- This is handled within a system thread! Note: this creates a system thread that runs then ends. C</span>
<span class="hljs-keyword">return</span> <span class="hljs-string">"We done!"</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-built_in">print</span>(t(<span class="hljs-string">"hehe"</span>,<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,<span class="hljs-literal">true</span>).connect(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(...)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"connected:"</span>,...)
<span class="hljs-keyword">end</span>)) <span class="hljs-comment">-- The same features that work with thread:newFunction() are here as well</span>
multi.OnLoad(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Code Loaded!"</span>) <span class="hljs-comment">-- Connect to the load event</span>
<span class="hljs-keyword">end</span>)
t = <span class="hljs-built_in">os</span>.<span class="hljs-built_in">clock</span>()
co = <span class="hljs-number">0</span>
multi.OnExit(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(n)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Code Exited: "</span>.. <span class="hljs-built_in">os</span>.<span class="hljs-built_in">clock</span>()-t ..<span class="hljs-string">" Count: "</span>.. co) <span class="hljs-comment">-- Lets print when things have ended</span>
<span class="hljs-keyword">end</span>)
test = thread:newFunction(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
thread.sleep(<span class="hljs-number">1</span>) <span class="hljs-comment">-- Internally this throws a yield call which sends to the scheduler to sleep 1 second for this thread!</span>
<span class="hljs-keyword">return</span> <span class="hljs-number">1</span>,<span class="hljs-built_in">math</span>.<span class="hljs-built_in">random</span>(<span class="hljs-number">2</span>,<span class="hljs-number">100</span>)
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">while</span> <span class="hljs-literal">true</span> <span class="hljs-keyword">do</span>
thread.skip() <span class="hljs-comment">-- Even though we have a few metamethods "yielding" I used this as an example of things still happening and counting. It connects to the Code Exited event later on.</span>
co = co + <span class="hljs-number">1</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">-- We can get around the yielding across metamethods by using a threadedFunction</span>
<span class="hljs-comment">-- For Example</span>
example = {}
<span class="hljs-built_in">setmetatable</span>(example,{
<span class="hljs-built_in">__newindex</span> = <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(t,k,v)</span></span> <span class="hljs-comment">-- Using a threaded function inside of a normal function</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Inside metamethod"</span>,t,k,v)
<span class="hljs-keyword">local</span> a,b = test().wait() <span class="hljs-comment">-- This function holds the code and "yields" see comment inside the test function!</span>
<span class="hljs-comment">-- we should see a 1 seconde delay since the function sleeps for a second than returns</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"We did it!"</span>,a,b)
<span class="hljs-built_in">rawset</span>(t,k,v)
<span class="hljs-comment">-- This means by using a threaded function we can get around the yielding across metamethods.</span>
<span class="hljs-comment">-- This is useful if you aren't using luajit, or if you using lua in an enviroment that is on version 5.1</span>
<span class="hljs-comment">-- There is a gotcha however, if using code that was meant to work with another coroutine based scheduler this may not work</span>
<span class="hljs-keyword">end</span>,
<span class="hljs-built_in">__index</span> = thread:newFunction(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(t,k,v)</span></span> <span class="hljs-comment">-- Using a threaded function as the metamethod</span>
<span class="hljs-comment">-- This works by returning a table with a __call metamethod. Will this work? Will lua detect this as a function or a table?</span>
thread.sleep(<span class="hljs-number">1</span>)
<span class="hljs-keyword">return</span> <span class="hljs-string">"You got a string"</span>
<span class="hljs-keyword">end</span>,<span class="hljs-literal">true</span>) <span class="hljs-comment">-- Tell the code to force a wait and to identify as a function. We need to do this for metamethods</span>
<span class="hljs-comment">-- If we don't pass true this is a table with a __call metamethod</span>
})
example[<span class="hljs-string">"test"</span>] = <span class="hljs-string">"We set a variable!"</span>
<span class="hljs-built_in">print</span>(example[<span class="hljs-string">"test"</span>])
<span class="hljs-built_in">print</span>(example.hi)
<span class="hljs-comment">-- When not in a threaded enviroment at root level we need to tell the code that we are waiting! Alternitavely after the function argument we can pass true to force a wait </span>
c,d = test().wait()
<span class="hljs-built_in">print</span>(c,d)
a,b = <span class="hljs-number">6</span>,<span class="hljs-number">7</span>
multi:newThread(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-comment">-- a,b = test().wait() -- Will modify Global</span>
<span class="hljs-comment">-- when wait is used the special metamethod routine is not triggered and variables are set as normal</span>
a,b = test() <span class="hljs-comment">-- Will modify GLocal</span>
<span class="hljs-comment">-- the threaded function test triggers a special routine within the metamethod that alters the thread's enviroment instead of the global enviroment. </span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Waited:"</span>,a,b)
<span class="hljs-comment">--This returns instantly even though the function isn't done!</span>
test().connect(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Connected:"</span>,a,b)
<span class="hljs-built_in">os</span>.<span class="hljs-built_in">exit</span>()
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">-- This waits for the returns since we are demanding them</span>
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<h2 id="changed">Changed:</h2>
<ul>
<li>thread:newFunction(func,holup) -- Added an argument holdme to always force the threaded funcion to wait. Meaning you don't need to tell it to func().wait() or func().connect()</li>
<li>multi:newConnection(protect,callback,kill) -- Added the kill argument. Makes connections work sort of like a stack. Pop off the connections as they get called. So a one time connection handler.
<ul>
<li>I'm not sure callback has been documented in any form. callback gets called each and everytime conn:Fire() gets called! As well as being triggered for each connfunc that is part of the connection.</li>
</ul>
</li>
<li>modified the lanes manager to create globals GLOBAL and THREAD when a thread is started. This way you are now able to more closely mirror code between lanes and love. As of right now parity between both enviroments is now really good. Upvalues being copied by default in lanes is something that I will not try and mirror in love. It's better to pass what you need as arguments, this way you can keep things consistant. looping thorugh upvalues and sterlizing them and sending them are very complex and slow opperations.</li>
</ul>
<h2 id="added">Added:</h2>
<ul>
<li>THREAD:newFunction(func,holup) -- A system threaded based variant to thread:newFunction(func,holup) works the same way. Though this should only be used for intensive functions! Calling a STfunction has a decent amount of overhead, use wisely. System threaded jobqueue may be a better choice depending on what you are planning on doing.</li>
<li>multi:loveloop() -- Handles the run function for love2d as well as run the multi mainloop.</li>
<li>multi.OnLoad(func) -- A special connection that allows you to connect to the an event that triggers when the multi engine starts! This is slightly different from multi.PreLoad(func) Which connects before any variables have been set up in the multi table, before any settings are cemented into the core. In most cases they will operate exactly the same. This is a feature that was created with module creators in mind. This way they can have code be loaded and managed before the main loop starts.</li>
<li>multi.OnExit(func) -- A special connection that allows you to connect onto the lua state closing event.</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi,thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>):init()
multi.OnExit(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(n)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Code Exited"</span>)
<span class="hljs-keyword">end</span>)
sdf() <span class="hljs-comment">-- Non existing function being called to trigger an error</span>
</div></code></pre>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi,thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>):init()
multi.OnExit(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(n)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Code Exited"</span>)
<span class="hljs-keyword">end</span>) <span class="hljs-comment">-- The code finishing also triggers this event</span>
</div></code></pre>
<ul>
<li>thread enviroments are able to interact with threaded functions and wait when there is the presence of variables. Only works when creating &quot;Globals&quot; inside of a thread. The way the enviroment has been set up is that it sets your &quot;Global&quot; as a &quot;GLocal&quot; a global variable local to the threaded enviroment. This does not have the access speed benifits that using pure locals have.</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi,thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>):init()
a,b = <span class="hljs-number">6</span>,<span class="hljs-number">7</span>
multi:newThread(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">test</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- Auto converts your function into a threaded function</span>
thread.sleep(<span class="hljs-number">1</span>)
<span class="hljs-keyword">return</span> <span class="hljs-number">1</span>,<span class="hljs-number">2</span>
<span class="hljs-keyword">end</span>
<span class="hljs-comment">-- a,b = test().wait() -- Will modify Global</span>
<span class="hljs-comment">-- when wait is used the special metamethod routine is not triggered and variables are set as normal</span>
a,b = test() <span class="hljs-comment">-- Will modify GLocal</span>
<span class="hljs-comment">-- the threaded function test triggers a special routine within the metamethod that alters the thread's enviroment instead of the global enviroment. </span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Waited:"</span>,a,b)
<span class="hljs-comment">--This returns instantly even though the function isn't done!</span>
test().connect(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Connected:"</span>,a,b)
<span class="hljs-built_in">os</span>.<span class="hljs-built_in">exit</span>()
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">-- This waits for the returns since we are demanding them</span>
<span class="hljs-keyword">end</span>)
multi:newAlarm(<span class="hljs-number">2</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(a,b)
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<ul>
<li>multi:scheduleJob(time,func)
<ul>
<li>time.min -- Minute a value of (0-59)</li>
<li>time.hour -- Hour a value of (0-23)</li>
<li>time.day -- Day of month a value of (1-31)</li>
<li>time.wday -- Weekday a value of (0-6)</li>
<li>time.month -- Month a value of (1-12)</li>
</ul>
</li>
</ul>
<p><strong>Usage</strong></p>
<pre class="hljs"><code><div><span class="hljs-keyword">local</span> multi,thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>):init()
multi:scheduleJob({<span class="hljs-built_in">min</span> = <span class="hljs-number">15</span>, hour = <span class="hljs-number">14</span>},<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-comment">-- This function will be called once everyday at 2:15</span>
<span class="hljs-comment">-- Using a combination of the values above you are able to schedule a time </span>
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<h2 id="removed">Removed:</h2>
<ul>
<li>multi:newTimeStamper() -- schedulejob replaces timestamper</li>
</ul>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>love2d had an issue where threads crashing would break the mainloop</li>
<li>fixed bugs within the extensions.lua file for love threading</li>
<li>Modified the thread.* methods to perform better (Tables were being created each time one of these methods were called! Which in turn slowed things down. One table is modified to get things working properly)
<ul>
<li>thread.sleep()</li>
<li>thread.hold()</li>
<li>thread.holdFor()</li>
<li>thread.holdWithin()</li>
<li>thread.skip()</li>
<li>thread.kill()</li>
<li>thread.yield()</li>
</ul>
</li>
</ul>
<h1 id="update-1400---consistency-additions-and-stability">Update 14.0.0 - Consistency, Additions and Stability</h1>
<hr>
<h2 id="added">Added:</h2>
<ul>
<li>multi.init() -- Initlizes the library! Must be called for multiple files to have the same handle. Example below</li>
<li>thread.holdFor(NUMBER sec, FUNCTION condition) -- Works like hold, but timesout when a certain amount of time has passed!</li>
<li>multi.hold(function or number) -- It's back and better than ever! Normal multi objs without threading will all be halted where threads will still run. If within a thread continue using thread.hold() and thread.sleep()</li>
<li>thread.holdWithin(NUMBER; cycles,FUNCTION; condition) -- Holds until the condition is met! If the number of cycles passed is equal to cycles, hold will return a timeout error</li>
<li>multi.holdFor(NUMBER; seconds,FUNCTION; condition) -- Follows the same rules as multi.hold while mimicing the functionality of thread.holdWithin
<strong>Note:</strong> when hold has a timeout the first argument will return nil and the second atgument will be TIMEOUT, if not timed out hold will return the values from the conditions</li>
<li>thread objects now have hooks that allow you to interact with it in more refined ways!
-- tObj.OnDeath(self,status,returns[...]) -- This is a connection that passes a reference to the self, the status, whether or not the thread ended or was killed, and the returns of the thread.
-- tObj.OnError(self,error) -- returns a reference to self and the error as a string
-- <strong>Limitations:</strong> only 7 returns are possible! This was done because creating and destroying table objects are slow. (The way the scheduler works this would happen every cycle and thats no good) Instead I capture the return values from coroutine.resume into local variables and only allowed it to collect 7 max.</li>
<li>thread.run(function) -- Can only be used within a thread, creates another thread that can do work, but automatically returns whatever from the run function -- Use thread newfunctions for a more powerful version of thread.run()</li>
<li>thread:newFunction(FUNCTION; func)
-- returns a function that gives you the option to wait or connect to the returns of the function.
-- func().wait() -- waits for the function to return works both within a thread and outside of one
-- func().connect() -- connects to the function finishing
-- func() -- If your function does not return anything you dont have to use wait or connect at all and the function will return instantly. You could also use wait() to hold until the function does it thing
-- If the created function encounters an error, it will return nil, the error message!</li>
<li>special variable multi.NIL was added to allow error handling in threaded functions.
-- multi.NIL can be used in to force a nil value when using thread.hold()</li>
<li>All functions created in the root of a thread are now converted to threaded functions, which allow for wait and connect features. <strong>Note:</strong> these functions are local to the function! And are only converted if they aren't set as local! Otherwise the function</li>
<li>lanes threads can now have their priority set using: sThread.priority =
-- thread.Priority_Core
-- thread.Priority_High
-- thread.Priority_Above_Normal
-- thread.Priority_Normal
-- thread.Priority_Below_Normal
-- thread.Priority_Low
-- thread.Priority_Idle</li>
<li>thread.hold() and multi.hold() now accept connections as an argument. See example below</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span> = <span class="hljs-string">"./?/init.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
<span class="hljs-keyword">local</span> multi, thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>):init()
conn = multi:newConnection()
multi:newThread(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
thread.hold(conn)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Connection Fired!!!"</span>)
<span class="hljs-keyword">end</span>)
multi:newAlarm(<span class="hljs-number">3</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
conn:Fire()
<span class="hljs-keyword">end</span>)
</div></code></pre>
<p>thread newFunction</p>
<pre class="hljs"><code><div>func=thread:newFunction(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(...)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Function running..."</span>)
thread.sleep(<span class="hljs-number">1</span>)
<span class="hljs-keyword">return</span> {<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>},<span class="hljs-string">"done"</span>
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-string">"Test"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
func().connect(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(...)</span></span>
<span class="hljs-built_in">print</span>(...)
<span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">----OUTPUT----</span>
&gt; Function <span class="hljs-built_in">running</span>...
&gt; <span class="hljs-built_in">table</span>: <span class="hljs-number">0x008cf340</span> done <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span>
</div></code></pre>
<p>thread newFunction using auto convert</p>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span> = <span class="hljs-string">"./?/init.lua;"</span> .. <span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi, thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>).init()
a=<span class="hljs-number">5</span>
multi:newThread(<span class="hljs-string">"Test"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">hmm</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- Auto converted into a threaded function</span>
<span class="hljs-keyword">return</span> <span class="hljs-string">"Hello!"</span>,<span class="hljs-number">2</span>
<span class="hljs-keyword">end</span>
<span class="hljs-built_in">print</span>(a)
a=<span class="hljs-number">10</span>
<span class="hljs-built_in">print</span>(hmm().wait())
<span class="hljs-keyword">end</span>)
multi:newAlarm(<span class="hljs-number">3</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(a)
<span class="hljs-keyword">end</span>)
<span class="hljs-built_in">print</span>(hmm)
multi:mainloop()
<span class="hljs-comment">-----OUTPUT-----</span>
&gt; <span class="hljs-literal">nil</span>
&gt; <span class="hljs-number">5</span>
&gt; Hello! <span class="hljs-number">2</span> <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span> <span class="hljs-literal">nil</span> <span class="hljs-comment">-- The way I manage function returns is by allocating them to predefined locals. Because I pass these values regardless they technically get passed even when they are nil. This choice was made to keep the creation of tables to capture arguments then using unpack to pass them on when processing is done </span>
&gt; <span class="hljs-number">10</span>
</div></code></pre>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>Connections had a preformance issue where they would create a non function when using connection.getConnection() of a non existing label.</li>
<li>An internal mismanagement of the threads scheduler was fixed. Now it should be quicker and free of bugs</li>
<li>Thread error management is the integrations was not properly implemented. This is now fixed</li>
</ul>
<h2 id="removed">Removed:</h2>
<ul>
<li>multi:newWatcher() -- No real use</li>
<li>multi:newCustomObject() -- No real use</li>
</ul>
<h2 id="changed">Changed:</h2>
<ul>
<li>Connections connect function can now chain connections</li>
</ul>
<pre class="hljs"><code><div> <span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span> = <span class="hljs-string">"./?/init.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
<span class="hljs-keyword">local</span> multi, thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>).init()
test = multi:newConnection()
test(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"test 1"</span>,a.Temp)
a.Temp = <span class="hljs-string">"No!"</span>
<span class="hljs-keyword">end</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"test 2"</span>,a.Temp)
a.Temp = <span class="hljs-string">"Maybe!"</span>
<span class="hljs-keyword">end</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"test 3"</span>,a.Temp)
<span class="hljs-keyword">end</span>)
test:Fire({Temp=<span class="hljs-string">"Yes!"</span>})
</div></code></pre>
<ul>
<li>Ties in to the new function that has been added multi.init()</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-keyword">local</span> multi, thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>).init() <span class="hljs-comment">-- The require multi function still returns the multi object like before</span>
</div></code></pre>
<ul>
<li>love/lanesManager system threading integration has been reworked. Faster and cleaner code! Consistant code as well</li>
</ul>
<p>Note: Using init allows you to get access to the thread handle. This was done because thread was modifying the global space as well as multi. I wanted to not modify the global space anymore.
internally most of your code can stay the same, you only need to change how the library is required. I do toy a bit with the global space, buy I use a variable name that is invalid as a variable name. The variable name is $multi. This is used internally to keep some records and maintain a clean space</p>
<p>Also when using intergrations things now look more consistant.</p>
<pre class="hljs"><code><div><span class="hljs-keyword">local</span> multi, thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>).init()
<span class="hljs-keyword">local</span> GLOBSL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init() <span class="hljs-comment">-- or whichever manager you are using</span>
<span class="hljs-keyword">local</span> nGLOBAL, nTHREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.intergration.networkManager).inti()
</span></div></code></pre>
<p>Note: You can mix and match integrations together. You can create systemthreads within network threads, and you can also create cotoutine based threads within bothe network and system threads. This gives you quite a bit of flexibility to create something awesome.</p>
<h2 id="going-forward">Going forward:</h2>
<ul>
<li>Finish the rework of the networkManager - It &quot;works&quot;, but there are packet losses that I cannot explain. I do not know what is causing this at all. Ill fix when I figure it out!</li>
<li>If all goes well, the future will contain quality of code features. I'll keep an eye out for bugs</li>
</ul>
<h1 id="update-1310---bug-fixes-and-features-added">Update 13.1.0 - Bug fixes and features added</h1>
<hr>
<h2 id="added">Added:</h2>
<ul>
<li>Connections:Lock() -- Prevents a connection object form being fired</li>
<li>Connections:Unlock() -- Removes the restriction imposed by conn:Lock()</li>
<li>new fucntions added to the thread namespace
-- thread.request(THREAD handle,STRING cmd,VARARGS args) -- allows you to push thread requests from outside the running thread! Extremely powerful.
-- thread.exec(FUNCTION func) -- Allows you to push code to run within the thread execution block!</li>
<li>handle = multi:newThread() -- now returns a thread handle to interact with the object outside fo the thread
-- handle:Pause()
-- handle:Resume()
-- handle:Kill()</li>
</ul>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>Minor bug with multi:newThread() in how names and functions were managed</li>
<li>Major bug with the system thread handler. Saw healthy threads as dead ones</li>
<li>Major bug the thread scheduler was seen creating a massive amount of 'event' causing memory leaks and hard crashes! This has been fixed by changing how the scheduler opperates.</li>
<li>newSystemThread()'s returned object now matches both the lanes and love2d in terms of methods that are usable. Error handling of System threads now behave the same across both love and lanes implementations.</li>
<li>looks like I found a typo, thread.yeild -&gt; thread.yield</li>
</ul>
<h2 id="changed">Changed:</h2>
<ul>
<li>getTasksDetails(&quot;t&quot;), the table varaiant, formats threads, and system threads in the same way that tasks are formatted. Please see below for the format of the task details</li>
<li>TID has been added to multi objects. They count up from 0 and no 2 objects will have the same number</li>
<li>thread.hold() -- As part of the memory leaks that I had to fix thread.hold() is slightly different. This change shouldn't impact previous code at all, but thread.hold() can not only return at most 7 arguments!</li>
<li>You should notice some faster code execution from threads, the changes improve preformance of threads greatly. They are now much faster than before!</li>
<li>multi:threadloop() -- No longer runs normal multi objects at all! The new change completely allows the multi objects to be seperated from the thread objects!</li>
<li>local multi, thread = require(&quot;multi&quot;) -- Since coroutine based threading has seen a change to how it works, requring the multi library now returns the namespace for the threading interface as well. For now I will still inject into global the thread namespace, but in release 13.2.0 or 14.0.0 It will be removed!</li>
</ul>
<h2 id="tasks-details-table-format">Tasks Details Table format</h2>
<pre class="hljs"><code><div>{
[&quot;Tasks&quot;] = {
{
[&quot;TID&quot;] = 0,
[&quot;Type&quot;] = scheduler,
[&quot;Name&quot;] = multi.thread,
[&quot;Priority&quot;] = Core,
[&quot;Uptime&quot;] = 6.752
[&quot;Link&quot;] = tableRef
},
...
} ,
[&quot;Systemthreads&quot;] = {
{
[&quot;Uptime&quot;] = 6.752
[&quot;Link&quot;] = tableRef
[&quot;Name&quot;] = threadname
[&quot;ThreadID&quot;] = 0
},
...
},
[&quot;Threads&quot;] = {
{
[&quot;Uptime&quot;] = 6.752
[&quot;Link&quot;] = tableRef
[&quot;Name&quot;] = threadname
[&quot;ThreadID&quot;] = 0
},
...
},
[&quot;ProcessName&quot;] = multi.root,
[&quot;CyclesPerSecondPerTask&quot;] = 3560300,
[&quot;MemoryUsage&quot;] = 1846, in KB returned as a number
[&quot;ThreadCount&quot;] = 1,
[&quot;SystemLoad&quot;] = 0, as a % 100 is max 0 is min
[&quot;PriorityScheme&quot;] = Round-Robin
[&quot;SystemThreadCount&quot;] = 1
}
</div></code></pre>
<h1 id="update-1300---added-some-documentation-and-some-new-features-too-check-it-out">Update 13.0.0 - Added some documentation, and some new features too check it out!</h1>
<hr>
<p><strong>Quick note</strong> on the 13.0.0 update:
This update I went all in finding bugs and improving proformance within the library. I added some new features and the new task manager, which I used as a way to debug the library was a great help, so much so thats it is now a permanent feature. It's been about half a year since my last update, but so much work needed to be done. I hope you can find a use in your code to use my library. I am extremely proud of my work; 7 years of development, I learned so much about lua and programming through the creation of this library. It was fun, but there will always be more to add and bugs crawling there way in. I can't wait to see where this library goes in the future!</p>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>Tons of bugs, I actually went through the entire library and did a full test of everything, I mean everything, while writing the documentation.</li>
</ul>
<h2 id="changed">Changed:</h2>
<ul>
<li>A few things, to make concepts in the library more clear.</li>
<li>The way functions returned paused status. Before it would return &quot;PAUSED&quot; now it returns nil, true if paused</li>
<li>Modified the connection object to allow for some more syntaxial suger!</li>
<li>System threads now trigger an OnError connection that is a member of the object itself. multi.OnError() is no longer triggered for a system thread that crashes!</li>
</ul>
<p>Connection Example:</p>
<pre class="hljs"><code><div>loop = multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self)</span></span>
self:OnLoops() <span class="hljs-comment">-- new way to Fire a connection! Only works when used on a multi object, bin objects, or any object that contains a Type variable</span>
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
loop.OnLoops = multi:newConnection()
loop.OnLoops(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Looping"</span>)
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<p>Function Example:</p>
<pre class="hljs"><code><div>func = multi:newFunction(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,a,b)</span></span>
self:Pause()
<span class="hljs-keyword">return</span> <span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-built_in">print</span>(func()) <span class="hljs-comment">-- returns: 1, 2, 3</span>
<span class="hljs-built_in">print</span>(func()) <span class="hljs-comment">-- nil, true</span>
</div></code></pre>
<h2 id="removed">Removed:</h2>
<ul>
<li>Ranges and conditions -- corutine based threads can emulate what these objects did and much better!</li>
<li>Due to the creation of hyper threaded processes the following objects are no more!
-- <s>multi:newThreadedEvent()</s>
-- <s>multi:newThreadedLoop()</s>
-- <s>multi:newThreadedTLoop()</s>
-- <s>multi:newThreadedStep()</s>
-- <s>multi:newThreadedTStep()</s>
-- <s>multi:newThreadedAlarm()</s>
-- <s>multi:newThreadedUpdater()</s>
-- <s>multi:newTBase()</s> -- Acted as the base for creating the other objects</li>
</ul>
<p>These didn't have much use in their previous form, but with the addition of hyper threaded processes the goals that these objects aimed to solve are now possible using a process</p>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>There were some bugs in the networkmanager.lua file. Desrtoy -&gt; Destroy some misspellings.</li>
<li>Massive object management bugs which caused performance to drop like a rock.</li>
<li>Found a bug with processors not having the Destroy() function implemented properly.</li>
<li>Found an issue with the rockspec which is due to the networkManager additon. The net Library and the multi Library are now codependent if using that feature. Going forward you will have to now install the network library separately</li>
<li>Insane proformance bug found in the networkManager file, where each connection to a node created a new thread (VERY BAD) If say you connected to 100s of threads, you would lose a lot of processing power due to a bad implementation of this feature. But it goes further than this, the net library also creates a new thread for each connection made, so times that initial 100 by about 3, you end up with a system that quickly eats itself. I have to do tons of rewriting of everything. Yet another setback for the 13.0.0 release (Im releasing 13.0.0 though this hasn't been ironed out just yet)</li>
<li>Fixed an issue where any argument greater than 256^2 or 65536 bytes is sent the networkmanager would soft crash. This was fixed by increading the limit to 256^4 or 4294967296. The fix was changing a 2 to a 4. Arguments greater than 256^4 would be impossible in 32 bit lua, and highly unlikely even in lua 64 bit. Perhaps someone is reading an entire file into ram and then sending the entire file that they read over a socket for some reason all at once!?</li>
<li>Fixed an issue with processors not properly destroying objects within them and not being destroyable themselves</li>
<li>Fixed a bug where pause and resume would duplicate objects! Not good</li>
<li>Noticed that the switching of lua states, corutine based threading, is slower than multi-objs (Not by much though).</li>
<li>multi:newSystemThreadedConnection(name,protect) -- I did it! It works and I believe all the gotchas are fixed as well.
-- Issue one, if a thread died that was connected to that connection all connections would stop since the queue would get clogged! FIXED
-- There is one thing, the connection does have some handshakes that need to be done before it functions as normal!</li>
</ul>
<h2 id="added">Added:</h2>
<ul>
<li>Documentation, the purpose of 13.0.0, orginally going to be 12.2.3, but due to the amount of bugs and features added it couldn't be a simple bug fix update.</li>
<li>multi:newHyperThreadedProcess(STRING name) -- This is a version of the threaded process that gives each object created its own coroutine based thread which means you can use thread.* without affecting other objects created within the hyper threaded processes. Though, creating a self contained single thread is a better idea which when I eventually create the wiki page I'll discuss</li>
<li>multi:newConnector() -- A simple object that allows you to use the new connection Fire syntax without using a multi obj or the standard object format that I follow.</li>
<li>multi:purge() -- Removes all references to objects that are contained withing the processes list of tasks to do. Doing this will stop all objects from functioning. Calling Resume on an object should make it work again.</li>
<li>multi:getTasksDetails(STRING format) -- Simple function, will get massive updates in the future, as of right now It will print out the current processes that are running; listing their type, uptime, and priority. More useful additions will be added in due time. Format can be either a string &quot;s&quot; or &quot;t&quot; see below for the table format</li>
<li>multi:endTask(TID) -- Use multi:getTasksDetails(&quot;t&quot;) to get the tid of a task</li>
<li>multi:enableLoadDetection() -- Reworked how load detection works. It gives better values now, but it still needs some work before I am happy with it</li>
<li>THREAD.getID() -- returns a unique ID for the current thread. This varaiable is visible to the main thread as well by accessing it through the returned thread object. OBJ.Id Do not confuse this with thread.* this refers to the system threading interface. Each thread, including the main thread has a threadID the main thread has an ID of 0!</li>
<li>multi.print(...) works like normal print, but only prints if the setting print is set to true</li>
<li>setting: <code>print</code> enables multi.print() to work</li>
<li>STC: IgnoreSelf defaults to false, if true a Fire command will not be sent to the self</li>
<li>STC: OnConnectionAdded(function(connID)) -- Is fired when a connection is added you can use STC:FireTo(id,...) to trigger a specific connection. Works like the named non threaded connections, only the id's are genereated for you.</li>
<li>STC: FireTo(id,...) -- Described above.</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
<span class="hljs-keyword">local</span> multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
conn = multi:newConnector()
conn.OnTest = multi:newConnection()
conn.OnTest(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Yes!"</span>)
<span class="hljs-keyword">end</span>)
test = multi:newHyperThreadedProcess(<span class="hljs-string">"test"</span>)
test:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"HI!"</span>)
conn:OnTest()
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
test:newLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"HEY!"</span>)
thread.sleep(<span class="hljs-number">.5</span>)
<span class="hljs-keyword">end</span>)
multi:newAlarm(<span class="hljs-number">3</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
test:Sleep(<span class="hljs-number">10</span>)
<span class="hljs-keyword">end</span>)
test:Start()
multi:mainloop()
</div></code></pre>
<p>Table format for getTasksDetails(STRING format)</p>
<pre class="hljs"><code><div>{
{TID = <span class="hljs-number">1</span>,Type=<span class="hljs-string">""</span>,Priority=<span class="hljs-string">""</span>,Uptime=<span class="hljs-number">0</span>}
{TID = <span class="hljs-number">2</span>,Type=<span class="hljs-string">""</span>,Priority=<span class="hljs-string">""</span>,Uptime=<span class="hljs-number">0</span>}
...
{TID = n,Type=<span class="hljs-string">""</span>,Priority=<span class="hljs-string">""</span>,Uptime=<span class="hljs-number">0</span>}
ThreadCount = <span class="hljs-number">0</span>
threads={
[Thread_Name]={
Uptime = <span class="hljs-number">0</span>
}
}
}
</div></code></pre>
<p><strong>Note:</strong> After adding the getTasksDetails() function I noticed many areas where threads, and tasks were not being cleaned up and fixed the leaks. I also found out that a lot of tasks were starting by default and made them enable only. If you compare the benchmark from this version to last version you;ll notice a signifacant increase in performance.</p>
<p><strong>Going forward:</strong></p>
<ul>
<li>Work on system threaded functions</li>
<li>work on the node manager</li>
<li>patch up bugs</li>
<li>finish documentstion</li>
</ul>
<h1 id="update-1222---time-for-some-more-bug-fixes">Update 12.2.2 - Time for some more bug fixes!</h1>
<hr>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>multi.Stop() not actually stopping due to the new pirority management scheme and preformance boost changes.</li>
</ul>
<h1 id="update-1221---time-for-some-bug-fixes">Update 12.2.1 - Time for some bug fixes!</h1>
<hr>
<p>Fixed: SystemThreadedJobQueues</p>
<ul>
<li>You can now make as many job queues as you want! Just a warning when using a large amount of cores for the queue it takes a second or 2 to set up the jobqueues for data transfer. I am unsure if this is a lanes thing or not, but love2d has no such delay when setting up the jobqueue!</li>
<li>You now connect to the OnReady in the jobqueue object. No more holding everything else as you wait for a job queue to be ready</li>
<li>Jobqueues:doToAll now passes the queues multi interface as the first and currently only argument</li>
<li>No longer need to use jobqueue.OnReady() The code is smarter and will send the pushed jobs automatically when the threads are ready</li>
</ul>
<p>Fixed: SystemThreadedConnection</p>
<ul>
<li>They work the exact same way as before, but actually work as expected now. The issue before was how i implemented it. Now each connection knows the number of instances of that object that ecist. This way I no longer have to do fancy timings that may or may not work. I can send exactly enough info for each connection to consume from the queue.</li>
</ul>
<p>Removed: multi:newQueuer</p>
<ul>
<li>This feature has no real use after corutine based threads were introduced. You can use those to get the same effect as the queuer and do it better too.</li>
</ul>
<p>Going forward:</p>
<ul>
<li>Will I ever finish steralization? Who knows, but being able to save state would be nice. The main issue is there is no simple way to save state. While I can provide methods to allow one to turn the objects into strings and back, there is no way for me to make your code work with it in a simple way. For now only the basic functions will be here.</li>
<li>I need to make better documentation for this library as well. In its current state, all I have are examples and not a list of what is what.</li>
</ul>
<h2 id="example">Example</h2>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
GLOBAL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
jq = multi:newSystemThreadedJobQueue()
jq:registerJob(<span class="hljs-string">"test"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>
<span class="hljs-keyword">return</span> <span class="hljs-string">"Hello"</span>,a
<span class="hljs-keyword">end</span>)
jq.OnJobCompleted(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(ID,...)</span></span>
<span class="hljs-built_in">print</span>(ID,...)
<span class="hljs-keyword">end</span>)
<span class="hljs-keyword">for</span> i=<span class="hljs-number">1</span>,<span class="hljs-number">16</span> <span class="hljs-keyword">do</span>
jq:pushJob(<span class="hljs-string">"test"</span>,<span class="hljs-number">5</span>)
<span class="hljs-keyword">end</span>
multi:mainloop()
</div></code></pre>
<h1 id="update-1220---the-chains-of-binding">Update 12.2.0 - The chains of binding</h1>
<p><strong>Added:</strong></p>
<ul>
<li>multi.nextStep(func)</li>
<li>Method chaining</li>
<li>Priority 3 has been added!</li>
<li>ResetPriority() -- This will set a flag for a process to be re evaluated for how much of an impact it is having on the performance of the system.</li>
<li>setting: auto_priority added! -- If only lua os.clock was more fine tuned... milliseconds are not enough for this to work</li>
<li>setting: auto_lowerbound added! -- when using auto_priority this will allow you to set the lowbound for pirority. The defualt is a hyrid value that was calculated to reach the max potential with a delay of .001, but can be changed to whatever. Remember this is set to processes that preform really badly! If lua could handle more detail in regards to os.clock() then i would set the value a bit lower like .0005 or something like that</li>
<li>setting: auto_stretch added! -- This is another way to modify the extent of the lowest setting. This reduces the impact that a low preforming process has! Setting this higher reduces the number of times that a process is called. Only in effect when using auto_priotity</li>
<li>setting: auto_delay added! -- sets the time in seconds that the system will recheck for low performing processes and manage them. Will also upgrade a process if it starts to run better.</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-comment">-- All methods that did not return before now return a copy of itself. Thus allowing chaining. Most if not all mutators returned nil, so chaining can now be done. I will eventually write up a full documentation of everything which will show this.</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
multi:newStep(<span class="hljs-number">1</span>,<span class="hljs-number">100</span>):OnStep(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,i)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Index: "</span>..i)
<span class="hljs-keyword">end</span>):OnEnd(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Step is done!"</span>)
<span class="hljs-keyword">end</span>)
multi:mainloop{
priority = <span class="hljs-number">3</span>
}
</div></code></pre>
<p>Priority 3 works a bit differently than the other 2.</p>
<p>P1 follows a forumla that resembles this: ~n=I*PRank where n is the amount of steps given to an object with PRank and where I is the idle time see chart below. The aim of this priority scheme was to make core objects run fastest while letting idle processes get decent time as well.</p>
<pre class="hljs"><code><div>C: 3322269 ~I*7
H: 2847660 ~I*6
A: 2373050 ~I*5
N: 1898440 ~I*4
B: 1423830 ~I*3
L: 949220 ~I*2
I: 474610 ~I
~n=I*PRank
</div></code></pre>
<p>P2 follows a formula that resembles this: ~n=n*4 where n is the idle time, see chart below. The goal of this one was to make core process' higher while keeping idle process' low.</p>
<pre class="hljs"><code><div>C: 6700821
H: 1675205
A: 418801
N: 104700
B: 26175
L: 6543
I: 1635
~n=n*4
</div></code></pre>
<p>P3 Ignores using a basic funceion and instead bases its processing time on the amount of cpu time is there. If cpu-time is low and a process is set at a lower priority it will get its time reduced. There is no formula, at idle almost all process work at the same speed!</p>
<pre class="hljs"><code><div>C: 2120906
H: 2120906
A: 2120906
N: 2120906
B: 2120906
L: 2120906
I: 2120506
</div></code></pre>
<p>Auto Priority works by seeing what should be set high or low. Due to lua not having more persicion than milliseconds, I was unable to have a detailed manager that can set things to high, above normal, normal, ect. This has either high or low. If a process takes longer than .001 millisecond it will be set to low priority. You can change this by using the setting auto_lowest = multi.Priority_[PLevel] the defualt is low, not idle, since idle tends to get about 1 process each second though you can change it to idle using that setting.</p>
<p><strong>Improved:</strong></p>
<ul>
<li>Performance at the base level has been doubled! On my machine benchmark went from ~9mil to ~20 mil steps/s.
Note: If you write slow code this library's improbements wont make much of a difference.</li>
<li>Loops have been optimised as well! Being the most used objects I felt they needed to be made as fast as possible</li>
</ul>
<p>I usually give an example of the changes made, but this time I have an explantion for multi.nextStep(). It's not an entirely new feature since multi:newJob() does something like this, but is completely different. nextStep addes a function that is executed first on the next step. If multiple things are added to next step, then they will be executed in the order that they were added.</p>
<p>Note:
The upper limit of this libraries performance on my machine is ~39mil. This is simply a while loop counting up from 0 and stops after 1 second. The 20mil that I am currently getting is probably as fast as it can get since its half of the max performance possible, and each layer I have noticed that it doubles complexity. Throughout the years with this library I have seen massive improvements in speed. In the beginning we had only ~2000 steps per second. Fast right? then after some tweaks we went to about 300000 steps per second, then 600000. Some more tweaks brought me to ~1mil steps per second, then to ~4 mil then ~9 mil and now finally ~20 mil... the doubling effect that i have now been seeing means that odds are I have reach the limit. I will aim to add more features and optimize individule objects. If its possible to make the library even faster then I will go for it.</p>
<h1 id="update-1210---threads-just-cant-hold-on-anymore">Update 12.1.0 - Threads just can't hold on anymore</h1>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>bug causing arguments when spawning a new thread not going through</li>
</ul>
<h2 id="changed">Changed:</h2>
<ul>
<li>thread.hold() now returns the arguments that were pass by the event function</li>
<li>event objexts now contain a copy of what returns were made by the function that called it in a table called returns that exist inside of the object</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
<span class="hljs-keyword">local</span> a = <span class="hljs-number">0</span>
multi:newThread(<span class="hljs-string">"test"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"lets go"</span>)
b,c = thread.hold(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- This now returns what was managed here</span>
<span class="hljs-keyword">return</span> b,<span class="hljs-string">"We did it!"</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-built_in">print</span>(b,c)
<span class="hljs-keyword">end</span>)
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
a=a+<span class="hljs-number">1</span>
<span class="hljs-keyword">if</span> a == <span class="hljs-number">5</span> <span class="hljs-keyword">then</span>
b = <span class="hljs-string">"Hello"</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
multi:mainloop()
</div></code></pre>
<p><strong>Note:</strong> Only if the first return is non-nil/false will any other returns be passed! So while variable b above is nil the string &quot;We did it!&quot; will not be passed. Also while this seems simple enough to get working, I had to modify a bit on how the scheduler worked to add such a simple feature. Quite a bit is going on behind the scenes which made this a bit tricky to implement, but not hard. Just needed a bit of tinkering. Plus event objects have not been edited since the creation of the EventManager. They have remained mostly the same since 2011</p>
<h2 id="going-forward">Going forward:</h2>
<p>Contunue to make small changes as I come about them. This change was inspired when working of the net library. I was addind simple binary file support over tcp, and needed to pass the data from the socket when the requested amount has been recieved. While upvalues did work, i felt returning data was cleaner and added this feature.</p>
<h1 id="update-1200---big-update-lots-of-additions-some-changes">Update: 12.0.0 - Big update (Lots of additions some changes)</h1>
<p><strong>Note:</strong> <s>After doing some testing, I have noticed that using multi-objects are slightly, quite a bit, faster than using (coroutines)multi:newthread(). Only create a thread if there is no other possibility! System threads are different and will improve performance if you know what you are doing. Using a (coroutine)thread as a loop with a
is slower than using a TLoop! If you do not need the holding features I strongly recommend that you use the multi-objects. This could be due to the scheduler that I am using, and I am looking into improving the performance of the scheduler for (coroutine)threads. This is still a work in progress so expect things to only get better as time passes!</s> This was the reason threadloop was added. It binds the thread scheduler into the mainloop allowing threads to run much faster than before. Also the use of locals is now possible since I am not dealing with seperate objects. And finally, reduced function overhead help keeps the threads running better.</p>
<p><strong>Note:</strong> The nodeManager is being reworked! This will take some time before it is in a stable state. The old version had some major issues that caused it to perform poorly.</p>
<p><strong>Note:</strong> Version names were brought back to reality this update. When transistioning from EventManager to multi I stopped counting when in reality it was simply an overhaul of the previous library</p>
<h2 id="added">Added:</h2>
<ul>
<li><code>nGLOBAL = require(&quot;multi.integration.networkManager&quot;).init()</code></li>
<li><code>node = multi:newNode(tbl: settings)</code></li>
<li><code>master = multi:newMaster(tbl: settings)</code></li>
<li><code>multi:nodeManager(port)</code></li>
<li><code>thread.isThread()</code> -- for coroutine based threads</li>
<li>New setting to the main loop, stopOnError which defaults to true. This will cause the objects that crash, when under protect, to be destroyed. So the error does not keep happening.</li>
<li>multi:threadloop(settings) works just like mainloop, but prioritizes (corutine based) threads. Regular multi-objects will still work. This improves the preformance of (coroutine based) threads greatly.</li>
<li>multi.OnPreLoad -- an event that is triggered right before the mainloop starts</li>
</ul>
<p>Changed:</p>
<ul>
<li>When a (corutine based)thread errors it does not print anymore! Conect to multi.OnError() to get errors when they happen!</li>
<li>Connections get yet another update. Connect takes an additional argument now which is the position in the table that the func should be called. Note: Fire calls methods backwards so 1 is the back and the # of connections (the default value) is the beginning of the call table</li>
<li>The love2d compat layer has now been revamped allowing module creators to connect to events without the user having to add likes of code for those events. Its all done automagically.</li>
<li>This library is about 8 years old and using 2.0.0 makes it seem young. I changed it to 12.0.0 since it has some huge changes and there were indeed 12 major releases that added some cool things. Going forward I'll use major.minor.bugfix</li>
<li>multi.OnError() is now required to capture errors that are thrown when in prorected mode.</li>
</ul>
<h2 id="node">Node:</h2>
<ul>
<li>node:sendTo(name,data)</li>
<li>node:pushTo(name,data)</li>
<li>node:peek()</li>
<li>node:pop()</li>
<li>node:getConsole() -- has only 1 function print which allows you to print to the master.</li>
</ul>
<h2 id="master">Master:</h2>
<ul>
<li>master:doToAll(func)</li>
<li>master:register(name,node,func)</li>
<li>master:execute(name,node,...)</li>
<li>master:newNetworkThread(tname,func,name,...)</li>
<li>master:getFreeNode()</li>
<li>master:getRandomNode()</li>
<li>master:sendTo(name,data)</li>
<li>master:pushTo(name,data)</li>
<li>master:peek()</li>
<li>master:pop()</li>
<li>master:OnError(nodename, error) -- if a node has an error this is triggered.</li>
</ul>
<h2 id="bugs">Bugs</h2>
<ul>
<li>Fixed a small typo I made which caused a hard crash when a (coroutine) thread crashes. This only happened if protect was true.</li>
</ul>
<h2 id="going-forward">Going forward:</h2>
<ul>
<li>I am really excited to finally get this update out there, but left one important thing out. enabling of enviroments for each master connected to a node. This would allow a node to isolate code from multiple masters so they cannot interact with each other. This will come out in version 12.1.0 But might take a while due to the job hunt that I am currently going through.</li>
<li>Another feature that I am on the fence about is adding channels. They would work like queues, but are named so you can seperate the data from different channels where only one portion of can see certain data.</li>
<li>I also might add a feature that allows different system threads to consume from a network queue if they are spaned on the same physical machine. This is possible at the moment, just doesn't have a dedicated object for handling this seamlessly. You can do this yourself though.</li>
<li>Another feature that I am thinking of adding is crosstalk which is a setting that would allow nodes to talk to other nodes. I did not add it in this release since there are some issues that need to be worked out and its very messy atm. however since nodes are named. I may allow by default pushing data to another node, but not have the global table to sync since this is where the issue lies.</li>
<li>Improve Performance</li>
<li>Fix supporting libraries (Bin, and net need tons of work)</li>
<li>Look for the bugs</li>
<li>Figure out what I can do to make this library more awesome</li>
</ul>
<p><strong>Note On Queues:</strong> When it comes to network queues, they only send 1 way. What I mean by that is that if the master sends a message to a node, its own queue will not get populated at all. The reason for this is because syncing between which popped from what network queue would make things really slow and would not perform well at all. This means you have to code a bit differently. Use: master getFreeNode() to get the name of the node under the least amount of load. Then handle the sending of data to each node that way.</p>
<p>Now there is a little trick you can do. If you combine both networkmanager and systemthreading manager, then you could have a proxy queue for all system threads that can pull from that &quot;node&quot;. Now data passing within a lan network, (And wan network if using the node manager, though p2p isn't working as i would like and you would need to open ports and make things work. Remember you can define an port for your node so you can port forward that if you want), is fast enough, but the waiting problem is something to consider. Ask yourseld what you are coding and if network paralisim is worth using.</p>
<p><strong>Note:</strong> These examples assume that you have already connected the nodes to the node manager. Also you do not need to use the node manager, but sometimes broadcast does not work as expected and the master doesnot connect to the nodes. Using the node manager offers nice features like: removing nodes from the master when they have disconnected, and automatically telling the master when nodes have been added. A more complete example showing connections regardless of order will be shown in the example folder check it out. New naming scheme too.</p>
<p><strong>NodeManager.lua</strong></p>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
<span class="hljs-keyword">local</span> GLOBAL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
nGLOBAL = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.networkManager"</span>).init()
multi:nodeManager(<span class="hljs-number">12345</span>) <span class="hljs-comment">-- Host a node manager on port: 12345</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Node Manager Running..."</span>)
settings = {
priority = <span class="hljs-number">0</span>, <span class="hljs-comment">-- 1 or 2</span>
protect = <span class="hljs-literal">false</span>,
}
multi:mainloop(settings)
<span class="hljs-comment">-- Thats all you need to run the node manager, everything else is done automatically</span>
</div></code></pre>
<p>Side note: I had a setting called cross talk that would allow nodes to talk to each other. After some tought I decided to not allow nodes to talk to each other directly! You however can create another master withing the node. (The node will connect to its own master as well). This will give you the ability &quot;Cross talk&quot; with each node. Reimplementing the master features into each node directly was unnecessary.</p>
<p><strong>Node.lua</strong></p>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
<span class="hljs-keyword">local</span> GLOBAL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
nGLOBAL = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.networkManager"</span>).init()
master = multi:newNode{
allowRemoteRegistering = <span class="hljs-literal">true</span>, <span class="hljs-comment">-- allows you to register functions from the master on the node, default is false</span>
name = <span class="hljs-literal">nil</span>, <span class="hljs-comment">-- default value</span>
noBroadCast = <span class="hljs-literal">true</span>, <span class="hljs-comment">-- if using the node manager, set this to true to prevent the node from broadcasting</span>
managerDetails = {<span class="hljs-string">"localhost"</span>,<span class="hljs-number">12345</span>}, <span class="hljs-comment">-- connects to the node manager if one exists</span>
}
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">RemoteTest</span><span class="hljs-params">(a,b,c)</span></span> <span class="hljs-comment">-- a function that we will be executing remotely</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Yes I work!"</span>,a,b,c)
<span class="hljs-keyword">end</span>
settings = {
priority = <span class="hljs-number">0</span>, <span class="hljs-comment">-- 1 or 2</span>
protect = <span class="hljs-literal">false</span>, <span class="hljs-comment">-- if something goes wrong we will crash hard, but the speed gain is good</span>
}
multi:mainloop(settings)
</div></code></pre>
<p><strong>Master.lua</strong></p>
<pre class="hljs"><code><div><span class="hljs-comment">-- set up the package</span>
<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
<span class="hljs-comment">-- Import the libraries</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
<span class="hljs-keyword">local</span> GLOBAL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
nGLOBAL = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.networkManager"</span>).init()
<span class="hljs-comment">-- Act as a master node</span>
master = multi:newMaster{
name = <span class="hljs-string">"Main"</span>, <span class="hljs-comment">-- the name of the master</span>
noBroadCast = <span class="hljs-literal">true</span>, <span class="hljs-comment">-- if using the node manager, set this to true to avoid double connections</span>
managerDetails = {<span class="hljs-string">"localhost"</span>,<span class="hljs-number">12345</span>}, <span class="hljs-comment">-- the details to connect to the node manager (ip,port)</span>
}
<span class="hljs-comment">-- Send to all the nodes that are connected to the master</span>
master:doToAll(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(node_name)</span></span>
master:register(<span class="hljs-string">"TestFunc"</span>,node_name,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(msg)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"It works: "</span>..msg)
<span class="hljs-keyword">end</span>)
multi:newAlarm(<span class="hljs-number">2</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(alarm)</span></span>
master:<span class="hljs-built_in">execute</span>(<span class="hljs-string">"TestFunc"</span>,node_name,<span class="hljs-string">"Hello!"</span>)
alarm:Destroy()
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-string">"Checker"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">while</span> <span class="hljs-literal">true</span> <span class="hljs-keyword">do</span>
thread.sleep(<span class="hljs-number">1</span>)
<span class="hljs-keyword">if</span> nGLOBAL[<span class="hljs-string">"test"</span>] <span class="hljs-keyword">then</span>
<span class="hljs-built_in">print</span>(nGLOBAL[<span class="hljs-string">"test"</span>])
thread.kill()
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>)
nGLOBAL[<span class="hljs-string">"test2"</span>]={age=<span class="hljs-number">22</span>}
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">-- Starting the multitasker</span>
settings = {
priority = <span class="hljs-number">0</span>, <span class="hljs-comment">-- 0, 1 or 2</span>
protect = <span class="hljs-literal">false</span>,
}
multi:mainloop(settings)
</div></code></pre>
<p><strong>Note:</strong> There are many ways to work this. You could send functions/methods to a node like haw systemThreadedJobQueue work. Or you could write the methods you want in advance in each node file and send over the command to run the method with arguments ... and it will return the results. Network threading is different than system threading. Data transfer is really slow compared to system threading. In fact the main usage for this feature in the library is mearly for experments. Right now I honestly do not know what I want to do with this feature and what I am going to add to this feature. The ablitiy to use this frature like a system thread will be possible, but there are some things that differ.</p>
<h2 id="changed">Changed:</h2>
<ul>
<li>multi:mainloop(settings) -- now takes a table of settings</li>
<li>multi:uManager(settings) -- now takes a table of settings</li>
<li>connections:holdUT(n) can take a number now. Where they will not continue until it gets triggered <strong>n</strong> times Added 3 updated ago, forgot to list it as a new feature</li>
<li>The way you require the library has changed a bit! This will change how you start your code, but it isn't a big change.</li>
<li>These changes have led to significant performance improvements</li>
</ul>
<p>Modifying the global stack is not the best way to manage or load in the library.</p>
<pre class="hljs"><code><div><span class="hljs-comment">-- Base Library</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
<span class="hljs-comment">-- In Lanes</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
<span class="hljs-keyword">local</span> GLOBAL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
<span class="hljs-comment">-- In Love2d</span>
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
GLOBAL, THREAD = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.loveManager"</span>).init()
<span class="hljs-comment">-- In Luvit</span>
<span class="hljs-keyword">local</span> timer = <span class="hljs-built_in">require</span>(<span class="hljs-string">"timer"</span>)
<span class="hljs-keyword">local</span> thread = <span class="hljs-built_in">require</span>(<span class="hljs-string">"thread"</span>)
multi = <span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.luvitManager"</span>).init(thread,timer) <span class="hljs-comment">-- Luvit does not cuttently have support for the global table or threads.</span>
</div></code></pre>
<h2 id="improvements">Improvements:</h2>
<ul>
<li>Updated the ThreadedConsole, now 100x faster!</li>
<li>Updated the ThreadedConections, .5x faster!</li>
<li>Both multi:uManager(settings) and multi:mainloop(settings) provide about the same performance! Though uManager is slightly slower due to function overhead, but still really close.</li>
<li>Revamped pausing mulit-objects they now take up less memory when being used</li>
</ul>
<h2 id="removed">Removed:</h2>
<ul>
<li>require(&quot;multi.all&quot;) -- We are going into a new version of the library so this is nolonger needed</li>
<li>require(&quot;multi.compat.backwards[1,5,0]&quot;) -- This is really old and is no longer supported going forward</li>
<li>multi:Do_Order()</li>
<li>multi:enablePriority()</li>
<li>multi:enablePriority2()</li>
<li>multi:protect()</li>
<li>multi:unProtect()</li>
<li>multi:protectedMainloop()</li>
<li>multi:unprotectedMainloop()</li>
<li>multi:prioritizedMainloop1()</li>
<li>multi:prioritizedMainloop2()</li>
<li>Removed Tasks</li>
<li>multi:oneTime(func,...) -- never seen use of this, plus multi-functions can do this by pausing the function after the first use, and is much faster anyway</li>
<li>multi:reboot() -- removed due to having no real use</li>
<li>multi:hold() -- removed due to threads being able to do the same thing and way better too</li>
<li>multi:waitFor() -- the thread variant does something completely different</li>
<li>multi.resurrect() -- removed due to being useless</li>
</ul>
<p>The new settings table makes all of these possible and removes a lot of function overhead that was going on before.</p>
<pre class="hljs"><code><div>multi:mainloop{
priority = <span class="hljs-number">1</span>, <span class="hljs-comment">-- 1 or 2</span>
protect = <span class="hljs-literal">true</span>, <span class="hljs-comment">-- Should I use pcall to ignore errors?</span>
preLoop = <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self)</span></span> <span class="hljs-comment">-- a function that is called before the mainloop does its thing</span>
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Hello whats up!"</span>)
<span class="hljs-built_in">error</span>(<span class="hljs-string">":P"</span>)
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
multi.OnError(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(obj,err)</span></span>
<span class="hljs-built_in">print</span>(err)
obj:Destroy()
<span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>,
}
</div></code></pre>
<h1 id="update-1111---small-clarification-on-love">Update: 1.11.1 - Small Clarification on Love</h1>
<p>Love2d change:
I didn't fully understand how the new love.run() function worked.
So, it works by returning a function that allows updating the mainloop. So, this means that we can do something like this:</p>
<pre class="hljs"><code><div>multi:newLoop(love.run()) <span class="hljs-comment">-- Run the mainloop here, cannot use thread.* when using this object</span>
<span class="hljs-comment">-- or</span>
multi:newThread(<span class="hljs-string">"MainLoop"</span>,love.run()) <span class="hljs-comment">-- allows you to use the thread.*</span>
<span class="hljs-comment">--And you'll need to throw this in at the end</span>
multi:mainloop()
</div></code></pre>
<p>The priority management system should be quite useful with this change.
NOTE: <strong>multiobj:hold() will be removed in the next version!</strong> This is something I feel should be changed, since threads(coroutines) do the job great, and way better than my holding method that I throw together 5 years ago. I doubt this is being used by many anyway. Version 1.11.2 or version 2.0.0 will have this change. The next update may be either, bug fixes if any or network parallelism.</p>
<p>TODO: Add auto priority adjustments when working with priority and stuff... If the system is under heavy load it will dial some things deemed as less important down and raise the core processes.</p>
<h1 id="update-1110">Update: 1.11.0</h1>
<p>Added:</p>
<ul>
<li>SystemThreadedConsole(name) -- Allow each thread to print without the sync issues that make prints merge and hard to read.</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-comment">-- MainThread:</span>
console = multi:newSystemThreadedConsole(<span class="hljs-string">"console"</span>):init()
<span class="hljs-comment">-- Thread:</span>
console = THREAD.waitFor(<span class="hljs-string">"console"</span>):init()
<span class="hljs-comment">-- using the console</span>
console:<span class="hljs-built_in">print</span>(...)
console:<span class="hljs-built_in">write</span>(...) <span class="hljs-comment">-- kind of useless for formatting code though. other threads can eaisly mess this up.</span>
</div></code></pre>
<p>Fixed/Updated:</p>
<ul>
<li>Love2d 11.1 support is now here! Will now require these lines in your main.lua file</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">love.update</span><span class="hljs-params">(dt)</span></span>
multi:uManager(dt) <span class="hljs-comment">-- runs the main loop of the multitasking library</span>
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">love.draw</span><span class="hljs-params">()</span></span>
multi.dManager() <span class="hljs-comment">-- If using my guimanager, if not omit this</span>
<span class="hljs-keyword">end</span>
</div></code></pre>
<h1 id="update-1100">Update: 1.10.0</h1>
<p><strong>Note:</strong> The library is now considered to be stable!
<strong>Upcoming:</strong> Network parallelism is on the way. It is in the works and should be released soon</p>
<h2 id="added">Added:</h2>
<ul>
<li>isMainThread true/nil</li>
<li>multi:newSystemThreadedConnection(name,protect) -- Works like normal connections, but are able to trigger events across threads</li>
</ul>
<p>Example of threaded connections</p>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
<span class="hljs-keyword">local</span> GLOBAL,THREAD=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
multi:newSystemThread(<span class="hljs-string">"Test_Thread_1"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
connOut = THREAD.waitFor(<span class="hljs-string">"ConnectionNAMEHERE"</span>):init()
connOut(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(arg)</span></span>
<span class="hljs-built_in">print</span>(THREAD.getName(),<span class="hljs-built_in">arg</span>)
<span class="hljs-keyword">end</span>)
multi:mainloop()
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"Test_Thread_2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
connOut = THREAD.waitFor(<span class="hljs-string">"ConnectionNAMEHERE"</span>):init()
connOut(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(arg)</span></span>
<span class="hljs-built_in">print</span>(THREAD.getName(),<span class="hljs-built_in">arg</span>)
<span class="hljs-keyword">end</span>)
multi:mainloop()
<span class="hljs-keyword">end</span>)
connOut = multi:newSystemThreadedConnection(<span class="hljs-string">"ConnectionNAMEHERE"</span>):init()
a=<span class="hljs-number">0</span>
connOut(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(arg)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Main"</span>,<span class="hljs-built_in">arg</span>)
<span class="hljs-keyword">end</span>)
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
a=a+<span class="hljs-number">1</span>
connOut:Fire(<span class="hljs-string">"Test From Main Thread: "</span>..a..<span class="hljs-string">"\n"</span>)
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
</div></code></pre>
<h2 id="fixed">Fixed:</h2>
<p><strong>loveManager</strong> and <strong>shared threading objects</strong></p>
<ul>
<li>sThread.waitFor()</li>
<li>sThread.hold()</li>
<li>some typos</li>
<li>SystemThreadedTables (They now work on both lanes and love2d as expected)</li>
</ul>
<p>Example of threaded tables</p>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;?.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
<span class="hljs-keyword">local</span> GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
multi:newSystemThread(<span class="hljs-string">"Test_Thread_1"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
test = sThread.waitFor(<span class="hljs-string">"testthing"</span>):init()
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"------"</span>)
<span class="hljs-keyword">for</span> i,v <span class="hljs-keyword">in</span> <span class="hljs-built_in">pairs</span>(test.tab) <span class="hljs-keyword">do</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"T1"</span>,i,v)
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
multi:mainloop()
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"Test_Thread_1"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi"</span>)
test = sThread.waitFor(<span class="hljs-string">"testthing"</span>):init()
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"------"</span>)
<span class="hljs-keyword">for</span> i,v <span class="hljs-keyword">in</span> <span class="hljs-built_in">pairs</span>(test.tab) <span class="hljs-keyword">do</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"T2"</span>,i,v)
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
multi:mainloop()
<span class="hljs-keyword">end</span>)
test = multi:newSystemThreadedTable(<span class="hljs-string">"testthing"</span>):init()
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">local</span> a,b = multi.randomString(<span class="hljs-number">8</span>),multi.randomString(<span class="hljs-number">4</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"&gt;"</span>,a,b)
test[a]=b
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
multi:mainloop()
</div></code></pre>
<h1 id="update-192">Update: 1.9.2</h1>
<h2 id="added">Added:</h2>
<ul>
<li>(THREAD).kill() kills a thread. Note: THREAD is based on what you name it</li>
<li>newTimeStamper() Part of the persistent systems... Useful for when you are running this library for a long amount of time... like months and years! Though daily, hourly, minute events do also exist.
Allows one to hook to timed events such as whenever the clock strikes midnight or when the day turns to Monday. The event is only done once though. so as soon as Monday is set it would trigger then not trigger again until next Monday
works for seconds, minutes, days, months, year.</li>
</ul>
<pre class="hljs"><code><div>stamper = multi:newTimeStamper()
stamper:OnTime(int hour,int minute,int second,func) <span class="hljs-keyword">or</span> stamper:OnTime(<span class="hljs-built_in">string</span> <span class="hljs-built_in">time</span>,func) <span class="hljs-built_in">time</span> as <span class="hljs-number">00</span>:<span class="hljs-number">00</span>:<span class="hljs-number">00</span>
stamper:OnHour(int hour,func)
stamper:OnMinute(int minute,func)
stamper:OnSecond(int second,func)
stamper:OnDay(int day,func) <span class="hljs-keyword">or</span> stamper:OnDay(<span class="hljs-built_in">string</span> day,func) Mon, Tues, Wed, etc...
stamper:OnMonth(int month,func)
stamper:OnYear(int year,func)
</div></code></pre>
<h2 id="improved">Improved:</h2>
<ul>
<li>LoadBalancing, well better load balancing than existed before. This one allowed for multiple processes to have their own load reading. Calling this on the multi object will return the total load for the entire multi environment... loads of other processes are indeed affected by what other processes are doing. However, if you combine propriety to the mix of things then you will get differing results... these results however will most likely be higher than normal... different priorities will have different default thresholds of performance.</li>
</ul>
<h2 id="fixed">Fixed:</h2>
<ul>
<li>Thread.getName() should now work on lanes and love2d, haven't tested it much with the luvit side of things...</li>
<li>A bug with the lovemanager table.remove arguments were backwards</li>
<li>The queue object in the love2d threading has been fixed! It now supports sending all objects (even functions if no upvalues are present!)</li>
</ul>
<h2 id="changed">Changed:</h2>
<ul>
<li>SystemThreadedJobQueues now have built in load management so they are not constantly at 100% CPU usage.</li>
<li>SystemThreadedJobQueues pushJob now returns an id of that job which will match the same one that OnJobCompleted returns</li>
</ul>
<h1 id="update-191---threads-can-now-argue">Update: 1.9.1 - Threads can now argue</h1>
<h2 id="added">Added:</h2>
<ul>
<li>Integration &quot;multi.integration.luvitManager&quot;</li>
<li>Limited... Only the basic multi:newSystemThread(...) will work</li>
<li>Not even data passing will work other than arguments... If using the bin library, you can pass tables and function... Even full objects if inner recursion is not present.</li>
</ul>
<h2 id="updated">Updated:</h2>
<ul>
<li>multi:newSystemThread(name,func,...)</li>
<li>It will now pass the ... to the func(). Do not know why this wasn't done in the first place</li>
<li>Also multi:getPlatform(will now return &quot;luvit&quot; if using luvit... Though Idk if module creators would use the multi library when inside the luvit environment</li>
</ul>
<h1 id="update-190">Update: 1.9.0</h1>
<h2 id="added">Added:</h2>
<ul>
<li>multiobj:ToString() -- returns a string representing the object</li>
<li>multi:newFromString(str) -- creates an object from a string</li>
</ul>
<p>Works on threads and regular objects. Requires the latest bin library to work!</p>
<pre class="hljs"><code><div>talarm=multi:newThreadedAlarm(<span class="hljs-string">"AlarmTest"</span>,<span class="hljs-number">5</span>)
talarm:OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Ring!"</span>)
<span class="hljs-keyword">end</span>)
bin.new(talarm:ToString()):tofile(<span class="hljs-string">"test.dat"</span>)
<span class="hljs-comment">-- multi:newFromString(bin.load("test.dat"))</span>
</div></code></pre>
<p>A more seamless way to use this will be made in the form of state saving.
This is still a WIP
processes, timers, timemasters, watchers, and queuers have not been worked on yet</p>
<h1 id="update-187">Update: 1.8.7</h1>
<h2 id="added">Added:</h2>
<ul>
<li>multi.timer(func,...)</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">test</span><span class="hljs-params">(a,b,c)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Running..."</span>)
a=<span class="hljs-number">0</span>
<span class="hljs-keyword">for</span> i=<span class="hljs-number">1</span>,<span class="hljs-number">1000000000</span> <span class="hljs-keyword">do</span>
a=a+<span class="hljs-number">1</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">return</span> a,b+c
<span class="hljs-keyword">end</span>
<span class="hljs-built_in">print</span>(multi.timer(test,<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>))
<span class="hljs-built_in">print</span>(multi.timer(test,<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>))
<span class="hljs-comment">-- multi.timer returns the time taken then the arguments from the function... Uses unpack so careful of nil values!</span>
</div></code></pre>
<h1 id="update-186">Update: 1.8.6</h1>
<p>Added:</p>
<ul>
<li>jobQueue:doToAll(function)</li>
<li>jobQueue:start() is now required Call this after all calls to registerJob()'s. Calling it afterwards will not guarantee your next push job with that job will work. Not calling this will make pushing jobs impossible!</li>
<li>Fixed a bug with love2d Threaded Queue</li>
<li>Fixed some bugs</li>
<li>Old versions of this library! It stems back from 2012 see rambling for more info...</li>
</ul>
<p>This will run said function in every thread.</p>
<pre class="hljs"><code><div><span class="hljs-comment">-- Going to use love2d code this time, almost the same as last time... See ramblings</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"core.Library"</span>)
GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.loveManager"</span>).init() <span class="hljs-comment">-- load the love2d version of the lanesManager and requires the entire multi library</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"core.GuiManager"</span>)
gui.ff.Color=Color.Black
jQueue=multi:newSystemThreadedJobQueue()
jQueue:registerJob(<span class="hljs-string">"TEST_JOB"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,s)</span></span>
<span class="hljs-built_in">math</span>.<span class="hljs-built_in">randomseed</span>(s)
TEST_JOB2()
<span class="hljs-keyword">return</span> <span class="hljs-built_in">math</span>.<span class="hljs-built_in">random</span>(<span class="hljs-number">0</span>,<span class="hljs-number">255</span>)
<span class="hljs-keyword">end</span>)
jQueue:registerJob(<span class="hljs-string">"TEST_JOB2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Test Works!"</span>)
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">-- 1.8.6 EXAMPLE Change</span>
jQueue:start() <span class="hljs-comment">-- This is now needed!</span>
<span class="hljs-comment">--</span>
jQueue:doToAll(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Doing this 2? times!"</span>)
<span class="hljs-keyword">end</span>)
tableOfOrder={}
jQueue.OnJobCompleted(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(JOBID,n)</span></span>
tableOfOrder[JOBID]=n
<span class="hljs-keyword">if</span> #tableOfOrder==<span class="hljs-number">10</span> <span class="hljs-keyword">then</span>
t.text=<span class="hljs-string">"We got all of the pieces!"</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-keyword">for</span> i=<span class="hljs-number">1</span>,<span class="hljs-number">10</span> <span class="hljs-keyword">do</span> <span class="hljs-comment">-- Job Name of registered function, ... varargs</span>
jQueue:pushJob(<span class="hljs-string">"TEST_JOB"</span>,<span class="hljs-string">"This is a test!"</span>,<span class="hljs-built_in">math</span>.<span class="hljs-built_in">random</span>(<span class="hljs-number">1</span>,<span class="hljs-number">1000000</span>))
<span class="hljs-keyword">end</span>
t=gui:newTextLabel(<span class="hljs-string">"no done yet!"</span>,<span class="hljs-number">0</span>,<span class="hljs-number">0</span>,<span class="hljs-number">300</span>,<span class="hljs-number">100</span>)
t:centerX()
t:centerY()
</div></code></pre>
<h1 id="update-185">Update: 1.8.5</h1>
<h2 id="added">Added:</h2>
<ul>
<li>SystemThreadedExecute(cmd)</li>
</ul>
<p>Allows the execution of system calls without hold up. It is possible to do the same using io.popen()! You decide which works best for you!</p>
<pre class="hljs"><code><div><span class="hljs-keyword">local</span> GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
cmd=multi:newSystemThreadedExecute(<span class="hljs-string">"SystemThreadedExecuteTest.lua"</span>) <span class="hljs-comment">-- This file is important!</span>
cmd.OnCMDFinished(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(code)</span></span> <span class="hljs-comment">-- callback function to grab the exit code... Called when the command goes through</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Got Code: "</span>..code)
<span class="hljs-keyword">end</span>)
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"..."</span>) <span class="hljs-comment">-- lets show that we aren't being held up</span>
<span class="hljs-keyword">end</span>,<span class="hljs-number">1</span>)
multi:mainloop()
</div></code></pre>
<h1 id="update-184">Update: 1.8.4</h1>
<h2 id="added">Added:</h2>
<ul>
<li>multi:newSystemThreadedJobQueue()</li>
<li>Improved stability of the library</li>
<li>Fixed a bug that made the benchmark and getload commands non-thread(coroutine) safe</li>
<li>Tweaked the loveManager to help improve idle CPU usage</li>
<li>Minor tweaks to the coroutine scheduling</li>
</ul>
<h2 id="using-multinewsystemthreadedjobqueue">Using multi:newSystemThreadedJobQueue()</h2>
<p>First you need to create the object
This works the same way as love2d as it does with lanes... It is getting harder to make both work the same way with speed in mind... Anyway...</p>
<pre class="hljs"><code><div><span class="hljs-comment">-- Creating the object using lanes manager to show case this. Examples has the file for love2d</span>
<span class="hljs-keyword">local</span> GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
jQueue=multi:newSystemThreadedJobQueue(n) <span class="hljs-comment">-- this internally creates System threads. By default it will use the # of processors on your system You can set this number though.</span>
<span class="hljs-comment">-- Only create 1 jobqueue! For now, making more than 1 is not supported. You only really need one though. Just register new functions if you want 1 queue to do more. The one reason though is keeping track of jobIDs. I have an idea that I will roll out in the ~~next update~~ eventually.</span>
jQueue:registerJob(<span class="hljs-string">"TEST_JOB"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,s)</span></span>
<span class="hljs-built_in">math</span>.<span class="hljs-built_in">randomseed</span>(s)
<span class="hljs-comment">-- We will push a random #</span>
TEST_JOB2() <span class="hljs-comment">-- You can call other registered functions as well!</span>
<span class="hljs-keyword">return</span> <span class="hljs-built_in">math</span>.<span class="hljs-built_in">random</span>(<span class="hljs-number">0</span>,<span class="hljs-number">255</span>) <span class="hljs-comment">-- send the result to the main thread</span>
<span class="hljs-keyword">end</span>)
jQueue:registerJob(<span class="hljs-string">"TEST_JOB2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Test Works!"</span>) <span class="hljs-comment">-- this is called from the job since it is registered on the same queue</span>
<span class="hljs-keyword">end</span>)
tableOfOrder={} <span class="hljs-comment">-- This is how we will keep order of our completed jobs. There is no guarantee that the order will be correct</span>
jQueue.OnJobCompleted(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(JOBID,n)</span></span> <span class="hljs-comment">-- whenever a job is completed you hook to the event that is called. This passes the JOBID filled by the returns of the job</span>
<span class="hljs-comment">-- JOBID is the completed job, starts at 1 and counts up by 1.</span>
<span class="hljs-comment">-- Threads finish at different times so jobIDs may be passed out of order! Be sure to have a way to order them</span>
tableOfOrder[JOBID]=n <span class="hljs-comment">-- we order ours by putting them into a table</span>
<span class="hljs-keyword">if</span> #tableOfOrder==<span class="hljs-number">10</span> <span class="hljs-keyword">then</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"We got all of the pieces!"</span>)
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">-- Lets push the jobs now</span>
<span class="hljs-keyword">for</span> i=<span class="hljs-number">1</span>,<span class="hljs-number">10</span> <span class="hljs-keyword">do</span> <span class="hljs-comment">-- Job Name of registered function, ... varargs</span>
jQueue:pushJob(<span class="hljs-string">"TEST_JOB"</span>,<span class="hljs-string">"This is a test!"</span>,<span class="hljs-built_in">math</span>.<span class="hljs-built_in">random</span>(<span class="hljs-number">1</span>,<span class="hljs-number">1000000</span>))
<span class="hljs-keyword">end</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"I pushed all of the jobs :)"</span>)
multi:mainloop() <span class="hljs-comment">-- Start the main loop :D</span>
</div></code></pre>
<p>Thats it from this version!</p>
<h1 id="update-183---mainloop-recieves-some-needed-overhauling">Update: 1.8.3 - Mainloop recieves some needed overhauling</h1>
<h2 id="added">Added:</h2>
<p><strong>New Mainloop functions</strong> Below you can see the slight differences... Function overhead is not too bad in lua but has a real difference. multi:mainloop() and multi:unprotectedMainloop() use the same algorithm yet the dedicated unprotected one is slightly faster due to having less function overhead.</p>
<ul>
<li>multi:mainloop()* -- Bench: 16830003 Steps in 3 second(s)!</li>
<li>multi:protectedMainloop() -- Bench: 16699308 Steps in 3 second(s)!</li>
<li>multi:unprotectedMainloop() -- Bench: 16976627 Steps in 3 second(s)!</li>
<li>multi:prioritizedMainloop1() -- Bench: 15007133 Steps in 3 second(s)!</li>
<li>multi:prioritizedMainloop2() -- Bench: 15526248 Steps in 3 second(s)!</li>
</ul>
<p>* The OG mainloop function remains the same and old methods to achieve what we have with the new ones still exist</p>
<p>These new methods help by removing function overhead that is caused through the original mainloop function. The one downside is that you no longer have the flexibility to change the processing during runtime.</p>
<p>However there is a work around! You can use processes to run multiobjs as well and use the other methods on them.</p>
<p>I may make a full comparison between each method and which is faster, but for now trust that the dedicated ones with less function overhead are infect faster. Not by much but still faster.</p>
<h1 id="update-182">Update: 1.8.2</h1>
<h2 id="added">Added:</h2>
<ul>
<li>multi:newsystemThreadedTable(name) NOTE: Metatables are not supported in transfers. However there is a work around obj:init() does this. Look in the multi/integration/shared/shared.lua files to see how I did it!</li>
<li>Modified the GLOBAL metatable to sync before doing its tests</li>
<li>multi._VERSION was multi.Version, felt it would be more consistent this way... I left the old way of getting the version just in case someone has used that way. It will eventually be gone. Also multi:getVersion() will do the job just as well and keep your code nice and update related bug free!</li>
<li>Also everything that is included in the: multi/integration/shared/shared.lua (Which is loaded automatically) works in both lanes and love2d environments!</li>
</ul>
<p>The threaded table is setup just like the threaded queue.</br>
It provids GLOBAL like features without having to write to GLOBAL!</br>
This is useful for module creators who want to keep their data private, but also use GLOBAL like coding.</br>
It has a few features that makes it a bit better than plain ol GLOBAL (For now...)
(ThreadedTable - TT for short) This was modified by a recent version that removed the need for a sync command</p>
<ul>
<li>TT:waitFor(name)</li>
<li>TT:sync()</li>
<li>TT[&quot;var&quot;]=value</li>
<li>print(TT[&quot;var&quot;])</li>
</ul>
<p>we also have the &quot;sync&quot; method, this one was made for love2d because we do a syncing trick to get data in a table format. The lanes side has a sync method as well so no worries. Using indexing calls sync once and may grab your variable. This allows you to have the lanes indexing 'like' syntax when doing regular indexing in love2d side of the module. As of right now both sides work flawlessly! And this effect is now the GLOBAL as well</br></p>
<p>On GLOBALS sync is a internal method for keeping the GLOBAL table in order. You can still use sThread.waitFor(name) to wait for variables that may or may not yet exist!</p>
<h2 id="time-for-some-examplesusing-multinewsystemthreadedtablename">Time for some examples:
Using multi:newSystemThreadedTable(name)</h2>
<pre class="hljs"><code><div><span class="hljs-comment">-- lanes Desktop lua! <span class="hljs-doctag">NOTE:</span> this is in lanesintergratetest6.lua in the examples folder</span>
<span class="hljs-keyword">local</span> GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
test=multi:newSystemThreadedTable(<span class="hljs-string">"YO"</span>):init()
test[<span class="hljs-string">"test1"</span>]=<span class="hljs-string">"lol"</span>
multi:newSystemThread(<span class="hljs-string">"test"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
tab=sThread.waitFor(<span class="hljs-string">"YO"</span>):init()
<span class="hljs-built_in">print</span>(tab:has(<span class="hljs-string">"test1"</span>))
sThread.sleep(<span class="hljs-number">3</span>)
tab[<span class="hljs-string">"test2"</span>]=<span class="hljs-string">"Whats so funny?"</span>
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-string">"test2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(test:waitFor(<span class="hljs-string">"test2"</span>))
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<pre class="hljs"><code><div><span class="hljs-comment">-- love2d lua! <span class="hljs-doctag">NOTE:</span> this is in main4.lua in the love2d examples</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"core.Library"</span>)
GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.loveManager"</span>).init() <span class="hljs-comment">-- load the love2d version of the lanesManager and requires the entire multi library</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"core.GuiManager"</span>)
gui.ff.Color=Color.Black
test=multi:newSystemThreadedTable(<span class="hljs-string">"YO"</span>):init()
test[<span class="hljs-string">"test1"</span>]=<span class="hljs-string">"lol"</span>
multi:newSystemThread(<span class="hljs-string">"test"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
tab=sThread.waitFor(<span class="hljs-string">"YO"</span>):init()
<span class="hljs-built_in">print</span>(tab[<span class="hljs-string">"test1"</span>])
sThread.sleep(<span class="hljs-number">3</span>)
tab[<span class="hljs-string">"test2"</span>]=<span class="hljs-string">"Whats so funny?"</span>
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-string">"test2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(test:waitFor(<span class="hljs-string">"test2"</span>))
t.text=<span class="hljs-string">"DONE!"</span>
<span class="hljs-keyword">end</span>)
t=gui:newTextLabel(<span class="hljs-string">"not done yet!"</span>,<span class="hljs-number">0</span>,<span class="hljs-number">0</span>,<span class="hljs-number">300</span>,<span class="hljs-number">100</span>)
t:centerX()
t:centerY()
</div></code></pre>
<h1 id="update-181">Update: 1.8.1</h1>
<p>No real change!</br>
Changed the structure of the library. Combined the coroutine based threads into the core!</br>
Only compat and integrations are not part of the core and never will be by nature.</br>
This should make the library more convent to use.</br>
I left multi/all.lua file so if anyone had libraries/projects that used that it will still work!</br>
Updated from 1.7.6 to 1.8.0</br> (How much thread could a thread htread if a thread could thread thread?)
Added:</br></p>
<ul>
<li>multi:newSystemThreadedQueue()</li>
<li>multi:systemThreadedBenchmark()</li>
<li>More example files</li>
<li>multi:canSystemThread() -- true if an integration was added false otherwise (For module creation)</li>
<li>Fixed a few bugs in the loveManager</li>
</ul>
<h2 id="using-multisystemthreadedbenchmark">Using multi:systemThreadedBenchmark()</h2>
<pre class="hljs"><code><div><span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>=<span class="hljs-string">"?/init.lua;"</span>..<span class="hljs-built_in">package</span>.<span class="hljs-built_in">path</span>
<span class="hljs-keyword">local</span> GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
multi:systemThreadedBenchmark(<span class="hljs-number">3</span>):OnBench(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,count)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"First Bench: "</span>..count)
multi:systemThreadedBenchmark(<span class="hljs-number">3</span>,<span class="hljs-string">"All Threads: "</span>)
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<h2 id="using-multinewsystemthreadedqueue">Using multi:newSystemThreadedQueue()</h2>
<p>Quick Note: queues shared across multiple objects will be pulling from the same &quot;queue&quot; keep this in mind when coding! <s>Also the queue respects direction a push on the thread side cannot be popped on the thread side... Same goes for the mainthread!</br></s> Turns out I was wrong about this...</p>
<pre class="hljs"><code><div><span class="hljs-comment">-- in love2d, this file will be in the same example folder as before, but is named main2.lua</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"core.Library"</span>)
GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.loveManager"</span>).init() <span class="hljs-comment">-- load the love2d version of the lanesManager and requires the entire multi library</span>
<span class="hljs-comment">--IMPORTANT</span>
<span class="hljs-comment">-- Do not make the above local, this is the one difference that the lanesManager does not have</span>
<span class="hljs-comment">-- If these are local the functions will have the upvalues put into them that do not exist on the threaded side</span>
<span class="hljs-comment">-- You will need to ensure that the function does not refer to any upvalues in its code. It will print an error if it does though</span>
<span class="hljs-comment">-- Also, each thread has a .1 second delay! This is used to generate a random value for each thread!</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"core.GuiManager"</span>)
gui.ff.Color=Color.Black
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">multi:newSystemThreadedQueue</span><span class="hljs-params">(name)</span></span> <span class="hljs-comment">-- in love2d this will spawn a channel on both ends</span>
<span class="hljs-keyword">local</span> c={}
c.name=name
<span class="hljs-keyword">if</span> love <span class="hljs-keyword">then</span>
<span class="hljs-keyword">if</span> love.thread <span class="hljs-keyword">then</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">c:init</span><span class="hljs-params">()</span></span>
self.chan=love.thread.getChannel(self.name)
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">self:push</span><span class="hljs-params">(v)</span></span>
self.chan:push(v)
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">self:pop</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">return</span> self.chan:pop()
<span class="hljs-keyword">end</span>
GLOBAL[self.name]=self
<span class="hljs-keyword">return</span> self
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">return</span> c
<span class="hljs-keyword">else</span>
<span class="hljs-built_in">error</span>(<span class="hljs-string">"Make sure you required the love.thread module!"</span>)
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">else</span>
c.linda=lanes.linda()
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">c:push</span><span class="hljs-params">(v)</span></span>
self.linda:send(<span class="hljs-string">"Q"</span>,v)
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">c:pop</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">return</span> ({self.linda:receive(<span class="hljs-number">0</span>,<span class="hljs-string">"Q"</span>)})[<span class="hljs-number">2</span>]
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">c:init</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">return</span> self
<span class="hljs-keyword">end</span>
GLOBAL[name]=c
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">return</span> c
<span class="hljs-keyword">end</span>
queue=multi:newSystemThreadedQueue(<span class="hljs-string">"QUEUE"</span>):init()
queue:push(<span class="hljs-string">"This is a test"</span>)
queue:push(<span class="hljs-string">"This is a test2"</span>)
queue:push(<span class="hljs-string">"This is a test3"</span>)
queue:push(<span class="hljs-string">"This is a test4"</span>)
multi:newSystemThread(<span class="hljs-string">"test2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
queue=sThread.waitFor(<span class="hljs-string">"QUEUE"</span>):init()
data=queue:pop()
<span class="hljs-keyword">while</span> data <span class="hljs-keyword">do</span>
<span class="hljs-built_in">print</span>(data)
data=queue:pop()
<span class="hljs-keyword">end</span>
queue:push(<span class="hljs-string">"DONE!"</span>)
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-string">"test!"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
thread.hold(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-keyword">return</span> queue:pop() <span class="hljs-keyword">end</span>)
t.text=<span class="hljs-string">"Done!"</span>
<span class="hljs-keyword">end</span>)
t=gui:newTextLabel(<span class="hljs-string">"no done yet!"</span>,<span class="hljs-number">0</span>,<span class="hljs-number">0</span>,<span class="hljs-number">300</span>,<span class="hljs-number">100</span>)
t:centerX()
t:centerY()
</div></code></pre>
<h2 id="in-lanes">In Lanes</h2>
<pre class="hljs"><code><div><span class="hljs-comment">-- The code is compatible with each other, I just wanted to show different things you can do in both examples</span>
<span class="hljs-comment">-- This file can be found in the examples folder as lanesintegrationtest4.lua</span>
<span class="hljs-keyword">local</span> GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
queue=multi:newSystemThreadedQueue(<span class="hljs-string">"QUEUE"</span>):init()
queue:push(<span class="hljs-string">"This is a test"</span>)
queue:push(<span class="hljs-string">"This is a test2"</span>)
queue:push(<span class="hljs-string">"This is a test3"</span>)
queue:push(<span class="hljs-string">"This is a test4"</span>)
multi:newSystemThread(<span class="hljs-string">"test2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
queue=sThread.waitFor(<span class="hljs-string">"QUEUE"</span>):init()
data=queue:pop()
<span class="hljs-keyword">while</span> data <span class="hljs-keyword">do</span>
<span class="hljs-built_in">print</span>(data)
data=queue:pop()
<span class="hljs-keyword">end</span>
queue:push(<span class="hljs-string">"This is a test5"</span>)
queue:push(<span class="hljs-string">"This is a test6"</span>)
queue:push(<span class="hljs-string">"This is a test7"</span>)
queue:push(<span class="hljs-string">"This is a test8"</span>)
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-string">"test!"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- this is a lua thread</span>
thread.sleep(<span class="hljs-number">.1</span>)
data=queue:pop()
<span class="hljs-keyword">while</span> data <span class="hljs-keyword">do</span>
<span class="hljs-built_in">print</span>(data)
data=queue:pop()
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<h1 id="update-176">Update: 1.7.6</h1>
<h2 id="fixed">Fixed:</h2>
<h2 id="typos-like-alwaysadded">Typos like always
Added:</h2>
<ul>
<li>multi:getPlatform() -- returns &quot;love2d&quot; if using the love2d platform or returns &quot;lanes&quot; if using lanes for threading</li>
<li>examples files</li>
<li>In Events added method setTask(func) --The old way still works and is more convent to be honest, but I felt a method to do this was needed for completeness.</li>
</ul>
<h2 id="improved">Improved:</h2>
<ul>
<li>Some example files to reflect changes to the core. Changes allow for less typing</br>
loveManager to require the compat if used so you don't need 2 require line to retrieve the library</br></li>
</ul>
<h1 id="update-175">Update: 1.7.5</h1>
<p>Fixed some typos in the readme... (I am sure there are more there are always more)</br>
Added more features for module support</br>
TODO:</br>
Work on performance of the library... I see 3 places where I can make this thing run quicker</br></p>
<p>I'll show case some old versions of the multitasking library eventually so you can see its changes in days past!</br></p>
<h1 id="update-174">Update: 1.7.4</h1>
<p>Added: the example folder which will be populated with more examples in the near future!</br>
The loveManager integration that mimics the lanesManager integration almost exactly to keep coding in both environments as close to possible. This is done mostly for library creation support!</br>
An example of the loveManager in action using almost the same code as the lanesintergreationtest2.lua</br>
NOTE: This code has only been tested to work on love2d version 1.10.2 though it should work version 0.9.0</p>
<pre class="hljs"><code><div><span class="hljs-built_in">require</span>(<span class="hljs-string">"core.Library"</span>) <span class="hljs-comment">-- Didn't add this to a repo yet! Will do eventually... Allows for injections and other cool things</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.compat.love2d"</span>) <span class="hljs-comment">-- allows for multitasking and binds my libraries to the love2d engine that i am using</span>
GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.loveManager"</span>).init() <span class="hljs-comment">-- load the love2d version of the lanesManager</span>
<span class="hljs-comment">--IMPORTANT</span>
<span class="hljs-comment">-- Do not make the above local, this is the one difference that the lanesManager does not have</span>
<span class="hljs-comment">-- If these are local the functions will have the upvalues put into them that do not exist on the threaded side</span>
<span class="hljs-comment">-- You will need to ensure that the function does not refer to any upvalues in its code. It will print an error if it does though</span>
<span class="hljs-comment">-- Also each thread has a .1 second delay! This is used to generate a random values for each thread!</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"core.GuiManager"</span>) <span class="hljs-comment">-- allows the use of graphics in the program.</span>
gui.ff.Color=Color.Black
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">comma_value</span><span class="hljs-params">(amount)</span></span>
<span class="hljs-keyword">local</span> formatted = amount
<span class="hljs-keyword">while</span> <span class="hljs-literal">true</span> <span class="hljs-keyword">do</span>
formatted, k = <span class="hljs-built_in">string</span>.<span class="hljs-built_in">gsub</span>(formatted, <span class="hljs-string">"^(-?%d+)(%d%d%d)"</span>, <span class="hljs-string">'%1,%2'</span>)
<span class="hljs-keyword">if</span> (k==<span class="hljs-number">0</span>) <span class="hljs-keyword">then</span>
<span class="hljs-keyword">break</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">return</span> formatted
<span class="hljs-keyword">end</span>
multi:newSystemThread(<span class="hljs-string">"test1"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- Another difference is that the multi library is already loaded in the threaded enviroment as well as a call to multi:mainloop()</span>
multi:benchMark(sThread.waitFor(<span class="hljs-string">"Bench"</span>),<span class="hljs-literal">nil</span>,<span class="hljs-string">"Thread 1"</span>):OnBench(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,c)</span></span> GLOBAL[<span class="hljs-string">"T1"</span>]=c multi:Stop() <span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"test2"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- spawns a thread in another lua process</span>
multi:benchMark(sThread.waitFor(<span class="hljs-string">"Bench"</span>),<span class="hljs-literal">nil</span>,<span class="hljs-string">"Thread 2"</span>):OnBench(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,c)</span></span> GLOBAL[<span class="hljs-string">"T2"</span>]=c multi:Stop() <span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"test3"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- spawns a thread in another lua process</span>
multi:benchMark(sThread.waitFor(<span class="hljs-string">"Bench"</span>),<span class="hljs-literal">nil</span>,<span class="hljs-string">"Thread 3"</span>):OnBench(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,c)</span></span> GLOBAL[<span class="hljs-string">"T3"</span>]=c multi:Stop() <span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"test4"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- spawns a thread in another lua process</span>
multi:benchMark(sThread.waitFor(<span class="hljs-string">"Bench"</span>),<span class="hljs-literal">nil</span>,<span class="hljs-string">"Thread 4"</span>):OnBench(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,c)</span></span> GLOBAL[<span class="hljs-string">"T4"</span>]=c multi:Stop() <span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"test5"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- spawns a thread in another lua process</span>
multi:benchMark(sThread.waitFor(<span class="hljs-string">"Bench"</span>),<span class="hljs-literal">nil</span>,<span class="hljs-string">"Thread 5"</span>):OnBench(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,c)</span></span> GLOBAL[<span class="hljs-string">"T5"</span>]=c multi:Stop() <span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"test6"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- spawns a thread in another lua process</span>
multi:benchMark(sThread.waitFor(<span class="hljs-string">"Bench"</span>),<span class="hljs-literal">nil</span>,<span class="hljs-string">"Thread 6"</span>):OnBench(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,c)</span></span> GLOBAL[<span class="hljs-string">"T6"</span>]=c multi:Stop() <span class="hljs-keyword">end</span>)
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"Combiner"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- spawns a thread in another lua process</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">comma_value</span><span class="hljs-params">(amount)</span></span>
<span class="hljs-keyword">local</span> formatted = amount
<span class="hljs-keyword">while</span> <span class="hljs-literal">true</span> <span class="hljs-keyword">do</span>
formatted, k = <span class="hljs-built_in">string</span>.<span class="hljs-built_in">gsub</span>(formatted, <span class="hljs-string">"^(-?%d+)(%d%d%d)"</span>, <span class="hljs-string">'%1,%2'</span>)
<span class="hljs-keyword">if</span> (k==<span class="hljs-number">0</span>) <span class="hljs-keyword">then</span>
<span class="hljs-keyword">break</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">return</span> formatted
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">local</span> b=comma_value(<span class="hljs-built_in">tostring</span>(sThread.waitFor(<span class="hljs-string">"T1"</span>)+sThread.waitFor(<span class="hljs-string">"T2"</span>)+sThread.waitFor(<span class="hljs-string">"T3"</span>)+sThread.waitFor(<span class="hljs-string">"T4"</span>)+sThread.waitFor(<span class="hljs-string">"T5"</span>)+sThread.waitFor(<span class="hljs-string">"T6"</span>)))
GLOBAL[<span class="hljs-string">"DONE"</span>]=b
<span class="hljs-keyword">end</span>)
multi:newThread(<span class="hljs-string">"test0"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-comment">-- sThread.waitFor("DONE") -- lets hold the main thread completely so we don't eat up cpu</span>
<span class="hljs-comment">-- os.exit()</span>
<span class="hljs-comment">-- when the main thread is holding there is a chance that error handling on the system threads may not work!</span>
<span class="hljs-comment">-- instead we can do this</span>
<span class="hljs-keyword">while</span> <span class="hljs-literal">true</span> <span class="hljs-keyword">do</span>
thread.skip(<span class="hljs-number">1</span>) <span class="hljs-comment">-- allow error handling to take place... Otherwise lets keep the main thread running on the low</span>
<span class="hljs-comment">-- Before we held just because we could... But this is a game and we need to have logic continue</span>
<span class="hljs-comment">--sThreadM.sleep(.001) -- Sleeping for .001 is a great way to keep cpu usage down. Make sure if you aren't doing work to rest. Abuse the hell out of GLOBAL if you need to :P</span>
<span class="hljs-keyword">if</span> GLOBAL[<span class="hljs-string">"DONE"</span>] <span class="hljs-keyword">then</span>
t.text=<span class="hljs-string">"Bench: "</span>..GLOBAL[<span class="hljs-string">"DONE"</span>]
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>)
GLOBAL[<span class="hljs-string">"Bench"</span>]=<span class="hljs-number">3</span>
t=gui:newTextLabel(<span class="hljs-string">"no done yet!"</span>,<span class="hljs-number">0</span>,<span class="hljs-number">0</span>,<span class="hljs-number">300</span>,<span class="hljs-number">100</span>)
t:centerX()
t:centerY()
</div></code></pre>
<h1 id="update-173">Update: 1.7.3</h1>
<p>Changed how requiring the library works!
<code>require(&quot;multi.all&quot;)</code> Will still work as expected; however, with the exception of threading, compat, and integrations everything else has been moved into the core of the library.</p>
<pre class="hljs"><code><div><span class="hljs-comment">-- This means that these are no longer required and will cause an error if done so</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.loop"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.alarm"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.updater"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.tloop"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.watcher"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.tstep"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.step"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.task"</span>)
<span class="hljs-comment">-- ^ they are all part of the core now</span>
</div></code></pre>
<h1 id="update-172">Update: 1.7.2</h1>
<p>Moved updaters, loops, and alarms into the init.lua file. I consider them core features and they are referenced in the init.lua file so they need to exist there. Threaded versions are still separate though. Added another example file</p>
<h1 id="update-171---bug-fixes-only">Update: 1.7.1 - Bug Fixes Only</h1>
<h2 id="%C2%AF%E3%83%84%C2%AF">¯\<em>(ツ)</em>/¯</h2>
<h1 id="update-170---threading-the-systems">Update: 1.7.0 - Threading the systems</h1>
<p>Modified: multi.integration.lanesManager.lua
It is now in a stable and simple state works with the latest lanes version! Tested with version 3.11 I cannot promise that everything will work with earlier versions. Future versions are good though.</br>
Example Usage:</br>
sThread is a handle to a global interface for system threads to interact with themselves</br>
thread is the interface for multithreads as seen in the threading section</br></p>
<p>GLOBAL a table that can be used throughout each and every thread</p>
<p>sThreads have a few methods</br>
sThread.set(name,val) -- you can use the GLOBAL table instead modifies the same table anyway</br>
sThread.get(name) -- you can use the GLOBAL table instead modifies the same table anyway</br>
sThread.waitFor(name) -- waits until a value exists, if it does it returns it</br>
sThread.getCores() -- returns the number of cores on your cpu</br>
sThread.sleep(n) -- sleeps for a bit stopping the entire thread from running</br>
sThread.hold(n) -- sleeps until a condition is met</br></p>
<pre class="hljs"><code><div><span class="hljs-keyword">local</span> GLOBAL,sThread=<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.integration.lanesManager"</span>).init()
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.all"</span>)
multi:newAlarm(<span class="hljs-number">2</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self)</span></span>
GLOBAL[<span class="hljs-string">"NumOfCores"</span>]=sThread.getCores()
<span class="hljs-keyword">end</span>)
multi:newAlarm(<span class="hljs-number">7</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self)</span></span>
GLOBAL[<span class="hljs-string">"AnotherTest"</span>]=<span class="hljs-literal">true</span>
<span class="hljs-keyword">end</span>)
multi:newAlarm(<span class="hljs-number">13</span>):OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self)</span></span>
GLOBAL[<span class="hljs-string">"FinalTest"</span>]=<span class="hljs-literal">true</span>
<span class="hljs-keyword">end</span>)
multi:newSystemThread(<span class="hljs-string">"test"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span> <span class="hljs-comment">-- spawns a thread in another lua process</span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.all"</span>) <span class="hljs-comment">-- now you can do all of your coding with the multi library! You could even spawn more threads from here with the integration. You would need to require the interaction again though</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Waiting for variable: NumOfCores"</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Got it: "</span>,sThread.waitFor(<span class="hljs-string">"NumOfCores"</span>))
sThread.hold(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">return</span> GLOBAL[<span class="hljs-string">"AnotherTest"</span>] <span class="hljs-comment">-- note this would hold the entire systemthread. Spawn a coroutine thread using multi:newThread() or multi:newThreaded...</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Holding works!"</span>)
multi:newThread(<span class="hljs-string">"tests"</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
thread.hold(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
<span class="hljs-keyword">return</span> GLOBAL[<span class="hljs-string">"FinalTest"</span>] <span class="hljs-comment">-- note this will not hold the entire systemthread. As seen with the TLoop constantly going!</span>
<span class="hljs-keyword">end</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Final test works!"</span>)
<span class="hljs-built_in">os</span>.<span class="hljs-built_in">exit</span>()
<span class="hljs-keyword">end</span>)
<span class="hljs-keyword">local</span> a=<span class="hljs-number">0</span>
multi:newTLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>
a=a+<span class="hljs-number">1</span>
<span class="hljs-built_in">print</span>(a)
<span class="hljs-keyword">end</span>,<span class="hljs-number">.5</span>)
multi:mainloop()
<span class="hljs-keyword">end</span>)
multi:mainloop()
</div></code></pre>
<h1 id="update-160">Update: 1.6.0</h1>
<h2 id="changed">Changed:</h2>
<ul>
<li>steps</li>
<li>loops</li>
</ul>
<pre class="hljs"><code><div><span class="hljs-comment">-- Was</span>
step:OnStep(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(pos,self)</span></span> <span class="hljs-comment">-- same goes for tsteps as well</span>
<span class="hljs-built_in">print</span>(pos)
<span class="hljs-keyword">end</span>)
multi:newLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(dt,self)</span></span>
<span class="hljs-built_in">print</span>(dt)
<span class="hljs-keyword">end</span>)
<span class="hljs-comment">-- Is now</span>
step:OnStep(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,pos)</span></span> <span class="hljs-comment">-- same goes for tsteps as wellc</span>
<span class="hljs-built_in">print</span>(pos)
<span class="hljs-keyword">end</span>)
multi:newLoop(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(self,dt)</span></span>
<span class="hljs-built_in">print</span>(dt)
<span class="hljs-keyword">end</span>)
</div></code></pre>
<p>Reasoning I wanted to keep objects consistent, but a lot of my older libraries use the old way of doing things. Therefore, I added a backwards module</p>
<p><strong>Note from the future:</strong> That module has been canned. To be honest most features this low in the changelog are outdated and probably do not work.</p>
<pre class="hljs"><code><div><span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.all"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"multi.compat.backwards[1,5,0]"</span>) <span class="hljs-comment">-- allows for the use of features that were scrapped/changed in 1.6.0+</span>
</div></code></pre>
<h1 id="update-150">Update: 1.5.0</h1>
<h2 id="added">Added:</h2>
<ul>
<li>An easy way to manage timeouts</li>
<li>Small bug fixes</li>
</ul>
<h1 id="update-141-4102017---first-public-release-of-the-library">Update: 1.4.1 (4/10/2017) - First Public release of the library</h1>
<p>Added:</p>
<ul>
<li>SystemThreading very infancy</li>
</ul>
<h2 id="change">Change:</h2>
<ul>
<li>small change to the hold method to make it a bit more lightweight
<ul>
<li>Using a timer instead of an alarm object!</li>
</ul>
</li>
<li>Limits to hold:
<ul>
<li>cannot hold more than 1 object at a time, and doing so could cause a deadlock!</li>
</ul>
</li>
</ul>
<p><strong>Note:</strong> Wow you looked back this far. Nice, while your at it take a look at the old versions to view the code how it was before my first initial release</p>
<h2 id="upcomming">Upcomming:</h2>
<ul>
<li>Threaded objects wrapped in corutines, so you can hold/sleep without problems!</li>
</ul>
<h1 id="update-140-3202017">Update: 1.4.0 (3/20/2017)</h1>
<h2 id="added">Added:</h2>
<ul>
<li>multiobj:reallocate(ProcessObj) -- changes the parent process of an object</li>
<li>ProcessObj:getController() -- returns the mThread so you can opperate on it like a multiobj
Example 1</li>
</ul>
<hr>
<pre class="hljs"><code><div><span class="hljs-built_in">require</span>(<span class="hljs-string">"multimanager"</span>) <span class="hljs-comment">-- require the library</span>
int1=multi:newProcess() <span class="hljs-comment">-- create a process</span>
int1.NAME=<span class="hljs-string">"int1"</span> <span class="hljs-comment">-- give it a name for example purposes</span>
int2=multi:newProcess() <span class="hljs-comment">-- create another process to reallocate</span>
int2.NAME=<span class="hljs-string">"int2"</span> <span class="hljs-comment">-- name this a different name</span>
step=int1:newTStep(<span class="hljs-number">1</span>,<span class="hljs-number">10</span>) <span class="hljs-comment">-- create a TStep so we can slowly see what is going on</span>
step:OnStep(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(p,s)</span></span> <span class="hljs-comment">-- connect to the onstep event</span>
<span class="hljs-built_in">print</span>(p,s.Parent.NAME) <span class="hljs-comment">-- print the position and process name</span>
<span class="hljs-keyword">end</span>)
step:OnEnd(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(s)</span></span> <span class="hljs-comment">-- when the step ends lets reallocate it to the other process</span>
<span class="hljs-keyword">if</span> s.Parent.NAME==<span class="hljs-string">"int1"</span> <span class="hljs-keyword">then</span> <span class="hljs-comment">-- lets only do this if it is in the int1 process</span>
s:reallocate(int2) <span class="hljs-comment">-- send it to int2</span>
s:Reset() <span class="hljs-comment">-- reset the object</span>
<span class="hljs-keyword">else</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"We are done!"</span>)
<span class="hljs-built_in">os</span>.<span class="hljs-built_in">exit</span>() <span class="hljs-comment">-- end the program when int2 did its thing</span>
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>)
int1:Start() <span class="hljs-comment">-- start process 1</span>
int2:Start() <span class="hljs-comment">-- start process 2</span>
multi:mainloop() <span class="hljs-comment">-- start the main loop</span>
</div></code></pre>
<h2 id="fixedupdated">Fixed/Updated:</h2>
<ul>
<li>queuer=multi:newQueuer([string: file])</li>
<li>Alarms now preform as they should on a queuer
Example 2</li>
</ul>
<hr>
<pre class="hljs"><code><div>int=multi:newQueuer()
step=int:newTStep(<span class="hljs-number">1</span>,<span class="hljs-number">10</span>,<span class="hljs-number">1</span>,<span class="hljs-number">.5</span>)
alarm=int:newAlarm(<span class="hljs-number">2</span>)
step2=int:newTStep(<span class="hljs-number">1</span>,<span class="hljs-number">5</span>,<span class="hljs-number">1</span>,<span class="hljs-number">.5</span>)
step:OnStep(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(p,s)</span></span>
<span class="hljs-built_in">print</span>(p)
<span class="hljs-keyword">end</span>)
step2:OnStep(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(p,s)</span></span>
<span class="hljs-built_in">print</span>(p,<span class="hljs-string">"!"</span>)
<span class="hljs-keyword">end</span>)
alarm:OnRing(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Ring1!!!"</span>)
<span class="hljs-keyword">end</span>)
int:OnQueueCompleted(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(s)</span></span>
s:Pause()
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Done!"</span>)
<span class="hljs-built_in">os</span>.<span class="hljs-built_in">exit</span>()
<span class="hljs-keyword">end</span>)
int:Start()
multi:mainloop()
</div></code></pre>
<h1 id="update-130-1292017">Update: 1.3.0 (1/29/2017)</h1>
<h2 id="added">Added:</h2>
<ul>
<li>Load detection!
<ul>
<li>multi.threshold -- minimum amount of cycles that all mObjs should be allotted before the Manager is considered burdened. Defualt: 256</li>
<li>multi.threstimed -- amount of time when counting the number of cycles, Greater gives a more accurate view of the load, but takes more time. Defualt: .001</li>
<li>multi:setThreshold(n) -- method used to set multi.threshold</li>
<li>multi:setThrestimed(n) -- method used to set multi.threstimed</li>
<li>multi:getLoad() -- returns a number between 0 and 100</li>
</ul>
</li>
</ul>
<h1 id="update-120-12312016">Update: 1.2.0 (12.31.2016)</h1>
<h2 id="added">Added:</h2>
<ul>
<li>connectionobj.getConnection(name) -- returns a list of an instance (or instances) of a single connect made with connectionobj:connect(func,name) or connectionobj(func,name) if you can orginize data before hand you can route info to certain connections thus saving a lot of cpu time.
<strong>NOTE:</strong> Only one name per each connection... you can't have 2 of the same names in a dictonary... the last one will be used
Changed:</li>
</ul>
<hr>
<ul>
<li>Started keeping track of dates</li>
<li>obj=multi:newConnection()
<ul>
<li>obj:connect(func,name) and obj(func,name)</li>
<li>Added the name argument to allow indexing specific connection objects... Useful when creating an async library</li>
</ul>
</li>
</ul>
<h1 id="update-110">Update: 1.1.0</h1>
<h2 id="changed">Changed:</h2>
<ul>
<li>multi:newConnection(protect) -- Changed the way you are able to interact with it by adding the __call metamethod
Old Usage:</li>
</ul>
<pre class="hljs"><code><div>OnUpdate=multi:newConnection()
OnUpdate:connect(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(...)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Updating"</span>,...)
<span class="hljs-keyword">end</span>)
OnUpdate:Fire(<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>)
</div></code></pre>
<p>New Usage:</p>
<pre class="hljs"><code><div>OnUpdate=multi:newConnection()
OnUpdate(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(...)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Updating"</span>,...)
<span class="hljs-keyword">end</span>)
OnUpdate:Fire(<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>)
</div></code></pre>
<h1 id="update-100">Update: 1.0.0</h1>
<h2 id="added">Added:</h2>
<ul>
<li>Start of official changelog (internal)</li>
</ul>
<h1 id="update-063">Update: 0.6.3</h1>
<p><strong>Note:</strong> No official changelog was made for versions this old. Doing code comparsions is way too much work</p>
<h1 id="update-062">Update: 0.6.2</h1>
<p><strong>Note:</strong> No official changelog was made for versions this old. Doing code comparsions is way too much work</p>
<h1 id="update-061-6">Update: 0.6.1-6</h1>
<p><strong>Note:</strong> No official changelog was made for versions this old. Doing code comparsions is way too much work</p>
<h1 id="update-051-6">Update: 0.5.1-6</h1>
<p><strong>Note:</strong> No official changelog was made for versions this old. Doing code comparsions is way too much work</p>
<h1 id="update-041">Update: 0.4.1</h1>
<p><strong>Note:</strong> No official changelog was made for versions this old. Doing code comparsions is way too much work</p>
<h1 id="update-030---the-update-that-started-it-all">Update: 0.3.0 - The update that started it all</h1>
<h2 id="changed">Changed:</h2>
<ul>
<li>Renamed the library to multi from EventManager and a ton of resturcturing</li>
<li>Started the version numbering over</li>
</ul>
<h1 id="update-eventmanager-200">Update: EventManager 2.0.0</h1>
<h2 id="changed">Changed:</h2>
<ul>
<li>Everything, complete restructuring of the library from function based to object based. Resembles the modern version of the library
Added:</li>
</ul>
<hr>
<ul>
<li>Love2d support basic</li>
<li>event:benchMark()</li>
<li>event:lManager() -- like uManager, but for love2d</li>
<li>event:uManager(dt) -- you could pass the change in time to the method</li>
<li>event:cManager()</li>
<li>event:manager() -- old version of mainloop()</li>
<li>@onClose(func) -- modifidable</li>
<li>event:onDraw(func)</li>
<li>event:onUpdate(func)</li>
<li>@event:onStart() -- modifidable</li>
<li>event:stop()</li>
<li>event:createTrigger(func)</li>
<li>event:createTStep(start,reset,timer,count)</li>
<li>event:createStep(start,reset,count,skip)</li>
<li>event:createLoop()</li>
<li>event:newTask(func)</li>
<li>event:newAlarm(set,func,start)</li>
<li>event:hold(task)</li>
<li>event:oneETime(func) -- One time function call</li>
<li>event:oneTime(func)</li>
</ul>
<h1 id="update-eventmanager-120">Update: EventManager 1.2.0</h1>
<h2 id="changed">Changed:</h2>
<ul>
<li>Made Alarms have their own load order, before alarms were grouped with events</li>
<li>events started becoming more object like</li>
<li>event:setAlarm =&gt; event:newAlarm() returns alarm object
Note: Weird period where both fuction based and object based features worked!</li>
</ul>
<h2 id="added">Added:</h2>
<ul>
<li>event:Hold(task)</li>
<li>event:destroyEvent(tag) -- destroys an event</li>
</ul>
<h1 id="update-eventmanager-110">Update: EventManager 1.1.0</h1>
<h2 id="added">Added:</h2>
<ul>
<li>LoadOrder -- allow you to change what was processed first events, steps, or updates</li>
<li>event:setLoadOrder(str) -- ESU,EUS,USE,UES,SEU,SUE</li>
<li>event:createTStep(tag,reset,timer,endc) -- works like steps but sleeps between loops</li>
</ul>
<h1 id="update-eventmanager-100---error-checking">Update: EventManager 1.0.0 - Error checking</h1>
<h2 id="changed">Changed:</h2>
<ul>
<li>Added error checking which would alert you when something was done wrong</li>
</ul>
<h1 id="version-eventmanager-001---in-the-beginning-things-were-very-different">Version: EventManager 0.0.1 - In The Beginning things were very different</h1>
<h2 id="usage">Usage:</h2>
<pre class="hljs"><code><div><span class="hljs-built_in">require</span>(<span class="hljs-string">"BasicCommands"</span>)
<span class="hljs-built_in">require</span>(<span class="hljs-string">"EventManager"</span>)
event:setAlarm(<span class="hljs-string">"test"</span>,<span class="hljs-number">1</span>)
a=<span class="hljs-number">0</span>
b=<span class="hljs-number">0</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Alarm_test</span><span class="hljs-params">(tag)</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Alarm: "</span>..tag)
a = <span class="hljs-number">1</span>
b=b+<span class="hljs-number">1</span>
event:updateAlarm(<span class="hljs-string">"test"</span>,<span class="hljs-number">1</span>)
<span class="hljs-keyword">end</span>
event:setEvent(<span class="hljs-string">"test()"</span>,<span class="hljs-string">"a == 1"</span>)
event:setEvent(<span class="hljs-string">"test2()"</span>,<span class="hljs-string">"b == 5"</span>)
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Event_test</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Event! A=1 which means the alarm rang"</span>)
a = <span class="hljs-number">0</span>
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Event_test2</span><span class="hljs-params">()</span></span>
event:Stop()
<span class="hljs-keyword">end</span>
<span class="hljs-comment">-- this might feel somewhat familiar</span>
step = event:createStep(<span class="hljs-string">"test"</span>,<span class="hljs-number">10</span>,<span class="hljs-literal">true</span>)
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Step_test</span><span class="hljs-params">(pos)</span></span>
<span class="hljs-built_in">print</span>(pos,self)
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Step_test_End</span><span class="hljs-params">(tag)</span></span>
step:Remove()
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">event:OnCreate</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(event:stepExist(<span class="hljs-string">"test"</span>))
<span class="hljs-built_in">print</span>(event:eventExist(<span class="hljs-string">"test"</span>))
<span class="hljs-built_in">print</span>(event:alarmExist(<span class="hljs-string">"test"</span>))
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">event:OnUpdate</span><span class="hljs-params">()</span></span>
<span class="hljs-comment">-- Called every cycle</span>
<span class="hljs-keyword">end</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">event:OnClose</span><span class="hljs-params">()</span></span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"Manager was stopped!"</span>)
<span class="hljs-keyword">end</span>
event:Manager()
<span class="hljs-comment">--event:CManager()</span>
<span class="hljs-comment">--event:UManager() -- One of the few things that lived in name and spirit the u just became lowercase haha</span>
</div></code></pre>
</body>
</html>